|
|
1.1 root 1: /* printsw.c - print switches */
2:
3: #include "../h/mh.h"
4:
5:
6: void printsw (substr, swp, prefix)
7: register char *substr,
8: *prefix;
9: register struct swit *swp;
10: {
11: int len,
12: optno;
13: register int i;
14: register char *cp,
15: *cp1,
16: *sp;
17: char buf[128];
18:
19: len = strlen (substr);
20: for (; swp -> sw; swp++) {
21: if (!*substr || /* null matches all strings */
22: (ssequal (substr, swp -> sw) && len >= swp -> minchars)) {
23: optno = 0;
24: if (sp = (&swp[1]) -> sw) /* next switch */
25: if (!*substr && sp[0] == 'n' && sp[1] == 'o' &&
26: strcmp (&sp[2], swp -> sw) == 0 && (
27: ((&swp[1]) -> minchars == 0 && swp -> minchars == 0) ||
28: ((&swp[1]) -> minchars == (swp -> minchars) + 2)))
29: optno++;
30: if (swp -> minchars > 0) {
31: cp = buf;
32: *cp++ = '(';
33: if (optno) {
34: (void) strcpy (cp, "[no]");
35: cp += strlen (cp);
36: }
37: for (cp1 = swp -> sw, i = 0; i < swp -> minchars; i++)
38: *cp++ = *cp1++;
39: *cp++ = ')';
40: while (*cp++ = *cp1++);
41: printf (" %s%s\n", prefix, buf);
42: }
43: else
44: if (swp -> minchars == 0)
45: printf (optno ? " %s[no]%s\n" : " %s%s\n",
46: prefix, swp -> sw);
47: if (optno)
48: swp++; /* skip -noswitch */
49: }
50: }
51: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.