ref: a5517fca5fff3b6038b5e5a1f3dbc828d798fe92
parent: 21e5726f43707a5736be0f0e38f41c058620401b
author: Ori Bernstein <[email protected]>
date: Tue Jan 26 13:07:04 EST 2021
news: make -a and -n get along (thanks lyndon) currently, -a and -n are mutually exclusive. this change allows them to be used together.
--- a/sys/src/cmd/news.c
+++ b/sys/src/cmd/news.c
@@ -44,22 +44,25 @@
void
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);
if(argc == 1) {
- eachitem(print_item, 0, 1);
+ eachitem(print_item, printall, doupdate);
exits(0);
}
ARGBEGIN{
case 'a': /* print all */
- eachitem(print_item, 1, 0);
+ doupdate = 0;
+ printall = 1;
break;
case 'n': /* names only */
- eachitem(note, 0, 0);
- if(n_items)
- Bputc(&bout, '\n');
+ doupdate = 0;
+ printer = note;
break;
default:
@@ -66,8 +69,14 @@
fprint(2, "news: bad option %c\n", ARGC());
exits("usage");
}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);
}
@@ -227,3 +236,4 @@
Bprint(&bout, " %s", file);
n_items++;
}
+