tf.c 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /* tf.c: save and restore fill mode around table */
  2. # include "t.h"
  3. void
  4. savefill(void)
  5. {
  6. /* remembers various things: fill mode, vs, ps in mac 35 (SF) */
  7. Bprint(&tabout, ".de %d\n", SF);
  8. Bprint(&tabout, ".ps \\n(.s\n");
  9. Bprint(&tabout, ".vs \\n(.vu\n");
  10. Bprint(&tabout, ".in \\n(.iu\n");
  11. Bprint(&tabout, ".if \\n(.u .fi\n");
  12. Bprint(&tabout, ".if \\n(.j .ad\n");
  13. Bprint(&tabout, ".if \\n(.j=0 .na\n");
  14. Bprint(&tabout, "..\n");
  15. Bprint(&tabout, ".nf\n");
  16. /* set obx offset if useful */
  17. Bprint(&tabout, ".nr #~ 0\n");
  18. Bprint(&tabout, ".if \\n(.T .if n .nr #~ 0.6n\n");
  19. }
  20. void
  21. rstofill(void)
  22. {
  23. Bprint(&tabout, ".%d\n", SF);
  24. }
  25. void
  26. endoff(void)
  27. {
  28. int i;
  29. for (i = 0; i < MAXHEAD; i++)
  30. if (linestop[i])
  31. Bprint(&tabout, ".nr #%c 0\n", linestop[i] + 'a' - 1);
  32. for (i = 0; i < texct; i++)
  33. Bprint(&tabout, ".rm %c+\n", texstr[i]);
  34. Bprint(&tabout, "%s\n", last);
  35. }
  36. void
  37. ifdivert(void)
  38. {
  39. Bprint(&tabout, ".ds #d .d\n");
  40. Bprint(&tabout, ".if \\(ts\\n(.z\\(ts\\(ts .ds #d nl\n");
  41. }
  42. void
  43. saveline(void)
  44. {
  45. Bprint(&tabout, ".if \\n+(b.=1 .nr d. \\n(.c-\\n(c.-1\n");
  46. linstart = iline;
  47. }
  48. void
  49. restline(void)
  50. {
  51. Bprint(&tabout, ".if \\n-(b.=0 .nr c. \\n(.c-\\n(d.-%d\n", iline - linstart);
  52. linstart = 0;
  53. }
  54. void
  55. cleanfc(void)
  56. {
  57. Bprint(&tabout, ".fc\n");
  58. }