summaryrefslogtreecommitdiff
path: root/sys/src/cmd/awk/main.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2017-08-12 21:34:06 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2017-08-12 21:34:06 +0200
commit9cf3dc9a259cadc80e6d3840c658ef1d5f7c94a4 (patch)
tree3ae416813cb7631de1c27a74f8cc35ae5686c356 /sys/src/cmd/awk/main.c
parent3f9d5e4a4f9e4f0b5fe66e4a6745a4b8c5f6e447 (diff)
awk: allow string as exit status
Diffstat (limited to 'sys/src/cmd/awk/main.c')
-rw-r--r--sys/src/cmd/awk/main.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/sys/src/cmd/awk/main.c b/sys/src/cmd/awk/main.c
index 2695de56d..e4244e333 100644
--- a/sys/src/cmd/awk/main.c
+++ b/sys/src/cmd/awk/main.c
@@ -40,7 +40,6 @@ int dbg = 0;
char *cmdname; /* gets argv[0] for error messages */
extern Biobuf *yyin; /* lex input file */
char *lexprog; /* points to program argument if it exists */
-extern int errorflag; /* non-zero if any syntax errors; set by yyerror */
int compile_time = 2; /* for error printing: */
/* 2 = cmdline, 1 = compile, 0 = running */
@@ -161,15 +160,13 @@ void main(int argc, char *argv[])
yyparse();
if (fs)
*FS = qstring(fs, '\0');
- dprint( ("errorflag=%d\n", errorflag) );
- if (errorflag == 0) {
+ dprint( ("exitstatus=%s\n", exitstatus) );
+ if (exitstatus == nil) {
compile_time = 0;
run(winner);
} else
bracecheck();
- if(errorflag)
- exits("error");
- exits(0);
+ exits(exitstatus);
}
int pgetc(void) /* get 1 character from awk program */