src/inc/dystring.h 1.19
1.19 2009/10/20 19:16:33 tdreszer
Added dyStringCreate which will create a new dyString from printf style content.
Index: src/inc/dystring.h
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/inc/dystring.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -b -B -U 1000000 -r1.18 -r1.19
--- src/inc/dystring.h 23 Jan 2009 23:16:35 -0000 1.18
+++ src/inc/dystring.h 20 Oct 2009 19:16:33 -0000 1.19
@@ -1,89 +1,92 @@
/* dystring - dynamically resizing string.
*
* This file is copyright 2002 Jim Kent, but license is hereby
* granted for all use - public, private or commercial. */
#ifndef DYSTRING_H /* Wrapper to avoid including this twice. */
#define DYSTRING_H
struct dyString
/* Dynamically resizable string that you can do formatted
* output to. */
{
struct dyString *next; /* Next in list. */
char *string; /* Current buffer. */
int bufSize; /* Size of buffer. */
int stringSize; /* Size of string. */
};
struct dyString *newDyString(int initialBufSize);
/* Allocate dynamic string with initial buffer size. (Pass zero for default) */
#define dyStringNew newDyString
void freeDyString(struct dyString **pDs);
/* Free up dynamic string. */
#define dyStringFree(a) freeDyString(a);
void freeDyStringList(struct dyString **pDs);
/* Free up a list of dynamic strings */
#define dyStringFreeList(a) freeDyStringList(a);
void dyStringAppend(struct dyString *ds, char *string);
/* Append zero terminated string to end of dyString. */
void dyStringAppendN(struct dyString *ds, char *string, int stringSize);
/* Append string of given size to end of string. */
char dyStringAppendC(struct dyString *ds, char c);
/* Append char to end of string. */
void dyStringAppendMultiC(struct dyString *ds, char c, int n);
/* Append N copies of char to end of string. */
void dyStringAppendEscapeQuotes(struct dyString *dy, char *string,
char quot, char esc);
/* Append escaped-for-quotation version of string to dy. */
void dyStringVaPrintf(struct dyString *ds, char *format, va_list args);
/* VarArgs Printf to end of dyString. */
void dyStringPrintf(struct dyString *ds, char *format, ...)
/* Printf to end of dyString. */
#ifdef __GNUC__
__attribute__((format(printf, 2, 3)))
#endif
;
+struct dyString *dyStringCreate(char *format, ...);
+/* Create a dyString with a printf style initial content */
+
#define dyStringClear(ds) (ds->string[0] = ds->stringSize = 0)
/* Clear string. */
struct dyString * dyStringSub(char *orig, char *in, char *out);
/* Make up a duplicate of orig with all occurences of in substituted
* with out. */
void dyStringBumpBufSize(struct dyString *ds, int size);
/* Force dyString buffer to be at least given size. */
char *dyStringCannibalize(struct dyString **pDy);
/* Kill dyString, but return the string it is wrapping
* (formerly dy->string). This should be free'd at your
* convenience. */
#define dyStringContents(ds) (ds)->string
/* return raw string. */
#define dyStringLen(ds) strlen((ds)->string)
/* return raw string length. */
void dyStringResize(struct dyString *ds, int newSize);
/* resize a string, if the string expands, blanks are appended */
void dyStringQuoteString(struct dyString *dy, char quotChar, char *text);
/* Append quotChar-quoted text (with any internal occurrences of quotChar
* \-escaped) onto end of dy. */
#endif /* DYSTRING_H */