aboutsummaryrefslogtreecommitdiffstatshomepage
Commit message (Collapse)AuthorAgeFilesLines
* Start fixing issues that beck@ helped find:Ingo Schwarze2014-07-121-38/+35
| | | | | | | | | | | | Distinguish between man(1) and apropos(1) mode by adding back the classical QUERY_STRING variable "apropos=". Change the default back to "apropos=0". Control it by adding a HTML <SELECT> element for it. Rename the "expr=" QUERY_STRING variable back to its classical name "query=", i don't see how the new name is better than the classical one. While here, drop the concept of a "legacy mode". Simply continue to support the features, and use what we consider best.
* Fix whatis(1) to correctly match words instead of any substrings.Ingo Schwarze2014-07-122-25/+54
| | | | | While here, also provide an internal mode (MANSEARCH_MAN) to match complete names, to be used by man.cgi(8).
* fix the two manual links on the index pageIngo Schwarze2014-07-121-8/+9
|
* merge OpenBSD rev. 1.3 by tedu@:Ingo Schwarze2014-07-111-7/+9
| | | | | make http decode linear time. also remove a redundant null check.
* merge OpenBSD rev. 1.2 by tedu@:Ingo Schwarze2014-07-111-9/+10
| | | | http headers must end lines with CRLF.
* add HISTORY sectionIngo Schwarze2014-07-111-2/+10
|
* Link to the new man.cgi(8) manual, now that we have it! :-)Ingo Schwarze2014-07-101-3/+6
| | | | While here, s/satisfy/match/ when talking about queries.
* Full rewrite of the man.cgi(8) manual.Ingo Schwarze2014-07-103-125/+327
| | | | | | | | | | | | Almost everything in the old man.cgi(7) was outdated in one way or another - catman, catman.conf, CACHE_DIR, /cache, manroots, replacing '/' with spaces, /tmp... Instead, document the HTML and URI interfaces, the output and the setup, and complete the listings of ENVIRONMENT variables and FILES. Using section 8 instead of section 7 because that's the usual place for CGI programs, see for example bgplg(8) and slowcgi(8).
* some sugar for the index pageIngo Schwarze2014-07-091-3/+11
|
* Clean up error reporting:Ingo Schwarze2014-07-091-50/+51
| | | | | | | * Consistent naming and use of resp_* functions. * Split resp_noresult() out of resp_search() and reuse it. * Log information about internal errors. * And some minor fixes.
* namespace cleanups:Ingo Schwarze2014-07-091-45/+48
| | | | | | | | | | CGI variable: s/CACHE_DIR/MAN_DIR/ because it's static, not a cache default MAN_DIR: /cache/man.cgi/ -> /man/ see above global variable: s/cache/mandir/ see above global variable: s/css/cssdir/ for consistency with mandir global variable: s/host/httphost/ for consistency with HTTP_HOST global variable: s/progname/scriptname/ for consistency with SCRIPT_NAME struct query: member s/manroot/manpath/ for consistency with QUERY_STRING
* remove obsolete __sun includesIngo Schwarze2014-07-091-10/+3
| | | | and improve some whitespace and comments
* set a reasonable default for .OsIngo Schwarze2014-07-091-2/+3
|
* mark defos as const; nobody needs to change it,Ingo Schwarze2014-07-095-11/+13
| | | | and it is occasionally useful to be able to pass literal strings
* delete forgotten, obsolete rew_warn() prototypeIngo Schwarze2014-07-091-3/+1
|
* oops, forgot to trim the newline characterIngo Schwarze2014-07-091-1/+3
|
* Simplify pathgen() even more.Ingo Schwarze2014-07-091-28/+14
| | | | | | Let manpath.conf be a plain text list of the directories to use. As a bonus, this makes the order configurable. Get rid of <dirent.h>, opendir(3), readdir(3), stat(2).
* include manpath= when printing queries, and omit empty parametersIngo Schwarze2014-07-091-13/+33
|
* This one needs "config.h", too.Ingo Schwarze2014-07-091-1/+5
|
* Switch over man.cgi to SQLite. While here:Ingo Schwarze2014-07-092-379/+102
| | | | | | | * Simplify pathgen(), just use the subdirs of the cache dir. * Simplify URI paths, just use show/<manpath>/<filename>. * Drop struct paths, just use plain strings. * Garbage collect unused headers.
* Clean up ERROR messages related to document structure and macros:Ingo Schwarze2014-07-077-47/+66
| | | | Hierarchical naming and mention macro names in messages.
* Simplify man_unscope(), removing 18 lines of code, that is,Ingo Schwarze2014-07-073-53/+28
| | | | | | removing one function argument, one function definition, three function invocations and two pointless assert()s. No functional change.
* no need to delete any content from .Rs blocks,Ingo Schwarze2014-07-073-39/+16
| | | | and downgrade the related message from ERROR to WARNING
* no need to skip content before first section headerIngo Schwarze2014-07-074-28/+8
|
* implement .dei and .amiIngo Schwarze2014-07-074-51/+72
|
* Clean up messages related to plain text and to escape sequences.Ingo Schwarze2014-07-0610-50/+65
| | | | | * Mention invalid escape sequences and string names, and fallbacks. * Hierarchical naming.
* After skipping an escape sequence with incomplete arguments,Ingo Schwarze2014-07-061-3/+3
| | | | do not throw away the rest of the string to be rendered.
* Fix expansion of escape sequences with incomplete arguments.Ingo Schwarze2014-07-061-8/+15
| | | | | | * For \* and \n, discard the incomplete arg, expand to empty string. * For \B, discard the incomplete arg, expand to the digit 0. * For \w, use the incomplete arg (behaviour unchanged).
* Fix handling of escape sequences taking numeric arguments.Ingo Schwarze2014-07-061-2/+4
| | | | | | | * Repair detection of invalid delimiters. * Discard the invalid delimiter together with the invalid sequence. Note to self: In general, strchr("\0...", c) is a thoroughly bad idea.
* Cleanup with respect to bad macro arguments.Ingo Schwarze2014-07-054-77/+80
| | | | | | | | * Fix .Sm with invalid arg: move arg out and toggle mode. * Promote "unknown standard" from WARNING to ERROR, it loses information. * Delete MANDOCERR_BADWIDTH, it would only indicate a mandoc(1) bug. * Do not report MANDOCERR_BL_LATETYPE when there is no type at all. * Mention macro names, arguments and fallbacks.
* Cleanup regarding -offset and -width:Ingo Schwarze2014-07-053-59/+57
| | | | | | | * Bugfix: Last one wins, not first one. * Fix .Bl -width without argument: it means 0n, so do not ignore it. * Report macro names, argument names and fallbacks in related messages. * Simplify: Garbage collect auxiliary variables in pre_bd() and pre_bl().
* Clean up messages regarding excess arguments:Ingo Schwarze2014-07-048-50/+65
| | | | | | * Downgrade ".Bf -emphasis Em" from FATAL to WARNING. * Mention the macros, the arguments, and the fallbacks. * Hierarchical naming.
* Clean up messages related to missing arguments.Ingo Schwarze2014-07-043-34/+29
| | | | | | | | | * Do not warn about empty -column cells, they seem valid to me. * Downgrade empty item and missing -std from ERROR to WARNING. * Hierarchical naming. * Descriptive, not imperative style. * Mention macro names, argument names, and fallbacks. * Garbage collect some unreachable code in post_it().
* Fix formatting of empty .Bl -inset item heads.Ingo Schwarze2014-07-034-31/+29
| | | | | | Downgrade empty item heads from ERROR to WARNING. Show the list type in the error message. Choose better variable names for nodes in post_it().
* MANDOCERR_NOARGS reported three completely unrelated classes of problems.Ingo Schwarze2014-07-033-6/+12
| | | | Split the roff(7) parts out of it and report the request names for these cases.
* Improve and test the messages about empty macros,Ingo Schwarze2014-07-023-8/+12
| | | | in particular reporting the macro names involved.
* When .Sm is called without an argument, groff toggles the spacing mode,Ingo Schwarze2014-07-024-29/+30
| | | | | so let us do the same for compatibility. Using this feature is of course not recommended except in manual page obfuscation contests.
* Disentangle the MANDOCERR_CHILD message, which reported threeIngo Schwarze2014-07-023-8/+16
| | | | | completely different things, into three distinct messages. Also mention the macro names we are talking about.
* Clean up warnings related to macros and nesting.Ingo Schwarze2014-07-025-30/+23
| | | | | | | * Hierarchical naming of enum mandocerr items. * Improve the wording to make it comprehensible. * Mention the offending macro. * Garbage collect one chunk of ancient, long unreachable code.
* Fix the column numbers associated with in_line_argn() macros;Ingo Schwarze2014-07-021-3/+3
| | | | | this bug is more than four years old, introduced by kristaps@ in mdocml.bsd.lv rev. 1.46, March 30, 2010.
* Change column display in -Ttree to be 1-based instead of 0-basedIngo Schwarze2014-07-021-4/+4
| | | | such that column numbers agree between messages and -Ttree.
* Improve "skipping paragraph macro" messages,Ingo Schwarze2014-07-023-21/+43
| | | | showing which macro was skipped and before or after what.
* Implement the obsolete macros .En .Es .Fr .Ot for backward compatibility,Ingo Schwarze2014-07-0212-68/+186
| | | | | since this is hardly more complicated than explicitly ignoring them as we did in the past. Of course, do not use them!
* Clean up the warnings related to document structure.Ingo Schwarze2014-07-016-63/+87
| | | | | | | | | * Hierarchical naming of the related enum mandocerr items. * Mention the offending macro, section title, or string. While here, improve some wordings: * Descriptive instead of imperative style. * Uniform style for "missing" and "skipping". * Where applicable, mention the fallback used.
* The previous commit to this file broke the control flow keywords \{ and \}Ingo Schwarze2014-07-011-2/+4
| | | | | | | | when they immediately follow a request or macro name, without intervening whitespace. Minimal fix. The lesson learnt here is that, despite their appearance, \{ and \} are not escape sequences, so never skip them when parsing for names.
* garbage collect two unused enum mandocerr itemsIngo Schwarze2014-06-302-15/+7
| | | | and fix a couple of comments while here
* Use the freshly improved roff_getname() functionIngo Schwarze2014-06-291-17/+16
| | | | | | | | for the main roff request parsing routine, roff_parse(). In request or macro invocations, escape sequences now terminate the request or macro name; what follows is treated as arguments. Besides, the names of user-defined macros can now contain backslashes (eek!).
* Use the freshly improved roff_getname() functionIngo Schwarze2014-06-291-39/+19
| | | | | | for the .de parsing routine, roff_block(), to correctly handle names terminated by escape sequences. Besides, this saves us 20 lines of code.
* Major roff_getname() cleanup.Ingo Schwarze2014-06-291-36/+52
| | | | | | | | | * Return the name even if it is terminated by an escape sequence, not a blank. * Skip the full escape sequence using mandoc_escape(), not just the first byte. * Make it non-destructive, return the length instead of writing a '\0'. * Let .ds and .as cope with the above changes to the internal interface. * Fix .rm and .rr to accept an escape sequence as the end of a name. * Fix .nr and .rr to not set/delete a register with an empty name.
* Bugfix in roff_setstrn():Ingo Schwarze2014-06-291-2/+3
| | | | Do not call strcmp() on an array of char that might not be NUL-terminated.