summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbapt <bapt@FreeBSD.org>2012-04-15 13:25:51 +0000
committerbapt <bapt@FreeBSD.org>2012-04-15 13:25:51 +0000
commit0b5952ee32209436c9c309856f0db1a4c196b7ff (patch)
tree03aa7c42321406348d7f5e06fd657fdf431b826c
parent179e79fd203fd1e5098387dc459f5d26f36b9f7a (diff)
downloadFreeBSD-src-0b5952ee32209436c9c309856f0db1a4c196b7ff.zip
FreeBSD-src-0b5952ee32209436c9c309856f0db1a4c196b7ff.tar.gz
Improve m4 compatibility with GNU m4 extension ** (exponent)
Submitted by: Marc Espie (espie@OpenBSD.org) Approved by: des@ (mentor)
-rw-r--r--usr.bin/m4/eval.c5
-rw-r--r--usr.bin/m4/extern.h1
-rw-r--r--usr.bin/m4/main.c4
3 files changed, 7 insertions, 3 deletions
diff --git a/usr.bin/m4/eval.c b/usr.bin/m4/eval.c
index 7cdad63..729cf18 100644
--- a/usr.bin/m4/eval.c
+++ b/usr.bin/m4/eval.c
@@ -269,10 +269,11 @@ expand_builtin(const char *argv[], int argc, int td)
case INCLTYPE:
if (argc > 2)
if (!doincl(argv[2])) {
- if (mimic_gnu)
+ if (mimic_gnu) {
warn("%s at line %lu: include(%s)",
CURRENT_NAME, CURRENT_LINE, argv[2]);
- else
+ exit_code = 1;
+ } else
err(1, "%s at line %lu: include(%s)",
CURRENT_NAME, CURRENT_LINE, argv[2]);
}
diff --git a/usr.bin/m4/extern.h b/usr.bin/m4/extern.h
index 29ac774..9054d22 100644
--- a/usr.bin/m4/extern.h
+++ b/usr.bin/m4/extern.h
@@ -87,6 +87,7 @@ extern ndptr macro_getbuiltin(const char *);
/* main.c */
extern void outputstr(const char *);
extern void do_emit_synchline(void);
+extern int exit_code;
#define emit_synchline() do { if (synch_lines) do_emit_synchline(); } while(0)
/* misc.c */
diff --git a/usr.bin/m4/main.c b/usr.bin/m4/main.c
index 28d075a..6b3cad4 100644
--- a/usr.bin/m4/main.c
+++ b/usr.bin/m4/main.c
@@ -164,6 +164,8 @@ static void enlarge_stack(void);
int main(int, char *[]);
+int exit_code = 0;
+
int
main(int argc, char *argv[])
{
@@ -282,7 +284,7 @@ main(int argc, char *argv[])
(void) fclose(outfile[0]);
}
- return 0;
+ return exit_code;
}
/*
OpenPOWER on IntegriCloud