Parent Directory
|
Revision Log
++ ChangeLog 18 Jul 2008 14:44:11 -0000 2008-07-18 Wakaba <wakaba@suika.fam.cx> * cc.cgi (print_structure_dump_webidl_section): Use ->idl_text for dummping (Data::Dumper::Dumper no longer used).
| 1 | wakaba | 1.3 | #!/usr/bin/perl |
| 2 | wakaba | 1.1 | use strict; |
| 3 | |||
| 4 | use lib qw[/home/httpd/html/www/markup/html/whatpm | ||
| 5 | wakaba | 1.6 | /home/wakaba/work/manakai2/lib]; |
| 6 | wakaba | 1.1 | use CGI::Carp qw[fatalsToBrowser]; |
| 7 | use Time::HiRes qw/time/; | ||
| 8 | |||
| 9 | wakaba | 1.6 | use Message::CGI::HTTP; |
| 10 | my $http = Message::CGI::HTTP->new; | ||
| 11 | wakaba | 1.1 | |
| 12 | ## TODO: _charset_ | ||
| 13 | |||
| 14 | wakaba | 1.6 | my @mode = split m#/#, scalar $http->get_meta_variable ('PATH_INFO'), -1; |
| 15 | wakaba | 1.2 | shift @mode if @mode and $mode[0] == ''; |
| 16 | wakaba | 1.1 | ## TODO: decode unreserved characters |
| 17 | |||
| 18 | wakaba | 1.6 | my $s = $http->get_parameter ('s'); |
| 19 | wakaba | 1.1 | if (length $s > 1000_000) { |
| 20 | print STDOUT "Status: 400 Document Too Long\nContent-Type: text/plain; charset=us-ascii\n\nToo long"; | ||
| 21 | exit; | ||
| 22 | } | ||
| 23 | my $char_length = length $s; | ||
| 24 | my %time; | ||
| 25 | my $time1; | ||
| 26 | my $time2; | ||
| 27 | |||
| 28 | require Message::DOM::DOMImplementation; | ||
| 29 | wakaba | 1.4 | my $dom = Message::DOM::DOMImplementation->new; |
| 30 | wakaba | 1.2 | # $| = 1; |
| 31 | wakaba | 1.1 | my $doc; |
| 32 | wakaba | 1.2 | my $el; |
| 33 | wakaba | 1.1 | |
| 34 | wakaba | 1.7 | |
| 35 | wakaba | 1.2 | if (@mode == 3 and $mode[0] eq 'html' and |
| 36 | wakaba | 1.7 | ($mode[2] eq 'html' or $mode[2] eq 'test' or $mode[2] eq 'xml')) { |
| 37 | wakaba | 1.1 | print STDOUT "Content-Type: text/plain; charset=utf-8\n\n"; |
| 38 | |||
| 39 | require Encode; | ||
| 40 | require Whatpm::HTML; | ||
| 41 | |||
| 42 | $time1 = time; | ||
| 43 | $s = Encode::decode ('utf-8', $s); | ||
| 44 | $time2 = time; | ||
| 45 | $time{decode} = $time2 - $time1; | ||
| 46 | |||
| 47 | |||
| 48 | print STDOUT "#errors\n"; | ||
| 49 | |||
| 50 | my $onerror = sub { | ||
| 51 | my (%opt) = @_; | ||
| 52 | wakaba | 1.8 | print STDOUT "$opt{line},$opt{column},$opt{type};$opt{level};$opt{value}\n"; |
| 53 | wakaba |