X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=utils%2Fchangelog2doc.pl;h=a81f80c6f48e8ea0595037fa8a6cdef85a8273e0;hp=6ed30c0d0dada0bc287919df79d6dda61fdcb2fd;hb=60513e33c518dd45644143581976e601d4d6aa60;hpb=6d8ebbb039f05e765737590d4d236da465da8c1c diff --git a/utils/changelog2doc.pl b/utils/changelog2doc.pl index 6ed30c0d..a81f80c6 100755 --- a/utils/changelog2doc.pl +++ b/utils/changelog2doc.pl @@ -1,11 +1,25 @@ #!/usr/bin/perl -# $Id: changelog2doc.pl,v 1.4 2010/10/31 13:26:07 fabiankeil Exp $ -# $Source: /cvsroot/ijbswa/current/utils/changelog2doc.pl,v $ - +########################################################################## +# # Filter to parse the ChangeLog and translate the changes for # the most recent version into something that looks like markup # for the documentation but still needs fine-tuning. +# +# Copyright (c) 2008, 2010 Fabian Keil +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +########################################################################## use strict; use warnings; @@ -25,29 +39,60 @@ sub read_entries() { next unless $section_reached; next if /^\s*$/; - if (/^-/) { + if (/^(\s*)- /) { + my $indentation = length($1); + if ($i > 1 and $entries[$i]{indentation} > $indentation) { + $entries[$i]{last_list_item} = 1; + } $i++; $entries[$i]{description} = ''; + $entries[$i]{indentation} = $indentation; + } + if (/:\s*$/) { + $entries[$i]{list_header} = 1; } - s@^-?\s*@@; + + s@^\s*-?\s*@@; $entries[$i]{description} .= $_; } + if ($entries[$i]{indentation} != 0) { + $entries[$i]{last_list_item} = 1; + } print "Parsed " . @entries . " entries.\n"; } sub create_listitem_markup($) { my $entry = shift; my $description = $entry->{description}; + my $markup = ''; + my $default_lws = ' '; + my $lws = $default_lws x ($entry->{indentation} ? 2 : 1); chomp $description; - $description =~ s@\n@\n @g; - return " \n" . - " \n" . - " " . $description . "\n" . - " \n" . - " \n"; + $description =~ s@\n@\n ${lws}@g; + + $markup .= $lws . "\n" . + $lws . " \n"; + + $markup .= $lws . " " . $description . "\n"; + + if (defined $entry->{list_header}) { + $markup .= $lws . " \n"; + + } else { + if (defined $entry->{last_list_item}) { + $markup .= $lws . " \n"; + $markup .= $lws . " \n"; + $markup .= $lws . "\n"; + $lws = $default_lws; + } + $markup .= $lws . " \n" . + $lws . "\n"; + } + + return $markup; } sub wrap_in_para_itemlist_markup($) {