Lines Matching refs:s

56 grow(s)  in grow()  argument
57 String *s; in grow()
60 int sz = s->sg.max * 2;
65 (void) memcpy(ns, s, s->sg.max + sizeof (StringGuts) + 1);
66 free(s);
68 if ((ns = (String *)realloc(s, sz + sizeof (StringGuts) + 1)) == NULL)
81 ror(s, n) in ror() argument
82 String *s; in ror()
85 assert(s != 0);
86 while (s->sg.end + n > s->sg.max)
87 s = grow(s);
90 assert(s->sg.end >= s->sg.start);
91 (void) memmove(s->data + n, s->data, s->sg.end - s->sg.start);
95 for (i = s->sg.end - 1; i >= s->sg.start; i--)
96 s->data[i+n] = s->data[i];
99 s->sg.end += n;
100 s->sg.start += n;
101 s->data[s->sg.end] = 0;
102 return (s);
110 prep_String(c, s) in prep_String() argument
112 String *s;
114 return (nprep_String(c, s, ID_NAME_MAX));
122 nprep_String(c, s, n) in nprep_String() argument
124 String *s;
128 assert(s != 0);
131 if (len > s->sg.start)
132 s = ror(s, len - s->sg.start);
133 s->sg.start -= len;
134 (void) memcpy(s->data + s->sg.start, c, len);
135 return (s);
143 app_String(s, c) in app_String() argument
144 String *s; in app_String()
147 return (napp_String(s, c, ID_NAME_MAX));
155 napp_String(String *s, const char *c, int n) in napp_String() argument
159 assert(s != 0); in napp_String()
162 catlen = s->sg.end + len; in napp_String()
163 while (catlen > s->sg.max) in napp_String()
164 s = grow(s); in napp_String()
165 (void) memcpy(s->data + s->sg.end, c, len); in napp_String()
166 s->sg.end += len; in napp_String()
167 s->data[s->sg.end] = '\0'; in napp_String()
168 return (s); in napp_String()
179 mk_String(s) in mk_String() argument
180 String *s; in mk_String()
182 if (s)
183 return (s);
184 s = (String *)malloc(STRING_START + sizeof (StringGuts) + 1);
185 if (s == NULL)
187 s->sg.start = s->sg.end = STRING_START/2;
188 s->sg.max = STRING_START;
189 s->data[s->sg.end] = '\0';
190 return (s);
194 free_String(s) in free_String() argument
195 String *s; in free_String()
197 if (s)
198 free(s);
207 set_String(s, c) in set_String() argument
208 String *s; in set_String()
212 while (len > s->sg.max)
213 s = grow(s);
214 s->sg.start = s->sg.end = s->sg.max / 2;
215 s = app_String(s, c);
216 return (s);
224 trunc_String(String *s, int n) in trunc_String() argument
226 assert(n <= s->sg.end - s->sg.start); in trunc_String()
227 s->sg.end -= n; in trunc_String()
228 s->data[s->sg.end] = '\0'; in trunc_String()
229 return (s); in trunc_String()