• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/libedit/

Lines Matching refs:tok

97 static void FUN(tok,finish)(TYPE(Tokenizer) *);
100 /* FUN(tok,finish)():
104 FUN(tok,finish)(TYPE(Tokenizer) *tok)
107 *tok->wptr = '\0';
108 if ((tok->flags & TOK_KEEP) || tok->wptr != tok->wstart) {
109 tok->argv[tok->argc++] = tok->wstart;
110 tok->argv[tok->argc] = NULL;
111 tok->wstart = ++tok->wptr;
113 tok->flags &= ~TOK_KEEP;
117 /* FUN(tok,init)():
121 FUN(tok,init)(const Char *ifs)
123 TYPE(Tokenizer) *tok = tok_malloc(sizeof(*tok));
125 if (tok == NULL)
127 tok->ifs = tok_strdup(ifs ? ifs : IFS);
128 if (tok->ifs == NULL) {
129 tok_free(tok);
132 tok->argc = 0;
133 tok->amax = AINCR;
134 tok->argv = tok_malloc(sizeof(*tok->argv) * tok->amax);
135 if (tok->argv == NULL) {
136 tok_free(tok->ifs);
137 tok_free(tok);
140 tok->argv[0] = NULL;
141 tok->wspace = tok_malloc(WINCR * sizeof(*tok->wspace));
142 if (tok->wspace == NULL) {
143 tok_free(tok->argv);
144 tok_free(tok->ifs);
145 tok_free(tok);
148 tok->wmax = tok->wspace + WINCR;
149 tok->wstart = tok->wspace;
150 tok->wptr = tok->wspace;
151 tok->flags = 0;
152 tok->quote = Q_none;
154 return tok;
158 /* FUN(tok,reset)():
162 FUN(tok,reset)(TYPE(Tokenizer) *tok)
165 tok->argc = 0;
166 tok->wstart = tok->wspace;
167 tok->wptr = tok->wspace;
168 tok->flags = 0;
169 tok->quote = Q_none;
173 /* FUN(tok,end)():
177 FUN(tok,end)(TYPE(Tokenizer) *tok)
180 tok_free(tok->ifs);
181 tok_free(tok->wspace);
182 tok_free(tok->argv);
183 tok_free(tok);
188 /* FUN(tok,line)():
191 * tok current tokenizer state (setup with FUN(tok,init)())
206 FUN(tok,line)(TYPE(Tokenizer) *tok, const TYPE(LineInfo) *line,
218 cc = (int)tok->argc;
219 co = (int)(tok->wptr - tok->wstart);
223 tok->flags |= TOK_KEEP;
224 tok->flags &= ~TOK_EAT;
225 switch (tok->quote) {
227 tok->quote = Q_single; /* Enter single quote
232 tok->quote = Q_none;
236 tok->quote = Q_none;
237 *tok->wptr++ = *ptr;
241 *tok->wptr++ = *ptr;
245 tok->quote = Q_double;
246 *tok->wptr++ = *ptr;
255 tok->flags &= ~TOK_EAT;
256 tok->flags |= TOK_KEEP;
257 switch (tok->quote) {
259 tok->quote = Q_double;
263 tok->quote = Q_none;
267 tok->quote = Q_none;
268 *tok->wptr++ = *ptr;
272 *tok->wptr++ = *ptr;
276 tok->quote = Q_double;
277 *tok->wptr++ = *ptr;
286 tok->flags |= TOK_KEEP;
287 tok->flags &= ~TOK_EAT;
288 switch (tok->quote) {
290 tok->quote = Q_one;
294 tok->quote = Q_doubleone;
298 *tok->wptr++ = *ptr;
299 tok->quote = Q_none;
303 *tok->wptr++ = *ptr;
307 tok->quote = Q_double;
308 *tok->wptr++ = *ptr;
317 tok->flags &= ~TOK_EAT;
318 switch (tok->quote) {
324 *tok->wptr++ = *ptr; /* Add the return */
328 tok->flags |= TOK_EAT;
329 tok->quote = Q_double;
333 tok->flags |= TOK_EAT;
334 tok->quote = Q_none;
343 switch (tok->quote) {
346 if (tok->flags & TOK_EAT) {
347 tok->flags &= ~TOK_EAT;
359 tok->quote = Q_double;
360 *tok->wptr++ = *ptr;
364 tok->quote = Q_none;
365 *tok->wptr++ = *ptr;
374 tok->flags &= ~TOK_EAT;
375 switch (tok->quote) {
377 if (Strchr(tok->ifs, *ptr) != NULL)
378 FUN(tok,finish)(tok);
380 *tok->wptr++ = *ptr;
385 *tok->wptr++ = *ptr;
390 *tok->wptr++ = '\\';
391 tok->quote = Q_double;
392 *tok->wptr++ = *ptr;
396 tok->quote = Q_none;
397 *tok->wptr++ = *ptr;
407 if (tok->wptr >= tok->wmax - 4) {
408 size_t size = (size_t)(tok->wmax - tok->wspace + WINCR);
409 Char *s = tok_realloc(tok->wspace,
414 if (s != tok->wspace) {
416 for (i = 0; i < tok->argc; i++) {
417 tok->argv[i] =
418 (tok->argv[i] - tok->wspace) + s;
420 tok->wptr = (tok->wptr - tok->wspace) + s;
421 tok->wstart = (tok->wstart - tok->wspace) + s;
422 tok->wspace = s;
424 tok->wmax = s + size;
426 if (tok->argc >= tok->amax - 4) {
428 tok->amax += AINCR;
429 p = tok_realloc(tok->argv, tok->amax * sizeof(*p));
431 tok->amax -= AINCR;
434 tok->argv = p;
439 cc = (int)tok->argc;
440 co = (int)(tok->wptr - tok->wstart);
446 FUN(tok,finish)(tok);
447 *argv = (const Char **)tok->argv;
448 *argc = (int)tok->argc;
452 /* FUN(tok,str)():
457 FUN(tok,str)(TYPE(Tokenizer) *tok, const Char *line, int *argc,
465 return FUN(tok,line)(tok, &li, argc, argv, NULL, NULL);