| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The escape-at-end-of-line fixes have the side effect
of adding some 20,000 blank lines to the HTML output
for the TXR man page.
The reason is that the logic is applied even within
macro expansions which have internal escapes.
we introduce a recursion depth variable which is
incremented for each call to scan_request.
The escnl flag is only set at recursion depth 0,
unless we are in no-fill mode. The exception for
no-fill mode is because there are a few cases where
macro-expansion produces nofill mode output, like
the .mets macro in the TXR man page.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous fix to this is incorrect. In the TXR man page,
cases of \*(TL at the end of a line are still run together
with the following material.
To set the escnl flag, we must not be looking at the HTML
output before the escape. That is not relevant. What we
need to know is whether the HTML output *of* the escape
ends in whitespace. If the output does not end in whitespace,
and the escape is at the end of a source line, then we set
the escnl flag.
The output of scan_scape is not going into intbuff; intbuff
is a local buffer in do_scan_troff. We must peek into
the global outbuffer.
Also, escnl needs to be cleared when processed.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
We need these because CSS is fussy when we use the :empty
selector.
|
|
|
|
|
|
|
|
|
| |
Changing into or out of fill out mode should not be resetting
to font 0; this is completely stupid. There is no such
semantics in troff. The TXR man page sets up a monospace font
around the verbatim blocks, which generates a <tt>.
But because of this behavior, that gets canceled with a </tt>
before switching to <pre>.
|
|
|
|
|
|
|
| |
- Get rid of compact attribute from <dl>.
- RS now generates a <dl class="indent">
- IP generates <dl class="items"> we can target with styling.
- IP without argument doesn't start definition list.
|
|
|
|
|
|
|
|
| |
When emitting a newline, if we are in no fill mode, we look
ahead. If there is another newline, we emit that also.
We don't preserve more than one extra newline.
This "surgically" fixes the problem of missing separating
lines in the code examplews in the TXR man page.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When scan_troff expands an escape, it calls FLUSHIBP, which
nukes all previous context. If the escape is subsequently
followed by a newline, it looks like the newline at the start
of a line, which is consumed. There is a subtlety there that
we also want to preserve a newline after an escape in
preformatted mode.
This fix addresses at least two issues in the TXR Man page.
One is that occurrences of the \*(TL and \*(TX at the ends of
lines are causing run-on output: the expansion gets glued to
the word which follows in the next line. The other issue
is that in some code exmaple blocks, lines ending in a
backslash (encoded as the \e escape) are being joined.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Useless misfeature.
|
|
|
|
| |
Do the substitution only if there are angle brackets around it: <foo@bar>
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This is because it has proportional spacing and fonts.
Code switched on .if t should be enabled.
|
|
|
|
|
| |
This font is used for CO and CI. It is useful for documenting
meta-identifiers in code.
|
|
|
|
| |
This so that the open definition lists are closed out.
|
|
|
|
|
|
|
| |
The add_index function's interface changes so that it returns
the result of scan_troff. The caller can use that instead of
doing a redundant scan_troff which causes trouble when the
text contains side effects like incrementing counters.
|
|
|
|
|
|
|
| |
Updating date of the man page and documenting extensions.
Changing .ab request to exit unsuccessfully.
Index generation needed to be trivially extended to handle more than two
levels.
|
|
|
|
|
|
|
| |
Premature free in the table code. Realloc logic in out_html was not
accounting for null byte that is appended into the globally visible
buffer elsewhere. Also, one byte overrun in string data compensated
by increasing the allocation when .de is processed.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The if/ie and else constructs must not destructively manipulate the
program source, since they can be involved in iteration; removing
the dubious assignment to c[-1] and *c.
The ifelseval variable should not be touched by while.
The ifelseval variable should be set at the last possible moment
by ie, because of nesting: the antecedent clause processed by ie
could itself clobber the variable.
|
|
|
|
|
|
|
|
|
|
| |
The argument line of a macro must be expanded first,
and then broken into words according to the original
quotes. For instance .mac \\$* passes multiple arguments,
not a single argument containing spaces. And
.mac "\\$*" must pass a single argument; moreover,
if \\$* expands into stuff that contains double quotes,
those should probably not be recognized.
|
| |
|
|
|
|
|
| |
man2html expands \$<digit> in code that is skipped conditionally,
so we cannot abort if digit >= args. Just expand to blank.
|
| |
|
|
|
|
| |
Make .$ correspond to the number of arguments in the macro call.
|
|
|
|
| |
This needs str_to_code to be expanded a little bit.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The \n interpolation was not working: not substituting
the result. When this logic was added, then this was happening
even during expression evaluation. The right fix seems to be that
scan_expression function needs to suppress output!
Implemented the .while operator. str_to_code needed to be fixed
so it only bangs together up to four characters, so that
we can recognize "while" as "whil". Hack hack!
Introduced the V4 macro for four character codes.
|
|
|
|
|
| |
The .ft directive was only accepting numeric arguments,
not symbolic font names like CO and P.
|
| |
|
|
|
|
|
|
|
| |
In this idiotic program, one-letter commands like .B arg or .B are blindly
encoded as a two byte code and so they have two codes, based on whether
the name is followed by a space or newline. We must preserve this behavior in
the str_to_code function, or else fix numerous places.
|
| |
|
|
|
|
|
|
|
| |
Macros can have up to four letter names, not just two.
The \f[..] parsing is fixed so inline font changes work.
The CR font is supported.
Crash fixed when the section table is empty.
|
|
|