diff options
Diffstat (limited to 'doc/tools/toc-texi')
-rwxr-xr-x | doc/tools/toc-texi | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/doc/tools/toc-texi b/doc/tools/toc-texi new file mode 100755 index 00000000..2be48fa6 --- /dev/null +++ b/doc/tools/toc-texi @@ -0,0 +1,47 @@ +#!/usr/bin/perl + +# Copyright (C) 2001 by Claudiu Costin +# <claudiuc@work.ro> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +$depth=0; +$buffer=""; + +while (<>) { + chop; + + if ($buffer =~ /<ul>/i) { + $depth++; + $buffer = $_; + next; + } + if ($buffer =~ /<\/ul>/i) { + $depth--; + print " "x($depth-1) . "</tocsect${depth}>\n" if ($depth != 0); + $buffer = $_; + next; + } + + if ($buffer =~ /<li>/i) { + $buffer =~ /HREF=\"([^\"]+)\"/; + $url=$1; + $buffer =~ /\">(.+)<\/A>/; + $text=$1; + $text =~ s/<tt>//gi; + $text =~ s/<\/tt>//gi; + $text =~ s/<CODE>//gi; + $text =~ s/<\/CODE>//gi; + $text =~ s/<BR>//gi; + if (/<ul>/i) { + print " "x($depth-1) . "<tocsect${depth} name=\"$text\" url=\"$url\">\n"; + } else { + print " "x($depth-1) . "<tocsect${depth} name=\"$text\" url=\"$url\"/>\n"; + } + } + # a simulated delay line with one cell + $buffer = $_; +} |