summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* * remove pointless separate -f and -k synopses, they take almost all argsIngo Schwarze2014-08-211-50/+17
| | | | | | | * fix up descriptions of -f and -k * remove excessive example for -k * remove explicit BSD references * add CVS Id
* Now that we have man(1) functionality, add a man(1) manual page.Ingo Schwarze2014-08-213-2/+400
| | | | | I'm importing the totally unchanged OpenBSD version such that all changes can easily be tracked in CVS.
* Implement classic man(1) output mode showing only one manual evenIngo Schwarze2014-08-211-7/+68
| | | | | | if there is more than one match, using traditional section priorities, and implement man(1) -a (show all) output mode, not just for man(1), but also for apropos(1) and whatis(1).
* Parse the new -a, -i, and -w options.Ingo Schwarze2014-08-201-4/+43
| | | | Implement -w (list manual page filenames).
* Do not dereference a NULL pointer if a .Bl macro hasIngo Schwarze2014-08-191-1/+1
| | | | | no -type, -width, -offset or -compact arguments whatsoever; this got broken in rev. 1.238.
* libroff depends on libmandoc and so libmandoc should be included first;Ingo Schwarze2014-08-191-1/+1
| | | | merge from OpenBSD, patch by daniel@
* Control reading off the edge of our buffer in term_flushln().Kristaps Dzonsons2014-08-181-1/+1
| | | | | | | | This happens in specific conditions (trailing whitespace in certain terminal modes), but in practise, it happens quite often (as reported by valgrind). In short, "Nothing about term_flushln() is simple. Srsly!" (schwarze@) Discussed on tech@, ok schwarze@.
* When the first child of the node being validated gets deleted duringIngo Schwarze2014-08-181-1/+12
| | | | | | | | | | | | | | | validation, man_node_unlink() switches to MAN_NEXT_CHILD. After that, we have to switch back to MAN_NEXT_SIBLING after completing validation, or subsequent parsing would add content into an already closed node, clobbering potentially existing children, causing information loss and a memory leak. Bug found by kristaps@ with valgrind in groff(7) on Mac OS X. Note that the switch back must be conditional, for if the node being validated itself gets deleted, we must *not* go to MAN_NEXT_SIBLING, which would not only yield wrong results in general but also crash in malformed manuals having an empty paragraph before the first .SH, for example OpenBSD c++filt(1).
* Notes on CGI: installation (readying cgi.h) and future plans.Kristaps Dzonsons2014-08-182-1/+15
|
* Fix a corner case where \H<nil> (where <nil> is the \0 character) wouldKristaps Dzonsons2014-08-181-1/+2
| | | | | | cause mandoc_escape() to read past the end of an allocated string. Found when a script scanning of all Mac OSX manual accidentally also scanned binary (gzip'd) files, discussed with schwarze@ on tech@.
* While all current callers pass valid data to ascii_hspan() only,Ingo Schwarze2014-08-171-1/+1
| | | | | | it's safer to assume incoming enum data might be invalid and catch it instead of happily returning an unitialized int. No functional change right now.
* typo; Steven Honeyman <stevenhoneyman at gmail dot com>Ingo Schwarze2014-08-171-1/+1
|
* Do not require getsubopt() to provide extern char *suboptarg.Ingo Schwarze2014-08-173-15/+22
| | | | | | | | | | | | | | | | | | | | We don't use it anyway in mandoc. Like this, fewer systems need the compat implementation. In particular, we can now use the stock getsubopt() on glibc and musl. Besides, the comment in the BSD getsubopt.c that error messages are tricky without *suboptarg is massively overblown. If you simply save a copy of the pointer you pass into getsubopt(), that's quite usable for an error message. People start campaigning for the addition of *suboptarg to C libraries on the grounds that mandoc wants it, but actually, i consider library functions manipulating global data quite ugly, so stop pushing people into that questionable direction. While here, add an explicit Copyright header to the test file. While it's obviously to me what Kristaps intended, others might consider this file copyrightable and wonder what's up.
* one forgotten #ifdef -> #if conversionIngo Schwarze2014-08-171-1/+2
|
* ... and remove the trailing spaces (duh. i should pay more attention)Ingo Schwarze2014-08-171-5/+5
|
* KNF: fix indentation of previous commit, see style(9):Ingo Schwarze2014-08-171-9/+9
| | | | | "Indentation is an 8 character tab. Second level indents are four spaces." All the rest of this file already conforms.
* 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