summaryrefslogtreecommitdiffstats
path: root/TODO
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
|
* migrate the mdoclint(1) TODO list here, from pkgsrcIngo Schwarze2017-07-221-0/+13
|
* MAP_PRIVATE is pointless without PROT_WRITEIngo Schwarze2017-07-201-5/+0
|
* For -Tlint, put parser messages on stdout instead of stderr.Ingo Schwarze2017-07-201-9/+0
| | | | | | | | | | | Originally, naddy@ requested this in 2011 (or maybe even earlier). It was discussed with joerg@, kristaps@, naddy@, and espie@ in 2011, and everybody agreed in principle, but it was postponed because kristaps@ wanted to do some cleanup of the message system first. Meanwhile, message infrastructure was improved about a dozen times... This makes long, tedious commands like "mandoc -Tlint *.1 2>&1 | less" unnecessary and allows simple ones like "man -l -Tlint *.1".
* correctly handle letters in .Nx arguments; improves for exampleIngo Schwarze2017-07-201-5/+0
| | | | getpgid(2), ac(8), ldconfig(8), mount_ffs(8), sa(8), ttyflags(8), ...
* three ideas found in a different TODO fileIngo Schwarze2017-07-201-0/+8
|
* delete some entries that have been taken care ofIngo Schwarze2017-07-191-47/+0
|
* eqn(7) nits from bentley@Ingo Schwarze2017-07-141-0/+9
|
* eqn(1) output operator translationIngo Schwarze2017-06-231-0/+7
|
* Introduce a new mandoc(1) message level, -W style, below -W warning.Ingo Schwarze2017-05-161-14/+0
| | | | | | | | | | | | | Switch -W all from meaning -W warning to meaning -W style. The meaning of -T lint does *not* change, it still implies -W warning. No messages on the new level yet, but they will come. Usually, i do not lightly make the user interface larger. But this has been planned for years, and EXIT STATUS 1 was reserved for it all the time. The message system is now stable enough to finally implement it. jmc@ regarding the concept: "really good idea"
* ASCII characters that are special to roffIngo Schwarze2017-04-271-0/+7
|
* new -mdoc -Tmarkdown output mode; OK millert@ reyk@ tb@;Ingo Schwarze2017-03-031-6/+0
| | | | thanks to reyk@ and to Vsevolod at FreeBSD for suggesting it
* double quotes were fixed, finallyIngo Schwarze2017-02-181-4/+1
|
* reference a relevant mail for one TODO itemIngo Schwarze2017-02-081-1/+1
|
* remove several things that were taken care of in the pastIngo Schwarze2017-02-051-25/+0
|
* mark up .Ar, .Fa, .Va, .Ft, and .Vt with <var> rather than <i>;Ingo Schwarze2017-02-051-3/+0
| | | | suggested by bentley@ long ago, but needed lots of cleanup first
* more work found in old mailsIngo Schwarze2017-02-031-1/+17
|
* MANDOCERR_BADTAB no longer exists,Ingo Schwarze2017-01-281-8/+0
| | | | and i checked that MANDOCERR_FI_TAB is used correctly.
* warn about invalid output optionsIngo Schwarze2017-01-271-7/+0
| | | | | and error out if they occur on the command line; missing feature found in the TODO file
* Parse the section number from the content of preformatted pagesIngo Schwarze2017-01-271-5/+0
| | | | and warn if it doesn't match the directory where the file was found.
* more info on man(7) .Xr hyperlinkingIngo Schwarze2017-01-261-0/+3
|
* Fix -man -Thtml formatting after .nf (which has nothing to doIngo Schwarze2017-01-261-9/+0
| | | | | | | | | | | | | | | | with "literal", by the way, it means "no fill"): * Use <pre> such that whitespace is preserved. * Preserve lines breaks. * For font alternating macros, avoid node recursion which required scary juggling with the fill state. Instead, simply print the text children directly. Missing feature first noticed by kristaps@ in 2011, the again reported by afresh1@ in 2016, and finally reported here: https://github.com/Debian/debiman/issues/21 , which i only found because of Shane Kerr's comment here: https://plus.google.com/110314300533310775053/posts/H1eaw9Yskoc
* Improve HTML formatting of .Bl -tag.Ingo Schwarze2017-01-251-6/+0
| | | | | | | | | | | | | | | | | | | | | 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.
* Completely delete the buf field of struct html and all the buf*()Ingo Schwarze2017-01-171-9/+0
| | | | | | | | | interfaces. Such a static buffer was a bad idea in the first place, causing unfixable truncation that was only prevented by triggering an assertion failure. Instead, let the small number of remaining users allocate and free their own, temporary dynamic buffers, or for the case of .Xr and .In, pass the original data to be assembled in print_otag().