summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xenter_bug.cgi68
1 files changed, 39 insertions, 29 deletions
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";};