diff options
Diffstat (limited to 'contrib/groff/troff/TODO')
-rw-r--r-- | contrib/groff/troff/TODO | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/contrib/groff/troff/TODO b/contrib/groff/troff/TODO new file mode 100644 index 0000000..7e51123 --- /dev/null +++ b/contrib/groff/troff/TODO @@ -0,0 +1,139 @@ +Give a more helpful error message when the indent is set to a value +greater than the line-length. + +Tracing. This is a pain to implement because requests are responsible +for reading their own arguments. + +Possibly implement -s option (stop every N pages). This functionality +would be more appropriate in a postprocessor. + +Line breaking should be smarter. In particular, it should be possible +to shrink spaces. Also avoid having a line that's been shrunk a lot +next to a line that's been stretched a lot. The difficulty is to +design a mechanism that allows the user complete control over the +decision of where to break the line. + +Provide a mechanism to control the shape of the rag in non-justified +text. + +Add a discretionary break escape sequence. \B'...'...'...' like TeX. + +Think about kerning between characters and spaces. (Need to implement +get_breakpoints and split methods for kern_pair_node class.) + +In troff, if .L > 1 when a diversion is reread in no-fill mode, then +extra line-spacing is added on. Groff at the moment treats line-spacing +like vertical spacing and doesn't do this. + +Suppose \(ch comes from a special font S, and that the current font is +R. Suppose that R contains a hyphen character and that S does not. +Suppose that the current font is R. Suppose that \(ch is in a word +and has a non-zero hyphen-type. Then we ought to be able to hyphenate, +but we won't be able to because we will look for the hyphen only in +font S and not in font R. + +Variant of tm which doesn't write a newline. + +Perhaps the current input level should be accessible in a number register. + +Should \w deal with a newline like \X? + +Have another look at uses of token::delimiter. Perhaps we need to +distinguish the case where we want to see if a token could start a +number, from the case where we want to see if it could occur somewhere +in a number expression. + +Provide a facility like copy thru in pic. + +Fancier implementation of font families which doesn't group fonts into +families purely on the basis of their names. + +In the DESC file make the number of fonts optional if they are all on +one line. + +Number register to give the diversion level. + +Time various alternative implementations of scale (both in font.c and +number.c). On a sparc it's faster to always do it in floating point. + +Devise a more compact representation for the hyphenation patterns trie. + +Have a per-environment parameter to increase letter-spacing. + +Number register to return character height. + +Number register to return character slant. + +Request to set character height. + +Request to set character slant. + +Provide some way to upcase or downcase strings. + +Support non-uniformly scalable fonts. Perhaps associate a suffix with +a particular range of sizes. eg + sizesuffix .display 14-512 +Then is you ask for R at pointsize 16, groff will first look for +R.display and then R. Probably necessary to be able to specify a +separate unitwidth for each sizesuffix (eg. for X). + +Request to copy an environment into the current environment. + +Variant of `.it' for which a line interrupted with \c counts as one +input line. + +Make it possible to suppress hyphenation on a word-by-word basis. +(Perhaps store hyphenation flags in tfont.) + +Possibly allow multiple simultaneous input line traps. + +Unpaddable, breakable space escape sequence. + +Support hanging punctuation. + +In justified text, if the last line of a paragraph is only a little +bit short it might be desirable to justify the line. Allow the user +control over this. + +Have a blank line macro like the end macro. When a blank line macro +has been set, then a blank line causes the blank line macro to be +called rather than doing the equivalent of .sp. + +The pm request could print where the macro was defined. Also could +optionally print the contents of a macro. + +Provide some way to round numbers to multiples of the current +horizontal or vertical resolution. + +Better string-processing support (substring, length, search). + +Generalized ligatures. + +Provide some way for a macro to tell whether it was called with `'' or +`.'. This would be useful for implementing a tracing macro package. + +Request to remove an environment. (Maintain a count of the references +to the environment from the environment table, environment dictionary +or environment stack.) + +Perhaps in the nr request a leading `-' should only be recognized as a +decrement when it's at the same input level as the request. + +Don't ever change a charinfo. Create new variants instead and chain +them together. + +Make it possible to tr characters onto \~. + +Unix troff appears to read the first character of a request name in +copy mode. Should we do the same? + +Number register giving name of end macro. + +More thorough range checking. + +Provide syntax for octal and hexadecimal numeric constants. Perhaps +o#100 and x#7f as per Scheme. Or perhaps PostScript 16#7f. Ambiguity +between whether `c' is treated as digit or scaling indicator. + +Request to return from a macro (ie ignore the rest of the current +input level). |