--- test/html-webhacc/cc.cgi	2007/09/10 12:09:34	1.20
+++ test/html-webhacc/cc.cgi	2007/11/23 12:08:32	1.29
@@ -1,5 +1,6 @@
 #!/usr/bin/perl
 use strict;
+use utf8;
 
 use lib qw[/home/httpd/html/www/markup/html/whatpm
            /home/wakaba/work/manakai2/lib];
@@ -51,7 +52,6 @@
 
   $| = 0;
   my $input = get_input_document ($http, $dom);
-  my $inner_html_element = $http->get_parameter ('e');
   my $char_length = 0;
   my %time;
 
@@ -61,7 +61,12 @@
 
Request URI
     <@{[htescape $input->{request_uri}]}>
 Document URI
-    <@{[htescape $input->{uri}]}>
+    <@{[htescape $input->{uri}]}>
+    
 ]; # no  yet
   push @nav, ['#document-info' => 'Information'];
 
@@ -73,7 +78,7 @@
     <@{[htescape $input->{base_uri}]}>
 Internet Media Type
     @{[htescape $input->{media_type}]}
-    @{[$input->{media_type_overridden} ? '(overridden)' : '']}
+    @{[$input->{media_type_overridden} ? '(overridden)' : defined $input->{official_type} ? $input->{media_type} eq $input->{official_type} ? '' : '(sniffed; official type is: '.htescape ($input->{official_type}).')' : '(sniffed)']}
 Character Encoding
     @{[defined $input->{charset} ? ''.htescape ($input->{charset}).'' : '(none)']}
     @{[$input->{charset_overridden} ? '(overridden)' : '']}
@@ -88,10 +93,12 @@
 
   my $doc;
   my $el;
+  my $manifest;
 
   if ($input->{media_type} eq 'text/html') {
     ($doc, $el) = print_syntax_error_html_section ($input, $result);
-    print_source_string_section (\($input->{s}), $input->{charset});
+    print_source_string_section
+        (\($input->{s}), $input->{charset} || $doc->input_encoding);
   } elsif ({
             'text/xml' => 1,
             'application/atom+xml' => 1,
@@ -102,18 +109,25 @@
            }->{$input->{media_type}}) {
     ($doc, $el) = print_syntax_error_xml_section ($input, $result);
     print_source_string_section (\($input->{s}), $doc->input_encoding);
+  } elsif ($input->{media_type} eq 'text/cache-manifest') {
+## TODO: MUST be text/cache-manifest
+    $manifest = print_syntax_error_manifest_section ($input, $result);
+    print_source_string_section (\($input->{s}), 'utf-8');
   } else {
     ## TODO: Change HTTP status code??
-    print_result_unknown_type_section ($input);
+    print_result_unknown_type_section ($input, $result);
   }
 
   if (defined $doc or defined $el) {
-    print_structure_dump_section ($doc, $el);
-    my $elements = print_structure_error_section ($doc, $el, $result);
+    print_structure_dump_dom_section ($doc, $el);
+    my $elements = print_structure_error_dom_section ($doc, $el, $result);
     print_table_section ($elements->{table}) if @{$elements->{table}};
     print_id_section ($elements->{id}) if keys %{$elements->{id}};
     print_term_section ($elements->{term}) if keys %{$elements->{term}};
     print_class_section ($elements->{class}) if keys %{$elements->{class}};
+  } elsif (defined $manifest) {
+    print_structure_dump_manifest_section ($manifest);
+    print_structure_error_manifest_section ($manifest, $result);
   }
 
   print_result_section ($result);
@@ -134,7 +148,8 @@