99 char *
new = strdup(
string);
126 #define LOC_CHUNK_OVERHEAD MAXALIGN(offsetof(loc_chunk, data))
127 #define LOC_CHUNK_MIN_SIZE 8192
172 char *result =
loc_alloc(strlen(
string) + 1);
174 strcpy(result,
string);
187 for (cur_chunk =
loc_chunks; cur_chunk; cur_chunk = next_chunk)
189 next_chunk = cur_chunk->
next;
207 char *res_str = (
char *)
loc_alloc(strlen(str1) + strlen(str2) + 2);
209 strcpy(res_str, str1);
210 if (strlen(str1) != 0 && strlen(str2) != 0)
211 strcat(res_str,
" ");
212 strcat(res_str, str2);
228 res_str = va_arg(
args,
char *);
231 for (
i = 1;
i < count;
i++)
245 char *res_str = (
char *)
loc_alloc(strlen(str1) + strlen(str2) + 1);
247 strcpy(res_str, str1);
248 strcat(res_str, str2);
256 make3_str(
const char *str1,
const char *str2,
const char *str3)
258 char *res_str = (
char *)
loc_alloc(strlen(str1) + strlen(str2) + strlen(str3) + 1);
260 strcpy(res_str, str1);
261 strcat(res_str, str2);
262 strcat(res_str, str3);
#define pg_attribute_printf(f, a)
#define FLEXIBLE_ARRAY_MEMBER
void mmfatal(int error_code, const char *error,...)
#define LOC_CHUNK_OVERHEAD
static void vmmerror(int error_code, enum errortype type, const char *error, va_list ap) pg_attribute_printf(3
struct loc_chunk loc_chunk
char * cat_str(int count,...)
char * loc_strdup(const char *string)
char * mm_strdup(const char *string)
static loc_chunk * loc_chunks
char * cat2_str(const char *str1, const char *str2)
char * make2_str(const char *str1, const char *str2)
char * make3_str(const char *str1, const char *str2, const char *str3)
void reclaim_local_storage(void)
void mmerror(int error_code, enum errortype type, const char *error,...)
void * loc_alloc(size_t size)
#define LOC_CHUNK_MIN_SIZE
void * mm_alloc(size_t size)
vfprintf(stderr, fmt, args)
static pg_noinline void Size size
char data[FLEXIBLE_ARRAY_MEMBER]