sc: more recognisable splash damage indicator
[sheet.git] / common.inc.plp
index ec6b0bf68ed6d3d8858d58500c13de3d59362cb1..f6cd6a6f7a93452a66346a7fdef08af0f5a7da43 100644 (file)
@@ -23,17 +23,18 @@ $header{content_type} = 'text/html; charset=utf-8';
 sub stylesheet {
        my %styles = map {$_ => $_} @_;
 
-       if (exists $get{style}) {
-               $style = $styles{ $get{style} };
-               require CGI::Cookie;
-               if (my $cookie = CGI::Cookie->new(
-                       -name    => 'style',
-                       -value   => $style,
-                       -path    => '/',  # site-wide; current page is confusing to most users
-                       -expires => $style ? '+5y' : '-1d',
-               )) {
+       if (defined( my $setstyle = $get{style} )) {
+               $style = $styles{ $setstyle };
+               eval {
+                       require CGI::Cookie;
+                       my $cookie = CGI::Cookie->new(
+                               -name    => 'style',
+                               -value   => $setstyle || '',
+                               -path    => '/',  # site-wide; current page is confusing to most users
+                               -expires => $setstyle ? '+5y' : '-1d',
+                       ) or die "empty object returned\n";
                        AddCookie($cookie->as_string);
-               }
+               } or warn "Unable to create style cookie: $@";
        }
 
        $style ||= exists $cookie{style} && $styles{ $cookie{style} } || $_[0];