summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Protect against accessing "n->next->child" by first checking "n->next".Kristaps Dzonsons2014-08-171-8/+13
| | | | | Noticed in a crash against ".It Nm Fo" with no closing "Fc". Original patch expanded by schwarze@ then extended even more.
* Fully integrate apropos(1) into mandoc(1).Ingo Schwarze2014-08-178-219/+189
| | | | | | | | | Switch the argmode on the progname, including man(1). Provide -f and -k options to switch the argmode. Store the argmode inside struct search, generalizing the flags. Derive the deftype from the argmode when needed instead of storing it. Store the outkey inside struct search instead of passing it alone. While here, get rid of the trailing blanks in Makefile.depend.
* When BUILD_DB is active, link apropos(1) into the mandoc binary.Ingo Schwarze2014-08-164-11/+23
| | | | | This is the first step on the way to a man(1) implementation. The new ./configure is flexible enough to make this step quite easy.
* If a stray .It follows .El, we are no longer in the list,Ingo Schwarze2014-08-161-1/+2
| | | | | | | even though the list is still the last processed macro. This fixes a regression introduced in mdoc_macro.c rev. 1.138: Ulrich Spoerlein <uqs at FreeBSD> reports that various of their kernel manuals trigger assertions.
* Improve build system and autodetection.Ingo Schwarze2014-08-1625-262/+747
| | | | | | | | | * Make ./configure standalone, that's what people expect. * Let people write a ./configure.local from scratch, not edit existing files. * Autodetect wchar, sqlite3, and manpath and act accordingly. * Autodetect the need for -L/usr/local/lib and -lutil. * Get rid of config.h.p{re,ost}, let ./configure only write what's needed. * Let ./configure write a Makefile.local snippet, that's quite flexible.
* Some compilers apparently worry that abort() might returnIngo Schwarze2014-08-141-1/+2
| | | | | | and then throw a "may be used uninitialized" warning, so sprinkle some /* NOTREACHED */. No functional change. Noticed by Thomas Klausner <wiz at NetBSD dot org>.
* Clarify that .Em and .Sy are physical, not semantic markup,Ingo Schwarze2014-08-141-12/+39
| | | | | explain appropriate usage, and provide some examples. ok jmc@
* remove double word; from jmc@Ingo Schwarze2014-08-141-1/+1
|
* Revert previous, as requested by kristaps@.Ingo Schwarze2014-08-145-8/+8
| | | | | | | | | | | | | 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...
* note about AT&T documenters workbenchIngo Schwarze2014-08-131-0/+4
|
* note about <var>Ingo Schwarze2014-08-131-0/+3
|
* Begin cleaning up scaling units.Kristaps Dzonsons2014-08-134-27/+55
| | | | | | | | | 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".
* Use <em> for .Em and .Bf -emphasis.Ingo Schwarze2014-08-135-8/+8
| | | | | | | | | | | | | | | | | 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@
* typo in comment; Guy Harris <guy at alum dot mit dot edu>Ingo Schwarze2014-08-121-1/+1
|
* In mdoc(7) and man(7), if a width is given as a bare number withoutIngo Schwarze2014-08-121-1/+1
| | | | | | | specifying a unit, the implied unit is 'n' (on the terminal, one character position; in PostScript, half of the current font size in points), not 'u' (roff output device basic unit). No functional change right now, but important for the upcoming scaling unit fixes.
* The macro SCALE_HS_INIT() is always passed the result of strlen() orIngo Schwarze2014-08-121-1/+1
| | | | | | an equivalent number as its argument, and strlen() measures the width of a string in characters, not in basic units. No functional change right now, but important for the upcoming scaling unit fixes.
* work around lack of d_namlen and ALIGN/ALIGNBYTES on LinuxIngo Schwarze2014-08-114-16/+30
|
* revert previous; i missed that config.h needs sys/types.h and stdio.hIngo Schwarze2014-08-111-0/+3
| | | | for itself because it uses size_t and FILE...
* typoIngo Schwarze2014-08-111-1/+1
|
* Provide a fallback version of fts(3) for systems lacking it.Ingo Schwarze2014-08-1110-22/+997
| | | | | | I chose the OpenBSD version because it apparently contains various bugfixes that never made it into libnbcompat. To reduce size and complexity, i stripped out the features we don't need.
* Get rid of HAVE_CONFIG_H, it is always defined; idea from libnbcompat.Ingo Schwarze2014-08-1061-129/+72
| | | | | | 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.
* New section about deployment by Kristaps.VERSION.1.13.1Ingo Schwarze2014-08-101-37/+105
| | | | | New paragraph about fts(3) by me. And various minor tweaks, some by Kristaps and some by me.
* 1.13.1 release notesIngo Schwarze2014-08-101-0/+80
|
* sync after adding config.h to mansearch_const.c;Ingo Schwarze2014-08-101-1/+1
| | | | committing on behalf of kristaps@ because i want to release now
* Clarifications in comments and standard output suggested byIngo Schwarze2014-08-102-3/+6
| | | | Paul Onyschuk <ptmelville at gmail dot com> (Alpine Linux)
* mmap(2) requires MAP_PRIVATE ^ MAP_SHARED for flags;Ingo Schwarze2014-08-092-1/+6
| | | | found by kristaps@ on Mac OS X
* missing #include "config.h",Ingo Schwarze2014-08-091-0/+4
| | | | | hence missing definition of __BEGIN_DECLS; found by Thomas Klausner <wiz at NetBSD> on SunOS 5.11
* Do not hardcode stuff in ./configure that is actually user-configurableIngo Schwarze2014-08-082-4/+4
| | | | | | in the Makefile; instead, pass it down via the environment just like CFLAGS. Nice suggestion from kristaps@ hoping to make MacOS X happier.
* Delete the __attribute__((__bounded__(...))) annotation.Ingo Schwarze2014-08-081-2/+1
| | | | | | That's an OpenBSD-specific gcc-4.2.1 security extension. It's certainly a bad idea to use such stuff in a compatibility header, as other operating systems just won't understand it.
* add INSTALL and bump VERSIONIngo Schwarze2014-08-081-2/+3
|
* mention neatroffIngo Schwarze2014-08-081-1/+2
|
* provide some instructions for manual installationIngo Schwarze2014-08-081-0/+119
|
* When .Sm is called without an argument, groff toggles the spacing mode,Ingo Schwarze2014-08-081-3/+8
| | | | | so let us do the same for compatibility. Using this feature is of course not recommended except in manual page obfuscation contests.
* some corrections and improvements with respect to prologue macros;Ingo Schwarze2014-08-081-18/+16
| | | | found while working on mandoc(1) messages
* document warning and error messages, using quite some feedback from jmc@;Ingo Schwarze2014-08-081-26/+841
| | | | more cleanup is likely to happen when it's in
* Bring the handling of defective prologues even closer to groff,Ingo Schwarze2014-08-069-142/+137
| | | | | | | | | | | | in particular relaxing the distinction between prologue and body and further improving messages. * The last .Dd wins and the last .Os wins, even in the body. * The last .Dt before the first body macro wins. * Missing title in .Dt defaults to UNTITLED. Warn about it. * Missing section in .Dt does not default to 1. But warn about it. * Do not warn multiple times about the same mdoc(7) prologue macro. * Warn about missing .Os. * Incomplete .TH defaults to empty strings. Warn about it.
* sync after sqlite3_errstr() compat additionIngo Schwarze2014-08-051-0/+2
|
* strcasestr() wants _GNU_SOURCE on LinuxIngo Schwarze2014-08-052-1/+5
|
* NULL is in <stddef.h>; found on LinuxIngo Schwarze2014-08-051-0/+1
|
* mansearch.h uses uint64_t, so it needs stdint.h; found on LinuxIngo Schwarze2014-08-052-0/+2
|
* Absurdly, the return value of sqlite3_column_text()Ingo Schwarze2014-08-052-9/+9
| | | | | | is "const unsigned char *", which causes warnings with GCC on Linux. Explicitly cast to "const char *" to avoid this. Issue noticed by kristaps@.
* Since old SQLite versions do not have sqlite3_errstr(),Ingo Schwarze2014-08-055-0/+34
| | | | | | | | | provide a dummy fallback implementation. Do not bother to decode the error, SQLite error codes are not useful enough for that to be worthwhile. Note that using sqlite3_errmsg(db) would be a bad idea: On malloc() failure, db is NULL, which would cause a segfault. Issue noticed by kristaps@.
* If an old SQLite version doesn't provide SQLITE_DETERMINISTIC,Ingo Schwarze2014-08-051-0/+3
| | | | | simply ignore it, as using it is merely an optimization. Issue noticed by kristaps@.
* Portability fix:Ingo Schwarze2014-08-051-3/+4
| | | | | | | | * POSIX syntax is 'include Makefile.depend', not '.include "Makefile.depend"' * gmake(1) runs the build rule for the included file (duh), so delete the rule * consequently, we have to mark the 'depend' maintainer target .PHONY * as it's now .PHONY anyway, drop some prerequisites that are now useless Issue noticed by kristaps@.
* Sync library documentation with reality.Ingo Schwarze2014-08-055-180/+882
| | | | | Split mandoc_escape(3), mandoc_malloc(3), and mchars_alloc(3) out of mandoc(3), adding lots of new information.
* Switch to autogenerated dependency rules; they are less error-prone.Ingo Schwarze2014-08-052-94/+146
| | | | Provide a maintainer target to regenerate them.
* Properly partition the build system and install some missing stuff:Ingo Schwarze2014-08-051-14/+55
| | | | | | | | | | | * Introduce targets base-build, db-build, cgi-build. * Introduce targets base-install, db-install, cgi-install. * Introduce a BUILD_TARGETS variable to contain db-build and cgi-build. * Introduce an INSTALL_TARGETS variable and fill it using BUILD_TARGETS. * Install the whatis(1) and makewhatis(8) binaries. * Install the apropos(1), whatis(1), and makewhatis(8) manuals. * Install mandoc_aux.h. * Do not build manpage(1) by default.
* Various minor corrections:Ingo Schwarze2014-08-051-5/+16
| | | | | | | | * Do not unconditionally use -I/usr/local/include and -L/usr/local/lib. * Do not install programs and libs root-writeable. * Add missing test-strcasestr.c and test-strsep.c to TESTSRCS. * Add missing cgi.h.example and mandoc_html.3 to SRCS. * Add missing mandoc_html.3.html to WWW_MANS.
* sort user settings; no functional changeIngo Schwarze2014-08-051-19/+34
|
* remove strnlen(3) compat, we no longer use itIngo Schwarze2014-08-045-58/+0
|