m4-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Changes to m4/modules/gnu.c,v


From: Eric Blake
Subject: Changes to m4/modules/gnu.c,v
Date: Sat, 23 Dec 2006 00:02:23 +0000

CVSROOT:        /sources/m4
Module name:    m4
Changes by:     Eric Blake <ericb>      06/12/23 00:02:21

Index: modules/gnu.c
===================================================================
RCS file: /sources/m4/m4/modules/gnu.c,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -b -r1.69 -r1.70
--- modules/gnu.c       19 Dec 2006 17:23:46 -0000      1.69
+++ modules/gnu.c       23 Dec 2006 00:02:20 -0000      1.70
@@ -399,7 +399,7 @@
   int resyntax = m4_regexp_syntax_encode (spec);
 
   if (resyntax < 0)
-    m4_error (context, 0, 0, _("%s: bad syntax-spec: `%s'"), caller, spec);
+    m4_warn (context, 0, _("%s: bad syntax-spec: `%s'"), caller, spec);
 
   return resyntax;
 }
@@ -434,16 +434,28 @@
       int i;
       for (i = 1; i < argc; i++)
        {
-         char key = *M4ARG (i);
-         if (key != '\0'
-             && (m4_set_syntax (M4SYNTAX, key,
-                                m4_expand_ranges (M4ARG (i) + 1, obs)) < 0))
-           {
-             m4_error (context, 0, 0, _("%s: undefined syntax code: `%c'"),
+         const char *spec = M4ARG (i);
+         char key = *spec++;
+         char action = key ? *spec : '\0';
+         switch (action)
+           {
+           case '-':
+           case '+':
+           case '=':
+             spec++;
+             break;
+           case '\0':
+             break;
+           default:
+             action = '=';
+             break;
+           }
+         if (m4_set_syntax (M4SYNTAX, key, action,
+                            key ? m4_expand_ranges (spec, obs) : "") < 0)
+           m4_warn (context, 0, _("%s: undefined syntax code: `%c'"),
                        M4ARG (0), key);
            }
        }
-    }
   else
     assert (!"Unable to import from m4 module");
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]