summaryrefslogtreecommitdiffstats
path: root/TODO
Commit message (Collapse)AuthorAgeFilesLines
* Do not access a NULL pointer if a table contains a horizontal lineIngo Schwarze2019-06-111-0/+3
| | | | | | next to a table line having fewer columns than the table as a whole. Bug found by Stephen Gregoratto <dev at sgregoratto dot me> with aerc-config(5).
* In fs_lookup(), use stat(2) rather than access(2) to check file existence.Ingo Schwarze2019-05-031-6/+0
| | | | | | | | | | | Some mildly broken real-world packages on some operating systems contain dangling symlinks in manual page directories: pestering the user to run makewhatis(8) makes no sense because that won't help. On the other hand, missing read permissions deserve ugly error messages and are unlikely to occur in practice anyway. Fixing an issue reported by Lorenzo Beretta <loreb at github> as part of https://github.com/void-linux/void-packages/issues/9868 .
* In man(1) mode with a specific section requested,Ingo Schwarze2019-05-031-12/+0
| | | | | | | | | | | | | | | | try harder to find the best match. Use this order of preference: 1. The section in both the directory name and the file name matches exactly. 2. The section in the file name matches exactly. 3. The section in the directory name matches exactly. 4. Neither of them matches exactly. The latter can happen when mansearch() finds substring matches or when the second .Dt argument mismatches the dir and file names. Lorenzo Beretta <loreb at github> reported that this caused real problems on Void Linux, like "man 3 readline" showing readline(3m). See https://github.com/void-linux/void-packages/issues/9868 for details.
* In man(1) mode, i.e. when asking for a single manual page by name,Ingo Schwarze2019-04-301-6/+0
| | | | | | | | | | | | prefer file name matches over .Dt/.TH matches over first NAME matches over later NAME matches, but do not change the ordering for apropos(1) nor for man -a. This reverts main.c rev. 1.310 and mansearch.h rev. 1.29 and includes a partial revert of mansearch.c rev. 1.79. Regression reported by Lorenzo Beretta <loreb at github> as part of https://github.com/void-linux/void-packages/issues/9868 .
* issues found by Jan Stary in groffer(1) version 1.19Ingo Schwarze2019-04-231-0/+21
|
* new man(1) issues from Lorenzo Beretta <loreb at github>Ingo Schwarze2019-04-011-0/+24
|
* When the -S option is given to man(1) and the requested manual pageIngo Schwarze2019-03-041-9/+0
| | | | | | | | | | | | name is not found and the requested architecture is unknown, complain about the architecture rather than about the manual page name: $ man -S vax cpu man: Unknown architecture "vax". $ man -S sparc64 foobar man: No entry for foobar in the manual. Friendlier error message suggested by jmc@, who also OK'ed the patch.
* Fix the last straggler where the struct roff_node "line" memberIngo Schwarze2019-03-041-4/+0
| | | | | was abused to detect an input line break; instead, use the NODE_LINE flag to improve robustness.
* additional comments on two TODO itemsIngo Schwarze2019-03-041-3/+11
|
* Represent multiple subsequent .IP blocks having a consistentIngo Schwarze2019-03-021-5/+0
| | | | | | | | | head argument of *, \-, or \(bu as <ul> rather than as <dl>, using a bit of heuristics. Basic idea suggested by Dagfinn Ilmari Mannsaker <ilmari at github> in https://github.com/Debian/debiman/issues/67 and independently by <Pali dot Rohar at gmail dot com> on <discuss at mandoc dot bsd dot lv>.
* Wrap .Sh/.SH sections and .Ss/.SS subsections in HTML <section> elementsIngo Schwarze2019-03-011-7/+0
| | | | | | as recommended for accessibility by the HTML 5 standard. Triggered by a similar, but slightly different suggestion from Laura Morales <lauretas at mail dot com>.
* Format multiple subsequent .IP or multiple subsequent .TP/.TQIngo Schwarze2019-02-281-5/+0
| | | | | as a single <dl> list rather than opening a new list for each item; feature suggested by Pali dot Rohar at gmail dot com.
* Delete several entries that were already fixed.Ingo Schwarze2019-01-171-28/+1
| | | | | The two entries about dashes, hyphens, and minus signs are no longer relevant because we decided on a policy that is now documented.
* Two functional improvements to filling in terminal output.Ingo Schwarze2019-01-041-7/+0
| | | | | | | | | | | 1. Fully support no-fill mode in mdoc(7), even when invoked with low-level roff(7) .nf requests. As a side effect, this substantially simplifies the implementation of .Bd -unfilled and .Bd -literal. 2. Let .Bd -centered fill its text, using the new TERMP_CENTER flag. That finally fixes the long-standing bug that it used to operate in no-fill mode, which was known to be wrong for at least five years. This also simplifies the implementation of .Bd -centered considerably.
* Several improvements to escape sequence handling.Ingo Schwarze2018-12-151-10/+0
| | | | | | | | | | | | | | | | | | | | | | | * Add the missing special character \_ (underscore). * Partial implementations of \a (leader character) and \E (uninterpreted escape character). * Parse and ignore \r (reverse line feed). * Add a WARNING message about undefined escape sequences. * Add an UNSUPP message about unsupported escape sequences. * Mark \! and \? (transparent throughput) and \O (suppress output) as unsupported. * Treat the various variants of zero-width spaces as one-byte escape sequences rather than as special characters, to avoid defining bogus forms with square brackets. * For special characters with one-byte names, do not define bogus forms with square brackets, except for \[-], which is valid. * In the form with square brackets, undefined special characters do not fall back to printing the name verbatim, not even for one-byte names. * Starting a special character name with a blank is an error. * Undefined escape sequences never abort formatting of the input string, not even in HTML output mode. * Document the newly handled escapes, and a few that were missing. * Regression tests for most of the above.
* Better handle automatic column width assignments in the presence ofIngo Schwarze2018-11-291-5/+0
| | | | | | | | | | | | | | horizontal spans, by implementing a moderately difficult iterative algoritm. The benefit is that spans containing long text no longer cause an excessive width of their starting column. The result is likely not optimal, in particular in the presence of many spans overlapping in complicated ways nor when spans interact with equalizing or maximizing colums. But i doubt the practical usefulness of making this more complicated. Issue originally reported in synaptics(4), which now looks better, by tedu@ three years ago, and reminded by Pali Rohar this summer.
* In -T utf8 output mode, render tbl(7) borders with the UnicodeIngo Schwarze2018-11-281-9/+0
| | | | | | | | | | | | | box drawing characters, U+2500 to U+257F. Originally suggested by bentley@ four years ago, reminded this summer by Pali Rohar. Binary and decimal arithmetics are boring, so let's use some ternary arithmetics for a change. That said, some other aspects are too complicated for my liking, so this could use some polishing in the future.
* Let cells containing nothing but \^ extend the cell above.Ingo Schwarze2018-11-251-4/+0
| | | | Missing feature reported by Pali dot Rohar at gmail dot com.
* In tbl(7) -T html output,Ingo Schwarze2018-11-251-4/+4
| | | | | | | | | | span cells horizontally and vertically as requested by the layout. Does not handle spans requested in the data section yet. To be able to do this, record the number of rows spanned in the first data cell (struct tbl_dat) of a vertical span. Missing feature reported by Pali dot Rohar at gmail dot com.
* HTML formatting of .IPIngo Schwarze2018-11-251-0/+6
|
* Implement horizontal and vertical alignment of tbl(7) cell contentIngo Schwarze2018-11-241-4/+0
| | | | | in -T html output. This does not handle spanned cells yet. Missing feature reported by Pali dot Rohar at gmail dot com.
* in -man -Thtml, vertical spacing is required before .IPIngo Schwarze2018-10-251-0/+6
|
* Add an option -T html -O toc to add a brief table of contents nearIngo Schwarze2018-10-021-5/+0
| | | | | the top of HTML pages containing at least two non-standard sections. Suggested by Adam Kalisz and discussed with kristaps@ during EuroBSDCon 2018.
* Support a second argument to -O man,Ingo Schwarze2018-10-021-6/+0
| | | | | | selecting the format according to local existence of the file. Suggested by kristaps@ during EuroBSDCon 2018. Written on the train Frankfurt-Karlsruhe returning from EuroBSDCon.
* Render the eqn(7) "sqrt" function as U+221A in UTF-8 output.Ingo Schwarze2018-10-021-4/+1
| | | | | | This also agrees with what groff does. Suggested by an attendee of EuroBSDCon 2018 in Bucuresti. Written on the plane Bucuresti-Frankfurt returning from EuroBSDCon.
* feature suggestions from EuroBSDCon 2018Ingo Schwarze2018-09-231-0/+14
|
* Rudimentary implementation of the roff(7) .while request.Ingo Schwarze2018-08-241-4/+0
| | | | | | | | | | | Needed for example by groff_hdtbl(7). There are two limitations: It does not support nested .while requests yet, and each .while loop must start and end in the same scope. The roff_parseln() return codes are now more flexible and allow OR'ing options.
* Implement the roff(7) .shift and .return requests,Ingo Schwarze2018-08-231-1/+1
| | | | | | | | | | | | | | for example used by groff_hdtbl(7) and groff_mom(7). Also correctly interpolate arguments during nested macro execution even after .shift and .return, implemented using a stack of argument arrays. Note that only read.c, but not roff.c can detect the end of a macro execution, and the existence of .shift implies that arguments cannot be interpolated up front, so unfortunately, this includes a partial revert of roff.c rev. 1.337, moving argument interpolation back into the function roff_res().
* Mostly complete implementation of the 'c' (character available)Ingo Schwarze2018-08-191-6/+0
| | | | | | | | | | | roff conditional, except that the .char request still isn't supported and that behaviour differs from groff in many edge cases. But at least valid character names and numbers are now distinguished from invalid ones. This also fixes the bug that parsing of the 'c' conditional was incomplete, which resulted in leaking the tested character to the input parser at the beginning of the body when the condition was inverted.
* implement the GNU man-ext .SY/.YS (synopsis block) macro in man(7),Ingo Schwarze2018-08-181-3/+0
| | | | used in most manual pages of the groff package
* implement the GNU man-ext .TQ macro in man(7),Ingo Schwarze2018-08-161-3/+0
| | | | used for example by groff_diff(7)
* Implement the \*(.T predefined string (interpolate device name)Ingo Schwarze2018-08-161-7/+0
| | | | | by allowing the preprocessor to pass it through to the formatters. Used for example by the groff_char(7) manual page.
* support tail arguments on the .ME and .UE macros,Ingo Schwarze2018-08-141-3/+0
| | | | used for example in the ditroff(7) manual of the groff package
* error message for invalid -S argumentIngo Schwarze2018-08-101-0/+9
|
* handle the non-portable GNU-style \[charNN], \[charNNN] characterIngo Schwarze2018-08-101-3/+4
| | | | escape sequences, used for example in the groff_char(7) manual page
* The groff man-ext macros define fonts CB, CI, and CR,Ingo Schwarze2018-08-101-3/+0
| | | | | and some groff manual pages actually use them in .ft requests. It's easy enough to handle these .ft requests in mandoc, too.
* Implement the roff(7) .nop (no operation) request.Ingo Schwarze2018-08-101-3/+0
| | | | | Examples of manual pages (ab)using it include groff(7), chem(1), groff_mom(7), and groff_hdtbl(7).
* scanned to groff manual pages for todo items;Ingo Schwarze2018-08-061-0/+28
| | | | | the sheer number of issues is amazing, but they all look feasible
* makewhatis -p complains about language subdirectoriesIngo Schwarze2018-07-311-0/+4
|
* remove two entries that were doneIngo Schwarze2018-07-281-10/+2
|
* new todos, mostly from Pali Rohar, mostly tbl(7)Ingo Schwarze2018-07-161-0/+18
|
* Do not write duplicate id= attributes, they violate HTML syntax.Ingo Schwarze2018-05-251-6/+3
| | | | | Append suffixes for disambiguation. Issue first reported by Jakub Klinkovsky <j dot l dot k at gmx dot com> (Arch Linux).
* Eliminate the class=It-* attributes.Ingo Schwarze2018-05-081-6/+0
| | | | | Cleaner HTML, more idiomatic CSS, and minus 30 lines of C code. Suggested by John Gardner <gardnerjohng at gmail dot com>.
* multiple new entries from various sourcesIngo Schwarze2018-04-241-0/+41
|
* dedup issuesIngo Schwarze2018-04-201-1/+6
|
* Two new low-level roff(7) features:Ingo Schwarze2018-04-101-8/+0
| | | | | | * .nr optional third argument (auto-increment step size) * \n+ and \n- numerical register auto-increment and -decrement bentley@ reported on Dec 9, 2013 that lang/sbcl(1) uses these.
* Using an undefined string or macro will cause it to be defined as empty.Ingo Schwarze2018-04-091-4/+0
| | | | | Observed by Werner Lemberg on Nov 14, 2011 and rotting on my TODO list ever since.
* duplicate anchorsIngo Schwarze2017-10-281-0/+4
|
* format ".IP *" etc. as <ul> rather than <dl>Ingo Schwarze2017-09-021-0/+4
|
* two more entries from the mdoclint TODO, clerified by wiz@Ingo Schwarze2017-07-241-1/+10
|