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: Wed, 23 Aug 2006 11:39:29 +0000

CVSROOT:        /sources/m4
Module name:    m4
Changes by:     Eric Blake <ericb>      06/08/23 11:39:26

Index: modules/gnu.c
===================================================================
RCS file: /sources/m4/m4/modules/gnu.c,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -b -r1.49 -r1.50
--- modules/gnu.c       21 Aug 2006 12:46:24 -0000      1.49
+++ modules/gnu.c       23 Aug 2006 11:39:26 -0000      1.50
@@ -410,43 +410,17 @@
 {
   int debug_level = m4_get_debug_level_opt (context);
   int new_debug_level;
-  int change_flag;
 
   if (argc == 1)
     m4_set_debug_level_opt (context, 0);
   else
     {
-      if (M4ARG (1)[0] == '+' || M4ARG (1)[0] == '-')
-       {
-         change_flag = M4ARG (1)[0];
-         new_debug_level = m4_debug_decode (context, M4ARG (1) + 1);
-       }
-      else
-       {
-         change_flag = 0;
-         new_debug_level = m4_debug_decode (context, M4ARG (1));
-       }
-
+      new_debug_level = m4_debug_decode (context, debug_level, M4ARG (1));
       if (new_debug_level < 0)
        m4_error (context, 0, 0, _("%s: bad debug flags: `%s'"),
                  M4ARG (0), M4ARG (1));
       else
-       {
-         switch (change_flag)
-           {
-           case 0:
              m4_set_debug_level_opt (context, new_debug_level);
-             break;
-
-           case '+':
-             m4_set_debug_level_opt (context, debug_level | new_debug_level);
-             break;
-
-           case '-':
-             m4_set_debug_level_opt (context, debug_level & ~new_debug_level);
-             break;
-           }
-       }
     }
 }
 
@@ -610,11 +584,11 @@
       if (resyntax < 0)
        return;
     }
-  /*
     else
-      regexp(VICTIM, REGEXP)  */
+    /* regexp(VICTIM, REGEXP)  */
+    replace = NULL;
 
-  buf = m4_regexp_compile (context, me, M4ARG (2), resyntax, argc == 3);
+  buf = m4_regexp_compile (context, me, M4ARG (2), resyntax, replace == NULL);
   if (!buf)
     return;
 
@@ -628,7 +602,7 @@
       return;
     }
 
-  if ((argc == 3) || (replace == NULL))
+  if (replace == NULL)
     m4_shipout_int (obs, startpos);
   else if (startpos >= 0)
     substitute (context, obs, me, M4ARG (1), replace, buf);
@@ -666,7 +640,7 @@
       replace = M4ARG (2);
 
       resyntax = m4_get_regexp_syntax_opt (context);
-      if (argc == 4)
+      if (argc >= 4)
        {
          resyntax = m4_resyntax_encode_safe (context, me, M4ARG (3));
          if (resyntax < 0)
@@ -746,15 +720,22 @@
  **/
 M4BUILTIN_HANDLER (syncoutput)
 {
-  if (m4_is_symbol_value_text (argv[1]))
-    {
-      if (   M4ARG (1)[0] == '0'
-         || M4ARG (1)[0] == 'n'
-         || (M4ARG (1)[0] == 'o' && M4ARG (1)[1] == 'f'))
+  const char *arg = M4ARG (1);
+
+  if (arg[0] == '\0'
+      || arg[0] == '0'
+      || arg[0] == 'n'
+      || arg[0] == 'N'
+      || ((arg[0] == 'o' || arg[0] == 'O')
+         && (arg[1] == 'f' || arg[1] == 'F')))
        m4_set_sync_output_opt (context, false);
-      else if (   M4ARG (1)[0] == '1'
-              || M4ARG (1)[0] == 'y'
-              || (M4ARG (1)[0] == 'o' && M4ARG (1)[1] == 'n'))
+  else if (arg[0] == '1'
+          || arg[0] == 'y'
+          || arg[0] == 'Y'
+          || ((arg[0] == 'o' || arg[0] == 'O')
+              && (arg[1] == 'n' || arg[1] == 'N')))
        m4_set_sync_output_opt (context, true);
-    }
+  else
+    m4_warn (context, 0, _("Warning: %s: unknown directive `%s'"),
+            M4ARG (0), arg);
 }




reply via email to

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