Try to generate valid SGML
authorFabian Keil <fk@fabiankeil.de>
Sat, 2 Mar 2013 14:38:38 +0000 (14:38 +0000)
committerFabian Keil <fk@fabiankeil.de>
Sat, 2 Mar 2013 14:38:38 +0000 (14:38 +0000)
utils/filter2docs.pl

index cd8c8b4..65d878a 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# $Id: filter2docs.pl,v 1.6 2009/01/13 16:48:09 fabiankeil Exp $
+# $Id: filter2docs.pl,v 1.7 2013/03/02 14:38:20 fabiankeil Exp $
 # $Source: /cvsroot/ijbswa/current/utils/filter2docs.pl,v $
 
 # Parse the filter names and descriptions from a filter file and
@@ -21,6 +21,15 @@ sub main() {
     print_markup();
 }
 
+sub sgml_escape($) {
+    my $text = shift;
+
+    $text =~ s@<@&lt;@g;
+    $text =~ s@>@&gt;@g;
+
+    return $text;
+}
+
 sub parse_file() {
     while (<INPUT>) {
         if (/^((?:(?:SERVER|CLIENT)-HEADER-)?(?:FILTER|TAGGER)): ([-\w]+) (.*)$/) {
@@ -28,14 +37,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} .= "   <para>\n    <anchor id=\"$type-$name\">\n" .
                 "    <screen>+$type" . "{$name}" . $white_space .
-                "# $description</screen>\n   </para>\n";
+                "# $sgml_description</screen>\n   </para>\n";
             $sgml_source_2{$type} .= ' -<link linkend="' . $type_uc . "-" .
                 uc($name) . "\">$type" . "{$name}</link> \\\n";
         }