From 976e88dcc68fbb8bacceb8f0e73d9aee7b82c7e7 Mon Sep 17 00:00:00 2001 From: timeless Date: Sun, 14 Mar 2010 23:29:44 +0100 Subject: Bug 349356: Correctly detect PPC as PocketPC (not only PowerPC) r/a=LpSolit --- enter_bug.cgi | 68 ++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 39 insertions(+), 29 deletions(-) (limited to 'enter_bug.cgi') diff --git a/enter_bug.cgi b/enter_bug.cgi index 79116d592..efca5491d 100755 --- a/enter_bug.cgi +++ b/enter_bug.cgi @@ -200,44 +200,54 @@ sub pickplatform { # no choice is valid, we return "Other". for ($ENV{'HTTP_USER_AGENT'}) { #PowerPC - /\(.*PowerPC.*\)/i && do {@platform = "Macintosh"; last;}; - /\(.*PPC.*\)/ && do {@platform = "Macintosh"; last;}; - /\(.*AIX.*\)/ && do {@platform = "Macintosh"; last;}; + /\(.*PowerPC.*\)/i && do {push @platform, ("PowerPC", "Macintosh");}; + #AMD64, Intel x86_64 + /\(.*amd64.*\)/ && do {push @platform, ("AMD64", "x86_64", "PC");}; + /\(.*x86_64.*\)/ && do {push @platform, ("AMD64", "x86_64", "PC");}; + #Intel Itanium + /\(.*IA64.*\)/ && do {push @platform, "IA64";}; #Intel x86 - /\(.*Intel.*\)/ && do {@platform = "PC"; last;}; - /\(.*[ix0-9]86.*\)/ && do {@platform = "PC"; last;}; + /\(.*Intel.*\)/ && do {push @platform, ("IA32", "x86", "PC");}; + /\(.*[ix0-9]86.*\)/ && do {push @platform, ("IA32", "x86", "PC");}; #Versions of Windows that only run on Intel x86 - /\(.*Win(?:dows |)[39M].*\)/ && do {@platform = "PC"; last}; - /\(.*Win(?:dows |)16.*\)/ && do {@platform = "PC"; last;}; + /\(.*Win(?:dows |)[39M].*\)/ && do {push @platform, ("IA32", "x86", "PC");}; + /\(.*Win(?:dows |)16.*\)/ && do {push @platform, ("IA32", "x86", "PC");}; #Sparc - /\(.*sparc.*\)/ && do {@platform = "Sun"; last;}; - /\(.*sun4.*\)/ && do {@platform = "Sun"; last;}; + /\(.*sparc.*\)/ && do {push @platform, ("Sparc", "Sun");}; + /\(.*sun4.*\)/ && do {push @platform, ("Sparc", "Sun");}; #Alpha - /\(.*AXP.*\)/i && do {@platform = "DEC"; last;}; - /\(.*[ _]Alpha.\D/i && do {@platform = "DEC"; last;}; - /\(.*[ _]Alpha\)/i && do {@platform = "DEC"; last;}; + /\(.*AXP.*\)/i && do {push @platform, ("Alpha", "DEC");}; + /\(.*[ _]Alpha.\D/i && do {push @platform, ("Alpha", "DEC");}; + /\(.*[ _]Alpha\)/i && do {push @platform, ("Alpha", "DEC");}; #MIPS - /\(.*IRIX.*\)/i && do {@platform = "SGI"; last;}; - /\(.*MIPS.*\)/i && do {@platform = "SGI"; last;}; + /\(.*IRIX.*\)/i && do {push @platform, ("MIPS", "SGI");}; + /\(.*MIPS.*\)/i && do {push @platform, ("MIPS", "SGI");}; #68k - /\(.*68K.*\)/ && do {@platform = "Macintosh"; last;}; - /\(.*680[x0]0.*\)/ && do {@platform = "Macintosh"; last;}; + /\(.*68K.*\)/ && do {push @platform, ("68k", "Macintosh");}; + /\(.*680[x0]0.*\)/ && do {push @platform, ("68k", "Macintosh");}; #HP - /\(.*9000.*\)/ && do {@platform = "HP"; last;}; + /\(.*9000.*\)/ && do {push @platform, ("PA-RISC", "HP");}; #ARM -# /\(.*ARM.*\) && do {$platform = "ARM";}; + /\(.*ARM.*\)/ && do {push @platform, ("ARM", "PocketPC");}; + #PocketPC intentionally before PowerPC + /\(.*Windows CE.*PPC.*\)/ && do {push @platform, ("ARM", "PocketPC");}; + #PowerPC + /\(.*PPC.*\)/ && do {push @platform, ("PowerPC", "Macintosh");}; + /\(.*AIX.*\)/ && do {push @platform, ("PowerPC", "Macintosh");}; #Stereotypical and broken - /\(.*Macintosh.*\)/ && do {@platform = "Macintosh"; last;}; - /\(.*Mac OS [89].*\)/ && do {@platform = "Macintosh"; last;}; - /\(Win.*\)/ && do {@platform = "PC"; last;}; - /\(.*Win(?:dows[ -])NT.*\)/ && do {@platform = "PC"; last;}; - /\(.*OSF.*\)/ && do {@platform = "DEC"; last;}; - /\(.*HP-?UX.*\)/i && do {@platform = "HP"; last;}; - /\(.*IRIX.*\)/i && do {@platform = "SGI"; last;}; - /\(.*(SunOS|Solaris).*\)/ && do {@platform = "Sun"; last;}; + /\(.*Windows CE.*\)/ && do {push @platform, ("ARM", "PocketPC");}; + /\(.*Macintosh.*\)/ && do {push @platform, ("68k", "Macintosh");}; + /\(.*Mac OS [89].*\)/ && do {push @platform, ("68k", "Macintosh");}; + /\(.*Win64.*\)/ && do {push @platform, "IA64";}; + /\(Win.*\)/ && do {push @platform, ("IA32", "x86", "PC");}; + /\(.*Win(?:dows[ -])NT.*\)/ && do {push @platform, ("IA32", "x86", "PC");}; + /\(.*OSF.*\)/ && do {push @platform, ("Alpha", "DEC");}; + /\(.*HP-?UX.*\)/i && do {push @platform, ("PA-RISC", "HP");}; + /\(.*IRIX.*\)/i && do {push @platform, ("MIPS", "SGI");}; + /\(.*(SunOS|Solaris).*\)/ && do {push @platform, ("Sparc", "Sun");}; #Braindead old browsers who didn't follow convention: - /Amiga/ && do {@platform = "Macintosh"; last;}; - /WinMosaic/ && do {@platform = "PC"; last;}; + /Amiga/ && do {push @platform, ("68k", "Macintosh");}; + /WinMosaic/ && do {push @platform, ("IA32", "x86", "PC");}; } } @@ -258,7 +268,7 @@ sub pickos { # item in @os that is a valid platform choice. If # no choice is valid, we return "Other". for ($ENV{'HTTP_USER_AGENT'}) { - /\(.*IRIX.*\)/ && do {push @os, "IRIX"; }; + /\(.*IRIX.*\)/ && do {push @os, "IRIX";}; /\(.*OSF.*\)/ && do {push @os, "OSF/1";}; /\(.*Linux.*\)/ && do {push @os, "Linux";}; /\(.*Solaris.*\)/ && do {push @os, "Solaris";}; -- cgit v1.2.3-24-g4f1b