JST: JSON tools  1.0.0
JSON tools dynamic library for reading, manipulating and writing JSON tree
Functions | Variables
JST_string.c File Reference
#include "JST_string.h"
#include <stdlib.h>
#include <string.h>
Include dependency graph for JST_string.c:

Go to the source code of this file.

Functions

bool JST_String_append_char (JST_String *string, char c)
 
bool JST_String_append_string (JST_String *string, const char *s)
 
bool JST_String_spaces (JST_String *string, unsigned count)
 
JST_Error JST_String_delete (JST_String *string)
 

Variables

const JST_String JST_String_Zero = { .length = 0, .limit = 0, .buffer = NULL }
 

Function Documentation

◆ JST_String_append_char()

bool JST_String_append_char ( JST_String string,
char  c 
)

Definition at line 8 of file JST_string.c.

8  {
9  if( string == NULL ) {
10  return false;
11  }
12  if( string->length >= string->limit ) {
13  if( string->limit == 0 ) {
14  string->limit = 40;
15  }
16  string->limit *= 2;
17  string->buffer = realloc( string->buffer, string->limit );
18  if( string->buffer == NULL ) {
19  return false;
20  }
21  }
22  string->buffer[string->length++] = c;
23  return true;
24 }
unsigned length
Definition: JST_string.h:6
char * buffer
Definition: JST_string.h:8
unsigned limit
Definition: JST_string.h:7
Here is the caller graph for this function:

◆ JST_String_append_string()

bool JST_String_append_string ( JST_String string,
const char *  s 
)

Definition at line 26 of file JST_string.c.

26  {
27  if(( string == NULL )||( s == NULL )) {
28  return false;
29  }
30  unsigned lb = string->length;
31  size_t count = strlen( s );
32  for( unsigned i = 0; ( i < count )&& JST_String_append_char( string, s[i] ); ++i );
33  return string->length == lb + count;
34 }
bool JST_String_append_char(JST_String *string, char c)
Definition: JST_string.c:8
Here is the call graph for this function:

◆ JST_String_delete()

JST_Error JST_String_delete ( JST_String string)

Definition at line 45 of file JST_string.c.

45  {
46  if( string == NULL ) {
47  return JST_ERR_NULL_ARGUMENT;
48  }
49  if( string->buffer ) {
50  free( string->buffer );
51  }
52  string->buffer = NULL;
53  string->length = 0;
54  string->limit = 0;
55  return JST_ERR_NONE;
56 }
char * buffer
Definition: JST_string.h:8
Function misused.
Definition: jstools.h:110

◆ JST_String_spaces()

bool JST_String_spaces ( JST_String string,
unsigned  count 
)

Definition at line 36 of file JST_string.c.

36  {
37  if( string == NULL ) {
38  return false;
39  }
40  unsigned lb = string->length;
41  for( unsigned i = 0; ( i < count )&& JST_String_append_char( string, ' ' ); ++i );
42  return string->length == lb + count;
43 }
bool JST_String_append_char(JST_String *string, char c)
Definition: JST_string.c:8
Here is the call graph for this function:

Variable Documentation

◆ JST_String_Zero

const JST_String JST_String_Zero = { .length = 0, .limit = 0, .buffer = NULL }

Definition at line 6 of file JST_string.c.