~ubuntu-branches/ubuntu/raring/geany/raring-proposed

« back to all changes in this revision

Viewing changes to tagmanager/vstring.c

  • Committer: Bazaar Package Importer
  • Author(s): Damián Viano
  • Date: 2008-05-02 11:37:45 UTC
  • mfrom: (1.2.1 upstream) (9 hardy)
  • mto: (3.2.1 squeeze)
  • mto: This revision was merged to the branch mainline in revision 12.
  • Revision ID: james.westby@ubuntu.com-20080502113745-xzp4g6dmovrpoj17
Tags: 0.14-1
New upstream release (Closes: #478126)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
2
*
3
 
*   Copyright (c) 1998-2001, Darren Hiebert
 
3
*   Copyright (c) 1998-2002, Darren Hiebert
4
4
*
5
5
*   This source code is released for free distribution under the terms of the
6
6
*   GNU General Public License.
58
58
{
59
59
    string->length = 0;
60
60
    string->buffer [0] = '\0';
61
 
    DebugStatement ( clearString (string->buffer, string->size); )
 
61
        DebugStatement ( memset (string->buffer, 0, string->size); )
62
62
}
63
63
 
64
64
extern void vStringDelete (vString *const string)
84
84
    return string;
85
85
}
86
86
 
 
87
#ifndef VSTRING_PUTC_MACRO
87
88
extern void vStringPut (vString *const string, const int c)
88
89
{
89
 
    if (string->length == string->size)         /*  check for buffer overflow */
90
 
        vStringAutoResize (string);
 
90
        if (string->length + 1 == string->size)  /*  check for buffer overflow */
 
91
                vStringAutoResize (string);
91
92
 
92
93
    string->buffer [string->length] = c;
93
94
    if (c != '\0')
94
 
        string->length++;
 
95
                string->buffer [++string->length] = '\0';
95
96
}
 
97
#endif
96
98
 
97
99
extern void vStringCatS (vString *const string, const char *const s)
98
100
{
 
101
#if 1
 
102
        const size_t len = strlen (s);
 
103
        while (string->length + len + 1 >= string->size)/*  check for buffer overflow */
 
104
                vStringAutoResize (string);
 
105
        strcpy (string->buffer + string->length, s);
 
106
        string->length += len;
 
107
#else
99
108
    const char *p = s;
100
 
 
101
109
    do
102
 
        vStringPut (string, *p);
 
110
                vStringPut (string, *p);
103
111
    while (*p++ != '\0');
 
112
#endif
104
113
}
105
114
 
106
 
extern vString *vStringNewCopy (vString *const string)
 
115
extern vString *vStringNewCopy (const vString *const string)
107
116
{
108
117
    vString *vs = vStringNew ();
109
118
    vStringCatS (vs, string->buffer);
117
126
    return vs;
118
127
}
119
128
 
120
 
extern void vStringNCatS (vString *const string, const char *const s,
121
 
                          const size_t length)
 
129
extern void vStringNCatS (
 
130
                vString *const string, const char *const s, const size_t length)
122
131
{
123
132
    const char *p = s;
124
133
    size_t remain = length;
170
179
    }
171
180
}
172
181
 
 
182
/*  Chop last character from string.
 
183
 */
 
184
extern void vStringChop (vString *const string)
 
185
{
 
186
        if (string->length > 0)
 
187
        {
 
188
                --string->length;
 
189
                string->buffer [string->length] = '\0';
 
190
        }
 
191
}
 
192
 
173
193
extern void vStringCopyS (vString *const string, const char *const s)
174
194
{
175
195
    vStringClear (string);
176
196
    vStringCatS (string, s);
177
197
}
178
198
 
179
 
extern void vStringNCopyS (vString *const string, const char *const s,
180
 
                           const size_t length)
 
199
extern void vStringNCopyS (
 
200
                vString *const string, const char *const s, const size_t length)
181
201
{
182
202
    vStringClear (string);
183
203
    vStringNCatS (string, s, length);
184
204
}
185
205
 
186
 
extern void vStringCopyToLower (vString *const dest, vString *const src)
 
206
extern void vStringCopyToLower (vString *const dest, const vString *const src)
187
207
{
188
208
    const size_t length = src->length;
189
209
    const char *s = src->buffer;
207
227
    string->length = strlen (string->buffer);
208
228
}
209
229
 
210
 
/* vi:set tabstop=8 shiftwidth=4: */
 
230
/* vi:set tabstop=4 shiftwidth=4: */