t6.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #include "a.h"
  2. /*
  3. * Section 6 - line length and indenting.
  4. */
  5. /* set line length */
  6. void
  7. ll(int v)
  8. {
  9. if(v == 0)
  10. v = getnr(L(".l0"));
  11. nr(L(".l0"), getnr(L(".l")));
  12. nr(L(".l"), v);
  13. }
  14. void
  15. r_ll(int argc, Rune **argv)
  16. {
  17. if(argc < 2)
  18. ll(0);
  19. else if(argv[1][0] == '+')
  20. ll(getnr(L(".l"))+evalscale(argv[1]+1, 'v'));
  21. else if(argv[1][0] == '-')
  22. ll(getnr(L(".l"))-evalscale(argv[1]+1, 'v'));
  23. else
  24. ll(evalscale(argv[1], 'm'));
  25. if(argc > 2)
  26. warn("extra arguments to .ll");
  27. }
  28. void
  29. in(int v)
  30. {
  31. nr(L(".i0"), getnr(L(".i")));
  32. nr(L(".i"), v);
  33. nr(L(".ti"), 0);
  34. /* XXX */
  35. }
  36. void
  37. r_in(int argc, Rune **argv)
  38. {
  39. br();
  40. if(argc < 2)
  41. in(getnr(L(".i0")));
  42. else if(argv[1][0] == '+')
  43. in(getnr(L(".i"))+evalscale(argv[1]+1, 'm'));
  44. else if(argv[1][0] == '-')
  45. in(getnr(L(".i"))-evalscale(argv[1]+1, 'm'));
  46. else
  47. in(evalscale(argv[1], 'm'));
  48. if(argc > 3)
  49. warn("extra arguments to .in");
  50. }
  51. void
  52. ti(int v)
  53. {
  54. nr(L(".ti"), v);
  55. }
  56. void
  57. r_ti(int argc, Rune **argv)
  58. {
  59. USED(argc);
  60. br();
  61. ti(evalscale(argv[1], 'm'));
  62. }
  63. void
  64. t6init(void)
  65. {
  66. addreq(L("ll"), r_ll, -1);
  67. addreq(L("in"), r_in, -1);
  68. addreq(L("ti"), r_ti, 1);
  69. nr(L(".l"), eval(L("6.5i")));
  70. }