|
|
1.1 root 1: #include "mk.h"
2: #include <ctype.h>
3:
4: static Word *bollard;
5:
6: static void
7: append(s)
8: char *s;
9: {
10: register Word *w;
11: register char *p;
12:
13: if(bollard){
14: for(w = bollard; w->next; w = w->next)
15: ;
16: w = w->next = stow(s);
17: } else
18: w = bollard = stow(s);
19: if(w) /* if we got a word */
20: for(p = w->s; *p;)
21: *p++ &= ~EBIT;
22: }
23:
24: Word *
25: expand(s)
26: register char *s;
27: {
28: char save;
29: register char *t;
30: Word *head, *w;
31:
32: w = head = newword("");
33: while(*s){
34: while(SEP(*s))
35: s++;
36: if(*s == 0) break;
37: for(t = s+1; *t && !SEP(*t); t++)
38: ;
39: save = *t;
40: *t = 0;
41: bollard = 0;
42: glob(s, append);
43: w->next = bollard;
44: while(w->next)
45: w = w->next;
46: *t = save;
47: s = t;
48: }
49: w = head->next;
50: delword(head);
51: return(w);
52: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.