]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 349356: Correctly detect PPC as PocketPC (not only PowerPC)
authortimeless <timeless@bemail.org>
Sun, 14 Mar 2010 22:35:56 +0000 (23:35 +0100)
committerFrédéric Buclin <LpSolit@gmail.com>
Sun, 14 Mar 2010 22:35:56 +0000 (23:35 +0100)
r/a=LpSolit

enter_bug.cgi

index a4ed7350efe067ef9633c9628430a892f66df7d8..fc5f57479fe6ea3416fc3c79ff43e1ebd2893355 100755 (executable)
@@ -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";};