|
|
1.1 root 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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.