news: make -a and -n get along (thanks lyndon)

currently, -a and -n are mutually exclusive.
this change allows them to be used together.
This commit is contained in:
Ori Bernstein 2021-01-26 18:07:04 -08:00
parent 21e5726f43
commit a5517fca5f

View file

@ -44,30 +44,39 @@ void note(char *s);
void void
main(int argc, char *argv[]) main(int argc, char *argv[])
{ {
int i; int i, aflag = 0, nflag = 0;
int doupdate = 1;
int printall = 0;
void (*printer)(char*) = print_item;
Binit(&bout, 1, OWRITE); Binit(&bout, 1, OWRITE);
if(argc == 1) { if(argc == 1) {
eachitem(print_item, 0, 1); eachitem(print_item, printall, doupdate);
exits(0); exits(0);
} }
ARGBEGIN{ ARGBEGIN{
case 'a': /* print all */ case 'a': /* print all */
eachitem(print_item, 1, 0); doupdate = 0;
printall = 1;
break; break;
case 'n': /* names only */ case 'n': /* names only */
eachitem(note, 0, 0); doupdate = 0;
if(n_items) printer = note;
Bputc(&bout, '\n');
break; break;
default: default:
fprint(2, "news: bad option %c\n", ARGC()); fprint(2, "news: bad option %c\n", ARGC());
exits("usage"); exits("usage");
}ARGEND }ARGEND
for(i=0; i<argc; i++)
print_item(argv[i]); if (argc == 0)
eachitem(printer, printall, doupdate);
else
for(i=0; i<argc; i++)
print_item(argv[i]);
if (n_items)
Bputc(&bout, '\n');
exits(0); exits(0);
} }
@ -227,3 +236,4 @@ note(char *file)
Bprint(&bout, " %s", file); Bprint(&bout, " %s", file);
n_items++; n_items++;
} }