]> diplodocus.org Git - nmh/blob - docs/historical/mh-nov-1983/subs/brkstring.c
Removed --depth 1 from git clone invocation.
[nmh] / docs / historical / mh-nov-1983 / subs / brkstring.c
1 #define NSTR 25
2 char **brkstring(strg,brksep,brkterm) /* returns pointer to static table of substring ptrs */
3 char *strg;
4 char *brksep, *brkterm;
5 {
6
7 register char c, *bp, *sp;
8 static char *broken[NSTR+1]; /* static array of substring start addresses */
9 int bi;
10
11 sp = strg; /* scan string, replacing separators with zeroes */
12
13 for (bi=0; bi<NSTR; bi++) { /* and entering start addrs in "broken" */
14 while (brkany(c = *sp, brksep)) *sp++ = 0;
15 if (!c || brkany(c, brkterm)) {
16 *sp=0;
17 broken[bi] = 0;
18 return(broken); /* terminator found, finish up */
19 }
20
21 broken[bi] = sp; /* set next start addr */
22
23 while ((c = *++sp) && !brkany(c,brksep) && !brkany(c,brkterm));
24
25 }
26 broken[NSTR] = 0; /* reached limit of NSTR substrings */
27 return (broken);
28 }
29
30 brkany (chr,strg) /* returns 1 if chr in strg, 0 otherwise */
31 char chr,*strg;
32 {
33 register char *sp;
34
35 for (sp=strg; *sp; sp++)
36 if (chr == *sp) return (1);
37 return (0);
38 }