Internal string buffer handing. Unless you're writing a json_object_to_json_string_fn implementation for use with json_object_set_serializer() direct use of this is not recommended.  
More...
Internal string buffer handing. Unless you're writing a json_object_to_json_string_fn implementation for use with json_object_set_serializer() direct use of this is not recommended. 
      
        
          | #define _printbuf_check_literal | ( |  | mystr | ) | ("" mystr) | 
      
 
Results in a compile error if the argument is not a string literal. 
 
 
      
        
          | #define printbuf_length | ( |  | p | ) | ((p)->bpos) | 
      
 
 
      
        
          | #define printbuf_memappend_fast | ( |  | p, | 
        
          |  |  |  | bufptr, | 
        
          |  |  |  | bufsize | 
        
          |  | ) |  |  | 
      
 
Value:do {                                                         \
  if ((p->size - p->bpos) > bufsize) {                       \
    memcpy(p->buf + p->bpos, (bufptr), bufsize);             \
    p->bpos += bufsize;                                      \
    p->buf[p->bpos]= '\0';                                   \
} while (0)
int printbuf_memappend(struct printbuf *p, const char *buf, int size)
 
 
This is an optimization wrapper around printbuf_memappend() that is useful for appending string literals. Since the size of string constants is known at compile time, using this macro can avoid a costly strlen() call. This is especially helpful when a constant string must be appended many times. If you got here because of a compilation error caused by passing something other than a string literal, use printbuf_memappend_fast() in conjunction with strlen().
See also: printbuf_memappend_fast() printbuf_memappend() sprintbuf() 
 
 
      
        
          | void printbuf_free | ( | struct printbuf * | p | ) |  | 
      
 
 
      
        
          | int printbuf_memappend | ( | struct printbuf * | p, | 
        
          |  |  | const char * | buf, | 
        
          |  |  | int | size | 
        
          |  | ) |  |  | 
      
 
 
      
        
          | int printbuf_memset | ( | struct printbuf * | pb, | 
        
          |  |  | int | offset, | 
        
          |  |  | int | charvalue, | 
        
          |  |  | int | len | 
        
          |  | ) |  |  | 
      
 
Set len bytes of the buffer to charvalue, starting at offset offset. Similar to calling memset(x, charvalue, len);
The memory allocated for the buffer is extended as necessary.
If offset is -1, this starts at the end of the current data in the buffer. 
 
 
      
        
          | void printbuf_reset | ( | struct printbuf * | p | ) |  | 
      
 
 
      
        
          | int sprintbuf | ( | struct printbuf * | p, | 
        
          |  |  | const char * | msg, | 
        
          |  |  |  | ... | 
        
          |  | ) |  |  | 
      
 
Formatted print to printbuf.
This function is the most expensive of the available functions for appending string data to a printbuf and should be used only where convenience is more important than speed. Avoid using this function in high performance code or tight loops; in these scenarios, consider using snprintf() with a static buffer in conjunction with one of the printbuf_*append() functions.
See also: printbuf_memappend_fast() printbuf_memappend() printbuf_strappend()