Commit 976e88dc authored by timeless's avatar timeless Committed by Frédéric Buclin

Bug 349356: Correctly detect PPC as PocketPC (not only PowerPC)

r/a=LpSolit
parent d34b096c
...@@ -200,44 +200,54 @@ sub pickplatform { ...@@ -200,44 +200,54 @@ sub pickplatform {
# no choice is valid, we return "Other". # no choice is valid, we return "Other".
for ($ENV{'HTTP_USER_AGENT'}) { for ($ENV{'HTTP_USER_AGENT'}) {
#PowerPC #PowerPC
/\(.*PowerPC.*\)/i && do {@platform = "Macintosh"; last;}; /\(.*PowerPC.*\)/i && do {push @platform, ("PowerPC", "Macintosh");};
/\(.*PPC.*\)/ && do {@platform = "Macintosh"; last;}; #AMD64, Intel x86_64
/\(.*AIX.*\)/ && do {@platform = "Macintosh"; last;}; /\(.*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 x86
/\(.*Intel.*\)/ && do {@platform = "PC"; last;}; /\(.*Intel.*\)/ && do {push @platform, ("IA32", "x86", "PC");};
/\(.*[ix0-9]86.*\)/ && do {@platform = "PC"; last;}; /\(.*[ix0-9]86.*\)/ && do {push @platform, ("IA32", "x86", "PC");};
#Versions of Windows that only run on Intel x86 #Versions of Windows that only run on Intel x86
/\(.*Win(?:dows |)[39M].*\)/ && do {@platform = "PC"; last}; /\(.*Win(?:dows |)[39M].*\)/ && do {push @platform, ("IA32", "x86", "PC");};
/\(.*Win(?:dows |)16.*\)/ && do {@platform = "PC"; last;}; /\(.*Win(?:dows |)16.*\)/ && do {push @platform, ("IA32", "x86", "PC");};
#Sparc #Sparc
/\(.*sparc.*\)/ && do {@platform = "Sun"; last;}; /\(.*sparc.*\)/ && do {push @platform, ("Sparc", "Sun");};
/\(.*sun4.*\)/ && do {@platform = "Sun"; last;}; /\(.*sun4.*\)/ && do {push @platform, ("Sparc", "Sun");};
#Alpha #Alpha
/\(.*AXP.*\)/i && do {@platform = "DEC"; last;}; /\(.*AXP.*\)/i && do {push @platform, ("Alpha", "DEC");};
/\(.*[ _]Alpha.\D/i && do {@platform = "DEC"; last;}; /\(.*[ _]Alpha.\D/i && do {push @platform, ("Alpha", "DEC");};
/\(.*[ _]Alpha\)/i && do {@platform = "DEC"; last;}; /\(.*[ _]Alpha\)/i && do {push @platform, ("Alpha", "DEC");};
#MIPS #MIPS
/\(.*IRIX.*\)/i && do {@platform = "SGI"; last;}; /\(.*IRIX.*\)/i && do {push @platform, ("MIPS", "SGI");};
/\(.*MIPS.*\)/i && do {@platform = "SGI"; last;}; /\(.*MIPS.*\)/i && do {push @platform, ("MIPS", "SGI");};
#68k #68k
/\(.*68K.*\)/ && do {@platform = "Macintosh"; last;}; /\(.*68K.*\)/ && do {push @platform, ("68k", "Macintosh");};
/\(.*680[x0]0.*\)/ && do {@platform = "Macintosh"; last;}; /\(.*680[x0]0.*\)/ && do {push @platform, ("68k", "Macintosh");};
#HP #HP
/\(.*9000.*\)/ && do {@platform = "HP"; last;}; /\(.*9000.*\)/ && do {push @platform, ("PA-RISC", "HP");};
#ARM #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 #Stereotypical and broken
/\(.*Macintosh.*\)/ && do {@platform = "Macintosh"; last;}; /\(.*Windows CE.*\)/ && do {push @platform, ("ARM", "PocketPC");};
/\(.*Mac OS [89].*\)/ && do {@platform = "Macintosh"; last;}; /\(.*Macintosh.*\)/ && do {push @platform, ("68k", "Macintosh");};
/\(Win.*\)/ && do {@platform = "PC"; last;}; /\(.*Mac OS [89].*\)/ && do {push @platform, ("68k", "Macintosh");};
/\(.*Win(?:dows[ -])NT.*\)/ && do {@platform = "PC"; last;}; /\(.*Win64.*\)/ && do {push @platform, "IA64";};
/\(.*OSF.*\)/ && do {@platform = "DEC"; last;}; /\(Win.*\)/ && do {push @platform, ("IA32", "x86", "PC");};
/\(.*HP-?UX.*\)/i && do {@platform = "HP"; last;}; /\(.*Win(?:dows[ -])NT.*\)/ && do {push @platform, ("IA32", "x86", "PC");};
/\(.*IRIX.*\)/i && do {@platform = "SGI"; last;}; /\(.*OSF.*\)/ && do {push @platform, ("Alpha", "DEC");};
/\(.*(SunOS|Solaris).*\)/ && do {@platform = "Sun"; last;}; /\(.*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: #Braindead old browsers who didn't follow convention:
/Amiga/ && do {@platform = "Macintosh"; last;}; /Amiga/ && do {push @platform, ("68k", "Macintosh");};
/WinMosaic/ && do {@platform = "PC"; last;}; /WinMosaic/ && do {push @platform, ("IA32", "x86", "PC");};
} }
} }
...@@ -258,7 +268,7 @@ sub pickos { ...@@ -258,7 +268,7 @@ sub pickos {
# item in @os that is a valid platform choice. If # item in @os that is a valid platform choice. If
# no choice is valid, we return "Other". # no choice is valid, we return "Other".
for ($ENV{'HTTP_USER_AGENT'}) { for ($ENV{'HTTP_USER_AGENT'}) {
/\(.*IRIX.*\)/ && do {push @os, "IRIX"; }; /\(.*IRIX.*\)/ && do {push @os, "IRIX";};
/\(.*OSF.*\)/ && do {push @os, "OSF/1";}; /\(.*OSF.*\)/ && do {push @os, "OSF/1";};
/\(.*Linux.*\)/ && do {push @os, "Linux";}; /\(.*Linux.*\)/ && do {push @os, "Linux";};
/\(.*Solaris.*\)/ && do {push @os, "Solaris";}; /\(.*Solaris.*\)/ && do {push @os, "Solaris";};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment