[perl #130001] h2xs: avoid infinite loop for enums
authorHugo van der Sanden <hv@crypt.org>
Fri, 28 Oct 2016 12:27:23 +0000 (13:27 +0100)
committerHugo van der Sanden <hv@crypt.org>
Wed, 2 Nov 2016 14:46:30 +0000 (14:46 +0000)
'typedef enum x { ... } x' causes h2xs to enter a substitution loop while
trying to write the typemap file.

utils/h2xs.PL

index 8fda87b..f9063cb 100644 (file)
@@ -1034,7 +1034,7 @@ if( ! $opt_X ){  # use XS, unless it was disabled
       }
     }
     { local $" = '|';
-      $typedef_rex = qr(\b(?<!struct )(?:@good_td)\b) if @good_td;
+      $typedef_rex = qr(\b(?<!struct )(?<!enum )(?:@good_td)\b) if @good_td;
     }
     %known_fnames = map @$_[1,3], @$fdecls_parsed; # [1,3] is NAME, FULLTEXT
     if ($fmask) {