From: Mattia Barbon <mbarbon@dsi.unive.it>
Date: Sat, 2 Aug 2003 10:31:07 +0000 (+0200)
Subject: maint, Win32, GCC 3.2
X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=99228ec22de3d3407bfd2ef2153516707cceb96c;p=p5sagit%2Fp5-mst-13.2.git

maint, Win32, GCC 3.2
Message-ID: <Mahogany-0.64.2-624-20030802-103107.00@rbnet.it>

p4raw-id: //depot/perl@20469
---

diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL
index 41560d5..22171fa 100644
--- a/ext/Errno/Errno_pm.PL
+++ b/ext/Errno/Errno_pm.PL
@@ -229,9 +229,17 @@ sub write_errno_pm {
 	    my($name,$expr);
 	    next unless ($name, $expr) = /"(.*?)"\s*\[\s*\[\s*(.*?)\s*\]\s*\]/;
 	    next if $name eq $expr;
-	    $expr =~ s/(\d+)[LU]+\b/$1/g; # 2147483647L et alia
+	    $expr =~ s/\(?\(\w+\)([^\)]*)\)?/$1/; # ((type)0xcafebabe) at alia
+	    $expr =~ s/((?:0x)?[0-9a-fA-F]+)[LU]+\b/$1/g; # 2147483647L et alia
+	    next if $expr =~ m/^[a-zA-Z]+$/; # skip some Win32 functions
+	    if($expr =~ m/^0[xX]/) {
+		$err{$name} = hex $expr;
+	    }
+	    else {
 	    $err{$name} = eval $expr;
 	}
+	    delete $err{$name} unless defined $err{$name};
+	}
 	close(CPPO);
     }