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