Re: More h2ph problems [was Re: h2ph confused by comments in an enum.
Hugo van der Sanden [Wed, 28 Nov 2001 21:47:59 +0000 (21:47 +0000)]
Message-Id: <200111282147.fASLlxD04163@crypt.compulink.co.uk>

p4raw-id: //depot/perl@13355

t/lib/h2ph.h
t/lib/h2ph.pht
utils/h2ph.PL

index f12a677..c60e8f0 100644 (file)
@@ -98,6 +98,13 @@ typedef enum _days_of_week { sun, mon, tue, wed, thu, fri, sat, Sun=0, Mon,
 ??= define SOMETHING_ELSE_TRIGRAPHIC_8 "??>"          /* | ??>|  }| */
        ??=endif
 
+// test C++-style comment
+
+#if 1
+typdef struct empty_struct {
+} // trailing C++-style comment should not force continuation
+#endif
+
 /* comments (that look like string) inside enums... */
 
 enum {
index 235332d..a52c160 100644 (file)
@@ -79,6 +79,8 @@ unless(defined(&_H2PH_H_)) {
        eval 'sub SOMETHING_ELSE_TRIGRAPHIC_7 () {"#";}' unless defined(&SOMETHING_ELSE_TRIGRAPHIC_7);
        eval 'sub SOMETHING_ELSE_TRIGRAPHIC_8 () {"}";}' unless defined(&SOMETHING_ELSE_TRIGRAPHIC_8);
     }
+    if(1) {
+    }
     eval("sub flim () { 0; }") unless defined(&flim);
     eval("sub flam () { 1; }") unless defined(&flam);
 }
index 4dab916..901f0bb 100644 (file)
@@ -438,7 +438,7 @@ sub next_line
             } elsif ($in =~ s/^("(\\.|[^"\\])*")//) {       # "...
                 $out    .= $1;
             } elsif ($in =~ s/^\/\/.*//) {                  # //...
-                next READ;
+                # fall through
             } elsif ($in =~ m/^\/\*/) {                     # /*...
                 # C comment removal adapted from perlfaq6:
                 if ($in =~ s/^\/\*[^*]*\*+([^\/*][^*]*\*+)*\///) {
@@ -455,7 +455,7 @@ sub next_line
             }
         }
 
-        last READ;
+        last READ if $out =~ /\S/;
     }
 
     return $out;