1 cfa37a7b 2004-04-10 devnull .TH GETFIELDS 3
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>
7 cfa37a7b 2004-04-10 devnull .B #include <libc.h>
9 cfa37a7b 2004-04-10 devnull .ta \w'\fLchar* \fP'u
11 cfa37a7b 2004-04-10 devnull int getfields(char *str, char **args, int maxargs, int multiflag,
14 cfa37a7b 2004-04-10 devnull char *delims)
17 cfa37a7b 2004-04-10 devnull int gettokens(char *str, char **args, int maxargs, char *delims)
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
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
30 cfa37a7b 2004-04-10 devnull .IR str .
31 cfa37a7b 2004-04-10 devnull Delimiters between these fields are set to null.
33 cfa37a7b 2004-04-10 devnull Fields are substrings of
35 cfa37a7b 2004-04-10 devnull whose definition depends on the value of
36 cfa37a7b 2004-04-10 devnull .IR multiflag.
38 cfa37a7b 2004-04-10 devnull .I multiflag
40 cfa37a7b 2004-04-10 devnull adjacent fields are separated by exactly one delimiter.
41 cfa37a7b 2004-04-10 devnull For example
44 cfa37a7b 2004-04-10 devnull getfields("#alice#bob##charles###", arg, 3, 0, "#");
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" ,
51 cfa37a7b 2004-04-10 devnull .BR "bob##charles###" .
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
59 cfa37a7b 2004-04-10 devnull getfields("#alice#bob##charles###", arg, 3, 1, "#");
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" ,
66 cfa37a7b 2004-04-10 devnull .BR "charles###" .
68 cfa37a7b 2004-04-10 devnull Getfields returns the number of fields pointed to.
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
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
78 cfa37a7b 2004-04-10 devnull .IR rc (1).
80 bf8a59fa 2004-04-11 devnull .IR quote (3)
81 cfa37a7b 2004-04-10 devnull for related quote-handling software.
83 cfa37a7b 2004-04-10 devnull .I Tokenize
85 cfa37a7b 2004-04-10 devnull .I gettokens
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 b5fdffee 2004-04-19 devnull .B /usr/local/plan9/src/libc/port/tokenize.c
91 cfa37a7b 2004-04-10 devnull .SH SEE ALSO
92 cfa37a7b 2004-04-10 devnull .I strtok
94 bf8a59fa 2004-04-11 devnull .IR strcat (3),
95 bf8a59fa 2004-04-11 devnull .IR quote (3).