]> diplodocus.org Git - nmh/blob - docs/historical/mh-nov-1983/subs/crpbrkstring.c
Update XOAUTH2 documentation.
[nmh] / docs / historical / mh-nov-1983 / subs / crpbrkstring.c
1 #define NSTR 25
2
3 /*
4 * Parse the given string into a number of sub strings separated
5 * by characters in brksep. Terminate on brkterm or 0.
6 */
7
8 char **
9 brkstring(strg, brksep, brkterm)
10 char *strg;
11 char *brksep, *brkterm;
12 {
13 register int c;
14 register char *cp, **ap;
15 static char *broken[NSTR+1];
16
17 cp = strg;
18 ap = broken;
19 for (;;) {
20 if (ap-broken > NSTR) {
21 broken[NSTR] = 0;
22 return(broken);
23 }
24 while (brkany(*cp, brksep))
25 cp++;
26 if (*cp == 0 || *cp == brkterm) {
27 done:
28 *ap = 0;
29 return(broken);
30 }
31 *ap++ = cp;
32 while (!brkany(*cp, brksep) && *cp && *cp != brkterm)
33 cp++;
34 if (*cp == 0 || *cp == brkterm) {
35 *cp = 0;
36 goto done;
37 }
38 *cp++ = 0;
39 }
40 }
41
42 brkany (chr,strg) /* returns 1 if chr in strg, 0 otherwise */
43 char chr,*strg;
44 {
45 register char *sp;
46
47 for (sp=strg; *sp; sp++)
48 if (chr == *sp) return (1);
49 return (0);
50 }