diff options
Diffstat (limited to 'src/src/functions.h')
-rw-r--r-- | src/src/functions.h | 90 |
1 files changed, 4 insertions, 86 deletions
diff --git a/src/src/functions.h b/src/src/functions.h index e6aada27a..3bea9d2c1 100644 --- a/src/src/functions.h +++ b/src/src/functions.h @@ -443,6 +443,8 @@ extern gstring *string_append(gstring *, int, ...) WARN_UNUSED_RESULT; extern gstring *string_append_listele(gstring *, uschar, const uschar *) WARN_UNUSED_RESULT; extern gstring *string_append_listele_n(gstring *, uschar, const uschar *, unsigned) WARN_UNUSED_RESULT; extern uschar *string_base62(unsigned long int); +extern gstring *string_cat (gstring *, const uschar * ) WARN_UNUSED_RESULT; +extern gstring *string_catn(gstring *, const uschar *, int) WARN_UNUSED_RESULT; extern int string_compare_by_pointer(const void *, const void *); extern uschar *string_copy_dnsdomain(uschar *); extern uschar *string_copy_malloc(const uschar *); @@ -451,6 +453,8 @@ extern uschar *string_copynlc(uschar *, int); extern uschar *string_dequote(const uschar **); extern BOOL string_format(uschar *, int, const char *, ...) ALMOST_PRINTF(3,4); extern uschar *string_format_size(int, uschar *); +extern uschar *string_from_gstring(gstring *); +extern gstring *string_get(unsigned); extern int string_interpret_escape(const uschar **); extern int string_is_ip_address(const uschar *, int *); #ifdef SUPPORT_I18N @@ -531,92 +535,6 @@ extern void version_init(void); extern BOOL write_chunk(transport_ctx *, uschar *, int); extern ssize_t write_to_fd_buf(int, const uschar *, size_t); -/******************************************************************************/ - -#if !defined(COMPILE_UTILITY) && !defined(MACRO_PREDEF) - -/* Create a growable-string with some preassigned space */ - -__inline__ gstring * -string_get(unsigned size) -{ -gstring * g = store_get(sizeof(gstring) + size); -g->size = size; -g->ptr = 0; -g->s = US(g + 1); -return g; -} - - -/* NUL-terminate the C string in the growable-string, and return it. */ - -__inline__ uschar * -string_from_gstring(gstring * g) -{ -if (!g) return NULL; -g->s[g->ptr] = '\0'; -return g->s; -} - - - -/* This function is used when building up strings of unknown length. Room is -always left for a terminating zero to be added to the string that is being -built. This function does not require the string that is being added to be NUL -terminated, because the number of characters to add is given explicitly. It is -sometimes called to extract parts of other strings. - -Arguments: - string points to the start of the string that is being built, or NULL - if this is a new string that has no contents yet - s points to characters to add - count count of characters to add; must not exceed the length of s, if s - is a C string. - -Returns: pointer to the start of the string, changed if copied for expansion. - Note that a NUL is not added, though space is left for one. This is - because string_cat() is often called multiple times to build up a - string - there's no point adding the NUL till the end. - -*/ -/* coverity[+alloc] */ - -WARN_UNUSED_RESULT -__inline__ gstring * -string_catn(gstring * g, const uschar *s, int count) -{ -int p; - -if (!g) - { - unsigned inc = count < 4096 ? 127 : 1023; - unsigned size = ((count + inc) & ~inc) + 1; - g = string_get(size); - } - -p = g->ptr; -if (p + count >= g->size) - gstring_grow(g, p, count); - -/* Because we always specify the exact number of characters to copy, we can -use memcpy(), which is likely to be more efficient than strncopy() because the -latter has to check for zero bytes. */ - -memcpy(g->s + p, s, count); -g->ptr = p + count; -return g; -} - - -WARN_UNUSED_RESULT -__inline__ gstring * -string_cat(gstring *string, const uschar *s) -{ -return string_catn(string, s, Ustrlen(s)); -} -#endif /*!COMPILE_UTILITY*/ - - /* vi: aw */ |