00001 #ifndef _STRINGBUF_H_ 00002 #define _STRINGBUF_H_ 00003 00010 typedef /*@abstract@*/ struct StringBufRec *StringBuf; 00011 00012 #ifdef __cplusplus 00013 extern "C" { 00014 #endif 00015 00018 /*@only@*/ StringBuf newStringBuf(void) 00019 /*@*/; 00020 00023 /*@null@*/ StringBuf freeStringBuf( /*@only@*/ /*@null@*/ StringBuf sb) 00024 /*@modifies sb @*/; 00025 00028 /*@unused@*/ 00029 void truncStringBuf(StringBuf sb) 00030 /*@modifies sb @*/; 00031 00034 /*@observer@*/ char * getStringBuf(StringBuf sb) 00035 /*@*/; 00036 00039 void stripTrailingBlanksStringBuf(StringBuf sb) 00040 /*@modifies sb @*/; 00041 00044 #define appendStringBuf(sb, s) appendStringBufAux(sb, s, 0) 00045 00048 #define appendLineStringBuf(sb, s) appendStringBufAux(sb, s, 1) 00049 00052 void appendStringBufAux(StringBuf sb, const char * s, int nl) 00053 /*@modifies sb @*/; 00054 00055 #ifdef __cplusplus 00056 } 00057 #endif 00058 00059 #endif /* _STRINGBUF_H_ */