CVS log for mandoc/html.c

[BACK] Up to [cvsweb.bsd.lv] / mandoc

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: MAIN


Revision 1.275 / (download) - annotate - [select for diffs], Thu Sep 9 14:47:24 2021 UTC (11 days, 17 hours ago) by schwarze
Branch: MAIN
CVS Tags: HEAD
Changes since 1.274: +2 -1 lines
Diff to previous 1.274 (unified)

If the layout or data of an individual cell in a tbl(7) contains
only "_", "-", or "=", requesting a horizontal line to be drawn
across the middle of the cell, print <hr/> in that cell in HTML
output.

That is arguably slightly ugly because HTML 5 regards <hr/> as
semantic markup, meaning "thematic break".  If somebody knowns
a better way to render a horizontal line across the middle of a
table cell with pure HTML and CSS, and without implying a specific
meaning, please tell me.

Missing feature reported by <Oliver dot Corff at email dot de>.

Revision 1.274 / (download) - annotate - [select for diffs], Tue Aug 10 12:55:03 2021 UTC (5 weeks, 6 days ago) by schwarze
Branch: MAIN
Changes since 1.273: +17 -5 lines
Diff to previous 1.273 (unified)

Support two-character font names (BI, CW, CR, CB, CI)
in the tbl(7) layout font modifier.

Get rid of the TBL_CELL_BOLD and TBL_CELL_ITALIC flags and use
the usual ESCAPE_FONT* enum mandoc_esc members from mandoc.h instead,
which simplifies and unifies some code.

While here, also support CB and CI in roff(7) \f escape sequences
and in roff(7) .ft requests for all output modes.  Using those is
certainly not recommended because portability is limited even with
groff, but supporting them makes some existing third-party manual
pages look better, in particular in HTML output mode.

Bug-compatible with groff as far as i'm aware, except that i consider
font names starting with the '\n' (ASCII 0x0a line feed) character
so insane that i decided to not support them.

Missing feature reported by nabijaczleweli dot xyz in
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=992002.
I used none of the code from the initial patch submitted by
nabijaczleweli, but some of their ideas.
Final patch tested by them, too.

Revision 1.273 / (download) - annotate - [select for diffs], Wed Jun 2 17:51:38 2021 UTC (3 months, 2 weeks ago) by schwarze
Branch: MAIN
Changes since 1.272: +3 -1 lines
Diff to previous 1.272 (unified)

In revision 1.157 of cgi.c, a meta viewport element was added to
the HTML output.  Let `mandoc -Thtml' behave the same, making the
generated HTML a bit more pleasant to view on a mobile device.
Patch from anton@.

Revision 1.272 / (download) - annotate - [select for diffs], Sun May 16 18:11:20 2021 UTC (4 months ago) by schwarze
Branch: MAIN
Changes since 1.271: +2 -1 lines
Diff to previous 1.271 (unified)

implement the tbl(7) layout modifiers "b" (bold) and "i" (italic)
in HTML output mode, similar to tbl_term.c, function tbl_word();
issue reported by Oliver dot Corff at email dot de

Revision 1.271 / (download) - annotate - [select for diffs], Fri Oct 16 17:22:43 2020 UTC (11 months ago) by schwarze
Branch: MAIN
Changes since 1.270: +2 -2 lines
Diff to previous 1.270 (unified)

In HTML output, avoid printing a newline right after <pre>
and right before </pre> because that resulted in vertical
whitespace not requested by the manual page author.

Formatting bug reported by
Aman Verma <amanraoverma plus vim at gmail dot com> on discuss@.

Revision 1.270 / (download) - annotate - [select for diffs], Mon Apr 20 13:07:24 2020 UTC (17 months ago) by schwarze
Branch: MAIN
Changes since 1.269: +4 -3 lines
Diff to previous 1.269 (unified)

In fragment identifiers, use ~%d for ordinal suffixes,
and reserve the character '~' for that purpose.

Bug found by validator.w3.org in openssl(1), which contains both a
tag "tls1_2" and a second instance of a tag "tls1", which also resulted
in "tls1_2", causing a clash.  Now, the second instance of "tls1" is
rendered as "tls1~2" instead, employing the newly reserved '~'.

Revision 1.269 / (download) - annotate - [select for diffs], Sun Apr 19 15:16:56 2020 UTC (17 months ago) by schwarze
Branch: MAIN
Changes since 1.268: +40 -34 lines
Diff to previous 1.268 (unified)

Correctly handle non-unique tags even when NODE_ID and NODE_HREF fall
apart, NODE_ID occurring earlier than NODE_HREF.

Revision 1.268 / (download) - annotate - [select for diffs], Sat Apr 18 20:40:10 2020 UTC (17 months ago) by schwarze
Branch: MAIN
Changes since 1.267: +21 -4 lines
Diff to previous 1.267 (unified)

When a .Tg is attached to a paragraph, attach the permalink
to the first word, or the first few words if they are short.

Revision 1.267 / (download) - annotate - [select for diffs], Wed Apr 8 11:56:03 2020 UTC (17 months, 1 week ago) by schwarze
Branch: MAIN
Changes since 1.266: +3 -3 lines
Diff to previous 1.266 (unified)

Use a separate node->tag attribute rather than abusing the node->string
attribute for the purpose.  No functional change intended.
The purpose is to make it possible to later attach tags to text nodes.

Revision 1.266 / (download) - annotate - [select for diffs], Tue Apr 7 22:56:02 2020 UTC (17 months, 2 weeks ago) by schwarze
Branch: MAIN
Changes since 1.265: +11 -7 lines
Diff to previous 1.265 (unified)

Separate the place to put the <a href> permalink (now marked
with NODE_HREF) from the target element of the link (still marked
with NODE_ID).  In many cases, use this to move the target to the
beginning of the paragraph, such that readers don't get dropped
into the middle of a sentence.

Revision 1.265 / (download) - annotate - [select for diffs], Mon Apr 6 10:16:17 2020 UTC (17 months, 2 weeks ago) by schwarze
Branch: MAIN
Changes since 1.264: +17 -6 lines
Diff to previous 1.264 (unified)

Support manual tagging of .Pp, .Bd, .D1, .Dl, .Bl, and .It.
In HTML output, improve the logic for writing inside permalinks:
skip them when there is no child content or when there is a risk
that the children might contain flow content.

Revision 1.264 / (download) - annotate - [select for diffs], Fri Mar 13 15:32:28 2020 UTC (18 months, 1 week ago) by schwarze
Branch: MAIN
Changes since 1.263: +68 -10 lines
Diff to previous 1.263 (unified)

Split tagging into a validation part including prioritization
in tag.{h,c} and {mdoc,man}_validate.c
and into a formatting part including command line argument checking
in term_tag.{h,c}, html.c, and {mdoc|man}_{term|html}.c.

Immediate functional benefits include:
* Improved prioritization of automatic tags for .Em and .Sy.
* Avoiding bogus automatic tags when .Em, .Fn, or .Sy are explicitly tagged.
* Explicit tagging of .Er and .Fl now works in HTML output.
* Automatic tagging of .IP and .TP now works in HTML output.
But mainly, this patch provides clean earth to build further improvements on.

Technical changes:
* Main program: Write a tag file for ASCII and UTF-8 output only.
* All formatters: There is no more need to delay writing the tags.
* mdoc(7)+man(7) formatters: No more need for elaborate syntax tree inspection.
* HTML formatter: If available, use the "string" attribute as the tag.
* HTML formatter: New function to write permalinks, to reduce code duplication.

Style cleanup in the vicinity while here:
* mdoc(7) terminal formatter: To set up bold font for children,
defer to termp_bold_pre() rather than calling term_fontpush() manually.
* mdoc(7) terminal formatter: Garbage collect some duplicate functions.
* mdoc(7) HTML formatter: Unify <code> handling, delete redundant functions.
* Where possible, use switch statements rather than if cascades.
* Get rid of some more Yoda notation.

The necessity for such changes was first discussed with kn@, but i didn't
bother him with a request to review the resulting -673/+782 line patch.

Revision 1.263 / (download) - annotate - [select for diffs], Thu Feb 27 22:28:13 2020 UTC (18 months, 3 weeks ago) by schwarze
Branch: MAIN
Changes since 1.262: +3 -3 lines
Diff to previous 1.262 (unified)

The HTML standard does not allow self-closing syntax for non-void elements.
Consequently, write an explicit end tag for <mark> elements.

Revision 1.262 / (download) - annotate - [select for diffs], Sun Jan 19 18:02:00 2020 UTC (20 months ago) by schwarze
Branch: MAIN
Changes since 1.261: +2 -1 lines
Diff to previous 1.261 (unified)

Introduce a new mdoc(7) macro .Tg ("tag") to explicitly mark a place
as defining a term.  Please only use it when automatic tagging does
not work.  Manual page authors will not be required to add the new
macro; using it remains optional.  HTML output is still rudimentary
in this version and will be polished later.

Thanks to kn@ for reminding me that i have been considering since
BSDCan 2014 whether something like this might be useful.  Given
that possibilities of making automatic tagging better are running
out and there are still several situations where automatic tagging
cannot do the job, i think the time is now ripe.

Feedback and no objection from millert@; OK espie@ inoguchi@ kn@.

Revision 1.261 / (download) - annotate - [select for diffs], Thu Sep 5 13:35:04 2019 UTC (2 years ago) by schwarze
Branch: MAIN
Changes since 1.260: +5 -8 lines
Diff to previous 1.260 (unified)

Do not clear HTML_NOSPACE in print_indent().
I don't think there ever was a reason for doing so.

Besides, there is a discrepacy with respect to the point in the
document affected.  That flag controls whitespace at the current
formatting point.  But when HTML_BUFFER is in effect, the line break
and indentation is typically inserted one word further to the left.
Anything happening at that point to the left can't reasonably
influence spacing at the different point further to the right.

Among other effects, this change avoids some spurious line breaks
in HTML code at points where they weren't supposed to happen, line
breaks that in some cases caused undesirable, visible whitespace
when the resulting HTML was rendered.

Revision 1.260 / (download) - annotate - [select for diffs], Tue Sep 3 18:08:02 2019 UTC (2 years ago) by schwarze
Branch: MAIN
Changes since 1.259: +25 -2 lines
Diff to previous 1.259 (unified)

Wrap text and phrasing elements in paragraphs unless already
contained in flow containers; never put them directly into sections.
This helps to format paragraphs with the CSS class selector .Pp.

Suggested by bentley@ and also by Colin Watson <cjwatson at debian>
via Michael Stapelberg <stapelberg at debian>,
see https://github.com/Debian/debiman/issues/116

Revision 1.259 / (download) - annotate - [select for diffs], Tue Sep 3 12:31:05 2019 UTC (2 years ago) by schwarze
Branch: MAIN
Changes since 1.258: +11 -14 lines
Diff to previous 1.258 (unified)

Make html_close_paragraph() more versatile, more robust, less
dependent on individual HTML elements, and simpler: don't just close
<p>, <pre>, and <a>, but any element that establishes phrasing
context.  This doesn't change output for any OpenBSD manual page,
but it will allow using this function more safely and at more places
in the future.

Revision 1.258 / (download) - annotate - [select for diffs], Sun Sep 1 15:12:19 2019 UTC (2 years ago) by schwarze
Branch: MAIN
Changes since 1.257: +1 -2 lines
Diff to previous 1.257 (unified)

delete the TAG_IDIV crutch, which is no longer used

Revision 1.257 / (download) - annotate - [select for diffs], Thu Aug 29 17:57:29 2019 UTC (2 years ago) by schwarze
Branch: MAIN
Changes since 1.256: +40 -28 lines
Diff to previous 1.256 (unified)

In the HTML formatter, assert(3) that no HTML nesting violation occurs.
Tested on the complete manual page trees of Version 7 AT&T UNIX,
4.4BSD-Lite2, POSIX-2013, OpenBSD 2.2 to 6.5 and -current,
FreeBSD 10.0 to 12.0, NetBSD 6.1.5 to 8.1, DragonFly 3.8.2 to 5.6.1,
and Linux 4.05 to 5.02.

Revision 1.256 / (download) - annotate - [select for diffs], Fri Aug 2 17:06:04 2019 UTC (2 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.255: +7 -12 lines
Diff to previous 1.255 (unified)

minor sync of the inline stylesheet with mandoc.css:
delete unimportant .Pp rule and shorten overly specific selectors

Revision 1.255 / (download) - annotate - [select for diffs], Tue Apr 30 15:53:00 2019 UTC (2 years, 4 months ago) by schwarze
Branch: MAIN
Changes since 1.254: +26 -48 lines
Diff to previous 1.254 (unified)

In HTML output, allow switching the desired font for subsequent
text without printing an opening tag right away, and use that in
the .ft request handler.  While here, garbage collect redundant
enum htmlfont and reduce code duplication in print_text().
Fixing an assertion failure reported by Michael <Stapelberg at Debian>
in pmRegisterDerived(3) from libpcp3-dev.

Revision 1.254 / (download) - annotate - [select for diffs], Sun Mar 3 13:02:11 2019 UTC (2 years, 6 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_14_5
Changes since 1.253: +18 -7 lines
Diff to previous 1.253 (unified)

Reset HTML formatter state, in particular the id_unique hash,
after processing each manual page, such that the next page
starts from a clean state and doesn't continue suffix numbering.

Issue found while looking at https://github.com/Debian/debiman/issues/48
which was brought up by Orestis Ioannou <oorestisime at github>.

Revision 1.253 / (download) - annotate - [select for diffs], Fri Mar 1 10:57:17 2019 UTC (2 years, 6 months ago) by schwarze
Branch: MAIN
Changes since 1.252: +2 -1 lines
Diff to previous 1.252 (unified)

Wrap .Sh/.SH sections and .Ss/.SS subsections in HTML <section> elements
as recommended for accessibility by the HTML 5 standard.
Triggered by a similar, but slightly different suggestion
from Laura Morales <lauretas at mail dot com>.

Revision 1.252 / (download) - annotate - [select for diffs], Fri Jan 18 14:36:21 2019 UTC (2 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.251: +50 -42 lines
Diff to previous 1.251 (unified)

The .UR and .MT blocks in man(7) are represented by <a> elements
which establish phrasing context, but they can contain paragraph
breaks (which is relevant for terminal formatting, so we can't just
change the structure of the syntax tree), which are respresented
by <p> elements and cannot occur inside <a>.

Fix this by prematurely closing the <a> element in the HTML formatter.
This menas that the clickable text in HTML output is shorter than
what is represented as the link text in terminal output, but in
HTML, it is frankly impossible to have the clickable area of a
hyperlink extend across a paragraph break.  The difference in
presentation is not a major problem, and besides, paragraph breaks
inside .UR are rather poor style in the first place.

The implementation is quite tricky.  Naively closing out the <a>
prematurely would result in accessing a stale pointer when later
reaching the physical end of the .UR block.  So this commit separates
visual and structural closing of "struct tag" stack items.  Visual
closing means that the HTML element is closed but the "struct tag"
remains on the stack, to avoid later access to a stale pointer and
to avoid closing the same HTML element a second time later.

This also needs reference counting of pointers to "struct tag" stack
items because often more than one child holds a pointer to the same
parent item, and only the outermost child can safely do the physical
closing.

In the whole corpus of nearly half a million manual pages on
man.openbsd.org, this problem occurs in exactly one page: the
groff(1) version 1.20.1 manual contained in DragonFly-3.8.2, which
contains a formatting error triggering the bug.

Revision 1.251 / (download) - annotate - [select for diffs], Fri Jan 11 12:56:42 2019 UTC (2 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.250: +1 -7 lines
Diff to previous 1.250 (unified)

Remove the HTML title= attributes which harmed accessibility and
violated the principle of separation of content and presentation.
Instead, implement the tooltips purely in CSS.
Thanks to John Gardner <gardnerjohng at gmail dot com> for
suggesting most of the styling in the new ::before rules.

Revision 1.250 / (download) - annotate - [select for diffs], Mon Jan 7 07:26:29 2019 UTC (2 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.249: +11 -13 lines
Diff to previous 1.249 (unified)

Represent mdoc(7) .Pp (and .sp, and some SYNOPSIS and .Rs features)
by the <p> HTML element and use the html_fillmode() mechanism
for .Bd -unfilled, just like it was done for man(7) earlier, finally
getting rid both of the horrible <div class="Pp"></div> hack and
of the worst HTML syntax violations caused by nested displays.

Care is needed because in some situations, paragraphs have to remain
open across several subsequent macros, whereas in other situations,
they must get closed together with a block containing them.

Some implementation details include:
* Always close paragraphs before emitting HTML flow content.
* Let html_close_paragraph() also close <pre> for extra safety.
* Drop the old, now unused function print_paragraph().
* Minor adjustments in the top-level man(7) node formatter for symmetry.
* Bugfix: .Ss heads suspend no-fill mode, even though .Ss doesn't end it.
* Bugfix: give up on .Op semantic markup for now, see the comment.

Revision 1.249 / (download) - annotate - [select for diffs], Sun Jan 6 04:55:09 2019 UTC (2 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.248: +17 -2 lines
Diff to previous 1.248 (unified)

Finally, represent the man(7) .PP and .HP macros by the natural
choice, which is the <p> HTML element.  On top of the previous
fill-mode improvements, the key to making this possible is to
automatically close the <p> when required: before headers, subsequent
paragraphs, lists, indented blocks, synopsis blocks, tbl(7) blocks,
and before blocks using no-fill mode.

In man(7) documents, represent the .sp request by a blank line in
no-fill mode and in the same way as .PP in fill mode.

Revision 1.248 / (download) - annotate - [select for diffs], Sat Jan 5 09:14:44 2019 UTC (2 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.247: +34 -1 lines
Diff to previous 1.247 (unified)

Now that the NODE_NOFILL flag in the syntax tree is accurate,
use it in the man(7) HTML formatter rather than keeping fill mode
state locally, resulting in massive simplification (minus 40 LOC).

Move the html_fillmode() state handler function to the html.c module
such that both the man(7) and the roff(7) formatter (and in the future,
also the mdoc(7) formatter) can use it.  Give it a query mode, to be
invoked with TOKEN_NONE.

Revision 1.247 / (download) - annotate - [select for diffs], Sun Dec 16 00:17:02 2018 UTC (2 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.246: +3 -4 lines
Diff to previous 1.246 (unified)

Yet another round of improvements to manual font selection.

Unify handling of \f and .ft.
Support \f4 (bold+italic).
Support ".ft BI" and ".ft CW" for terminal output.
Support the .ft request in HTML output.
Reject the bogus fonts \f(C1, \f(C2, \f(C3, and \f(CP.
In regress.pl, only strip leading whitespace in math mode.

Revision 1.246 / (download) - annotate - [select for diffs], Sat Dec 15 19:30:26 2018 UTC (2 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.245: +6 -4 lines
Diff to previous 1.245 (unified)

Several improvements to escape sequence handling.

* Add the missing special character \_ (underscore).
* Partial implementations of \a (leader character)
and \E (uninterpreted escape character).
* Parse and ignore \r (reverse line feed).
* Add a WARNING message about undefined escape sequences.
* Add an UNSUPP message about unsupported escape sequences.
* Mark \! and \? (transparent throughput)
and \O (suppress output) as unsupported.
* Treat the various variants of zero-width spaces as one-byte escape
sequences rather than as special characters, to avoid defining bogus
forms with square brackets.
* For special characters with one-byte names, do not define bogus
forms with square brackets, except for \[-], which is valid.
* In the form with square brackets, undefined special characters do not
fall back to printing the name verbatim, not even for one-byte names.
* Starting a special character name with a blank is an error.
* Undefined escape sequences never abort formatting of the input
string, not even in HTML output mode.
* Document the newly handled escapes, and a few that were missing.
* Regression tests for most of the above.

Revision 1.245 / (download) - annotate - [select for diffs], Tue Dec 4 18:29:38 2018 UTC (2 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.244: +2 -5 lines
Diff to previous 1.244 (unified)

HTML syntax audit: render \p as <br/>, not as <div>.
It can occur anywhere, in particular in phrasing context.

Revision 1.244 / (download) - annotate - [select for diffs], Mon Nov 26 01:38:23 2018 UTC (2 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.243: +25 -16 lines
Diff to previous 1.243 (unified)

Support more than one style attribute one the same HTML element.
In fact, this is already required when a table uses non-default
horizontal and vertical alignment in the same cell.

Revision 1.243 / (download) - annotate - [select for diffs], Fri Nov 23 19:17:05 2018 UTC (2 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.242: +5 -2 lines
Diff to previous 1.242 (unified)

When a font escape appears in the middle of a string,
make sure it doesn't cause output of bogus whitespace.
Fixing a bug reported by Pali dot Rohar at gmail dot com.

Revision 1.242 / (download) - annotate - [select for diffs], Thu Oct 25 01:32:40 2018 UTC (2 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.241: +11 -1 lines
Diff to previous 1.241 (unified)

Implement the \f(CW and \f(CR (constant width font) escape sequences
for HTML output.  Somewhat relevant because pod2man(1) relies on this.
Missing feature reported by Pali dot Rohar at gmail dot com.

Note that constant width font was already correctly selected before
this when required by semantic markup.  Only attempting physical
markup with the low-level escape sequence was ineffective.

Revision 1.241 / (download) - annotate - [select for diffs], Tue Oct 2 14:56:47 2018 UTC (2 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.240: +3 -1 lines
Diff to previous 1.240 (unified)

Add an option -T html -O toc to add a brief table of contents near
the top of HTML pages containing at least two non-standard sections.
Suggested by Adam Kalisz and discussed with kristaps@ during EuroBSDCon 2018.

Revision 1.240 / (download) - annotate - [select for diffs], Tue Oct 2 12:33:37 2018 UTC (2 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.239: +19 -3 lines
Diff to previous 1.239 (unified)

Support a second argument to -O man,
selecting the format according to local existence of the file.
Suggested by kristaps@ during EuroBSDCon 2018.
Written on the train Frankfurt-Karlsruhe returning from EuroBSDCon.

Revision 1.239 / (download) - annotate - [select for diffs], Thu Aug 16 13:54:06 2018 UTC (3 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.238: +4 -1 lines
Diff to previous 1.238 (unified)

Implement the \*(.T predefined string (interpolate device name)
by allowing the preprocessor to pass it through to the formatters.
Used for example by the groff_char(7) manual page.

Revision 1.238 / (download) - annotate - [select for diffs], Mon Jun 25 16:54:59 2018 UTC (3 years, 2 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_14_4
Changes since 1.237: +18 -139 lines
Diff to previous 1.237 (unified)

Delete substantial amounts of code
now that we no longer use variable style= attributes.

Revision 1.237 / (download) - annotate - [select for diffs], Mon Jun 25 14:13:54 2018 UTC (3 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.236: +3 -11 lines
Diff to previous 1.236 (unified)

Delete support for style=margin-left attributes, which are no longer used.

Revision 1.236 / (download) - annotate - [select for diffs], Mon Jun 25 14:00:28 2018 UTC (3 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.235: +1 -41 lines
Diff to previous 1.235 (unified)

Delete support for style=width attributes, which are no longer used.

Revision 1.235 / (download) - annotate - [select for diffs], Mon Jun 25 13:45:57 2018 UTC (3 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.234: +1 -3 lines
Diff to previous 1.234 (unified)

Do not write <colgroup> elements.  Their only purpose is to enforce
author-specified column widths, which can harm responsive design and
provide no real benefit: HTML rendering engines usually do just
fine automatically selecting appropriate column widths.

Revision 1.234 / (download) - annotate - [select for diffs], Mon Jun 25 13:26:57 2018 UTC (3 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.233: +1 -4 lines
Diff to previous 1.233 (unified)

Delete support for the style=text-indent attribute, which is no longer used.

Revision 1.233 / (download) - annotate - [select for diffs], Mon Jun 18 01:49:15 2018 UTC (3 years, 3 months ago) by schwarze
Branch: MAIN
Changes since 1.232: +4 -1 lines
Diff to previous 1.232 (unified)

Revert previous: style=height is still used by roff_html.c, and it
doesn't actually harm responsive design, so keep it for now.
Bug reported in de.comp.os.unix.bsd via naddy@, thanks.

Revision 1.232 / (download) - annotate - [select for diffs], Sun Jun 10 16:47:15 2018 UTC (3 years, 3 months ago) by schwarze
Branch: MAIN
Changes since 1.231: +1 -4 lines
Diff to previous 1.231 (unified)

delete support for the HTML style=height property, which is no longer used

Revision 1.231 / (download) - annotate - [select for diffs], Tue May 29 02:10:10 2018 UTC (3 years, 3 months ago) by schwarze
Branch: MAIN
Changes since 1.230: +1 -12 lines
Diff to previous 1.230 (unified)

Delete support for the print_otag(sw) * and - modifiers,
which are no longer used because we write fewer style= attributes.

Revision 1.230 / (download) - annotate - [select for diffs], Mon May 28 14:13:36 2018 UTC (3 years, 3 months ago) by schwarze
Branch: MAIN
Changes since 1.229: +9 -3 lines
Diff to previous 1.229 (unified)

URL-fragment strings can only contain certain characters.
Fixing HTML syntax violations e.g. in pf.conf(5) and ifconfig(8)
reported by Anton Lazarov <lists at wrant dot com>.

Revision 1.229 / (download) - annotate - [select for diffs], Fri May 25 20:23:51 2018 UTC (3 years, 3 months ago) by schwarze
Branch: MAIN
Changes since 1.228: +45 -5 lines
Diff to previous 1.228 (unified)

Do not write duplicate id= attributes, they violate HTML syntax.
Append suffixes for disambiguation.  Issue first reported by Jakub
Klinkovsky <j dot l dot k at gmx dot com> (Arch Linux).

Revision 1.228 / (download) - annotate - [select for diffs], Mon May 21 01:11:31 2018 UTC (3 years, 4 months ago) by schwarze
Branch: MAIN
Changes since 1.227: +3 -1 lines
Diff to previous 1.227 (unified)

Use <span> for .Ms rather than <b>; discussed with John Gardner.

Revision 1.227 / (download) - annotate - [select for diffs], Mon May 21 00:30:23 2018 UTC (3 years, 4 months ago) by schwarze
Branch: MAIN
Changes since 1.226: +2 -2 lines
Diff to previous 1.226 (unified)

Use <span> for .Ad rather than <i>; also suggested by John Gardner.

Revision 1.226 / (download) - annotate - [select for diffs], Mon May 21 00:00:37 2018 UTC (3 years, 4 months ago) by schwarze
Branch: MAIN
Changes since 1.225: +3 -1 lines
Diff to previous 1.225 (unified)

Use <span> rather than abusing <i> for .Pa;
suggested by John Gardner <gardnerjohng at gmail dot com>.

Revision 1.225 / (download) - annotate - [select for diffs], Wed May 9 00:46:10 2018 UTC (3 years, 4 months ago) by schwarze
Branch: MAIN
Changes since 1.224: +4 -1 lines
Diff to previous 1.224 (unified)

Fix a long-standing issue:
Some macros (Nd, Oo) can contain blocks but rendered as elements that
can only contain phrasing content, resulting in invalid HTML nesting.
Switch them to <div>.
Also move the related "display: inline" style from the HTML to the CSS.

Reminded during a conversation with John Gardner.

Revision 1.224 / (download) - annotate - [select for diffs], Tue May 8 21:42:34 2018 UTC (3 years, 4 months ago) by schwarze
Branch: MAIN
Changes since 1.223: +5 -1 lines
Diff to previous 1.223 (unified)

Eliminate the class=It-* attributes.
Cleaner HTML, more idiomatic CSS, and minus 30 lines of C code.
Suggested by John Gardner <gardnerjohng at gmail dot com>.

Revision 1.223 / (download) - annotate - [select for diffs], Tue May 8 17:52:55 2018 UTC (3 years, 4 months ago) by schwarze
Branch: MAIN
Changes since 1.222: +7 -1 lines
Diff to previous 1.222 (unified)

Switch the emitted HTML element from <b> to <code> for the fixed
syntax element macros .Nm, .Fl, .Cm, .Ic, .In, .Fd, .Fn, and .Cd.
Adjust both the internal and external style sheets such that
rendering remains unchanged in typical browsers.

Based on feedback from John Gardner <gardnerjohng at gmail dot com>.

Revision 1.222 / (download) - annotate - [select for diffs], Tue May 1 23:36:55 2018 UTC (3 years, 4 months ago) by schwarze
Branch: MAIN
Changes since 1.221: +7 -6 lines
Diff to previous 1.221 (unified)

skip printing the embedded style sheet if an external style is referenced

Revision 1.221 / (download) - annotate - [select for diffs], Fri Apr 13 16:28:07 2018 UTC (3 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.220: +28 -2 lines
Diff to previous 1.220 (unified)

preserve comments before .Dd and .TH (typically Copyright and license)
in full HTML output, but not with -Ofragment, e.g. in man.cgi(8);
suggested by Thomas Klausner <wiz at NetBSD>

Revision 1.220 / (download) - annotate - [select for diffs], Wed Sep 6 16:24:25 2017 UTC (4 years ago) by schwarze
Branch: MAIN
Changes since 1.219: +3 -1 lines
Diff to previous 1.219 (unified)

fix a NULL pointer access on deroff() failure;
could be triggered with '.SS ""';
reported by Michael <Stapelberg at debian>

Revision 1.219 / (download) - annotate - [select for diffs], Sat Jul 15 17:57:51 2017 UTC (4 years, 2 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_14_3, VERSION_1_14_2
Changes since 1.218: +18 -14 lines
Diff to previous 1.218 (unified)

In .Bl -tag and -hang, do not print a margin-left style attribute
for each individual item if the -width argument matches the default
of 6n.  Suggested by Steffen Nurpmeso <steffen at sdaoden dot eu>
on <groff at GNU dot org> in April 2017.

Revision 1.218 / (download) - annotate - [select for diffs], Fri Jul 14 16:28:38 2017 UTC (4 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.217: +7 -2 lines
Diff to previous 1.217 (unified)

Fix an assertion failure triggered by print_otag("sw+-l", NULL).
Even though we skip the style when the argument is NULL,
we must still consume the options.
Not found with afl(1), but during manual testing of the previous patch...

Revision 1.217 / (download) - annotate - [select for diffs], Fri Jul 14 16:06:44 2017 UTC (4 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.216: +1 -12 lines
Diff to previous 1.216 (unified)

Handle .Bl -compact via CSS rather than writing individual style
attributes into .It blocks; suggested by Steffen Nurpmeso <steffen
at sdaoden dot eu> on <groff at GNU dot org> in April 2017.

Delete margin-bottom and margin-top style names and the 'v' argument
letter from print_otag() because they are no longer used.

Revision 1.216 / (download) - annotate - [select for diffs], Fri Jul 14 15:56:37 2017 UTC (4 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.215: +4 -4 lines
Diff to previous 1.215 (unified)

print HTML character references as 4+ digits hexadecimal, like Unicode;
from bentley@, tweaked by me

Revision 1.215 / (download) - annotate - [select for diffs], Fri Jun 23 02:32:12 2017 UTC (4 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.214: +2 -1 lines
Diff to previous 1.214 (unified)

Write text boxes as <mi>, <mn>, or <mo> as appropriate,
and write fontstyle or fontweight attributes where required.
Missing features reported by bentley@.

Revision 1.214 / (download) - annotate - [select for diffs], Wed Jun 14 01:31:26 2017 UTC (4 years, 3 months ago) by schwarze
Branch: MAIN
Changes since 1.213: +27 -8 lines
Diff to previous 1.213 (unified)

implement the roff(7) \p (break output line) escape sequence

Revision 1.213 / (download) - annotate - [select for diffs], Thu Jun 8 12:54:58 2017 UTC (4 years, 3 months ago) by schwarze
Branch: MAIN
Changes since 1.212: +5 -2 lines
Diff to previous 1.212 (unified)

make the internal a2roffsu() interface more powerful by returning
a pointer to the end of the parsed data, making it easier to
parse subsequent bytes

Revision 1.212 / (download) - annotate - [select for diffs], Sun May 14 12:27:28 2017 UTC (4 years, 4 months ago) by schwarze
Branch: MAIN
Changes since 1.211: +2 -2 lines
Diff to previous 1.211 (unified)

Tweak previous: tb@ noticed that some browser/font combinations
have so amazingly wide bold fonts (for the same nominal font size)
that adding 15% to the column width still isn't sufficient to make
text reliably fit, so go for 20%.

Revision 1.211 / (download) - annotate - [select for diffs], Fri May 12 17:58:21 2017 UTC (4 years, 4 months ago) by schwarze
Branch: MAIN
Changes since 1.210: +11 -5 lines
Diff to previous 1.210 (unified)

Make the tag column in .Bl -tag lists wider:
1. I forgot about the 2n padding between tag and body.
2. The factor 1.1 was too small for bold fold, make it *1.15 + 1n.
Ugliness spotted by tb@.

Revision 1.210 / (download) - annotate - [select for diffs], Wed Mar 15 11:29:53 2017 UTC (4 years, 6 months ago) by schwarze
Branch: MAIN
Changes since 1.209: +25 -2 lines
Diff to previous 1.209 (unified)

Minimal support for deep linking into man(7) pages.
As the man(7) language does not provide semantic markup,
only .SH, .SS, and .UR become anchors for now.

Revision 1.209 / (download) - annotate - [select for diffs], Tue Mar 14 01:35:15 2017 UTC (4 years, 6 months ago) by schwarze
Branch: MAIN
Changes since 1.208: +3 -1 lines
Diff to previous 1.208 (unified)

Slightly increase widths calculated from string lengths (mainly
for .Bl -tag lists and SYNOPSIS .Nm blocks), such that the text
still fits even if it is printed in bold font.
This is an ugly band aid - but implementing font-dependent width
measurements would be a major project and even more difficult
for HTML than for PostScript.

Issue reported by Jan Stary <hans at stare dot cz>.

Revision 1.208 / (download) - annotate - [select for diffs], Mon Mar 13 19:01:38 2017 UTC (4 years, 6 months ago) by schwarze
Branch: MAIN
Changes since 1.207: +13 -6 lines
Diff to previous 1.207 (unified)

Print title="..." in addition to id="..." attributes for macro keys
that can be searched for by apropos(1), such that you see the
semantic function in a tooltip when hovering with the mouse.

Revision 1.207 / (download) - annotate - [select for diffs], Sun Feb 5 20:22:04 2017 UTC (4 years, 7 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_14_1, VERSION_1_13
Changes since 1.206: +2 -1 lines
Diff to previous 1.206 (unified)

mark up .Ar, .Fa, .Va, .Ft, and .Vt with <var> rather than <i>;
suggested by bentley@ long ago, but needed lots of cleanup first

Revision 1.206 / (download) - annotate - [select for diffs], Sun Feb 5 19:29:19 2017 UTC (4 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.205: +2 -1 lines
Diff to previous 1.205 (unified)

for .Rs, use <cite>

Revision 1.205 / (download) - annotate - [select for diffs], Sun Feb 5 18:15:39 2017 UTC (4 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.204: +2 -2 lines
Diff to previous 1.204 (unified)

Improve <table> syntax:
The <col> element can only appear inside <colgroup>, so use <colgroup>.
The <tbody> element is optional and useless, so don't use it.
Even if we would ever need <thead> or <tfoot>, <tbody> would still be
optional and useless; besides, we will likely never need <thead> or <tfoot>,
simply because our languages don't support such functionality.

Revision 1.204 / (download) - annotate - [select for diffs], Sun Jan 29 14:02:41 2017 UTC (4 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.203: +10 -10 lines
Diff to previous 1.203 (unified)

eliminate one useless struct and one level of indirection;
no functional change

Revision 1.203 / (download) - annotate - [select for diffs], Sat Jan 28 22:36:38 2017 UTC (4 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.202: +51 -33 lines
Diff to previous 1.202 (unified)

Simplify usage of print_otag() even more:
accept NULL to skip the attribute or format.

Revision 1.202 / (download) - annotate - [select for diffs], Thu Jan 26 18:28:18 2017 UTC (4 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.201: +2 -3 lines
Diff to previous 1.201 (unified)

Fix -man -Thtml formatting after .nf (which has nothing to do
with "literal", by the way, it means "no fill"):

* Use <pre> such that whitespace is preserved.
* Preserve lines breaks.
* For font alternating macros, avoid node recursion which required
scary juggling with the fill state.  Instead, simply print the text
children directly.

Missing feature first noticed by kristaps@ in 2011,
the again reported by afresh1@ in 2016,
and finally reported here: https://github.com/Debian/debiman/issues/21 ,
which i only found because of Shane Kerr's comment here:
https://plus.google.com/110314300533310775053/posts/H1eaw9Yskoc

Revision 1.201 / (download) - annotate - [select for diffs], Wed Jan 25 02:14:43 2017 UTC (4 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.200: +4 -1 lines
Diff to previous 1.200 (unified)

Improve HTML formatting of .Bl -tag.

In particular, when using the style sheet, put the body on the same
line as the head for short heads, or on the next line for long
heads, in a way that preserves both correct indentation and correct
vertical spacing with and without -compact, and with one or more
heads per body (hi, Zaphod) - eight use cases so far - and with and
without -tag, and with and without -offset, 32 use cases grand total.

Using many ideas from zhuk@, from <David dot Dahlberg at fkie dot
fraunhofer dot de>, and from Benny Lofgren <bl dash lists at lofgren
dot biz>, and a few of my own.

This is an excellent demonstration that CSS is an extremely hostile
language, much more trapful and much harder to use than, say, C.
When matthew@ reported this in July 2014 (!), it was already a known
issue, and i no longer remember for how long.  My first serious
attempt at fixing it (in November 2015) failed miserably.  I'd love
to see simplifications of both the generated HTML code and of the
style sheet, but without breaking any of the 32 use cases, please.

Revision 1.200 / (download) - annotate - [select for diffs], Sat Jan 21 02:29:57 2017 UTC (4 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.199: +1 -5 lines
Diff to previous 1.199 (unified)

slightly simplify header and footer styles

Revision 1.199 / (download) - annotate - [select for diffs], Thu Jan 19 16:59:30 2017 UTC (4 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.198: +1 -2 lines
Diff to previous 1.198 (unified)

clean up markup of .Bd, .D1, .Dl, .Li, and .Ql;
in particular, stop abuse of <blockquote>

Revision 1.198 / (download) - annotate - [select for diffs], Thu Jan 19 15:27:34 2017 UTC (4 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.197: +3 -3 lines
Diff to previous 1.197 (unified)

Clean up CSS rules for sections and paragraphs.
Start using real macro names for CSS classes.

Revision 1.197 / (download) - annotate - [select for diffs], Thu Jan 19 01:00:14 2017 UTC (4 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.196: +171 -65 lines
Diff to previous 1.196 (unified)

Implement line breaking of the generated HTML code at space characters
in filled text.  This does not affect HTML semantics, but makes the
HTML code even more humanly readable.

While here,
- collapse multiple consecutive space characters in filled text
- and insert a blank between style entries.

Revision 1.196 / (download) - annotate - [select for diffs], Wed Jan 18 19:22:21 2017 UTC (4 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.195: +144 -77 lines
Diff to previous 1.195 (unified)

Make HTML output more human readable by overhauling line break logic
around tags and by introducing some simple indentation.
No change of HTML semantics intended.

Revision 1.195 / (download) - annotate - [select for diffs], Tue Jan 17 15:32:43 2017 UTC (4 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.194: +73 -155 lines
Diff to previous 1.194 (unified)

Completely delete the buf field of struct html and all the buf*()
interfaces.  Such a static buffer was a bad idea in the first place,
causing unfixable truncation that was only prevented by triggering
an assertion failure.  Instead, let the small number of remaining
users allocate and free their own, temporary dynamic buffers,
or for the case of .Xr and .In, pass the original data to be
assembled in print_otag().

Revision 1.194 / (download) - annotate - [select for diffs], Tue Jan 17 01:47:51 2017 UTC (4 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.193: +135 -50 lines
Diff to previous 1.193 (unified)

Simplify the usage of print_otag() by making it accept a variable
number of arguments.

Delete struct htmlpair and all the PAIR_*() macros.
Delete enum htmlattr, handle that in print_otag() instead.

Minus 190 lines of code; no functional change except better ordering
of attributes (class before style) in three cases.

Revision 1.193 / (download) - annotate - [select for diffs], Sun Jan 8 16:38:26 2017 UTC (4 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.192: +2 -2 lines
Diff to previous 1.192 (unified)

style: missing blank between case statement and label;
from Tiago Silva <tiagofilipesilva at icloud dot com> long ago

Revision 1.192 / (download) - annotate - [select for diffs], Mon Jan 4 12:45:29 2016 UTC (5 years, 8 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_13_4
Changes since 1.191: +4 -4 lines
Diff to previous 1.191 (unified)

Generate simpler in-page links: just replace spaces with underscores.
Patch from bentley@.

Revision 1.191 / (download) - annotate - [select for diffs], Tue Oct 13 22:59:54 2015 UTC (5 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.190: +3 -5 lines
Diff to previous 1.190 (unified)

Major character table cleanup:
* Use ohash(3) rather than a hand-rolled hash table.
* Make the character table static in the chars.c module:
There is no need to pass a pointer around, we most certainly
never want to use two different character tables concurrently.
* No need to keep the characters in a separate file chars.in;
that merely encourages downstream porters to mess with them.
* Sort the characters to agree with the mandoc_chars(7) manual page.
* Specify Unicode codepoints in hex, not decimal (that's the detail
that originally triggered this patch).
No functional change, minus 100 LOC, and i don't see a performance change.

Revision 1.190 / (download) - annotate - [select for diffs], Mon Oct 12 00:15:31 2015 UTC (5 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.189: +2 -2 lines
Diff to previous 1.189 (unified)

Fix an obvious bug found during the /* FALLTHROUGH */ cleanup:
ASCII_NBRSP has to be rendered as "&nbsp;", not "-".

Revision 1.189 / (download) - annotate - [select for diffs], Mon Oct 12 00:08:15 2015 UTC (5 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.188: +2 -11 lines
Diff to previous 1.188 (unified)

To make the code more readable, delete 283 /* FALLTHROUGH */ comments
that were right between two adjacent case statement.  Keep only
those 24 where the first case actually executes some code before
falling through to the next case.

Revision 1.188 / (download) - annotate - [select for diffs], Tue Oct 6 18:32:19 2015 UTC (5 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.187: +8 -8 lines
Diff to previous 1.187 (unified)

modernize style: "return" is not a function

Revision 1.187 / (download) - annotate - [select for diffs], Sat Sep 26 00:54:03 2015 UTC (5 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.186: +1 -2 lines
Diff to previous 1.186 (unified)

/* NOTREACHED */ after abort() is silly, delete it

Revision 1.186 / (download) - annotate - [select for diffs], Fri Mar 27 21:33:20 2015 UTC (6 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.185: +10 -29 lines
Diff to previous 1.185 (unified)

Actually use the new man.conf(5) "output" directive.
Additional functionality, yet minus 45 lines of code.

Revision 1.185 / (download) - annotate - [select for diffs], Wed Jan 21 20:33:25 2015 UTC (6 years, 8 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_13_3
Changes since 1.184: +9 -2 lines
Diff to previous 1.184 (unified)

Rudimentary implementation of the roff(7) \o escape sequence (overstrike).
This is of some relevance because the pod2man(1) preamble abuses it
for the icelandic letter Thorn, instead of simply using \(TP and \(Tp.
Missing feature found by sthen@ in DateTime::Locale::is_IS(3p).

Revision 1.184 / (download) - annotate - [select for diffs], Sat Dec 20 00:20:11 2014 UTC (6 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.183: +19 -27 lines
Diff to previous 1.183 (unified)

resolve some code duplication; no functional change

Revision 1.183 / (download) - annotate - [select for diffs], Tue Dec 2 10:08:06 2014 UTC (6 years, 9 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_13_2
Changes since 1.182: +3 -2 lines
Diff to previous 1.182 (unified)

Fix the implementation and documentation of \c (continue text input line).
In particular, make it work in no-fill mode, too.
Reminded by Carsten dot Kunze at arcor dot de (Heirloom roff).

Revision 1.182 / (download) - annotate - [select for diffs], Mon Dec 1 04:34:06 2014 UTC (6 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.181: +1 -2 lines
Diff to previous 1.181 (unified)

The header libmandoc.h is part of the internal parser interface,
but html.c is not part of the parser at all, so it cannot include
that header, and actually, it doesn't need it.
Found while auditing includes after Theo's recent *.h commit.

Revision 1.181 / (download) - annotate - [select for diffs], Wed Oct 29 00:17:43 2014 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.180: +7 -4 lines
Diff to previous 1.180 (unified)

In terminal output, unify handling of Unicode and numbered character
escape sequences just like it was earlier implemented for -Thtml.
Do not let control characters other than ASCII 9 (horizontal tab)
propagate to the output, even though groff allows them; but that
really doesn't look like a great idea.

Let mchars_num2char() return int such that we can distinguish invalid \N
syntax from \N'0'.  This also reduces the danger of signed char issues
popping up.

Revision 1.180 / (download) - annotate - [select for diffs], Tue Oct 28 17:36:19 2014 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.179: +4 -22 lines
Diff to previous 1.179 (unified)

Make the character table available to libroff so it can check the
validity of character escape names and warn about unknown ones.
This requires mchars_spec2cp() to report unknown names again.
Fortunately, that doesn't require changing the calling code because
according to groff, invalid character escapes should not produce
output anyway, and now that we warn about them, that's fine.

Revision 1.179 / (download) - annotate - [select for diffs], Mon Oct 27 16:29:06 2014 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.178: +11 -23 lines
Diff to previous 1.178 (unified)

Handle output encoding for unicode, numbered and named escape sequences
in one common, safe way instead of three different ways.  In particular,
* skip NUL, it is used to mean "no output desired"
* deny 0x01-0x1F and 0x7F-0x9F, print REPLACEMENT CHARACTER instead
* print 0x20-0x7E literally or name-encoded, as required
* print characters above 0x9F numerically

Revision 1.178 / (download) - annotate - [select for diffs], Mon Oct 27 13:31:04 2014 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.177: +6 -5 lines
Diff to previous 1.177 (unified)

Fix a regression in term.c rev. 1.229 reported by bentley@:
In UTF-8 output, do not print anything if mchars_spec2cp() returns 0.
In particular, this repairs handling of zero-width spaces (\&).

While here, let mchars_spec2cp() return 0xFFFD instead of -1
if the character is not found, simplifying the using code.
In HTML output, do not print obfuscated ASCII characters and
do not test for one-char escapes, mchars_spec2cp() already does that.

Revision 1.177 / (download) - annotate - [select for diffs], Sun Oct 26 17:12:03 2014 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.176: +13 -3 lines
Diff to previous 1.176 (unified)

Improve -Tascii output for Unicode escape sequences: For the first 512
code points, provide ASCII approximations.  This is already much better
than what groff does, which prints nothing for most code points.

A few minor fixes while here:
* Handle Unicode escape sequences in the ASCII range.
* In case of errors, use the REPLACEMENT CHARACTER U+FFFD for -Tutf8
and the string "<?>" for -Tascii output.
* Handle all one-character escape sequences in mchars_spec2{cp,str}()
and remove the workarounds on the higher level.

Revision 1.176 / (download) - annotate - [select for diffs], Fri Oct 10 15:26:29 2014 UTC (6 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.175: +2 -2 lines
Diff to previous 1.175 (unified)

sync Copyright years after merge to OpenBSD; no code change

Revision 1.175 / (download) - annotate - [select for diffs], Fri Oct 10 08:44:24 2014 UTC (6 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.174: +2 -1 lines
Diff to previous 1.174 (unified)

Re-write of eqn(7) parser and MathML output.
This adds parser-level support for the grammar described by the eqn
second-edition technical paper, "Typesetting Mathematics — User's Guide"
(Kernighan, Cherry).
The reason for this re-write is the grouping rules, which were not
possible given the existing implementation.
The re-write has also considerably simplified the HTML (and, if it ever
is completed, terminal) front-end.

Revision 1.174 / (download) - annotate - [select for diffs], Sun Sep 28 20:14:20 2014 UTC (6 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.173: +4 -1 lines
Diff to previous 1.173 (unified)

Change "to" and "from" commands to use munder, mover, and munderover.

Revision 1.173 / (download) - annotate - [select for diffs], Sun Sep 28 11:33:15 2014 UTC (6 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.172: +16 -1 lines
Diff to previous 1.172 (unified)

Add support for some MathML elements and attributes in our HTML5.

Revision 1.172 / (download) - annotate - [select for diffs], Sat Sep 27 11:17:19 2014 UTC (6 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.171: +8 -15 lines
Diff to previous 1.171 (unified)

Don't pretend we have a separate XHTML and HTML mode any more.

Revision 1.171 / (download) - annotate - [select for diffs], Sat Sep 27 10:56:18 2014 UTC (6 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.170: +15 -3 lines
Diff to previous 1.170 (unified)

Remove <p> in favour of <div class="spacer">.
This is good because <p> is brittle: it can't appear within other block
macros.
This fixes a regression of the original HTML5 patch as noted by schwarze@
on the tech@ list, 14/8/2014.

Revision 1.170 / (download) - annotate - [select for diffs], Sat Sep 27 09:26:01 2014 UTC (6 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.169: +4 -3 lines
Diff to previous 1.169 (unified)

Remove last hard-coded width attribute.

Revision 1.169 / (download) - annotate - [select for diffs], Sat Sep 27 09:20:03 2014 UTC (6 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.168: +3 -3 lines
Diff to previous 1.168 (unified)

HTML5-isation: remove more alignments.

Revision 1.168 / (download) - annotate - [select for diffs], Sat Sep 27 09:13:39 2014 UTC (6 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.167: +6 -2 lines
Diff to previous 1.167 (unified)

Continue in HTML5-ing by kicking out some hard-coded alignments.

Revision 1.167 / (download) - annotate - [select for diffs], Sat Sep 27 09:05:57 2014 UTC (6 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.166: +1 -2 lines
Diff to previous 1.166 (unified)

Kick out "summary" attribute, which isn't HTML5.

Revision 1.166 / (download) - annotate - [select for diffs], Sat Sep 27 09:03:24 2014 UTC (6 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.165: +1 -3 lines
Diff to previous 1.165 (unified)

Kick out two attibutes we don't use any more in HTML5.

Revision 1.165 / (download) - annotate - [select for diffs], Sat Sep 27 09:02:19 2014 UTC (6 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.164: +7 -1 lines
Diff to previous 1.164 (unified)

First, add space for default styling for HTML5 (non-fragment) output.
This uses a <style /> block right before the <link /> for the stylesheet.
Use this to kick out hardcoded header and footer table widths.

Revision 1.164 / (download) - annotate - [select for diffs], Sat Sep 27 08:54:34 2014 UTC (6 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.163: +6 -39 lines
Diff to previous 1.163 (unified)

First steps in HTML5: use UTF8 meta-charset and HTML5 doctype identifier.

Revision 1.163 / (download) - annotate - [select for diffs], Thu Aug 14 00:31:43 2014 UTC (7 years, 1 month ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_12_4, VERSION_1_12
Changes since 1.162: +1 -2 lines
Diff to previous 1.162 (unified)

Revert previous, as requested by kristaps@.
The .Bf block can contain subblocks, so it has to render as an
element that can contain flow content.  But <em> cannot contain
flow content, only phrasing content.  Rendering .Em and .Bf differently
would by unfortunate, and closing out .Bf before subblocks and
re-opening it afterwards would merely complicate both the C code
of the program and the generated HTML code.  Besides, converting
.Em to semantic HTML markup would require some content to be put
into <em> and some into <i>, but we cannot automatically distinguish
which is which, so strictly speaking, we can't use semantic HTML
here but have to fall back to physical markup.  Wonders of HTML...

Revision 1.162 / (download) - annotate - [select for diffs], Wed Aug 13 20:34:29 2014 UTC (7 years, 1 month ago) by kristaps
Branch: MAIN
Changes since 1.161: +3 -1 lines
Diff to previous 1.161 (unified)

Begin cleaning up scaling units.
Start with the horizontal terminal specifiers, making sure that they match
up with troff.
Then move on to PS, PDF, and HTML, noting that we stick to the terminal
default width for "u".
Lastly, fix some completely-wrong documentation and note that we diverge
from troff w/r/t "u".

Revision 1.161 / (download) - annotate - [select for diffs], Wed Aug 13 15:25:22 2014 UTC (7 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.160: +2 -1 lines
Diff to previous 1.160 (unified)

Use <em> for .Em and .Bf -emphasis.

The vast majority of .Em in real-world manuals is stress emphasis,
for which <em> is the correct markup.  Admittedly, there are some
instances of .Em usage for alternate quality, for which <i> would
be a better match.  Most of these are technical terms that neither
allow semantic markup nor are keywords - for the latter, .Sy would
be preferable.  A typical example is that the shell breaks input into
.Em words .
Alternate voice or mood, which would also require <i>, is almost
absent from manuals.
We cannot satisfy both stress emphasis and alternate quality, so
pick the one that fits more often and looks less wrong when off.

Patch from Guy Harris <guy at alum dot mit dot edu>.
ok joerg@ bentley@

Revision 1.160 / (download) - annotate - [select for diffs], Sun Aug 10 23:54:41 2014 UTC (7 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.159: +1 -3 lines
Diff to previous 1.159 (unified)

Get rid of HAVE_CONFIG_H, it is always defined; idea from libnbcompat.
Include <sys/types.h> where needed, it does not belong in config.h.
Remove <stdio.h> from config.h; if it is missing somewhere, it should
be added, but i cannot find a *.c file where it is missing.

Revision 1.159 / (download) - annotate - [select for diffs], Wed Jul 23 15:00:08 2014 UTC (7 years, 2 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_13_1
Changes since 1.158: +38 -27 lines
Diff to previous 1.158 (unified)

Security fix:
After decoding numeric (\N) and one-character (\<, \> etc.)
character escape sequences, do not forget to HTML-encode the
resulting ASCII character.  Malicious manuals were able to smuggle
XSS content by roff-escaping the HTML-special characters they need.
That's a classic bug type in many web applications, actually...  :-(

Found myself while auditing the HTML formatter for safe output handling.

Revision 1.158 / (download) - annotate - [select for diffs], Tue Jul 22 22:41:35 2014 UTC (7 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.157: +5 -2 lines
Diff to previous 1.157 (unified)

Security fix:
The function print_encode() is used both for plain text
and for quoted attribute values.
Escape the '"' character such that malicious manuals cannot pull off
XSS attacks using malformed .Lk, .Mt, .%U, and .UR macros (and maybe
others) to trigger the latter case.
In the former case, escaping does no harm.
Issue found by Sebastien Marie <semarie-openbsd at latrappe dot fr>.

Revision 1.157 / (download) - annotate - [select for diffs], Wed Apr 23 16:08:33 2014 UTC (7 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.156: +7 -1 lines
Diff to previous 1.156 (unified)

Audit strlcpy(3)/strlcat(3) usage.

* Repair three instances of silent truncation, use asprintf(3).
* Change two instances of strlen(3)+malloc(3)+strlcpy(3)+strlcat(3)+...
to use asprintf(3) instead to make them less error prone.
* Cast the return value of four instances where the destination
buffer is known to be large enough to (void).
* Completely remove three useless instances of strlcpy(3)/strlcat(3).
* Mark two places in -Thtml with XXX that can cause information loss
and crashes but are not easy to fix, requiring design changes of
some internal interfaces.
* The file mandocdb.c remains to be audited.

Revision 1.156 / (download) - annotate - [select for diffs], Sun Apr 20 16:46:04 2014 UTC (7 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.155: +59 -67 lines
Diff to previous 1.155 (unified)

KNF: case (FOO):  ->  case FOO:, remove /* LINTED */ and /* ARGSUSED */,
remove trailing whitespace and blanks before tabs, improve some indenting;
no functional change

Revision 1.155 / (download) - annotate - [select for diffs], Sun Mar 23 11:25:26 2014 UTC (7 years, 6 months ago) by schwarze
Branch: MAIN
Changes since 1.154: +2 -1 lines
Diff to previous 1.154 (unified)

The files mandoc.c and mandoc.h contained both specialised low-level
functions used for multiple languages (mdoc, man, roff), for example
mandoc_escape(), mandoc_getarg(), mandoc_eos(), and generic auxiliary
functions.  Split the auxiliaries out into their own file and header.
While here, do some #include cleanup.

Revision 1.154 / (download) - annotate - [select for diffs], Wed Jan 22 20:58:39 2014 UTC (7 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.153: +9 -3 lines
Diff to previous 1.153 (unified)

Implement the \: (optional line break) escape sequence,
documented in the Ossanna-Kernighan-Ritter troff manual
and also supported by groff.

Missing feature reported by Steffen Nurpmeso <sdaoden at gmail dot com>.

Revision 1.153 / (download) - annotate - [select for diffs], Sun Jan 5 19:10:56 2014 UTC (7 years, 8 months ago) by joerg
Branch: MAIN
Changes since 1.152: +2 -2 lines
Diff to previous 1.152 (unified)

Tag functions with format strings as arguments as printf-like.
Fix one case where a non-literal is used as format string.
Fix another case where a variable is formatted using the wrong type.

Revision 1.152 / (download) - annotate - [select for diffs], Thu Aug 8 20:07:47 2013 UTC (8 years, 1 month ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_12_3, VERSION_1_12_2
Changes since 1.151: +35 -10 lines
Diff to previous 1.151 (unified)

Implement the roff(7) font-escape sequence \f(BI "bold+italic".
This improves the formatting of about 40 base manuals
and reduces groff-mandoc formatting differences in base by about 5%.

Revision 1.151 / (download) - annotate - [select for diffs], Thu May 31 22:29:13 2012 UTC (9 years, 3 months ago) by schwarze
Branch: MAIN
Changes since 1.150: +58 -25 lines
Diff to previous 1.150 (unified)

Implement the roff \z escape sequence, intended to output the next
character without advancing the cursor position; implement it to
simply skip the next character, as it will usually be overwritten.

With this change, the pod2man(1) preamble user-defined string \*:,
intended to render as a diaeresis or umlaut diacritic above the
preceding character, is rendered in a slightly less ugly way,
though still not correctly.  It was rendered as "z.." and is now
rendered as ".".

Given that the definition of \*: uses elaborate manual \h positioning,
there is little chance for mandoc(1) to ever render it correctly,
but at least we can refrain from printing out a spurious "z", and
we can make the \z do something semi-reasonable for easier cases.

"just commit" kristaps@

Revision 1.150 / (download) - annotate - [select for diffs], Wed Oct 5 21:35:17 2011 UTC (9 years, 11 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_12_1, VERSION_1_12_0
Changes since 1.149: +7 -3 lines
Diff to previous 1.149 (unified)

Add the -Ofragment option to -T[]x]html.  This accomodates for embedding
manual output in existing HTML or XHTML documents, e.g., when invoking
mandoc from an SSI or CGI.

Revision 1.149 / (download) - annotate - [select for diffs], Thu Jul 7 14:34:11 2011 UTC (10 years, 2 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_11_7, VERSION_1_11_6, VERSION_1_11_5, VERSION_1_11_4
Changes since 1.148: +4 -2 lines
Diff to previous 1.148 (unified)

Fix handling of the `\c' escape in -T[x]html.

Revision 1.148 / (download) - annotate - [select for diffs], Mon Jul 4 09:42:38 2011 UTC (10 years, 2 months ago) by kristaps
Branch: MAIN
Changes since 1.147: +1 -2 lines
Diff to previous 1.147 (unified)

The bufcat() function in -T[x]html was eating one byte off the end of its
concatenated string.  This for some reason hasn't been found before now... ?
Anyway, fixed, and make the IDs created again be correctly prefixed by a
letter as per the HTML spec.

Revision 1.147 / (download) - annotate - [select for diffs], Tue May 24 21:40:14 2011 UTC (10 years, 4 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_11_3
Changes since 1.146: +6 -23 lines
Diff to previous 1.146 (unified)

Use the correct Unicode value for the zero-width space, which means that
spec2cp never needs to fall through to spec2str.  Then clean out html.c
of its unnecessary print_res() function.

Revision 1.146 / (download) - annotate - [select for diffs], Tue May 24 21:31:23 2011 UTC (10 years, 4 months ago) by kristaps
Branch: MAIN
Changes since 1.145: +1 -26 lines
Diff to previous 1.145 (unified)

Remove all references to ESCAPE_PREDEF, which is now not exposed passed
the libroff point.  This clears up a nice chunk of code.

Revision 1.145 / (download) - annotate - [select for diffs], Wed May 18 23:59:08 2011 UTC (10 years, 4 months ago) by kristaps
Branch: MAIN
Changes since 1.144: +5 -1 lines
Diff to previous 1.144 (unified)

Make any un-recognised font be considered a call for the Roman font.
This makes sequences of \f[unknown] \fP not completely puke.  From a
TODO by schwarze@.

Revision 1.144 / (download) - annotate - [select for diffs], Tue May 17 11:50:20 2011 UTC (10 years, 4 months ago) by kristaps
Branch: MAIN
Changes since 1.143: +9 -1 lines
Diff to previous 1.143 (unified)

Flip on unicode output (via \[uNNNN]) in -T[x]html.  Here we go!

Revision 1.143 / (download) - annotate - [select for diffs], Tue May 17 11:38:18 2011 UTC (10 years, 4 months ago) by kristaps
Branch: MAIN
Changes since 1.142: +3 -4 lines
Diff to previous 1.142 (unified)

Clean-up fallout: differentiate ID's and HREF's (where to put the `#').
Make buffmt functions internally bufinit(), too.

Revision 1.142 / (download) - annotate - [select for diffs], Tue May 17 11:34:31 2011 UTC (10 years, 4 months ago) by kristaps
Branch: MAIN
Changes since 1.141: +6 -25 lines
Diff to previous 1.141 (unified)

Cleanups in -T[x]html: make html_idcat() use the buffer and be called
bufcat_id(), then collapse it into a little function without so much
crap.  Next, make bufinit() only be called when we really need to do so,
and not simply before pre/post calls.

Revision 1.141 / (download) - annotate - [select for diffs], Tue May 17 11:19:45 2011 UTC (10 years, 4 months ago) by kristaps
Branch: MAIN
Changes since 1.140: +25 -64 lines
Diff to previous 1.140 (unified)

Clean-ups in -T[x]html: inline print_num(), as it was just a single
conditional; same for print_xmltype() and print_doctype(), same reason;
make bufncat() be static, as it was only being called from html.c;
have bufcat() simply call through to strlcat().  Finally, assert()
whenever we truncate.

Also rename buffmt() -> bufcat_fmt() to differentiate from buffmt_man et
al., which do not concatenate.

Revision 1.140 / (download) - annotate - [select for diffs], Tue May 17 10:48:06 2011 UTC (10 years, 4 months ago) by kristaps
Branch: MAIN
Changes since 1.139: +17 -42 lines
Diff to previous 1.139 (unified)

Clean up -T[x]html by using a table instead of a switch statement for
the roff units.  Also remove a comment about CSS and number types (they
all accept decimal numbers).

Revision 1.139 / (download) - annotate - [select for diffs], Sun May 15 15:47:46 2011 UTC (10 years, 4 months ago) by kristaps
Branch: MAIN
Changes since 1.138: +4 -3 lines
Diff to previous 1.138 (unified)

Fix missing support for \N'n' when calculating string widths in -Tascii
(oops).  Do the same for -Thtml (oops^2).

Revision 1.138 / (download) - annotate - [select for diffs], Sat May 14 16:28:23 2011 UTC (10 years, 4 months ago) by kristaps
Branch: MAIN
Changes since 1.137: +37 -1 lines
Diff to previous 1.137 (unified)

Give -Thtml and -Txhtml the gift of recognising escapes when calculating
widths (e.g., `Bl -tag -width "\s[blahblah]bar").  This has long since
been done for -Tascii but escaped noticed with -T[x]html.

Revision 1.137 / (download) - annotate - [select for diffs], Sat Apr 30 22:24:31 2011 UTC (10 years, 4 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_11_2
Changes since 1.136: +4 -5 lines
Diff to previous 1.136 (unified)

Make mchars_num2char() return a char like it says.

Revision 1.136 / (download) - annotate - [select for diffs], Sat Apr 30 22:14:42 2011 UTC (10 years, 4 months ago) by kristaps
Branch: MAIN
Changes since 1.135: +2 -2 lines
Diff to previous 1.135 (unified)

Rename mchars_init() -> mchars_alloc() for consistency.

Revision 1.135 / (download) - annotate - [select for diffs], Sat Apr 30 22:14:02 2011 UTC (10 years, 4 months ago) by kristaps
Branch: MAIN
Changes since 1.134: +2 -2 lines
Diff to previous 1.134 (unified)

Remove enum mcharst, which hasn't been used in quite some time.

Revision 1.134 / (download) - annotate - [select for diffs], Sat Apr 30 10:18:24 2011 UTC (10 years, 4 months ago) by kristaps
Branch: MAIN
Changes since 1.133: +2 -2 lines
Diff to previous 1.133 (unified)

No code change: fixing spelling errors.  From a patch by uqs@.  Thanks!

Revision 1.133 / (download) - annotate - [select for diffs], Fri Apr 29 22:18:12 2011 UTC (10 years, 4 months ago) by kristaps
Branch: MAIN
Changes since 1.132: +8 -8 lines
Diff to previous 1.132 (unified)

Move "chars" interface out of out.h and into mandoc.h.  This doesn't
change any code but for renaming functions and types to be consistent
with other mandoc.h stuff.  The reason for moving into libmandoc is that
the rendering of special characters is part of mandoc itself---not an
external part.  From mandoc(1)'s perspective, this changes nothing, but
for other utilities, it's important to have these part of libmandoc.
Note this isn't documented [yet] in mandoc.3 because there are some
parts I'd like to change around beforehand.

Revision 1.132 / (download) - annotate - [select for diffs], Sat Apr 9 15:29:40 2011 UTC (10 years, 5 months ago) by kristaps
Branch: MAIN
Changes since 1.131: +42 -47 lines
Diff to previous 1.131 (unified)

Remove a2roffdeco() and mandoc_special() functions and replace them with
a public (mandoc.h) function mandoc_escape(), which merges the
functionality of both prior functions.

Reason: code duplication.  The a2roffdeco() and mandoc_special()
functions were pretty much the same thing and both quite complex.  This
allows one function to receive improvements in (e.g.) subexpression
handling and performance, instead of having to replicate functionality.

As such, the mandoc_escape() function already handles a superset of the
escapes handled in previous versions and has improvements in performance
(using strcspn(), for example) and reliable handling of subexpressions.

This code Works For Me, but may need work to catch any regressions.
Since the benefits are great (leaner code, simpler API), I'd rather have
it in-tree than floating as a patch.

Revision 1.131 / (download) - annotate - [select for diffs], Tue Mar 22 14:05:45 2011 UTC (10 years, 6 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_11_1
Changes since 1.130: +1 -9 lines
Diff to previous 1.130 (unified)

Move mandoc_isdelim() back into libmdoc.h.  This fixes an unreported
error where (1) -man pages were punctuating delimiters (e.g., `.B a ;')
and where (2) standalone punctuation in -mdoc or -man (e.g., ";" on its
own line) would also be punctuated.  This introduces a small amount of
complexity of mdoc_{html,term}.c must manage their own spacing with
running print_word() or print_text().  The check for delimiting now
happens in mdoc_macro.c's dword().

Revision 1.130 / (download) - annotate - [select for diffs], Tue Mar 22 10:13:01 2011 UTC (10 years, 6 months ago) by kristaps
Branch: MAIN
Changes since 1.129: +1 -2 lines
Diff to previous 1.129 (unified)

Step 4: merge chars.h into out.h.  The functions in this file are
necessary to all [real] front-ends, so stop pretending it's special.
While here, add some documentation to the variable types.

Revision 1.129 / (download) - annotate - [select for diffs], Thu Mar 17 09:16:38 2011 UTC (10 years, 6 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_10_10
Changes since 1.128: +6 -38 lines
Diff to previous 1.128 (unified)

Move mdoc_isdelim() into mandoc.h as mandoc_isdelim().  This allows the
removal of manual delimiter checks in html.c and term.c.  Finally, add
the escaped period as a closing delimiter, removing a TODO to this
effect.

Revision 1.128 / (download) - annotate - [select for diffs], Thu Mar 17 08:49:34 2011 UTC (10 years, 6 months ago) by kristaps
Branch: MAIN
Changes since 1.127: +3 -11 lines
Diff to previous 1.127 (unified)

Move mandoc_{realloc,malloc,calloc} out of libmandoc.h and into mandoc.h
so that everybody can use them.  This follows the convention of
libXXXX.h being internal to a library and XXXX.h being the external
interface.  Not only does this allow the removal of lots of redundant
NULL-checking code, it also sets the tone for adding new mandoc-global
routines.

Revision 1.127 / (download) - annotate - [select for diffs], Tue Mar 15 16:23:51 2011 UTC (10 years, 6 months ago) by kristaps
Branch: MAIN
Changes since 1.126: +2 -3 lines
Diff to previous 1.126 (unified)

Make lint shut up a little bit.

Revision 1.126 / (download) - annotate - [select for diffs], Sun Jan 30 16:05:37 2011 UTC (10 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.125: +18 -2 lines
Diff to previous 1.125 (unified)

Implement the \N'number' (numbered character) roff escape sequence.
Don't use it in new manuals, it is inherently non-portable, but we
need it for backward-compatibility with existing manuals, for example
in Xenocara driver pages.
ok kristaps@ jmc@ and tested by Matthieu Herrb (matthieu at openbsd dot org)

Revision 1.125 / (download) - annotate - [select for diffs], Thu Jan 13 14:30:13 2011 UTC (10 years, 8 months ago) by kristaps
Branch: MAIN
Changes since 1.124: +14 -1 lines
Diff to previous 1.124 (unified)

Change how -Thtml behaves with tables: use multiple rows, with widths
set by COL, until an external macro is encountered.  At this point in
time, close out the table and process the macro.  When the first table
row is again re-encountered, re-start the table.  This requires a bit of
tracking added to "struct html", but the change is very small and
follows the logic of meta-fonts.  This all follows a bug-report by
joerg@.

Revision 1.124 / (download) - annotate - [select for diffs], Mon Dec 27 21:41:05 2010 UTC (10 years, 8 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_10_9
Changes since 1.123: +14 -10 lines
Diff to previous 1.123 (unified)

In case an ID attribute is written in pieces, only protect the first
piece with a prepended 'x', not each piece, such that quoted and
unquoted .Sh, .Ss, and .Sx arguments are compatible with each other.
Fixing a bug reported by Nicolas Joly <njoly at NetBSD dot org>,
avoiding a regression in my first patch as pointed out by njoly as well.
"feel free to do so" kristaps@

Revision 1.123 / (download) - annotate - [select for diffs], Fri Dec 24 14:14:00 2010 UTC (10 years, 9 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_10_8
Changes since 1.122: +1 -2 lines
Diff to previous 1.122 (unified)

Apparently the U tag is deprecated, so use a SPAN instead (blah).  Bump
version date for release.

Revision 1.122 / (download) - annotate - [select for diffs], Fri Dec 24 00:46:49 2010 UTC (10 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.121: +25 -27 lines
Diff to previous 1.121 (unified)

Drastically fix -T[x]html's handling of font-escape mode changes (i.e.,
using \fI or \fP).  Now, using these modes will cause a font to be
rendered for each word; furthermore, setting mode within a word will do
the correct thing.

Second, make -man use real font tags (B, I, SMALL) to set its font
instead of using font modes and fix up the pre-macro unsetting of the
current mode.

This fixes how roff.7 wasn't validating (<P> closing out a font mode)
and has been checked against gcc.1 (more will come).  I considered
failure to validate OUR manual to be a show-stopper for the up-coming
release.

Revision 1.121 / (download) - annotate - [select for diffs], Wed Dec 22 11:15:16 2010 UTC (10 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.120: +3 -2 lines
Diff to previous 1.120 (unified)

Implement reference-counted version of original union mdoc_data.  This
simplifies clean-up and allows for more types without extra hassle.

Also made in-line literal types in -T[x]html use CODE instead of SPAN to
match how literal blocks use PRE.

Revision 1.120 / (download) - annotate - [select for diffs], Mon Dec 20 13:07:55 2010 UTC (10 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.119: +3 -1 lines
Diff to previous 1.119 (unified)

More use default tags, this time I and U.  Also fix a stack overflow
segfault in the last commit.

Revision 1.119 / (download) - annotate - [select for diffs], Mon Dec 20 10:40:11 2010 UTC (10 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.118: +15 -15 lines
Diff to previous 1.118 (unified)

Give header and footer table cells default widths (using WIDTH and ALIGN
atttributes) if no style is specified.

Give the default-bold elements a B tag instead of a SPAN tag, as this
can be overriden in the stylesheet.

Prune some unused attributes from html.h.

Revision 1.118 / (download) - annotate - [select for diffs], Fri Dec 17 10:37:26 2010 UTC (10 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.117: +2 -1 lines
Diff to previous 1.117 (unified)

Make literal `Bd' use a PRE in -Thtml.  Make `Bd' output in general use
only a single DIV or PRE.  Tag all displays with display class.

Revision 1.117 / (download) - annotate - [select for diffs], Fri Dec 17 08:17:40 2010 UTC (10 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.116: +5 -1 lines
Diff to previous 1.116 (unified)

Have synopsis_pre() in -Thtml emit P or BR, not DIVs.

Banish header and footer TABLE styling to example.style.css.

Revision 1.116 / (download) - annotate - [select for diffs], Wed Dec 15 17:19:41 2010 UTC (10 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.115: +2 -1 lines
Diff to previous 1.115 (unified)

Use a single P tag for paragraph breaks (which can be configured for
paragraph breaking in CSS).

Use -man's handling of `sp' and `br', which accomodates for scaling
widths (-mdoc wasn't).

Revision 1.115 / (download) - annotate - [select for diffs], Wed Dec 15 15:59:23 2010 UTC (10 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.114: +2 -1 lines
Diff to previous 1.114 (unified)

Remove stupid outer DIV tag in favour of regular BODY and HTML that can
be handled in CSS.

Clarified "lit" tag (will be the subject of future clarification).

Removed CSS2 note in mandoc.1, which is no longer the case.

Revision 1.114 / (download) - annotate - [select for diffs], Wed Dec 15 14:52:16 2010 UTC (10 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.113: +5 -8 lines
Diff to previous 1.113 (unified)

In-progress move from -T[x]html using DIVs for its lists to using DL,
OL, and UL.  Issue raised by Will Backman, solution proposed by
schwarze@.

Revision 1.113 / (download) - annotate - [select for diffs], Fri Oct 1 21:51:13 2010 UTC (10 years, 11 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_10_7
Changes since 1.112: +3 -1 lines
Diff to previous 1.112 (unified)

* need a space before .No even if it starts with a closing delimiter
* slightly simplify .Pf *_IGNDELIM code, and share part of it with .No
* do not let opening delimiters fall out of the front of .Ns (from kristaps@)
This fixes a few spacing issues in csh(1) and ksh(1).
OK kristaps@

Revision 1.112 / (download) - annotate - [select for diffs], Sat Sep 4 20:18:53 2010 UTC (11 years ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_10_6
Changes since 1.111: +3 -3 lines
Diff to previous 1.111 (unified)

Churny commit to quiet lint.  No functional changes.

Revision 1.111 / (download) - annotate - [select for diffs], Fri Aug 20 01:02:07 2010 UTC (11 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.110: +3 -3 lines
Diff to previous 1.110 (unified)

Implement a simple, consistent user interface for error handling.
We now have sufficient practical experience to know what we want,
so this is intended to be final:
- provide -Wlevel (warning, error or fatal) to select what you care about
- provide -Wstop to stop after parsing a file with warnings you care about
- provide consistent exit status codes for those warnings you care about
- fully document what warnings, errors and fatal errors mean
- remove all other cruft from the user interface, less is more:
- remove all -f knobs along with the whole -f option
- remove the old -Werror because calling warnings "fatal" is silly
- always finish parsing each file, unless fatal errors prevent that
This commit also includes a couple of related simplifications behind
the scenes regarding error handling.
Feedback and OK  kristaps@;  Joerg Sonnenberger (NetBSD) and
Sascha Wildner (DragonFly BSD) agree with the general direction.

Revision 1.110 / (download) - annotate - [select for diffs], Mon Jul 26 22:26:05 2010 UTC (11 years, 1 month ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_10_5
Changes since 1.109: +3 -1 lines
Diff to previous 1.109 (unified)

Make `Sm' start no-spacing after the first output word.  Fix in both
-T[x]html and -T{pdf,ps,ascii}.  Reported by Jason McIntyre.

Revision 1.109 / (download) - annotate - [select for diffs], Fri Jul 23 00:08:57 2010 UTC (11 years, 2 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_10_5_PREPDF
Changes since 1.108: +6 -2 lines
Diff to previous 1.108 (unified)

Add support for `Sm' in -T[x]html -mdoc.

Revision 1.108 / (download) - annotate - [select for diffs], Wed Jul 21 20:35:03 2010 UTC (11 years, 2 months ago) by kristaps
Branch: MAIN
Changes since 1.107: +10 -4 lines
Diff to previous 1.107 (unified)

Accomodate for groff's crappy behaviour wherein an unrecognised
single-character escape (and ONLY this type of escape) will map back
into itself:

       "If a backslash is followed by a character that does not
	constitute a defined escape sequence the backslash is silently
        ignored and the  character maps to itself."

(From groff.7.)

Found by Jason McIntyre.

Revision 1.107 / (download) - annotate - [select for diffs], Fri Jul 16 22:33:30 2010 UTC (11 years, 2 months ago) by kristaps
Branch: MAIN
Changes since 1.106: +17 -9 lines
Diff to previous 1.106 (unified)

Change chars.in HTML encoding to be a Unicode codepoint (int), which is
later formatted in html.c.

Revision 1.106 / (download) - annotate - [select for diffs], Tue Jul 13 23:53:20 2010 UTC (11 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.105: +2 -2 lines
Diff to previous 1.105 (unified)

correct lots of copyright notices;
ok kristaps@

Revision 1.105 / (download) - annotate - [select for diffs], Tue Jul 6 12:37:17 2010 UTC (11 years, 2 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_10_4
Changes since 1.104: +19 -5 lines
Diff to previous 1.104 (unified)

Give -T[x]html `Bk -words' capability.

Revision 1.104 / (download) - annotate - [select for diffs], Tue Jul 6 11:10:53 2010 UTC (11 years, 2 months ago) by kristaps
Branch: MAIN
Changes since 1.103: +8 -8 lines
Diff to previous 1.103 (unified)

Brought function arguments and style in ine with term_word() in term.c
to make sharing of TERMP_KEEP easier.

Revision 1.103 / (download) - annotate - [select for diffs], Fri Jun 25 19:50:23 2010 UTC (11 years, 2 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_10_3
Changes since 1.102: +6 -6 lines
Diff to previous 1.102 (unified)

Remove "pt" from struct roffsu, as CSS (the only reason it was there) is
unclear about which units accept floats/integers, which leads me to
assume that it handles either and rounds as appropriate.

Revision 1.102 / (download) - annotate - [select for diffs], Sat Jun 19 20:46:27 2010 UTC (11 years, 3 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_10_2
Changes since 1.101: +2 -2 lines
Diff to previous 1.101 (unified)

Churn as I finish email address migration kth.se -> bsd.lv.

Revision 1.101 / (download) - annotate - [select for diffs], Mon Jun 7 10:52:44 2010 UTC (11 years, 3 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_10_1
Changes since 1.100: +1 -3 lines
Diff to previous 1.100 (unified)

Add -Owidth=width option to mandoc -Tascii.  Asked for by joerg@ about a
thousand years ago.  Note that this is normalised to >=60.

Revision 1.100 / (download) - annotate - [select for diffs], Tue May 25 12:37:20 2010 UTC (11 years, 4 months ago) by kristaps
Branch: MAIN
Changes since 1.99: +15 -16 lines
Diff to previous 1.99 (unified)

Modified version of Ingo Schwarze's patch for hyphen-breaking.
Breakable hyphens are cued in the back-ends (with ASCII_HYPH) and acted
upon in term.c or ignored in html.c.

Also cleaned up XML decl printing (no need for extra vars).

Revision 1.99 / (download) - annotate - [select for diffs], Mon Apr 12 19:45:39 2010 UTC (11 years, 5 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_9_25, VERSION_1_9_24
Changes since 1.98: +2 -2 lines
Diff to previous 1.98 (unified)

Fix to auto-closing of LINK tag in -Txhtml (thanks to Daniel Friesel).

Revision 1.98 / (download) - annotate - [select for diffs], Thu Apr 8 07:05:38 2010 UTC (11 years, 5 months ago) by kristaps
Branch: MAIN
Changes since 1.97: +5 -3 lines
Diff to previous 1.97 (unified)

Removed pipe from front-end ("typographic") recognition as punctuation (noted by Ingo Schwarze).

Revision 1.97 / (download) - annotate - [select for diffs], Sat Apr 3 12:46:35 2010 UTC (11 years, 5 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_9_23
Changes since 1.96: +3 -5 lines
Diff to previous 1.96 (unified)

Removed erroneous `{' and `}' as punctuation (see mdoc.samples "General Syntax" for why this mistake was made).  Noted by Ingo Schwarze.
Lines of text now break at a hyphen, unless the hyphen is the first or second subsequent in a word.  Inspired by a Ingo Schwarze's patch.

Revision 1.96 / (download) - annotate - [select for diffs], Wed Feb 17 19:48:33 2010 UTC (11 years, 7 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_9_22, VERSION_1_9_21, VERSION_1_9_20, VERSION_1_9_19, VERSION_1_9_18, VERSION_1_9_17, VERSION_1_9_16, VERSION_1_9_15
Changes since 1.95: +6 -2 lines
Diff to previous 1.95 (unified)

Fixed printing of XHTML DOCTYPE "html" vs. "HTML".

Revision 1.95 / (download) - annotate - [select for diffs], Sat Jan 30 08:42:20 2010 UTC (11 years, 7 months ago) by kristaps
Branch: MAIN
Changes since 1.94: +1 -2 lines
Diff to previous 1.94 (unified)

Fix in handling Vt in SYNOPSIS with trailing punctuation.  Spotted by Joerg Sonnenberger.

Revision 1.94 / (download) - annotate - [select for diffs], Sat Jan 30 06:55:56 2010 UTC (11 years, 7 months ago) by kristaps
Branch: MAIN
Changes since 1.93: +28 -6 lines
Diff to previous 1.93 (unified)

Mandate html attributes for xhtml.

Revision 1.93 / (download) - annotate - [select for diffs], Fri Jan 29 14:39:37 2010 UTC (11 years, 7 months ago) by kristaps
Branch: MAIN
Changes since 1.92: +82 -15 lines
Diff to previous 1.92 (unified)

Fixed Makefile for `make lint' dep. on config.h
Added -Txhtml for XHTML output (minimal increase to programme logic).  Because groff has it and it bothers me that we don't.

Revision 1.92 / (download) - annotate - [select for diffs], Fri Jan 1 17:14:27 2010 UTC (11 years, 8 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_9_15-pre2
Changes since 1.91: +5 -6 lines
Diff to previous 1.91 (unified)

Big check-in of compatibility layer.  This should work on most major architectures. Thanks to Joerg Sonnenberger.

Revision 1.91 / (download) - annotate - [select for diffs], Mon Nov 16 08:46:58 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_9_15-pre1, VERSION_1_9_14
Changes since 1.90: +2 -2 lines
Diff to previous 1.90 (unified)

Enabled -Thtml -mdoc to work with \f (see compat notes in mandoc.1).

Revision 1.90 / (download) - annotate - [select for diffs], Mon Nov 16 06:07:49 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.89: +37 -16 lines
Diff to previous 1.89 (unified)

Abstraction of -Thtml -man font setting (still experimental).

Revision 1.89 / (download) - annotate - [select for diffs], Sun Nov 15 06:45:31 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.88: +6 -2 lines
Diff to previous 1.88 (unified)

\f escapes appear to work properly for -Thtml -man.  Needs more testing.

Revision 1.88 / (download) - annotate - [select for diffs], Sat Nov 14 19:23:58 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.87: +47 -5 lines
Diff to previous 1.87 (unified)

Initial check-in of -man -Thtml \f support (needs testing).

Revision 1.87 / (download) - annotate - [select for diffs], Sat Nov 14 12:04:59 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.86: +2 -11 lines
Diff to previous 1.86 (unified)

Removed superfluous HTML_NEWLINE.

Revision 1.86 / (download) - annotate - [select for diffs], Sat Nov 14 12:00:24 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.85: +4 -4 lines
Diff to previous 1.85 (unified)

Fix of fix of -Thtml nospace.

Revision 1.85 / (download) - annotate - [select for diffs], Sat Nov 14 11:58:36 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.84: +10 -6 lines
Diff to previous 1.84 (unified)

Fixed \c handling in -Thtml.

Revision 1.84 / (download) - annotate - [select for diffs], Thu Nov 12 08:21:05 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.83: +4 -1 lines
Diff to previous 1.83 (unified)

Fixed \c support for all input and output modes (documented in mandoc_char.7).

Revision 1.83 / (download) - annotate - [select for diffs], Tue Nov 10 16:32:00 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.82: +7 -7 lines
Diff to previous 1.82 (unified)

Lint fixes in function call.

Revision 1.82 / (download) - annotate - [select for diffs], Mon Nov 9 05:11:46 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.81: +35 -108 lines
Diff to previous 1.81 (unified)

Documented \s and cleaned up \f documentation in mdoc.7, man.7.
-Thtml now using a2roffdeco().

Revision 1.81 / (download) - annotate - [select for diffs], Thu Nov 5 10:16:01 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.80: +14 -16 lines
Diff to previous 1.80 (unified)

Documented that `\s' and `\f' don't work in HTML mode (and why).
Added support for recognising the many forms of `\s' (doesn't yet render).

Revision 1.80 / (download) - annotate - [select for diffs], Mon Nov 2 06:22:44 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_9_13
Changes since 1.79: +3 -2 lines
Diff to previous 1.79 (unified)

Added mandoc_a2time() for proper date conversion.
Fitted TH and Dd handlers to use mandoc_a2time().
Documented date syntax for -man, fixed documentation for -mdoc.

Revision 1.79 / (download) - annotate - [select for diffs], Sun Nov 1 15:34:44 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.78: +2 -2 lines
Diff to previous 1.78 (unified)

Lint fix.

Revision 1.78 / (download) - annotate - [select for diffs], Sun Nov 1 15:34:15 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.77: +6 -6 lines
Diff to previous 1.77 (unified)

Using putchar for single-character prints (noted by Joerg Sonnenberger).

Revision 1.77 / (download) - annotate - [select for diffs], Sun Nov 1 08:15:20 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.76: +13 -13 lines
Diff to previous 1.76 (unified)

print_encode() using strcspn instead of looping/putchar() (noted by Joerg Sonnenberger).

Revision 1.76 / (download) - annotate - [select for diffs], Sun Nov 1 07:44:32 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.75: +4 -8 lines
Diff to previous 1.75 (unified)

Replaced putchar() loop with fwrite() (noted by Joerg Sonnenberger).

Revision 1.75 / (download) - annotate - [select for diffs], Sat Oct 31 06:10:57 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_9_12
Changes since 1.74: +3 -3 lines
Diff to previous 1.74 (unified)

Using perror() instead of fprintf for failure from library functions.

Revision 1.74 / (download) - annotate - [select for diffs], Fri Oct 30 18:53:08 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.73: +1 -2 lines
Diff to previous 1.73 (unified)

More lint fixes.
Removed err.h from inclusions (less main.c--still in progress).

Revision 1.73 / (download) - annotate - [select for diffs], Fri Oct 30 18:50:11 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.72: +2 -2 lines
Diff to previous 1.72 (unified)

Lint fixes.
Made realloc puke with fprintf.

Revision 1.72 / (download) - annotate - [select for diffs], Fri Oct 30 18:43:24 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.71: +12 -10 lines
Diff to previous 1.71 (unified)

Continued safe handling of allocations.

Revision 1.71 / (download) - annotate - [select for diffs], Fri Oct 30 04:57:17 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.70: +4 -4 lines
Diff to previous 1.70 (unified)

Added newline after block-level closing tags (suggested by Joerg Sonnenberger).

Revision 1.70 / (download) - annotate - [select for diffs], Wed Oct 28 08:00:18 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.69: +14 -32 lines
Diff to previous 1.69 (unified)

Fixed `sp', `br', `Pp', etc. so as not to have an empty div (-Thtml, -man, -mdoc).
Made html_idcat be completely correct (messy standard) (-Thtml).
Fixed warnings about -ohang and -item lists (-Thtml, -mdoc).
Fixed typo in index.sgml.

Revision 1.69 / (download) - annotate - [select for diffs], Wed Oct 28 06:54:12 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.68: +7 -9 lines
Diff to previous 1.68 (unified)

Removed superfluous memset (thanks Joerg Sonnenberger).

Revision 1.68 / (download) - annotate - [select for diffs], Wed Oct 28 05:08:17 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.67: +49 -1 lines
Diff to previous 1.67 (unified)

Fixed un-reset buffer in `.In', -Thtml, -mdoc.
Added html_id[cat,cpy] for transforming id's into well-formed attribute strings (no %s, etc.).

Revision 1.67 / (download) - annotate - [select for diffs], Tue Oct 27 04:50:14 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.66: +2 -1 lines
Diff to previous 1.66 (unified)

Added "summary" tag to tables in order to silence HTML-tidy's complaints.

Revision 1.66 / (download) - annotate - [select for diffs], Mon Oct 26 08:18:15 2009 UTC (11 years, 10 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_9_11, VERSION_1_9_10
Changes since 1.65: +13 -17 lines
Diff to previous 1.65 (unified)

Portability: replaced queue macros in html.c (Joerg Sonnenberger).
Fixed "-o" residue.
Added "-O" to usage() (-o didn't appear there either).

Revision 1.65 / (download) - annotate - [select for diffs], Tue Oct 20 05:45:21 2009 UTC (11 years, 11 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_9_9
Changes since 1.64: +2 -1 lines
Diff to previous 1.64 (unified)

More updates to mdoc.7.

Revision 1.64 / (download) - annotate - [select for diffs], Tue Oct 13 10:57:25 2009 UTC (11 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.63: +2 -1 lines
Diff to previous 1.63 (unified)

Moved output definitions into main.h.
Pushed terminal_{mdoc,man} into {mdoc,man}_term.c.

Revision 1.63 / (download) - annotate - [select for diffs], Tue Oct 13 10:21:24 2009 UTC (11 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.62: +9 -5 lines
Diff to previous 1.62 (unified)

Clean up consts (noted by Joerg Sonnenberger and Ulrich Sporlein).

Revision 1.62 / (download) - annotate - [select for diffs], Fri Oct 9 06:54:11 2009 UTC (11 years, 11 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_9_8, VERSION_1_9_7
Changes since 1.61: +7 -3 lines
Diff to previous 1.61 (unified)

Scaling factor made floating point (as per groff.7) and, e.g., gnu/usr.bin/cvs/man/cvs.1.

Revision 1.61 / (download) - annotate - [select for diffs], Wed Oct 7 15:27:11 2009 UTC (11 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.60: +6 -5 lines
Diff to previous 1.60 (unified)

Fixed side-effect of linting (oops).

Revision 1.60 / (download) - annotate - [select for diffs], Wed Oct 7 15:06:03 2009 UTC (11 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.59: +5 -3 lines
Diff to previous 1.59 (unified)

Lint-ified.

Revision 1.59 / (download) - annotate - [select for diffs], Wed Oct 7 14:39:00 2009 UTC (11 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.58: +10 -3 lines
Diff to previous 1.58 (unified)

Made default string units (-Thtml -mdoc) to use `m' and not `n' scaling (better more than less).
Fixed -column widths for -Thtml -mdoc.
Fixed left-hand margin padding for -Thtml -mdoc.

Revision 1.58 / (download) - annotate - [select for diffs], Wed Oct 7 12:35:23 2009 UTC (11 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.57: +55 -3 lines
Diff to previous 1.57 (unified)

Additions to -Tman -Thtml: all structural components tested & in place.
Fitted both -Thtml with handling of arbitrary vertical and horizontal scaling units (see groff(7)).  Undocumented until fitted into -Tascii (next release).

Revision 1.57 / (download) - annotate - [select for diffs], Sun Oct 4 09:02:40 2009 UTC (11 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.56: +2 -1 lines
Diff to previous 1.56 (unified)

Example style-sheet reflecting modified section/subsection style tags.
Added ATTR_ID and so forth to attrs.

Revision 1.56 / (download) - annotate - [select for diffs], Sat Oct 3 16:37:23 2009 UTC (11 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.55: +4 -6 lines
Diff to previous 1.55 (unified)

Lintified (noops).

Revision 1.55 / (download) - annotate - [select for diffs], Sat Oct 3 16:36:06 2009 UTC (11 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.54: +96 -3 lines
Diff to previous 1.54 (unified)

Fixed mandoc.1 examples (new -Thtml options).
Fixed manuals to use `In', not `Fd'.
Moved buf* functions into html.c.

Revision 1.54 / (download) - annotate - [select for diffs], Sat Oct 3 15:26:26 2009 UTC (11 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.53: +7 -4 lines
Diff to previous 1.53 (unified)

Added the -oincludes=FMT option.
The `In' handler now decorates with a hyperlink.
If no -oman= or -oincludes= is stipulated, no link is printed (but the text is still style-decorated).

Revision 1.53 / (download) - annotate - [select for diffs], Sat Oct 3 15:08:09 2009 UTC (11 years, 11 months ago) by kristaps
Branch: MAIN
Changes since 1.52: +9 -10 lines
Diff to previous 1.52 (unified)

Element tag buffer is now part of struct html.
buffmt() can be called in sequence.
Noted BUFSIZ-sized buffer in CAVEATS (attribute length for link formats).
Added -oman=FMT -Thtml option for `Xr' manual links.
Removed -obase=URI -Thtml option (obsolete).

Revision 1.52 / (download) - annotate - [select for diffs], Thu Sep 24 09:50:31 2009 UTC (11 years, 11 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_9_6
Changes since 1.51: +3 -2 lines
Diff to previous 1.51 (unified)

Added Bf, Pf, etc. to -Thtml.
Fixed Rs in -Tascii to behave properly when not in "SEE ALSO" section.

Revision 1.51 / (download) - annotate - [select for diffs], Mon Sep 21 14:56:56 2009 UTC (12 years ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_9_5
Changes since 1.50: +8 -1684 lines
Diff to previous 1.50 (unified)

Split html.c into html.h, mdoc_html.c, man_html.c.

Revision 1.50 / (download) - annotate - [select for diffs], Mon Sep 21 14:40:31 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.49: +14 -41 lines
Diff to previous 1.49 (unified)

Removed man handling in -Thtml (for now).
Added some UTF chars to chars.in.

Revision 1.49 / (download) - annotate - [select for diffs], Mon Sep 21 14:08:13 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.48: +10 -4 lines
Diff to previous 1.48 (unified)

Fix height of hard-breaks in -Thtml.

Revision 1.48 / (download) - annotate - [select for diffs], Mon Sep 21 14:07:07 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.47: +29 -20 lines
Diff to previous 1.47 (unified)

Consolidation of Pp/sp/br/Lp stuff.

Revision 1.47 / (download) - annotate - [select for diffs], Mon Sep 21 13:47:40 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.46: +2 -2 lines
Diff to previous 1.46 (unified)

Fix in outopts processing.

Revision 1.46 / (download) - annotate - [select for diffs], Mon Sep 21 13:44:56 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.45: +17 -10 lines
Diff to previous 1.45 (unified)

Fixed body/divbody structure of html pages.
Added example style.css (example.style.css).
Enabled using -Thtml to generate manuals in Makefile.
Stopped making text manuals for webpage.

Revision 1.45 / (download) - annotate - [select for diffs], Mon Sep 21 13:43:21 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.44: +2 -1 lines
Diff to previous 1.44 (unified)

getsubopt() is in unistd.h, not stdlib.h (error in xBSD manuals).

Revision 1.44 / (download) - annotate - [select for diffs], Mon Sep 21 13:42:01 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.43: +3 -5 lines
Diff to previous 1.43 (unified)

Lint pass (OpenBSD-alpha).  Noops.

Revision 1.43 / (download) - annotate - [select for diffs], Mon Sep 21 13:06:13 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.42: +121 -15 lines
Diff to previous 1.42 (unified)

Removed new-born out.{h,c} (not a good idea).
Removed if 0 for HTML-mode output (why not).
Added option -oxxxx for passing options to output devices.

Revision 1.42 / (download) - annotate - [select for diffs], Mon Sep 21 09:32:30 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.41: +2 -2 lines
Diff to previous 1.41 (unified)

Added example stylesheet.

Revision 1.41 / (download) - annotate - [select for diffs], Mon Sep 21 00:39:02 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.40: +398 -236 lines
Diff to previous 1.40 (unified)

Tentative addition of front-end utility functions (out.h) (not sure if it's necessary).
More -Thtml installments.

Revision 1.40 / (download) - annotate - [select for diffs], Sun Sep 20 19:44:16 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.39: +42 -58 lines
Diff to previous 1.39 (unified)

Using inline-blocks for header and footer (works much better).

Revision 1.39 / (download) - annotate - [select for diffs], Sun Sep 20 19:25:06 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.38: +251 -19 lines
Diff to previous 1.38 (unified)

Headers and footers in -Thtml.  Various minor additions.

Revision 1.38 / (download) - annotate - [select for diffs], Sun Sep 20 17:48:13 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.37: +26 -4 lines
Diff to previous 1.37 (unified)

Bl -column in place for -Thtml.

Revision 1.37 / (download) - annotate - [select for diffs], Sun Sep 20 17:24:57 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.36: +202 -182 lines
Diff to previous 1.36 (unified)

Some extra html tags and near-complete Bl: -tag is hopeless (synonym for -hang, now) and -column is still pending.

Revision 1.36 / (download) - annotate - [select for diffs], Sun Sep 20 13:43:31 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.35: +4 -1 lines
Diff to previous 1.35 (unified)

Fixed memory leak on close.

Revision 1.35 / (download) - annotate - [select for diffs], Sun Sep 20 11:05:22 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.34: +166 -102 lines
Diff to previous 1.34 (unified)

Considerable, wide-ranging improvements to the -Thtml output mode (most especially proper tagging and using `em' instead of `px').

Revision 1.34 / (download) - annotate - [select for diffs], Thu Sep 17 23:35:41 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.33: +439 -91 lines
Diff to previous 1.33 (unified)

Consider html fixes, most importantly -tag and -hang (breaks in IE6, apparently).

Revision 1.33 / (download) - annotate - [select for diffs], Thu Sep 17 13:17:30 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.32: +296 -14 lines
Diff to previous 1.32 (unified)

Hang lists in html (the hard one first).

Revision 1.32 / (download) - annotate - [select for diffs], Thu Sep 17 08:21:42 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.31: +152 -20 lines
Diff to previous 1.31 (unified)

More html.
Initial html encodings in chars.in.

Revision 1.31 / (download) - annotate - [select for diffs], Thu Sep 17 07:41:28 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.30: +30 -4 lines
Diff to previous 1.30 (unified)

ascii_xxx -> chars_xxx (intended to hold more than just ascii encoding).
More html work.

Revision 1.30 / (download) - annotate - [select for diffs], Wed Sep 16 22:17:27 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.29: +299 -150 lines
Diff to previous 1.29 (unified)

More updates to html.c.
Secretly enabled -Thtml in main.c (obviously not yet documented).

Revision 1.29 / (download) - annotate - [select for diffs], Wed Sep 16 09:41:24 2009 UTC (12 years ago) by kristaps
Branch: MAIN
Changes since 1.28: +467 -914 lines
Diff to previous 1.28 (unified)

Made tree/term/out() functions return void.
Put err() functions back into front-ends (no use making it needlessly complex).

Revision 1.28, Mon Dec 15 01:54:58 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_8_5, VERSION_1_8_1, VERSION_1_7_16, VERSION_1_7_15, VERSION_1_6_5, VERSION_1_5_1, VERSION_1_3_6, VERSION_1_3_15, VERSION_1_2_0, OPENBSD_CHECKIN
Changes since 1.27: +1 -1 lines
FILE REMOVED

Purged all old files in favour of new design.  Selective reintegration.

Revision 1.27 / (download) - annotate - [select for diffs], Fri Dec 12 10:11:10 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.26: +5 -1 lines
Diff to previous 1.26 (unified)

*** empty log message ***

Revision 1.26 / (download) - annotate - [select for diffs], Wed Dec 10 17:40:56 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.25: +17 -4 lines
Diff to previous 1.25 (unified)

Prettier HTML.

Revision 1.25 / (download) - annotate - [select for diffs], Wed Dec 10 17:31:57 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.24: +84 -100 lines
Diff to previous 1.24 (unified)

*** empty log message ***

Revision 1.24 / (download) - annotate - [select for diffs], Wed Dec 10 13:41:58 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.23: +30 -2 lines
Diff to previous 1.23 (unified)

Sx to Sh anchors work.

Revision 1.23 / (download) - annotate - [select for diffs], Wed Dec 10 12:09:47 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_0_2
Changes since 1.22: +3 -1 lines
Diff to previous 1.22 (unified)

Linted on NetBSD side.

Revision 1.22 / (download) - annotate - [select for diffs], Wed Dec 10 12:05:33 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.21: +121 -15 lines
Diff to previous 1.21 (unified)

Versioning up.

Revision 1.21 / (download) - annotate - [select for diffs], Wed Dec 10 10:43:57 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.20: +12 -4 lines
Diff to previous 1.20 (unified)

*** empty log message ***

Revision 1.20 / (download) - annotate - [select for diffs], Wed Dec 10 00:58:15 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.19: +5 -2 lines
Diff to previous 1.19 (unified)

*** empty log message ***

Revision 1.19 / (download) - annotate - [select for diffs], Wed Dec 10 00:52:46 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.18: +135 -112 lines
Diff to previous 1.18 (unified)

*** empty log message ***

Revision 1.18 / (download) - annotate - [select for diffs], Tue Dec 9 19:57:26 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.17: +74 -37 lines
Diff to previous 1.17 (unified)

*** empty log message ***

Revision 1.17 / (download) - annotate - [select for diffs], Tue Dec 9 17:09:12 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.16: +70 -36 lines
Diff to previous 1.16 (unified)

Considerable clean-ups.

Revision 1.16 / (download) - annotate - [select for diffs], Mon Dec 8 16:29:57 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.15: +5 -12 lines
Diff to previous 1.15 (unified)

*** empty log message ***

Revision 1.15 / (download) - annotate - [select for diffs], Mon Dec 8 12:46:28 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_0_1
Changes since 1.14: +4 -4 lines
Diff to previous 1.14 (unified)

Added warnings for using macros in the wrong sections.

Revision 1.14 / (download) - annotate - [select for diffs], Sun Dec 7 21:30:49 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.13: +82 -5 lines
Diff to previous 1.13 (unified)

*** empty log message ***

Revision 1.13 / (download) - annotate - [select for diffs], Sat Dec 6 21:10:31 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.12: +10 -1 lines
Diff to previous 1.12 (unified)

.St macros in place.

Revision 1.12 / (download) - annotate - [select for diffs], Sat Dec 6 19:41:41 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.11: +44 -15 lines
Diff to previous 1.11 (unified)

*** empty log message ***

Revision 1.11 / (download) - annotate - [select for diffs], Fri Dec 5 22:54:44 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.10: +11 -11 lines
Diff to previous 1.10 (unified)

*** empty log message ***

Revision 1.10 / (download) - annotate - [select for diffs], Fri Dec 5 22:34:30 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.9: +268 -22 lines
Diff to previous 1.9 (unified)

Nm works properly, many other changes, etc.

Revision 1.9 / (download) - annotate - [select for diffs], Fri Dec 5 19:45:15 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.8: +48 -53 lines
Diff to previous 1.8 (unified)

*** empty log message ***

Revision 1.8 / (download) - annotate - [select for diffs], Fri Dec 5 17:43:14 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.7: +49 -10 lines
Diff to previous 1.7 (unified)

*** empty log message ***

Revision 1.7 / (download) - annotate - [select for diffs], Fri Dec 5 11:28:16 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.6: +147 -154 lines
Diff to previous 1.6 (unified)

*** empty log message ***

Revision 1.6 / (download) - annotate - [select for diffs], Thu Dec 4 23:10:51 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.5: +13 -1 lines
Diff to previous 1.5 (unified)

*** empty log message ***

Revision 1.5 / (download) - annotate - [select for diffs], Thu Dec 4 16:19:52 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.4: +2 -2 lines
Diff to previous 1.4 (unified)

Character-encoding tests.

Revision 1.4 / (download) - annotate - [select for diffs], Thu Dec 4 11:25:29 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.3: +130 -73 lines
Diff to previous 1.3 (unified)

More html-css.

Revision 1.3 / (download) - annotate - [select for diffs], Wed Dec 3 21:27:56 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.2: +165 -17 lines
Diff to previous 1.2 (unified)

Initial html outputs working.

Revision 1.2 / (download) - annotate - [select for diffs], Wed Dec 3 19:21:58 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.1: +200 -6 lines
Diff to previous 1.1 (unified)

Major update.

Revision 1.1 / (download) - annotate - [select for diffs], Wed Dec 3 14:39:59 2008 UTC (12 years, 9 months ago) by kristaps
Branch: MAIN

Abstract ml/mlg/html/xml.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb