home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume16 / xfmt / README < prev    next >
Text File  |  1988-11-10  |  2KB  |  54 lines

  1.  
  2. The first version of xfmt, 'extended fmt', was written by Bill Gray
  3. (bgray@marque.mu.edu) and appeared in comp.sources.misc as "fmt".
  4. Since it is nearly downward compatible with the BSD fmt program
  5. (treatment of ending sentence punctuation is a little different), you
  6. might choose to name your version "xfmt" -- or not.
  7.  
  8. This version interprets a few nroff -man commands or a (very) few
  9. TeX commands, or both, if you ask it to (by using the -m or -x flags).
  10. It does a more complete job of interpreting fonts in terms of screen
  11. attributes than can be done nroff(1) and ul(1).  There is also a -c flag
  12. for displaying C code with comments highlighted and keywords shown with
  13. various screen attributes.
  14.  
  15. Many man pages are not correctly processed, since many have nroff
  16. commands not interpreted by xfmt.  The addition of -man interpretation
  17. and other features to xfmt will not be to everyone's taste, especially
  18. since they are incompletely implemented.
  19.  
  20. The BSD termcap facility is used in this version of xfmt.  Also, you
  21. need flex, by Vern Paxson et al. to make xfmt.  Unless a second version
  22. of flex has been distributed by now, you will need to modify flex's
  23. skeleton files by making the following changes:
  24.  
  25. CHANGE
  26. static int yy_start;        /* start state number */
  27. TO
  28. static int yy_start = 0;    /* start state number */
  29.  
  30. CHANGE
  31.     yy_start = 1;        /* first start state */
  32. TO
  33.     if (!yy_start) yy_start = 1;    /* first start state */
  34.  
  35. Or you can try "patch < flex.skel.diff" to make the changes
  36. automatically in the distributed version of the file flex.skel.  (This
  37. patch file includes another patch concerning the reject action.) The
  38. change to flex is required so xfmt can choose a start condition in its
  39. main() procedure depending on what flags it sees on the command line.
  40.  
  41. Once you have made xfmt, the accompanying documents can be displayed
  42. with:
  43.     xfmt -mu xfmt.1
  44.     xfmt -xu cmds.tex
  45.     xfmt -c xfmt.l
  46.  
  47.  
  48. The amount of pattern matching done in this version of xfmt exceeds the
  49. capacity of lex by quite a bit.  This kind of program is now easy to do
  50. thanks to the implementors of flex:  Vern Paxson, Kevin Gong, Jef
  51. Poskanzer, Van Jacobson.
  52.  
  53.         Greg Lee, lee@uhccux.uhcc.hawaii.edu
  54.