sgt/halibut
20 years agoInstead of traversing a list of paragraphs, mark_attr_ends() now
simon [Thu, 22 Apr 2004 18:01:31 +0000 (18:01 +0000)]
Instead of traversing a list of paragraphs, mark_attr_ends() now
merely traverses a list of words, and main() takes responsibility
for applying it to each paragraph in the document. This is so that
it can _also_ be applied to the display form of each index entry,
which Jacob spotted wasn't previously being done.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4117 cda61777-01e9-0310-a592-d414129be87e

20 years agobk_text and bk_info both need to know the on-screen width of
simon [Thu, 22 Apr 2004 17:47:28 +0000 (17:47 +0000)]
bk_text and bk_info both need to know the on-screen width of
characters in order to wrap and align them properly. Therefore, they
should be using wcwidth(). So here are a couple of wrappers on
wcwidth(), one which filters out the Unicode characters not
representable in the target charset, and one which converts _from_ a
charset to Unicode before calling wcwidth(). bk_text and bk_info
should now align correctly even in the face of unsupported
characters and Japanese.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4116 cda61777-01e9-0310-a592-d414129be87e

20 years agoSupport the locale-supplied character set where appropriate. It's
simon [Thu, 22 Apr 2004 17:27:05 +0000 (17:27 +0000)]
Support the locale-supplied character set where appropriate. It's
used for converting command-line -C directives into Unicode; it's
used for outputting Unicode strings to stderr in error messages; and
it's used as the default character set for input files (although I'd
be inclined to recommend everyone use \cfg{input-charset} in all
their source files to ensure their portability).

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4114 cda61777-01e9-0310-a592-d414129be87e

20 years agoCharset support for the man page backend (\cfg{man-charset}).
simon [Wed, 21 Apr 2004 18:37:12 +0000 (18:37 +0000)]
Charset support for the man page backend (\cfg{man-charset}).

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4112 cda61777-01e9-0310-a592-d414129be87e

20 years agoCharset support for the info backend (\cfg{info-charset}). (This
simon [Wed, 21 Apr 2004 18:07:26 +0000 (18:07 +0000)]
Charset support for the info backend (\cfg{info-charset}). (This
checkin touches other files because a function in bk_text.c turned
out to be of more general use so I moved it out into ustring.c.)

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4111 cda61777-01e9-0310-a592-d414129be87e

20 years agoDon't forget to mention the default setting for \cfg{input-charset}.
simon [Tue, 20 Apr 2004 21:21:15 +0000 (21:21 +0000)]
Don't forget to mention the default setting for \cfg{input-charset}.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4106 cda61777-01e9-0310-a592-d414129be87e

20 years agoAcroread's PDF cut and paste appears to depend on the order in which
simon [Tue, 20 Apr 2004 19:24:29 +0000 (19:24 +0000)]
Acroread's PDF cut and paste appears to depend on the order in which
text fragments appear in the page graphics stream. Therefore, I
should take care to display the leaders _before_ the page number in
each contents entry.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4105 cda61777-01e9-0310-a592-d414129be87e

20 years agoAdd some tests of Unicode in the PDF document outline.
simon [Tue, 20 Apr 2004 19:20:55 +0000 (19:20 +0000)]
Add some tests of Unicode in the PDF document outline.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4104 cda61777-01e9-0310-a592-d414129be87e

20 years agoAhem. Fix stupid string handling error in new command-line config
simon [Tue, 20 Apr 2004 19:09:46 +0000 (19:09 +0000)]
Ahem. Fix stupid string handling error in new command-line config
mechanism.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4103 cda61777-01e9-0310-a592-d414129be87e

20 years agoThe Windows Help backend now uses libcharset to the maximum extent
simon [Tue, 20 Apr 2004 19:06:10 +0000 (19:06 +0000)]
The Windows Help backend now uses libcharset to the maximum extent
it can. (Which isn't much, since I currently don't know how to
indicate that a help file is encoded in anything other than Win1252,
and so the only use I found for libcharset was to replace the
previous pathetic 8859-1 conversion so that extra things like the
trademark sign are supported.)

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4102 cda61777-01e9-0310-a592-d414129be87e

20 years agoPDF outline headings, it turns out, should be encoded using either
simon [Tue, 20 Apr 2004 18:54:36 +0000 (18:54 +0000)]
PDF outline headings, it turns out, should be encoded using either
PDFDocEncoding or UTF-16BE. (The PDF specification's index is
terribly bad; I looked under various obvious things such as
`character set' and `string literal' with no success, and I didn't
manage to find out what character set metadata string literals were
intended to be interpreted in until I discovered from another source
that the encoding was called PDFDocEncoding, and _then_ I was able
to look that up in the index. They should have been using Halibut! :-)

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4101 cda61777-01e9-0310-a592-d414129be87e

20 years agoText backend is now charset-enabled: the entire text file is built
simon [Tue, 20 Apr 2004 18:27:33 +0000 (18:27 +0000)]
Text backend is now charset-enabled: the entire text file is built
from the ground up in Unicode, and a single charset conversion pass
is done over the data as it's output.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4100 cda61777-01e9-0310-a592-d414129be87e

20 years agoAdd some tests of input charset switching.
simon [Tue, 20 Apr 2004 18:26:55 +0000 (18:26 +0000)]
Add some tests of input charset switching.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4099 cda61777-01e9-0310-a592-d414129be87e

20 years agoForgot to add *.ps and *.pdf to the `make clean' list!
simon [Tue, 20 Apr 2004 17:52:01 +0000 (17:52 +0000)]
Forgot to add *.ps and *.pdf to the `make clean' list!

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4098 cda61777-01e9-0310-a592-d414129be87e

20 years agoInfrastructure changes for character set support. ustrtoa,
simon [Tue, 20 Apr 2004 17:50:41 +0000 (17:50 +0000)]
Infrastructure changes for character set support. ustrtoa,
ustrfroma, utoa_dup and ufroma_dup now take a charset parameter, and
also have a variety of subtly distinct forms. Also, when a \cfg
directive is seen in the input file, the precise octet strings for
each parameter are kept in their original form as well as being
translated into Unicode, so that when they represent filenames they
can be used verbatim.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4097 cda61777-01e9-0310-a592-d414129be87e

20 years agoSupport for \cfg{input-charset}. Input files can now be in ASCII,
simon [Mon, 19 Apr 2004 17:09:49 +0000 (17:09 +0000)]
Support for \cfg{input-charset}. Input files can now be in ASCII,
8859-*, UTF-8, or a variety of more fun encodings including various
multibyte ones.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4095 cda61777-01e9-0310-a592-d414129be87e

20 years agoBetter robustness when backends encounter a Unicode character not
simon [Mon, 19 Apr 2004 17:09:12 +0000 (17:09 +0000)]
Better robustness when backends encounter a Unicode character not
representable in the output character set.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4094 cda61777-01e9-0310-a592-d414129be87e

20 years agoLink libcharset into Halibut. (This involved faffing with
simon [Sat, 17 Apr 2004 11:44:49 +0000 (11:44 +0000)]
Link libcharset into Halibut. (This involved faffing with
CVSROOT/modules, so anyone with a checked-out copy of Halibut will
unfortunately need to do `cvs co' again.)

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4088 cda61777-01e9-0310-a592-d414129be87e

20 years agoInclude libcharset into both the Timber and Halibut checkouts.
simon [Sat, 17 Apr 2004 08:04:45 +0000 (08:04 +0000)]
Include libcharset into both the Timber and Halibut checkouts.
Unfortunately this means people will have to do `cvs co' again to
get this update, but that appears to be the price I pay for being
able to conveniently share a single source base in this way.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4086 cda61777-01e9-0310-a592-d414129be87e

20 years agoAdd a TODO entry.
simon [Fri, 16 Apr 2004 11:20:30 +0000 (11:20 +0000)]
Add a TODO entry.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4084 cda61777-01e9-0310-a592-d414129be87e

20 years agoCompacted PS and PDF output files by removing redundant reiterations
simon [Fri, 16 Apr 2004 10:56:31 +0000 (10:56 +0000)]
Compacted PS and PDF output files by removing redundant reiterations
of the same font and position designations. Reduced the size of the
Halibut manual PDF to less than half what it started out as, and the
PS one to more like a third of its original size.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4083 cda61777-01e9-0310-a592-d414129be87e

20 years agoStandardise on using double quotes in HTML attributes. It turns out
simon [Thu, 15 Apr 2004 18:25:17 +0000 (18:25 +0000)]
Standardise on using double quotes in HTML attributes. It turns out
that the GNOME help browser is perfectly happy with Halibut's HTML
_except_ that it doesn't approve of single quotes in places such as
<a href='here'>.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4082 cda61777-01e9-0310-a592-d414129be87e

20 years agoSupport the \W{...}\i\c{...} combination used in the NASM manual.
simon [Thu, 15 Apr 2004 14:21:10 +0000 (14:21 +0000)]
Support the \W{...}\i\c{...} combination used in the NASM manual.
Halibut is now capable of reading the old NASM manual with only
minor modifications, and probably doing a much better job of
formatting it than rdsrc.pl ever did. (Certainly much _faster_!)

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4081 cda61777-01e9-0310-a592-d414129be87e

20 years agoPrevent a tight loop. Oops.
simon [Thu, 15 Apr 2004 14:12:37 +0000 (14:12 +0000)]
Prevent a tight loop. Oops.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4080 cda61777-01e9-0310-a592-d414129be87e

20 years agoPut the document's version IDs into comments in the PS and PDF
simon [Thu, 15 Apr 2004 08:50:04 +0000 (08:50 +0000)]
Put the document's version IDs into comments in the PS and PDF
output files.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4079 cda61777-01e9-0310-a592-d414129be87e

20 years agoAhem. If an indexable term appears in a section heading, the index
simon [Thu, 15 Apr 2004 08:37:39 +0000 (08:37 +0000)]
Ahem. If an indexable term appears in a section heading, the index
should not also point to a page in the contents! :-)

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4078 cda61777-01e9-0310-a592-d414129be87e

20 years agoAdministrivia: update a TODO and a .cvsignore.
simon [Wed, 14 Apr 2004 22:34:55 +0000 (22:34 +0000)]
Administrivia: update a TODO and a .cvsignore.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4077 cda61777-01e9-0310-a592-d414129be87e

20 years agoAfter printing out the PDF manual and reading it through, here's a
simon [Wed, 14 Apr 2004 22:34:21 +0000 (22:34 +0000)]
After printing out the PDF manual and reading it through, here's a
collection of minor edits for clarity, and also quite a few intended
to keep down the length of lines in code paragraphs (because Courier
is not just a thoroughly ugly font but is also WAY TOO WIDE).

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4076 cda61777-01e9-0310-a592-d414129be87e

20 years ago... oh, except that minimal documentation might be helpful.
simon [Wed, 14 Apr 2004 18:14:41 +0000 (18:14 +0000)]
... oh, except that minimal documentation might be helpful.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4075 cda61777-01e9-0310-a592-d414129be87e

20 years agoDisplay the page numbers on every page. Right. I think this is now
simon [Wed, 14 Apr 2004 18:04:24 +0000 (18:04 +0000)]
Display the page numbers on every page. Right. I think this is now
basically usable, and certainly it entirely includes the level of
functionality which was provided by our ancestor Perl script. So I
think I'll stop coding frantically and have a rest!

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4074 cda61777-01e9-0310-a592-d414129be87e

20 years agoAnd now the page numbers in the index are PDF cross-references too.
simon [Wed, 14 Apr 2004 17:48:37 +0000 (17:48 +0000)]
And now the page numbers in the index are PDF cross-references too.
Funny, I thought that would be as hard again as the main index
processing, and it turned out to be nearly trivial.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4073 cda61777-01e9-0310-a592-d414129be87e

20 years agoImplemented an index. Good _grief_, that was hard work to get all
simon [Wed, 14 Apr 2004 17:33:15 +0000 (17:33 +0000)]
Implemented an index. Good _grief_, that was hard work to get all
the fine details right.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4072 cda61777-01e9-0310-a592-d414129be87e

20 years agoTypo during restructuring caused all code paragraphs to be
simon [Wed, 14 Apr 2004 13:24:39 +0000 (13:24 +0000)]
Typo during restructuring caused all code paragraphs to be
permanently bold. Fixed.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4071 cda61777-01e9-0310-a592-d414129be87e

20 years agoThe contents section now contains PDF cross-references.
simon [Wed, 14 Apr 2004 13:23:06 +0000 (13:23 +0000)]
The contents section now contains PDF cross-references.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4070 cda61777-01e9-0310-a592-d414129be87e

20 years agoSupport for a contents section.
simon [Wed, 14 Apr 2004 13:14:12 +0000 (13:14 +0000)]
Support for a contents section.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4069 cda61777-01e9-0310-a592-d414129be87e

20 years agoRestructuring to remove the requirement for a printed paragraph to
simon [Wed, 14 Apr 2004 12:17:44 +0000 (12:17 +0000)]
Restructuring to remove the requirement for a printed paragraph to
correspond exactly to a source paragraph. Should allow me to create
multiple printed paragraphs from the same source paragraph (i.e. a
contents entry for each heading in addition to the heading itself),
and invent entirely new printed paragraphs of my own (e.g. for index
entries).

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4068 cda61777-01e9-0310-a592-d414129be87e

20 years agoImplemented PDF outlines.
simon [Wed, 14 Apr 2004 10:00:07 +0000 (10:00 +0000)]
Implemented PDF outlines.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4067 cda61777-01e9-0310-a592-d414129be87e

20 years agoImplemented horizontal rules.
simon [Wed, 14 Apr 2004 08:32:32 +0000 (08:32 +0000)]
Implemented horizontal rules.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4066 cda61777-01e9-0310-a592-d414129be87e

20 years agoImplemented lines under chapter titles.
simon [Tue, 13 Apr 2004 20:03:39 +0000 (20:03 +0000)]
Implemented lines under chapter titles.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4065 cda61777-01e9-0310-a592-d414129be87e

20 years agoFine-tuned the page breaking algorithm by adding penalties and
simon [Tue, 13 Apr 2004 19:41:36 +0000 (19:41 +0000)]
Fine-tuned the page breaking algorithm by adding penalties and
bonuses for breaking in particular places. (For example, it's
especially bad to break just after a heading, and especially good to
break just before one.)

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4064 cda61777-01e9-0310-a592-d414129be87e

20 years agoI wrote the info backend _days_ ago. About time the manpage stopped
simon [Tue, 13 Apr 2004 19:39:26 +0000 (19:39 +0000)]
I wrote the info backend _days_ ago. About time the manpage stopped
listing its absence as a bug :-)

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4063 cda61777-01e9-0310-a592-d414129be87e

20 years agoFix the TODO comments up a bit.
simon [Tue, 13 Apr 2004 16:51:52 +0000 (16:51 +0000)]
Fix the TODO comments up a bit.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4062 cda61777-01e9-0310-a592-d414129be87e

20 years agoImplemented all the missing rendering features (such as different
simon [Tue, 13 Apr 2004 16:40:03 +0000 (16:40 +0000)]
Implemented all the missing rendering features (such as different
font selection in headings, mentioning section numbers, bullets,
list item numbers, code paragraphs etc). The PS/PDF output now
actually looks like the document it's supposed to be :-)

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4061 cda61777-01e9-0310-a592-d414129be87e

20 years agoImplement PDF link annotations: both internal hyperlinks within the
simon [Tue, 13 Apr 2004 15:05:03 +0000 (15:05 +0000)]
Implement PDF link annotations: both internal hyperlinks within the
document, and references to external URLs for which acroread will
start a web browser.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4060 cda61777-01e9-0310-a592-d414129be87e

20 years agoAha, _that's_ why paragraphs weren't properly justified. Confusion
simon [Tue, 13 Apr 2004 14:14:12 +0000 (14:14 +0000)]
Aha, _that's_ why paragraphs weren't properly justified. Confusion
of semantics as to whether a `last' pointer pointed to the last
relevant thing in a list, or the one beyond that. Oops.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4059 cda61777-01e9-0310-a592-d414129be87e

20 years agoInitial work on PS and PDF output. Because these two backends share
simon [Tue, 13 Apr 2004 13:17:48 +0000 (13:17 +0000)]
Initial work on PS and PDF output. Because these two backends share
an enormous amount of preprocessing and differ only in their final
output form, I've introduced a new type of layer called a
`pre-backend' (bk_paper.c is one). This takes all the information
passed to a normal backend and returns an arbitrary void *, which is
cached by the front end and passed on to any backend(s) which state
a desire for the output of that particular pre-backend. Thus, all
the page layout is done only once, and the PS and PDF backends
process the same data structures into two output files.
Note that these backends are _very_ unfinished; all sorts of vital
things such as section numbers, list markers, and title formatting
are missing, the paragraph justification doesn't quite work, and
advanced stuff like indexes and PDF interactive features haven't
even been started. But this basic framework generates valid output
files and is a good starting point, so I'm checking it in.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4058 cda61777-01e9-0310-a592-d414129be87e

20 years agoDouble yikes! I meant to check in just biblio.c, but instead I
simon [Mon, 12 Apr 2004 08:33:15 +0000 (08:33 +0000)]
Double yikes! I meant to check in just biblio.c, but instead I
checked in all my just-started PS and PDF framework. I'm backing
that lot back out until it actually does something. Ahem.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4057 cda61777-01e9-0310-a592-d414129be87e

20 years agoYikes! Stack trash I'd never noticed before. Oops.
simon [Mon, 12 Apr 2004 08:29:15 +0000 (08:29 +0000)]
Yikes! Stack trash I'd never noticed before. Oops.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4056 cda61777-01e9-0310-a592-d414129be87e

20 years agoForgot to mention the info backend in the command-line help. Oops.
simon [Mon, 12 Apr 2004 08:23:52 +0000 (08:23 +0000)]
Forgot to mention the info backend in the command-line help. Oops.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4055 cda61777-01e9-0310-a592-d414129be87e

20 years agoForgot to mention the info backend in the man page.
simon [Sat, 10 Apr 2004 13:14:56 +0000 (13:14 +0000)]
Forgot to mention the info backend in the man page.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4054 cda61777-01e9-0310-a592-d414129be87e

20 years agoThe Emacs and Jed info readers don't like my index format: Info menu
simon [Sat, 10 Apr 2004 12:55:06 +0000 (12:55 +0000)]
The Emacs and Jed info readers don't like my index format: Info menu
items of the form `* stuff: Section 1.2.' are parsed by standalone
info as `Section 1.2' followed by a period, but are parsed by other
readers as `Section 1' followed by a period and then some spare
text. Therefore, I've changed strategy, and the index is now full of
*Note cross-references rather than menu items. On the plus side,
this means there are no longer any special characters which we can't
tolerate in an index entry; on the minus side, my shiny new
infrastructure for tracking the filepos of index entries is now
rendered pointless. I'll leave it in, though, since it may come in
handy again.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4053 cda61777-01e9-0310-a592-d414129be87e

20 years agoAdd documentation for the info backend.
simon [Sat, 10 Apr 2004 09:48:28 +0000 (09:48 +0000)]
Add documentation for the info backend.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4052 cda61777-01e9-0310-a592-d414129be87e

20 years agoInfo backend now takes care to avoid magic characters in node names
simon [Sat, 10 Apr 2004 08:59:19 +0000 (08:59 +0000)]
Info backend now takes care to avoid magic characters in node names
and index terms (the Info format doesn't like them). In the course
of this I've had to introduce some infrastructure for carrying a
filepos forward from the definition of every RHS index term so that
a particular backend can provide a usefully localised report of
which index term had a problem.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4051 cda61777-01e9-0310-a592-d414129be87e

20 years agoIt would probably help to add a test of the INFO-DIR-ENTRY mechanism
simon [Fri, 9 Apr 2004 18:47:33 +0000 (18:47 +0000)]
It would probably help to add a test of the INFO-DIR-ENTRY mechanism
to the test file. Ahem.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4050 cda61777-01e9-0310-a592-d414129be87e

20 years agoAdd a config directive to generate the INFO-DIR-ENTRY things that
simon [Fri, 9 Apr 2004 18:43:02 +0000 (18:43 +0000)]
Add a config directive to generate the INFO-DIR-ENTRY things that
appear to be used to automatically construct /usr/info/dir.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4049 cda61777-01e9-0310-a592-d414129be87e

20 years agoWhy hadn't I got round to creating a .cvsignore in the main source
simon [Fri, 9 Apr 2004 18:17:26 +0000 (18:17 +0000)]
Why hadn't I got round to creating a .cvsignore in the main source
directory before? Silly me.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4048 cda61777-01e9-0310-a592-d414129be87e

20 years agoAdded an info(1) backend, which constructs .info files directly
simon [Fri, 9 Apr 2004 18:16:43 +0000 (18:16 +0000)]
Added an info(1) backend, which constructs .info files directly
without going through the .texi source stage. A few things left to
do, notably documentation, but the basics all seem to be there.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4047 cda61777-01e9-0310-a592-d414129be87e

20 years agoAhem; let's have all the man page headings at the same level!
simon [Thu, 8 Apr 2004 15:26:25 +0000 (15:26 +0000)]
Ahem; let's have all the man page headings at the same level!

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4045 cda61777-01e9-0310-a592-d414129be87e

20 years agoAdd a horrid md5sum manifest mechanism similar to the one I used in
simon [Thu, 8 Apr 2004 15:04:40 +0000 (15:04 +0000)]
Add a horrid md5sum manifest mechanism similar to the one I used in
the Unix PuTTY archive, to automatically generate version numbers
for Halibut release builds.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4044 cda61777-01e9-0310-a592-d414129be87e

20 years agoAdd installation instructions.
simon [Thu, 8 Apr 2004 14:40:14 +0000 (14:40 +0000)]
Add installation instructions.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4043 cda61777-01e9-0310-a592-d414129be87e

20 years agoAdd a man page.
simon [Thu, 8 Apr 2004 14:37:56 +0000 (14:37 +0000)]
Add a man page.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4042 cda61777-01e9-0310-a592-d414129be87e

20 years agoJacob pointed out various important facts missing from the Halibut
simon [Sun, 4 Apr 2004 12:10:49 +0000 (12:10 +0000)]
Jacob pointed out various important facts missing from the Halibut
manual. Added them.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4038 cda61777-01e9-0310-a592-d414129be87e

20 years agoLimit unicode hex to 4 digits
jacob [Fri, 2 Apr 2004 00:03:10 +0000 (00:03 +0000)]
Limit unicode hex to 4 digits

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4036 cda61777-01e9-0310-a592-d414129be87e

20 years agoStop \n clobbering \nocite (etc)
jacob [Thu, 1 Apr 2004 23:41:38 +0000 (23:41 +0000)]
Stop \n clobbering \nocite (etc)
Comments

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4035 cda61777-01e9-0310-a592-d414129be87e

20 years agoAdd stuff to butCmd para so that constructs like \c don't break inside
jacob [Thu, 1 Apr 2004 23:21:28 +0000 (23:21 +0000)]
Add stuff to butCmd para so that constructs like \c don't break inside
\quote{...}

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4034 cda61777-01e9-0310-a592-d414129be87e

20 years agoRestrict characters allowed in commands -- deals with "\date)."
jacob [Thu, 1 Apr 2004 23:06:46 +0000 (23:06 +0000)]
Restrict characters allowed in commands -- deals with "\date)."
Comments

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4033 cda61777-01e9-0310-a592-d414129be87e

20 years agoOops, fix bracing comment stuff.
jacob [Thu, 1 Apr 2004 22:52:46 +0000 (22:52 +0000)]
Oops, fix bracing comment stuff.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4032 cda61777-01e9-0310-a592-d414129be87e

20 years agoInline comments respect escaped braces.
jacob [Thu, 1 Apr 2004 22:50:12 +0000 (22:50 +0000)]
Inline comments respect escaped braces.
Special handling for \U so that it works. Tweak \title.
Make butTextArg transparent so that emphasis (e.g. in a header) shows
through.
Comment tweaks.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4031 cda61777-01e9-0310-a592-d414129be87e

20 years agotypo
jacob [Thu, 1 Apr 2004 22:21:23 +0000 (22:21 +0000)]
typo

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4030 cda61777-01e9-0310-a592-d414129be87e

20 years agoGCC 3.0 doesn't like you not including <string.h> if you use things in it.
james [Thu, 1 Apr 2004 18:03:26 +0000 (18:03 +0000)]
GCC 3.0 doesn't like you not including <string.h> if you use things in it.
We do, so let's.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4029 cda61777-01e9-0310-a592-d414129be87e

20 years agoFor some reason I decided it was better to say `output format'
simon [Thu, 1 Apr 2004 18:02:26 +0000 (18:02 +0000)]
For some reason I decided it was better to say `output format'
consistently in the documentation than to confuse matters by saying
`back end'. One rogue back end removed.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4028 cda61777-01e9-0310-a592-d414129be87e

20 years agoForgot to mention the default behaviour is to run all backends.
simon [Thu, 1 Apr 2004 18:01:54 +0000 (18:01 +0000)]
Forgot to mention the default behaviour is to run all backends.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4027 cda61777-01e9-0310-a592-d414129be87e

20 years agoHelp and usage messages.
simon [Thu, 1 Apr 2004 18:00:12 +0000 (18:00 +0000)]
Help and usage messages.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4026 cda61777-01e9-0310-a592-d414129be87e

20 years agoMake the command-line --licence option do something useful.
simon [Thu, 1 Apr 2004 17:55:57 +0000 (17:55 +0000)]
Make the command-line --licence option do something useful.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4025 cda61777-01e9-0310-a592-d414129be87e

20 years agoHaving done all these command-line options and new \cfg directives,
simon [Thu, 1 Apr 2004 17:54:54 +0000 (17:54 +0000)]
Having done all these command-line options and new \cfg directives,
I'd better document them...

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4024 cda61777-01e9-0310-a592-d414129be87e

20 years agoHomogenise the licence, and bring it up to date.
simon [Thu, 1 Apr 2004 17:36:42 +0000 (17:36 +0000)]
Homogenise the licence, and bring it up to date.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4023 cda61777-01e9-0310-a592-d414129be87e

20 years agoNow I've got a mechanism for formatting HTML file names to a
simon [Thu, 1 Apr 2004 17:32:13 +0000 (17:32 +0000)]
Now I've got a mechanism for formatting HTML file names to a
parametric template, reuse the same mechanism to allow the <a
name="..."> markers on each section to be parametrised as well. That
way, any user who so desires can arrange for everything in a section
URL to be constructed from internal keywords, making it pretty
robust against section numbering changes.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4019 cda61777-01e9-0310-a592-d414129be87e

20 years agoArrange a mechanism whereby each backend can be passed a filename
simon [Thu, 1 Apr 2004 17:22:56 +0000 (17:22 +0000)]
Arrange a mechanism whereby each backend can be passed a filename
from its command-line option (`--text=foo.txt') and automatically
convert it into one or more notional \cfg directives. In the HTML
case this mechanism enables single-file mode as well as setting the
filename.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4018 cda61777-01e9-0310-a592-d414129be87e

20 years agoAdd \cfg / -C directives to allow the user to choose the output file
simon [Thu, 1 Apr 2004 17:08:59 +0000 (17:08 +0000)]
Add \cfg / -C directives to allow the user to choose the output file
name (or name schema, in HTML).

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4017 cda61777-01e9-0310-a592-d414129be87e

20 years agoFix a couple of memory leaks in backends.
simon [Thu, 1 Apr 2004 17:01:10 +0000 (17:01 +0000)]
Fix a couple of memory leaks in backends.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4016 cda61777-01e9-0310-a592-d414129be87e

20 years agoOops, appendices.
jacob [Thu, 1 Apr 2004 01:12:21 +0000 (01:12 +0000)]
Oops, appendices.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4015 cda61777-01e9-0310-a592-d414129be87e

20 years agoInitial revision
jacob [Thu, 1 Apr 2004 01:02:43 +0000 (01:02 +0000)]
Initial revision

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4014 cda61777-01e9-0310-a592-d414129be87e

20 years agoAdd the -C command-line option, which allows arbitrary \cfg
simon [Wed, 31 Mar 2004 19:19:34 +0000 (19:19 +0000)]
Add the -C command-line option, which allows arbitrary \cfg
directives to be supplied on the Halibut command line.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4013 cda61777-01e9-0310-a592-d414129be87e

20 years agoMake a start on command-line options. Here I introduce --text,
simon [Wed, 31 Mar 2004 17:56:58 +0000 (17:56 +0000)]
Make a start on command-line options. Here I introduce --text,
--html, --winhelp and --man (plus spelling variations :-), which
allow you to choose to run only a subset of backends.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4012 cda61777-01e9-0310-a592-d414129be87e

20 years agoOops; uninitialised variable.
simon [Wed, 31 Mar 2004 17:56:22 +0000 (17:56 +0000)]
Oops; uninitialised variable.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4011 cda61777-01e9-0310-a592-d414129be87e

20 years agoAfter so much fuss was made about this being an _XHTML_ back end
simon [Wed, 31 Mar 2004 17:28:55 +0000 (17:28 +0000)]
After so much fuss was made about this being an _XHTML_ back end
rather than merely HTML, I thought it might be instructive to run it
through the W3C's XHTML validator. Consequent changes in this
checkin...

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4010 cda61777-01e9-0310-a592-d414129be87e

20 years agoBah, there's always one. Missing file.
simon [Tue, 30 Mar 2004 22:29:36 +0000 (22:29 +0000)]
Bah, there's always one. Missing file.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4007 cda61777-01e9-0310-a592-d414129be87e

20 years ago\lcont and \quote were being confused by whitespace (in particular,
simon [Tue, 30 Mar 2004 20:22:00 +0000 (20:22 +0000)]
\lcont and \quote were being confused by whitespace (in particular,
a single newline) immediately after their opening brace; this was
causing a normal paragraph to be started, thus making it fiddly and
annoying to arrange the first paragraph of a \lcont to be a code
para or anything else special. Now fixed.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4005 cda61777-01e9-0310-a592-d414129be87e

20 years agoFix index sorting so that it collates in a sensible order.
simon [Tue, 30 Mar 2004 20:12:37 +0000 (20:12 +0000)]
Fix index sorting so that it collates in a sensible order.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4004 cda61777-01e9-0310-a592-d414129be87e

20 years agoMake \ii work!
simon [Tue, 30 Mar 2004 20:01:44 +0000 (20:01 +0000)]
Make \ii work!

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4003 cda61777-01e9-0310-a592-d414129be87e

20 years agoThe navigation links now contain a link to the index page.
simon [Tue, 30 Mar 2004 19:49:42 +0000 (19:49 +0000)]
The navigation links now contain a link to the index page.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4002 cda61777-01e9-0310-a592-d414129be87e

20 years agoSimplify treatment of the copyright notice, now I've also simplified
simon [Tue, 30 Mar 2004 19:40:56 +0000 (19:40 +0000)]
Simplify treatment of the copyright notice, now I've also simplified
the preamble: \copyright paragraphs are now treated identically to
normal paragraphs (so they appear precisely where they're put
instead of in a fixed location), _except_ that the Windows Help
backend also copies their text into the help file's copyright slot.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4001 cda61777-01e9-0310-a592-d414129be87e

20 years agoI always meant to remove emphasis in the index by default. Now I do
simon [Tue, 30 Mar 2004 19:32:00 +0000 (19:32 +0000)]
I always meant to remove emphasis in the index by default. Now I do
so. It's restorable using \IM.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@4000 cda61777-01e9-0310-a592-d414129be87e

20 years agoThe manual is now fully indexed.
simon [Tue, 30 Mar 2004 19:22:19 +0000 (19:22 +0000)]
The manual is now fully indexed.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@3999 cda61777-01e9-0310-a592-d414129be87e

20 years agoCouple of extra points: forgot about the \i\cw special case, and
simon [Sat, 27 Mar 2004 17:09:13 +0000 (17:09 +0000)]
Couple of extra points: forgot about the \i\cw special case, and
Jacob points out that I didn't specify whether inline formatting
commands can surround line breaks (they can).

git-svn-id: svn://svn.tartarus.org/sgt/halibut@3994 cda61777-01e9-0310-a592-d414129be87e

20 years agoFix bug in HTML index generation: any index tags appearing in a
simon [Sat, 27 Mar 2004 09:59:41 +0000 (09:59 +0000)]
Fix bug in HTML index generation: any index tags appearing in a
section title (which is not remotely unreasonable) got index
references added to them not only when the section title was
processed as part of its section, but also when it was processed as
part of contents navigation displays - in which situation it tended
to cause a link to, for example, the last section in the _previous_
file. Now we keep constant track of whether or not we're supposed to
be indexing things as we process text.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@3991 cda61777-01e9-0310-a592-d414129be87e

20 years agoSecond instalment of the manual: added a chapter on output formats.
simon [Fri, 26 Mar 2004 18:18:57 +0000 (18:18 +0000)]
Second instalment of the manual: added a chapter on output formats.
I _think_ the manual now contains all the information a user should
need, even if not yet in an optimal order for a beginner to learn
from.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@3989 cda61777-01e9-0310-a592-d414129be87e

20 years agoIntroduce \. as a NOP command. The purpose of this is to act as a
simon [Thu, 25 Mar 2004 19:27:12 +0000 (19:27 +0000)]
Introduce \. as a NOP command. The purpose of this is to act as a
zero-width delimiter between a macro invocation and text beyond it,
so that you can define (say) a macro which expands to a Euro sign
and then write `\eur\.2500' to avoid having space between the Euro
sign and the number.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@3982 cda61777-01e9-0310-a592-d414129be87e

20 years agoObsoleted the `\preamble' command. Preamble text is now taken to be
simon [Thu, 25 Mar 2004 19:16:28 +0000 (19:16 +0000)]
Obsoleted the `\preamble' command. Preamble text is now taken to be
any ordinary displayable paragraph(s) appearing before the first
chapter heading, meaning in particular that you can put lists, code
paragraphs etc in preambles. Of course, `\preamble' is still
supported for backwards compatibility, but it's now a zero-effect
paragraph marker.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@3981 cda61777-01e9-0310-a592-d414129be87e

20 years agoFirst instalment of a manual for Halibut. This lot covers the
simon [Thu, 25 Mar 2004 18:33:02 +0000 (18:33 +0000)]
First instalment of a manual for Halibut. This lot covers the
(nearly nonexistent) invocation syntax and the input format.

git-svn-id: svn://svn.tartarus.org/sgt/halibut@3979 cda61777-01e9-0310-a592-d414129be87e