Annotation of 43BSDReno/contrib/mh/sbr/printsw.c, revision 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.