Up to [cvsweb.bsd.lv] / docbook2mdoc
Request diff between arbitrary revisions
Default branch: MAIN
Revision 1.10 / (download) - annotate - [selected], Wed May 1 09:02:25 2019 UTC (5 years, 4 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_1_0,
HEAD
Changes since 1.9: +10 -6 lines
Diff to previous 1.9 (unified)
provide an -s command line option to override the section in .Dt
Revision 1.9 / (download) - annotate - [select for diffs], Wed May 1 07:14:17 2019 UTC (5 years, 4 months ago) by schwarze
Branch: MAIN
Changes since 1.8: +8 -4 lines
Diff to previous 1.8 (unified) to selected 1.10 (unified)
write a comment "automatically generated" at the beginning
Revision 1.8 / (download) - annotate - [select for diffs], Sun Apr 28 17:10:06 2019 UTC (5 years, 5 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_0_2
Changes since 1.7: +3 -1 lines
Diff to previous 1.7 (unified) to selected 1.10 (unified)
Start a reorg module, to edit and move around nodes between parsing and formatting. This helps because using queue macros is prone to bugs, but inspecting the resulting trees with a C debugger is quite hard. Using -T tree is much easier.
Revision 1.7 / (download) - annotate - [select for diffs], Sun Apr 28 15:03:29 2019 UTC (5 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.6: +2 -5 lines
Diff to previous 1.6 (unified) to selected 1.10 (unified)
In this program, there is never a need to survive memory allocation failure, and there are many places allocating memory. Consequently, the code can be simplified providing memory allocation functions that error out on failure, in the conventional way.
Revision 1.6 / (download) - annotate - [select for diffs], Fri Apr 12 19:14:50 2019 UTC (5 years, 5 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_0_1,
VERSION_1_0_0
Changes since 1.5: +30 -5 lines
Diff to previous 1.5 (unified) to selected 1.10 (unified)
Implement lint and tree dump output modes. Thanks to the previously committed node property infrastructure in node.c, this needs only 110 lines of code (including the license and the documentation).
Revision 1.5 / (download) - annotate - [select for diffs], Tue Apr 9 15:23:51 2019 UTC (5 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.4: +6 -6 lines
Diff to previous 1.4 (unified) to selected 1.10 (unified)
switch to mandoc(1)-style EXIT STATUS and DIAGNOSTICS
Revision 1.4 / (download) - annotate - [select for diffs], Mon Apr 8 22:47:34 2019 UTC (5 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.3: +23 -30 lines
Diff to previous 1.3 (unified) to selected 1.10 (unified)
Make the function parse_file() fit for recursion: * Save and restore reporting data around the read loop. * Open the file inside the function, not before calling it. * On the top level, change directory on a best-effort basis. * Finalize the parse tree only on the top level. No new functionality yet.
Revision 1.3 / (download) - annotate - [select for diffs], Thu Mar 28 12:21:10 2019 UTC (5 years, 6 months ago) by schwarze
Branch: MAIN
Changes since 1.2: +3 -3 lines
Diff to previous 1.2 (unified) to selected 1.10 (unified)
The expat library aborts parsing as soon as it encounters invalid input, and the basic design of the library practically precludes fixing it. However, whether the input is well-formed XML or not is totally irrelevant, and in fact, i have seen real-world documents from X.org that expat rejects as not well-formed. Kristaps reports the same from OpenGL. We really want to parse *ANYTHING* whatsoever without ever throwing a fatal error - after all, the point is to convert legacy documents to a better format, and nitpicking about the syntax merely alienates users (including myself). Consequently, ditch expat and write a parser from scratch, optimized for robustness on invalid input. Oh, and by the way, it only requires 200 lines of code, compared to 15,000 lines in expat - an economy of 98.5% at the sime time as being much more useful in practice.
Revision 1.2 / (download) - annotate - [select for diffs], Tue Mar 26 20:06:16 2019 UTC (5 years, 6 months ago) by schwarze
Branch: MAIN
Changes since 1.1: +8 -2 lines
Diff to previous 1.1 (unified) to selected 1.10 (unified)
Parsing errors are too easy to miss because they typically emit a one-line error message followed by lengthy formatted output of what was parsed before the error occurred. Make parsing errors more conspicious by taking two steps: 1. If there was a parsing error, print a blank line to standard output before starting formatted output, for better separation. 2. After the formatted output, if there was a parsing error, print the following to standard error: a blank line, a message that output is incomplete, and another blank line.
Revision 1.1 / (download) - annotate - [select for diffs], Tue Mar 26 18:32:07 2019 UTC (5 years, 6 months ago) by schwarze
Branch: MAIN
Diff to selected 1.10 (unified)
The program docbook2mdoc(1) has become large enough that splitting it into a number of logical components makes sense: node tree, parser, formatter, each with interface and implementation, and the main program. That way, it becomes easier to see what interacts with what, and what is independent of what.