diff options
Diffstat (limited to 'app/dynstring')
| -rw-r--r-- | app/dynstring/dynstring.c | 17 | ||||
| -rw-r--r-- | app/dynstring/dynstring.h | 89 | 
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  | 
