175584SruA line prefix request to make e.g. French quotation possible: 275584Sru 375584Sru He said: >> blablablabla 475584Sru >> blablabla blabla bla 575584Sru >> blabla blabla bla bla 675584Sru >> bla bla bla blablabla 775584Sru >> blabla. << 875584Sru 975584SruGive a more helpful error message when the indent is set to a value 1075584Srugreater than the line-length. 1175584Sru 1275584SruTracing. This is a pain to implement because requests are responsible 1375584Srufor reading their own arguments. 1475584Sru 1575584SruPossibly implement -s option (stop every N pages). This functionality 1675584Sruwould be more appropriate in a postprocessor. 1775584Sru 1875584SruLine breaking should be smarter. In particular, it should be possible 1975584Sruto shrink spaces. Also avoid having a line that's been shrunk a lot 2075584Srunext to a line that's been stretched a lot. The difficulty is to 2175584Srudesign a mechanism that allows the user complete control over the 2275584Srudecision of where to break the line. 2375584Sru 2475584SruProvide a mechanism to control the shape of the rag in non-justified 2575584Srutext. 2675584Sru 2775584SruAdd a discretionary break escape sequence. \='...'...'...' like TeX. 2875584Sru 2975584SruThink about kerning between characters and spaces. (Need to implement 3075584Sruget_breakpoints and split methods for kern_pair_node class.) 3175584Sru 3275584SruIn troff, if .L > 1 when a diversion is reread in no-fill mode, then 3375584Sruextra line-spacing is added on. Groff at the moment treats line-spacing 3475584Srulike vertical spacing and doesn't do this. 3575584Sru 3675584SruSuppose \(ch comes from a special font S, and that the current font is 3775584SruR. Suppose that R contains a hyphen character and that S does not. 3875584SruSuppose that the current font is R. Suppose that \(ch is in a word 3975584Sruand has a non-zero hyphen-type. Then we ought to be able to hyphenate, 4075584Srubut we won't be able to because we will look for the hyphen only in 4175584Srufont S and not in font R. 4275584Sru 4375584SruPerhaps the current input level should be accessible in a number register. 4475584Sru 4575584SruShould \w deal with a newline like \X? 4675584Sru 4775584SruHave another look at uses of token::delimiter. Perhaps we need to 4875584Srudistinguish the case where we want to see if a token could start a 4975584Srunumber, from the case where we want to see if it could occur somewhere 5075584Sruin a number expression. 5175584Sru 5275584SruProvide a facility like copy thru in pic. 5375584Sru 5475584SruFancier implementation of font families which doesn't group fonts into 5575584Srufamilies purely on the basis of their names. 5675584Sru 5775584SruIn the DESC file make the number of fonts optional if they are all on 5875584Sruone line. 5975584Sru 6075584SruNumber register to give the diversion level. 6175584Sru 6275584SruTime various alternative implementations of scale (both in font.c and 6375584Srunumber.c). On a sparc it's faster to always do it in floating point. 6475584Sru 6575584SruDevise a more compact representation for the hyphenation patterns trie. 6675584Sru 6775584SruHave a per-environment parameter to increase letter-spacing. 6875584Sru 6975584SruNumber register to return character height. 7075584Sru 7175584SruNumber register to return character slant. 7275584Sru 7375584SruRequest to set character height. 7475584Sru 7575584SruRequest to set character slant. 7675584Sru 7775584SruProvide some way to upcase or downcase strings. 7875584Sru 7975584SruSupport non-uniformly scalable fonts. Perhaps associate a suffix with 8075584Srua particular range of sizes. eg 8175584Sru sizesuffix .display 14-512 8275584SruThen is you ask for R at pointsize 16, groff will first look for 8375584SruR.display and then R. Probably necessary to be able to specify a 8475584Sruseparate unitwidth for each sizesuffix (eg. for X). 8575584Sru 8675584SruMake it possible to suppress hyphenation on a word-by-word basis. 8775584Sru(Perhaps store hyphenation flags in tfont.) 8875584Sru 8975584SruPossibly allow multiple simultaneous input line traps. 9075584Sru 9175584SruUnpaddable, breakable space escape sequence. 9275584Sru 9375584SruSupport hanging punctuation. 9475584Sru 9575584SruIn justified text, if the last line of a paragraph is only a little 9675584Srubit short it might be desirable to justify the line. Allow the user 9775584Srucontrol over this. 9875584Sru 9975584SruThe pm request could print where the macro was defined. Also could 10075584Sruoptionally print the contents of a macro. 10175584Sru 10275584SruProvide some way to round numbers to multiples of the current 10375584Sruhorizontal or vertical resolution. 10475584Sru 10575584SruBetter string-processing support (search). 10675584Sru 10775584SruGeneralized ligatures. 10875584Sru 10975584SruProvide some way for a macro to tell whether it was called with `'' or 11075584Sru`.'. This would be useful for implementing a tracing macro package. 11175584Sru 11275584SruRequest to remove an environment. (Maintain a count of the references 11375584Sruto the environment from the environment table, environment dictionary 11475584Sruor environment stack.) 11575584Sru 11675584SruPerhaps in the nr request a leading `-' should only be recognized as a 11775584Srudecrement when it's at the same input level as the request. 11875584Sru 11975584SruDon't ever change a charinfo. Create new variants instead and chain 12075584Sruthem together. 12175584Sru 12275584SruUnix troff appears to read the first character of a request name in 12375584Srucopy mode. Should we do the same? 12475584Sru 12575584SruNumber register giving name of end macro. 12675584Sru 12775584SruMore thorough range checking. 12875584Sru 12975584SruProvide syntax for octal and hexadecimal numeric constants. Perhaps 13075584Sruo#100 and x#7f as per Scheme. Or perhaps PostScript 16#7f. Ambiguity 13175584Srubetween whether `c' is treated as digit or scaling indicator. 132