--- /srv/reproducible-results/rbuild-debian/r-b-build.Nqs7EWoH/b1/htp_1.19-8_amd64.changes
+++ /srv/reproducible-results/rbuild-debian/r-b-build.Nqs7EWoH/b2/htp_1.19-8_amd64.changes
├── Files
│ @@ -1,3 +1,3 @@
│  
│   10c498351f38ee5e38b27f5cc1d7d1b0 71032 debug optional htp-dbgsym_1.19-8_amd64.deb
│ - 3a0980f5596bc315b24249e78a9ab37f 116620 web optional htp_1.19-8_amd64.deb
│ + 2b6906bc459196d946ef23b4065f11df 117076 web optional htp_1.19-8_amd64.deb
├── htp_1.19-8_amd64.deb
│ ├── file list
│ │ @@ -1,3 +1,3 @@
│ │  -rw-r--r--   0        0        0        4 2020-06-14 23:21:19.000000 debian-binary
│ │  -rw-r--r--   0        0        0     3616 2020-06-14 23:21:19.000000 control.tar.xz
│ │ --rw-r--r--   0        0        0   112812 2020-06-14 23:21:19.000000 data.tar.xz
│ │ +-rw-r--r--   0        0        0   113268 2020-06-14 23:21:19.000000 data.tar.xz
│ ├── control.tar.xz
│ │ ├── control.tar
│ │ │ ├── ./control
│ │ │ │ @@ -1,12 +1,12 @@
│ │ │ │  Package: htp
│ │ │ │  Version: 1.19-8
│ │ │ │  Architecture: amd64
│ │ │ │  Maintainer: Marcelo Soares Mota <motasmarcelo@gmail.com>
│ │ │ │ -Installed-Size: 631
│ │ │ │ +Installed-Size: 648
│ │ │ │  Depends: libc6 (>= 2.38)
│ │ │ │  Section: web
│ │ │ │  Priority: optional
│ │ │ │  Homepage: http://htp.sourceforge.net
│ │ │ │  Description: nice HTML pre-processor
│ │ │ │   htp is an HTML pre-processor. It is designed to be a flexible authoring tool
│ │ │ │   that can easily be integrated into the HTML design process.
│ │ │ ├── ./md5sums
│ │ │ │ ├── ./md5sums
│ │ │ │ │┄ Files differ
│ ├── data.tar.xz
│ │ ├── data.tar
│ │ │ ├── file list
│ │ │ │ @@ -1,27 +1,27 @@
│ │ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2020-06-14 23:21:19.000000 ./
│ │ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2020-06-14 23:21:19.000000 ./usr/
│ │ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2020-06-14 23:21:19.000000 ./usr/bin/
│ │ │ │  -rwxr-xr-x   0 root         (0) root         (0)    72104 2020-06-14 23:21:19.000000 ./usr/bin/htp
│ │ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2020-06-14 23:21:19.000000 ./usr/share/
│ │ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2020-06-14 23:21:19.000000 ./usr/share/doc/
│ │ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/
│ │ │ │ --rw-r--r--   0 root         (0) root         (0)     8180 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/alttext.html
│ │ │ │ +-rw-r--r--   0 root         (0) root         (0)     8474 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/alttext.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     1418 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/alttext.htp
│ │ │ │ --rw-r--r--   0 root         (0) root         (0)     7882 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/block.html
│ │ │ │ +-rw-r--r--   0 root         (0) root         (0)    11050 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/block.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      781 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/block.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     7941 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/blockdef.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     1075 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/blockdef.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     4763 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/bugs.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      737 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/bugs.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      878 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/changelog.Debian.gz
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)    11488 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/comment.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      676 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/comment.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)    13083 2020-06-14 23:16:46.000000 ./usr/share/doc/htp/copyright
│ │ │ │ --rw-r--r--   0 root         (0) root         (0)    10465 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/def.html
│ │ │ │ +-rw-r--r--   0 root         (0) root         (0)    10675 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/def.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     3601 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/def.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     8030 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/default.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     3149 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/default.htp
│ │ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/examples/
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      536 2015-05-16 17:04:11.000000 ./usr/share/doc/htp/examples/Makefile.sub
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     2404 2015-05-16 17:04:11.000000 ./usr/share/doc/htp/examples/album.hti
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     1087 2015-05-16 17:04:11.000000 ./usr/share/doc/htp/examples/album.htt
│ │ │ │ @@ -32,64 +32,64 @@
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      818 2015-05-16 17:04:11.000000 ./usr/share/doc/htp/examples/prime.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     1576 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/examples/quine.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     1576 2015-05-16 17:04:11.000000 ./usr/share/doc/htp/examples/quine.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      604 2015-05-16 17:04:11.000000 ./usr/share/doc/htp/examples/section.def
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     1189 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/examples/section.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      918 2015-05-16 17:04:11.000000 ./usr/share/doc/htp/examples/section.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      375 2015-05-16 17:04:11.000000 ./usr/share/doc/htp/examples/section.htt
│ │ │ │ --rw-r--r--   0 root         (0) root         (0)    11080 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/expand.html
│ │ │ │ +-rw-r--r--   0 root         (0) root         (0)     8384 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/expand.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     3702 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/expand.htp
│ │ │ │ --rw-r--r--   0 root         (0) root         (0)    14465 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/file.html
│ │ │ │ +-rw-r--r--   0 root         (0) root         (0)    16771 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/file.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     2490 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/file.htp.gz
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)    14293 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/history.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     3946 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/history.htp.gz
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     3911 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/hlhtp.pl
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      165 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/htp.def
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     4049 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/htp.htt
│ │ │ │ --rw-r--r--   0 root         (0) root         (0)     7951 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/if.html
│ │ │ │ +-rw-r--r--   0 root         (0) root         (0)    12303 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/if.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      932 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/if.htp
│ │ │ │ --rw-r--r--   0 root         (0) root         (0)     9138 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/imageurl.html
│ │ │ │ +-rw-r--r--   0 root         (0) root         (0)     8626 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/imageurl.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     2507 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/imageurl.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     8277 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/img.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     1168 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/img.htp
│ │ │ │ --rw-r--r--   0 root         (0) root         (0)    11313 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/inc.html
│ │ │ │ +-rw-r--r--   0 root         (0) root         (0)     8142 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/inc.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     1092 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/inc.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     9881 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/include.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     1894 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/include.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     4874 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/index.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)       78 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/index.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     7733 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/intro.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     3489 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/intro.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)    10774 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/license.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      454 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/license.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     3782 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/macros.def
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     5088 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/macros.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      388 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/macros.htp
│ │ │ │ --rw-r--r--   0 root         (0) root         (0)    15165 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/metatag.html
│ │ │ │ +-rw-r--r--   0 root         (0) root         (0)    15742 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/metatag.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     2439 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/metatag.htp.gz
│ │ │ │ --rw-r--r--   0 root         (0) root         (0)     7558 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/opt.html
│ │ │ │ +-rw-r--r--   0 root         (0) root         (0)     7852 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/opt.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      608 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/opt.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     7809 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/options.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     3100 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/options.htp
│ │ │ │ --rw-r--r--   0 root         (0) root         (0)     7777 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/output.html
│ │ │ │ +-rw-r--r--   0 root         (0) root         (0)     8071 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/output.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      695 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/output.htp
│ │ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/pic/
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      171 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/pic/arrow.png
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      262 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/pic/download.png
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      708 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/pic/htpicon.png
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)    25563 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/pic/logo.png
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      455 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/pic/manbig.png
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      491 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/pic/manual.png
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     1313 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/pic/poweredbyhtp.png
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      679 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/pic/sficon.png
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      492 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/pic/source.png
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      523 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/pphtp.pl
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     7503 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/quote.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      390 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/quote.htp
│ │ │ │ --rw-r--r--   0 root         (0) root         (0)     8234 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/set.html
│ │ │ │ +-rw-r--r--   0 root         (0) root         (0)     9013 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/set.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     1200 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/set.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      500 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/styles.css
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)    27219 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/template.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     2235 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/template.htp.gz
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     1914 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/toc.def
│ │ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/tut/
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      146 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/tut/footer.hti
│ │ │ │ @@ -102,23 +102,23 @@
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      192 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/tut/tut2.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      501 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/tut/tut3.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      191 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/tut/tut3.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      356 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/tut/tut3.htt
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      297 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/tut/tut4.htt
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)    10517 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/tutorial.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     3393 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/tutorial.htp
│ │ │ │ --rw-r--r--   0 root         (0) root         (0)     7559 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/undef.html
│ │ │ │ +-rw-r--r--   0 root         (0) root         (0)     7853 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/undef.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      460 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/undef.htp
│ │ │ │ --rw-r--r--   0 root         (0) root         (0)     8201 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/unset.html
│ │ │ │ +-rw-r--r--   0 root         (0) root         (0)    12188 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/unset.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      658 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/unset.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     7681 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/usage.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     2959 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/usage.htp
│ │ │ │ --rw-r--r--   0 root         (0) root         (0)    12506 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/use.html
│ │ │ │ +-rw-r--r--   0 root         (0) root         (0)    16243 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/use.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     3300 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/use.htp
│ │ │ │ --rw-r--r--   0 root         (0) root         (0)     8001 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/while.html
│ │ │ │ +-rw-r--r--   0 root         (0) root         (0)    13063 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/while.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      938 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/while.htp
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     5288 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/wishlist.html
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)     1311 2020-06-14 23:21:19.000000 ./usr/share/doc/htp/wishlist.htp
│ │ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2020-06-14 23:21:19.000000 ./usr/share/doc-base/
│ │ │ │  -rw-r--r--   0 root         (0) root         (0)      235 2020-06-14 17:36:12.000000 ./usr/share/doc-base/htp.htp
│ │ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2020-06-14 23:21:19.000000 ./usr/share/lintian/
│ │ │ │  drwxr-xr-x   0 root         (0) root         (0)        0 2020-06-14 23:21:19.000000 ./usr/share/lintian/overrides/
│ │ │ ├── ./usr/share/doc/htp/alttext.html
│ │ │ │ @@ -127,14 +127,15 @@
│ │ │ │  <p>
│ │ │ │  When an IMG tag with a matching source is encountered, htp will add an ALT
│ │ │ │  attribute only if one is not already present.  This allows for ALT text to
│ │ │ │  be overridden on specific images and default text on all others.
│ │ │ │  <p>
│ │ │ │  For example:
│ │ │ │    <p><code>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="inc.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">INC</a> <span class="htp-attrib">i</span>=<span class="htp-string">"1"</span> <span class="htp-attrib">j</span>=<span class="htp-string">"-1"</span>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <p>
│ │ │ │  An ALTTEXT tag with a name but no text attribute removes any ALT
│ │ │ │  mapping for this image.  Successing IMG tags with a matching SRC name are not
│ │ │ │  changed.
│ │ │ │  <p>
│ │ │ │  Since this is useful for an image used throughout a set of documents,
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -9,35 +9,36 @@
│ │ │ │ │    [>] _A_L_T_T_E_X_T               comparisons.
│ │ │ │ │        _B_L_O_C_K                 When an IMG tag with a matching source is
│ │ │ │ │        _B_L_O_C_K_D_E_F              encountered, htp will add an ALT attribute only if
│ │ │ │ │        _D_E_F                   one is not already present. This allows for ALT
│ │ │ │ │        _F_I_L_E                  text to be overridden on specific images and
│ │ │ │ │        _I_F                    default text on all others.
│ │ │ │ │        _I_N_C                   For example:
│ │ │ │ │ -      _I_M_G                   An ALTTEXT tag with a name but no text attribute
│ │ │ │ │ -      _I_M_A_G_E_U_R_L              removes any ALT mapping for this image. Successing
│ │ │ │ │ -      _O_P_T                   IMG tags with a matching SRC name are not changed.
│ │ │ │ │ -      _O_U_T_P_U_T                Since this is useful for an image used throughout a
│ │ │ │ │ -      _Q_U_O_T_E                 set of documents, ALTTEXT is most appropriate in an
│ │ │ │ │ -      _S_E_T                   _i_n_c_l_u_d_e_ _f_i_l_e or a _d_e_f_a_u_l_t_ _f_i_l_e.
│ │ │ │ │ -      _U_N_D_E_F                 In addition to ALTTEXT, htp can also automatically
│ │ │ │ │ -      _U_N_S_E_T                 add WIDTH and HEIGHT attributes to _I_M_G tags.
│ │ │ │ │ -      _U_S_E_,_ _$
│ │ │ │ │ +      _I_M_G                       <_[_[_r_e_f_]_]_I_N_C i="1" j="-1">
│ │ │ │ │ +      _I_M_A_G_E_U_R_L              An ALTTEXT tag with a name but no text attribute
│ │ │ │ │ +      _O_P_T                   removes any ALT mapping for this image. Successing
│ │ │ │ │ +      _O_U_T_P_U_T                IMG tags with a matching SRC name are not changed.
│ │ │ │ │ +      _Q_U_O_T_E                 Since this is useful for an image used throughout a
│ │ │ │ │ +      _S_E_T                   set of documents, ALTTEXT is most appropriate in an
│ │ │ │ │ +      _U_N_D_E_F                 _i_n_c_l_u_d_e_ _f_i_l_e or a _d_e_f_a_u_l_t_ _f_i_l_e.
│ │ │ │ │ +      _U_N_S_E_T                 In addition to ALTTEXT, htp can also automatically
│ │ │ │ │ +      _U_S_E_,_ _$                add WIDTH and HEIGHT attributes to _I_M_G tags.
│ │ │ │ │        _W_H_I_L_E
│ │ │ │ │        _<_!_-_-_-
│ │ │ │ │    _H_i_s_t_o_r_y
│ │ │ │ │    _W_i_s_h_ _l_i_s_t
│ │ │ │ │    _B_u_g_s
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │ +
│ │ │ ├── ./usr/share/doc/htp/block.html
│ │ │ │ @@ -114,14 +114,23 @@
│ │ │ │        <a class="noline" href="bugs.html">Bugs</a></td></tr>
│ │ │ │    </table>
│ │ │ │    </div>
│ │ │ │  </td>
│ │ │ │  <td bgcolor="#f0f0d0" rowspan="2" valign="top">
│ │ │ │  <h2>syntax</h2>
│ │ │ │    <p><code>
│ │ │ │ +<span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">file</a> <span class="htp-attrib">execute</span>=<span class="htp-string">"command-line"</span> <span class="ebnf">(</span><span class="htp-attrib">output</span>=<span class="htp-string">"filename"</span> <span class="ebnf">|</span> <span class="htp-attrib">redirect</span><span class="ebnf">)</span> <span class="ebnf">[</span><span class="htp-attrib">noerror</span><span class="ebnf">]</span>&gt;</span><br>
│ │ │ │ +<span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">file</a> <span class="htp-attrib">include</span>=<span class="htp-string">"includefilename"</span> <span class="ebnf">[</span><span class="htp-attrib">parameters</span> <span class="htp-attrib">...</span><span class="ebnf">]</span>&gt;</span><br>
│ │ │ │ +<span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">file</a> <span class="htp-attrib">name</span>&gt;</span><br>
│ │ │ │ +<span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">file</a> <span class="ebnf">[</span> <span class="htp-attrib">name</span>=<span class="htp-string">"filename"</span> <span class="ebnf">]</span> <span class="htp-attrib">size</span><span class="ebnf">[</span> =<span class="htp-value"></span> <span class="ebnf">(</span><span class="htp-attrib">byte</span><span class="ebnf">|</span><span class="htp-attrib">kbyte</span><span class="ebnf">|</span><span class="htp-attrib">mbyte</span><span class="ebnf">|</span><span class="htp-attrib">gbyte</span><span class="ebnf">)</span> <span class="ebnf">]</span> <span class="ebnf">[</span><span class="htp-attrib">precision</span>=<span class="htp-value">n<span class="ebnf">]</span></span>&gt;</span><br>
│ │ │ │ +<span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">file</a> <span class="ebnf">[</span> <span class="htp-attrib">name</span>=<span class="htp-string">"filename"</span> <span class="ebnf">]</span> <span class="htp-attrib">time</span><span class="ebnf">[</span> =<span class="htp-string">"format"</span> <span class="ebnf">]</span>&gt;</span><br>
│ │ │ │ +<span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">file</a> <span class="ebnf">[</span> <span class="htp-attrib">name</span>=<span class="htp-string">"filename"</span> <span class="ebnf">]</span> <span class="htp-attrib">date</span><span class="ebnf">[</span> =<span class="htp-string">"format"</span> <span class="ebnf">]</span>&gt;</span><br>
│ │ │ │ +<span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">file</a> <span class="htp-attrib">search</span>=<span class="htp-string">"searchpath"</span>&gt;</span><br>
│ │ │ │ +<span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">file</a> <span class="htp-attrib">template</span>=<span class="htp-string">"templatefilename"</span>&gt;</span><br>
│ │ │ │ +<br>
│ │ │ │  </code></p>
│ │ │ │  <h2>synopsis</h2>
│ │ │ │  <P>
│ │ │ │  <STRONG>BLOCK and /BLOCK</STRONG> are used to create block macros, which
│ │ │ │  are similar in use to <A HREF="set.html">SET</A> macros, but can be
│ │ │ │  multi-line definitions.
│ │ │ │  </P>
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -1,42 +1,54 @@
│ │ │ │ │  [HTP]
│ │ │ │ │  ************ hhttpp oonn--lliinnee rreeffeerreennccee :: BBLLOOCCKK,, //BBLLOOCCKK ************
│ │ │ │ │  _T_a_b_l_e_ _o_f_ _C_o_n_t_e_n_t_s           ********** ssyynnttaaxx **********
│ │ │ │ │ -  _I_n_t_r_o_d_u_c_t_i_o_n              ********** ssyynnooppssiiss **********
│ │ │ │ │ -  _L_i_c_e_n_s_e                   BBLLOOCCKK aanndd //BBLLOOCCKK are used to create block macros,
│ │ │ │ │ -  _T_u_t_o_r_i_a_l                  which are similar in use to _S_E_T macros, but can be
│ │ │ │ │ -  _U_s_a_g_e                     multi-line definitions.
│ │ │ │ │ -  HTP Tags                  Any text and formatting may be set inside the
│ │ │ │ │ -      _A_L_T_T_E_X_T               block. You can use any htp or user defined metatag
│ │ │ │ │ -  [>] _B_L_O_C_K                 including _F_I_L_E_ _I_N_C_L_U_D_E. The metatags won't be
│ │ │ │ │ -      _B_L_O_C_K_D_E_F              expanded before the block is USEd except if you
│ │ │ │ │ -      _D_E_F                   give the _E_X_P_A_N_D parameter.
│ │ │ │ │ -      _F_I_L_E                  The block macro is dereferenced (expanded) with the
│ │ │ │ │ -      _I_F                    _U_S_E_ _t_a_g_ _o_r_ _t_h_e_ _'_$_'_ _o_p_e_r_a_t_o_r. See the notes on the
│ │ │ │ │ -      _I_N_C                   _U_S_E tag on how to pass parameters to a block macro.
│ │ │ │ │ -      _I_M_G
│ │ │ │ │ -      _I_M_A_G_E_U_R_L
│ │ │ │ │ -      _O_P_T
│ │ │ │ │ -      _O_U_T_P_U_T
│ │ │ │ │ -      _Q_U_O_T_E
│ │ │ │ │ -      _S_E_T
│ │ │ │ │ -      _U_N_D_E_F
│ │ │ │ │ -      _U_N_S_E_T
│ │ │ │ │ -      _U_S_E_,_ _$
│ │ │ │ │ -      _W_H_I_L_E
│ │ │ │ │ -      _<_!_-_-_-
│ │ │ │ │ -  _H_i_s_t_o_r_y
│ │ │ │ │ +  _I_n_t_r_o_d_u_c_t_i_o_n              <_[_[_r_e_f_]_]_f_i_l_e execute="command-line"
│ │ │ │ │ +  _L_i_c_e_n_s_e                   (output="filename" | redirect) [noerror]>
│ │ │ │ │ +  _T_u_t_o_r_i_a_l                  <_[_[_r_e_f_]_]_f_i_l_e include="includefilename" [parameters
│ │ │ │ │ +  _U_s_a_g_e                     ...]>
│ │ │ │ │ +  HTP Tags                  <_[_[_r_e_f_]_]_f_i_l_e name>
│ │ │ │ │ +      _A_L_T_T_E_X_T               <_[_[_r_e_f_]_]_f_i_l_e [ name="filename" ] size[ =
│ │ │ │ │ +  [>] _B_L_O_C_K                 (byte|kbyte|mbyte|gbyte) ] [precision=n]>
│ │ │ │ │ +      _B_L_O_C_K_D_E_F              <_[_[_r_e_f_]_]_f_i_l_e [ name="filename" ] time[ ="format" ]>
│ │ │ │ │ +      _D_E_F                   <_[_[_r_e_f_]_]_f_i_l_e [ name="filename" ] date[ ="format" ]>
│ │ │ │ │ +      _F_I_L_E                  <_[_[_r_e_f_]_]_f_i_l_e search="searchpath">
│ │ │ │ │ +      _I_F                    <_[_[_r_e_f_]_]_f_i_l_e template="templatefilename">
│ │ │ │ │ +      _I_N_C
│ │ │ │ │ +      _I_M_G                   ********** ssyynnooppssiiss **********
│ │ │ │ │ +      _I_M_A_G_E_U_R_L              BBLLOOCCKK aanndd //BBLLOOCCKK are used to create block macros,
│ │ │ │ │ +      _O_P_T                   which are similar in use to _S_E_T macros, but can be
│ │ │ │ │ +      _O_U_T_P_U_T                multi-line definitions.
│ │ │ │ │ +      _Q_U_O_T_E                 Any text and formatting may be set inside the
│ │ │ │ │ +      _S_E_T                   block. You can use any htp or user defined metatag
│ │ │ │ │ +      _U_N_D_E_F                 including _F_I_L_E_ _I_N_C_L_U_D_E. The metatags won't be
│ │ │ │ │ +      _U_N_S_E_T                 expanded before the block is USEd except if you
│ │ │ │ │ +      _U_S_E_,_ _$                give the _E_X_P_A_N_D parameter.
│ │ │ │ │ +      _W_H_I_L_E                 The block macro is dereferenced (expanded) with the
│ │ │ │ │ +      _<_!_-_-_-                 _U_S_E_ _t_a_g_ _o_r_ _t_h_e_ _'_$_'_ _o_p_e_r_a_t_o_r. See the notes on the
│ │ │ │ │ +  _H_i_s_t_o_r_y                   _U_S_E tag on how to pass parameters to a block macro.
│ │ │ │ │    _W_i_s_h_ _l_i_s_t
│ │ │ │ │    _B_u_g_s
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │    _p_a_g_e_ _s_o_u_r_c_e
│ │ │ │ │    _h_t_p_ _p_r_o_j_e_c_t
│ │ │ │ │    _h_t_p_ _h_o_m_e_p_a_g_e
│ │ │ │ │  hosted by
│ │ │ │ │  _S_o_u_r_c_e_f_o_r_g_e
│ │ │ │ │  HTML coding_[_P_o_w_e_r_e_d_ _b_y
│ │ │ │ │  _h_t_p_]
│ │ │ ├── ./usr/share/doc/htp/def.html
│ │ │ │ @@ -133,26 +133,27 @@
│ │ │ │  Some metatags will require an opening and closing tag (comparable to
│ │ │ │  <TITLE> and </TITLE>).  In this case, you should use the <A
│ │ │ │  HREF="blockdef.html">BLOCKDEF</A> macro.  Another slightly faster
│ │ │ │  alternative is to use two metatags, the opening tag and the closing
│ │ │ │  tag with a preceding slash. For example:
│ │ │ │  </P>
│ │ │ │    <p><code>
│ │ │ │ +<span class="htp-tag">&lt;a <span class="htp-attrib">href</span>=<span class="htp-string">"mailto:<span class="htp-macro">$email</span>"</span>&gt;</span>mailto hyperlink<span class="htp-tag">&lt;/a&gt;</span><br>
│ │ │ │ +<span class="htp-tag">&lt;a <span class="htp-attrib">href</span>=<span class="htp-string">"http://<span class="htp-macro">$domain</span>/~<span class="htp-macro">${username}</span>/"</span>&gt;</span>another hyperlink<span class="htp-tag">&lt;/a&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <p> You should really use <a href="blockdef.html">BLOCKDEF</a>, though,
│ │ │ │  as it will check for matching end tag. It is not that slower.  </p>
│ │ │ │  <P>
│ │ │ │  Options can be passed to a metatag, which can then expand as if it were
│ │ │ │  a <A HREF="set.html">SET</A> macro.  Option names are parameterized with
│ │ │ │  the OPTION attribute.  Multiple options can be listed by separating their
│ │ │ │  name with a space (which therefore requires they be surrounded by quotes.)
│ │ │ │  </P>
│ │ │ │    <p><code>
│ │ │ │ -&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="unset.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">unset</a> <span class="htp-attrib">email_addr</span> <span class="htp-attrib">home_url</span> <span class="htp-attrib">login_name</span>&gt;</span><br>
│ │ │ │ -LE TIME>, <span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">FILE</a> <span class="htp-attrib">DATE</span>&gt;</span><span class="htp-tag">&lt;/EM&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<span class="htp-macro">${tagName}</span> <span class="htp-attrib"><span class="htp-macro">${attrName}</span></span>=<span class="htp-value"><span class="htp-macro">${value$ctr}</span></span>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <P>
│ │ │ │  htp will do very specific checking of parameters when a metatag is
│ │ │ │  invoked.  htp assumes that all parameter options to the metatag are
│ │ │ │  optional.  This is why the HEADERIMG definition uses IF to verify the
│ │ │ │  SIZE option is defined before expanding it in the block.  If a
│ │ │ │  parameter is required, simply expand it without first checking.  When
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -10,27 +10,29 @@
│ │ │ │ │        _B_L_O_C_K                 Some metatags will require an opening and closing
│ │ │ │ │        _B_L_O_C_K_D_E_F              tag (comparable to
│ │ │ │ │    [>] _D_E_F                   and
│ │ │ │ │        _F_I_L_E                  ). In this case, you should use the _B_L_O_C_K_D_E_F macro.
│ │ │ │ │        _I_F                    Another slightly faster alternative is to use two
│ │ │ │ │        _I_N_C                   metatags, the opening tag and the closing tag with
│ │ │ │ │        _I_M_G                   a preceding slash. For example:
│ │ │ │ │ -      _I_M_A_G_E_U_R_L              You should really use _B_L_O_C_K_D_E_F, though, as it will
│ │ │ │ │ -      _O_P_T                   check for matching end tag. It is not that slower.
│ │ │ │ │ -      _O_U_T_P_U_T                Options can be passed to a metatag, which can then
│ │ │ │ │ -      _Q_U_O_T_E                 expand as if it were a _S_E_T macro. Option names are
│ │ │ │ │ -      _S_E_T                   parameterized with the OPTION attribute. Multiple
│ │ │ │ │ -      _U_N_D_E_F                 options can be listed by separating their name with
│ │ │ │ │ -      _U_N_S_E_T                 a space (which therefore requires they be
│ │ │ │ │ -      _U_S_E_,_ _$                surrounded by quotes.)
│ │ │ │ │ -      _W_H_I_L_E                     <_[_[_r_e_f_]_]_u_n_s_e_t email_addr home_url login_name>
│ │ │ │ │ -      _<_!_-_-_-                 LE TIME>, <_[_[_r_e_f_]_]_F_I_L_E DATE></EM>
│ │ │ │ │ -  _H_i_s_t_o_r_y                   htp will do very specific checking of parameters
│ │ │ │ │ -  _W_i_s_h_ _l_i_s_t                 when a metatag is invoked. htp assumes that all
│ │ │ │ │ -  _B_u_g_s                      parameter options to the metatag are optional. This
│ │ │ │ │ +      _I_M_A_G_E_U_R_L              <a href="mailto:$email">mailto hyperlink</a>
│ │ │ │ │ +      _O_P_T                   <a href="http://$domain/~${username}/">another
│ │ │ │ │ +      _O_U_T_P_U_T                hyperlink</a>
│ │ │ │ │ +      _Q_U_O_T_E                 You should really use _B_L_O_C_K_D_E_F, though, as it will
│ │ │ │ │ +      _S_E_T                   check for matching end tag. It is not that slower.
│ │ │ │ │ +      _U_N_D_E_F                 Options can be passed to a metatag, which can then
│ │ │ │ │ +      _U_N_S_E_T                 expand as if it were a _S_E_T macro. Option names are
│ │ │ │ │ +      _U_S_E_,_ _$                parameterized with the OPTION attribute. Multiple
│ │ │ │ │ +      _W_H_I_L_E                 options can be listed by separating their name with
│ │ │ │ │ +      _<_!_-_-_-                 a space (which therefore requires they be
│ │ │ │ │ +  _H_i_s_t_o_r_y                   surrounded by quotes.)
│ │ │ │ │ +  _W_i_s_h_ _l_i_s_t                     <${tagName} ${attrName}=${value$ctr}>
│ │ │ │ │ +  _B_u_g_s                      htp will do very specific checking of parameters
│ │ │ │ │ +                            when a metatag is invoked. htp assumes that all
│ │ │ │ │ +                            parameter options to the metatag are optional. This
│ │ │ │ │                              is why the HEADERIMG definition uses IF to verify
│ │ │ │ │                              the SIZE option is defined before expanding it in
│ │ │ │ │                              the block. If a parameter is required, simply
│ │ │ │ │                              expand it without first checking. When htp expands
│ │ │ │ │                              the metatag and the macro is not defined, it will
│ │ │ │ │                              halt processing and complain with an error message
│ │ │ │ │                              and the required macro name. Normally htp will not
│ │ │ ├── ./usr/share/doc/htp/expand.html
│ │ │ │ @@ -101,36 +101,16 @@
│ │ │ │  another macro.  This other macro may no longer have the correct value
│ │ │ │  when the macro is expanded.  Here is some code that demonstrate when
│ │ │ │  the htp tags are expanded: </P>
│ │ │ │    <p><code>
│ │ │ │  </code></p>
│ │ │ │  This produces the following:
│ │ │ │    <p><code>
│ │ │ │ -&nbsp; <span class="htp-tag">&lt;<a href="imageurl.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">imageurl</a> <span class="htp-attrib">url</span>=<span class="htp-string">"http://my.domain.org/"</span> <span class="htp-attrib">path</span>=<span class="htp-string">"/var/www/my.domain/"</span>&gt;</span><br>
│ │ │ │ -&nbsp; <span class="htp-tag">&lt;<a href="imageurl.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">imageurl</a> <span class="htp-attrib">url</span>=<span class="htp-string">"other.domain.org/"</span> <span class="htp-attrib">path</span>=<span class="htp-string">"/var/www/other.domain/"</span>&gt;</span><br>
│ │ │ │ -<br>
│ │ │ │ -&nbsp; For this line: <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">img</a> <span class="htp-attrib">src</span>=<span class="htp-string">"logo.gif"</span>&gt;</span><br>
│ │ │ │ -&nbsp; the local filename "logo.gif" will be used to determine image dimensions<br>
│ │ │ │ -&nbsp; (no URL replacement).<br>
│ │ │ │ -<br>
│ │ │ │ -&nbsp; For this line: <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">img</a> <span class="htp-attrib">src</span>=<span class="htp-string">"http://my.domain.org/logo.gif"</span>&gt;</span><br>
│ │ │ │ -&nbsp; the local filename "/var/www/my.domain/logo.gif" will be used.<br>
│ │ │ │ -<br>
│ │ │ │ -&nbsp; But for this line: <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">img</a> <span class="htp-attrib">src</span>=<span class="htp-string">"http://other.domain.org/logo.gif"</span>&gt;</span><br>
│ │ │ │ -&nbsp; the local file cannot be found (no prefix match), so the image dimensions<br>
│ │ │ │ -&nbsp; will not be added.<br>
│ │ │ │ -<br>
│ │ │ │ -&nbsp; Order is important; last IMAGEURL tag takes precedence:<br>
│ │ │ │ -&nbsp; <span class="htp-tag">&lt;<a href="imageurl.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">imageurl</a> <span class="htp-attrib">url</span>=<span class="htp-string">"/"</span> <span class="htp-attrib">path</span>=<span class="htp-string">"/var/www/htdocs/"</span>&gt;</span><br>
│ │ │ │ -&nbsp; <span class="htp-tag">&lt;<a href="imageurl.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">imageurl</a> <span class="htp-attrib">url</span>=<span class="htp-string">"/test/"</span> <span class="htp-attrib">path</span>=<span class="htp-string">"/var/www/test/"</span>&gt;</span><br>
│ │ │ │ -<br>
│ │ │ │ -&nbsp; <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">img</a> <span class="htp-attrib">src</span>=<span class="htp-string">"/image.gif"</span>&gt;</span>&nbsp;and <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">img</a> <span class="htp-attrib">src</span>=<span class="htp-string">"/test/image.gif"</span>&gt;</span>&nbsp;are mapped to<br>
│ │ │ │ -&nbsp; /var/www/htdocs/image.gif and /var/www/test/image.gif, resp.<br>
│ │ │ │ -&nbsp; If the order of the imageurl lines would be swapped, the second <br>
│ │ │ │ -&nbsp; image would be mapped to /var/www/htdocs/test/image.gif.<br>
│ │ │ │ +<span class="htp-tag">&lt;a <span class="htp-attrib">href</span>=<span class="htp-string">"mailto:<span class="htp-macro">$email</span>"</span>&gt;</span>mailto hyperlink<span class="htp-tag">&lt;/a&gt;</span><br>
│ │ │ │ +<span class="htp-tag">&lt;a <span class="htp-attrib">href</span>=<span class="htp-string">"http://<span class="htp-macro">$domain</span>/~<span class="htp-macro">${username}</span>/"</span>&gt;</span>another hyperlink<span class="htp-tag">&lt;/a&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <P>
│ │ │ │  When block a and block b are defined in lines 2-7 the contents of a
│ │ │ │  are taken literally, however, the contents for b are already expanded
│ │ │ │  so the macro <code>time</code> is evaluated.  So a is expanded when it
│ │ │ │  is used, while the contents of b are already expanded.
│ │ │ │  </P>
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -25,49 +25,17 @@
│ │ │ │ │                              modifier it is expanded immediately. This is useful
│ │ │ │ │                              if you want to store something in a block macro,
│ │ │ │ │                              that depends on the current value of another macro.
│ │ │ │ │                              This other macro may no longer have the correct
│ │ │ │ │                              value when the macro is expanded. Here is some code
│ │ │ │ │                              that demonstrate when the htp tags are expanded:
│ │ │ │ │                              This produces the following:
│ │ │ │ │ -                              <_[_[_r_e_f_]_]_i_m_a_g_e_u_r_l url="http://my.domain.org/
│ │ │ │ │ -                            " path="/var/www/my.domain/">
│ │ │ │ │ -                              <_[_[_r_e_f_]_]_i_m_a_g_e_u_r_l url="other.domain.org/" path="/
│ │ │ │ │ -                            var/www/other.domain/">
│ │ │ │ │ -
│ │ │ │ │ -                              For this line: <_[_[_r_e_f_]_]_i_m_g src="logo.gif">
│ │ │ │ │ -                              the local filename "logo.gif" will be used to
│ │ │ │ │ -                            determine image dimensions
│ │ │ │ │ -                              (no URL replacement).
│ │ │ │ │ -
│ │ │ │ │ -                              For this line: <_[_[_r_e_f_]_]_i_m_g src="http://
│ │ │ │ │ -                            my.domain.org/logo.gif">
│ │ │ │ │ -                              the local filename "/var/www/my.domain/logo.gif"
│ │ │ │ │ -                            will be used.
│ │ │ │ │ -
│ │ │ │ │ -                              But for this line: <_[_[_r_e_f_]_]_i_m_g src="http://
│ │ │ │ │ -                            other.domain.org/logo.gif">
│ │ │ │ │ -                              the local file cannot be found (no prefix match),
│ │ │ │ │ -                            so the image dimensions
│ │ │ │ │ -                              will not be added.
│ │ │ │ │ -
│ │ │ │ │ -                              Order is important; last IMAGEURL tag takes
│ │ │ │ │ -                            precedence:
│ │ │ │ │ -                              <_[_[_r_e_f_]_]_i_m_a_g_e_u_r_l url="/" path="/var/www/htdocs/">
│ │ │ │ │ -                              <_[_[_r_e_f_]_]_i_m_a_g_e_u_r_l url="/test/" path="/var/www/
│ │ │ │ │ -                            test/">
│ │ │ │ │ -
│ │ │ │ │ -                              <_[_[_r_e_f_]_]_i_m_g src="/image.gif"> and <_[_[_r_e_f_]_]_i_m_g
│ │ │ │ │ -                            src="/test/image.gif"> are mapped to
│ │ │ │ │ -                              /var/www/htdocs/image.gif and /var/www/test/
│ │ │ │ │ -                            image.gif, resp.
│ │ │ │ │ -                              If the order of the imageurl lines would be
│ │ │ │ │ -                            swapped, the second
│ │ │ │ │ -                              image would be mapped to /var/www/htdocs/test/
│ │ │ │ │ -                            image.gif.
│ │ │ │ │ +                            <a href="mailto:$email">mailto hyperlink</a>
│ │ │ │ │ +                            <a href="http://$domain/~${username}/">another
│ │ │ │ │ +                            hyperlink</a>
│ │ │ │ │                              When block a and block b are defined in lines 2-
│ │ │ │ │                              7 the contents of a are taken literally, however,
│ │ │ │ │                              the contents for b are already expanded so the
│ │ │ │ │                              macro time is evaluated. So a is expanded when it
│ │ │ │ │                              is used, while the contents of b are already
│ │ │ │ │                              expanded.
│ │ │ │ │                              In line 10 and 12 the _[_[_r_e_f_]_]_u_s_e tag is used with
│ │ │ ├── ./usr/share/doc/htp/file.html
│ │ │ │ @@ -124,31 +124,27 @@
│ │ │ │  The output file's name, the current date and time, and the contents of
│ │ │ │  another file may be included.  Another file's time, date, or size may be
│ │ │ │  added to the output file as well.
│ │ │ │  <P>
│ │ │ │  As with all HTML, these tags do not have to be on their own line, so the
│ │ │ │  following is perfectly acceptable:
│ │ │ │    <p><code>
│ │ │ │ -&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="unset.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">unset</a> <span class="htp-attrib">email_addr</span> <span class="htp-attrib">home_url</span> <span class="htp-attrib">login_name</span>&gt;</span><br>
│ │ │ │ -LE TIME>, <span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">FILE</a> <span class="htp-attrib">DATE</span>&gt;</span><span class="htp-tag">&lt;/EM&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="inc.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">INC</a> <span class="htp-attrib">i</span>=<span class="htp-string">"1"</span> <span class="htp-attrib">j</span>=<span class="htp-string">"-1"</span>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <P>
│ │ │ │  <h3><a name="name">NAME</a>, TIME, SIZE</h3>
│ │ │ │  <P>
│ │ │ │  To include information about another file, such as an archive file or
│ │ │ │  graphic image, specify its name with the NAME attribute followed by the
│ │ │ │  type of information to be displayed:
│ │ │ │    <p><code>
│ │ │ │ -<span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">file</a> <span class="htp-attrib">include</span>=<span class="htp-string">"header.hti"</span>&gt;</span><br>
│ │ │ │ -&nbsp; <span class="htp-tag">&lt;<a href="set.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">set</a> <span class="htp-attrib">sect-ctr</span>=<span class="htp-string">"1"</span>&gt;</span><br>
│ │ │ │ -&nbsp; <span class="htp-tag">&lt;<a href="while.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">while</a> <span class="htp-attrib">sect-<span class="htp-macro">${sect-ctr}</span></span>&gt;</span><br>
│ │ │ │ -&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="use.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">use</a> <span class="htp-attrib">sect-<span class="htp-macro">${sect-ctr}</span></span>&gt;</span><br>
│ │ │ │ -&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="inc.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">inc</a> <span class="htp-attrib">sect-ctr</span>&gt;</span><br>
│ │ │ │ -&nbsp; <span class="htp-tag">&lt;<a href="while.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/while</a>&gt;</span><br>
│ │ │ │ -<span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">file</a> <span class="htp-attrib">include</span>=<span class="htp-string">"footer.hti"</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IF</a> <span class="htp-attrib">name</span>&gt;</span>...<span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/IF</a>&gt;</span><br>
│ │ │ │ +yz><br>
│ │ │ │ +&nbsp; ...<br>
│ │ │ │ +<span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/if</a>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <P>
│ │ │ │  For file size information, the value BYTE, KBYTE, etc. dictates how the
│ │ │ │  information is displayed.  In anything other than byte format, the information
│ │ │ │  is displayed in floating-point notation.  The amount of precision (the number
│ │ │ │  of digits to the right of the decimal point) can be set with the optional
│ │ │ │  PRECISION attribute.  The default precision is zero (0), which means no
│ │ │ │ @@ -177,15 +173,38 @@
│ │ │ │  <P>
│ │ │ │  Additional parameters can be set in the FILE INCLUDE tag, which are
│ │ │ │  interpreted as macros that are "passed" to the included file.  The macros
│ │ │ │  are available only to the include file (and any macros or included files it
│ │ │ │  holds).  After the file is completely included, the macros are no longer
│ │ │ │  available.  So:
│ │ │ │    <p><code>
│ │ │ │ -&nbsp; &nbsp; <span class="htp-tag">&lt;<span class="htp-macro">${tagName}</span> <span class="htp-attrib"><span class="htp-macro">${attrName}</span></span>=<span class="htp-value"><span class="htp-macro">${value$ctr}</span></span>&gt;</span><br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">DEF</a> <span class="htp-attrib">NAME</span>=<span class="htp-string">"HEADERIMG"</span> <span class="htp-attrib">OPTION</span>=<span class="htp-string">"SRC TITLE SIZE"</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IF</a> <span class="htp-attrib">size</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; &nbsp; &nbsp; <span class="htp-tag">&lt;FONT <span class="htp-attrib">SIZE</span>=<span class="htp-value"><span class="htp-macro">${size}</span></span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/IF</a>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IMG</a> <span class="htp-attrib">SRC</span>=<span class="htp-value">pics/<span class="htp-macro">${src}</span></span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="use.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">USE</a> <span class="htp-attrib">title</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IF</a> <span class="htp-attrib">size</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; &nbsp; &nbsp; <span class="htp-tag">&lt;/FONT&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/IF</a>&gt;</span><br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/DEF</a>&gt;</span><br>
│ │ │ │ +<br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;HEADERIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">SIZE</span>=<span class="htp-string">"+2"</span> <span class="htp-attrib">TITLE</span>=<span class="htp-string">"A title"</span>&gt;</span><br>
│ │ │ │ +<br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;HEADERIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">TITLE</span>=<span class="htp-string">"Normal sized title"</span>&gt;</span><br>
│ │ │ │ +<br>
│ │ │ │ +&nbsp; This will fail:<br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;HEADERIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">ALT</span>=<span class="htp-string">"Our logo"</span> <span class="htp-attrib">TITLE</span>=<span class="htp-string">"Another title"</span>&gt;</span><br>
│ │ │ │ +<br>
│ │ │ │ +&nbsp; Instead, use * like this:<br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">DEF</a> <span class="htp-attrib">NAME</span>=<span class="htp-string">"MYIMG"</span> <span class="htp-attrib">OPTION</span>=<span class="htp-string">"SRC *"</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IMG</a> <span class="htp-attrib">SRC</span>=<span class="htp-string">"pics/<span class="htp-macro">${src}</span>"</span> <span class="htp-attrib"><span class="htp-macro">$*</span></span>&gt;</span><br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/DEF</a>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;MYIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">ALT</span>=<span class="htp-string">"Our logo"</span>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <P>
│ │ │ │  Macros named "name" and "email" are set, and available inside the included
│ │ │ │  file.  They are not available, however, past the tag (which is why the
│ │ │ │  second statement will fail.)
│ │ │ │  <P>
│ │ │ │  <h3><a name="template">TEMPLATE</a></h3>
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -6,35 +6,31 @@
│ │ │ │ │    _T_u_t_o_r_i_a_l                  purpose. The output file's name, the current date
│ │ │ │ │    _U_s_a_g_e                     and time, and the contents of another file may be
│ │ │ │ │    HTP Tags                  included. Another file's time, date, or size may be
│ │ │ │ │        _A_L_T_T_E_X_T               added to the output file as well.
│ │ │ │ │        _B_L_O_C_K                 As with all HTML, these tags do not have to be on
│ │ │ │ │        _B_L_O_C_K_D_E_F              their own line, so the following is perfectly
│ │ │ │ │        _D_E_F                   acceptable:
│ │ │ │ │ -  [>] _F_I_L_E                      <_[_[_r_e_f_]_]_u_n_s_e_t email_addr home_url login_name>
│ │ │ │ │ -      _I_F                    LE TIME>, <_[_[_r_e_f_]_]_F_I_L_E DATE></EM>
│ │ │ │ │ -      _I_N_C                   ******** NNAAMMEE,, TTIIMMEE,, SSIIZZEE ********
│ │ │ │ │ -      _I_M_G                   To include information about another file, such as
│ │ │ │ │ -      _I_M_A_G_E_U_R_L              an archive file or graphic image, specify its name
│ │ │ │ │ -      _O_P_T                   with the NAME attribute followed by the type of
│ │ │ │ │ -      _O_U_T_P_U_T                information to be displayed:
│ │ │ │ │ -      _Q_U_O_T_E                 <_[_[_r_e_f_]_]_f_i_l_e include="header.hti">
│ │ │ │ │ -      _S_E_T                     <_[_[_r_e_f_]_]_s_e_t sect-ctr="1">
│ │ │ │ │ -      _U_N_D_E_F                   <_[_[_r_e_f_]_]_w_h_i_l_e sect-${sect-ctr}>
│ │ │ │ │ -      _U_N_S_E_T                     <_[_[_r_e_f_]_]_u_s_e sect-${sect-ctr}>
│ │ │ │ │ -      _U_S_E_,_ _$                    <_[_[_r_e_f_]_]_i_n_c sect-ctr>
│ │ │ │ │ -      _W_H_I_L_E                   <_[_[_r_e_f_]_]_/_w_h_i_l_e>
│ │ │ │ │ -      _<_!_-_-_-                 <_[_[_r_e_f_]_]_f_i_l_e include="footer.hti">
│ │ │ │ │ -  _H_i_s_t_o_r_y                   For file size information, the value BYTE, KBYTE,
│ │ │ │ │ -  _W_i_s_h_ _l_i_s_t                 etc. dictates how the information is displayed. In
│ │ │ │ │ -  _B_u_g_s                      anything other than byte format, the information is
│ │ │ │ │ -                            displayed in floating-point notation. The amount of
│ │ │ │ │ -                            precision (the number of digits to the right of the
│ │ │ │ │ -                            decimal point) can be set with the optional
│ │ │ │ │ -                            PRECISION attribute. The default precision is zero
│ │ │ │ │ +  [>] _F_I_L_E                      <_[_[_r_e_f_]_]_I_N_C i="1" j="-1">
│ │ │ │ │ +      _I_F                    ******** NNAAMMEE,, TTIIMMEE,, SSIIZZEE ********
│ │ │ │ │ +      _I_N_C                   To include information about another file, such as
│ │ │ │ │ +      _I_M_G                   an archive file or graphic image, specify its name
│ │ │ │ │ +      _I_M_A_G_E_U_R_L              with the NAME attribute followed by the type of
│ │ │ │ │ +      _O_P_T                   information to be displayed:
│ │ │ │ │ +      _O_U_T_P_U_T                    <_[_[_r_e_f_]_]_I_F name>...<_[_[_r_e_f_]_]_/_I_F>
│ │ │ │ │ +      _Q_U_O_T_E                 yz>
│ │ │ │ │ +      _S_E_T                     ...
│ │ │ │ │ +      _U_N_D_E_F                 <_[_[_r_e_f_]_]_/_i_f>
│ │ │ │ │ +      _U_N_S_E_T                 For file size information, the value BYTE, KBYTE,
│ │ │ │ │ +      _U_S_E_,_ _$                etc. dictates how the information is displayed. In
│ │ │ │ │ +      _W_H_I_L_E                 anything other than byte format, the information is
│ │ │ │ │ +      _<_!_-_-_-                 displayed in floating-point notation. The amount of
│ │ │ │ │ +  _H_i_s_t_o_r_y                   precision (the number of digits to the right of the
│ │ │ │ │ +  _W_i_s_h_ _l_i_s_t                 decimal point) can be set with the optional
│ │ │ │ │ +  _B_u_g_s                      PRECISION attribute. The default precision is zero
│ │ │ │ │                              (0), which means no fractional portion is
│ │ │ │ │                              displayed.
│ │ │ │ │                              At the request of many people, the TIME and DATE
│ │ │ │ │                              attributes will now accept formatting characters
│ │ │ │ │                              that are passed directly into the ANSI C library
│ │ │ │ │                              function. This allows for the time and date to be
│ │ │ │ │                              displayed in virtually any format. Users not
│ │ │ │ │ @@ -58,15 +54,42 @@
│ │ │ │ │                              Additional parameters can be set in the FILE
│ │ │ │ │                              INCLUDE tag, which are interpreted as macros that
│ │ │ │ │                              are "passed" to the included file. The macros are
│ │ │ │ │                              available only to the include file (and any macros
│ │ │ │ │                              or included files it holds). After the file is
│ │ │ │ │                              completely included, the macros are no longer
│ │ │ │ │                              available. So:
│ │ │ │ │ -                                <${tagName} ${attrName}=${value$ctr}>
│ │ │ │ │ +                              <_[_[_r_e_f_]_]_D_E_F NAME="HEADERIMG" OPTION="SRC TITLE
│ │ │ │ │ +                            SIZE">
│ │ │ │ │ +                                <_[_[_r_e_f_]_]_I_F size>
│ │ │ │ │ +                                    <FONT SIZE=${size}>
│ │ │ │ │ +                                <_[_[_r_e_f_]_]_/_I_F>
│ │ │ │ │ +                                <_[_[_r_e_f_]_]_I_M_G SRC=pics/${src}>
│ │ │ │ │ +                                <_[_[_r_e_f_]_]_U_S_E title>
│ │ │ │ │ +                                <_[_[_r_e_f_]_]_I_F size>
│ │ │ │ │ +                                    </FONT>
│ │ │ │ │ +                                <_[_[_r_e_f_]_]_/_I_F>
│ │ │ │ │ +                              <_[_[_r_e_f_]_]_/_D_E_F>
│ │ │ │ │ +
│ │ │ │ │ +                              <HEADERIMG SRC="logo.gif" SIZE="+2" TITLE="A
│ │ │ │ │ +                            title">
│ │ │ │ │ +
│ │ │ │ │ +                              <HEADERIMG SRC="logo.gif" TITLE="Normal sized
│ │ │ │ │ +                            title">
│ │ │ │ │ +
│ │ │ │ │ +                              This will fail:
│ │ │ │ │ +                              <HEADERIMG SRC="logo.gif" ALT="Our logo"
│ │ │ │ │ +                            TITLE="Another title">
│ │ │ │ │ +
│ │ │ │ │ +                              Instead, use * like this:
│ │ │ │ │ +                              <_[_[_r_e_f_]_]_D_E_F NAME="MYIMG" OPTION="SRC *">
│ │ │ │ │ +                                <_[_[_r_e_f_]_]_I_M_G SRC="pics/${src}" $*>
│ │ │ │ │ +                              <_[_[_r_e_f_]_]_/_D_E_F>
│ │ │ │ │ +                               
│ │ │ │ │ +                              <MYIMG SRC="logo.gif" ALT="Our logo">
│ │ │ │ │                              Macros named "name" and "email" are set, and
│ │ │ │ │                              available inside the included file. They are not
│ │ │ │ │                              available, however, past the tag (which is why the
│ │ │ │ │                              second statement will fail.)
│ │ │ │ │                              ******** TTEEMMPPLLAATTEE ********
│ │ │ │ │                              A template file is nothing more than a default
│ │ │ │ │                              include file, one that is included once the input
│ │ │ ├── ./usr/share/doc/htp/if.html
│ │ │ │ @@ -114,27 +114,55 @@
│ │ │ │        <a class="noline" href="bugs.html">Bugs</a></td></tr>
│ │ │ │    </table>
│ │ │ │    </div>
│ │ │ │  </td>
│ │ │ │  <td bgcolor="#f0f0d0" rowspan="2" valign="top">
│ │ │ │  <h2>syntax</h2>
│ │ │ │    <p><code>
│ │ │ │ +<span class="htp-tag">&lt;<a href="output.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">OUTPUT</a> <span class="htp-attrib">FILE</span>=<span class="htp-string">"outputfilename"</span> <span class="ebnf">[</span><span class="htp-attrib">APPEND</span><span class="ebnf">]</span> <span class="ebnf">[</span><span class="htp-attrib">EXPAND</span><span class="ebnf">]</span>&gt;</span><br>
│ │ │ │ +text block<br>
│ │ │ │ +<span class="htp-tag">&lt;<a href="output.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/OUTPUT</a>&gt;</span><br>
│ │ │ │ +<br>
│ │ │ │  </code></p>
│ │ │ │  <h2>synopsis</h2>
│ │ │ │  <STRONG>IF, NOT, ELSEIF, ELSE, and /IF</STRONG> are the building
│ │ │ │  blocks for conditional processing.  The basic form is shown above.
│ │ │ │  <P> "Conditional" is either a "compare" or "is defined" operation.  A
│ │ │ │  compare operator is a test of the value of a macro against a literal
│ │ │ │  string:
│ │ │ │    <p><code>
│ │ │ │  </code></p>
│ │ │ │  <P>
│ │ │ │  and a defined operator is a test of a macro's existance:
│ │ │ │  <P>
│ │ │ │    <p><code>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">DEF</a> <span class="htp-attrib">NAME</span>=<span class="htp-string">"HEADERIMG"</span> <span class="htp-attrib">OPTION</span>=<span class="htp-string">"SRC TITLE SIZE"</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IF</a> <span class="htp-attrib">size</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; &nbsp; &nbsp; <span class="htp-tag">&lt;FONT <span class="htp-attrib">SIZE</span>=<span class="htp-value"><span class="htp-macro">${size}</span></span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/IF</a>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IMG</a> <span class="htp-attrib">SRC</span>=<span class="htp-value">pics/<span class="htp-macro">${src}</span></span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="use.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">USE</a> <span class="htp-attrib">title</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IF</a> <span class="htp-attrib">size</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; &nbsp; &nbsp; <span class="htp-tag">&lt;/FONT&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/IF</a>&gt;</span><br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/DEF</a>&gt;</span><br>
│ │ │ │ +<br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;HEADERIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">SIZE</span>=<span class="htp-string">"+2"</span> <span class="htp-attrib">TITLE</span>=<span class="htp-string">"A title"</span>&gt;</span><br>
│ │ │ │ +<br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;HEADERIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">TITLE</span>=<span class="htp-string">"Normal sized title"</span>&gt;</span><br>
│ │ │ │ +<br>
│ │ │ │ +&nbsp; This will fail:<br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;HEADERIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">ALT</span>=<span class="htp-string">"Our logo"</span> <span class="htp-attrib">TITLE</span>=<span class="htp-string">"Another title"</span>&gt;</span><br>
│ │ │ │ +<br>
│ │ │ │ +&nbsp; Instead, use * like this:<br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">DEF</a> <span class="htp-attrib">NAME</span>=<span class="htp-string">"MYIMG"</span> <span class="htp-attrib">OPTION</span>=<span class="htp-string">"SRC *"</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IMG</a> <span class="htp-attrib">SRC</span>=<span class="htp-string">"pics/<span class="htp-macro">${src}</span>"</span> <span class="htp-attrib"><span class="htp-macro">$*</span></span>&gt;</span><br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/DEF</a>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;MYIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">ALT</span>=<span class="htp-string">"Our logo"</span>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <P>
│ │ │ │  If the NOT tag is present in the IF markup, the evaluation of the
│ │ │ │  conditional is reversed.  The first IF or ELSEIF condition that
│ │ │ │  evaluates to true is chosen.  If none of the conditions is true the
│ │ │ │  ELSE block is taken if it is present.  A conditional block
│ │ │ │  <EM>must</EM> be closed with the /IF tag.  IF tags can be nested.
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -1,36 +1,69 @@
│ │ │ │ │  [HTP]
│ │ │ │ │  ************ hhttpp oonn--lliinnee rreeffeerreennccee :: IIFF,, EELLSSEEIIFF,, EELLSSEE,, //IIFF ************
│ │ │ │ │  _T_a_b_l_e_ _o_f_ _C_o_n_t_e_n_t_s           ********** ssyynnttaaxx **********
│ │ │ │ │ -  _I_n_t_r_o_d_u_c_t_i_o_n              ********** ssyynnooppssiiss **********
│ │ │ │ │ -  _L_i_c_e_n_s_e                   IIFF,, NNOOTT,, EELLSSEEIIFF,, EELLSSEE,, aanndd //IIFF are the building
│ │ │ │ │ -  _T_u_t_o_r_i_a_l                  blocks for conditional processing. The basic form
│ │ │ │ │ -  _U_s_a_g_e                     is shown above.
│ │ │ │ │ -  HTP Tags                  "Conditional" is either a "compare" or "is defined"
│ │ │ │ │ -      _A_L_T_T_E_X_T               operation. A compare operator is a test of the
│ │ │ │ │ -      _B_L_O_C_K                 value of a macro against a literal string:
│ │ │ │ │ -      _B_L_O_C_K_D_E_F              and a defined operator is a test of a macro's
│ │ │ │ │ -      _D_E_F                   existance:
│ │ │ │ │ -      _F_I_L_E                  If the NOT tag is present in the IF markup, the
│ │ │ │ │ -  [>] _I_F                    evaluation of the conditional is reversed. The
│ │ │ │ │ -      _I_N_C                   first IF or ELSEIF condition that evaluates to true
│ │ │ │ │ -      _I_M_G                   is chosen. If none of the conditions is true the
│ │ │ │ │ -      _I_M_A_G_E_U_R_L              ELSE block is taken if it is present. A conditional
│ │ │ │ │ -      _O_P_T                   block mmuusstt be closed with the /IF tag. IF tags can
│ │ │ │ │ -      _O_U_T_P_U_T                be nested.
│ │ │ │ │ -      _Q_U_O_T_E
│ │ │ │ │ -      _S_E_T
│ │ │ │ │ -      _U_N_D_E_F
│ │ │ │ │ -      _U_N_S_E_T
│ │ │ │ │ -      _U_S_E_,_ _$
│ │ │ │ │ -      _W_H_I_L_E
│ │ │ │ │ -      _<_!_-_-_-
│ │ │ │ │ -  _H_i_s_t_o_r_y
│ │ │ │ │ -  _W_i_s_h_ _l_i_s_t
│ │ │ │ │ +  _I_n_t_r_o_d_u_c_t_i_o_n              <_[_[_r_e_f_]_]_O_U_T_P_U_T FILE="outputfilename" [APPEND]
│ │ │ │ │ +  _L_i_c_e_n_s_e                   [EXPAND]>
│ │ │ │ │ +  _T_u_t_o_r_i_a_l                  text block
│ │ │ │ │ +  _U_s_a_g_e                     <_[_[_r_e_f_]_]_/_O_U_T_P_U_T>
│ │ │ │ │ +  HTP Tags
│ │ │ │ │ +      _A_L_T_T_E_X_T               ********** ssyynnooppssiiss **********
│ │ │ │ │ +      _B_L_O_C_K                 IIFF,, NNOOTT,, EELLSSEEIIFF,, EELLSSEE,, aanndd //IIFF are the building
│ │ │ │ │ +      _B_L_O_C_K_D_E_F              blocks for conditional processing. The basic form
│ │ │ │ │ +      _D_E_F                   is shown above.
│ │ │ │ │ +      _F_I_L_E                  "Conditional" is either a "compare" or "is defined"
│ │ │ │ │ +  [>] _I_F                    operation. A compare operator is a test of the
│ │ │ │ │ +      _I_N_C                   value of a macro against a literal string:
│ │ │ │ │ +      _I_M_G                   and a defined operator is a test of a macro's
│ │ │ │ │ +      _I_M_A_G_E_U_R_L              existance:
│ │ │ │ │ +      _O_P_T                     <_[_[_r_e_f_]_]_D_E_F NAME="HEADERIMG" OPTION="SRC TITLE
│ │ │ │ │ +      _O_U_T_P_U_T                SIZE">
│ │ │ │ │ +      _Q_U_O_T_E                     <_[_[_r_e_f_]_]_I_F size>
│ │ │ │ │ +      _S_E_T                           <FONT SIZE=${size}>
│ │ │ │ │ +      _U_N_D_E_F                     <_[_[_r_e_f_]_]_/_I_F>
│ │ │ │ │ +      _U_N_S_E_T                     <_[_[_r_e_f_]_]_I_M_G SRC=pics/${src}>
│ │ │ │ │ +      _U_S_E_,_ _$                    <_[_[_r_e_f_]_]_U_S_E title>
│ │ │ │ │ +      _W_H_I_L_E                     <_[_[_r_e_f_]_]_I_F size>
│ │ │ │ │ +      _<_!_-_-_-                         </FONT>
│ │ │ │ │ +  _H_i_s_t_o_r_y                       <_[_[_r_e_f_]_]_/_I_F>
│ │ │ │ │ +  _W_i_s_h_ _l_i_s_t                   <_[_[_r_e_f_]_]_/_D_E_F>
│ │ │ │ │    _B_u_g_s
│ │ │ │ │ +                              <HEADERIMG SRC="logo.gif" SIZE="+2" TITLE="A
│ │ │ │ │ +                            title">
│ │ │ │ │ +
│ │ │ │ │ +                              <HEADERIMG SRC="logo.gif" TITLE="Normal sized
│ │ │ │ │ +                            title">
│ │ │ │ │ +
│ │ │ │ │ +                              This will fail:
│ │ │ │ │ +                              <HEADERIMG SRC="logo.gif" ALT="Our logo"
│ │ │ │ │ +                            TITLE="Another title">
│ │ │ │ │ +
│ │ │ │ │ +                              Instead, use * like this:
│ │ │ │ │ +                              <_[_[_r_e_f_]_]_D_E_F NAME="MYIMG" OPTION="SRC *">
│ │ │ │ │ +                                <_[_[_r_e_f_]_]_I_M_G SRC="pics/${src}" $*>
│ │ │ │ │ +                              <_[_[_r_e_f_]_]_/_D_E_F>
│ │ │ │ │ +                               
│ │ │ │ │ +                              <MYIMG SRC="logo.gif" ALT="Our logo">
│ │ │ │ │ +                            If the NOT tag is present in the IF markup, the
│ │ │ │ │ +                            evaluation of the conditional is reversed. The
│ │ │ │ │ +                            first IF or ELSEIF condition that evaluates to true
│ │ │ │ │ +                            is chosen. If none of the conditions is true the
│ │ │ │ │ +                            ELSE block is taken if it is present. A conditional
│ │ │ │ │ +                            block mmuusstt be closed with the /IF tag. IF tags can
│ │ │ │ │ +                            be nested.
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ ├── ./usr/share/doc/htp/imageurl.html
│ │ │ │ @@ -135,16 +135,14 @@
│ │ │ │  checks (case-insensitive) if it is a prefix of the image's SRC
│ │ │ │  attribute. If it matches this prefix is replaced by the given PATH.
│ │ │ │  If no IMAGEURL matches the SRC is considered as relative link and
│ │ │ │  looked up in the current directory.</P>
│ │ │ │  <P>
│ │ │ │  For example:</P>
│ │ │ │    <p><code>
│ │ │ │ -&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="unset.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">unset</a> <span class="htp-attrib">email_addr</span> <span class="htp-attrib">home_url</span> <span class="htp-attrib">login_name</span>&gt;</span><br>
│ │ │ │ -LE TIME>, <span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">FILE</a> <span class="htp-attrib">DATE</span>&gt;</span><span class="htp-tag">&lt;/EM&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <P>
│ │ │ │  If IMAGEURL is specified with a URL but no PATH attribute, it is treated as
│ │ │ │  an undefine, and is removed.</P>
│ │ │ │  <P>
│ │ │ │  Since you usually need the url mapping for a number of images used throughout
│ │ │ │  a set of documents, IMAGEURL is most appropriately put into an
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -16,23 +16,21 @@
│ │ │ │ │        _I_M_G                   defined imageurl it checks (case-insensitive) if it
│ │ │ │ │    [>] _I_M_A_G_E_U_R_L              is a prefix of the image's SRC attribute. If it
│ │ │ │ │        _O_P_T                   matches this prefix is replaced by the given PATH.
│ │ │ │ │        _O_U_T_P_U_T                If no IMAGEURL matches the SRC is considered as
│ │ │ │ │        _Q_U_O_T_E                 relative link and looked up in the current
│ │ │ │ │        _S_E_T                   directory.
│ │ │ │ │        _U_N_D_E_F                 For example:
│ │ │ │ │ -      _U_N_S_E_T                     <_[_[_r_e_f_]_]_u_n_s_e_t email_addr home_url login_name>
│ │ │ │ │ -      _U_S_E_,_ _$                LE TIME>, <_[_[_r_e_f_]_]_F_I_L_E DATE></EM>
│ │ │ │ │ -      _W_H_I_L_E                 If IMAGEURL is specified with a URL but no PATH
│ │ │ │ │ -      _<_!_-_-_-                 attribute, it is treated as an undefine, and is
│ │ │ │ │ -  _H_i_s_t_o_r_y                   removed.
│ │ │ │ │ -  _W_i_s_h_ _l_i_s_t                 Since you usually need the url mapping for a number
│ │ │ │ │ -  _B_u_g_s                      of images used throughout a set of documents,
│ │ │ │ │ -                            IMAGEURL is most appropriately put into an _i_n_c_l_u_d_e
│ │ │ │ │ -                            _f_i_l_e or the _h_t_p_._d_e_f file.
│ │ │ │ │ +      _U_N_S_E_T                 If IMAGEURL is specified with a URL but no PATH
│ │ │ │ │ +      _U_S_E_,_ _$                attribute, it is treated as an undefine, and is
│ │ │ │ │ +      _W_H_I_L_E                 removed.
│ │ │ │ │ +      _<_!_-_-_-                 Since you usually need the url mapping for a number
│ │ │ │ │ +  _H_i_s_t_o_r_y                   of images used throughout a set of documents,
│ │ │ │ │ +  _W_i_s_h_ _l_i_s_t                 IMAGEURL is most appropriately put into an _i_n_c_l_u_d_e
│ │ │ │ │ +  _B_u_g_s                      _f_i_l_e or the _h_t_p_._d_e_f file.
│ │ │ │ │                              In addition to WIDTH and HEIGHT, htp can also
│ │ │ │ │                              (semi-)automatically add an _A_L_T_ _t_e_x_t attribute to
│ │ │ │ │                              _I_M_G tags.
│ │ │ ├── ./usr/share/doc/htp/inc.html
│ │ │ │ @@ -128,36 +128,14 @@
│ │ │ │  macroname must be the name of a defined macro that contains an
│ │ │ │  integer.  If the increment is ommitted it defaults to 1.
│ │ │ │  The effect of this operation is that the macro is redefined
│ │ │ │  to contain the sum of its previous value and its increment.
│ │ │ │  <P>
│ │ │ │  To increment or decrement a variable you can use this form:
│ │ │ │    <p><code>
│ │ │ │ -&nbsp; <span class="htp-tag">&lt;<a href="imageurl.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">imageurl</a> <span class="htp-attrib">url</span>=<span class="htp-string">"http://my.domain.org/"</span> <span class="htp-attrib">path</span>=<span class="htp-string">"/var/www/my.domain/"</span>&gt;</span><br>
│ │ │ │ -&nbsp; <span class="htp-tag">&lt;<a href="imageurl.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">imageurl</a> <span class="htp-attrib">url</span>=<span class="htp-string">"other.domain.org/"</span> <span class="htp-attrib">path</span>=<span class="htp-string">"/var/www/other.domain/"</span>&gt;</span><br>
│ │ │ │ -<br>
│ │ │ │ -&nbsp; For this line: <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">img</a> <span class="htp-attrib">src</span>=<span class="htp-string">"logo.gif"</span>&gt;</span><br>
│ │ │ │ -&nbsp; the local filename "logo.gif" will be used to determine image dimensions<br>
│ │ │ │ -&nbsp; (no URL replacement).<br>
│ │ │ │ -<br>
│ │ │ │ -&nbsp; For this line: <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">img</a> <span class="htp-attrib">src</span>=<span class="htp-string">"http://my.domain.org/logo.gif"</span>&gt;</span><br>
│ │ │ │ -&nbsp; the local filename "/var/www/my.domain/logo.gif" will be used.<br>
│ │ │ │ -<br>
│ │ │ │ -&nbsp; But for this line: <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">img</a> <span class="htp-attrib">src</span>=<span class="htp-string">"http://other.domain.org/logo.gif"</span>&gt;</span><br>
│ │ │ │ -&nbsp; the local file cannot be found (no prefix match), so the image dimensions<br>
│ │ │ │ -&nbsp; will not be added.<br>
│ │ │ │ -<br>
│ │ │ │ -&nbsp; Order is important; last IMAGEURL tag takes precedence:<br>
│ │ │ │ -&nbsp; <span class="htp-tag">&lt;<a href="imageurl.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">imageurl</a> <span class="htp-attrib">url</span>=<span class="htp-string">"/"</span> <span class="htp-attrib">path</span>=<span class="htp-string">"/var/www/htdocs/"</span>&gt;</span><br>
│ │ │ │ -&nbsp; <span class="htp-tag">&lt;<a href="imageurl.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">imageurl</a> <span class="htp-attrib">url</span>=<span class="htp-string">"/test/"</span> <span class="htp-attrib">path</span>=<span class="htp-string">"/var/www/test/"</span>&gt;</span><br>
│ │ │ │ -<br>
│ │ │ │ -&nbsp; <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">img</a> <span class="htp-attrib">src</span>=<span class="htp-string">"/image.gif"</span>&gt;</span>&nbsp;and <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">img</a> <span class="htp-attrib">src</span>=<span class="htp-string">"/test/image.gif"</span>&gt;</span>&nbsp;are mapped to<br>
│ │ │ │ -&nbsp; /var/www/htdocs/image.gif and /var/www/test/image.gif, resp.<br>
│ │ │ │ -&nbsp; If the order of the imageurl lines would be swapped, the second <br>
│ │ │ │ -&nbsp; image would be mapped to /var/www/htdocs/test/image.gif.<br>
│ │ │ │  </code></p>
│ │ │ │  <p>
│ │ │ │  Note that INC doesn't check if the strings really denote integers.  It
│ │ │ │  may give weired results when used on arbitrary strings.  The integer
│ │ │ │  values are limited to the range -2^31..2^31.
│ │ │ │  <P>
│ │ │ │  Note further that htp wasn't designed to do extensive calculations.
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -11,61 +11,26 @@
│ │ │ │ │        _B_L_O_C_K_D_E_F              be the name of a defined macro that contains an
│ │ │ │ │        _D_E_F                   integer. If the increment is ommitted it defaults
│ │ │ │ │        _F_I_L_E                  to 1. The effect of this operation is that the
│ │ │ │ │        _I_F                    macro is redefined to contain the sum of its
│ │ │ │ │    [>] _I_N_C                   previous value and its increment.
│ │ │ │ │        _I_M_G                   To increment or decrement a variable you can use
│ │ │ │ │        _I_M_A_G_E_U_R_L              this form:
│ │ │ │ │ -      _O_P_T                     <_[_[_r_e_f_]_]_i_m_a_g_e_u_r_l url="http://my.domain.org/
│ │ │ │ │ -      _O_U_T_P_U_T                " path="/var/www/my.domain/">
│ │ │ │ │ -      _Q_U_O_T_E                   <_[_[_r_e_f_]_]_i_m_a_g_e_u_r_l url="other.domain.org/" path="/
│ │ │ │ │ -      _S_E_T                   var/www/other.domain/">
│ │ │ │ │ -      _U_N_D_E_F
│ │ │ │ │ -      _U_N_S_E_T                   For this line: <_[_[_r_e_f_]_]_i_m_g src="logo.gif">
│ │ │ │ │ -      _U_S_E_,_ _$                  the local filename "logo.gif" will be used to
│ │ │ │ │ -      _W_H_I_L_E                 determine image dimensions
│ │ │ │ │ -      _<_!_-_-_-                   (no URL replacement).
│ │ │ │ │ +      _O_P_T                   Note that INC doesn't check if the strings really
│ │ │ │ │ +      _O_U_T_P_U_T                denote integers. It may give weired results when
│ │ │ │ │ +      _Q_U_O_T_E                 used on arbitrary strings. The integer values are
│ │ │ │ │ +      _S_E_T                   limited to the range -2^31..2^31.
│ │ │ │ │ +      _U_N_D_E_F                 Note further that htp wasn't designed to do
│ │ │ │ │ +      _U_N_S_E_T                 extensive calculations. The INC tag is useful in
│ │ │ │ │ +      _U_S_E_,_ _$                conjunction with WHILE to iterate over the defined
│ │ │ │ │ +      _W_H_I_L_E                 blocks.
│ │ │ │ │ +      _<_!_-_-_-
│ │ │ │ │    _H_i_s_t_o_r_y
│ │ │ │ │ -  _W_i_s_h_ _l_i_s_t                   For this line: <_[_[_r_e_f_]_]_i_m_g src="http://
│ │ │ │ │ -  _B_u_g_s                      my.domain.org/logo.gif">
│ │ │ │ │ -                              the local filename "/var/www/my.domain/logo.gif"
│ │ │ │ │ -                            will be used.
│ │ │ │ │ -
│ │ │ │ │ -                              But for this line: <_[_[_r_e_f_]_]_i_m_g src="http://
│ │ │ │ │ -                            other.domain.org/logo.gif">
│ │ │ │ │ -                              the local file cannot be found (no prefix match),
│ │ │ │ │ -                            so the image dimensions
│ │ │ │ │ -                              will not be added.
│ │ │ │ │ -
│ │ │ │ │ -                              Order is important; last IMAGEURL tag takes
│ │ │ │ │ -                            precedence:
│ │ │ │ │ -                              <_[_[_r_e_f_]_]_i_m_a_g_e_u_r_l url="/" path="/var/www/htdocs/">
│ │ │ │ │ -                              <_[_[_r_e_f_]_]_i_m_a_g_e_u_r_l url="/test/" path="/var/www/
│ │ │ │ │ -                            test/">
│ │ │ │ │ -
│ │ │ │ │ -                              <_[_[_r_e_f_]_]_i_m_g src="/image.gif"> and <_[_[_r_e_f_]_]_i_m_g
│ │ │ │ │ -                            src="/test/image.gif"> are mapped to
│ │ │ │ │ -                              /var/www/htdocs/image.gif and /var/www/test/
│ │ │ │ │ -                            image.gif, resp.
│ │ │ │ │ -                              If the order of the imageurl lines would be
│ │ │ │ │ -                            swapped, the second
│ │ │ │ │ -                              image would be mapped to /var/www/htdocs/test/
│ │ │ │ │ -                            image.gif.
│ │ │ │ │ -                            Note that INC doesn't check if the strings really
│ │ │ │ │ -                            denote integers. It may give weired results when
│ │ │ │ │ -                            used on arbitrary strings. The integer values are
│ │ │ │ │ -                            limited to the range -2^31..2^31.
│ │ │ │ │ -                            Note further that htp wasn't designed to do
│ │ │ │ │ -                            extensive calculations. The INC tag is useful in
│ │ │ │ │ -                            conjunction with WHILE to iterate over the defined
│ │ │ │ │ -                            blocks.
│ │ │ │ │ -
│ │ │ │ │ -
│ │ │ │ │ -
│ │ │ │ │ -
│ │ │ │ │ +  _W_i_s_h_ _l_i_s_t
│ │ │ │ │ +  _B_u_g_s
│ │ │ ├── ./usr/share/doc/htp/metatag.html
│ │ │ │ @@ -88,14 +88,17 @@
│ │ │ │  <P> Metatags are defined with the <a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10"><code>def</code></a> and <a href="blockdef.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10"><code>blockdef</code></a> tags and
│ │ │ │  undefined with the <a href="undef.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10"><code>undef</code></a> tag.  </P>
│ │ │ │  <P>
│ │ │ │  As an example we show how to define a tag that builds a
│ │ │ │  fancy horizontal rule out of several images.
│ │ │ │  </P>
│ │ │ │    <p><code>
│ │ │ │ +<font size="-2">&nbsp;1. </font>&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="set.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">SET</a> <span class="htp-attrib">emailaddr</span>=<span class="htp-string">"jnelson@crl.com"</span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;2. </font>if" SIZE=KBYTE> kilobytes<br>
│ │ │ │ +<font size="-2">&nbsp;3. </font>&nbsp; &nbsp; Last modified <span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">FILE</a> <span class="htp-attrib">NAME</span>=<span class="htp-string">"image.gif"</span> <span class="htp-attrib">TIME</span>&gt;</span>, <span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">FILE</a> <span class="htp-attrib">NAME</span>=<span class="htp-string">"image.gif"</span> <span class="htp-attrib">DATE</span>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <P> In line 1 of the above example a new tag named imghr is defined.
│ │ │ │  The html code which implements this rule is following in lines 2-8.
│ │ │ │  between the <a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10"><code>def</code> and
│ │ │ │  <code>/def</code></a> tags.  You don't have to understand this
│ │ │ │  html code, but you should understand that this is just pure html to
│ │ │ │  draw the fancy rule. Every time you write <code>&lt;imghr&gt;</code>
│ │ │ │ @@ -105,55 +108,40 @@
│ │ │ │  file</a>.  </p>
│ │ │ │  <P> Often you want to define tags that have an opening and a closing
│ │ │ │  variant.  For this purpose you should use the <a href="blockdef.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10"><code>blockdef</code></a> tag.  When htp
│ │ │ │  encounters a blockdef tag it will automatically search for the
│ │ │ │  matching closing tag and put everything between these tags in a block
│ │ │ │  macro named <code>block</code>.  Here is an example for this.  </P>
│ │ │ │    <p><code>
│ │ │ │ +<font size="-2">&nbsp;1. </font><span class="htp-tag">&lt;a <span class="htp-attrib">href</span>=<span class="htp-string">"mailto:<span class="htp-macro">$email</span>"</span>&gt;</span>mailto hyperlink<span class="htp-tag">&lt;/a&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;2. </font><span class="htp-tag">&lt;a <span class="htp-attrib">href</span>=<span class="htp-string">"http://<span class="htp-macro">$domain</span>/~<span class="htp-macro">${username}</span>/"</span>&gt;</span>another hyperlink<span class="htp-tag">&lt;/a&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <h2>Using parameters</h2>
│ │ │ │  <p> More sophisticated tags accept parameters.  The
│ │ │ │  <code>option</code> parameter lets multiple metatag parameters be
│ │ │ │  named and expanded inside the <code>def</code> or
│ │ │ │  <code>blockdef</code> block: </p>
│ │ │ │    <p><code>
│ │ │ │ -<font size="-2">&nbsp;1. </font>&nbsp; <span class="htp-tag">&lt;<a href="imageurl.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">imageurl</a> <span class="htp-attrib">url</span>=<span class="htp-string">"http://my.domain.org/"</span> <span class="htp-attrib">path</span>=<span class="htp-string">"/var/www/my.domain/"</span>&gt;</span><br>
│ │ │ │ -<font size="-2">&nbsp;2. </font>&nbsp; <span class="htp-tag">&lt;<a href="imageurl.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">imageurl</a> <span class="htp-attrib">url</span>=<span class="htp-string">"other.domain.org/"</span> <span class="htp-attrib">path</span>=<span class="htp-string">"/var/www/other.domain/"</span>&gt;</span><br>
│ │ │ │ -<font size="-2">&nbsp;3. </font><br>
│ │ │ │ -<font size="-2">&nbsp;4. </font>&nbsp; For this line: <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">img</a> <span class="htp-attrib">src</span>=<span class="htp-string">"logo.gif"</span>&gt;</span><br>
│ │ │ │ -<font size="-2">&nbsp;5. </font>&nbsp; the local filename "logo.gif" will be used to determine image dimensions<br>
│ │ │ │ -<font size="-2">&nbsp;6. </font>&nbsp; (no URL replacement).<br>
│ │ │ │ -<font size="-2">&nbsp;7. </font><br>
│ │ │ │ -<font size="-2">&nbsp;8. </font>&nbsp; For this line: <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">img</a> <span class="htp-attrib">src</span>=<span class="htp-string">"http://my.domain.org/logo.gif"</span>&gt;</span><br>
│ │ │ │ -<font size="-2">&nbsp;9. </font>&nbsp; the local filename "/var/www/my.domain/logo.gif" will be used.<br>
│ │ │ │ -<font size="-2">10. </font><br>
│ │ │ │ -<font size="-2">11. </font>&nbsp; But for this line: <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">img</a> <span class="htp-attrib">src</span>=<span class="htp-string">"http://other.domain.org/logo.gif"</span>&gt;</span><br>
│ │ │ │ -<font size="-2">12. </font>&nbsp; the local file cannot be found (no prefix match), so the image dimensions<br>
│ │ │ │ -<font size="-2">13. </font>&nbsp; will not be added.<br>
│ │ │ │ -<font size="-2">14. </font><br>
│ │ │ │ -<font size="-2">15. </font>&nbsp; Order is important; last IMAGEURL tag takes precedence:<br>
│ │ │ │ -<font size="-2">16. </font>&nbsp; <span class="htp-tag">&lt;<a href="imageurl.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">imageurl</a> <span class="htp-attrib">url</span>=<span class="htp-string">"/"</span> <span class="htp-attrib">path</span>=<span class="htp-string">"/var/www/htdocs/"</span>&gt;</span><br>
│ │ │ │ -<font size="-2">17. </font>&nbsp; <span class="htp-tag">&lt;<a href="imageurl.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">imageurl</a> <span class="htp-attrib">url</span>=<span class="htp-string">"/test/"</span> <span class="htp-attrib">path</span>=<span class="htp-string">"/var/www/test/"</span>&gt;</span><br>
│ │ │ │ -<font size="-2">18. </font><br>
│ │ │ │ -<font size="-2">19. </font>&nbsp; <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">img</a> <span class="htp-attrib">src</span>=<span class="htp-string">"/image.gif"</span>&gt;</span>&nbsp;and <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">img</a> <span class="htp-attrib">src</span>=<span class="htp-string">"/test/image.gif"</span>&gt;</span>&nbsp;are mapped to<br>
│ │ │ │ -<font size="-2">20. </font>&nbsp; /var/www/htdocs/image.gif and /var/www/test/image.gif, resp.<br>
│ │ │ │ -<font size="-2">21. </font>&nbsp; If the order of the imageurl lines would be swapped, the second <br>
│ │ │ │ -<font size="-2">22. </font>&nbsp; image would be mapped to /var/www/htdocs/test/image.gif.<br>
│ │ │ │ +<font size="-2">&nbsp;1. </font>&nbsp; &nbsp; <span class="htp-tag">&lt;<span class="htp-macro">${tagName}</span> <span class="htp-attrib"><span class="htp-macro">${attrName}</span></span>=<span class="htp-value"><span class="htp-macro">${value$ctr}</span></span>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <h2>Saving blocks for later</h2>
│ │ │ │  <p>When you are using templates, the html should only be written by
│ │ │ │  the template file.  The normal htp files should just define macros
│ │ │ │  that are used later in the template.  So you may want to write block
│ │ │ │  tags that just save the block in a macro for later use.  Although this
│ │ │ │  is possible with htp it is quite tricky, so here we present the way to
│ │ │ │  do this:</p>
│ │ │ │    <p><code>
│ │ │ │ -<font size="-2">&nbsp;1. </font><span class="htp-tag">&lt;a <span class="htp-attrib">href</span>=<span class="htp-string">"mailto:<span class="htp-macro">$email</span>"</span>&gt;</span>mailto hyperlink<span class="htp-tag">&lt;/a&gt;</span><br>
│ │ │ │ -<font size="-2">&nbsp;2. </font><span class="htp-tag">&lt;a <span class="htp-attrib">href</span>=<span class="htp-string">"http://<span class="htp-macro">$domain</span>/~<span class="htp-macro">${username}</span>/"</span>&gt;</span>another hyperlink<span class="htp-tag">&lt;/a&gt;</span><br>
│ │ │ │ -<font size="-2">&nbsp;3. </font>IME>, <span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">FILE</a> <span class="htp-attrib">NAME</span>=<span class="htp-string">"image.gif"</span> <span class="htp-attrib">DATE</span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;1. </font>&nbsp; <span class="htp-tag">&lt;<a href="set.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">set</a> <span class="htp-attrib">sect-ctr</span>=<span class="htp-string">"0"</span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;2. </font>&nbsp; <span class="htp-tag">&lt;<a href="blockdef.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">blockdef</a> <span class="htp-attrib">name</span>=<span class="htp-string">"section"</span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;3. </font>&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="inc.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">inc</a> <span class="htp-attrib">sect-ctr</span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;4. </font>&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="block.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">block</a> <span class="htp-attrib">name</span>=<span class="htp-string">"sect-<span class="htp-macro">${sect-ctr}</span>"</span> <span class="htp-attrib">expand</span> <span class="htp-attrib">global</span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;5. </font>&nbsp; &nbsp; &nbsp; <span class="htp-tag">&lt;<a href="use.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">use</a> <span class="htp-attrib">block</span> <span class="htp-attrib">noexpand</span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;6. </font>&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="block.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/block</a>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;7. </font>&nbsp; <span class="htp-tag">&lt;<a href="blockdef.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/blockdef</a>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <p> This defines a block macro named section.  This macro uses a
│ │ │ │  counter <code>sect-ctr</code> that enumerates the sections.  It is
│ │ │ │  increased for every section (line 3) and then the block macro name is
│ │ │ │  build from this counter.  So the first section is stored in block
│ │ │ │  sect-1, the second in sect-2 and so on.  The <a href="expand.html#global" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10"><code>global</code></a> flag
│ │ │ │  in line 4 tells htp that these macros should be defined globally
│ │ │ │ @@ -172,14 +160,21 @@
│ │ │ │  contents of block to be expanded twice.  If you omit it, it would be
│ │ │ │  expanded when defining the sect-1 macro and when using it later in the
│ │ │ │  template.  Generally it is a good idea to use noexpand whenever you
│ │ │ │  use expand in a block around it.</p>
│ │ │ │  <p>To close this example we show how to expand the
│ │ │ │  <code>sect-${sect-ctr}</code> blocks in the template:</p>
│ │ │ │    <p><code>
│ │ │ │ +<font size="-2">&nbsp;1. </font><span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">file</a> <span class="htp-attrib">include</span>=<span class="htp-string">"header.hti"</span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;2. </font>&nbsp; <span class="htp-tag">&lt;<a href="set.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">set</a> <span class="htp-attrib">sect-ctr</span>=<span class="htp-string">"1"</span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;3. </font>&nbsp; <span class="htp-tag">&lt;<a href="while.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">while</a> <span class="htp-attrib">sect-<span class="htp-macro">${sect-ctr}</span></span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;4. </font>&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="use.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">use</a> <span class="htp-attrib">sect-<span class="htp-macro">${sect-ctr}</span></span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;5. </font>&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="inc.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">inc</a> <span class="htp-attrib">sect-ctr</span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;6. </font>&nbsp; <span class="htp-tag">&lt;<a href="while.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/while</a>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;7. </font><span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">file</a> <span class="htp-attrib">include</span>=<span class="htp-string">"footer.hti"</span>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <p>
│ │ │ │  The <a href="while.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">while</a> tag in line 3 checks whether
│ │ │ │  the macro sect-${sect-ctr} is defined.  If it is defined the body is
│ │ │ │  evaluated, which expands the macro and increases sect-ctr.  Afterwards
│ │ │ │  the while condition is checked again to check for sect-2 macro.  This
│ │ │ │  repeats until sect-${sect-ctr} is not defined.
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -9,15 +9,19 @@
│ │ │ │ │        _T_e_m_p_l_a_t_e_s             functionality.
│ │ │ │ │        _F_i_l_e_s                 Metatags are defined with the _[_[_r_e_f_]_]_d_e_f and _[
│ │ │ │ │    [>] _M_e_t_a_t_a_g_s              _[_r_e_f_]_]_b_l_o_c_k_d_e_f tags and undefined with the _[
│ │ │ │ │    _U_s_a_g_e                     _[_r_e_f_]_]_u_n_d_e_f tag.
│ │ │ │ │    _H_T_P_ _T_a_g_s                  As an example we show how to define a tag that
│ │ │ │ │    _H_i_s_t_o_r_y                   builds a fancy horizontal rule out of several
│ │ │ │ │    _W_i_s_h_ _l_i_s_t                 images.
│ │ │ │ │ -  _B_u_g_s                      In line 1 of the above example a new tag named
│ │ │ │ │ +  _B_u_g_s                       1.     <_[_[_r_e_f_]_]_S_E_T emailaddr="jnelson@crl.com">
│ │ │ │ │ +                             2. if" SIZE=KBYTE> kilobytes
│ │ │ │ │ +                             3.     Last modified <_[_[_r_e_f_]_]_F_I_L_E NAME="image.gif"
│ │ │ │ │ +                            TIME>, <_[_[_r_e_f_]_]_F_I_L_E NAME="image.gif" DATE>
│ │ │ │ │ +                            In line 1 of the above example a new tag named
│ │ │ │ │                              imghr is defined. The html code which implements
│ │ │ │ │                              this rule is following in lines 2-8. between the _[
│ │ │ │ │                              _[_r_e_f_]_]_d_e_f_ _a_n_d_ _/_d_e_f tags. You don't have to
│ │ │ │ │                              understand this html code, but you should
│ │ │ │ │                              understand that this is just pure html to draw the
│ │ │ │ │                              fancy rule. Every time you write <imghr> as in line
│ │ │ │ │                              12 htp will replace this tag with the corresponding
│ │ │ │ │ @@ -27,67 +31,39 @@
│ │ │ │ │                              Often you want to define tags that have an opening
│ │ │ │ │                              and a closing variant. For this purpose you should
│ │ │ │ │                              use the _[_[_r_e_f_]_]_b_l_o_c_k_d_e_f tag. When htp encounters a
│ │ │ │ │                              blockdef tag it will automatically search for the
│ │ │ │ │                              matching closing tag and put everything between
│ │ │ │ │                              these tags in a block macro named block. Here is an
│ │ │ │ │                              example for this.
│ │ │ │ │ +                             1. <a href="mailto:$email">mailto hyperlink</a>
│ │ │ │ │ +                             2. <a href="http://$domain/~${username}/">another
│ │ │ │ │ +                            hyperlink</a>
│ │ │ │ │                              ********** UUssiinngg ppaarraammeetteerrss **********
│ │ │ │ │                              More sophisticated tags accept parameters. The
│ │ │ │ │                              option parameter lets multiple metatag parameters
│ │ │ │ │                              be named and expanded inside the def or blockdef
│ │ │ │ │                              block:
│ │ │ │ │ -                             1.   <_[_[_r_e_f_]_]_i_m_a_g_e_u_r_l url="http://my.domain.org/
│ │ │ │ │ -                            " path="/var/www/my.domain/">
│ │ │ │ │ -                             2.   <_[_[_r_e_f_]_]_i_m_a_g_e_u_r_l url="other.domain.org/
│ │ │ │ │ -                            " path="/var/www/other.domain/">
│ │ │ │ │ -                             3.
│ │ │ │ │ -                             4.   For this line: <_[_[_r_e_f_]_]_i_m_g src="logo.gif">
│ │ │ │ │ -                             5.   the local filename "logo.gif" will be used to
│ │ │ │ │ -                            determine image dimensions
│ │ │ │ │ -                             6.   (no URL replacement).
│ │ │ │ │ -                             7.
│ │ │ │ │ -                             8.   For this line: <_[_[_r_e_f_]_]_i_m_g src="http://
│ │ │ │ │ -                            my.domain.org/logo.gif">
│ │ │ │ │ -                             9.   the local filename "/var/www/my.domain/
│ │ │ │ │ -                            logo.gif" will be used.
│ │ │ │ │ -                            10.
│ │ │ │ │ -                            11.   But for this line: <_[_[_r_e_f_]_]_i_m_g src="http://
│ │ │ │ │ -                            other.domain.org/logo.gif">
│ │ │ │ │ -                            12.   the local file cannot be found (no prefix
│ │ │ │ │ -                            match), so the image dimensions
│ │ │ │ │ -                            13.   will not be added.
│ │ │ │ │ -                            14.
│ │ │ │ │ -                            15.   Order is important; last IMAGEURL tag takes
│ │ │ │ │ -                            precedence:
│ │ │ │ │ -                            16.   <_[_[_r_e_f_]_]_i_m_a_g_e_u_r_l url="/" path="/var/www/
│ │ │ │ │ -                            htdocs/">
│ │ │ │ │ -                            17.   <_[_[_r_e_f_]_]_i_m_a_g_e_u_r_l url="/test/" path="/var/www/
│ │ │ │ │ -                            test/">
│ │ │ │ │ -                            18.
│ │ │ │ │ -                            19.   <_[_[_r_e_f_]_]_i_m_g src="/image.gif"> and <_[_[_r_e_f_]_]_i_m_g
│ │ │ │ │ -                            src="/test/image.gif"> are mapped to
│ │ │ │ │ -                            20.   /var/www/htdocs/image.gif and /var/www/test/
│ │ │ │ │ -                            image.gif, resp.
│ │ │ │ │ -                            21.   If the order of the imageurl lines would be
│ │ │ │ │ -                            swapped, the second
│ │ │ │ │ -                            22.   image would be mapped to /var/www/htdocs/
│ │ │ │ │ -                            test/image.gif.
│ │ │ │ │ +                             1.     <${tagName} ${attrName}=${value$ctr}>
│ │ │ │ │                              ********** SSaavviinngg bblloocckkss ffoorr llaatteerr **********
│ │ │ │ │                              When you are using templates, the html should only
│ │ │ │ │                              be written by the template file. The normal htp
│ │ │ │ │                              files should just define macros that are used later
│ │ │ │ │                              in the template. So you may want to write block
│ │ │ │ │                              tags that just save the block in a macro for later
│ │ │ │ │                              use. Although this is possible with htp it is quite
│ │ │ │ │                              tricky, so here we present the way to do this:
│ │ │ │ │ -                             1. <a href="mailto:$email">mailto hyperlink</a>
│ │ │ │ │ -                             2. <a href="http://$domain/~${username}/">another
│ │ │ │ │ -                            hyperlink</a>
│ │ │ │ │ -                             3. IME>, <_[_[_r_e_f_]_]_F_I_L_E NAME="image.gif" DATE>
│ │ │ │ │ +                             1.   <_[_[_r_e_f_]_]_s_e_t sect-ctr="0">
│ │ │ │ │ +                             2.   <_[_[_r_e_f_]_]_b_l_o_c_k_d_e_f name="section">
│ │ │ │ │ +                             3.     <_[_[_r_e_f_]_]_i_n_c sect-ctr>
│ │ │ │ │ +                             4.     <_[_[_r_e_f_]_]_b_l_o_c_k name="sect-${sect-ctr}"
│ │ │ │ │ +                            expand global>
│ │ │ │ │ +                             5.       <_[_[_r_e_f_]_]_u_s_e block noexpand>
│ │ │ │ │ +                             6.     <_[_[_r_e_f_]_]_/_b_l_o_c_k>
│ │ │ │ │ +                             7.   <_[_[_r_e_f_]_]_/_b_l_o_c_k_d_e_f>
│ │ │ │ │                              This defines a block macro named section. This
│ │ │ │ │                              macro uses a counter sect-ctr that enumerates the
│ │ │ │ │                              sections. It is increased for every section (line
│ │ │ │ │                              3) and then the block macro name is build from this
│ │ │ │ │                              counter. So the first section is stored in block
│ │ │ │ │                              sect-1, the second in sect-2 and so on. The _[
│ │ │ │ │                              _[_r_e_f_]_]_g_l_o_b_a_l flag in line 4 tells htp that these
│ │ │ │ │ @@ -110,14 +86,21 @@
│ │ │ │ │                              block to be expanded twice. If you omit it, it
│ │ │ │ │                              would be expanded when defining the sect-1 macro
│ │ │ │ │                              and when using it later in the template. Generally
│ │ │ │ │                              it is a good idea to use noexpand whenever you use
│ │ │ │ │                              expand in a block around it.
│ │ │ │ │                              To close this example we show how to expand the
│ │ │ │ │                              sect-${sect-ctr} blocks in the template:
│ │ │ │ │ +                             1. <_[_[_r_e_f_]_]_f_i_l_e include="header.hti">
│ │ │ │ │ +                             2.   <_[_[_r_e_f_]_]_s_e_t sect-ctr="1">
│ │ │ │ │ +                             3.   <_[_[_r_e_f_]_]_w_h_i_l_e sect-${sect-ctr}>
│ │ │ │ │ +                             4.     <_[_[_r_e_f_]_]_u_s_e sect-${sect-ctr}>
│ │ │ │ │ +                             5.     <_[_[_r_e_f_]_]_i_n_c sect-ctr>
│ │ │ │ │ +                             6.   <_[_[_r_e_f_]_]_/_w_h_i_l_e>
│ │ │ │ │ +                             7. <_[_[_r_e_f_]_]_f_i_l_e include="footer.hti">
│ │ │ │ │                              The _[_[_r_e_f_]_]_w_h_i_l_e tag in line 3 checks whether the
│ │ │ │ │                              macro sect-${sect-ctr} is defined. If it is defined
│ │ │ │ │                              the body is evaluated, which expands the macro and
│ │ │ │ │                              increases sect-ctr. Afterwards the while condition
│ │ │ │ │                              is checked again to check for sect-2 macro. This
│ │ │ │ │                              repeats until sect-${sect-ctr} is not defined.
│ │ │ │ │                              ********** CCoonncclluussiioonnss **********
│ │ │ ├── ./usr/share/doc/htp/opt.html
│ │ │ │ @@ -114,14 +114,15 @@
│ │ │ │        <a class="noline" href="bugs.html">Bugs</a></td></tr>
│ │ │ │    </table>
│ │ │ │    </div>
│ │ │ │  </td>
│ │ │ │  <td bgcolor="#f0f0d0" rowspan="2" valign="top">
│ │ │ │  <h2>syntax</h2>
│ │ │ │    <p><code>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="inc.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">INC</a> <span class="htp-attrib">i</span>=<span class="htp-string">"1"</span> <span class="htp-attrib">j</span>=<span class="htp-string">"-1"</span>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <h2>synopsis</h2>
│ │ │ │  <STRONG>OPT</STRONG> is an htp tag that can be used to specify processing
│ │ │ │  options inside the actual document being processed.  The options are
│ │ │ │  used exactly as they would be on the command-line, although they are not
│ │ │ │  preceded by a &lsquo;-&rsquo; character.
│ │ │ │  <P>
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -1,19 +1,19 @@
│ │ │ │ │  [HTP]
│ │ │ │ │  ************ hhttpp oonn--lliinnee rreeffeerreennccee :: OOPPTT ************
│ │ │ │ │  _T_a_b_l_e_ _o_f_ _C_o_n_t_e_n_t_s           ********** ssyynnttaaxx **********
│ │ │ │ │ -  _I_n_t_r_o_d_u_c_t_i_o_n              ********** ssyynnooppssiiss **********
│ │ │ │ │ -  _L_i_c_e_n_s_e                   OOPPTT is an htp tag that can be used to specify
│ │ │ │ │ -  _T_u_t_o_r_i_a_l                  processing options inside the actual document being
│ │ │ │ │ -  _U_s_a_g_e                     processed. The options are used exactly as they
│ │ │ │ │ -  HTP Tags                  would be on the command-line, although they are not
│ │ │ │ │ -      _A_L_T_T_E_X_T               preceded by a ‘-’ character.
│ │ │ │ │ -      _B_L_O_C_K                 Click here for _m_o_r_e_ _i_n_f_o_r_m_a_t_i_o_n_ _o_n_ _u_s_i_n_g
│ │ │ │ │ -      _B_L_O_C_K_D_E_F              _c_u_s_t_o_m_i_z_a_t_i_o_n_ _o_p_t_i_o_n_s_ _w_i_t_h_ _h_t_p.
│ │ │ │ │ -      _D_E_F
│ │ │ │ │ +  _I_n_t_r_o_d_u_c_t_i_o_n                  <_[_[_r_e_f_]_]_I_N_C i="1" j="-1">
│ │ │ │ │ +  _L_i_c_e_n_s_e                   ********** ssyynnooppssiiss **********
│ │ │ │ │ +  _T_u_t_o_r_i_a_l                  OOPPTT is an htp tag that can be used to specify
│ │ │ │ │ +  _U_s_a_g_e                     processing options inside the actual document being
│ │ │ │ │ +  HTP Tags                  processed. The options are used exactly as they
│ │ │ │ │ +      _A_L_T_T_E_X_T               would be on the command-line, although they are not
│ │ │ │ │ +      _B_L_O_C_K                 preceded by a ‘-’ character.
│ │ │ │ │ +      _B_L_O_C_K_D_E_F              Click here for _m_o_r_e_ _i_n_f_o_r_m_a_t_i_o_n_ _o_n_ _u_s_i_n_g
│ │ │ │ │ +      _D_E_F                   _c_u_s_t_o_m_i_z_a_t_i_o_n_ _o_p_t_i_o_n_s_ _w_i_t_h_ _h_t_p.
│ │ │ │ │        _F_I_L_E
│ │ │ │ │        _I_F
│ │ │ │ │        _I_N_C
│ │ │ │ │        _I_M_G
│ │ │ │ │        _I_M_A_G_E_U_R_L
│ │ │ │ │    [>] _O_P_T
│ │ │ │ │        _O_U_T_P_U_T
│ │ │ │ │ @@ -25,14 +25,15 @@
│ │ │ │ │        _W_H_I_L_E
│ │ │ │ │        _<_!_-_-_-
│ │ │ │ │    _H_i_s_t_o_r_y
│ │ │ │ │    _W_i_s_h_ _l_i_s_t
│ │ │ │ │    _B_u_g_s
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │ +
│ │ │ │ │    _p_a_g_e_ _s_o_u_r_c_e
│ │ │ │ │    _h_t_p_ _p_r_o_j_e_c_t
│ │ │ │ │    _h_t_p_ _h_o_m_e_p_a_g_e
│ │ │ │ │  hosted by
│ │ │ │ │  _S_o_u_r_c_e_f_o_r_g_e
│ │ │ │ │  HTML coding_[_P_o_w_e_r_e_d_ _b_y
│ │ │ │ │  _h_t_p_]
│ │ │ ├── ./usr/share/doc/htp/output.html
│ │ │ │ @@ -114,14 +114,15 @@
│ │ │ │        <a class="noline" href="bugs.html">Bugs</a></td></tr>
│ │ │ │    </table>
│ │ │ │    </div>
│ │ │ │  </td>
│ │ │ │  <td bgcolor="#f0f0d0" rowspan="2" valign="top">
│ │ │ │  <h2>syntax</h2>
│ │ │ │    <p><code>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="inc.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">INC</a> <span class="htp-attrib">i</span>=<span class="htp-string">"1"</span> <span class="htp-attrib">j</span>=<span class="htp-string">"-1"</span>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <h2>synopsis</h2>
│ │ │ │  <P> The <STRONG>OUTPUT</STRONG> tag can be used to create auxillary
│ │ │ │  files besides the main HTML file.  The text between this tag and the
│ │ │ │  corresponding &lt;/OUTPUT&gt; tag is written to output file. </P>
│ │ │ │  <P> Normally the outputfile is cleared before writing to it, but you
│ │ │ │  can use the APPEND attribute to extend an existing file.  The text
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -1,23 +1,23 @@
│ │ │ │ │  [HTP]
│ │ │ │ │  ************ hhttpp oonn--lliinnee rreeffeerreennccee :: OOUUTTPPUUTT ************
│ │ │ │ │  _T_a_b_l_e_ _o_f_ _C_o_n_t_e_n_t_s           ********** ssyynnttaaxx **********
│ │ │ │ │ -  _I_n_t_r_o_d_u_c_t_i_o_n              ********** ssyynnooppssiiss **********
│ │ │ │ │ -  _L_i_c_e_n_s_e                   The OOUUTTPPUUTT tag can be used to create auxillary
│ │ │ │ │ -  _T_u_t_o_r_i_a_l                  files besides the main HTML file. The text between
│ │ │ │ │ -  _U_s_a_g_e                     this tag and the corresponding </OUTPUT> tag is
│ │ │ │ │ -  HTP Tags                  written to output file.
│ │ │ │ │ -      _A_L_T_T_E_X_T               Normally the outputfile is cleared before writing
│ │ │ │ │ -      _B_L_O_C_K                 to it, but you can use the APPEND attribute to
│ │ │ │ │ -      _B_L_O_C_K_D_E_F              extend an existing file. The text written to the
│ │ │ │ │ -      _D_E_F                   file is normally not expanded, i.e. all tags inside
│ │ │ │ │ -      _F_I_L_E                  this block are not executed but written unmodified
│ │ │ │ │ -      _I_F                    to the file. However, you can use the _E_X_P_A_N_D
│ │ │ │ │ -      _I_N_C                   attribute to override this behaviour.
│ │ │ │ │ -      _I_M_G
│ │ │ │ │ +  _I_n_t_r_o_d_u_c_t_i_o_n                  <_[_[_r_e_f_]_]_I_N_C i="1" j="-1">
│ │ │ │ │ +  _L_i_c_e_n_s_e                   ********** ssyynnooppssiiss **********
│ │ │ │ │ +  _T_u_t_o_r_i_a_l                  The OOUUTTPPUUTT tag can be used to create auxillary
│ │ │ │ │ +  _U_s_a_g_e                     files besides the main HTML file. The text between
│ │ │ │ │ +  HTP Tags                  this tag and the corresponding </OUTPUT> tag is
│ │ │ │ │ +      _A_L_T_T_E_X_T               written to output file.
│ │ │ │ │ +      _B_L_O_C_K                 Normally the outputfile is cleared before writing
│ │ │ │ │ +      _B_L_O_C_K_D_E_F              to it, but you can use the APPEND attribute to
│ │ │ │ │ +      _D_E_F                   extend an existing file. The text written to the
│ │ │ │ │ +      _F_I_L_E                  file is normally not expanded, i.e. all tags inside
│ │ │ │ │ +      _I_F                    this block are not executed but written unmodified
│ │ │ │ │ +      _I_N_C                   to the file. However, you can use the _E_X_P_A_N_D
│ │ │ │ │ +      _I_M_G                   attribute to override this behaviour.
│ │ │ │ │        _I_M_A_G_E_U_R_L
│ │ │ │ │        _O_P_T
│ │ │ │ │    [>] _O_U_T_P_U_T
│ │ │ │ │        _Q_U_O_T_E
│ │ │ │ │        _S_E_T
│ │ │ │ │        _U_N_D_E_F
│ │ │ │ │        _U_N_S_E_T
│ │ │ │ │ @@ -29,14 +29,15 @@
│ │ │ │ │    _B_u_g_s
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │ +
│ │ │ │ │    _p_a_g_e_ _s_o_u_r_c_e
│ │ │ │ │    _h_t_p_ _p_r_o_j_e_c_t
│ │ │ │ │    _h_t_p_ _h_o_m_e_p_a_g_e
│ │ │ │ │  hosted by
│ │ │ │ │  _S_o_u_r_c_e_f_o_r_g_e
│ │ │ │ │  HTML coding_[_P_o_w_e_r_e_d_ _b_y
│ │ │ │ │  _h_t_p_]
│ │ │ ├── ./usr/share/doc/htp/set.html
│ │ │ │ @@ -114,19 +114,24 @@
│ │ │ │        <a class="noline" href="bugs.html">Bugs</a></td></tr>
│ │ │ │    </table>
│ │ │ │    </div>
│ │ │ │  </td>
│ │ │ │  <td bgcolor="#f0f0d0" rowspan="2" valign="top">
│ │ │ │  <h2>syntax</h2>
│ │ │ │    <p><code>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="inc.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">INC</a> <span class="htp-attrib">i</span>=<span class="htp-string">"1"</span> <span class="htp-attrib">j</span>=<span class="htp-string">"-1"</span>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <h2>synopsis</h2>
│ │ │ │  <STRONG>SET</STRONG> creates a macro definition that can later be expanded
│ │ │ │  anywhere in the HTML document.  To create a macro:
│ │ │ │    <p><code>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IF</a> <span class="htp-attrib">name</span>&gt;</span>...<span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/IF</a>&gt;</span><br>
│ │ │ │ +yz><br>
│ │ │ │ +&nbsp; ...<br>
│ │ │ │ +<span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/if</a>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <P>
│ │ │ │  The macro "emailaddr" can then be expanded later.  The <A HREF="use.html">
│ │ │ │  USE</A> tag is used to expand the macro outside a tag (i.e., into the regular
│ │ │ │  text).  If the macro needs to be expanded inside a markup tag, use the
│ │ │ │  <A HREF="use.html">'$'</A> operator.
│ │ │ │  <P>
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -1,36 +1,41 @@
│ │ │ │ │  [HTP]
│ │ │ │ │  ************ hhttpp oonn--lliinnee rreeffeerreennccee :: SSEETT ************
│ │ │ │ │  _T_a_b_l_e_ _o_f_ _C_o_n_t_e_n_t_s           ********** ssyynnttaaxx **********
│ │ │ │ │ -  _I_n_t_r_o_d_u_c_t_i_o_n              ********** ssyynnooppssiiss **********
│ │ │ │ │ -  _L_i_c_e_n_s_e                   SSEETT creates a macro definition that can later be
│ │ │ │ │ -  _T_u_t_o_r_i_a_l                  expanded anywhere in the HTML document. To create a
│ │ │ │ │ -  _U_s_a_g_e                     macro:
│ │ │ │ │ -  HTP Tags                  The macro "emailaddr" can then be expanded later.
│ │ │ │ │ -      _A_L_T_T_E_X_T               The _U_S_E tag is used to expand the macro outside a
│ │ │ │ │ -      _B_L_O_C_K                 tag (i.e., into the regular text). If the macro
│ │ │ │ │ -      _B_L_O_C_K_D_E_F              needs to be expanded inside a markup tag, use the
│ │ │ │ │ -      _D_E_F                   _'_$_' operator.
│ │ │ │ │ -      _F_I_L_E                  Multiple macros can be declared in a single markup
│ │ │ │ │ -      _I_F                    tag, as the second syntax line shows.
│ │ │ │ │ -      _I_N_C                   SET should only be used for a single line's worth
│ │ │ │ │ -      _I_M_G                   of text. Multi-line macros can be defined with the
│ │ │ │ │ -      _I_M_A_G_E_U_R_L              _B_L_O_C_K tag. The _B_L_O_C_K tag is also useful if the
│ │ │ │ │ -      _O_P_T                   macro contains a quotation character and you don't
│ │ │ │ │ -      _O_U_T_P_U_T                want to fool around with special escape characters.
│ │ │ │ │ -      _Q_U_O_T_E                 Macros can be redefined by using another SET
│ │ │ │ │ -  [>] _S_E_T                   command with the same macro name. The prior
│ │ │ │ │ -      _U_N_D_E_F                 definition will be destroyed, however. Also, the
│ │ │ │ │ -      _U_N_S_E_T                 macro can be removed (destroyed) with the _U_N_S_E_T
│ │ │ │ │ -      _U_S_E_,_ _$                tag.
│ │ │ │ │ -      _W_H_I_L_E
│ │ │ │ │ -      _<_!_-_-_-
│ │ │ │ │ -  _H_i_s_t_o_r_y
│ │ │ │ │ -  _W_i_s_h_ _l_i_s_t
│ │ │ │ │ -  _B_u_g_s
│ │ │ │ │ +  _I_n_t_r_o_d_u_c_t_i_o_n                  <_[_[_r_e_f_]_]_I_N_C i="1" j="-1">
│ │ │ │ │ +  _L_i_c_e_n_s_e                   ********** ssyynnooppssiiss **********
│ │ │ │ │ +  _T_u_t_o_r_i_a_l                  SSEETT creates a macro definition that can later be
│ │ │ │ │ +  _U_s_a_g_e                     expanded anywhere in the HTML document. To create a
│ │ │ │ │ +  HTP Tags                  macro:
│ │ │ │ │ +      _A_L_T_T_E_X_T                   <_[_[_r_e_f_]_]_I_F name>...<_[_[_r_e_f_]_]_/_I_F>
│ │ │ │ │ +      _B_L_O_C_K                 yz>
│ │ │ │ │ +      _B_L_O_C_K_D_E_F                ...
│ │ │ │ │ +      _D_E_F                   <_[_[_r_e_f_]_]_/_i_f>
│ │ │ │ │ +      _F_I_L_E                  The macro "emailaddr" can then be expanded later.
│ │ │ │ │ +      _I_F                    The _U_S_E tag is used to expand the macro outside a
│ │ │ │ │ +      _I_N_C                   tag (i.e., into the regular text). If the macro
│ │ │ │ │ +      _I_M_G                   needs to be expanded inside a markup tag, use the
│ │ │ │ │ +      _I_M_A_G_E_U_R_L              _'_$_' operator.
│ │ │ │ │ +      _O_P_T                   Multiple macros can be declared in a single markup
│ │ │ │ │ +      _O_U_T_P_U_T                tag, as the second syntax line shows.
│ │ │ │ │ +      _Q_U_O_T_E                 SET should only be used for a single line's worth
│ │ │ │ │ +  [>] _S_E_T                   of text. Multi-line macros can be defined with the
│ │ │ │ │ +      _U_N_D_E_F                 _B_L_O_C_K tag. The _B_L_O_C_K tag is also useful if the
│ │ │ │ │ +      _U_N_S_E_T                 macro contains a quotation character and you don't
│ │ │ │ │ +      _U_S_E_,_ _$                want to fool around with special escape characters.
│ │ │ │ │ +      _W_H_I_L_E                 Macros can be redefined by using another SET
│ │ │ │ │ +      _<_!_-_-_-                 command with the same macro name. The prior
│ │ │ │ │ +  _H_i_s_t_o_r_y                   definition will be destroyed, however. Also, the
│ │ │ │ │ +  _W_i_s_h_ _l_i_s_t                 macro can be removed (destroyed) with the _U_N_S_E_T
│ │ │ │ │ +  _B_u_g_s                      tag.
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ ├── ./usr/share/doc/htp/tut/jh.html
│ │ │ │ @@ -16,10 +16,10 @@
│ │ │ │  <tr><td><b>Phone:</b></td><td>+49 761 203-8243</td></tr>
│ │ │ │  <tr><td><b>Fax:</b></td><td>+49 761 203-8242</td></tr>
│ │ │ │  </table>
│ │ │ │     </td></tr>
│ │ │ │    </table>
│ │ │ │    <hr>
│ │ │ │    Copyright by <a href="mailto:webmaster@domain.com">Joe Doe</a>.<br>
│ │ │ │ -  last updated Sun Mar 09, 2025
│ │ │ │ +  last updated Sat Apr 11, 2026
│ │ │ │   </body>
│ │ │ │  </html>
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -1,8 +1,8 @@
│ │ │ │ │                 ************ JJoocchheenn HHooeenniicckkee ************
│ │ │ │ │  Navigation bar [Photo]
│ │ │ │ │  _M_a_i_n           RRoooomm::  Bld.52 00-020
│ │ │ │ │  _E_x_a_m_p_l_e        PPhhoonnee:: +49 761 203-8243
│ │ │ │ │                 FFaaxx::   +49 761 203-8242
│ │ │ │ │  ===============================================================================
│ │ │ │ │  Copyright by _J_o_e_ _D_o_e.
│ │ │ │ │ -last updated Sun Mar 09, 2025
│ │ │ │ │ +last updated Sat Apr 11, 2026
│ │ │ ├── ./usr/share/doc/htp/tut/tut1.html
│ │ │ │ @@ -5,9 +5,9 @@
│ │ │ │  <meta name="Generator" content="htp 1.19">
│ │ │ │  </head>
│ │ │ │  <body>
│ │ │ │  This page was produced by htp.
│ │ │ │  <hr>
│ │ │ │  Copyright by Joe Doe,
│ │ │ │  <a href="mailto:webmaster@domain.com">webmaster@domain.com</a>,
│ │ │ │ -last updated Sun Mar 09, 2025
│ │ │ │ +last updated Sat Apr 11, 2026
│ │ │ │  </body>
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -1,3 +1,3 @@
│ │ │ │ │  This page was produced by htp.
│ │ │ │ │  ===============================================================================
│ │ │ │ │ -Copyright by Joe Doe, _w_e_b_m_a_s_t_e_r_@_d_o_m_a_i_n_._c_o_m, last updated Sun Mar 09, 2025
│ │ │ │ │ +Copyright by Joe Doe, _w_e_b_m_a_s_t_e_r_@_d_o_m_a_i_n_._c_o_m, last updated Sat Apr 11, 2026
│ │ │ ├── ./usr/share/doc/htp/tut/tut2.html
│ │ │ │ @@ -13,10 +13,10 @@
│ │ │ │  <p>
│ │ │ │  As you can see the file contains almost only the contents.
│ │ │ │  </p>
│ │ │ │     </td></tr>
│ │ │ │    </table>
│ │ │ │    <hr>
│ │ │ │    Copyright by <a href="mailto:webmaster@domain.com">Joe Doe</a>.<br>
│ │ │ │ -  last updated Sun Mar 09, 2025
│ │ │ │ +  last updated Sat Apr 11, 2026
│ │ │ │   </body>
│ │ │ │  </html>
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -1,6 +1,6 @@
│ │ │ │ │  Navigation bar ********** HHeerree iiss tthhee ccoonntteenntt **********
│ │ │ │ │  _M_a_i_n           As you can see the file contains almost only the contents.
│ │ │ │ │  _E_x_a_m_p_l_e
│ │ │ │ │  ===============================================================================
│ │ │ │ │  Copyright by _J_o_e_ _D_o_e.
│ │ │ │ │ -last updated Sun Mar 09, 2025
│ │ │ │ │ +last updated Sat Apr 11, 2026
│ │ │ ├── ./usr/share/doc/htp/tut/tut3.html
│ │ │ │ @@ -13,10 +13,10 @@
│ │ │ │   <p>
│ │ │ │   As you can see the file contains almost only the contents.
│ │ │ │   </p>
│ │ │ │     </td></tr>
│ │ │ │    </table>
│ │ │ │    <hr>
│ │ │ │    Copyright by <a href="webmaster@domain.com">Joe Doe</a>.<br>
│ │ │ │ -  last updated Sun Mar 09, 2025
│ │ │ │ +  last updated Sat Apr 11, 2026
│ │ │ │   </body>
│ │ │ │  </html>
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -1,6 +1,6 @@
│ │ │ │ │  Navigation bar ********** HHeerree aarree tthhee ccoonntteennttss **********
│ │ │ │ │  _M_a_i_n           As you can see the file contains almost only the contents.
│ │ │ │ │  _E_x_a_m_p_l_e
│ │ │ │ │  ===============================================================================
│ │ │ │ │  Copyright by _J_o_e_ _D_o_e.
│ │ │ │ │ -last updated Sun Mar 09, 2025
│ │ │ │ │ +last updated Sat Apr 11, 2026
│ │ │ ├── ./usr/share/doc/htp/undef.html
│ │ │ │ @@ -114,14 +114,15 @@
│ │ │ │        <a class="noline" href="bugs.html">Bugs</a></td></tr>
│ │ │ │    </table>
│ │ │ │    </div>
│ │ │ │  </td>
│ │ │ │  <td bgcolor="#f0f0d0" rowspan="2" valign="top">
│ │ │ │  <h2>syntax</h2>
│ │ │ │    <p><code>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="inc.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">INC</a> <span class="htp-attrib">i</span>=<span class="htp-string">"1"</span> <span class="htp-attrib">j</span>=<span class="htp-string">"-1"</span>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <h2>synopsis</h2>
│ │ │ │  <P><STRONG>UNDEF</STRONG> removes a metatag definition.  Metatags
│ │ │ │  created by <A HREF="def.html">DEF</A> and <A
│ │ │ │  HREF="blockdef.html">BLOCKDEF</A> can be removed with the UNDEF
│ │ │ │  command.  Once removed, the metatag will no longer be recognized by
│ │ │ │  htp until it is reassigned.  </P>
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -1,18 +1,18 @@
│ │ │ │ │  [HTP]
│ │ │ │ │  ************ hhttpp oonn--lliinnee rreeffeerreennccee :: UUNNDDEEFF ************
│ │ │ │ │  _T_a_b_l_e_ _o_f_ _C_o_n_t_e_n_t_s           ********** ssyynnttaaxx **********
│ │ │ │ │ -  _I_n_t_r_o_d_u_c_t_i_o_n              ********** ssyynnooppssiiss **********
│ │ │ │ │ -  _L_i_c_e_n_s_e                   UUNNDDEEFF removes a metatag definition. Metatags
│ │ │ │ │ -  _T_u_t_o_r_i_a_l                  created by _D_E_F and _B_L_O_C_K_D_E_F can be removed with the
│ │ │ │ │ -  _U_s_a_g_e                     UNDEF command. Once removed, the metatag will no
│ │ │ │ │ -  HTP Tags                  longer be recognized by htp until it is reassigned.
│ │ │ │ │ -      _A_L_T_T_E_X_T               Multiple metatags can be removed by placing each
│ │ │ │ │ -      _B_L_O_C_K                 name as an attribute.
│ │ │ │ │ -      _B_L_O_C_K_D_E_F
│ │ │ │ │ +  _I_n_t_r_o_d_u_c_t_i_o_n                  <_[_[_r_e_f_]_]_I_N_C i="1" j="-1">
│ │ │ │ │ +  _L_i_c_e_n_s_e                   ********** ssyynnooppssiiss **********
│ │ │ │ │ +  _T_u_t_o_r_i_a_l                  UUNNDDEEFF removes a metatag definition. Metatags
│ │ │ │ │ +  _U_s_a_g_e                     created by _D_E_F and _B_L_O_C_K_D_E_F can be removed with the
│ │ │ │ │ +  HTP Tags                  UNDEF command. Once removed, the metatag will no
│ │ │ │ │ +      _A_L_T_T_E_X_T               longer be recognized by htp until it is reassigned.
│ │ │ │ │ +      _B_L_O_C_K                 Multiple metatags can be removed by placing each
│ │ │ │ │ +      _B_L_O_C_K_D_E_F              name as an attribute.
│ │ │ │ │        _D_E_F
│ │ │ │ │        _F_I_L_E
│ │ │ │ │        _I_F
│ │ │ │ │        _I_N_C
│ │ │ │ │        _I_M_G
│ │ │ │ │        _I_M_A_G_E_U_R_L
│ │ │ │ │        _O_P_T
│ │ │ │ │ @@ -24,14 +24,15 @@
│ │ │ │ │        _U_S_E_,_ _$
│ │ │ │ │        _W_H_I_L_E
│ │ │ │ │        _<_!_-_-_-
│ │ │ │ │    _H_i_s_t_o_r_y
│ │ │ │ │    _W_i_s_h_ _l_i_s_t
│ │ │ │ │    _B_u_g_s
│ │ │ │ │  
│ │ │ │ │ +
│ │ │ │ │    _p_a_g_e_ _s_o_u_r_c_e
│ │ │ │ │    _h_t_p_ _p_r_o_j_e_c_t
│ │ │ │ │    _h_t_p_ _h_o_m_e_p_a_g_e
│ │ │ │ │  hosted by
│ │ │ │ │  _S_o_u_r_c_e_f_o_r_g_e
│ │ │ │ │  HTML coding_[_P_o_w_e_r_e_d_ _b_y
│ │ │ │ │  _h_t_p_]
│ │ │ ├── ./usr/share/doc/htp/unset.html
│ │ │ │ @@ -114,30 +114,57 @@
│ │ │ │        <a class="noline" href="bugs.html">Bugs</a></td></tr>
│ │ │ │    </table>
│ │ │ │    </div>
│ │ │ │  </td>
│ │ │ │  <td bgcolor="#f0f0d0" rowspan="2" valign="top">
│ │ │ │  <h2>syntax</h2>
│ │ │ │    <p><code>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="set.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">SET</a> <span class="htp-attrib">emailaddr</span>=<span class="htp-string">"jnelson@crl.com"</span>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <h2>synopsis</h2>
│ │ │ │  <STRONG>UNSET</STRONG> removes (or deletes) a macro and it's definition.
│ │ │ │  The macro is subsequently not available for use in the pre-processed files.
│ │ │ │  (Note that simply redefining the macro with another <A HREF="set.html">SET</A> or
│ │ │ │  <A HREF="block.html">BLOCK</A> definition with the same name is acceptable.  The
│ │ │ │  old macro definition will be removed automatically.)
│ │ │ │  <P>
│ │ │ │  For example:
│ │ │ │    <p><code>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IF</a> <span class="htp-attrib">name</span>&gt;</span>...<span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/IF</a>&gt;</span><br>
│ │ │ │ +yz><br>
│ │ │ │ +&nbsp; ...<br>
│ │ │ │ +<span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/if</a>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <P>
│ │ │ │  More than one macro may be removed in the same tag:
│ │ │ │    <p><code>
│ │ │ │ -&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="unset.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">unset</a> <span class="htp-attrib">email_addr</span> <span class="htp-attrib">home_url</span> <span class="htp-attrib">login_name</span>&gt;</span><br>
│ │ │ │ -LE TIME>, <span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">FILE</a> <span class="htp-attrib">DATE</span>&gt;</span><span class="htp-tag">&lt;/EM&gt;</span><br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">DEF</a> <span class="htp-attrib">NAME</span>=<span class="htp-string">"HEADERIMG"</span> <span class="htp-attrib">OPTION</span>=<span class="htp-string">"SRC TITLE SIZE"</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IF</a> <span class="htp-attrib">size</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; &nbsp; &nbsp; <span class="htp-tag">&lt;FONT <span class="htp-attrib">SIZE</span>=<span class="htp-value"><span class="htp-macro">${size}</span></span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/IF</a>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IMG</a> <span class="htp-attrib">SRC</span>=<span class="htp-value">pics/<span class="htp-macro">${src}</span></span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="use.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">USE</a> <span class="htp-attrib">title</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IF</a> <span class="htp-attrib">size</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; &nbsp; &nbsp; <span class="htp-tag">&lt;/FONT&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/IF</a>&gt;</span><br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/DEF</a>&gt;</span><br>
│ │ │ │ +<br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;HEADERIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">SIZE</span>=<span class="htp-string">"+2"</span> <span class="htp-attrib">TITLE</span>=<span class="htp-string">"A title"</span>&gt;</span><br>
│ │ │ │ +<br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;HEADERIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">TITLE</span>=<span class="htp-string">"Normal sized title"</span>&gt;</span><br>
│ │ │ │ +<br>
│ │ │ │ +&nbsp; This will fail:<br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;HEADERIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">ALT</span>=<span class="htp-string">"Our logo"</span> <span class="htp-attrib">TITLE</span>=<span class="htp-string">"Another title"</span>&gt;</span><br>
│ │ │ │ +<br>
│ │ │ │ +&nbsp; Instead, use * like this:<br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">DEF</a> <span class="htp-attrib">NAME</span>=<span class="htp-string">"MYIMG"</span> <span class="htp-attrib">OPTION</span>=<span class="htp-string">"SRC *"</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IMG</a> <span class="htp-attrib">SRC</span>=<span class="htp-string">"pics/<span class="htp-macro">${src}</span>"</span> <span class="htp-attrib"><span class="htp-macro">$*</span></span>&gt;</span><br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/DEF</a>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;MYIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">ALT</span>=<span class="htp-string">"Our logo"</span>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <p>
│ │ │ │  </td>
│ │ │ │  </tr>
│ │ │ │  <tr>
│ │ │ │  <td width="20%" bgcolor="white" valign="bottom">
│ │ │ │   <table border="0" cellspacing="0" cellpadding="0" width="100%">
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -1,36 +1,67 @@
│ │ │ │ │  [HTP]
│ │ │ │ │  ************ hhttpp oonn--lliinnee rreeffeerreennccee :: UUNNSSEETT ************
│ │ │ │ │  _T_a_b_l_e_ _o_f_ _C_o_n_t_e_n_t_s           ********** ssyynnttaaxx **********
│ │ │ │ │ -  _I_n_t_r_o_d_u_c_t_i_o_n              ********** ssyynnooppssiiss **********
│ │ │ │ │ -  _L_i_c_e_n_s_e                   UUNNSSEETT removes (or deletes) a macro and it's
│ │ │ │ │ -  _T_u_t_o_r_i_a_l                  definition. The macro is subsequently not available
│ │ │ │ │ -  _U_s_a_g_e                     for use in the pre-processed files. (Note that
│ │ │ │ │ -  HTP Tags                  simply redefining the macro with another _S_E_T or
│ │ │ │ │ -      _A_L_T_T_E_X_T               _B_L_O_C_K definition with the same name is acceptable.
│ │ │ │ │ -      _B_L_O_C_K                 The old macro definition will be removed
│ │ │ │ │ -      _B_L_O_C_K_D_E_F              automatically.)
│ │ │ │ │ -      _D_E_F                   For example:
│ │ │ │ │ -      _F_I_L_E                  More than one macro may be removed in the same tag:
│ │ │ │ │ -      _I_F                        <_[_[_r_e_f_]_]_u_n_s_e_t email_addr home_url login_name>
│ │ │ │ │ -      _I_N_C                   LE TIME>, <_[_[_r_e_f_]_]_F_I_L_E DATE></EM>
│ │ │ │ │ -      _I_M_G
│ │ │ │ │ -      _I_M_A_G_E_U_R_L
│ │ │ │ │ -      _O_P_T
│ │ │ │ │ -      _O_U_T_P_U_T
│ │ │ │ │ -      _Q_U_O_T_E
│ │ │ │ │ -      _S_E_T
│ │ │ │ │ -      _U_N_D_E_F
│ │ │ │ │ -  [>] _U_N_S_E_T
│ │ │ │ │ -      _U_S_E_,_ _$
│ │ │ │ │ -      _W_H_I_L_E
│ │ │ │ │ -      _<_!_-_-_-
│ │ │ │ │ -  _H_i_s_t_o_r_y
│ │ │ │ │ -  _W_i_s_h_ _l_i_s_t
│ │ │ │ │ -  _B_u_g_s
│ │ │ │ │ +  _I_n_t_r_o_d_u_c_t_i_o_n                  <_[_[_r_e_f_]_]_S_E_T emailaddr="jnelson@crl.com">
│ │ │ │ │ +  _L_i_c_e_n_s_e                   ********** ssyynnooppssiiss **********
│ │ │ │ │ +  _T_u_t_o_r_i_a_l                  UUNNSSEETT removes (or deletes) a macro and it's
│ │ │ │ │ +  _U_s_a_g_e                     definition. The macro is subsequently not available
│ │ │ │ │ +  HTP Tags                  for use in the pre-processed files. (Note that
│ │ │ │ │ +      _A_L_T_T_E_X_T               simply redefining the macro with another _S_E_T or
│ │ │ │ │ +      _B_L_O_C_K                 _B_L_O_C_K definition with the same name is acceptable.
│ │ │ │ │ +      _B_L_O_C_K_D_E_F              The old macro definition will be removed
│ │ │ │ │ +      _D_E_F                   automatically.)
│ │ │ │ │ +      _F_I_L_E                  For example:
│ │ │ │ │ +      _I_F                        <_[_[_r_e_f_]_]_I_F name>...<_[_[_r_e_f_]_]_/_I_F>
│ │ │ │ │ +      _I_N_C                   yz>
│ │ │ │ │ +      _I_M_G                     ...
│ │ │ │ │ +      _I_M_A_G_E_U_R_L              <_[_[_r_e_f_]_]_/_i_f>
│ │ │ │ │ +      _O_P_T                   More than one macro may be removed in the same tag:
│ │ │ │ │ +      _O_U_T_P_U_T                  <_[_[_r_e_f_]_]_D_E_F NAME="HEADERIMG" OPTION="SRC TITLE
│ │ │ │ │ +      _Q_U_O_T_E                 SIZE">
│ │ │ │ │ +      _S_E_T                       <_[_[_r_e_f_]_]_I_F size>
│ │ │ │ │ +      _U_N_D_E_F                         <FONT SIZE=${size}>
│ │ │ │ │ +  [>] _U_N_S_E_T                     <_[_[_r_e_f_]_]_/_I_F>
│ │ │ │ │ +      _U_S_E_,_ _$                    <_[_[_r_e_f_]_]_I_M_G SRC=pics/${src}>
│ │ │ │ │ +      _W_H_I_L_E                     <_[_[_r_e_f_]_]_U_S_E title>
│ │ │ │ │ +      _<_!_-_-_-                     <_[_[_r_e_f_]_]_I_F size>
│ │ │ │ │ +  _H_i_s_t_o_r_y                           </FONT>
│ │ │ │ │ +  _W_i_s_h_ _l_i_s_t                     <_[_[_r_e_f_]_]_/_I_F>
│ │ │ │ │ +  _B_u_g_s                        <_[_[_r_e_f_]_]_/_D_E_F>
│ │ │ │ │ +
│ │ │ │ │ +                              <HEADERIMG SRC="logo.gif" SIZE="+2" TITLE="A
│ │ │ │ │ +                            title">
│ │ │ │ │ +
│ │ │ │ │ +                              <HEADERIMG SRC="logo.gif" TITLE="Normal sized
│ │ │ │ │ +                            title">
│ │ │ │ │ +
│ │ │ │ │ +                              This will fail:
│ │ │ │ │ +                              <HEADERIMG SRC="logo.gif" ALT="Our logo"
│ │ │ │ │ +                            TITLE="Another title">
│ │ │ │ │ +
│ │ │ │ │ +                              Instead, use * like this:
│ │ │ │ │ +                              <_[_[_r_e_f_]_]_D_E_F NAME="MYIMG" OPTION="SRC *">
│ │ │ │ │ +                                <_[_[_r_e_f_]_]_I_M_G SRC="pics/${src}" $*>
│ │ │ │ │ +                              <_[_[_r_e_f_]_]_/_D_E_F>
│ │ │ │ │ +                               
│ │ │ │ │ +                              <MYIMG SRC="logo.gif" ALT="Our logo">
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │  
│ │ │ │ │    _p_a_g_e_ _s_o_u_r_c_e
│ │ │ ├── ./usr/share/doc/htp/use.html
│ │ │ │ @@ -114,14 +114,15 @@
│ │ │ │        <a class="noline" href="bugs.html">Bugs</a></td></tr>
│ │ │ │    </table>
│ │ │ │    </div>
│ │ │ │  </td>
│ │ │ │  <td bgcolor="#f0f0d0" rowspan="2" valign="top">
│ │ │ │  <h2>syntax</h2>
│ │ │ │    <p><code>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="set.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">SET</a> <span class="htp-attrib">emailaddr</span>=<span class="htp-string">"jnelson@crl.com"</span>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <h2>synopsis</h2>
│ │ │ │  <strong>USE</strong> will expand macros that have been previously
│ │ │ │  declared with either <A HREF="set.html">SET</A> or <A
│ │ │ │  HREF="block.html">BLOCK</A>.  USE can only be used outside of other
│ │ │ │  markup tags.
│ │ │ │  <p> If you USE a block macro the value of expanded block macros will
│ │ │ │ @@ -131,16 +132,14 @@
│ │ │ │  attribute to prevent further expansion.  </p>
│ │ │ │  <p> USE will accept additional parameters, which are "local" macros
│ │ │ │  for the expanded macro.  This is only valid for <A
│ │ │ │  HREF="block.html">BLOCK</A> macros.  Macros created using <A
│ │ │ │  HREF="set.html">SET</A> cannot have parameters passed.  For
│ │ │ │  example:</p>
│ │ │ │    <p><code>
│ │ │ │ -<font size="-2">&nbsp;1. </font>&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="unset.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">unset</a> <span class="htp-attrib">email_addr</span> <span class="htp-attrib">home_url</span> <span class="htp-attrib">login_name</span>&gt;</span><br>
│ │ │ │ -<font size="-2">&nbsp;2. </font>LE TIME>, <span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">FILE</a> <span class="htp-attrib">DATE</span>&gt;</span><span class="htp-tag">&lt;/EM&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <P>
│ │ │ │  (See below for a description of the '$' operator.)  The example on
│ │ │ │  line 7 works because "stuff" has been declared as a block macro, and
│ │ │ │  the tag is passing the "email" macro to the "stuff" macro.  Line 8
│ │ │ │  fails because the "email" macro is unavailable once the block macro is
│ │ │ │  completely expanded, and cannot be passed to a SET macro.
│ │ │ │ @@ -151,21 +150,38 @@
│ │ │ │  Inside a markup tag, like <a href="img.html">IMG</a>, A (anchor), or
│ │ │ │  any other standard HTML or htp tag, the '$' operator must be used.
│ │ │ │  The '$' should be immediately followed by the macro name, which may or
│ │ │ │  may not be surrounded by curly braces.  When htp encounters this it
│ │ │ │  replaces the macro name by the contents of the macro without further
│ │ │ │  processing the contents.
│ │ │ │    <p><code>
│ │ │ │ -<font size="-2">&nbsp;1. </font><span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">file</a> <span class="htp-attrib">include</span>=<span class="htp-string">"header.hti"</span>&gt;</span><br>
│ │ │ │ -<font size="-2">&nbsp;2. </font>&nbsp; <span class="htp-tag">&lt;<a href="set.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">set</a> <span class="htp-attrib">sect-ctr</span>=<span class="htp-string">"1"</span>&gt;</span><br>
│ │ │ │ -<font size="-2">&nbsp;3. </font>&nbsp; <span class="htp-tag">&lt;<a href="while.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">while</a> <span class="htp-attrib">sect-<span class="htp-macro">${sect-ctr}</span></span>&gt;</span><br>
│ │ │ │ -<font size="-2">&nbsp;4. </font>&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="use.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">use</a> <span class="htp-attrib">sect-<span class="htp-macro">${sect-ctr}</span></span>&gt;</span><br>
│ │ │ │ -<font size="-2">&nbsp;5. </font>&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="inc.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">inc</a> <span class="htp-attrib">sect-ctr</span>&gt;</span><br>
│ │ │ │ -<font size="-2">&nbsp;6. </font>&nbsp; <span class="htp-tag">&lt;<a href="while.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/while</a>&gt;</span><br>
│ │ │ │ -<font size="-2">&nbsp;7. </font><span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">file</a> <span class="htp-attrib">include</span>=<span class="htp-string">"footer.hti"</span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;1. </font>&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">DEF</a> <span class="htp-attrib">NAME</span>=<span class="htp-string">"HEADERIMG"</span> <span class="htp-attrib">OPTION</span>=<span class="htp-string">"SRC TITLE SIZE"</span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;2. </font>&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IF</a> <span class="htp-attrib">size</span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;3. </font>&nbsp; &nbsp; &nbsp; &nbsp; <span class="htp-tag">&lt;FONT <span class="htp-attrib">SIZE</span>=<span class="htp-value"><span class="htp-macro">${size}</span></span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;4. </font>&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/IF</a>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;5. </font>&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IMG</a> <span class="htp-attrib">SRC</span>=<span class="htp-value">pics/<span class="htp-macro">${src}</span></span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;6. </font>&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="use.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">USE</a> <span class="htp-attrib">title</span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;7. </font>&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IF</a> <span class="htp-attrib">size</span>&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;8. </font>&nbsp; &nbsp; &nbsp; &nbsp; <span class="htp-tag">&lt;/FONT&gt;</span><br>
│ │ │ │ +<font size="-2">&nbsp;9. </font>&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/IF</a>&gt;</span><br>
│ │ │ │ +<font size="-2">10. </font>&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/DEF</a>&gt;</span><br>
│ │ │ │ +<font size="-2">11. </font><br>
│ │ │ │ +<font size="-2">12. </font>&nbsp; <span class="htp-tag">&lt;HEADERIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">SIZE</span>=<span class="htp-string">"+2"</span> <span class="htp-attrib">TITLE</span>=<span class="htp-string">"A title"</span>&gt;</span><br>
│ │ │ │ +<font size="-2">13. </font><br>
│ │ │ │ +<font size="-2">14. </font>&nbsp; <span class="htp-tag">&lt;HEADERIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">TITLE</span>=<span class="htp-string">"Normal sized title"</span>&gt;</span><br>
│ │ │ │ +<font size="-2">15. </font><br>
│ │ │ │ +<font size="-2">16. </font>&nbsp; This will fail:<br>
│ │ │ │ +<font size="-2">17. </font>&nbsp; <span class="htp-tag">&lt;HEADERIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">ALT</span>=<span class="htp-string">"Our logo"</span> <span class="htp-attrib">TITLE</span>=<span class="htp-string">"Another title"</span>&gt;</span><br>
│ │ │ │ +<font size="-2">18. </font><br>
│ │ │ │ +<font size="-2">19. </font>&nbsp; Instead, use * like this:<br>
│ │ │ │ +<font size="-2">20. </font>&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">DEF</a> <span class="htp-attrib">NAME</span>=<span class="htp-string">"MYIMG"</span> <span class="htp-attrib">OPTION</span>=<span class="htp-string">"SRC *"</span>&gt;</span><br>
│ │ │ │ +<font size="-2">21. </font>&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IMG</a> <span class="htp-attrib">SRC</span>=<span class="htp-string">"pics/<span class="htp-macro">${src}</span>"</span> <span class="htp-attrib"><span class="htp-macro">$*</span></span>&gt;</span><br>
│ │ │ │ +<font size="-2">22. </font>&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/DEF</a>&gt;</span><br>
│ │ │ │ +<font size="-2">23. </font>&nbsp; &nbsp; <br>
│ │ │ │ +<font size="-2">24. </font>&nbsp; <span class="htp-tag">&lt;MYIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">ALT</span>=<span class="htp-string">"Our logo"</span>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <P>
│ │ │ │  The use of curly braces is encouraged, since it is more robust and
│ │ │ │  should never cause confusion with surrounding text.  If no curly
│ │ │ │  braces are used the macro name consists either of a single punctuation
│ │ │ │  character or the maximum sequence of letters, digits, &quot;-&quot;
│ │ │ │  and &quot;_&quot; that follows it.
│ │ │ │ @@ -179,15 +195,21 @@
│ │ │ │  delimiting the text as if it were additional markup attributes.
│ │ │ │  If the '$' macro is surrounded by other text (as in the two examples above),
│ │ │ │  quotation marks are not automatically supplied.
│ │ │ │  <P>
│ │ │ │  Note that a '$' macro can be placed anywhere in a markup tag and can
│ │ │ │  be nested.  This is valid:
│ │ │ │    <p><code>
│ │ │ │ -&nbsp; &nbsp; <span class="htp-tag">&lt;<span class="htp-macro">${tagName}</span> <span class="htp-attrib"><span class="htp-macro">${attrName}</span></span>=<span class="htp-value"><span class="htp-macro">${value$ctr}</span></span>&gt;</span><br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="set.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">set</a> <span class="htp-attrib">sect-ctr</span>=<span class="htp-string">"0"</span>&gt;</span><br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="blockdef.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">blockdef</a> <span class="htp-attrib">name</span>=<span class="htp-string">"section"</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="inc.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">inc</a> <span class="htp-attrib">sect-ctr</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="block.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">block</a> <span class="htp-attrib">name</span>=<span class="htp-string">"sect-<span class="htp-macro">${sect-ctr}</span>"</span> <span class="htp-attrib">expand</span> <span class="htp-attrib">global</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; &nbsp; <span class="htp-tag">&lt;<a href="use.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">use</a> <span class="htp-attrib">block</span> <span class="htp-attrib">noexpand</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="block.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/block</a>&gt;</span><br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="blockdef.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/blockdef</a>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <P> The tagName macro can contain any tag name, even a self-defined
│ │ │ │  metatag.  Note that <code>$ctr</code> is expanded before the valueX
│ │ │ │  macro is expanded, so assuming that ctr was set to 1 it will expand
│ │ │ │  value1.
│ │ │ │  <p>
│ │ │ │  </td>
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -1,51 +1,70 @@
│ │ │ │ │  [HTP]
│ │ │ │ │  ************ hhttpp oonn--lliinnee rreeffeerreennccee :: UUSSEE,, $$ ************
│ │ │ │ │  _T_a_b_l_e_ _o_f_ _C_o_n_t_e_n_t_s           ********** ssyynnttaaxx **********
│ │ │ │ │ -  _I_n_t_r_o_d_u_c_t_i_o_n              ********** ssyynnooppssiiss **********
│ │ │ │ │ -  _L_i_c_e_n_s_e                   UUSSEE will expand macros that have been previously
│ │ │ │ │ -  _T_u_t_o_r_i_a_l                  declared with either _S_E_T or _B_L_O_C_K. USE can only be
│ │ │ │ │ -  _U_s_a_g_e                     used outside of other markup tags.
│ │ │ │ │ -  HTP Tags                  If you USE a block macro the value of expanded
│ │ │ │ │ -      _A_L_T_T_E_X_T               block macros will be further parsed by htp. This is
│ │ │ │ │ -      _B_L_O_C_K                 maybe not what you want, for example, if the use is
│ │ │ │ │ -      _B_L_O_C_K_D_E_F              inside a block which _e_x_p_a_n_d_s itself. You can use
│ │ │ │ │ -      _D_E_F                   the noexpand attribute to prevent further
│ │ │ │ │ -      _F_I_L_E                  expansion.
│ │ │ │ │ -      _I_F                    USE will accept additional parameters, which are
│ │ │ │ │ -      _I_N_C                   "local" macros for the expanded macro. This is only
│ │ │ │ │ -      _I_M_G                   valid for _B_L_O_C_K macros. Macros created using _S_E_T
│ │ │ │ │ -      _I_M_A_G_E_U_R_L              cannot have parameters passed. For example:
│ │ │ │ │ -      _O_P_T                    1.     <_[_[_r_e_f_]_]_u_n_s_e_t email_addr home_url
│ │ │ │ │ -      _O_U_T_P_U_T                login_name>
│ │ │ │ │ -      _Q_U_O_T_E                  2. LE TIME>, <_[_[_r_e_f_]_]_F_I_L_E DATE></EM>
│ │ │ │ │ -      _S_E_T                   (See below for a description of the '$' operator.)
│ │ │ │ │ -      _U_N_D_E_F                 The example on line 7 works because "stuff" has
│ │ │ │ │ -      _U_N_S_E_T                 been declared as a block macro, and the tag is
│ │ │ │ │ -  [>] _U_S_E_,_ _$                passing the "email" macro to the "stuff" macro.
│ │ │ │ │ -      _W_H_I_L_E                 Line 8 fails because the "email" macro is
│ │ │ │ │ -      _<_!_-_-_-                 unavailable once the block macro is completely
│ │ │ │ │ -  _H_i_s_t_o_r_y                   expanded, and cannot be passed to a SET macro.
│ │ │ │ │ -  _W_i_s_h_ _l_i_s_t                 Note that the "email" macro is available to other
│ │ │ │ │ -  _B_u_g_s                      macros or included files called within the "stuff"
│ │ │ │ │ -                            block.
│ │ │ │ │ -                            Inside a markup tag, like _I_M_G, A (anchor), or any
│ │ │ │ │ +  _I_n_t_r_o_d_u_c_t_i_o_n                  <_[_[_r_e_f_]_]_S_E_T emailaddr="jnelson@crl.com">
│ │ │ │ │ +  _L_i_c_e_n_s_e                   ********** ssyynnooppssiiss **********
│ │ │ │ │ +  _T_u_t_o_r_i_a_l                  UUSSEE will expand macros that have been previously
│ │ │ │ │ +  _U_s_a_g_e                     declared with either _S_E_T or _B_L_O_C_K. USE can only be
│ │ │ │ │ +  HTP Tags                  used outside of other markup tags.
│ │ │ │ │ +      _A_L_T_T_E_X_T               If you USE a block macro the value of expanded
│ │ │ │ │ +      _B_L_O_C_K                 block macros will be further parsed by htp. This is
│ │ │ │ │ +      _B_L_O_C_K_D_E_F              maybe not what you want, for example, if the use is
│ │ │ │ │ +      _D_E_F                   inside a block which _e_x_p_a_n_d_s itself. You can use
│ │ │ │ │ +      _F_I_L_E                  the noexpand attribute to prevent further
│ │ │ │ │ +      _I_F                    expansion.
│ │ │ │ │ +      _I_N_C                   USE will accept additional parameters, which are
│ │ │ │ │ +      _I_M_G                   "local" macros for the expanded macro. This is only
│ │ │ │ │ +      _I_M_A_G_E_U_R_L              valid for _B_L_O_C_K macros. Macros created using _S_E_T
│ │ │ │ │ +      _O_P_T                   cannot have parameters passed. For example:
│ │ │ │ │ +      _O_U_T_P_U_T                (See below for a description of the '$' operator.)
│ │ │ │ │ +      _Q_U_O_T_E                 The example on line 7 works because "stuff" has
│ │ │ │ │ +      _S_E_T                   been declared as a block macro, and the tag is
│ │ │ │ │ +      _U_N_D_E_F                 passing the "email" macro to the "stuff" macro.
│ │ │ │ │ +      _U_N_S_E_T                 Line 8 fails because the "email" macro is
│ │ │ │ │ +  [>] _U_S_E_,_ _$                unavailable once the block macro is completely
│ │ │ │ │ +      _W_H_I_L_E                 expanded, and cannot be passed to a SET macro.
│ │ │ │ │ +      _<_!_-_-_-                 Note that the "email" macro is available to other
│ │ │ │ │ +  _H_i_s_t_o_r_y                   macros or included files called within the "stuff"
│ │ │ │ │ +  _W_i_s_h_ _l_i_s_t                 block.
│ │ │ │ │ +  _B_u_g_s                      Inside a markup tag, like _I_M_G, A (anchor), or any
│ │ │ │ │                              other standard HTML or htp tag, the '$' operator
│ │ │ │ │                              must be used. The '$' should be immediately
│ │ │ │ │                              followed by the macro name, which may or may not be
│ │ │ │ │                              surrounded by curly braces. When htp encounters
│ │ │ │ │                              this it replaces the macro name by the contents of
│ │ │ │ │                              the macro without further processing the contents.
│ │ │ │ │ -                             1. <_[_[_r_e_f_]_]_f_i_l_e include="header.hti">
│ │ │ │ │ -                             2.   <_[_[_r_e_f_]_]_s_e_t sect-ctr="1">
│ │ │ │ │ -                             3.   <_[_[_r_e_f_]_]_w_h_i_l_e sect-${sect-ctr}>
│ │ │ │ │ -                             4.     <_[_[_r_e_f_]_]_u_s_e sect-${sect-ctr}>
│ │ │ │ │ -                             5.     <_[_[_r_e_f_]_]_i_n_c sect-ctr>
│ │ │ │ │ -                             6.   <_[_[_r_e_f_]_]_/_w_h_i_l_e>
│ │ │ │ │ -                             7. <_[_[_r_e_f_]_]_f_i_l_e include="footer.hti">
│ │ │ │ │ +                             1.   <_[_[_r_e_f_]_]_D_E_F NAME="HEADERIMG" OPTION="SRC
│ │ │ │ │ +                            TITLE SIZE">
│ │ │ │ │ +                             2.     <_[_[_r_e_f_]_]_I_F size>
│ │ │ │ │ +                             3.         <FONT SIZE=${size}>
│ │ │ │ │ +                             4.     <_[_[_r_e_f_]_]_/_I_F>
│ │ │ │ │ +                             5.     <_[_[_r_e_f_]_]_I_M_G SRC=pics/${src}>
│ │ │ │ │ +                             6.     <_[_[_r_e_f_]_]_U_S_E title>
│ │ │ │ │ +                             7.     <_[_[_r_e_f_]_]_I_F size>
│ │ │ │ │ +                             8.         </FONT>
│ │ │ │ │ +                             9.     <_[_[_r_e_f_]_]_/_I_F>
│ │ │ │ │ +                            10.   <_[_[_r_e_f_]_]_/_D_E_F>
│ │ │ │ │ +                            11.
│ │ │ │ │ +                            12.   <HEADERIMG SRC="logo.gif" SIZE="+2" TITLE="A
│ │ │ │ │ +                            title">
│ │ │ │ │ +                            13.
│ │ │ │ │ +                            14.   <HEADERIMG SRC="logo.gif" TITLE="Normal sized
│ │ │ │ │ +                            title">
│ │ │ │ │ +                            15.
│ │ │ │ │ +                            16.   This will fail:
│ │ │ │ │ +                            17.   <HEADERIMG SRC="logo.gif" ALT="Our logo"
│ │ │ │ │ +                            TITLE="Another title">
│ │ │ │ │ +                            18.
│ │ │ │ │ +                            19.   Instead, use * like this:
│ │ │ │ │ +                            20.   <_[_[_r_e_f_]_]_D_E_F NAME="MYIMG" OPTION="SRC *">
│ │ │ │ │ +                            21.     <_[_[_r_e_f_]_]_I_M_G SRC="pics/${src}" $*>
│ │ │ │ │ +                            22.   <_[_[_r_e_f_]_]_/_D_E_F>
│ │ │ │ │ +                            23.    
│ │ │ │ │ +                            24.   <MYIMG SRC="logo.gif" ALT="Our logo">
│ │ │ │ │                              The use of curly braces is encouraged, since it is
│ │ │ │ │                              more robust and should never cause confusion with
│ │ │ │ │                              surrounding text. If no curly braces are used the
│ │ │ │ │                              macro name consists either of a single punctuation
│ │ │ │ │                              character or the maximum sequence of letters,
│ │ │ │ │                              digits, "-" and "_" that follows it.
│ │ │ │ │                              If a '$' character needs to be kept in the final
│ │ │ │ │ @@ -57,15 +76,22 @@
│ │ │ │ │                              it with quotation marks to prevent spaces from
│ │ │ │ │                              delimiting the text as if it were additional markup
│ │ │ │ │                              attributes. If the '$' macro is surrounded by other
│ │ │ │ │                              text (as in the two examples above), quotation
│ │ │ │ │                              marks are not automatically supplied.
│ │ │ │ │                              Note that a '$' macro can be placed anywhere in a
│ │ │ │ │                              markup tag and can be nested. This is valid:
│ │ │ │ │ -                                <${tagName} ${attrName}=${value$ctr}>
│ │ │ │ │ +                              <_[_[_r_e_f_]_]_s_e_t sect-ctr="0">
│ │ │ │ │ +                              <_[_[_r_e_f_]_]_b_l_o_c_k_d_e_f name="section">
│ │ │ │ │ +                                <_[_[_r_e_f_]_]_i_n_c sect-ctr>
│ │ │ │ │ +                                <_[_[_r_e_f_]_]_b_l_o_c_k name="sect-${sect-ctr}" expand
│ │ │ │ │ +                            global>
│ │ │ │ │ +                                  <_[_[_r_e_f_]_]_u_s_e block noexpand>
│ │ │ │ │ +                                <_[_[_r_e_f_]_]_/_b_l_o_c_k>
│ │ │ │ │ +                              <_[_[_r_e_f_]_]_/_b_l_o_c_k_d_e_f>
│ │ │ │ │                              The tagName macro can contain any tag name, even a
│ │ │ │ │                              self-defined metatag. Note that $ctr is expanded
│ │ │ │ │                              before the valueX macro is expanded, so assuming
│ │ │ │ │                              that ctr was set to 1 it will expand value1.
│ │ │ ├── ./usr/share/doc/htp/while.html
│ │ │ │ @@ -114,29 +114,58 @@
│ │ │ │        <a class="noline" href="bugs.html">Bugs</a></td></tr>
│ │ │ │    </table>
│ │ │ │    </div>
│ │ │ │  </td>
│ │ │ │  <td bgcolor="#f0f0d0" rowspan="2" valign="top">
│ │ │ │  <h2>syntax</h2>
│ │ │ │    <p><code>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="set.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">SET</a> <span class="htp-attrib">emailaddr</span>=<span class="htp-string">"jnelson@crl.com"</span>&gt;</span><br>
│ │ │ │ +if" SIZE=KBYTE> kilobytes<br>
│ │ │ │ +&nbsp; &nbsp; Last modified <span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">FILE</a> <span class="htp-attrib">NAME</span>=<span class="htp-string">"image.gif"</span> <span class="htp-attrib">TIME</span>&gt;</span>, <span class="htp-tag">&lt;<a href="file.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">FILE</a> <span class="htp-attrib">NAME</span>=<span class="htp-string">"image.gif"</span> <span class="htp-attrib">DATE</span>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <h2>synopsis</h2>
│ │ │ │  <STRONG>WHILE</STRONG> is the building block for repeated processing.
│ │ │ │  The basic form is shown above.
│ │ │ │  <P>
│ │ │ │  "Conditional" is either a "compare" or "is defined" operation.
│ │ │ │  A compare operator is a test of the value of a macro against a literal string.
│ │ │ │  If the NOT tag is present in the WHILE markup, the evaluation of the
│ │ │ │  conditional is reversed:
│ │ │ │    <p><code>
│ │ │ │ +<span class="htp-tag">&lt;a <span class="htp-attrib">href</span>=<span class="htp-string">"mailto:<span class="htp-macro">$email</span>"</span>&gt;</span>mailto hyperlink<span class="htp-tag">&lt;/a&gt;</span><br>
│ │ │ │ +<span class="htp-tag">&lt;a <span class="htp-attrib">href</span>=<span class="htp-string">"http://<span class="htp-macro">$domain</span>/~<span class="htp-macro">${username}</span>/"</span>&gt;</span>another hyperlink<span class="htp-tag">&lt;/a&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <P>
│ │ │ │  Just as with <a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IF</a> you can also check for a
│ │ │ │  macro's existance:
│ │ │ │    <p><code>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">DEF</a> <span class="htp-attrib">NAME</span>=<span class="htp-string">"HEADERIMG"</span> <span class="htp-attrib">OPTION</span>=<span class="htp-string">"SRC TITLE SIZE"</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IF</a> <span class="htp-attrib">size</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; &nbsp; &nbsp; <span class="htp-tag">&lt;FONT <span class="htp-attrib">SIZE</span>=<span class="htp-value"><span class="htp-macro">${size}</span></span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/IF</a>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IMG</a> <span class="htp-attrib">SRC</span>=<span class="htp-value">pics/<span class="htp-macro">${src}</span></span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="use.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">USE</a> <span class="htp-attrib">title</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IF</a> <span class="htp-attrib">size</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; &nbsp; &nbsp; <span class="htp-tag">&lt;/FONT&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="if.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/IF</a>&gt;</span><br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/DEF</a>&gt;</span><br>
│ │ │ │ +<br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;HEADERIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">SIZE</span>=<span class="htp-string">"+2"</span> <span class="htp-attrib">TITLE</span>=<span class="htp-string">"A title"</span>&gt;</span><br>
│ │ │ │ +<br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;HEADERIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">TITLE</span>=<span class="htp-string">"Normal sized title"</span>&gt;</span><br>
│ │ │ │ +<br>
│ │ │ │ +&nbsp; This will fail:<br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;HEADERIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">ALT</span>=<span class="htp-string">"Our logo"</span> <span class="htp-attrib">TITLE</span>=<span class="htp-string">"Another title"</span>&gt;</span><br>
│ │ │ │ +<br>
│ │ │ │ +&nbsp; Instead, use * like this:<br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">DEF</a> <span class="htp-attrib">NAME</span>=<span class="htp-string">"MYIMG"</span> <span class="htp-attrib">OPTION</span>=<span class="htp-string">"SRC *"</span>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <span class="htp-tag">&lt;<a href="img.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">IMG</a> <span class="htp-attrib">SRC</span>=<span class="htp-string">"pics/<span class="htp-macro">${src}</span>"</span> <span class="htp-attrib"><span class="htp-macro">$*</span></span>&gt;</span><br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;<a href="def.html" ><img src="pic/manual.png" border=0 alt="[ref]" width="10" height="10">/DEF</a>&gt;</span><br>
│ │ │ │ +&nbsp; &nbsp; <br>
│ │ │ │ +&nbsp; <span class="htp-tag">&lt;MYIMG <span class="htp-attrib">SRC</span>=<span class="htp-string">"logo.gif"</span> <span class="htp-attrib">ALT</span>=<span class="htp-string">"Our logo"</span>&gt;</span><br>
│ │ │ │  </code></p>
│ │ │ │  <P>
│ │ │ │  If the condition is true, the block is evaluated and afterwards the
│ │ │ │  WHILE tag is evaluated again.  If the '$'-operator is used in the
│ │ │ │  WHILE tag it is also reevaluated on each iteration.
│ │ │ │  <P>
│ │ │ │  A loop block <EM>must</EM> be closed with the /WHILE tag.
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -1,36 +1,71 @@
│ │ │ │ │  [HTP]
│ │ │ │ │  ************ hhttpp oonn--lliinnee rreeffeerreennccee :: WWHHIILLEE ************
│ │ │ │ │  _T_a_b_l_e_ _o_f_ _C_o_n_t_e_n_t_s           ********** ssyynnttaaxx **********
│ │ │ │ │ -  _I_n_t_r_o_d_u_c_t_i_o_n              ********** ssyynnooppssiiss **********
│ │ │ │ │ -  _L_i_c_e_n_s_e                   WWHHIILLEE is the building block for repeated
│ │ │ │ │ -  _T_u_t_o_r_i_a_l                  processing. The basic form is shown above.
│ │ │ │ │ -  _U_s_a_g_e                     "Conditional" is either a "compare" or "is defined"
│ │ │ │ │ -  HTP Tags                  operation. A compare operator is a test of the
│ │ │ │ │ -      _A_L_T_T_E_X_T               value of a macro against a literal string. If the
│ │ │ │ │ -      _B_L_O_C_K                 NOT tag is present in the WHILE markup, the
│ │ │ │ │ -      _B_L_O_C_K_D_E_F              evaluation of the conditional is reversed:
│ │ │ │ │ -      _D_E_F                   Just as with _[_[_r_e_f_]_]_I_F you can also check for a
│ │ │ │ │ -      _F_I_L_E                  macro's existance:
│ │ │ │ │ -      _I_F                    If the condition is true, the block is evaluated
│ │ │ │ │ -      _I_N_C                   and afterwards the WHILE tag is evaluated again. If
│ │ │ │ │ -      _I_M_G                   the '$'-operator is used in the WHILE tag it is
│ │ │ │ │ -      _I_M_A_G_E_U_R_L              also reevaluated on each iteration.
│ │ │ │ │ -      _O_P_T                   A loop block mmuusstt be closed with the /WHILE tag.
│ │ │ │ │ -      _O_U_T_P_U_T
│ │ │ │ │ -      _Q_U_O_T_E
│ │ │ │ │ -      _S_E_T
│ │ │ │ │ -      _U_N_D_E_F
│ │ │ │ │ -      _U_N_S_E_T
│ │ │ │ │ -      _U_S_E_,_ _$
│ │ │ │ │ -  [>] _W_H_I_L_E
│ │ │ │ │ -      _<_!_-_-_-
│ │ │ │ │ -  _H_i_s_t_o_r_y
│ │ │ │ │ -  _W_i_s_h_ _l_i_s_t
│ │ │ │ │ -  _B_u_g_s
│ │ │ │ │ +  _I_n_t_r_o_d_u_c_t_i_o_n                  <_[_[_r_e_f_]_]_S_E_T emailaddr="jnelson@crl.com">
│ │ │ │ │ +  _L_i_c_e_n_s_e                   if" SIZE=KBYTE> kilobytes
│ │ │ │ │ +  _T_u_t_o_r_i_a_l                      Last modified <_[_[_r_e_f_]_]_F_I_L_E NAME="image.gif"
│ │ │ │ │ +  _U_s_a_g_e                     TIME>, <_[_[_r_e_f_]_]_F_I_L_E NAME="image.gif" DATE>
│ │ │ │ │ +  HTP Tags                  ********** ssyynnooppssiiss **********
│ │ │ │ │ +      _A_L_T_T_E_X_T               WWHHIILLEE is the building block for repeated
│ │ │ │ │ +      _B_L_O_C_K                 processing. The basic form is shown above.
│ │ │ │ │ +      _B_L_O_C_K_D_E_F              "Conditional" is either a "compare" or "is defined"
│ │ │ │ │ +      _D_E_F                   operation. A compare operator is a test of the
│ │ │ │ │ +      _F_I_L_E                  value of a macro against a literal string. If the
│ │ │ │ │ +      _I_F                    NOT tag is present in the WHILE markup, the
│ │ │ │ │ +      _I_N_C                   evaluation of the conditional is reversed:
│ │ │ │ │ +      _I_M_G                   <a href="mailto:$email">mailto hyperlink</a>
│ │ │ │ │ +      _I_M_A_G_E_U_R_L              <a href="http://$domain/~${username}/">another
│ │ │ │ │ +      _O_P_T                   hyperlink</a>
│ │ │ │ │ +      _O_U_T_P_U_T                Just as with _[_[_r_e_f_]_]_I_F you can also check for a
│ │ │ │ │ +      _Q_U_O_T_E                 macro's existance:
│ │ │ │ │ +      _S_E_T                     <_[_[_r_e_f_]_]_D_E_F NAME="HEADERIMG" OPTION="SRC TITLE
│ │ │ │ │ +      _U_N_D_E_F                 SIZE">
│ │ │ │ │ +      _U_N_S_E_T                     <_[_[_r_e_f_]_]_I_F size>
│ │ │ │ │ +      _U_S_E_,_ _$                        <FONT SIZE=${size}>
│ │ │ │ │ +  [>] _W_H_I_L_E                     <_[_[_r_e_f_]_]_/_I_F>
│ │ │ │ │ +      _<_!_-_-_-                     <_[_[_r_e_f_]_]_I_M_G SRC=pics/${src}>
│ │ │ │ │ +  _H_i_s_t_o_r_y                       <_[_[_r_e_f_]_]_U_S_E title>
│ │ │ │ │ +  _W_i_s_h_ _l_i_s_t                     <_[_[_r_e_f_]_]_I_F size>
│ │ │ │ │ +  _B_u_g_s                              </FONT>
│ │ │ │ │ +                                <_[_[_r_e_f_]_]_/_I_F>
│ │ │ │ │ +                              <_[_[_r_e_f_]_]_/_D_E_F>
│ │ │ │ │ +
│ │ │ │ │ +                              <HEADERIMG SRC="logo.gif" SIZE="+2" TITLE="A
│ │ │ │ │ +                            title">
│ │ │ │ │ +
│ │ │ │ │ +                              <HEADERIMG SRC="logo.gif" TITLE="Normal sized
│ │ │ │ │ +                            title">
│ │ │ │ │ +
│ │ │ │ │ +                              This will fail:
│ │ │ │ │ +                              <HEADERIMG SRC="logo.gif" ALT="Our logo"
│ │ │ │ │ +                            TITLE="Another title">
│ │ │ │ │ +
│ │ │ │ │ +                              Instead, use * like this:
│ │ │ │ │ +                              <_[_[_r_e_f_]_]_D_E_F NAME="MYIMG" OPTION="SRC *">
│ │ │ │ │ +                                <_[_[_r_e_f_]_]_I_M_G SRC="pics/${src}" $*>
│ │ │ │ │ +                              <_[_[_r_e_f_]_]_/_D_E_F>
│ │ │ │ │ +                               
│ │ │ │ │ +                              <MYIMG SRC="logo.gif" ALT="Our logo">
│ │ │ │ │ +                            If the condition is true, the block is evaluated
│ │ │ │ │ +                            and afterwards the WHILE tag is evaluated again. If
│ │ │ │ │ +                            the '$'-operator is used in the WHILE tag it is
│ │ │ │ │ +                            also reevaluated on each iteration.
│ │ │ │ │ +                            A loop block mmuusstt be closed with the /WHILE tag.
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +
│ │ │ │ │ +