summaryrefslogtreecommitdiffstats
path: root/smenu.c
diff options
context:
space:
mode:
authorpgen <p.gen.progs@gmail.com>2019-01-07 21:29:29 +0100
committerpgen <p.gen.progs@gmail.com>2019-01-20 10:49:47 +0100
commit9df4a51a034b7ffa01f0a5dc0b859ed886cd6d54 (patch)
tree4966bb77e69bdecd64fbf8f0255242a39ec17c31 /smenu.c
parent2e47a6cec4c9c950a3fcf4e7f5c7a6a17af168b4 (diff)
Make the argument of -n optional, 0 by default
Diffstat (limited to 'smenu.c')
-rw-r--r--smenu.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/smenu.c b/smenu.c
index f9ada7b..5672b3d 100644
--- a/smenu.c
+++ b/smenu.c
@@ -142,8 +142,8 @@ int quiet_timeout = 0; /* 1 when we want no message to be displayed. */
void
short_usage(void)
{
- fprintf(stderr, "Usage: smenu [-h|-?] [-f config_file] [-n lines] ");
- fprintf(stderr, "[-t [cols]] [-k] [-v] \\\n");
+ fprintf(stderr, "Usage: smenu [-h|-?] [-f config_file] [-n [lines]] ");
+ fprintf(stderr, "[-t [cols]] [-k] [-v] \\\n");
fprintf(stderr, " [-s pattern] [-m message] [-w] [-d] [-M] [-c] [-l] ");
fprintf(stderr, "[-r] [-b] \\\n");
fprintf(stderr, " [-a prefix:attr [prefix:attr]...] ");
@@ -5131,7 +5131,7 @@ main(int argc, char * argv[])
/* """"""""""""""""""""""""""""" */
while ((opt = egetopt(argc, argv,
"Vf:h?X:x:qdMba:i:e:S:I:E:A:Z:1:2:3:4:5:C:R:"
- "kvclwrg%n:t%m:s:W:L:T%P%pN%U%FD:/:"))
+ "kvclwrg%n%t%m:s:W:L:T%P%pN%U%FD:/:"))
!= -1)
{
switch (opt)
@@ -5151,13 +5151,16 @@ main(int argc, char * argv[])
break;
case 'n':
- if (eoptarg && *eoptarg != '-')
- win.asked_max_lines = abs(atoi(eoptarg));
- else
+ if (eoptarg != NULL)
{
- TELL("Option requires an argument -- ");
- short_usage();
+ if (sscanf(eoptarg, "%ld", &(win.asked_max_lines)) != 1)
+ {
+ TELL("Argument must be numeric -- ");
+ short_usage();
+ }
}
+ else
+ win.asked_max_lines = 0;
break;
case 'd':