browser: renamed agent keys
[sheet.git] / browser.plp
index 7eaa669386c0fe63430e66d92b948795d4ac63b6..8c6b5eddb2ca73a04d2492410317e108000a63b1 100644 (file)
@@ -69,7 +69,7 @@ if (my ($somerow) = values %{ $caniuse->{data} }) {
        }
 }
 my @browsers = grep { $versions{$_} }
-       qw(trident gecko webkit_saf ios_saf webkit_chr android presto op_mob op_mini);
+       qw(trident ie gecko firefox webkit_saf safari ios_saf webkit_chr chrome android presto opera op_mob op_mini);
 
 print <<'';
 <p id="intro">Alternate rendition of Fyrd's <a href="http://caniuse.com/">when can I use...</a> page
@@ -79,7 +79,7 @@ given ($get{usage} // 'wm') {
        when (!$_) {
                # none
        }
-       when (!/^\w+$/) {
+       when (!/^[a-z][\w-]+$/) {
                printf "<p>Invalid browser usage data request: <em>%s</em>",
                        'identifier must be alphanumeric name or <q>0</q>';
        }
@@ -265,12 +265,19 @@ sub saystatuscol {
 sub saybrowsercols {
        my ($id, $browser) = @_;
        my $data = $caniuse->{data}->{$id}->{stats}->{$browser};
+       if (ref $data eq 'ARRAY') {
+               # special case for unsupported
+               my $release = $caniuse->{agents}->{$browser}->{verrelease};
+               $data = {
+                       map { $_ => defined $release->{$_} ? 'u' : 'n' } keys %$release
+               };
+       }
 
        my ($prev, @span);
        for my $ver (@{ $versions{$browser} }, undef) {
                my $compare = (
                        !defined $ver ? undef :      # last column if nameless
-                       ref $data ne 'HASH' ? 'u' :  # unsupported if no support hash
+                       ref $data ne 'HASH' ? '' :   # unclassified if no support hash
                        $data->{$ver} // $prev       # known or inherit from predecessor
                        // (grep { defined } @{$data}{ @{ $versions{$browser} } })[0]
                           ~~ 'n' && 'n'             # first known version is unsupported