X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fprint_sw.c;h=02d00bc05bc501a2e8db6341f75d094cd51c90d6;hp=426724b4415697b2972438b0dc4bd59579928d07;hb=4112940aea5591648b03a81907408752c08b33aa;hpb=6c42153ad9362cc676ea66563bf400d7511b3b68 diff --git a/sbr/print_sw.c b/sbr/print_sw.c index 426724b..02d00bc 100644 --- a/sbr/print_sw.c +++ b/sbr/print_sw.c @@ -1,57 +1,56 @@ - /* - * print_sw.c -- print switches - * - * $Id$ - * - * This code is Copyright (c) 2002, by the authors of nmh. See the - * COPYRIGHT file in the root directory of the nmh distribution for - * complete copyright information. - */ +** print_sw.c -- print switches +** +** This code is Copyright (c) 2002, by the authors of nmh. See the +** COPYRIGHT file in the root directory of the nmh distribution for +** complete copyright information. +*/ #include void -print_sw (char *substr, struct swit *swp, char *prefix) +print_sw(char *substr, struct swit *swp, char *prefix, FILE *fp) { - int len, optno; - register int i; - register char *cp, *cp1, *sp; - char buf[128]; + int len, optno; + int i; + char *cp, *cp1, *sp; + char buf[128]; - len = strlen(substr); - for (; swp->sw; swp++) { - /* null matches all strings */ - if (!*substr || (ssequal (substr, swp->sw) && len >= swp->minchars)) { - optno = 0; - /* next switch */ - if ((sp = (&swp[1])->sw)) { - if (!*substr && sp[0] == 'n' && sp[1] == 'o' && - strcmp (&sp[2], swp->sw) == 0 && ( - ((&swp[1])->minchars == 0 && swp->minchars == 0) || - ((&swp[1])->minchars == (swp->minchars) + 2))) - optno++; - } + len = strlen(substr); + for (; swp->sw; swp++) { + /* null matches all strings */ + if (!*substr || (strncmp(swp->sw, substr, len)==0 && + len >= swp->minchars)) { + optno = 0; + /* next switch */ + if ((sp = (&swp[1])->sw)) { + if (!*substr && sp[0] == 'n' && sp[1] == 'o' && + strcmp(&sp[2], swp->sw) == 0 && ( + ((&swp[1])->minchars == 0 && swp->minchars == 0) || + ((&swp[1])->minchars == (swp->minchars) + 2))) + optno++; + } - if (swp->minchars > 0) { - cp = buf; - *cp++ = '('; - if (optno) { - strcpy (cp, "[no]"); - cp += strlen (cp); + if (swp->minchars > 0) { + cp = buf; + *cp++ = '('; + if (optno) { + strcpy(cp, "[no]"); + cp += strlen(cp); + } + for (cp1 = swp->sw, i = 0; i < swp->minchars; i++) + *cp++ = *cp1++; + *cp++ = ')'; + while ((*cp++ = *cp1++)); + fprintf(fp, " %s%s\n", prefix, buf); + } else { + if (!swp->minchars) + fprintf(fp, optno ? " %s[no]%s\n" : " %s%s\n", + prefix, swp->sw); + } + if (optno) + swp++; /* skip -noswitch */ } - for (cp1 = swp->sw, i = 0; i < swp->minchars; i++) - *cp++ = *cp1++; - *cp++ = ')'; - while ((*cp++ = *cp1++)); - printf (" %s%s\n", prefix, buf); - } else { - if (!swp->minchars) - printf(optno ? " %s[no]%s\n" : " %s%s\n", prefix, swp->sw); - } - if (optno) - swp++; /* skip -noswitch */ } - } }