/[m4]/m4/modules/m4.c
ViewVC logotype

Diff of /m4/modules/m4.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.16 by akim, Wed Sep 5 07:28:49 2001 UTC revision 1.17 by akim, Wed Sep 5 07:51:41 2001 UTC
# Line 186  M4BUILTIN_HANDLER (undefine) Line 186  M4BUILTIN_HANDLER (undefine)
186  {  {
187    if (m4_bad_argc (argv[0], argc, 2, 2))    if (m4_bad_argc (argv[0], argc, 2, 2))
188      return;      return;
189    m4_lookup_symbol (M4ARG (1), M4_SYMBOL_DELETE);  
190      if (!m4_symbol_lookup (M4ARG (1)))
191        M4WARN ((warning_status, 0,
192                 _("Warning: %s: undefined name: %s"), M4ARG (0), M4ARG (1)));
193      else
194        m4_symbol_delete (M4ARG (1));
195  }  }
196    
197  M4BUILTIN_HANDLER (pushdef)  M4BUILTIN_HANDLER (pushdef)
# Line 198  M4BUILTIN_HANDLER (popdef) Line 203  M4BUILTIN_HANDLER (popdef)
203  {  {
204    if (m4_bad_argc (argv[0], argc, 2, 2))    if (m4_bad_argc (argv[0], argc, 2, 2))
205      return;      return;
206    m4_lookup_symbol (M4ARG (1), M4_SYMBOL_POPDEF);    if (!m4_symbol_lookup (M4ARG (1)))
207        M4WARN ((warning_status, 0,
208                 _("Warning: %s: undefined name: %s"), M4ARG (0), M4ARG (1)));
209      else
210        m4_symbol_popdef (M4ARG (1));
211  }  }
212    
213    
# Line 282  M4BUILTIN_HANDLER (dumpdef) Line 291  M4BUILTIN_HANDLER (dumpdef)
291        m4_symbol *symbol = m4_symbol_lookup (data.base[0]);        m4_symbol *symbol = m4_symbol_lookup (data.base[0]);
292    
293        fprintf (stderr, "%s:\t", data.base[0]);        fprintf (stderr, "%s:\t", data.base[0]);
294          assert (M4_SYMBOL_TYPE (symbol) == M4_TOKEN_TEXT
295                  || M4_SYMBOL_TYPE (symbol) == M4_TOKEN_FUNC
296                  || M4_SYMBOL_TYPE (symbol) == M4_TOKEN_VOID);
297        switch (M4_SYMBOL_TYPE (symbol))        switch (M4_SYMBOL_TYPE (symbol))
298          {          {
299          case M4_TOKEN_TEXT:          case M4_TOKEN_TEXT:
# Line 294  M4BUILTIN_HANDLER (dumpdef) Line 306  M4BUILTIN_HANDLER (dumpdef)
306    
307          case M4_TOKEN_FUNC:          case M4_TOKEN_FUNC:
308            bp = m4_builtin_find_by_func (NULL, M4_SYMBOL_FUNC (symbol));            bp = m4_builtin_find_by_func (NULL, M4_SYMBOL_FUNC (symbol));
309            if (bp == NULL)            assert (bp);
             {  
               M4ERROR ((warning_status, 0,  
                         _("Undefined name `%s'"), data.base[0]));  
               abort ();  
             }  
310            fprintf (stderr, "<%s>\n", bp->name);            fprintf (stderr, "<%s>\n", bp->name);
311            break;            break;
312    
313          default:          case M4_TOKEN_VOID:
314            M4ERROR ((warning_status, 0, _("\            assert (!"VOID token in m4_dumpdef");
 INTERNAL ERROR: Bad token data type in m4_dumpdef ()")));  
           abort ();  
315            break;            break;
316          }          }
317      }      }
# Line 324  M4BUILTIN_HANDLER (defn) Line 329  M4BUILTIN_HANDLER (defn)
329    
330    symbol = m4_symbol_lookup (M4ARG (1));    symbol = m4_symbol_lookup (M4ARG (1));
331    if (symbol == NULL)    if (symbol == NULL)
332      return;      {
333          M4WARN ((warning_status, 0,
334                   _("Warning: %s: undefined name: %s"), M4ARG (0), M4ARG (1)));
335          return;
336        }
337    
338    switch (M4_SYMBOL_TYPE (symbol))    switch (M4_SYMBOL_TYPE (symbol))
339      {      {
340      case M4_TOKEN_TEXT:      case M4_TOKEN_TEXT:
341        m4_shipout_string(obs, M4_SYMBOL_TEXT (symbol), 0, TRUE);        m4_shipout_string(obs, M4_SYMBOL_TEXT (symbol), 0, TRUE);
342        break;        return;
343    
344      case M4_TOKEN_FUNC:      case M4_TOKEN_FUNC:
345        m4_push_macro (M4_SYMBOL_FUNC (symbol), M4_SYMBOL_HANDLE (symbol),        m4_push_macro (M4_SYMBOL_FUNC (symbol), M4_SYMBOL_HANDLE (symbol),
346                       M4_SYMBOL_TRACED (symbol));                       M4_SYMBOL_TRACED (symbol));
347        break;        return;
348    
349      case M4_TOKEN_VOID:      case M4_TOKEN_VOID:
350        break;        assert (!"VOID token in m4_dumpdef");
351          return;
     default:  
       M4ERROR ((warning_status, 0,  
                 _("INTERNAL ERROR: Bad symbol type in m4_defn ()")));  
       abort ();  
352      }      }
353    
354      assert (!"Bad token data type in m4_defn");
355  }  }
356    
357    
# Line 628  M4BUILTIN_HANDLER (traceon) Line 635  M4BUILTIN_HANDLER (traceon)
635    else    else
636      for (i = 1; i < argc; i++)      for (i = 1; i < argc; i++)
637        {        {
638          const char *name = M4_TOKEN_DATA_TEXT (argv[i]);          const char *name = M4ARG (i);
639          m4_symbol *symbol = m4_symbol_lookup (name);          m4_symbol *symbol = m4_symbol_lookup (name);
640          if (symbol != NULL)          if (symbol != NULL)
641            set_trace (name, symbol, (char *) obs);            set_trace (name, symbol, (char *) obs);
642          else          else
643            M4ERROR ((warning_status, 0, _("Undefined name %s"), name));            M4WARN ((warning_status, 0,
644                       _("Warning: %s: undefined name: %s"), M4ARG (0), name));
645        }        }
646  }  }
647    
# Line 647  M4BUILTIN_HANDLER (traceoff) Line 655  M4BUILTIN_HANDLER (traceoff)
655    else    else
656      for (i = 1; i < argc; i++)      for (i = 1; i < argc; i++)
657        {        {
658          const char *name = M4_TOKEN_DATA_TEXT (argv[i]);          const char *name = M4ARG (i);
659          m4_symbol *symbol = m4_symbol_lookup (name);          m4_symbol *symbol = m4_symbol_lookup (name);
660          if (symbol != NULL)          if (symbol != NULL)
661            set_trace (name, symbol, NULL);            set_trace (name, symbol, NULL);
662          else          else
663            M4ERROR ((warning_status, 0, _("Undefined name %s"), name));            M4WARN ((warning_status, 0,
664                       _("Warning: %s: undefined name: %s"), M4ARG (0), name));
665        }        }
666  }  }
667    

Legend:
Removed from v.1.16  
changed lines
  Added in v.1.17

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26