From 2124a48d37f356fe39bd0eafa8a7ea1cbd5fc150 Mon Sep 17 00:00:00 2001 From: Ben Kibbey Date: Sat, 2 Mar 2013 15:39:17 -0500 Subject: [PATCH] Add string_new_content(). To prevent duplication and to save some memory. --- src/util-string.c | 13 +++++++++++++ src/util-string.h | 1 + 2 files changed, 14 insertions(+) diff --git a/src/util-string.c b/src/util-string.c index 0a2489a9..9eed0953 100644 --- a/src/util-string.c +++ b/src/util-string.c @@ -61,6 +61,19 @@ string_erase (struct string_s *s, ssize_t pos, ssize_t len) return s; } +/* Be careful about allocations since other string_ functions may + * realloc the 'str' pointer. */ +struct string_s * +string_new_content (char *str) +{ + struct string_s *s = xcalloc (1, sizeof (struct string_s)); + + s->str = str; + s->len = strlen (s->str); + s->allocated = s->len + 1; + return s; +} + struct string_s * string_new (const char *str) { diff --git a/src/util-string.h b/src/util-string.h index 8e322c2b..c81bf1bd 100644 --- a/src/util-string.h +++ b/src/util-string.h @@ -37,6 +37,7 @@ struct string_s void string_free (struct string_s *s, int with_data); struct string_s *string_erase (struct string_s *s, ssize_t pos, ssize_t len); struct string_s *string_new (const char *str); +struct string_s *string_new_content (char *str); struct string_s *string_append (struct string_s *s, const char *str); struct string_s *string_truncate (struct string_s *s, size_t n); struct string_s *string_prepend (struct string_s *s, const char *str); -- 2.11.4.GIT