summaryrefslogtreecommitdiff
path: root/app/dynstring
diff options
context:
space:
mode:
Diffstat (limited to 'app/dynstring')
-rw-r--r--app/dynstring/dynstring.c17
-rw-r--r--app/dynstring/dynstring.h89
2 files changed, 62 insertions, 44 deletions
diff --git a/app/dynstring/dynstring.c b/app/dynstring/dynstring.c
index eb7b2c5..fd50a0b 100644
--- a/app/dynstring/dynstring.c
+++ b/app/dynstring/dynstring.c
@@ -115,6 +115,23 @@ void DynStringClear(DynString *s)
DynStringRealloc(s);
}
+
+/**
+* Clear the dynamic string contents without changing memory allocation.
+*
+* \param s IN the dynamic string
+*/
+
+void DynStringReset(DynString *s)
+{
+ /* Not a string? */
+ if (isnas(s))
+ {
+ return;
+ }
+ s->size = 0;
+}
+
/**
* Resize the string for a minimum number of bytes. In order to optimize memory usage the
* actually allocated block of memory can be larger than the requested size.
diff --git a/app/dynstring/dynstring.h b/app/dynstring/dynstring.h
index 2a18409..0a5b972 100644
--- a/app/dynstring/dynstring.h
+++ b/app/dynstring/dynstring.h
@@ -1,3 +1,4 @@
+
/** \file dynstring.h
* Definitions and prototypes for variable length strings
*/
@@ -18,47 +19,47 @@
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#ifndef HAVE_DYNSTRING_H
-#define HAVE_DYNSTRING_H
-
-#include <stddef.h>
-
-struct DynString
-{
- char *s;
- size_t size; // length of the string
- size_t b_size; // length of the buffer containing the string
-};
-typedef struct DynString DynString;
-
-#define NaS {NULL, 0, 0}
-#define isnas(S) (!(S)->s)
-
-// define highest bit depending on 32 or 64 bit compile
-
-#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
- #define STR_FREEABLE (1ULL << 63)
-#else
- #define STR_FREEABLE (1ULL << 31)
-#endif
-
-size_t DynStringSize(DynString * s);
-
-DynString * DynStringMalloc(DynString *s, size_t size);
-void DynStringClear(DynString *s);
-void DynStringRealloc(DynString * s);
-void DynStringResize(DynString * s, size_t size);
-void DynStringFree(DynString * s);
-DynString * DynStringDupStr(DynString *s2, DynString * s);
-void DynStringCpyStr(DynString * dest, DynString * src);
-char * DynStringToCStr(DynString * s);
-void DynStringNCatCStr(DynString * s, size_t len, const char * str);
-void DynStringCatCStr(DynString * s, const char * str);
-void DynStringCatStr(DynString * s, const DynString * s2);
-void DynStringCatCStrs(DynString * s, ...);
-void DynStringCatStrs(DynString * s1, ...);
-void DynStringPrintf(DynString * s, const char * fmt, ...);
-
-#endif // !HAVE_DYNSTRING_H
+*/
+
+#ifndef HAVE_DYNSTRING_H
+#define HAVE_DYNSTRING_H
+
+#include <stddef.h>
+
+struct DynString
+{
+ char *s;
+ size_t size; // length of the string
+ size_t b_size; // length of the buffer containing the string
+};
+typedef struct DynString DynString;
+
+#define NaS {NULL, 0, 0}
+#define isnas(S) (!(S)->s)
+
+// define highest bit depending on 32 or 64 bit compile
+
+#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
+ #define STR_FREEABLE (1ULL << 63)
+#else
+ #define STR_FREEABLE (1ULL << 31)
+#endif
+
+size_t DynStringSize(DynString * s);
+
+DynString * DynStringMalloc(DynString *s, size_t size);
+void DynStringClear(DynString *s);
+void DynStringRealloc(DynString * s);
+void DynStringResize(DynString * s, size_t size);
+void DynStringFree(DynString * s);
+DynString * DynStringDupStr(DynString *s2, DynString * s);
+void DynStringCpyStr(DynString * dest, DynString * src);
+char * DynStringToCStr(DynString * s);
+void DynStringNCatCStr(DynString * s, size_t len, const char * str);
+void DynStringCatCStr(DynString * s, const char * str);
+void DynStringCatStr(DynString * s, const DynString * s2);
+void DynStringCatCStrs(DynString * s, ...);
+void DynStringCatStrs(DynString * s1, ...);
+void DynStringPrintf(DynString * s, const char * fmt, ...);
+void DynStringReset(DynString * s);
+#endif // !HAVE_DYNSTRING_H