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