X_STRBUILDER_VERSION_MAJOR

#define X_STRBUILDER_VERSION_MAJOR 1

X_STRBUILDER_VERSION_MINOR

#define X_STRBUILDER_VERSION_MINOR 0

X_STRBUILDER_VERSION_PATCH

#define X_STRBUILDER_VERSION_PATCH 0

STRBUILDER_STACK_BUFFER_SIZE

#define STRBUILDER_STACK_BUFFER_SIZE 255
Struct in stdx_strbuilder.h

XStrBuilder

typedef struct XStrBuilder{
  char *data;
  size_t capacity;
  size_t length;
}XStrBuilder;
Struct in stdx_strbuilder.h

XWStrBuilder

typedef struct XWStrBuilder{
  wchar_t *data;
  size_t capacity;
  size_t length;
}XWStrBuilder;
Function in stdx_strbuilder.h

x_strbuilder_create

Creates a XStrBuilder

XStrBuilder * x_strbuilder_create();

Parameters

(none)
@return pointer to the XStrBuilder or NULL if creation fails
Function in stdx_strbuilder.h

x_strbuilder_append

Appends a C-string to the builder

void x_strbuilder_append(
 XStrBuilder *sb,
 const char *str
);

Parameters

XStrBuilder *sb
Destination builder
const char *str
Source null-terminated string (NULL is ignored)
Function in stdx_strbuilder.h

x_strbuilder_append_char

Appends one character

void x_strbuilder_append_char(
 XStrBuilder *sb,
 char c
);

Parameters

XStrBuilder *sb
Destination builder
char c
Character to append
Function in stdx_strbuilder.h

x_strbuilder_append_format

Appends formatted text (printf-style)

void x_strbuilder_append_format(
 XStrBuilder *sb,
 const char *format,
 ...
);

Parameters

XStrBuilder *sb
Destination builder
const char *format
Format string (printf-style)
Function in stdx_strbuilder.h

x_strbuilder_append_substring

Appends a substring

void x_strbuilder_append_substring(
 XStrBuilder *sb,
 const char *start,
 size_t length
);

Parameters

XStrBuilder *sb
Destination builder
const char *start
Pointer to first byte
size_t length
Number of bytes to copy
Function in stdx_strbuilder.h

x_strbuilder_to_string

Returns internal buffer pointer

char * x_strbuilder_to_string(const XStrBuilder *sb);

Parameters

const XStrBuilder *sb
Builder to query

Returns

Pointer to internal NUL-terminated buffer (invalidated by later appends)

Function in stdx_strbuilder.h

x_strbuilder_length

Returns current length in bytes

size_t x_strbuilder_length(XStrBuilder *sb);

Parameters

XStrBuilder *sb
Builder to query

Returns

Length in bytes (excluding the NUL)

Function in stdx_strbuilder.h

x_strbuilder_append_utf8_substring

Appends a UTF-8 substring by code-point range

void x_strbuilder_append_utf8_substring(
 XStrBuilder *sb,
 const char *utf8,
 size_t start_cp,
 size_t len_cp
);

Parameters

XStrBuilder *sb
Destination builder
const char *utf8
Source UTF-8 string
size_t start_cp
Start code-point index
size_t len_cp
Number of code points to append
Function in stdx_strbuilder.h

x_strbuilder_utf8_charlen

Counts UTF-8 code points contained in the builder

size_t x_strbuilder_utf8_charlen(const XStrBuilder *sb);

Parameters

const XStrBuilder *sb
Builder to query

Returns

Number of Unicode code points

Function in stdx_strbuilder.h

x_wstrbuilder_create

Creates a wide-character string builder param (none)

XWStrBuilder * x_wstrbuilder_create();

Returns

Pointer to builder or NULL on failure

Function in stdx_strbuilder.h

x_wstrbuilder_append

Appends a wide C-string

void x_wstrbuilder_append(
 XWStrBuilder *sb,
 const wchar_t *str
);

Parameters

XWStrBuilder *sb
Destination builder
const wchar_t *str
Source wide string (NULL is ignored)
Function in stdx_strbuilder.h

x_wstrbuilder_append_char

Appends one wide character

void x_wstrbuilder_append_char(
 XWStrBuilder *sb,
 wchar_t c
);

Parameters

XWStrBuilder *sb
Destination builder
wchar_t c
Character to append
Function in stdx_strbuilder.h

x_wstrbuilder_append_format

Appends formatted wide text (printf-style)

void x_wstrbuilder_append_format(
 XWStrBuilder *sb,
 const wchar_t *format,
 ...
);

Parameters

XWStrBuilder *sb
Destination builder
const wchar_t *format
Wide format string
Function in stdx_strbuilder.h

x_wstrbuilder_to_string

Returns internal wide buffer pointer param sb Builder to query return Pointer to internal NUL-terminated wide buffer (invalidated by later appends)

wchar_t * x_wstrbuilder_to_string(const XWStrBuilder *sb);
Function in stdx_strbuilder.h

x_wstrbuilder_length

Returns current length in wide characters param sb Builder to query return Number of wchar_t (excluding the NUL)

size_t x_wstrbuilder_length(const XWStrBuilder *sb);

X_STRBUILDER_ALLOC

#define X_STRBUILDER_ALLOC(sz) malloc(sz)

X_STRBUILDER_REALLOC

#define X_STRBUILDER_REALLOC(p, sz) realloc((p), (sz))