home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Distributions / ucb / spencer_2bsd.tar.gz / 2bsd.tar / src / csh / sh.print.c < prev    next >
C/C++ Source or Header  |  1980-02-17  |  1KB  |  105 lines

  1. /* Copyright (c) 1979 Regents of the University of California */
  2. #include "sh.h"
  3.  
  4. /*
  5.  * C Shell
  6.  */
  7.  
  8. p60ths(l)
  9.     long l;
  10. {
  11.  
  12.     l += 3;
  13.     printf("%d.%d", (int) (l / 60), (int) ((l % 60) / 6));
  14. }
  15.  
  16. psecs(l)
  17.     long l;
  18. {
  19.     register int i;
  20.  
  21.     i = l / 3600;
  22.     if (i) {
  23.         printf("%d:", i);
  24.         i = l % 3600;
  25.         p2dig(i / 60);
  26.         goto minsec;
  27.     }
  28.     i = l;
  29.     printf("%d", i / 60);
  30. minsec:
  31.     i %= 60;
  32.     printf(":");
  33.     p2dig(i);
  34. }
  35.  
  36. p2dig(i)
  37.     register int i;
  38. {
  39.  
  40.     printf("%d%d", i / 10, i % 10);
  41. }
  42.  
  43. char    linbuf[64];
  44. char    *linp = linbuf;
  45.  
  46. putchar(c)
  47.     register int c;
  48. {
  49.  
  50.     if ((c & QUOTE) == 0 && (c == 0177 || c < ' ' && c != '\t' && c != '\n')) {
  51.         putchar('^');
  52.         if (c == 0177)
  53.             c = '?';
  54.         else
  55.             c |= 'A' - 1;
  56.     }
  57.     c &= TRIM;
  58.     *linp++ = c;
  59.     if (c == '\n' || linp >= &linbuf[sizeof linbuf - 2])
  60.         flush();
  61. }
  62.  
  63. draino()
  64. {
  65.  
  66.     linp = linbuf;
  67. }
  68.  
  69. flush()
  70. {
  71.     register int unit;
  72.  
  73.     if (haderr)
  74.         unit = didfds ? 2 : SHDIAG;
  75.     else
  76.         unit = didfds ? 1 : SHOUT;
  77.     if (linp != linbuf) {
  78.         write(unit, linbuf, linp - linbuf);
  79.         linp = linbuf;
  80.     }
  81. }
  82.  
  83. plist(vp)
  84.     register struct varent *vp;
  85. {
  86.     register int (*wasintr)();
  87.  
  88.     if (setintr)
  89.         wasintr = signal(SIGINT, pintr);
  90.     for (vp = vp->link; vp != 0; vp = vp->link) {
  91.         int len = blklen(vp->vec);
  92.  
  93.         printf(vp->name);
  94.         printf("\t");
  95.         if (len != 1)
  96.             putchar('(');
  97.         blkpr(vp->vec);
  98.         if (len != 1)
  99.             putchar(')');
  100.         printf("\n");
  101.     }
  102.     if (setintr)
  103.         signal(SIGINT, wasintr);
  104. }
  105.