From 6d51f44e7d886a9d8b6243f414603dc3e1fdd837 Mon Sep 17 00:00:00 2001 From: Glenn Burkhardt Date: Tue, 30 Sep 2003 14:19:20 +0000 Subject: [PATCH] fix handling of "-list" and "-seq" options, so behavior is orthoganal. Previously, "pick -list -seq seqname" meant "pick -nolist -seq seqname". Now "pick -list -seq seqname" and "pick -seq seqname -list" do the same thing. Thanks to Robert Elz. --- man/pick.man | 13 +------------ uip/pick.c | 13 +++++++------ 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/man/pick.man b/man/pick.man index cb40ccb..a9171f4 100644 --- a/man/pick.man +++ b/man/pick.man @@ -244,9 +244,7 @@ the folder argument to .B scan as well. .PP -Regardless of the operation of the -.B \-list -switch, the +The .B \-sequence .I name switch may be given once for each sequence the user wishes to define. @@ -262,15 +260,6 @@ pick\0\-from\0frated\0\-seq\0fred defines a new message sequence for the current folder called \*(lqfred\*(rq which contains exactly those messages that were selected. .PP -Note that whenever -.B pick -processes a -.B \-sequence -.I name -switch, it -sets -.BR \-nolist . -.PP By default, .B pick will zero the sequence before adding it. This diff --git a/uip/pick.c b/uip/pick.c index 65a9091..9f4bf0f 100644 --- a/uip/pick.c +++ b/uip/pick.c @@ -72,7 +72,7 @@ static struct swit switches[] = { { NULL, 0 } }; -static int listsw = 0; +static int listsw = -1; int @@ -115,6 +115,7 @@ main (int argc, char **argv) switch (smatch (cp, switches)) { case AMBIGSW: ambigsw (cp, switches); + listsw = 0; /* HACK */ done (1); case UNKWNSW: adios (NULL, "-%s unknown", cp); @@ -127,6 +128,7 @@ main (int argc, char **argv) done (1); case VERSIONSW: print_version(invo_name); + listsw = 0; /* HACK */ done (1); case CCSW: @@ -163,7 +165,6 @@ main (int argc, char **argv) if (seqp >= NUMATTRS) adios (NULL, "too many sequences (more than %d) specified", NUMATTRS); seqs[seqp++] = cp; - listsw = 0; continue; case PUBLSW: publicsw = 1; @@ -179,7 +180,7 @@ main (int argc, char **argv) continue; case LISTSW: - listsw++; + listsw = 1; continue; case NLISTSW: listsw = 0; @@ -240,10 +241,10 @@ main (int argc, char **argv) /* * If we aren't saving the results to a sequence, - * we need to list the results. + * we default to list the results. */ - if (seqp == 0) - listsw++; + if (listsw == -1) + listsw = !seqp; if (publicsw == 1 && is_readonly(mp)) adios (NULL, "folder %s is read-only, so -public not allowed", folder); -- 1.7.10.4