summaryrefslogtreecommitdiffstats
path: root/usr.bin/mandoc/cgi.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Support the "powerpc64" architecture name.schwarze2020-06-291-5/+6
| | | | The first file using it in .Dt was just committed by kettenis@.
* Remove some stray argument names from function prototypes,schwarze2020-04-031-4/+6
| | | | | | for consistency with the dominant style used in mandoc. No functional change. Patch from Martin Vahlensieck <academicsolutions dot ch>.
* autocapitalize=none; also from Tim Baumgardschwarze2020-01-101-2/+3
|
* Switch off the useless and annoying "autocomplete" feature;schwarze2020-01-101-2/+2
| | | | | issue reported by Tim Baumgard <at bmgrd dot com>. landry@ and florian@ agree with the general direction.
* Add a Content-Security-Policy HTTP header that allows only CSS.bentley2019-11-101-1/+3
| | | | | | | This ensures that in a modern browser that understands the header, mandoc rendering bugs cannot possibly be interpreted as JavaScript. ok schwarze@
* For invalid queries and for valid queries returning no result,schwarze2019-10-011-8/+11
| | | | | | return the appropriate 40x status code rather than 200. Improvement suggested and diff tested by John Gardner <gardnerjohng at gmail dot com>.
* in man.cgi(8), disable -O toc by default; requested by deraadt@schwarze2019-07-101-2/+1
|
* drop redundant '0' flag from "%02.2X" format string;schwarze2019-03-061-2/+2
| | | | found by a compiler warning from gcc 4.9.2 on Linux
* Relax overzealous PATH_INFO validation.schwarze2019-01-311-2/+2
| | | | | | | URIs like https://man.openbsd.org/OpenBSD-2.2/cat1/cat.0 are still required to work because they result from apropos searches for old releases (up to 5.0) which used to install preformatted manual pages. Regression reported by jj@.
* Cleanup, no functional change:schwarze2018-12-301-21/+9
| | | | | | | | | | | | | | The struct roff_man used to be a bad mixture of internal parser state and public parsing results. Move the public results to the parsing result struct roff_meta, which is already public. Move the rest of struct roff_man to the parser-internal header roff_int.h. Since the validators need access to the parser state, call them from the top level parser during mparse_result() rather than from the main programs, also reducing code duplication. This keeps parser internal state out of thee main programs (five in mandoc portable) and out of eight formatters.
* Major cleanup; may imply minor changes in edge cases of error reporting.schwarze2018-12-141-2/+2
| | | | | | | | | | | Finally, drop support for the run-time configurable mandocmsg() callback. It was over-engineered from the start, never used for anything in a decade, and repeatedly caused maintenance headaches. Consolidate reporting infrastructure into two files, mandoc.h and mandoc_msg.c, mopping up the bits and pieces that were scattered around main.c, read.c, mandoc_parse.h, libmandoc.h, the prototypes of four parsing-related functions, and both parser structs.
* Cleanup, no functional change:schwarze2018-12-131-1/+2
| | | | | | | | | | Split the top level parser interface out of the utility header mandoc.h, into a new header mandoc_parse.h, for use in the main program and in the main parser only. Move enum mandoc_os into roff.h because struct roff_man is the place where it is stored. This allows removal of mandoc.h from seven files in low-level parsers and in formatters.
* Rewrite parse_path_info() to be four lines shorter, simplify ownershipschwarze2018-10-191-47/+41
| | | | | | | | of allocated strings, do not write to the input string, and improve diagnostic output. The confusing error message "invalid arch" as a reaction to mistyping the release name was noticed by tb@, who likes the new code and message.
* enable the equivalent of -O toc in man.cgi(8)schwarze2018-10-021-2/+3
|
* Add missing URI encoding when writing HTTP redirects,schwarze2018-10-011-5/+33
| | | | | | fixing a bug reported by <jungleboogie0 at gmail dot com> on bugs@. While here, fully validate the arch name such that we do not have to URI encode that one.
* Remove redundant value= attributes from option elements,schwarze2018-05-291-8/+6
| | | | | | and use type=search rather than type=text for the input element because it tends to better support autocompletion. Both suggested by John Gardner <gardnerjohng at gmail dot com>.
* In a nutshell, all mobile browsers are broken.schwarze2018-05-181-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default, no matter the physical screen size, they use a fixed viewport width of about 1000px, then scale down the rendered page to make that huge viewport fit on the physical screen. That results in poor rendering for bad websites which assume a large fixed-size viewport (typically requiring zooming in to be able to actually read any text), but in atrocious rendering for good websites that make no assumption about the screen size (unreadably small text in the top left corner, most of the screen empty). A standard way to disable that insane behaviour and just render normally on the actual physical screen size does not exist. The closest thing is the CSS3 Device Adaptation Module Level 1 https://drafts.csswg.org/css-device-adapt/ but https://caniuse.com/#feat=css-deviceadaptation tells me that basically no browser implements it, not even on mobile. The next closest thing is the HTML meta viewport element - even though the problem has nothing to do with HTML and is purely a CSS issue. Standardization is not even planned for that one: * HTML 5.2 mentions it in passing without specifying it: https://www.w3.org/TR/html/document-metadata.html#the-meta-element * The Web Hypertext Application Technology Working Group provides very incomplete information: https://wiki.whatwg.org/wiki/MetaExtensions * CSS3 Device Adaptation Module Level 1 already wants to deprecate it, explaining mostly how to migrate *away* from it to some castle in the sky that no browser implements: https://drafts.csswg.org/css-device-adapt/#viewport-meta While i strongly believe in sticking to well-established standards, in the absence of standards and with atrocious behaviour being universal, there appears to be no alternative to using whatever works. The meta viewport element appears to be the only way to make real-world mobile browsers decently render any HTML page that does not have a fixed-width layout of 1000px. So use it, grudgingly. Originally suggested by xcv at dr dot com. Direction supported by espie@.
* Split -Wstyle into -Wstyle and the even lower -Wbase, and addschwarze2017-06-241-2/+2
| | | | | | | | | | | | | | | -Wopenbsd and -Wnetbsd to check conventions for the base system of a specific operating system. Mark operating system specific messages with "(OpenBSD)" at the end. Please use just "-Tlint" to check base system manuals (defaulting to -Wall, which is now -Wbase), but prefer "-Tlint -Wstyle" for the manuals of portable software projects you maintain that are not part of OpenBSD base, to avoid bogus recommendations about base system conventions that do not apply. Issue originally reported by semarie@, solution using an idea from tedu@, discussed with jmc@ and jca@.
* KNF: remove parentheses from switch case labels; no binary changeschwarze2017-06-201-5/+5
|
* More thoroughly reject direct access to unintended files, such thatschwarze2017-04-191-2/+3
| | | | | | URIs like http://man.openbsd.org/OpenBSD-current/mandoc.db and http://man.openbsd.org/OpenBSD-current/man1/ do not cause display of garbage.
* Simplify: write HTTP 303 redirects with relative locations.schwarze2017-03-181-11/+12
| | | | | | Suggested by bentley@. Delete the HTTP_HOST configuration variable that is now obsolete.
* Bugfix: use SCRIPT_NAME for .Xr hyperlinks.schwarze2017-03-181-2/+3
| | | | Patch from <andreas at AndreasVoegele dot com>.
* In URIs in apropos(1) result tables,schwarze2017-03-151-4/+7
| | | | only write the manpath if it does not match the default.
* Mention the manual page name and section in the HTML page <title>.schwarze2017-03-151-34/+49
| | | | | Based on a patch from <Anton dot Lindqvist at gmail dot com>, but simplified and also covering apropos(1) search results.
* It's annoying that people keep writing URIs including redundant partsschwarze2017-03-151-3/+25
| | | | | like "/OpenBSD-current/manN/". To discourage that, let man.cgi(8) redirect search form results to nice, concise URIs.
* Pledge man.cgi(8).schwarze2017-02-221-1/+15
| | | | | Based on a more complicated patch from semarie@. Sebastien and tb@ both agree with the simplification.
* +arm64deraadt2017-01-251-2/+2
|
* Improve HTML formatting of .Bl -tag.schwarze2017-01-251-1/+3
| | | | | | | | | | | | | | | | | | | | | 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.
* clean up the remaining class attributesschwarze2017-01-211-14/+9
|
* Adjust indentation of the HTML output to the conventions establishedschwarze2017-01-191-27/+27
| | | | by html.c. No semantic change.
* Start cleanup: trim useless HTML comments and <div> elementsschwarze2017-01-191-10/+5
| | | | on the <html> and <body> levels.
* Use the proper HTML escape for double quote ("): &quot; not &quote;.bentley2016-09-111-2/+2
| | | | ok schwarze@
* move zaurus down to the discontinued architecturesschwarze2016-09-031-4/+4
|
* move "sparc" down to discontinued architecturesschwarze2016-09-011-4/+4
|
* fix an fd leakjsg2016-08-181-1/+2
| | | | ok schwarze@
* move armish and hppa64 down in the dropdown box; reminded by jmc@schwarze2016-08-101-5/+6
|
* Some base system pages, for example perl(1), contain non-ASCIIschwarze2016-07-311-2/+3
| | | | | | characters in their source code, so switch on charset autodetection in the same way as in man(1) itself. Issue reported by Pavan Maddamsetti at gmail dot com on bugs@.
* Make all components of the URI individually optional,schwarze2016-07-111-17/+42
| | | | | | | independent of each other, as in: http://man.openbsd.org[/manpath][/mansec][/arch]/name[.sec] The restrictions in the past kept confusing people. Triggered by a question from RafaelNeves at gmail dot com.
* Simplify the code and the server setup by deleting the pseudo-manpathschwarze2016-07-101-12/+4
| | | | | | | | | | "mandoc" that was used for man.cgi(8) documentation and by assuming that the apropos(1) and man.cgi(8) manuals are simply installed in the default manpath. Even though man.cgi(8) is not installed by default when installing OpenBSD, it is easy to copy it into the default manpath used for man.cgi(8). Idea found when considering a question asked by wrant dot com.
* Do not treat PATH_INFO as a complete path if it doesn't containschwarze2016-07-091-2/+2
| | | | | | a manpath. For example, this makes http://man.openbsd.org/mandoc work as expected. Bug reported by tb@, reminded by Svyatoslav Mishyn.
* Simplify search form: minus two visible control elements, minusschwarze2016-05-281-28/+9
| | | | | one table, minus twenty lines of code, no loss of functionality. No idea why i didn't do this earlier...
* Only focus on the query input box when no manual page is displayed,schwarze2016-04-291-9/+18
| | | | | | | | that is, for the index page, for the noresult page, and for the result of an apropos(1) query with more than one page. As noted by bentley@, when a manual page is displayed, it is more important that people can quickly use the space bar for paging and Ctrl-F for searching.
* Set the "autofocus" attribute on the query text box.schwarze2016-04-281-2/+2
| | | | Patch from Fabian dot Raetz at gmail dot com.
* Rename five static functions to make the classification of functionsschwarze2016-04-151-16/+16
| | | | | as parsers, page generators, and result generators more obvious. No functional change.
* prefer warn[x](3) over fprintf(3) where appropriateschwarze2016-04-151-23/+19
|
* Fix parsing of PATH_INFO if both a section directory and anschwarze2016-04-151-18/+14
| | | | architecture subdirectory are specified. Issue reported by tb@.
* Make HTML tags lower case for better stylistic agreement with whatschwarze2016-04-151-97/+97
| | | | html.c does.
* In the architectures dropdown, move aviion, ia64, solbourne, and vaxschwarze2016-04-151-10/+10
| | | | down to the currently unsupported entries.
* If PATH_INFO contains a complete and correct path to a manual pageschwarze2016-04-151-3/+4
| | | | | | | | | file, for example "/OpenBSD-5.9/man2/pledge.2", no database query is needed and the file is delivered directly. But even in this case, let's parse the PATH_INFO and fill the query structure such that the search form at the top of the result page gets pre-filled with useful values.
* omit list of other results one there is only one matchschwarze2016-04-151-21/+24
|