/[m4]/m4/src/main.c
ViewVC logotype

Diff of /m4/src/main.c

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

revision 1.34 by gary, Fri May 30 15:13:32 2003 UTC revision 1.35 by gary, Thu Jun 5 16:12:16 2003 UTC
# Line 416  warranty; not even for MERCHANTABILITY o Line 416  warranty; not even for MERCHANTABILITY o
416    
417    /* Handle deferred command line macro definitions.  Must come after    /* Handle deferred command line macro definitions.  Must come after
418       initialisation of the symbol table.  */       initialisation of the symbol table.  */
419      {
420        m4_token token;
421    
422    defines = head;      bzero (&token, sizeof (token));
423        TOKEN_TYPE (&token)         = M4_TOKEN_TEXT;
424    
425    while (defines != NULL)      defines = head;
426      {  
427        macro_definition *next;      while (defines != NULL)
428        char *macro_value;        {
429        m4_symbol *symbol;          macro_definition *next;
430            char *macro_value;
431        switch (defines->code)          m4_symbol *symbol;
432          {  
433          case 'D':          switch (defines->code)
434            macro_value = strchr (defines->macro, '=');            {
435            if (macro_value == NULL)            case 'D':
436              macro_value = "";              macro_value = strchr (defines->macro, '=');
437            else              if (macro_value == NULL)
438              *macro_value++ = '\0';                macro_value = "";
439            m4_macro_define (defines->macro, NULL, macro_value, 0x0, 0, -1);              else
440            break;                *macro_value++ = '\0';
441                TOKEN_TEXT (&token) = macro_value;
442          case 'U':              m4_macro_define (defines->macro, &token);
443            m4_symbol_delete (defines->macro);              break;
444            break;  
445              case 'U':
446          case 't':              m4_symbol_delete (defines->macro);
447            symbol = m4_symbol_define (defines->macro);              break;
448            SYMBOL_TRACED (symbol) = TRUE;  
449            break;            case 't':
450                symbol = m4_symbol_define (defines->macro);
451          case 'm':              SYMBOL_TRACED (symbol) = TRUE;
452            m4_module_load (defines->macro, 0);              break;
453            break;  
454              case 'm':
455          default:              m4_module_load (defines->macro, 0);
456            M4ERROR ((warning_status, 0,              break;
457                      "INTERNAL ERROR: Bad code in deferred arguments"));  
458            abort ();            default:
459          }              M4ERROR ((warning_status, 0,
460                          "INTERNAL ERROR: Bad code in deferred arguments"));
461        next = defines->next;              abort ();
462        xfree ((void *) defines);            }
463        defines = next;  
464      }          next = defines->next;
465            xfree ((void *) defines);
466            defines = next;
467          }
468      }
469    
470    /* Interactive mode means unbuffered output, and interrupts ignored.  */    /* Interactive mode means unbuffered output, and interrupts ignored.  */
471    

Legend:
Removed from v.1.34  
changed lines
  Added in v.1.35

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