ansi2knr updates from harlan stenn
authorTom Tromey <tromey@redhat.com>
Fri, 20 Mar 1998 21:02:39 +0000 (21:02 +0000)
committerTom Tromey <tromey@redhat.com>
Fri, 20 Mar 1998 21:02:39 +0000 (21:02 +0000)
ChangeLog
NEWS
ansi2knr.c
automake.in
lib/ansi2knr.c

index 051cbc9..a6735f2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 Fri Mar 20 00:26:10 1998  Tom Tromey  <tromey@cygnus.com>
 
+       De-ansi-fication fixes from Harlan Stenn:
+       * ansi2knr.c (main): Accept "-" argument to mean stdin.
+       * automake.in (handle_yacc_lex_cxx): Preprocess C source before
+       running through ANSI2KNR.
+       (get_object_extension): Generate rule for <dir>/ansi2knr.o.
+
        * texinfos.am: Include $(DESTDIR).
        * lisp.am: Include $(DESTDIR).
        * java.am: Include $(DESTDIR).
diff --git a/NEWS b/NEWS
index 385d29e..e77c05f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -11,6 +11,7 @@ New in 1.2g:
 * Dependencies computed as a side effect of compilation
 * Preliminary support for Java
 * DESTDIR support at "make install" time
+* Improved ansi2knr support; you must use the latest ansi2knr.c (included)
 \f
 New in 1.2:
 * Bug fixes
index c6ee833..f7d5cc3 100644 (file)
@@ -184,7 +184,7 @@ main(argc, argv)
         */
        int convert_varargs = 1;
 
-       if ( argc > 1 && argv[1][0] == '-' )
+       if ( argc > 1 && argv[1][0] == '-'  && argv[1][1])
          {     if ( !strcmp(argv[1], "--varargs") )
                  {     convert_varargs = 1;
                        argc--;
@@ -200,7 +200,10 @@ main(argc, argv)
                printf("Usage: ansi2knr input_file [output_file]\n");
                        exit(1);
                   }
-       in = fopen(argv[1], "r");
+       if (argv[1][0] == '-' && !argv[1][1])
+         in = stdin;
+       else
+         in = fopen(argv[1], "r");
        if ( in == NULL )
          {
            fprintf(stderr, "Cannot open input file %s\n", argv[1]);
index 7071538..7f46507 100755 (executable)
@@ -821,6 +821,10 @@ sub get_object_extension
            {
                $output_rules .= ("\tcd " . &dirname ($options{'ansi2knr'})
                                  . " && \$(MAKE) ansi2knr\n\n");
+               # This is required for non-GNU makes.
+               $output_rules .= ($options{'ansi2knr'} . ".o:\n");
+               $output_rules .= ("\tcd " . &dirname ($options{'ansi2knr'})
+                                 . " && \$(MAKE) ansi2knr.o\n\n");
            }
 
            # Make sure ansi2knr can be found: if no path specified,
@@ -992,11 +996,11 @@ sub handle_yacc_lex_cxx
            # we can't use $< -- some makes only define $< during a
            # suffix rule.
            $output_rules .= ($base . "_.c: $base.c \$(ANSI2KNR)\n\t"
-                             . '$(ANSI2KNR) '
+                             . '$(CPP) $(DEFS) $(INCLUDES) $(CPPFLAGS) '
                              . '`if test -f $(srcdir)/' . $base . '.c'
                              . '; then echo $(srcdir)/' . $base . '.c'
                              . '; else echo ' . $base . '.c; fi` '
-                             . $base . "_.c\n");
+                             . '| $(ANSI2KNR) - ' . $base . "_.c\n");
            push (@objects, $base . '_.o');
            push (@objects, $base . '_.lo') if $seen_libtool;
        }
index c6ee833..f7d5cc3 100644 (file)
@@ -184,7 +184,7 @@ main(argc, argv)
         */
        int convert_varargs = 1;
 
-       if ( argc > 1 && argv[1][0] == '-' )
+       if ( argc > 1 && argv[1][0] == '-'  && argv[1][1])
          {     if ( !strcmp(argv[1], "--varargs") )
                  {     convert_varargs = 1;
                        argc--;
@@ -200,7 +200,10 @@ main(argc, argv)
                printf("Usage: ansi2knr input_file [output_file]\n");
                        exit(1);
                   }
-       in = fopen(argv[1], "r");
+       if (argv[1][0] == '-' && !argv[1][1])
+         in = stdin;
+       else
+         in = fopen(argv[1], "r");
        if ( in == NULL )
          {
            fprintf(stderr, "Cannot open input file %s\n", argv[1]);