awk: in BEGIN section $0 should be "", not "0".
This commit is contained in:
parent
bdea2c06dc
commit
41d5ebee17
@ -366,25 +366,22 @@ static const uint32_t tokeninfo[] = {
|
|||||||
enum {
|
enum {
|
||||||
CONVFMT, OFMT, FS, OFS,
|
CONVFMT, OFMT, FS, OFS,
|
||||||
ORS, RS, RT, FILENAME,
|
ORS, RS, RT, FILENAME,
|
||||||
SUBSEP, ARGIND, ARGC, ARGV,
|
SUBSEP, F0, ARGIND, ARGC,
|
||||||
ERRNO, FNR,
|
ARGV, ERRNO, FNR, NR,
|
||||||
NR, NF, IGNORECASE,
|
NF, IGNORECASE, ENVIRON, NUM_INTERNAL_VARS
|
||||||
ENVIRON, F0, NUM_INTERNAL_VARS
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char vNames[] ALIGN1 =
|
static const char vNames[] ALIGN1 =
|
||||||
"CONVFMT\0" "OFMT\0" "FS\0*" "OFS\0"
|
"CONVFMT\0" "OFMT\0" "FS\0*" "OFS\0"
|
||||||
"ORS\0" "RS\0*" "RT\0" "FILENAME\0"
|
"ORS\0" "RS\0*" "RT\0" "FILENAME\0"
|
||||||
"SUBSEP\0" "ARGIND\0" "ARGC\0" "ARGV\0"
|
"SUBSEP\0" "$\0*" "ARGIND\0" "ARGC\0"
|
||||||
"ERRNO\0" "FNR\0"
|
"ARGV\0" "ERRNO\0" "FNR\0" "NR\0"
|
||||||
"NR\0" "NF\0*" "IGNORECASE\0*"
|
"NF\0*" "IGNORECASE\0*" "ENVIRON\0" "\0";
|
||||||
"ENVIRON\0" "$\0*" "\0";
|
|
||||||
|
|
||||||
static const char vValues[] ALIGN1 =
|
static const char vValues[] ALIGN1 =
|
||||||
"%.6g\0" "%.6g\0" " \0" " \0"
|
"%.6g\0" "%.6g\0" " \0" " \0"
|
||||||
"\n\0" "\n\0" "\0" "\0"
|
"\n\0" "\n\0" "\0" "\0"
|
||||||
"\034\0"
|
"\034\0" "\0" "\377";
|
||||||
"\377";
|
|
||||||
|
|
||||||
/* hash size may grow to these values */
|
/* hash size may grow to these values */
|
||||||
#define FIRST_PRIME 61
|
#define FIRST_PRIME 61
|
||||||
@ -1856,7 +1853,6 @@ static int fmt_num(char *b, int size, const char *format, double n, int int_as_i
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* formatted output into an allocated buffer, return ptr to buffer */
|
/* formatted output into an allocated buffer, return ptr to buffer */
|
||||||
static char *awk_printf(node *n)
|
static char *awk_printf(node *n)
|
||||||
{
|
{
|
||||||
@ -2866,18 +2862,18 @@ int awk_main(int argc, char **argv)
|
|||||||
parse_program(s + 1);
|
parse_program(s + 1);
|
||||||
free(s);
|
free(s);
|
||||||
} while (list_f);
|
} while (list_f);
|
||||||
|
argc++;
|
||||||
} else { // no -f: take program from 1st parameter
|
} else { // no -f: take program from 1st parameter
|
||||||
if (!argc)
|
if (!argc)
|
||||||
bb_show_usage();
|
bb_show_usage();
|
||||||
g_progname = "cmd. line";
|
g_progname = "cmd. line";
|
||||||
parse_program(*argv++);
|
parse_program(*argv++);
|
||||||
argc--;
|
|
||||||
}
|
}
|
||||||
if (opt & 0x8) // -W
|
if (opt & 0x8) // -W
|
||||||
bb_error_msg("warning: unrecognized option '-W %s' ignored", opt_W);
|
bb_error_msg("warning: unrecognized option '-W %s' ignored", opt_W);
|
||||||
|
|
||||||
/* fill in ARGV array */
|
/* fill in ARGV array */
|
||||||
setvar_i(intvar[ARGC], argc + 1);
|
setvar_i(intvar[ARGC], argc);
|
||||||
setari_u(intvar[ARGV], 0, "awk");
|
setari_u(intvar[ARGV], 0, "awk");
|
||||||
i = 0;
|
i = 0;
|
||||||
while (*argv)
|
while (*argv)
|
||||||
|
@ -29,4 +29,11 @@ testing "awk 'gcc build bug'" \
|
|||||||
"" ""
|
"" ""
|
||||||
rm -rf awk_t1_*
|
rm -rf awk_t1_*
|
||||||
|
|
||||||
|
Q='":"'
|
||||||
|
|
||||||
|
testing "awk NF in BEGIN" \
|
||||||
|
"awk 'BEGIN { print ${Q} NF ${Q} \$0 ${Q} \$1 ${Q} \$2 ${Q} }'" \
|
||||||
|
":0::::\n" \
|
||||||
|
"" ""
|
||||||
|
|
||||||
exit $FAILCOUNT
|
exit $FAILCOUNT
|
||||||
|
Loading…
Reference in New Issue
Block a user