move.c 888 B

12345678910111213141516171819202122232425262728
  1. /*
  2. * This file is part of the UCB release of Plan 9. It is subject to the license
  3. * terms in the LICENSE file found in the top-level directory of this
  4. * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
  5. * part of the UCB release of Plan 9, including this file, may be copied,
  6. * modified, propagated, or distributed except according to the terms contained
  7. * in the LICENSE file.
  8. */
  9. # include "e.h"
  10. # include "y.tab.h"
  11. void move(int dir, int amt, int p)
  12. {
  13. double a;
  14. yyval = p;
  15. a = EM(amt/100.0, ps);
  16. printf(".ds %d ", yyval);
  17. if (dir == FWD || dir == BACK)
  18. printf("\\h'%s%gm'\\*(%d\n", (dir==BACK) ? "-" : "", a, p);
  19. else if (dir == UP)
  20. printf("\\v'-%gm'\\*(%d\\v'%gm'\n", a, p, a);
  21. else if (dir == DOWN)
  22. printf("\\v'%gm'\\*(%d\\v'-%gm'\n", a, p, a);
  23. dprintf(".\tmove %d dir %d amt %g; h=%g b=%g\n",
  24. p, dir, a, eht[yyval], ebase[yyval]);
  25. }