diff options
author | Denys Vlasenko | 2013-11-21 15:09:55 +0100 |
---|---|---|
committer | Denys Vlasenko | 2013-11-21 15:09:55 +0100 |
commit | bd0e221620eb725043b4e748248046ece996a393 (patch) | |
tree | 54d12beebe19b7c50c6b14b15ad18c302fa0eff9 /editors/awk.c | |
parent | 2635369a92db338321b2ba38e73539992967357c (diff) | |
download | busybox-bd0e221620eb725043b4e748248046ece996a393.zip busybox-bd0e221620eb725043b4e748248046ece996a393.tar.gz |
awk: fix a bug in argc counting in recent change
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'editors/awk.c')
-rw-r--r-- | editors/awk.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/editors/awk.c b/editors/awk.c index 29fb2e7..d0e3781 100644 --- a/editors/awk.c +++ b/editors/awk.c @@ -3204,15 +3204,17 @@ int awk_main(int argc, char **argv) opt = getopt32(argv, OPTSTR_AWK, &opt_F, &list_v, &list_f, IF_FEATURE_AWK_GNU_EXTENSIONS(&list_e,) NULL); argv += optind; argc -= optind; - if (opt & OPT_F) { /* -F */ + if (opt & OPT_W) + bb_error_msg("warning: option -W is ignored"); + if (opt & OPT_F) { unescape_string_in_place(opt_F); setvar_s(intvar[FS], opt_F); } - while (list_v) { /* -v */ + while (list_v) { if (!is_assignment(llist_pop(&list_v))) bb_show_usage(); } - while (list_f) { /* -f */ + while (list_f) { char *s = NULL; FILE *from_file; @@ -3230,7 +3232,7 @@ int awk_main(int argc, char **argv) } g_progname = "cmd. line"; #if ENABLE_FEATURE_AWK_GNU_EXTENSIONS - while (list_e) { /* -e */ + while (list_e) { parse_program(llist_pop(&list_e)); } #endif @@ -3238,13 +3240,11 @@ int awk_main(int argc, char **argv) if (!*argv) bb_show_usage(); parse_program(*argv++); - argc++; + argc--; } - if (opt & OPT_W) // -W - bb_error_msg("warning: option -W is ignored"); /* fill in ARGV array */ - setvar_i(intvar[ARGC], argc); + setvar_i(intvar[ARGC], argc + 1); setari_u(intvar[ARGV], 0, "awk"); i = 0; while (*argv) |