Blame


1 cfa37a7b 2004-04-10 devnull .TH GETFIELDS 3
2 cfa37a7b 2004-04-10 devnull .SH NAME
3 cfa37a7b 2004-04-10 devnull getfields, gettokens, tokenize \- break a string into fields
4 cfa37a7b 2004-04-10 devnull .SH SYNOPSIS
5 cfa37a7b 2004-04-10 devnull .B #include <u.h>
6 cfa37a7b 2004-04-10 devnull .br
7 cfa37a7b 2004-04-10 devnull .B #include <libc.h>
8 cfa37a7b 2004-04-10 devnull .PP
9 cfa37a7b 2004-04-10 devnull .ta \w'\fLchar* \fP'u
10 cfa37a7b 2004-04-10 devnull .B
11 cfa37a7b 2004-04-10 devnull int getfields(char *str, char **args, int maxargs, int multiflag,
12 cfa37a7b 2004-04-10 devnull .br
13 cfa37a7b 2004-04-10 devnull .B
14 cfa37a7b 2004-04-10 devnull char *delims)
15 cfa37a7b 2004-04-10 devnull .PP
16 cfa37a7b 2004-04-10 devnull .B
17 cfa37a7b 2004-04-10 devnull int gettokens(char *str, char **args, int maxargs, char *delims)
18 cfa37a7b 2004-04-10 devnull .PP
19 cfa37a7b 2004-04-10 devnull .B
20 cfa37a7b 2004-04-10 devnull int tokenize(char *str, char **args, int maxargs)
21 cfa37a7b 2004-04-10 devnull .SH DESCRIPTION
22 cfa37a7b 2004-04-10 devnull .I Getfields
23 cfa37a7b 2004-04-10 devnull places into the array
24 cfa37a7b 2004-04-10 devnull .I args
25 cfa37a7b 2004-04-10 devnull pointers to the first
26 cfa37a7b 2004-04-10 devnull .I maxargs
27 cfa37a7b 2004-04-10 devnull fields of the null terminated
28 cfa37a7b 2004-04-10 devnull .SM UTF
29 cfa37a7b 2004-04-10 devnull string
30 cfa37a7b 2004-04-10 devnull .IR str .
31 cfa37a7b 2004-04-10 devnull Delimiters between these fields are set to null.
32 cfa37a7b 2004-04-10 devnull .PP
33 cfa37a7b 2004-04-10 devnull Fields are substrings of
34 cfa37a7b 2004-04-10 devnull .I str
35 cfa37a7b 2004-04-10 devnull whose definition depends on the value of
36 cfa37a7b 2004-04-10 devnull .IR multiflag.
37 cfa37a7b 2004-04-10 devnull If
38 cfa37a7b 2004-04-10 devnull .I multiflag
39 cfa37a7b 2004-04-10 devnull is zero,
40 cfa37a7b 2004-04-10 devnull adjacent fields are separated by exactly one delimiter.
41 cfa37a7b 2004-04-10 devnull For example
42 cfa37a7b 2004-04-10 devnull .EX
43 cfa37a7b 2004-04-10 devnull
44 cfa37a7b 2004-04-10 devnull getfields("#alice#bob##charles###", arg, 3, 0, "#");
45 cfa37a7b 2004-04-10 devnull
46 cfa37a7b 2004-04-10 devnull .EE
47 cfa37a7b 2004-04-10 devnull yields three substrings:
48 cfa37a7b 2004-04-10 devnull null-string ,
49 cfa37a7b 2004-04-10 devnull .BR "alice" ,
50 cfa37a7b 2004-04-10 devnull and
51 cfa37a7b 2004-04-10 devnull .BR "bob##charles###" .
52 cfa37a7b 2004-04-10 devnull If the
53 cfa37a7b 2004-04-10 devnull .I multiflag
54 cfa37a7b 2004-04-10 devnull argument is not zero,
55 cfa37a7b 2004-04-10 devnull a field is a non-empty string of non-delimiters.
56 cfa37a7b 2004-04-10 devnull For example
57 cfa37a7b 2004-04-10 devnull .EX
58 cfa37a7b 2004-04-10 devnull
59 cfa37a7b 2004-04-10 devnull getfields("#alice#bob##charles###", arg, 3, 1, "#");
60 cfa37a7b 2004-04-10 devnull
61 cfa37a7b 2004-04-10 devnull .EE
62 cfa37a7b 2004-04-10 devnull yields the three substrings:
63 cfa37a7b 2004-04-10 devnull .BR "alice" ,
64 cfa37a7b 2004-04-10 devnull .BR "bob" ,
65 cfa37a7b 2004-04-10 devnull and
66 cfa37a7b 2004-04-10 devnull .BR "charles###" .
67 cfa37a7b 2004-04-10 devnull .PP
68 cfa37a7b 2004-04-10 devnull Getfields returns the number of fields pointed to.
69 cfa37a7b 2004-04-10 devnull .PP
70 cfa37a7b 2004-04-10 devnull .I Gettokens
71 cfa37a7b 2004-04-10 devnull is the same as
72 cfa37a7b 2004-04-10 devnull .I getfields
73 cfa37a7b 2004-04-10 devnull with
74 cfa37a7b 2004-04-10 devnull .I multiflag
75 cfa37a7b 2004-04-10 devnull non-zero,
76 cfa37a7b 2004-04-10 devnull except that fields may be quoted using single quotes, in the manner
77 cfa37a7b 2004-04-10 devnull of
78 d32deab1 2020-08-16 rsc .MR rc (1) .
79 cfa37a7b 2004-04-10 devnull See
80 d32deab1 2020-08-16 rsc .MR quote (3)
81 cfa37a7b 2004-04-10 devnull for related quote-handling software.
82 cfa37a7b 2004-04-10 devnull .PP
83 cfa37a7b 2004-04-10 devnull .I Tokenize
84 cfa37a7b 2004-04-10 devnull is
85 cfa37a7b 2004-04-10 devnull .I gettokens
86 cfa37a7b 2004-04-10 devnull with
87 cfa37a7b 2004-04-10 devnull .I delims
88 cfa37a7b 2004-04-10 devnull set to \f5"\et\er\en "\fP.
89 cfa37a7b 2004-04-10 devnull .SH SOURCE
90 c3674de4 2005-01-11 devnull .B \*9/src/lib9/tokenize.c
91 cfa37a7b 2004-04-10 devnull .SH SEE ALSO
92 cfa37a7b 2004-04-10 devnull .I strtok
93 cfa37a7b 2004-04-10 devnull in
94 d32deab1 2020-08-16 rsc .MR strcat (3) ,
95 d32deab1 2020-08-16 rsc .MR quote (3) .