t20.c 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #include "a.h"
  2. /*
  3. * 20. Miscellaneous
  4. */
  5. /* .mc - margin character */
  6. /* .ig - ignore; treated like a macro in t7.c */
  7. /* .pm - print macros and strings */
  8. void
  9. r_pm(int argc, Rune **argv)
  10. {
  11. int i;
  12. if(argc == 1){
  13. printds(0);
  14. return;
  15. }
  16. if(runestrcmp(argv[1], L("t")) == 0){
  17. printds(1);
  18. return;
  19. }
  20. for(i=1; i<argc; i++)
  21. fprint(2, "%S: %S\n", argv[i], getds(argv[i]));
  22. }
  23. void
  24. r_tm(Rune *name)
  25. {
  26. Rune *line;
  27. USED(name);
  28. line = readline(CopyMode);
  29. fprint(2, "%S\n", line);
  30. free(line);
  31. }
  32. void
  33. r_ab(Rune *name)
  34. {
  35. USED(name);
  36. r_tm(L("ab"));
  37. exits(".ab");
  38. }
  39. void
  40. r_lf(int argc, Rune **argv)
  41. {
  42. if(argc == 1)
  43. return;
  44. if(argc == 2)
  45. setlinenumber(nil, eval(argv[1]));
  46. if(argc == 3)
  47. setlinenumber(argv[2], eval(argv[1]));
  48. }
  49. void
  50. r_fl(int argc, Rune **argv)
  51. {
  52. USED(argc);
  53. USED(argv);
  54. Bflush(&bout);
  55. }
  56. void
  57. t20init(void)
  58. {
  59. addreq(L("mc"), r_warn, -1);
  60. addraw(L("tm"), r_tm);
  61. addraw(L("ab"), r_ab);
  62. addreq(L("lf"), r_lf, -1);
  63. addreq(L("pm"), r_pm, -1);
  64. addreq(L("fl"), r_fl, 0);
  65. }