X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=utils%2Ffilter2docs.pl;h=1610f16bf3dcf1a5d21a8bb33cb04addca44dd2b;hp=1a4c0a06c745d4763cce318a5193ee63fa5060ca;hb=a5b4d31ab5ad2ed24cdb53ffa92679411b4176b0;hpb=054ad713eac089669ff2e936d82132fdf4e5b582 diff --git a/utils/filter2docs.pl b/utils/filter2docs.pl index 1a4c0a06..1610f16b 100755 --- a/utils/filter2docs.pl +++ b/utils/filter2docs.pl @@ -1,7 +1,6 @@ #!/usr/bin/perl -# $Id: filter2docs.pl,v 1.4 2008/05/11 15:33:35 fabiankeil Exp $ -# $Source: /cvsroot/ijbswa/current/utils/filter2docs.pl,v $ +# utils/filter2docs.pl # Parse the filter names and descriptions from a filter file and # spit out copy&paste-ready markup for the various places in @@ -15,12 +14,21 @@ my (%comment_lines, %action_lines, %sgml_source_1, %sgml_source_2); sub main() { die "Usage: $0 filter-file\n" unless (@ARGV == 1) ; - open(INPUT, "< $ARGV[0]") or die "Coudln't open input file $ARGV[0] because $!\n"; + open(INPUT, "< $ARGV[0]") or die "Couldn't open input file $ARGV[0]: $!\n"; parse_file(); print_markup(); } +sub sgml_escape($) { + my $text = shift; + + $text =~ s@<@<@g; + $text =~ s@>@>@g; + + return $text; +} + sub parse_file() { while () { if (/^((?:(?:SERVER|CLIENT)-HEADER-)?(?:FILTER|TAGGER)): ([-\w]+) (.*)$/) { @@ -28,14 +36,14 @@ sub parse_file() { my $name = $2; my $description = $3; my $type = lc($type_uc); - + my $sgml_description = sgml_escape($description); my $white_space = ' ' x (($type eq 'filter' ? 20 : 27) - length($name)); $comment_lines{$type} .= "# $name:" . $white_space . "$description\n"; $action_lines{$type} .= "+$type" . "{$name} \\\n"; $sgml_source_1{$type} .= " \n \n" . " +$type" . "{$name}" . $white_space . - "# $description\n \n"; + "# $sgml_description\n \n"; $sgml_source_2{$type} .= ' -$type" . "{$name} \\\n"; } @@ -62,10 +70,10 @@ sub print_markup() { Producing $type markup: -Comment lines for default.action: +Comment lines for default.action.master: $comment_lines{$type} -Block of $type actions for standard.action: +Block of $type actions for default.action.master: $action_lines{$type} SGML Source for AF chapter in U-M: