Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.bin/m4 resolve conflicts.
details: https://anonhg.NetBSD.org/src/rev/12e005c94012
branches: trunk
changeset: 748546:12e005c94012
user: christos <christos%NetBSD.org@localhost>
date: Mon Oct 26 21:11:28 2009 +0000
description:
resolve conflicts.
diffstat:
usr.bin/m4/Makefile | 24 +-
usr.bin/m4/eval.c | 460 ++++++++++++++--------------------
usr.bin/m4/expr.c | 631 ++----------------------------------------------
usr.bin/m4/extern.h | 158 +++++++-----
usr.bin/m4/gnum4.c | 338 +++++++++++++++++---------
usr.bin/m4/look.c | 296 ++++++++++++++++------
usr.bin/m4/m4.1 | 409 +++++++++++++++++++------------
usr.bin/m4/main.c | 433 +++++++++++++++-----------------
usr.bin/m4/mdef.h | 47 ++-
usr.bin/m4/misc.c | 224 ++++++++++------
usr.bin/m4/parser.y | 5 +
usr.bin/m4/tokenizer.l | 7 +
usr.bin/m4/trace.c | 186 ++++----------
13 files changed, 1451 insertions(+), 1767 deletions(-)
diffs (truncated from 4805 to 300 lines):
diff -r 50e8837a7120 -r 12e005c94012 usr.bin/m4/Makefile
--- a/usr.bin/m4/Makefile Mon Oct 26 21:08:59 2009 +0000
+++ b/usr.bin/m4/Makefile Mon Oct 26 21:11:28 2009 +0000
@@ -1,19 +1,27 @@
-# $NetBSD: Makefile,v 1.14 2009/04/14 22:15:22 lukem Exp $
+# $NetBSD: Makefile,v 1.15 2009/10/26 21:11:28 christos Exp $
#
# @(#)Makefile 8.1 (Berkeley) 6/6/93
# -DEXTENDED
# if you want the paste & spaste macros.
-
-WARNS?= 1 # XXX: -Wcast-qual -Wshadow issues
+.include <bsd.own.mk>
PROG= m4
-CPPFLAGS+= -DEXTENDED -Dunix
-SRCS= eval.c expr.c gnum4.c look.c main.c misc.c trace.c
-
+CPPFLAGS+= -DEXTENDED -I${.CURDIR}/lib
+SRCS= parser.y tokenizer.l eval.c expr.c look.c main.c misc.c gnum4.c trace.c
+.PATH: ${.CURDIR}/lib
+SRCS+= ohash_create_entry.c ohash_delete.c ohash_do.c ohash_entries.c \
+ ohash_enum.c ohash_init.c ohash_int.h ohash_interval.c \
+ ohash_lookup_interval.c ohash_lookup_memory.c ohash_qlookup.c \
+ ohash_qlookupi.c strtonum.c
+YHEADER=1
.if (${HOSTPROG:U} == "")
-DPADD+= ${LIBUTIL}
-LDADD+= -lutil
+DPADD+= ${LIBUTIL} ${LIBL}
+LDADD+= -lutil -ll
.endif
+tokenizer.o: parser.h
+
+CLEANFILES+=parser.c parser.h tokenizer.o
+
.include <bsd.prog.mk>
diff -r 50e8837a7120 -r 12e005c94012 usr.bin/m4/eval.c
--- a/usr.bin/m4/eval.c Mon Oct 26 21:08:59 2009 +0000
+++ b/usr.bin/m4/eval.c Mon Oct 26 21:11:28 2009 +0000
@@ -1,5 +1,5 @@
-/* $NetBSD: eval.c,v 1.19 2004/07/06 13:19:42 mycroft Exp $ */
-/* $OpenBSD: eval.c,v 1.41 2001/10/10 23:25:31 espie Exp $ */
+/* $OpenBSD: eval.c,v 1.66 2008/08/21 21:01:47 espie Exp $ */
+/* $NetBSD: eval.c,v 1.20 2009/10/26 21:11:28 christos Exp $ */
/*
* Copyright (c) 1989, 1993
@@ -33,58 +33,50 @@
* SUCH DAMAGE.
*/
-#if HAVE_NBTOOL_CONFIG_H
-#include "nbtool_config.h"
-#endif
-
-#include <sys/cdefs.h>
-#if defined(__RCSID) && !defined(lint)
-#if 0
-static char sccsid[] = "@(#)eval.c 8.2 (Berkeley) 4/27/95";
-#else
-__RCSID("$NetBSD: eval.c,v 1.19 2004/07/06 13:19:42 mycroft Exp $");
-#endif
-#endif /* not lint */
-
/*
* eval.c
* Facility: m4 macro processor
* by: oz
*/
+#if HAVE_NBTOOL_CONFIG_H
+#include "nbtool_config.h"
+#endif
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: eval.c,v 1.20 2009/10/26 21:11:28 christos Exp $");
#include <sys/types.h>
+#include <err.h>
#include <errno.h>
-#include <fcntl.h>
+#include <limits.h>
+#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
+#include <fcntl.h>
#include "mdef.h"
#include "stdd.h"
#include "extern.h"
#include "pathnames.h"
-#define BUILTIN_MARKER "__builtin_"
-
-static void dodefn __P((const char *));
-static void dopushdef __P((const char *, const char *));
-static void dodump __P((const char *[], int));
-static void dotrace __P((const char *[], int, int));
-static void doifelse __P((const char *[], int));
-static int doincl __P((const char *));
-static int dopaste __P((const char *));
-static void gnu_dochq __P((const char *[], int));
-static void dochq __P((const char *[], int));
-static void gnu_dochc __P((const char *[], int));
-static void dochc __P((const char *[], int));
-static void dodiv __P((int));
-static void doundiv __P((const char *[], int));
-static void dosub __P((const char *[], int));
-static void map __P((char *, const char *, const char *, const char *));
-static const char *handledash __P((char *, char *, const char *));
-static void expand_builtin __P((const char *[], int, int));
-static void expand_macro __P((const char *[], int));
-static void dump_one_def __P((ndptr));
+static void dodefn(const char *);
+static void dopushdef(const char *, const char *);
+static void dodump(const char *[], int);
+static void dotrace(const char *[], int, int);
+static void doifelse(const char *[], int);
+static int doincl(const char *);
+static int dopaste(const char *);
+static void dochq(const char *[], int);
+static void dochc(const char *[], int);
+static void dom4wrap(const char *);
+static void dodiv(int);
+static void doundiv(const char *[], int);
+static void dosub(const char *[], int);
+static void map(char *, const char *, const char *, const char *);
+static const char *handledash(char *, char *, const char *);
+static void expand_builtin(const char *[], int, int);
+static void expand_macro(const char *[], int);
+static void dump_one_def(const char *, struct macro_definition *);
unsigned long expansion_id;
@@ -93,7 +85,7 @@
* argc - number of elements in argv.
* argv - element vector :
* argv[0] = definition of a user
- * macro or nil if built-in.
+ * macro or NULL if built-in.
* argv[1] = name of the macro or
* built-in.
* argv[2] = parameters to user-defined
@@ -108,24 +100,20 @@
* argc is 3 for macro-or-builtin() and 2 for macro-or-builtin
*/
void
-eval(argv, argc, td)
- const char *argv[];
- int argc;
- int td;
+eval(const char *argv[], int argc, int td, int is_traced)
{
- ssize_t mark = -1;
+ size_t mark = SIZE_MAX;
expansion_id++;
if (td & RECDEF)
- errx(1, "%s at line %lu: expanding recursive definition for %s",
- CURRENT_NAME, CURRENT_LINE, argv[1]);
- if (traced_macros && is_traced(argv[1]))
+ m4errx(1, "expanding recursive definition for %s.", argv[1]);
+ if (is_traced)
mark = trace(argv, argc, infile+ilevel);
if (td == MACRTYPE)
expand_macro(argv, argc);
else
expand_builtin(argv, argc, td);
- if (mark != -1)
+ if (mark != SIZE_MAX)
finish_trace(mark);
}
@@ -133,10 +121,7 @@
* expand_builtin - evaluate built-in macros.
*/
void
-expand_builtin(argv, argc, td)
- const char *argv[];
- int argc;
- int td;
+expand_builtin(const char *argv[], int argc, int td)
{
int c, n;
int ac;
@@ -146,6 +131,7 @@
printf("argc = %d\n", argc);
for (n = 0; n < argc; n++)
printf("argv[%d] = %s\n", n, argv[n]);
+ fflush(stdout);
#endif
/*
@@ -153,9 +139,12 @@
* have macro-or-builtin() type call. We adjust
* argc to avoid further checking..
*/
+ /* we keep the initial value for those built-ins that differentiate
+ * between builtin() and builtin.
+ */
ac = argc;
- if (argc == 3 && !*(argv[2]))
+ if (argc == 3 && !*(argv[2]) && !mimic_gnu)
argc--;
switch (td & TYPEMASK) {
@@ -187,9 +176,27 @@
* doexpr - evaluate arithmetic
* expression
*/
+ {
+ int base = 10;
+ int maxdigits = 0;
+ const char *errstr;
+
+ if (argc > 3) {
+ base = strtonum(argv[3], 2, 36, &errstr);
+ if (errstr) {
+ m4errx(1, "expr: base %s invalid.", argv[3]);
+ }
+ }
+ if (argc > 4) {
+ maxdigits = strtonum(argv[4], 0, INT_MAX, &errstr);
+ if (errstr) {
+ m4errx(1, "expr: maxdigits %s invalid.", argv[4]);
+ }
+ }
if (argc > 2)
- pbnum(expr(argv[2]));
+ pbnumbase(expr(argv[2]), base, maxdigits);
break;
+ }
case IFELTYPE:
if (argc > 4)
@@ -203,7 +210,7 @@
* another definition
*/
if (argc > 3) {
- if (lookup(argv[2]) != nil)
+ if (lookup_macro_definition(argv[2]) != NULL)
pbstr(argv[3]);
else if (argc > 4)
pbstr(argv[4]);
@@ -240,8 +247,10 @@
/*
* dosys - execute system command
*/
- if (argc > 2)
+ if (argc > 2) {
+ fflush(stdout);
sysval = system(argv[2]);
+ }
break;
case SYSVTYPE:
@@ -280,19 +289,16 @@
if (argc > 2)
(void) dopaste(argv[2]);
break;
+ case FORMATTYPE:
+ doformat(argv, argc);
+ break;
#endif
case CHNQTYPE:
- if (mimic_gnu)
- gnu_dochq(argv, ac);
- else
- dochq(argv, argc);
+ dochq(argv, ac);
break;
case CHNCTYPE:
- if (mimic_gnu)
- gnu_dochc(argv, ac);
- else
- dochc(argv, argc);
+ dochc(argv, argc);
break;
case SUBSTYPE:
@@ -315,7 +321,7 @@
pbstr(rquote);
pbstr(argv[n]);
pbstr(lquote);
- putback(COMMA);
+ pushback(COMMA);
}
pbstr(rquote);
pbstr(argv[3]);
@@ -351,7 +357,7 @@
*/
if (argc > 2)
for (n = 2; n < argc; n++)
- remhash(argv[n], ALL);
+ macro_undefine(argv[n]);
break;
Home |
Main Index |
Thread Index |
Old Index