HERE docs etc.
authorshort <>
Fri, 26 Sep 2003 23:28:09 +0000 (23:28 +0000)
committershort <>
Fri, 26 Sep 2003 23:28:09 +0000 (23:28 +0000)
42 files changed:
project/ChangeLog.txt.pl
project/FordFulk/ListItem.pm
project/Heat/ListItem.pm
project/Index.html.pl
project/Islet/ListItem.pm
project/Makefile.am
project/Nokia61/ListItem.pm
project/badblock_guess/ListItem.pm
project/captive/ListItem.pm
project/checkstatic/ListItem.pm
project/cvs2cl-usermap [deleted file]
project/cvsbranchdiff/ListItem.pm
project/cvsutil/ListItem.pm
project/d1xnet/ListItem.pm
project/doswatch/ListItem.pm
project/fixhtml/ListItem.pm
project/ircon/ListItem.pm
project/kix/ListItem.pm
project/kware/ListItem.pm
project/line9k/ListItem.pm
project/mdsms/ListItem.pm
project/mod_auth_tacacs/ListItem.pm
project/mot2as/ListItem.pm
project/netstat/ListItem.pm
project/oslik/ListItem.pm
project/patchd2/ListItem.pm
project/pipebuf/ListItem.pm
project/ppp9k/ListItem.pm
project/redirector_ad/ListItem.pm
project/smbfs/ListItem.pm
project/sshpatch/ListItem.pm
project/step/ListItem.pm
project/surprise/ListItem.pm
project/tac_plus/ListItem.pm
project/tcp_rto/ListItem.pm
project/tcpdump/ListItem.pm
project/timeplan/ListItem.pm
project/vblib/ListItem.pm
project/winvnc/ListItem.pm
project/wllib/ListItem.pm
project/xbill/ListItem.pm
redirect.pl

index 85f2dc3..6bbfb41 100755 (executable)
@@ -32,6 +32,7 @@ use Apache::Constants qw(MOVED);
 
 
 my $W=My::Web->init(
+               "__PACKAGE__"=>__PACKAGE__,
                "header_only"=>1,
                "args_check"=>{
                                "cvs"=>'^[^./][^.]*$',
@@ -43,7 +44,7 @@ local *F;
 open F,""
                ."cvs -n -q -d ".$W->{"pserver"}.":".$W->{"pserver_path"}." rlog ".$W->{"args"}{"cvs"}
                ." |perl -p -e 's#^RCS file: ".$W->{"pserver_path"}.'/(.*?)(?:/Attic/|/)?([^/]*),v$#$&\nWorking file: $1/$2#;'."'"
-               ." |cvs2cl --stdin --stdout --window 3600 --separate-header --no-wrap --usermap cvs2cl-usermap"
+               ." |cvs2cl --stdin --stdout --window 3600 --separate-header --no-wrap --usermap ".$W->{"top_dir"}."/cvs2cl-usermap"
                ." |";
 print while <F>;
 close F;
index b234dc9..725e1d5 100755 (executable)
@@ -36,8 +36,9 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"Java 1.0.2",
-               "description"=>""
-                               .'<p>Java applet to demonstrate the internals of Ford-Fulkenson network algorithm.</p>'
+               "description"=><<"HERE",
+<p>Java applet to demonstrate the internals of Ford-Fulkenson network algorithm.</p>
+HERE
                );
 
 1;
index b37aedc..78baef1 100755 (executable)
@@ -36,8 +36,9 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"Java 1.0.2",
-               "description"=>""
-                               .'<p>Java applet to demonstrate distribution of heat in time.</p>'
+               "description"=><<"HERE",
+<p>Java applet to demonstrate distribution of heat in time.</p>
+HERE
                );
 
 1;
index 25c01bc..5e2c20b 100755 (executable)
@@ -45,7 +45,7 @@ my $CGI=CGI->new();
 print <<'HERE';
 <h1>Project List of <a href="mailto:web-www.jankratochvil.net@jankratochvil.net">Jan Kratochvil</a></h1>
 
-<form action="Index.pl" method="get"><p>
+<form action="Index.html.pl" method="get"><p>
 <select name="description_opt" onchange="this.form.submit();">
 HERE
 print '<option value="0"'.(!$CGI->param("description_opt") ? ' selected="selected"' : '').'>only list</option>'."\n";
index cbbe93d..9e29222 100755 (executable)
@@ -36,9 +36,10 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"Java 1.1",
-               "description"=>""
-                               .'<p>Simple game. Written for the purpose of'
-                               .'  a <a href="http://www.stv.cz/icp/">programming competition</a>.</p>'
+               "description"=><<"HERE",
+<p>Simple game. Written for the purpose of
+a @{[ a_href 'http://www.stv.cz/icp/','programming competition' ]}.</p>
+HERE
                );
 
 1;
index b7871df..9556c9e 100644 (file)
@@ -60,5 +60,4 @@ SUBDIRS= \
 
 EXTRA_DIST+= \
                Index.html.pl \
-               ChangeLog.txt.pl \
-               cvs2cl-usermap
+               ChangeLog.txt.pl
index bd72882..ee9be88 100755 (executable)
@@ -36,12 +36,13 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"C, PHP",
-               "description"=>""
-                               .'<p>At least Nokia 3210 offers game <b>Rotation</b>, this little software will'
-                               .' tell you the optimal solution steps for the given game board situation.'
-                               .' The goal is to get board with'
-                               .' <b>1&nbsp;2&nbsp;3</b>, <b>4&nbsp;5&nbsp;6</b>, <b>7&nbsp;8&nbsp;9</b>,'
-                               .' in rows.</p>'
+               "description"=><<"HERE",
+<p>At least Nokia 3210 offers game <b>Rotation</b>, this little software will
+tell you the optimal solution steps for the given game board situation.
+The goal is to get board with
+<b>1&nbsp;2&nbsp;3</b>, <b>4&nbsp;5&nbsp;6</b>, <b>7&nbsp;8&nbsp;9</b>,
+in rows.</p>
+HERE
                );
 
 1;
index 02946a3..4e1cc7d 100755 (executable)
@@ -39,8 +39,9 @@ our @ListItem=(
                "license"=>"GPL",
                "maintenance"=>"ready",
                "language"=>"C",
-               "description"=>""
-                               .'<p>badblock-guess will try to find all readable sectors of the disk in minimal time.</p>'
+               "description"=><<"HERE",
+<p>badblock-guess will try to find all readable sectors of the disk in minimal time.</p>
+HERE
                );
 
 1;
index 9acf53b..b2fbf6c 100755 (executable)
@@ -37,12 +37,13 @@ our @ListItem=(
                "language"=>"C, i386 asm, Perl",
                "cvs-of main tree"=>"priv/captive",
                "cvs-of branched ".a_href('http://www.reactos.com/','reactos')." subdir"=>"priv/reactos:captive",
-               "description"=>""
-                               .'<p>The implementation allows applications running under the GNU/Linux operating'
-                               .' system to access NTFS drives. File system driver compatibility with VFAT,'
-                               .' ISO9660 and EXT2 is also provided.</p>'
-                               .'<p>Project runs the original Microsoft Windows drivers to get the best'
-                               .' filesystem compatibility and safety ever reachable.</p>'
+               "description"=><<"HERE",
+<p>The implementation allows applications running under the GNU/Linux operating
+system to access NTFS drives. File system driver compatibility with VFAT,
+ISO9660 and EXT2 is also provided.</p>
+<p>Project runs the original Microsoft Windows drivers to get the best
+filesystem compatibility and safety ever reachable.</p>
+HERE
                );
 
 1;
index f5b487f..91103fe 100755 (executable)
@@ -36,12 +36,13 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"Perl",
-               "description"=>""
-                               .'<p>Gives additional warnings not provided by GNU C Compiler'
-                               .' such as dead code declared as <code>global</code> in separate file,'
-                               .' missing <code>static</code> keywords etc.</p>'
-                               .' <p>It can get very valuable during stripping functionality off of'
-                               .' a big package for embedded resource-limited machines.</p>'
+               "description"=><<"HERE",
+<p>Gives additional warnings not provided by GNU C Compiler
+such as dead code declared as <code>global</code> in separate file,
+missing <code>static</code> keywords etc.</p>
+<p>It can get very valuable during stripping functionality off of
+a big package for embedded resource-limited machines.</p>
+HERE
                );
 
 1;
diff --git a/project/cvs2cl-usermap b/project/cvs2cl-usermap
deleted file mode 100644 (file)
index a2fb6d8..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-short:Jan Kratochvil <project-captive@jankratochvil.net>
-lace:Jan Kratochvil <project-captive@jankratochvil.net>
index 43f8412..badace3 100755 (executable)
@@ -36,10 +36,11 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"bash",
-               "description"=>""
-                               .'<p>During patching of foreign CVS trees you have to regularly import them'
-                               .' as CVS does not support multiple repositories. There is a problem with'
-                               .' new or removed files, this simple tool will take care of them.</p>'
+               "description"=><<"HERE",
+<p>During patching of foreign CVS trees you have to regularly import them
+as CVS does not support multiple repositories. There is a problem with
+new or removed files, this simple tool will take care of them.</p>
+HERE
                );
 
 1;
index 33ebc4f..6dae0b8 100755 (executable)
@@ -36,12 +36,13 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"merge",
                "language"=>"Perl",
-               "description"=>""
-                               .'<p>Lists of specified types of files and safe settings of CVSROOT'
-                               .' for already checkouted package.</p>'
-                               .' <p>There exists package <a href=\"http://www.red-bean.com/cvsutils/\">CVS Utilities</a>'
-                               .' doing similiar things and more - this utility should be merged into it.'
-                               .' Pointed out by the courtesy of Jesse Glick.</p>'
+               "description"=><<"HERE",
+<p>Lists of specified types of files and safe settings of CVSROOT
+for already checkouted package.</p>
+<p>There exists package @{[ a_href 'http://www.red-bean.com/cvsutils/','CVS Utilities' ]}
+doing similiar things and more - this utility should be merged into it.
+Pointed out by the courtesy of Jesse Glick.</p>
+HERE
                );
 
 1;
index be153bf..06c80d4 100755 (executable)
@@ -36,10 +36,11 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"accepted",
                "language"=>"C module",
-               "description"=>""
-                               .'<p>No further mess with <a href="ftp://linux.kali.net/outgoing/kalinix/">KaliNix</a>,'
-                               .' KIX or any other IPX layer convertor. This patch adds true TCP/IP networking'
-                               .' capability to <a href="http://d1x.warpcore.org/">D1X</a> version 1.30.</p>'
+               "description"=><<"HERE",
+<p>No further mess with @{[ a_href 'ftp://linux.kali.net/outgoing/kalinix/','KaliNix' ]},
+KIX or any other IPX layer convertor. This patch adds true TCP/IP networking
+capability to @{[ a_href 'http://d1x.warpcore.org/','D1X' ]} version 1.30.</p>
+HERE
                );
 
 1;
index 15176c1..e6f0f68 100755 (executable)
@@ -36,16 +36,17 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"i386 asm",
-               "description"=>""
-                               .'<p>Resident program which displays all the file (and other) DOS function'
-                               .' calls access on the secondary console. Useful for many failure discoveries'
-                               .' for weird software packages with broken file/directory access.</p>'
-                               .' <ul>'
-                               .'      <li>MDA/Hercules secondary adapter recommended for DOSWATCH</li>'
-                               .'      <li>Package contains also MDABIOS - generic secondary adapter driver</li>'
-                               .'      <li>MDABIOS features DOS commands accessible device "mda$"</li>'
-                               .'      <li>DOSWATCH can be run on single VGA card (with not much comfort, indeed)</li>'
-                               .' </ul>'
+               "description"=><<"HERE",
+<p>Resident program which displays all the file (and other) DOS function
+calls access on the secondary console. Useful for many failure discoveries
+for weird software packages with broken file/directory access.</p>
+<ul>
+       <li>MDA/Hercules secondary adapter recommended for DOSWATCH</li>
+       <li>Package contains also MDABIOS - generic secondary adapter driver</li>
+       <li>MDABIOS features DOS commands accessible device "mda$"</li>
+       <li>DOSWATCH can be run on single VGA card (with not much comfort, indeed)</li
+</ul>
+HERE
                );
 
 1;
index 0656a81..3857364 100755 (executable)
@@ -36,12 +36,13 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"obsolete-".a_href('http://wget.sunsite.dk/','Wget')." option <b>--convert-links</b> does the same.",
                "language"=>"Perl",
-               "description"=>""
-                               .'<p>If you download/grab the whole (or its part) of some web site (for example'
-                               .' by <b>WebCopy</b> tool), you will'
-                               .' probably want to browse it locally on your computer offline. Unfortunately'
-                               .' the authors are usually using server-name protocol reference or absolute'
-                               .' path referration which will broke on your local machine.</p>'
+               "description"=><<"HERE",
+<p>If you download/grab the whole (or its part) of some web site (for example
+by <b>WebCopy</b> tool), you will
+probably want to browse it locally on your computer offline. Unfortunately
+the authors are usually using server-name protocol reference or absolute
+path referration which will broke on your local machine.</p>
+HERE
                );
 
 1;
index 8970752..0e793fe 100755 (executable)
@@ -38,11 +38,12 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"obsolete-Superseded by ".a_href('http://www.lirc.org/','LIRC'),
                "language"=>"C, Java",
-               "description"=>""
-                               .'<p>Software package for custom simple hardware connected to PC parallel port'
-                               .' and transmitting infrared singals to fake real remote TV/video controllers. Hardware'
-                               .' is also equipped with receiver which is only used during development to grab and decode'
-                               .' original signals.</p>'
+               "description"=><<"HERE",
+<p>Software package for custom simple hardware connected to PC parallel port
+and transmitting infrared singals to fake real remote TV/video controllers. Hardware
+is also equipped with receiver which is only used during development to grab and decode
+original signals.</p>
+HERE
                );
 
 1;
index febe7d3..de22574 100755 (executable)
@@ -36,17 +36,18 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"C",
-               "description"=>""
-                               .'<p>Server which can be used on GNU/Linux as a replacement of'
-                               .' <a href="ftp://linux.kali.net/outgoing/kalinix/">KaliNix</a>'
-                               .' and thus no need to run some foreign binaries on your system and connection'
-                               .' to remote/slow real <a href="http://www.kali.net/">Kali</a> server'
-                               .' and/or subscribing various papers to get (again binary-only) your'
-                               .' own Kali server. Unfortunaly you cannot interconnect a game established'
-                               .' by using KIX with any other software (Kali, native IPX etc.).</p>'
-                               .' <p>Just compile, run and then add "-kali" option to your'
-                               .' <a href="http://d1x.warpcore.org/">D1X</a> to get it running. You'
-                               .' do not need IPX support anywhere (kernel, D1X, ...).</p>'
+               "description"=><<"HERE",
+<p>Server which can be used on GNU/Linux as a replacement of
+@{[ a_href 'ftp://linux.kali.net/outgoing/kalinix/','KaliNix' ]}
+and thus no need to run some foreign binaries on your system and connection
+to remote/slow real @{[ a_href 'http://www.kali.net/','Kali' ]} server
+and/or subscribing various papers to get (again binary-only) your
+own Kali server. Unfortunaly you cannot interconnect a game established
+by using KIX with any other software (Kali, native IPX etc.).</p>
+<p>Just compile, run and then add "-kali" option to your
+@{[ a_href 'http://d1x.warpcore.org/','D1X' ]} to get it running. You
+do not need IPX support anywhere (kernel, D1X, ...).</p>
+HERE
                );
 
 1;
index fcba772..ee7cd78 100755 (executable)
@@ -37,18 +37,19 @@ our @ListItem=(
                "maintenance"=>"obsolete-"
                                .a_href('http://user-mode-linux.sourceforge.net/','The User-mode Linux Kernel')." is much more useful now.",
                "language"=>"C",
-               "description"=>""
-                               .'<p>Do you also find debugging of Linux kernel drivers a nightmare? Would you'
-                               .' like to be able to run them as normal userland process including fancy'
-                               .' <code>gdb</code> debugging and <code>SIGSEGV</code>-guarded operation?'
-                               .' Here you are!</p>'
-                               .' <p>KernelWare provides stub-style emulation of core kernel functions and'
-                               .' is able to link with already pre-compiled modules. No special compilation'
-                               .' flags needed, just link the <code>.o</code> module of the driver with'
-                               .' KernelWare and you will get standard executable.</p>'
-                               .' <p>Currently only a few functions are implemented and the code is rather'
-                               .' an ugly hack than professional solution. I do not expect to ever develop'
-                               .' it into some clean software, take it as it is, improve it or let it be.</p>'
+               "description"=><<"HERE",
+<p>Do you also find debugging of Linux kernel drivers a nightmare? Would you
+like to be able to run them as normal userland process including fancy
+<code>gdb</code> debugging and <code>SIGSEGV</code>-guarded operation?
+Here you are!</p>
+<p>KernelWare provides stub-style emulation of core kernel functions and
+is able to link with already pre-compiled modules. No special compilation
+flags needed, just link the <code>.o</code> module of the driver with
+KernelWare and you will get standard executable.</p>
+<p>Currently only a few functions are implemented and the code is rather
+an ugly hack than professional solution. I do not expect to ever develop
+it into some clean software, take it as it is, improve it or let it be.</p>
+HERE
                );
 
 1;
index b800263..a79d09d 100755 (executable)
@@ -36,10 +36,11 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"bash, hardware",
-               "description"=>""
-                               .'<p>Waits for incoming PPP data connection, authorizes it and answers it.</p>'
-                               .'<p>Scheme of computer controllde hardware charger for Nokia Communicator 9110 is supplied.'
-                               .' It keeps the Nokia battery fit by automatically controlled battery charging cycles.</p>'
+               "description"=><<"HERE",
+<p>Waits for incoming PPP data connection, authorizes it and answers it.</p>
+<p>Scheme of computer controllde hardware charger for Nokia Communicator 9110 is supplied.
+It keeps the Nokia battery fit by automatically controlled battery charging cycles.</p>
+HERE
                );
 
 1;
index 93a8481..1236986 100755 (executable)
@@ -41,20 +41,21 @@ our @ListItem=(
                "license"=>"GPL",
                "maintenance"=>"ready",
                "language"=>"C",
-               "description"=>""
-                               .'<p>Sends NOL or NGG files as operator logo or group graphics through'
-                               .' <a href="http://www.nokia.com/">Nokia</a> <a href="http://www.communicator.org/">Communicator</a>'
-                               .' <b>9110</b> (9000/9000i is definitively <b>not</b> compatible). Usually you need'
-                               .' to have either infra-red port in your computer or special FBUS cable to be able'
-                               .' to use conventional logo-uploading tools (<a href="http://www.gnokii.org/">GNokii</a>'
-                               .' or one from <a href="http://www.kessler-design.com/wireless/operatorlogo.php3">KESSLER'
-                               .' Wireless Design</a>). This program uses only standard modem cable and integrated'
-                               .' FaxModem capability of 9110.</p>'
-                               .' <p>This software should be general-UNIX compatible. Please wait a minute when'
-                               .' you run it, under various UNIXes it may take some time to finish.</p>'
-                               .' <p><b>GSM network codes: </b>GSM network code needs to be given as parameter during'
-                               .' sending of operator logo. Nice list of the codes you will find'
-                               .' <a href="http://kbs.cs.tu-berlin.de/~jutta/gsm/gsm-list.html">here</a>.</p>'
+               "description"=><<"HERE",
+<p>Sends NOL or NGG files as operator logo or group graphics through
+@{[ a_href 'http://www.nokia.com/','Nokia' ]} @{[ a_href 'http://www.communicator.org/','Communicator' ]}
+<b>9110</b> (9000/9000i is definitively <b>not</b> compatible). Usually you need
+to have either infra-red port in your computer or special FBUS cable to be able
+to use conventional logo-uploading tools (@{[ a_href 'http://www.gnokii.org/','GNokii' ]}
+or one from @{[ a_href 'http://www.kessler-design.com/wireless/operatorlogo.php3','KESSLER Wireless Design' ]}).
+This program uses only standard modem cable and integrated
+FaxModem capability of 9110.</p>
+<p>This software should be general-UNIX compatible. Please wait a minute when
+you run it, under various UNIXes it may take some time to finish.</p>
+<p><b>GSM network codes: </b>GSM network code needs to be given as parameter during
+sending of operator logo. Nice list of the codes you will find
+@{[ a_href 'http://kbs.cs.tu-berlin.de/~jutta/gsm/gsm-list.html','here' ]}.</p>
+HERE
                );
 
 1;
index a66143d..b1026b0 100755 (executable)
@@ -37,10 +37,11 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"accepted",
                "language"=>"C patch",
-               "description"=>""
-                               .'Patch implements: command-line client, <code>dropped Makefile.in</code>'
-                               .' in favor of <code>Makefile.am</code>, <code>--with-apache</code> works now'
-                               .' (whole <code>configure.in</code> rewritten)'
+               "description"=><<"HERE",
+Patch implements: command-line client, <code>dropped Makefile.in</code>
+in favor of <code>Makefile.am</code>, <code>--with-apache</code> works now
+(whole <code>configure.in</code> rewritten)
+HERE
                );
 
 1;
index 88f2c02..653cb5f 100755 (executable)
@@ -36,15 +36,16 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"C",
-               "sponsorship"=>"<a href=\"http://www.princip.cz/\">Princip, a.s.</a>",
-               "description"=>""
-                               .'<p>Do you need to compile under UNIX assembly sources for Motorola 68k family'
-                               .' of processors? You have probably already found out that original Motorola'
-                               .' syntax is not suitable for GNU assembler which uses a bit different (AT&amp;T'
-                               .' style) syntax. Using this very simple program you can convert between these two.</p>'
-                               .' <p>Specifically it will care about: <code>equ</code> operation, <code>dc.b</code> strings,'
-                               .' <code>;</code> comments, <code>$</code> for hex-radix, <code>%</code> for bin-radix,'
-                               .' local labels, <code>:</code> for label termination.</p>'
+               "sponsorship"=>a_href('http://www.princip.cz/','Princip, a.s.'),
+               "description"=><<"HERE",
+<p>Do you need to compile under UNIX assembly sources for Motorola 68k family
+of processors? You have probably already found out that original Motorola
+syntax is not suitable for GNU assembler which uses a bit different (AT&amp;T
+style) syntax. Using this very simple program you can convert between these two.</p>
+<p>Specifically it will care about: <code>equ</code> operation, <code>dc.b</code> strings,
+<code>;</code> comments, <code>$</code> for hex-radix, <code>%</code> for bin-radix,
+local labels, <code>:</code> for label termination.</p>
+HERE
                );
 
 1;
index d79ff5a..ca95be5 100755 (executable)
@@ -29,18 +29,19 @@ use My::Web;
 
 
 our @ListItem=(
-               "name"=>"Program name display for <a href=\"http://www.inka.de/sites/lina/linux/NetTools/\">net-tools-1.50</a>/netstat",
+               "name"=>"Program name display for ".a_href('http://www.inka.de/sites/lina/linux/NetTools/','net-tools-1.50')."/netstat",
                "priority"=>3,
                "download"=>"net-tools-1.50-progname.diff.gz",
                "summary"=>"Network tool enhancement",
                "license"=>"PD",
                "maintenance"=>"accepted",
                "language"=>"C patch",
-               "description"=>""
-                               .'<p>After answering several questions on the mailing lists and several from'
-                               .' my friends personally, I decided that there is missing some tool for GNU/Linux'
-                               .' which would display PID (or simply the process) of the owner of some socket,'
-                               .' either listening or communicating.</p>'
+               "description"=><<"HERE",
+<p>After answering several questions on the mailing lists and several from
+my friends personally, I decided that there is missing some tool for GNU/Linux
+which would display PID (or simply the process) of the owner of some socket,
+either listening or communicating.</p>
+HERE
                );
 
 1;
index c9bc04a..b269d24 100755 (executable)
@@ -36,10 +36,11 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"Prolog",
-               "description"=>""
-                               .'<p>This is no game, just solution of one specific mathematical problem'
-                               .' consisting of simple state search. Software is written equivalentnly'
-                               .' both in <strong>C</strong> and <strong>Prolog</strong> for comparation.</p>'
+               "description"=><<"HERE",
+<p>This is no game, just solution of one specific mathematical problem
+consisting of simple state search. Software is written equivalentnly
+both in <strong>C</strong> and <strong>Prolog</strong> for comparation.</p>
+HERE
                );
 
 1;
index ed830c9..6cf9560 100755 (executable)
@@ -36,11 +36,12 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"i386 asm patch",
-               "description"=>""
-                               .'<p>Use this <a href="http://www.calderathin.com/products/drdos/">DOS</a>'
-                               .' program to patch/unpatch Descent 2 to not require CD-ROM to'
-                               .' run. I need this as I have no CD-ROM installed in my computer. The exact'
-                               .' bytes sequences needed was investigated by some-else hacker.</p>'
+               "description"=><<"HERE",
+<p>Use this @{[ a_href 'http://www.calderathin.com/products/drdos/','DOS' ]}
+program to patch/unpatch Descent 2 to not require CD-ROM to
+run. I need this as I have no CD-ROM installed in my computer. The exact
+bytes sequences needed was investigated by some-else hacker.</p>
+HERE
                );
 
 1;
index 71aefe3..40a4e98 100755 (executable)
@@ -36,14 +36,15 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"C",
-               "description"=>""
-                               .'<p>You can do a buffering of realtime data such as audio stream by inserting this program'
-                               .' with traditional &quot;UNIX filter&quot; behaviour. It reads as fast as possible into'
-                               .' its cache and also in the same time writes as fast as possible to the output. In fact'
-                               .' it is implemented as two processes (no threads - no pthread libraries needed, only IPC'
-                               .' communication used). Features custom buffer sizes, prefill (start writing of the first byte'
-                               .' only after the WHOLE buffer has beel filled up) and warning messages when buffer is getting'
-                               .' emptied.</p>'
+               "description"=><<"HERE",
+<p>You can do a buffering of realtime data such as audio stream by inserting this program
+with traditional &quot;UNIX filter&quot; behaviour. It reads as fast as possible into
+its cache and also in the same time writes as fast as possible to the output. In fact
+it is implemented as two processes (no threads - no pthread libraries needed, only IPC
+communication used). Features custom buffer sizes, prefill (start writing of the first byte
+only after the WHOLE buffer has beel filled up) and warning messages when buffer is getting
+emptied.</p>'
+HERE
                );
 
 1;
index a68f8ee..41d9b40 100755 (executable)
@@ -36,11 +36,12 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"bash",
-               "description"=>""
-                               .'<p>Script will connect Nokia Communicator <a href="http://www.nokia.com/phones/9000i">9000i</a>'
-                               .' or <a href="http://www.nokia.com/phones/9110i">9110i</a> through'
-                               .' your local GNU/Linux PC Internet connection. You will also need'
-                               .' Nokia Communicator utility <a href="http://www.mgroeber.de/nokia.htm">Advanced PPP Settings</a>.'
+               "description"=><<"HERE",
+<p>Script will connect Nokia Communicator @{[ a_href 'http://www.nokia.com/phones/9000i','9000i' ]}
+or @{[ a_href 'http://www.nokia.com/phones/9110i','9110i' ]} through
+your local GNU/Linux PC Internet connection. You will also need
+Nokia Communicator utility @{[ a_href 'http://www.mgroeber.de/nokia.htm','Advanced PPP Settings' ]}.
+HERE
                );
 
 1;
index 1a779d6..8b785dc 100755 (executable)
@@ -36,13 +36,14 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"Perl",
-               "description"=>""
-                               .'<p>Scripts that will simply discard graphical images referenced'
-                               .' from web pages.  Unlike other such packages it:</p>'
-                               .' <ul>'
-                               .' <li>Does not need separate administration of another daemon</li>'
-                               .' <li>Does not do any page contents filtering (popups will still pass through!)</li>'
-                               .' </ul>'
+               "description"=><<"HERE",
+<p>Scripts that will simply discard graphical images referenced
+from web pages. Unlike other such packages it:</p>
+<ul>
+<li>Does not need separate administration of another daemon</li>
+<li>Does not do any page contents filtering (popups will still pass through!)</li>
+</ul>
+HERE
                );
 
 1;
index fd19b0d..722da46 100755 (executable)
@@ -36,16 +36,16 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"C patch",
-               "description"=>""
-                               .'<p>Simple patch to increase virtual block size of SMB filesytem in Linux'
-                               .' kernel. For me it improved tranfer rate of <code>cp</code> command almost'
-                               .' by a factor of <strong>2</strong> (approx. 700KB -&gt; 1300KB or something'
-                               .' like about it). Now <code>cp</code> should be as fast as <code>cat</code>'
-                               .' redirected across networked filesystems.</p>'
-                               .' <p>Unfortunately the blocksize causes different (4 times smaller) sizes'
-                               .' reported by <code>du</code> command as it measures it in <i>blocks</i>'
-                               .' and not in <i>kilobytes</i> as some people think.</p>'
-
+               "description"=><<"HERE",
+<p>Simple patch to increase virtual block size of SMB filesytem in Linux
+kernel. For me it improved tranfer rate of <code>cp</code> command almost
+by a factor of <strong>2</strong> (approx. 700KB -&gt; 1300KB or something
+like about it). Now <code>cp</code> should be as fast as <code>cat</code>
+redirected across networked filesystems.</p>
+<p>Unfortunately the blocksize causes different (4 times smaller) sizes
+reported by <code>du</code> command as it measures it in <i>blocks</i>
+and not in <i>kilobytes</i> as some people think.</p>
+HERE
                );
 
 1;
index 6a4036b..2043c9d 100755 (executable)
@@ -38,9 +38,10 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"update-".a_href('http://www.openssh.com/','OpenSSH').' is preferred although this patch is not migrated.',
                "language"=>"C patch",
-               "description"=>""
-                               .'This patch will protect your mostly idle SSH connection from broken masquerading firewalls'
-                               .' and/or it will also provide _on-demand_ tunnelling.'
+               "description"=><<"HERE",
+This patch will protect your mostly idle SSH connection from broken masquerading firewalls
+and/or it will also provide _on-demand_ tunnelling.
+HERE
                );
 
 1;
index 96871c5..1a6268d 100755 (executable)
@@ -36,10 +36,11 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"dead",
                "language"=>"PHP 3.0",
-               "description"=>""
-                               .'<p>Preview of a possible future web database solution for some lawyers association.'
-                               .' Currently it remains as a source of some web development <a href="http://www.php.net/">PHP 3.0</a>'
-                               .' codebase to be reused in other projects.</p>'
+               "description"=><<"HERE",
+<p>Preview of a possible future web database solution for some lawyers association.
+Currently it remains as a source of some web development @{[ a_href 'http://www.php.net/','PHP 3.0' ]}
+codebase to be reused in other projects.</p>
+HERE
                );
 
 1;
index fa84075..8980550 100755 (executable)
@@ -40,10 +40,11 @@ our @ListItem=(
                "maintenance"=>"update",
                "ownership"=>"Coauthor; development team of 5 people",
                "language"=>"C",
-               "description"=>""
-                               .'<p>Partition Surprise is a GPL partition managing software for Linux. Partition'
-                               .'resizes, moves and conversions is implemented. Limited support of operations on'
-                               .'mounted ext2-filesystem included as well.'
+               "description"=><<"HERE",
+<p>Partition Surprise is a GPL partition managing software for Linux. Partition
+resizes, moves and conversions is implemented. Limited support of operations on
+mounted ext2-filesystem included as well.
+HERE
                );
 
 1;
index 1eb52ce..d2df3de 100755 (executable)
@@ -38,12 +38,13 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"C patch",
-               "sponsorship"=>"<a href=\"http://www.gtsgroup.cz/\">GTS</a>",
-               "description"=>""
-                               .'<p>Patch provides complete freedom of specifying ANY'
-                               .' configuration changes depending on the specific NAS the user is being logged'
-                               .' on. This involves different enable password, NAS keys but now also: various'
-                               .' specific commands, permitted services etc.</p>'
+               "sponsorship"=>a_href('http://www.gtsgroup.cz/'.'GTS'),
+               "description"=><<"HERE",
+<p>Patch provides complete freedom of specifying ANY
+configuration changes depending on the specific NAS the user is being logged
+on. This involves different enable password, NAS keys but now also: various
+specific commands, permitted services etc.</p>
+HERE
                );
 
 1;
index 7ce2f52..7649304 100755 (executable)
@@ -37,18 +37,19 @@ our @ListItem=(
                "license"=>"GPL",
                "maintenance"=>"ready",
                "language"=>"C patch",
-               "description"=>""
-                               .'<p>This patch can solve your problems if you have network connection dropping too much'
-                               .' packets. In standard case the Linux kernel will correctly increase our round-trip-time'
-                               .' of connection slowing the transfer rate up to the unusable state.</p>'
-                               .' <p>After applying this patch you can set your maximal round-trip-time in file'
-                               .' &quot;<b>/proc/sys/net/ipv4/tcp_rto_max</b>&quot;, it is expressed in <tt>Hz</tt>'
-                               .' units (<tt>100-per-second</tt> on <i>x86</i> platform). You may need also to enlarge'
-                               .' your maximal retry count in &quot;<b>/proc/sys/net/ipv4/tcp_retries2</b>&quot;,'
-                               .' otherwise <u>your</u> machine will reject the connection as it will have to retry'
-                               .' the packets more than in sane states.</p>'
-                               .' <p><font color="red">Please use this feature very carefully! You are violating'
-                               .' <tt>RFC</tt> standards and you can get your network administrators to be very angry!</font></p>'
+               "description"=><<"HERE",
+<p>This patch can solve your problems if you have network connection dropping too much
+packets. In standard case the Linux kernel will correctly increase our round-trip-time
+of connection slowing the transfer rate up to the unusable state.</p>
+<p>After applying this patch you can set your maximal round-trip-time in file
+&quot;<b>/proc/sys/net/ipv4/tcp_rto_max</b>&quot;, it is expressed in <tt>Hz</tt>
+units (<tt>100-per-second</tt> on <i>x86</i> platform). You may need also to enlarge
+your maximal retry count in &quot;<b>/proc/sys/net/ipv4/tcp_retries2</b>&quot;,
+otherwise <u>your</u> machine will reject the connection as it will have to retry
+the packets more than in sane states.</p>
+<p><font color="red">Please use this feature very carefully! You are violating
+<tt>RFC</tt> standards and you can get your network administrators to be very angry!</font></p>
+HERE
                );
 
 1;
index 9c34361..d771ced 100755 (executable)
@@ -37,8 +37,9 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"C patch",
-               "description"=>""
-                               .'<p>Makes the text messages of tcpdump(1) readable when option <code>-x</code> is used.</p>'
+               "description"=><<"HERE",
+<p>Makes the text messages of tcpdump(1) readable when option <code>-x</code> is used.</p>
+HERE
                );
 
 1;
index 5871b08..8a69f2b 100755 (executable)
@@ -37,11 +37,12 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"C",
-               "description"=>""
-                               .'<p>Software to do summaries of time log - what have you spent much time on.'
-                               .' The greatest effect to me was just the writing of such time log: Consecutively'
-                               .' you do not spend such time on useless issues as you would be forced to write'
-                               .' such event to your log.</p>'
+               "description"=><<"HERE",
+<p>Software to do summaries of time log - what have you spent much time on.
+The greatest effect to me was just the writing of such time log: Consecutively
+you do not spend such time on useless issues as you would be forced to write
+such event to your log.</p>
+HERE
                );
 
 1;
index 05617b1..1842c87 100755 (executable)
@@ -37,11 +37,12 @@ our @ListItem=(
                "maintenance"=>"ready",
                "language"=>"C",
                "sponsorship"=>"<a href=\"http://www.princip.cz/\">Princip, a.s.</a>",
-               "description"=>""
-                               .'<p>Enables application to easily do input/output functions (like'
-                               .' read/write, printf etc.) with memory streams while using performance effective'
-                               .' functions. Simple buffer copying/moving would be possible but it would case a'
-                               .' major performance hit if not using algorithms implemented in this library.</p>'
+               "description"=><<"HERE",
+<p>Enables application to easily do input/output functions (like
+read/write, printf etc.) with memory streams while using performance effective
+functions. Simple buffer copying/moving would be possible but it would case a
+major performance hit if not using algorithms implemented in this library.</p>
+HERE
                );
 
 1;
index d3a4c97..438ae68 100755 (executable)
@@ -40,12 +40,13 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"ready",
                "language"=>"i386 asm patch",
-               "description"=>""
-                               .'<p>If you install <i>WinVNC</i> in'
-                               .' <a href="http://www.microsoft.com/">MS</a>&nbsp;<a href="http://www.microsoft.com/windows/">Windows</a>'
-                               .' environment, you will notice that it creates its own small icon in <i>System Tray</i>.'
-                               .' Sometimes you want to get rid of this visible icon and you cannot remove it by any configuration'
-                               .' settings.</p>'
+               "description"=><<"HERE",
+<p>If you install <i>WinVNC</i> in
+@{[ a_href 'http://www.microsoft.com/','MS' ]}&nbsp;@{[ a_href 'http://www.microsoft.com/windows/','Windows' ]}
+environment, you will notice that it creates its own small icon in <i>System Tray</i>.
+Sometimes you want to get rid of this visible icon and you cannot remove it by any configuration
+settings.</p>
+HERE
                );
 
 1;
index eee88b7..c02fadb 100755 (executable)
@@ -36,11 +36,12 @@ our @ListItem=(
                "license"=>"PD",
                "maintenance"=>"obsolete-Any of the supported backends are no longer being used.",
                "language"=>"C",
-               "description"=>""
-                               .'<p>This library should make you generically use line drawing on the following platforms:'
-                               .' '.a_href('http://www.x.org/','UNIX/X Windows System X11 (libX11)').','
-                               .' '.a_href('http://www.svgalib.org/','UNIX/SVGAlib').' and'
-                               .' '.a_href('http://www.amiga.com/','AmigaOS').'</p>'
+               "description"=><<"HERE",
+<p>This library should make you generically use line drawing on the following platforms:
+@{[ a_href 'http://www.x.org/','UNIX/X Windows System X11 (libX11)' ]},
+@{[ a_href 'http://www.svgalib.org/','UNIX/SVGAlib' ]} and
+@{[ a_href 'http://www.amiga.com/','AmigaOS' ]}.</p>
+HERE
                );
 
 1;
index b982249..803a5fa 100755 (executable)
@@ -37,11 +37,12 @@ our @ListItem=(
                "license"=>"GPL",
                "maintenance"=>"ready",
                "language"=>"C",
-               "description"=>""
-                               .'<p>Almost-rewritten <a href="ftp://ftp.x.org/contrib/games/xbill-2.0.tgz">classical xBill game</a>,'
-                               .' this project has been moved to <a href="http://sourceforge.net/">SourceForge</a>.'
-                               .' Please refer to the <a href="http://xbill.sourceforge.net/">page linked above</a>'
-                               .' to have further access to it.</p>'
+               "description"=><<"HERE",
+<p>Almost-rewritten @{[ a_href 'ftp://ftp.x.org/contrib/games/xbill-2.0.tgz','classical xBill game' ]},
+this project has been moved to @{[ a_href 'http://sourceforge.net/','SourceForge' ]}.
+Please refer to the @{[ a_href 'http://xbill.sourceforge.net/','page linked above' ]}
+to have further access to it.</p>
+HERE
                );
 
 1;
index 6bf50cd..59acbe5 100755 (executable)
@@ -31,6 +31,7 @@ use Apache::Constants qw(MOVED);
 
 
 my $W=My::Web->init(
+               "__PACKAGE__"=>__PACKAGE__,
                "header_only"=>1,
                "args_check"=>{
                                "location"=>'^\w+://',