summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Expand references to number registers in exactly the same way asIngo Schwarze2013-10-052-33/+54
| | | | | | | | | | references to user-defined strings. While here, make number registers signed int, like in groff. Inspired by NetBSD roff.c rev. 1.8 and read.c rev. 1.7 written by Christos Zoulas on March 21, 2013, but implemented in a completely different way, without hacking into read.c, where this functionality really doesn't belong.
* Support setting arbitrary roff(7) number registers,Ingo Schwarze2013-10-054-46/+69
| | | | | | | | | | | | | | preserving read support for the ".nr nS" SYNOPSIS state register. Inspired by NetBSD roff.c rev. 1.18 (Christos Zoulas, March 21, 2013), but implemented differently. I don't want to have yet another different implementation of a hash table in mandoc - it would be the second one in roff.c alone and the fifth one in mandoc grand total. Instead, i designed and implemented roff_setreg() and roff_getreg() to be similar to roff_setstrn() and roff_getstrn(). Once we feel the need to optimize, we can introduce one common hash table implementation for everything in mandoc.
* sync with NetBSDIngo Schwarze2013-10-051-3/+9
|
* merge from VERSION_1_12: do not complain about unused variables in test-*.cIngo Schwarze2013-10-051-7/+7
|
* Cleanup suggested by gcc-4.8.1, following hints by Christos Zoulas:Ingo Schwarze2013-10-055-8/+6
| | | | | | | | - avoid bad qualifier casting in roff.c, roff_parsetext() by changing the mandoc_escape arguments to "const char const **" - avoid bad qualifier casting in mandocdb.c, index_merge() - do not complain about unused variables in test-*.c - garbage collect a few unused variables elsewhere
* Merge from VERSION_1_12, in particular release date, pkgsrc port version,Ingo Schwarze2013-10-052-5/+14
| | | | link to NEWS file, link to Alpine Linux, and fix one FreeBSD link.
* Release version 1.12.2. This is no longer beta.Ingo Schwarze2013-10-051-1/+2
| | | | Sneak in a downstream link to Alpine Linux.
* Merge from branch VERSION_1_12:Ingo Schwarze2013-10-021-19/+99
| | | | | | | | - mention that groff is GPL version 3 - link the new tbl.3.html - list FreeBSD base version of mandoc - document downstream versions - copy the version 1.12.2 News
* Merge from branch VERSION_1_12:Ingo Schwarze2013-10-021-9/+17
| | | | | | | | | - add the new SCRS files NEWS and gmdiff - add tbl.3 to SRCS, INDEX_MANS, and install - bring back the SCRS files apropos.{c,1} that somehow got lost - bring back the INDEX_MANS apropos.1.html that also got lost - update VERSION, VDATE, and OSNAME - improve comment regarding STATIC
* Merge the relevant parts from the VERSION_1_12 branch:Ingo Schwarze2013-10-012-6/+38
| | | | | - change mandocdb.db to mandoc.db - add HISTORY to mandocdb(8)
* New file suggested by Thomas Klausner <wiz at netbsd dot org>.Ingo Schwarze2013-10-011-0/+330
|
* Maybe we can easily improve -width parsing.Ingo Schwarze2013-09-271-0/+3
|
* Throwing FATAL MANDOCERR_SYNTCHILD on non-.It children of .BlIngo Schwarze2013-09-221-1/+7
| | | | | feels so 2008-ish, one of the last remnants of the Kristaps-doesnt-like-syntax-errors-so-lets-just-give-up--Era.
* DocBook abuses \h - for no good reason, but maybe we should eventuallyIngo Schwarze2013-09-221-0/+5
| | | | try to deal with it.
* use the .Bx macro; from Jan Stary via jmc@Ingo Schwarze2013-09-161-1/+2
|
* two improvements in the SYNOPSIS;Ingo Schwarze2013-09-161-2/+1
| | | | from Sascha Wildner <swildner at gmail dot com> (DragonFly)
* Drop .Ud remark, it has started to slowly turn into a lie.Ingo Schwarze2013-09-161-7/+0
|
* Beagle has been replaced by armv7; from patrick@.Ingo Schwarze2013-09-161-1/+1
|
* One of the WARNING messages has to use the word "section" twice in twoIngo Schwarze2013-09-163-3/+4
| | | | | | | | | | different meanings, that cannot be helped. But we can make this less confusing by stating that the second instance refers to stuff like (2), (3), and (9), and by adding the sections header the first instance refers to, for example ERRORS or RETURN VALUES. Source for confusion noticed by Jan Stary <hans at stare dot cz>, better wording suggested by jmc@, tweaked by me.
* Use normal line macro recognition, do not attempt to roll your own.Ingo Schwarze2013-09-151-3/+2
| | | | | This fixes horizontal spacing when an Ns macro follows a block-closing macro and the corresponding block-opening macro is not on the same line.
* Block closing macros do not allocate a new node but finish an existingIngo Schwarze2013-09-151-0/+3
| | | | | | | | | | one, so they miss the clearing of MDOC_NEWLINE in mdoc.c, node_alloc(). Consequently, MDOC_NEWLINE must be cleared before processing the next macro on the same line. This fixes horizontal spacing for input lines beginning like .Oc Ns ... Issue found by Franco Fichtner <franco at lastsummer dot de> while working on DragonFly mandoc integration.
* For some mdoc(7) macros, it is (unfortunately) semantically significantIngo Schwarze2013-09-151-2/+5
| | | | | | whether they are the first macro on the line or called by another macro. To help debugging, indicate this property "first macro on a new input line" by prefixing an asterisk to the line number in -Ttree output.
* Move the last column-counting members of struct termp (col and maxcols)Ingo Schwarze2013-08-212-20/+16
| | | | | | | | | from int to size_t, to match some existing ones (offset, *rmargin, viscol). Move some related local variables from int to size_t as well. Needed as a preparation to make a generalized adjbuf() function available beyond the file term.c, i.e. in mandoc.c. Also saves a couple of ugly casts.
* Use text production macros to document themselves.Ingo Schwarze2013-08-141-5/+15
| | | | | | Part of the patch was sent in by Jan Stary <hans at stare dot cz>, another part was added by jmc@, the rest was added by myself; ok jmc@.
* Implement the roff(7) font-escape sequence \f(BI "bold+italic".Ingo Schwarze2013-08-087-47/+82
| | | | | This improves the formatting of about 40 base manuals and reduces groff-mandoc formatting differences in base by about 5%.
* After a leading blank on an output line, the first word was counted twiceIngo Schwarze2013-08-051-1/+1
| | | | | | | | | | | against vend, causing a premature line break. Fix that bug by reverting revision 1.93 which Kristaps committed four years ago. Kristaps patch is no longer needed because the code below /* Write out the [remaining] word. */ now handles leading blanks correctly, probably already for a long time. This avoids premature line breaks in about a dozen base system manuals, for example as(1) and gdb(1), and alignment issues in another twenty, for example mount(2), ip6(4), pfctl(8), and crypto(9).
* Put .%C before .%D in .Rs outputIngo Schwarze2013-08-051-2/+2
| | | | | | | because that's the usual order in formal citations. My patch that was accepted into groff by Werner Lemberg uses the same order, so keep groff and mandoc consistent.
* jca@ found .as .shift .while in ratpoison(1)Ingo Schwarze2013-07-141-0/+6
|
* tedu@ says: "whatis pool" doesn't workIngo Schwarze2013-07-141-0/+9
|
* For citing the names and email addresses of authors,Ingo Schwarze2013-07-1313-31/+17
| | | | | | | consistently use the style ".An name Aq Mt email". Triggered by a question from Jan Stary <hans at stare dot cz>, ok jmc@.
* Rudimentary implementation of the .it request (input line trap).Ingo Schwarze2013-07-134-15/+60
| | | | | | | | | | As with any low-level roff request involving subtle interactions with macro internals, this implementation is not exact, but it does handle the simplest cases. This request occurs in man(7) code generated from DocBook, for example mysql(1) and yasm_arch(7). Thanks to brad@ for reporting the issue back in January 2011.
* Simple partial sync with OpenBSD:Ingo Schwarze2013-07-052-14/+14
| | | | | | | * Again accept suffixes on the name of the whatis utility. * The usage line for whatis must not invite expressions. * Revert the argument names in the SYNOPSIS back to the usual ones. * Revert a few gratuitious changes regarding line breaks etc.
* For the strings table, ohash_init is only called in ofmerge(),Ingo Schwarze2013-07-021-16/+15
| | | | | so move the str_info structure into that function. No functional change.
* Turning off synchronous mode logically belongs to opening the database,Ingo Schwarze2013-07-021-9/+11
| | | | so move the statement into the function dbopen().
* fixed in mandoc.c rev. 1.67 and OpenBSD mandoc.c rev. 1.36Ingo Schwarze2013-07-021-8/+0
|
* Restore the check whether each page added to the databaseIngo Schwarze2013-07-021-18/+86
| | | | | is actually reachable by man(1). This check got lost when the database backend was changed from Berkeley to sqlite.
* Parse for the closing delimiter `\}' for conditionalsIngo Schwarze2013-06-271-43/+31
| | | | | | | | | | | even when the conditional evaluated to false. While here, reshuffle the code to reduce indentation and make it more readable; that way, we can even trim down the comments because it becomes obvious what the code does. Found in zipinfo(1) - thanks to espie@ and naddy@ for making me look at that manual page.
* sort missing roff requests, and add some usage infoIngo Schwarze2013-06-221-4/+12
|
* A very simple utility script to automatically compare groff and mandocIngo Schwarze2013-06-221-0/+35
| | | | | | | output on collections of manual source files. I'm using this for quite some time now, and it has proven to be rather useful. Obviously, this will not be installed on user's systems.
* Improve handling of the roff(7) "\t" escape sequence:Ingo Schwarze2013-06-203-6/+25
| | | | | | | | | | | * Parsing macro arguments has to be done in copy mode, which implies replacing "\t" by a literal tab character. * Otherwise, render "\t" as the empty string, not as a 't' character. This fixes formatting of the distfile example in the oldrdist(1) manual. This also shows up in the unzip(1) manual as one of several issues preventing the removal of USE_GROFF from the archivers/unzip port. Thanks to espie@ for attracting my attention to the unzip(1) manual.
* Add .St values for POSIX 1003.1d, 1003.1j, and 1003.1q.Ingo Schwarze2013-06-192-11/+20
| | | | | | | Tweak descriptions of the other POSIX 1003.1<letter> standards. Sort a few others into their proper places. From Philip Guenther@ during t2k13.
* The mdoc_handler flags are unused and will never be used.Ingo Schwarze2013-06-071-126/+123
| | | | | Having a mask is sufficient to trigger putmdockey. Simplify by dropping the flags; no functional change.
* In .Xr database entries, mention the manual section again;Ingo Schwarze2013-06-071-2/+13
| | | | | the section was dropped when switching from db to sqlite. Use the customary format foo(N).
* The string hash table is only needed to combine multiple occurencesIngo Schwarze2013-06-071-109/+67
| | | | | | | | | | | | | | | | | | | | | | of the same string within the same manual, so initialize and purge it for each manual in ofmerge() instead of one single time in main(). There is no point in saving manual names and descriptions in that table because each of them occurs only once, or very few times. The is no point in saving section numbers there because they are so much shorter than the descriptions. Testing with the complete tree /usr/share/man/ on my notebook shows that this change slightly reduces memory consumption by about 20% while there is no measurable difference in execution time. As a bonus, this allows to delete the functions stradd() and stradds(), the "next" member from struct str, and the global struct str *words. While adapting the places in the code using stradd(), i noticed that parsing of the mdoc(7) .Nd macro was completely broken and that for formatted manual pages with unusable NAME section, the description was never set in the struct of. This commit fixes both bugs as well.
* Optimize stradds() and putkeys() to not call ohash_qlookupi()Ingo Schwarze2013-06-061-44/+27
| | | | | | | and ohash_find() twice. As a bonus, this allows to drop hashget(). While here, rename index to slot to match the terminology in the ohash manual; it also prevents potential clashes with index(3). Drop the slot variable altogether where it is used only once.
* Drop wordaddbuf() which is identical to putkeys().Ingo Schwarze2013-06-061-21/+8
| | | | | Also rename straddbuf() to stradds() to be more similar to putkeys(). Just cleanup, no functional change.
* In dbopen(), check success of remove("mandoc.db~").Ingo Schwarze2013-06-061-21/+14
| | | | | While here, simplify dbopen() and dbclose(): No need for strlcpy() and strlcat() when dealing with constant strings only.
* No point in inventing yet another file name for the database.Ingo Schwarze2013-06-061-1/+1
| | | | | | We are not going back to Berkeley DB and don't care about overwriting any obsolete files that may be lying around. So, go back from "mandocdb.db" to "mandoc.db".
* In parse_catpage(), the comment saying that the filename would beIngo Schwarze2013-06-061-0/+1
| | | | | | used as a default page description if no usable NAME section was found was preserved when moving from db to sqlite, but the code line actually doing that was removed without replacement. So, put it back.
* The return value from parse_man() is completely unused,Ingo Schwarze2013-06-051-13/+9
| | | | so make the function void; no functional change.