=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/m4/gnum4.c,v retrieving revision 1.50 retrieving revision 1.51 diff -c -r1.50 -r1.51 *** src/usr.bin/m4/gnum4.c 2015/04/29 00:13:26 1.50 --- src/usr.bin/m4/gnum4.c 2017/06/15 13:48:42 1.51 *************** *** 1,4 **** ! /* $OpenBSD: gnum4.c,v 1.50 2015/04/29 00:13:26 millert Exp $ */ /* * Copyright (c) 1999 Marc Espie --- 1,4 ---- ! /* $OpenBSD: gnum4.c,v 1.51 2017/06/15 13:48:42 bcallah Exp $ */ /* * Copyright (c) 1999 Marc Espie *************** *** 35,40 **** --- 35,41 ---- #include #include #include + #include #include #include #include *************** *** 234,240 **** } static char * ! getstring() { addchar('\0'); current = 0; --- 235,241 ---- } static char * ! getstring(void) { addchar('\0'); current = 0; *************** *** 255,265 **** m4errx(1, "regular expression error in %s: %s.", source, errbuf); } static void add_sub(int n, const char *string, regex_t *re, regmatch_t *pm) { if (n > re->re_nsub) ! warnx("No subexpression %d", n); /* Subexpressions that did not match are * not an error. */ else if (pm[n].rm_so != -1 && --- 256,284 ---- m4errx(1, "regular expression error in %s: %s.", source, errbuf); } + /* warnx() plus check to see if we need to change exit code or exit. + * -E flag functionality. + */ + void + m4_warnx(const char *fmt, ...) + { + va_list ap; + + va_start(ap, fmt); + vwarnx(fmt, ap); + va_end(ap); + + if (fatal_warns) + exit(1); + if (error_warns) + exit_code = 1; + } + static void add_sub(int n, const char *string, regex_t *re, regmatch_t *pm) { if (n > re->re_nsub) ! m4_warnx("No subexpression %d", n); /* Subexpressions that did not match are * not an error. */ else if (pm[n].rm_so != -1 && *************** *** 442,448 **** dopatsubst(const char *argv[], int argc) { if (argc <= 3) { ! warnx("Too few arguments to patsubst"); return; } /* special case: empty regexp */ --- 461,467 ---- dopatsubst(const char *argv[], int argc) { if (argc <= 3) { ! m4_warnx("Too few arguments to patsubst"); return; } /* special case: empty regexp */ *************** *** 494,500 **** const char *source; if (argc <= 3) { ! warnx("Too few arguments to regexp"); return; } /* special gnu case */ --- 513,519 ---- const char *source; if (argc <= 3) { ! m4_warnx("Too few arguments to regexp"); return; } /* special gnu case */