Annotation of 43BSD/contrib/mh/sbr/printsw.c, revision 1.1.1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.