]> diplodocus.org Git - nmh/blob - docs/historical/mh-jun-1982/subs/brkstring.c
Create new mh-format function %(ordinal)
[nmh] / docs / historical / mh-jun-1982 / subs / brkstring.c
1 #ifdef COMMENT
2 Proprietary Rand Corporation, 1981.
3 Further distribution of this software
4 subject to the terms of the Rand
5 license agreement.
6 #endif
7
8 /* returns pointer to static table of substring ptrs */
9
10 #define NSTR 25
11
12 char **
13 brkstring(strg,brksep,brkterm)
14 char *strg;
15 char *brksep, *brkterm;
16 {
17
18 register char c, *sp;
19 static char *broken[NSTR+1]; /* static array of substring start addresses */
20 int bi;
21
22 sp = strg; /* scan string, replacing separators with zeroes */
23
24 for (bi=0; bi<NSTR; bi++) { /* and entering start addrs in "broken" */
25 while (brkany(c = *sp, brksep)) *sp++ = 0;
26 if (!c || brkany(c, brkterm)) {
27 *sp=0;
28 broken[bi] = 0;
29 return(broken); /* terminator found, finish up */
30 }
31
32 broken[bi] = sp; /* set next start addr */
33
34 while ((c = *++sp) && !brkany(c,brksep) && !brkany(c,brkterm));
35
36 }
37 broken[NSTR] = 0; /* reached limit of NSTR substrings */
38 return (broken);
39 }
40
41 brkany (chr,strg) /* returns 1 if chr in strg, 0 otherwise */
42 char chr,*strg;
43 {
44 register char *sp;
45
46 for (sp=strg; *sp; sp++)
47 if (chr == *sp) return (1);
48 return (0);
49 }