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:
parent
21e5726f43
commit
a5517fca5f
1 changed files with 18 additions and 8 deletions
|
@ -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++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue