X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=utils%2Fprepare-configfile.pl;h=f7483a4703ae43746e61c887941f7a15b1199965;hb=82b3d401f1a12a69483a257c6246641918bd5118;hp=e3b2b55e20b0ff676abdeba051bf5010ae759a40;hpb=dfec72c085a85320534be2d5b7db84bd8b69c832;p=privoxy.git diff --git a/utils/prepare-configfile.pl b/utils/prepare-configfile.pl index e3b2b55e..f7483a47 100755 --- a/utils/prepare-configfile.pl +++ b/utils/prepare-configfile.pl @@ -1,5 +1,10 @@ #!/usr/local/bin/perl +# This script is used by the config-file target in GNUMakefile. +# +# It removes garbage in the w3m output and separates comments +# and active directives. + use strict; use warnings; @@ -7,11 +12,26 @@ sub main() { my $hit_header = 0; my $hit_option = 0; my $header_len; + my $unfold_mode = 0; + my $unfolding_enabled = 0; + my $windows_section_reached = 0; while (<>) { + + if (!$unfolding_enabled and m/=========/) { + # We passed the table of contents + # and can try to unfold unintentional + # line breaks; + $unfolding_enabled = 1; + } + if (m/specific to the Windows GUI/) { + # The Windows section is formatted differently. + $windows_section_reached = 1; + } + s/^1\. \@\@TITLE\@\@/ /i; - if (m/^(\d\.)(\d\.)(\d\.)?\s/) { + if (m/^(\d*\.){1,3}\s/) { # Remove the first digit as it's the # config file section in the User Manual. s/^(\d\.)//; @@ -24,7 +44,16 @@ sub main() { $header_len = length($_); } - s/^/# /; + if ($unfold_mode) { + s/^\s+/ /; + $unfold_mode = 0; + } else { + s/^/# /; + } + if ($unfolding_enabled and m/(\s+#)\s*$/) { + $unfold_mode = 1; + chomp; + } # XXX: someone should figure out what this stuff # is supposed to do (and if it really does that). @@ -35,8 +64,13 @@ sub main() { s/^#\s*-{20,}//; s/ *$//; $hit_option = 1 if s/^#\s+@@//; - - print; + + if ($windows_section_reached) { + # Do not drop empty lines in the Windows section + s/^\s*$/#\n/; + } + + print unless (/^\s*$/); if ($hit_header) { # The previous line was a section