t6.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. /* XXX */
  34. }
  35. void
  36. r_in(int argc, Rune **argv)
  37. {
  38. if(argc < 2)
  39. in(getnr(L(".i0")));
  40. else if(argv[1][0] == '+')
  41. in(getnr(L(".i"))+evalscale(argv[1]+1, 'm'));
  42. else if(argv[1][0] == '-')
  43. in(getnr(L(".i"))-evalscale(argv[1]+1, 'm'));
  44. else
  45. in(evalscale(argv[1], 'm'));
  46. if(argc > 3)
  47. warn("extra arguments to .in");
  48. }
  49. void
  50. ti(int v)
  51. {
  52. nr(L(".ti"), v);
  53. }
  54. void
  55. r_ti(int argc, Rune **argv)
  56. {
  57. USED(argc);
  58. ti(evalscale(argv[1], 'm'));
  59. }
  60. void
  61. t6init(void)
  62. {
  63. addreq(L("ll"), r_ll, -1);
  64. addreq(L("in"), r_in, -1);
  65. addreq(L("ti"), r_ti, 1);
  66. nr(L(".l"), eval(L("6.5i")));
  67. }