2
* Copyright (c) 1998-2001, Darren Hiebert
2
* Copyright (c) 1998-2002, Darren Hiebert
4
4
* This source code is released for free distribution under the terms of the
5
5
* GNU General Public License.
25
# define VSTRING_PUTC_MACRO 1
27
#ifdef VSTRING_PUTC_MACRO
28
#define vStringPut(s,c) \
29
(void)(((s)->length + 1 == (s)->size ? vStringAutoResize (s) : 0), \
30
((s)->buffer [(s)->length] = (c)), \
31
((c) == '\0' ? 0 : ((s)->buffer [++(s)->length] = '\0')))
24
34
#define vStringValue(vs) ((vs)->buffer)
25
35
#define vStringItem(vs,i) ((vs)->buffer[i])
26
36
#define vStringLength(vs) ((vs)->length)
51
61
extern void vStringClear (vString *const string);
52
62
extern vString *vStringNew (void);
53
63
extern void vStringDelete (vString *const string);
64
#ifndef VSTRING_PUTC_MACRO
54
65
extern void vStringPut (vString *const string, const int c);
55
67
extern void vStringStripNewline (vString *const string);
56
68
extern void vStringStripLeading (vString *const string);
69
extern void vStringChop (vString *const string);
57
70
extern void vStringStripTrailing (vString *const string);
58
71
extern void vStringCatS (vString *const string, const char *const s);
59
72
extern void vStringNCatS (vString *const string, const char *const s, const size_t length);
60
extern vString *vStringNewCopy (vString *const string);
73
extern vString *vStringNewCopy (const vString *const string);
61
74
extern vString *vStringNewInit (const char *const s);
62
75
extern void vStringCopyS (vString *const string, const char *const s);
63
76
extern void vStringNCopyS (vString *const string, const char *const s, const size_t length);
64
extern void vStringCopyToLower (vString *const dest, vString *const src);
77
extern void vStringCopyToLower (vString *const dest, const vString *const src);
65
78
extern void vStringSetLength (vString *const string);
67
80
#endif /* _VSTRING_H */
69
/* vi:set tabstop=8 shiftwidth=4: */
82
/* vi:set tabstop=4 shiftwidth=4: */