mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-10-29 20:04:57 +01:00
Compare commits
960
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8eb115465a | ||
|
|
d02569bb3d | ||
|
|
87d30e5f12 | ||
|
|
5754a5a4c6 | ||
|
|
c7d857e2e7 | ||
|
|
7b09b65ace | ||
|
|
a9a8bdada4 | ||
|
|
d1277fd2fb | ||
|
|
4b01ed899e | ||
|
|
825295d3ff | ||
|
|
d6e48baadd | ||
|
|
b85a717b09 | ||
|
|
c757658c4b | ||
|
|
c86ca09964 | ||
|
|
d41c382fe6 | ||
|
|
607a40c6e1 | ||
|
|
348c6806a4 | ||
|
|
735e358f25 | ||
|
|
722b091822 | ||
|
|
2ae061b264 | ||
|
|
ecb788c754 | ||
|
|
4f05f4b368 | ||
|
|
7266542fff | ||
|
|
94a8b07f4b | ||
|
|
714b12d725 | ||
|
|
4e55c42d72 | ||
|
|
11ebf0ebd3 | ||
|
|
505e2a1f4f | ||
|
|
2e7425f9ed | ||
|
|
55db1dc680 | ||
|
|
94e0026439 | ||
|
|
c04e0449c9 | ||
|
|
6a377a72c4 | ||
|
|
a79a426c12 | ||
|
|
6b4b8d523e | ||
|
|
44d2687258 | ||
|
|
0f9267b135 | ||
|
|
ac885d85b8 | ||
|
|
664da614e7 | ||
|
|
c0e98101f9 | ||
|
|
a5effdfb90 | ||
|
|
37c150fd6a | ||
|
|
15487b11d3 | ||
|
|
a3bfc1d7de | ||
|
|
e0a9f6cda9 | ||
|
|
f8db4c38db | ||
|
|
2b2995aa3d | ||
|
|
0b78b79dbd | ||
|
|
f5d55cde2f | ||
|
|
74401b0a18 | ||
|
|
052087bbd6 | ||
|
|
9908d68908 | ||
|
|
e28b94ad12 | ||
|
|
bb38255937 | ||
|
|
b8d1588084 | ||
|
|
1ec02af32d | ||
|
|
ed799fb9fa | ||
|
|
bcb980853d | ||
|
|
ac52ad18f4 | ||
|
|
5d0e5de05f | ||
|
|
18cc57a212 | ||
|
|
a2856250b8 | ||
|
|
6adce6a706 | ||
|
|
30c7ea557b | ||
|
|
237586e228 | ||
|
|
1acbc8f4f0 | ||
|
|
6b68fee2d0 | ||
|
|
9015d93231 | ||
|
|
739fddc16f | ||
|
|
faafc989c1 | ||
|
|
5d8884fe94 | ||
|
|
bb92371a61 | ||
|
|
47ded40df8 | ||
|
|
2fbc693638 | ||
|
|
ceaf6a6cc9 | ||
|
|
4b6923dd80 | ||
|
|
2e5fb98f4c | ||
|
|
b1928f6998 | ||
|
|
b72bbe4d06 | ||
|
|
4758cd989c | ||
|
|
bf42c8f823 | ||
|
|
ca13eadaac | ||
|
|
f83a5b9096 | ||
|
|
4d32de5656 | ||
|
|
c8bac2db0e | ||
|
|
3cdf1aa229 | ||
|
|
d459ff286d | ||
|
|
ac121b7b55 | ||
|
|
b0a850db70 | ||
|
|
7f47e36df8 | ||
|
|
c5774f48e9 | ||
|
|
dc022c8de0 | ||
|
|
ab6068dd6c | ||
|
|
326f569361 | ||
|
|
8ef0da6ef5 | ||
|
|
1278581268 | ||
|
|
f714fb9b18 | ||
|
|
f1fc4adaa1 | ||
|
|
e197f9a238 | ||
|
|
6e7e1df966 | ||
|
|
9d2f016145 | ||
|
|
b0948dea75 | ||
|
|
464f66d9b8 | ||
|
|
bfed121489 | ||
|
|
c5da40f420 | ||
|
|
891fd05729 | ||
|
|
14c53a5b4e | ||
|
|
9f43374201 | ||
|
|
d528fb60b6 | ||
|
|
c73160ece3 | ||
|
|
d8664b419a | ||
|
|
bd608a5de0 | ||
|
|
af50dd6eac | ||
|
|
c31da8c267 | ||
|
|
820b6975f7 | ||
|
|
58209b94a0 | ||
|
|
493c6343a1 | ||
|
|
28d01e5982 | ||
|
|
3828b2eed2 | ||
|
|
6d76047ba3 | ||
|
|
3ee9a893fa | ||
|
|
9785020ae0 | ||
|
|
40c43b5c07 | ||
|
|
05d19b4cc9 | ||
|
|
2aa2c32c85 | ||
|
|
e1018dcf32 | ||
|
|
13e0ba80b7 | ||
|
|
513201cea3 | ||
|
|
42373eb6be | ||
|
|
3851a58038 | ||
|
|
1bab48a951 | ||
|
|
443f53b476 | ||
|
|
b15a2e4c8f | ||
|
|
f29df754a0 | ||
|
|
331aefc95c | ||
|
|
9854929b1e | ||
|
|
178ad06379 | ||
|
|
c16c35d47d | ||
|
|
e9562a37b3 | ||
|
|
bc8d2838cf | ||
|
|
3993061744 | ||
|
|
cdbf2c8037 | ||
|
|
e08c1d198e | ||
|
|
acca68dac9 | ||
|
|
b934da7194 | ||
|
|
8b70e29841 | ||
|
|
6ce92ceba2 | ||
|
|
4582422541 | ||
|
|
42aa530273 | ||
|
|
e2b3897291 | ||
|
|
42da2f3c9b | ||
|
|
cb6ac8c451 | ||
|
|
a294e4e947 | ||
|
|
ef29da137c | ||
|
|
b70c3b5661 | ||
|
|
14ed6d9915 | ||
|
|
66802d9b7c | ||
|
|
26d7a8865e | ||
|
|
8e8cdfcf28 | ||
|
|
3ace35b219 | ||
|
|
77b8e4b712 | ||
|
|
e1b7f7f792 | ||
|
|
01e7047b54 | ||
|
|
ebe293c758 | ||
|
|
ec18bf09da | ||
|
|
0a05e3cfd3 | ||
|
|
674bbbc852 | ||
|
|
5c35a57c7b | ||
|
|
e5d4c2eb1d | ||
|
|
d64dd199ed | ||
|
|
9f29f308c0 | ||
|
|
e388ed94a0 | ||
|
|
91ddd60919 | ||
|
|
01583b35b2 | ||
|
|
58f7bb2a4a | ||
|
|
6e21a97b54 | ||
|
|
15fd4d1941 | ||
|
|
a80f1f913d | ||
|
|
88fe086f32 | ||
|
|
9eae8468a1 | ||
|
|
c33b93f46f | ||
|
|
3ddaf9c6a3 | ||
|
|
e3c3546d47 | ||
|
|
923e24fe6d | ||
|
|
6f95125baa | ||
|
|
0e59ab7795 | ||
|
|
83eb6a958c | ||
|
|
d466dec4bd | ||
|
|
9d1c27fa80 | ||
|
|
24ff93794a | ||
|
|
ef0fa7ef77 | ||
|
|
4616158c52 | ||
|
|
ee8720bc81 | ||
|
|
5dc7ad4baf | ||
|
|
57cf1f3f54 | ||
|
|
abf0db6ab5 | ||
|
|
a45778e602 | ||
|
|
2c0175a5ee | ||
|
|
53a87964af | ||
|
|
53e4d743fb | ||
|
|
84f77844ed | ||
|
|
31edf6a963 | ||
|
|
fab1a5e4f4 | ||
|
|
5827a04b24 | ||
|
|
1993c0f22a | ||
|
|
58bf0bc835 | ||
|
|
e3105f28d0 | ||
|
|
d026663988 | ||
|
|
bd0da25033 | ||
|
|
efee84f064 | ||
|
|
023b5e4e39 | ||
|
|
55db206c69 | ||
|
|
cbde04e794 | ||
|
|
fda888c25a | ||
|
|
144e6cb652 | ||
|
|
18f405451d | ||
|
|
d5a4bda80c | ||
|
|
b9390746fc | ||
|
|
7bf1cde7f6 | ||
|
|
cbed57e630 | ||
|
|
daf21401ed | ||
|
|
518af89cab | ||
|
|
ad8440a3e7 | ||
|
|
ba07657733 | ||
|
|
f048abdfaf | ||
|
|
73014b99e7 | ||
|
|
b472421d01 | ||
|
|
6b0dc41ad0 | ||
|
|
b39c8e68cd | ||
|
|
e6b9f6b0ca | ||
|
|
0558e68362 | ||
|
|
969cd54f34 | ||
|
|
364199ea43 | ||
|
|
27cf633bfa | ||
|
|
d94036bc48 | ||
|
|
09351b5e16 | ||
|
|
7f57c6c5af | ||
|
|
de71659e76 | ||
|
|
ab2452c26d | ||
|
|
e3f934bdf4 | ||
|
|
10414d3f47 | ||
|
|
c610c3146e | ||
|
|
b8a29e7e56 | ||
|
|
32306783e2 | ||
|
|
366908a7da | ||
|
|
a78b3187f3 | ||
|
|
d1657b7a07 | ||
|
|
2206a02c87 | ||
|
|
0d71fb3ef7 | ||
|
|
b5c40fd2fc | ||
|
|
7118ad24e9 | ||
|
|
02c56a699c | ||
|
|
3ca0e05e20 | ||
|
|
7418d20116 | ||
|
|
9b554f6764 | ||
|
|
52f5a4bd25 | ||
|
|
2f4c4e1d53 | ||
|
|
8e9f7e7b47 | ||
|
|
14f9c053b1 | ||
|
|
76f972a693 | ||
|
|
ad7b1b59fb | ||
|
|
21f3bb8d06 | ||
|
|
63279d751d | ||
|
|
92899a5cb3 | ||
|
|
05c3683463 | ||
|
|
810226f6ac | ||
|
|
01a51029d8 | ||
|
|
9516e9caf7 | ||
|
|
2cdfa6b684 | ||
|
|
6ef7873304 | ||
|
|
6778d179d4 | ||
|
|
9a18e29419 | ||
|
|
17fb059433 | ||
|
|
f07b188c32 | ||
|
|
9d05cfea54 | ||
|
|
1113155991 | ||
|
|
d82e66cc2b | ||
|
|
15f8cb78e3 | ||
|
|
2d0e43f746 | ||
|
|
6326ba89eb | ||
|
|
f00fa9dbef | ||
|
|
0446ce097d | ||
|
|
9e1a0ccf4e | ||
|
|
a6199cf79f | ||
|
|
490307ac41 | ||
|
|
310652ca83 | ||
|
|
6315c7a37d | ||
|
|
dbd32d1162 | ||
|
|
066035190b | ||
|
|
8ed522514c | ||
|
|
7d09602097 | ||
|
|
5bb7c2eeb6 | ||
|
|
eeb9aeef5f | ||
|
|
629ae66a3d | ||
|
|
6939c93246 | ||
|
|
7f5d12d1ce | ||
|
|
d643021066 | ||
|
|
4bddfe40d6 | ||
|
|
ee4b7f68c4 | ||
|
|
43da088909 | ||
|
|
5fb5c2a80f | ||
|
|
4ac126499b | ||
|
|
bd4aef9a38 | ||
|
|
5e3429dfb2 | ||
|
|
82bb776048 | ||
|
|
678f774aef | ||
|
|
abc2858359 | ||
|
|
66608e002f | ||
|
|
5a1dcdc4a5 | ||
|
|
8b67daba5d | ||
|
|
f26e309ee7 | ||
|
|
f77ea83874 | ||
|
|
93ee3304ba | ||
|
|
b4e18a03db | ||
|
|
36474eefc7 | ||
|
|
68212f3b5c | ||
|
|
33a677a8c9 | ||
|
|
9823df925f | ||
|
|
ad74695388 | ||
|
|
603ea0550a | ||
|
|
4974fd823a | ||
|
|
97d29168ff | ||
|
|
7dc97d1011 | ||
|
|
85d9f4f785 | ||
|
|
6a4aec5120 | ||
|
|
5f6341f848 | ||
|
|
4c070f0817 | ||
|
|
79a0b31aa9 | ||
|
|
89a33c6105 | ||
|
|
05e46e3419 | ||
|
|
d458a21170 | ||
|
|
89234c73d1 | ||
|
|
3fe24763f8 | ||
|
|
5ae6e7737f | ||
|
|
b8e21c874b | ||
|
|
dbb69c11a7 | ||
|
|
6d80c0bdf5 | ||
|
|
006e596836 | ||
|
|
57b47a2918 | ||
|
|
37eda2d2f8 | ||
|
|
6577ceeaa3 | ||
|
|
252a6a0632 | ||
|
|
e05e74656f | ||
|
|
53926ad1b3 | ||
|
|
5e0e7c1e33 | ||
|
|
97d7eef094 | ||
|
|
5f38059a0d | ||
|
|
2eb1309a2a | ||
|
|
7d86f7989e | ||
|
|
c64a2ad7a0 | ||
|
|
472dd89f71 | ||
|
|
00ff979fe5 | ||
|
|
639f4ab424 | ||
|
|
5f2e9ae75b | ||
|
|
410b355d5e | ||
|
|
89850ddc2b | ||
|
|
28b5cb54fa | ||
|
|
725c1ac04c | ||
|
|
ef49cbabad | ||
|
|
af831c5313 | ||
|
|
0b52a1dc39 | ||
|
|
68f19f855e | ||
|
|
bbd5542f38 | ||
|
|
a4aa717a42 | ||
|
|
1191f7d555 | ||
|
|
437e49fda7 | ||
|
|
76f418b858 | ||
|
|
0aea73e04e | ||
|
|
14d0890f8c | ||
|
|
bb0493fdd2 | ||
|
|
d780fb24fb | ||
|
|
852b0e1553 | ||
|
|
429ace64ba | ||
|
|
f919966908 | ||
|
|
d9b00a5a31 | ||
|
|
52db1dbfd6 | ||
|
|
e74af53880 | ||
|
|
2efc2ff123 | ||
|
|
4c5d1c19a4 | ||
|
|
d5caf053d3 | ||
|
|
6ed7c17b32 | ||
|
|
cd51f9bb91 | ||
|
|
7d6194b242 | ||
|
|
48f15c0992 | ||
|
|
0fc906663e | ||
|
|
4d40e5cee4 | ||
|
|
b8f59890de | ||
|
|
9f7e5b1148 | ||
|
|
ce363a2dca | ||
|
|
259ab43ada | ||
|
|
302713dbca | ||
|
|
2da568b566 | ||
|
|
3ad3de7734 | ||
|
|
0bb52a63c2 | ||
|
|
328ade5986 | ||
|
|
9b9f6ecfb5 | ||
|
|
d952a1a406 | ||
|
|
ddd7195704 | ||
|
|
14decd1b62 | ||
|
|
3317e3ef80 | ||
|
|
45eb08e5d6 | ||
|
|
8c72a4eb21 | ||
|
|
bb33f83b3e | ||
|
|
dbf0a63ef4 | ||
|
|
9021362b63 | ||
|
|
eab44cae99 | ||
|
|
5843ea9f43 | ||
|
|
316bcd934f | ||
|
|
20b026eb56 | ||
|
|
770ae3a7d0 | ||
|
|
2cbf0c8775 | ||
|
|
3a447768b2 | ||
|
|
0a6f303cb1 | ||
|
|
0bf739e90d | ||
|
|
a709c964db | ||
|
|
39bdb87646 | ||
|
|
ae3c024642 | ||
|
|
8e6ff52672 | ||
|
|
a90dce7b6c | ||
|
|
c2230409e9 | ||
|
|
28e089c4da | ||
|
|
b9db41523f | ||
|
|
1f3a3bdf27 | ||
|
|
fca343c999 | ||
|
|
ae6aab7cd1 | ||
|
|
45367ef475 | ||
|
|
c4145ea3db | ||
|
|
07f1e2c403 | ||
|
|
d84a831797 | ||
|
|
cc6ba868b4 | ||
|
|
21a9168142 | ||
|
|
f79b5d7b4e | ||
|
|
d2ac0794b6 | ||
|
|
f679ee58a1 | ||
|
|
d146ffcd70 | ||
|
|
50dd249ff2 | ||
|
|
ce070a231e | ||
|
|
f08c57b743 | ||
|
|
806b696bda | ||
|
|
88669d7e76 | ||
|
|
45a32c826e | ||
|
|
1538bd7196 | ||
|
|
b94c2a8456 | ||
|
|
24819dfae6 | ||
|
|
fa82ebeccf | ||
|
|
bd708d5e35 | ||
|
|
ed58a67988 | ||
|
|
0bad08ed98 | ||
|
|
8f97227182 | ||
|
|
e9073a0a1d | ||
|
|
e85bfb7c5d | ||
|
|
2275791a58 | ||
|
|
f885fadf09 | ||
|
|
37c577255c | ||
|
|
5dab24749c | ||
|
|
fd5392c48d | ||
|
|
84b06bc81a | ||
|
|
5ee29c69ba | ||
|
|
db9a0a9613 | ||
|
|
6cf72244e5 | ||
|
|
5ba0739a24 | ||
|
|
f093f64e1b | ||
|
|
7d26afd360 | ||
|
|
fe9ab80f3c | ||
|
|
24797bfa88 | ||
|
|
ee79220c87 | ||
|
|
938f42a690 | ||
|
|
4a3e619048 | ||
|
|
911b2b4e6f | ||
|
|
cfbe635f8e | ||
|
|
71be27409e | ||
|
|
b708943b22 | ||
|
|
20a7a90213 | ||
|
|
b81d7f330a | ||
|
|
4fc19a7cc3 | ||
|
|
b0e6f7baa8 | ||
|
|
72f777784d | ||
|
|
4aa4038e99 | ||
|
|
de43ac3c73 | ||
|
|
3d2b5d3d9b | ||
|
|
e3c0ee2101 | ||
|
|
8857668bd3 | ||
|
|
a5f91f98bd | ||
|
|
18b61ffcf4 | ||
|
|
66c958c770 | ||
|
|
483f113534 | ||
|
|
d27a27016a | ||
|
|
d9188b3909 | ||
|
|
4514d3cda2 | ||
|
|
b3e2ee6ec4 | ||
|
|
d97fd2c1e7 | ||
|
|
6d93c26728 | ||
|
|
4ebd34b205 | ||
|
|
8fbfdc72cb | ||
|
|
b7d4f10dad | ||
|
|
5a8de2aec5 | ||
|
|
132278444b | ||
|
|
ee721a09d3 | ||
|
|
9117dd171b | ||
|
|
5f3015c3bd | ||
|
|
4bb2b94267 | ||
|
|
cf6ead55c8 | ||
|
|
0ab55dfca2 | ||
|
|
604f2003e4 | ||
|
|
f60d177fcf | ||
|
|
4b94c4d561 | ||
|
|
60152fd230 | ||
|
|
bd2b22f9da | ||
|
|
88f3f68f0b | ||
|
|
d8d9fcb67c | ||
|
|
3eaae8e498 | ||
|
|
49d747cacc | ||
|
|
438c3db78c | ||
|
|
2cb24c3c00 | ||
|
|
3f73857adf | ||
|
|
a91679b9f3 | ||
|
|
110bbbb972 | ||
|
|
2b364efe54 | ||
|
|
8be19deb4c | ||
|
|
8a59cbfe07 | ||
|
|
527b07d556 | ||
|
|
e8cc66a626 | ||
|
|
3874d671e0 | ||
|
|
adc76b8895 | ||
|
|
73dc329806 | ||
|
|
0e9f19d8aa | ||
|
|
472b621990 | ||
|
|
6e2c102ae1 | ||
|
|
539c8db0d8 | ||
|
|
a97c61f7a2 | ||
|
|
1f8807d283 | ||
|
|
53b6bdd138 | ||
|
|
4fa6606d60 | ||
|
|
ba39198138 | ||
|
|
c073ac0841 | ||
|
|
b6732eede4 | ||
|
|
bf4ee2f0fc | ||
|
|
618547e832 | ||
|
|
a78977ec5d | ||
|
|
4d01971996 | ||
|
|
f11780d654 | ||
|
|
fef49ae1b8 | ||
|
|
fb53305b39 | ||
|
|
4f72061603 | ||
|
|
da991c5bb8 | ||
|
|
0395b10b55 | ||
|
|
04ac22c254 | ||
|
|
66efb86d51 | ||
|
|
670f74bf0c | ||
|
|
7da55eded9 | ||
|
|
202eb0eeb1 | ||
|
|
ec50325e25 | ||
|
|
3cfee405f8 | ||
|
|
078c68c47f | ||
|
|
ec5296f4f0 | ||
|
|
7509804433 | ||
|
|
5dd54e5e91 | ||
|
|
f7c35593a8 | ||
|
|
cf572da1fe | ||
|
|
34f937162f | ||
|
|
c609e0c8df | ||
|
|
8b34ac9cfa | ||
|
|
aab4673db2 | ||
|
|
84637f89f2 | ||
|
|
a6446f386b | ||
|
|
42487bdd21 | ||
|
|
491a4a3d96 | ||
|
|
8b4d9bd896 | ||
|
|
5c4936cf92 | ||
|
|
89a195026f | ||
|
|
14fa10a9f7 | ||
|
|
cc99ed2cf0 | ||
|
|
69c57b185c | ||
|
|
efcf2affbe | ||
|
|
0f5268be8e | ||
|
|
5584981aa0 | ||
|
|
dbe7a5bde1 | ||
|
|
3ffea809b1 | ||
|
|
337dc04a90 | ||
|
|
4c2f91dcc4 | ||
|
|
2ceaee9419 | ||
|
|
ede95f98ce | ||
|
|
5e9be4258e | ||
|
|
2855e0437a | ||
|
|
87ca7569fb | ||
|
|
5447f18ee2 | ||
|
|
80f3543fbf | ||
|
|
a9267e9cc5 | ||
|
|
743780d418 | ||
|
|
9d63bf5fb8 | ||
|
|
d60b22bb8d | ||
|
|
e4653f2aee | ||
|
|
261b828a18 | ||
|
|
a3e8860c3f | ||
|
|
c958734edc | ||
|
|
2ed0c8b014 | ||
|
|
e1dafa5619 | ||
|
|
c67e0c3e21 | ||
|
|
3026b81692 | ||
|
|
83cb6761a1 | ||
|
|
87c7af1eb5 | ||
|
|
c9168f59f0 | ||
|
|
ad3059481c | ||
|
|
8b3fc09d69 | ||
|
|
28b17a7357 | ||
|
|
e9ed2d9e58 | ||
|
|
afe640f62a | ||
|
|
1edf6e57fe | ||
|
|
303999599a | ||
|
|
bd345a6847 | ||
|
|
16c46ddeb1 | ||
|
|
4aa75d8e89 | ||
|
|
f9ac6ce951 | ||
|
|
1abbc7e638 | ||
|
|
06081ff9aa | ||
|
|
ffc3058832 | ||
|
|
4e4527d08f | ||
|
|
da293e2616 | ||
|
|
ad8ae08198 | ||
|
|
68381a26cc | ||
|
|
4a9109434d | ||
|
|
c86bc6f8f0 | ||
|
|
d205a6a83f | ||
|
|
ba64e486f6 | ||
|
|
e223cc395d | ||
|
|
6f34a5269f | ||
|
|
3f8ecc006e | ||
|
|
ac2598c6c4 | ||
|
|
09a510cb6c | ||
|
|
48f5fdffe2 | ||
|
|
a6b889c518 | ||
|
|
4795697b3e | ||
|
|
24527a9225 | ||
|
|
6c1428b383 | ||
|
|
68d980cbc6 | ||
|
|
a57994cc66 | ||
|
|
9a19552514 | ||
|
|
4beeaece61 | ||
|
|
a03a3dfac9 | ||
|
|
058bfe4aa5 | ||
|
|
9cb36cbaac | ||
|
|
1d33142eed | ||
|
|
b7c5bc5cb6 | ||
|
|
6b82e09364 | ||
|
|
33c196c2f5 | ||
|
|
448679fc3a | ||
|
|
3b699a595c | ||
|
|
d31de57f41 | ||
|
|
4822dd837c | ||
|
|
540077bd30 | ||
|
|
635c19efb6 | ||
|
|
cde646b3a7 | ||
|
|
163ff400ce | ||
|
|
f458046329 | ||
|
|
069bcbca98 | ||
|
|
ecba379d49 | ||
|
|
452cdb93be | ||
|
|
2295a53329 | ||
|
|
552ca95fd8 | ||
|
|
ef99e83ff3 | ||
|
|
4983422dcd | ||
|
|
9ecccba5c2 | ||
|
|
a973ad2c65 | ||
|
|
7b861157e5 | ||
|
|
ee7b601efd | ||
|
|
a3f35d15db | ||
|
|
a5a00036aa | ||
|
|
e29c1ac30c | ||
|
|
cf59f0d227 | ||
|
|
6146d4e99b | ||
|
|
27444a8131 | ||
|
|
58e0851411 | ||
|
|
0a3be3af1f | ||
|
|
7bb87ebe36 | ||
|
|
20fa32b5ea | ||
|
|
cafb0fd054 | ||
|
|
7042dffb4a | ||
|
|
ac724a2473 | ||
|
|
15c11a8df4 | ||
|
|
f73a632628 | ||
|
|
6f500b940f | ||
|
|
5464a1398e | ||
|
|
04aee08aff | ||
|
|
f1e8b33bc8 | ||
|
|
f3f5841b4a | ||
|
|
04f2f25097 | ||
|
|
41b11ee998 | ||
|
|
fb07674849 | ||
|
|
3cb3366ab9 | ||
|
|
76c86094de | ||
|
|
77ddaa5b36 | ||
|
|
e3d9ec204a | ||
|
|
9d09e08b3c | ||
|
|
794d65904a | ||
|
|
2d71c76d2c | ||
|
|
d5ee4959a7 | ||
|
|
344d037068 | ||
|
|
b37764d749 | ||
|
|
fde09f3999 | ||
|
|
18276eff25 | ||
|
|
aefeaa1173 | ||
|
|
539896c96e | ||
|
|
65b3eb750b | ||
|
|
bf15b94ee6 | ||
|
|
a7b98b79a3 | ||
|
|
25b046d76e | ||
|
|
e291a8bf9a | ||
|
|
eb9ca9b92c | ||
|
|
6da37b7c99 | ||
|
|
e2c2af9a8c | ||
|
|
f77c73b170 | ||
|
|
a7d111f4db | ||
|
|
9a646f2063 | ||
|
|
283ffdcfac | ||
|
|
d4d195bb16 | ||
|
|
241ade09d5 | ||
|
|
87887d5259 | ||
|
|
caab4d70db | ||
|
|
2217c68da0 | ||
|
|
f78845da53 | ||
|
|
4310cfca49 | ||
|
|
e2e66a17d2 | ||
|
|
7b8db215fb | ||
|
|
958e50a67a | ||
|
|
c359b67cbf | ||
|
|
ec688f4a08 | ||
|
|
5ad7146f13 | ||
|
|
342ef5b9c8 | ||
|
|
902d99e95f | ||
|
|
f7eee400b0 | ||
|
|
8faa3f1dea | ||
|
|
3e4fc7e650 | ||
|
|
d5586588a8 | ||
|
|
a2fbc4d7b8 | ||
|
|
e84e0e513d | ||
|
|
23aed28a31 | ||
|
|
1f05bcd029 | ||
|
|
f794d7b72e | ||
|
|
a19f80c311 | ||
|
|
61dbde6cd1 | ||
|
|
2abaeea173 | ||
|
|
b610f0484c | ||
|
|
13bb7b9673 | ||
|
|
712a73e5eb | ||
|
|
b140eb280d | ||
|
|
0d6d26445e | ||
|
|
de334427d2 | ||
|
|
9e4e7b6054 | ||
|
|
a6d2b31c56 | ||
|
|
e819e61bd4 | ||
|
|
e67cead019 | ||
|
|
1a6d720884 | ||
|
|
641b786f0a | ||
|
|
2d039c6cc8 | ||
|
|
6bb8f59ee3 | ||
|
|
28585dd79d | ||
|
|
929aae7785 | ||
|
|
6cb66086a5 | ||
|
|
52316cb669 | ||
|
|
dcfa7b888e | ||
|
|
33cda32e1c | ||
|
|
2172e2dd1e | ||
|
|
e425bd5ea4 | ||
|
|
8d59e16612 | ||
|
|
8ba2edb1db | ||
|
|
db89da9393 | ||
|
|
a133c12535 | ||
|
|
c3d9cb0e86 | ||
|
|
2308e29ba2 | ||
|
|
7672e8959a | ||
|
|
8d3f9906c5 | ||
|
|
408c25a375 | ||
|
|
64374b70af | ||
|
|
cb277ac3c8 | ||
|
|
dafa9879c0 | ||
|
|
a7e1dce45e | ||
|
|
adeccdae56 | ||
|
|
23ebbd6970 | ||
|
|
72cd9b52e1 | ||
|
|
50c7e17a79 | ||
|
|
412643fd6d | ||
|
|
0646dedea9 | ||
|
|
645f328369 | ||
|
|
d1639eab00 | ||
|
|
6e7ee0c1b0 | ||
|
|
35e9f60480 | ||
|
|
cceaff95bb | ||
|
|
5a6cc9f5b8 | ||
|
|
4f671d7bcd | ||
|
|
ac1a1af858 | ||
|
|
96e16e6318 | ||
|
|
aa3eed96a7 | ||
|
|
df0364737a | ||
|
|
7cbb9e7329 | ||
|
|
b35e3fd591 | ||
|
|
966bc22633 | ||
|
|
c7e75e4336 | ||
|
|
763e66fe44 | ||
|
|
652358464f | ||
|
|
490ad6c767 | ||
|
|
2808685fc2 | ||
|
|
e5afe1bbd6 | ||
|
|
f18e98762e | ||
|
|
78878b5fb8 | ||
|
|
5a151dc465 | ||
|
|
aefa67d3f6 | ||
|
|
4b1b5f0c80 | ||
|
|
6ee19db093 | ||
|
|
2601736e6d | ||
|
|
83a78fed8e | ||
|
|
f33c2f1179 | ||
|
|
a215beeb4a | ||
|
|
3bcff1d67d | ||
|
|
842e8a5143 | ||
|
|
68d5aaad30 | ||
|
|
491263fec4 | ||
|
|
7dfc9a6c3c | ||
|
|
766e63f64b | ||
|
|
d43907184d | ||
|
|
951224d030 | ||
|
|
acb1b3e7e7 | ||
|
|
b062f88fb6 | ||
|
|
2541c81d15 | ||
|
|
0ad1b36eac | ||
|
|
21f0ce2d9e | ||
|
|
15c7e8bf52 | ||
|
|
186af8fda4 | ||
|
|
46c8a44a4c | ||
|
|
c41baf82a2 | ||
|
|
4064fa406c | ||
|
|
2af84c38f6 | ||
|
|
c5f92dcd0b | ||
|
|
014691e9da | ||
|
|
4c616886db | ||
|
|
7925bd10e5 | ||
|
|
218fcb2a12 | ||
|
|
ea685a9504 | ||
|
|
c880d1c3fb | ||
|
|
cecdd31889 | ||
|
|
11a7f3f908 | ||
|
|
05946bf5d1 | ||
|
|
3a411d362a | ||
|
|
d6ee2c7ee0 | ||
|
|
721471916a | ||
|
|
4dacc0a232 | ||
|
|
5353beeaf1 | ||
|
|
06dd32898a | ||
|
|
7d05e404d9 | ||
|
|
22d60b9d4d | ||
|
|
fbb7ff7788 | ||
|
|
b879286ad4 | ||
|
|
0dfaae48fe | ||
|
|
8289d13071 | ||
|
|
5850744002 | ||
|
|
d27e66afe9 | ||
|
|
2f7ed923c1 | ||
|
|
2d8951a051 | ||
|
|
7208f7da58 | ||
|
|
fa41e8ecbe | ||
|
|
2135867696 | ||
|
|
64824728db | ||
|
|
52a33963d4 | ||
|
|
562dd54075 | ||
|
|
591bb8b4b1 | ||
|
|
298ca8e363 | ||
|
|
07aff0ee33 | ||
|
|
0603e2d515 | ||
|
|
a2bf7e60fb | ||
|
|
922bdb6089 | ||
|
|
9c3bdda794 | ||
|
|
27cf02b4cf | ||
|
|
b1ce4b344f | ||
|
|
e321b3e873 | ||
|
|
53beafafc2 | ||
|
|
6cef80226a | ||
|
|
c5820a69f3 | ||
|
|
327f2d0a90 | ||
|
|
ca455cf9d7 | ||
|
|
b3f7f293ee | ||
|
|
b5d1606c18 | ||
|
|
2a15cb9a8f | ||
|
|
d93e123f62 | ||
|
|
67028271f1 | ||
|
|
871334506e | ||
|
|
754bfb6067 | ||
|
|
d7509ec6d4 | ||
|
|
b35f2c2f9a | ||
|
|
03ffc533f0 | ||
|
|
477a48941c | ||
|
|
b4196747f4 | ||
|
|
6c35d1f02a | ||
|
|
0732efb715 | ||
|
|
b3af28516a | ||
|
|
92d33529c7 | ||
|
|
2e167ceaa6 | ||
|
|
ad14096ab5 | ||
|
|
3baeebae3c | ||
|
|
26f8db6806 | ||
|
|
1b1c081827 | ||
|
|
1bee748688 | ||
|
|
f25ab3f571 | ||
|
|
a0683e0cdd | ||
|
|
d2c864a65a | ||
|
|
6d742d26b6 | ||
|
|
7408e84fc6 | ||
|
|
c97edb527a | ||
|
|
e30252b5ca | ||
|
|
55e902f9e2 | ||
|
|
20aea8afdc | ||
|
|
4a3285b44e | ||
|
|
6e340edf00 | ||
|
|
eb69720b0c | ||
|
|
428c4cf8bf | ||
|
|
3932765b29 | ||
|
|
736908cd90 | ||
|
|
cd4cc56df0 | ||
|
|
6af47c09ec | ||
|
|
cdd7c9a25d | ||
|
|
014865a885 | ||
|
|
bf3ac0df12 | ||
|
|
e736e9c249 | ||
|
|
3d7caa8c6a | ||
|
|
8df3b5fcbf | ||
|
|
622a6a4113 | ||
|
|
21a695e665 | ||
|
|
ca35880b03 | ||
|
|
013feb26d2 | ||
|
|
2c449f0911 | ||
|
|
4d1c414403 | ||
|
|
1f3e0bf4cb | ||
|
|
d7729627d4 | ||
|
|
5ac4756cd7 | ||
|
|
75c4c34b81 | ||
|
|
28d3934047 | ||
|
|
920282a631 | ||
|
|
701ac83834 | ||
|
|
162d7e2418 | ||
|
|
313b05c498 | ||
|
|
01b75c0024 | ||
|
|
727ebe49ba | ||
|
|
1466d87eda | ||
|
|
0b2b15452a | ||
|
|
b74bc82a00 | ||
|
|
ce3cf99c46 | ||
|
|
3aa7c0b523 | ||
|
|
f4061e06a4 | ||
|
|
6480260e65 | ||
|
|
065d7a1c62 | ||
|
|
3b1dc8dc11 | ||
|
|
97a8168533 | ||
|
|
63ea0e74a4 | ||
|
|
2e9e189c7c | ||
|
|
f05810df70 | ||
|
|
6601a957c2 | ||
|
|
01269919af | ||
|
|
734c0c19ef | ||
|
|
beb00ced8e | ||
|
|
6cb9e33bbb | ||
|
|
a320c4932b | ||
|
|
0aac22672f |
No files matched your search
@@ -1,3 +1,4 @@
|
||||
# $Id:$
|
||||
# @(#)COPYRIGHT 8.2 (Berkeley) 3/21/94
|
||||
|
||||
All of the documentation and software included in the 4.4BSD and 4.4BSD-Lite
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
#
|
||||
# $Id: Makefile,v 1.109.2.24 1998/03/09 14:18:02 jkh Exp $
|
||||
# $Id: Makefile,v 1.109.2.34 1998/09/04 06:07:43 jkh Exp $
|
||||
#
|
||||
# Make command line options:
|
||||
# -DCLOBBER will remove /usr/include
|
||||
# -DMAKE_KERBEROS4 to build KerberosIV
|
||||
# -DALLLANG to build documentation for all languages
|
||||
# (where available -- see share/doc/Makefile)
|
||||
#
|
||||
# -DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
|
||||
# -DNOCLEAN do not clean at all
|
||||
# -DNOTOOLS do not rebuild any tools first
|
||||
# -DNOTOOLS do not rebuild any tools first
|
||||
# -DNOCRYPT will prevent building of crypt versions
|
||||
# -DNOLKM do not build loadable kernel modules
|
||||
# -DNOOBJDIR do not run ``${MAKE} obj''
|
||||
@@ -18,6 +16,7 @@
|
||||
# -DNOGAMES do not go into games subdir
|
||||
# -DNOSHARE do not go into share subdir
|
||||
# -DNOINFO do not make or install info files
|
||||
# -DNOLIBC_R do not build libc_r.
|
||||
# -DNOPERL do not make or install perl
|
||||
# LOCAL_DIRS="list of dirs" to add additional dirs to the SUBDIR list
|
||||
|
||||
@@ -126,8 +125,8 @@ CLEANDIR= cleandir
|
||||
.endif
|
||||
.endif
|
||||
|
||||
SUP?= sup
|
||||
SUPFLAGS?= -v
|
||||
SUP?= cvsup
|
||||
SUPFLAGS?= -g -L 2 -P -
|
||||
|
||||
#
|
||||
# While building tools for bootstrapping, we dont need to waste time on
|
||||
@@ -345,7 +344,7 @@ reinstall:
|
||||
update:
|
||||
.if defined(SUP_UPDATE)
|
||||
@echo "--------------------------------------------------------------"
|
||||
@echo "Running sup"
|
||||
@echo "Running ${SUP}"
|
||||
@echo "--------------------------------------------------------------"
|
||||
@${SUP} ${SUPFLAGS} ${SUPFILE}
|
||||
.if defined(SUPFILE1)
|
||||
@@ -526,14 +525,15 @@ lib-tools:
|
||||
usr.bin/tsort \
|
||||
gnu/usr.bin/as \
|
||||
gnu/usr.bin/bison \
|
||||
gnu/usr.bin/cc \
|
||||
gnu/usr.bin/awk \
|
||||
usr.bin/ar \
|
||||
usr.bin/compile_et \
|
||||
usr.bin/lex/lib \
|
||||
usr.bin/mk_cmds \
|
||||
usr.bin/nm \
|
||||
usr.bin/ranlib \
|
||||
usr.bin/uudecode
|
||||
usr.bin/uudecode \
|
||||
gnu/usr.bin/cc
|
||||
cd ${.CURDIR}/$d && ${MAKE} depend && \
|
||||
${MAKE} ${MK_FLAGS} all && \
|
||||
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
|
||||
@@ -553,6 +553,16 @@ libraries:
|
||||
${MAKE} ${MK_FLAGS} all && \
|
||||
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
|
||||
.endif
|
||||
.if exists(lib/libc)
|
||||
cd ${.CURDIR}/lib/libc && ${MAKE} depend && \
|
||||
${MAKE} ${MK_FLAGS} all && \
|
||||
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
|
||||
.endif
|
||||
.if exists(lib/libmytinfo)
|
||||
cd ${.CURDIR}/lib/libmytinfo && ${MAKE} depend && \
|
||||
${MAKE} ${MK_FLAGS} all && \
|
||||
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
|
||||
.endif
|
||||
.if exists(lib/libncurses)
|
||||
cd ${.CURDIR}/lib/libncurses && ${MAKE} depend && \
|
||||
${MAKE} ${MK_FLAGS} all && \
|
||||
@@ -594,6 +604,13 @@ libraries:
|
||||
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
|
||||
.endif
|
||||
|
||||
# Exclude perl from the build-tools if NOPERL is defined.
|
||||
.if defined(NOPERL)
|
||||
_perl=
|
||||
.else
|
||||
_perl= gnu/usr.bin/perl/perl
|
||||
.endif
|
||||
|
||||
#
|
||||
# build-tools - build and install any other tools needed to complete the
|
||||
# compile and install.
|
||||
@@ -612,6 +629,7 @@ build-tools:
|
||||
bin/date \
|
||||
bin/dd \
|
||||
bin/echo \
|
||||
usr.bin/yacc \
|
||||
bin/expr \
|
||||
bin/hostname \
|
||||
bin/ln \
|
||||
@@ -619,17 +637,16 @@ build-tools:
|
||||
bin/mkdir \
|
||||
bin/mv \
|
||||
bin/rm \
|
||||
bin/sh \
|
||||
bin/test \
|
||||
gnu/usr.bin/awk \
|
||||
gnu/usr.bin/bc \
|
||||
gnu/usr.bin/grep \
|
||||
gnu/usr.bin/groff \
|
||||
gnu/usr.bin/gzip \
|
||||
gnu/usr.bin/man/makewhatis \
|
||||
gnu/usr.bin/patch \
|
||||
${_perl} \
|
||||
gnu/usr.bin/sort \
|
||||
gnu/usr.bin/texinfo \
|
||||
share/info \
|
||||
usr.bin/basename \
|
||||
usr.bin/cap_mkdb \
|
||||
usr.bin/chflags \
|
||||
@@ -640,6 +657,7 @@ build-tools:
|
||||
usr.bin/file2c \
|
||||
usr.bin/find \
|
||||
usr.bin/gencat \
|
||||
usr.bin/id \
|
||||
usr.bin/lorder \
|
||||
usr.bin/m4 \
|
||||
usr.bin/mkdep \
|
||||
@@ -657,10 +675,10 @@ build-tools:
|
||||
usr.bin/vgrind \
|
||||
usr.bin/vi \
|
||||
usr.bin/wc \
|
||||
usr.bin/yacc \
|
||||
usr.sbin/chown \
|
||||
usr.sbin/mtree \
|
||||
usr.sbin/zic
|
||||
usr.sbin/zic \
|
||||
bin/sh
|
||||
cd ${.CURDIR}/$d && ${MAKE} depend && \
|
||||
${MAKE} ${MK_FLAGS} all && \
|
||||
${MAKE} ${MK_FLAGS} -B install ${CLEANDIR} ${OBJDIR}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
This is the top level of the FreeBSD source directory. This file
|
||||
was last revised on: $Id: README,v 1.7.2.1 1997/08/13 19:49:35 jkh Exp $
|
||||
was last revised on: $Id: README,v 1.7.2.2 1998/02/15 10:47:57 jkh Exp $
|
||||
|
||||
For copyright information, please see the file COPYRIGHT in this
|
||||
directory (additional copyright information also exists for some
|
||||
@@ -34,7 +34,7 @@ bin System/User commands.
|
||||
|
||||
contrib Packages contributed by 3rd parties.
|
||||
|
||||
eBones Kerberos package - NOT FOR EXPORT!
|
||||
crypto Export controlled stuff (see crypto/README).
|
||||
|
||||
etc Template files for /etc
|
||||
|
||||
@@ -45,6 +45,8 @@ gnu Various commands and libraries under the GNU Public License.
|
||||
|
||||
include System include files.
|
||||
|
||||
kerberosIV Kerberos package - also export controlled.
|
||||
|
||||
lib System libraries.
|
||||
|
||||
libexec System daemons.
|
||||
|
||||
+16
-18
@@ -33,7 +33,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)cat.1 8.3 (Berkeley) 5/2/95
|
||||
.\" $Id: cat.1,v 1.6 1997/02/22 14:01:26 peter Exp $
|
||||
.\" $Id: cat.1,v 1.3.2.2 1998/06/30 06:42:19 charnier Exp $
|
||||
.\"
|
||||
.Dd May 2, 1995
|
||||
.Dt CAT 1
|
||||
@@ -48,7 +48,7 @@
|
||||
.Op Ar
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm cat
|
||||
.Nm
|
||||
utility reads files sequentially, writing them to the standard output.
|
||||
The
|
||||
.Ar file
|
||||
@@ -56,47 +56,44 @@ operands are processed in command line order.
|
||||
A single dash represents the standard input.
|
||||
.Pp
|
||||
The options are as follows:
|
||||
.Bl -tag -width Ds
|
||||
.Bl -tag -width indent
|
||||
.It Fl b
|
||||
Implies the
|
||||
.Fl n
|
||||
option but doesn't number blank lines.
|
||||
Number the non-blank output lines, starting at 1.
|
||||
.It Fl e
|
||||
Implies the
|
||||
Display non-printing characters (see the
|
||||
.Fl v
|
||||
option, and displays a dollar sign
|
||||
option), and display a dollar sign
|
||||
.Pq Ql \&$
|
||||
at the end of each line
|
||||
as well.
|
||||
at the end of each line.
|
||||
.It Fl n
|
||||
Number the output lines, starting at 1.
|
||||
.It Fl s
|
||||
Squeeze multiple adjacent empty lines, causing the output to be
|
||||
single spaced.
|
||||
.It Fl t
|
||||
Implies the
|
||||
Display non-printing characters (see the
|
||||
.Fl v
|
||||
option, and displays tab characters as
|
||||
.Ql ^I
|
||||
as well.
|
||||
option), and display tab characters as
|
||||
.Ql ^I .
|
||||
.It Fl u
|
||||
The
|
||||
.Fl u
|
||||
option guarantees that the output is unbuffered.
|
||||
.It Fl v
|
||||
Displays non-printing characters so they are visible.
|
||||
Display non-printing characters so they are visible.
|
||||
Control characters print as
|
||||
.Ql ^X
|
||||
for control-X; the delete
|
||||
character (octal 0177) prints as
|
||||
.Ql ^?
|
||||
Non-ascii characters (with the high bit set) are printed as
|
||||
.Pf Non- Tn ASCII
|
||||
characters (with the high bit set) are printed as
|
||||
.Ql M-
|
||||
(for meta) followed by the character for the low 7 bits.
|
||||
.El
|
||||
.Pp
|
||||
The
|
||||
.Nm cat
|
||||
.Nm
|
||||
utility exits 0 on success, and >0 if an error occurs.
|
||||
.Sh BUGS
|
||||
Because of the shell language mechanism used to perform output
|
||||
@@ -119,7 +116,8 @@ will cause the original data in file1 to be destroyed!
|
||||
A
|
||||
.Nm
|
||||
command appeared in Version 1 AT&T UNIX.
|
||||
Dennis Ritchie designed and wrote the first man page.
|
||||
.An Dennis Ritchie
|
||||
designed and wrote the first man page.
|
||||
It appears to have been
|
||||
.Xr cat 1 .
|
||||
|
||||
+55
-53
@@ -30,6 +30,8 @@
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $Id$
|
||||
.\"
|
||||
.Dd April 2, 1996
|
||||
.Dt CHIO 1
|
||||
.Os
|
||||
@@ -61,49 +63,53 @@ rather than the default device
|
||||
.El
|
||||
.Pp
|
||||
The default changer may be overridden by setting the environment variable
|
||||
.Nm CHANGER
|
||||
.Ev CHANGER
|
||||
to the desired changer device.
|
||||
.Pp
|
||||
A medium changer apparatus is made up of
|
||||
.Pa elements .
|
||||
.Em elements .
|
||||
There are four element types:
|
||||
.Pa picker
|
||||
.Em picker
|
||||
(medium transport),
|
||||
.Pa slot
|
||||
.Em slot
|
||||
(storage),
|
||||
.Pa portal
|
||||
.Em portal
|
||||
(import/export), and
|
||||
.Pa drive
|
||||
.Em drive
|
||||
(data transfer). In this command description, the shorthand
|
||||
.Nm ET
|
||||
.Em ET
|
||||
will be used to represent an element type, and
|
||||
.Nm EU
|
||||
.Em EU
|
||||
will be used to represent an element unit. For example, to represent
|
||||
the first robotic arm in the changer, the ET would be
|
||||
the first robotic arm in the changer, the
|
||||
.Em ET
|
||||
would be
|
||||
.Dq picker
|
||||
and the EU would be
|
||||
and the
|
||||
.Em EU
|
||||
would be
|
||||
.Dq 0 .
|
||||
.Pp
|
||||
.Sh SUPPORTED COMMANDS
|
||||
.Nm chio move
|
||||
.Bl -tag -width indent
|
||||
.It Xo Nm chio move
|
||||
.Ar <from ET> <from EU> <to ET> <to EU>
|
||||
.Op Ar inv
|
||||
.Pp
|
||||
Moves the media unit from
|
||||
.Xc
|
||||
Move the media unit from
|
||||
.Pa <from ET/EU>
|
||||
to
|
||||
.Pa <to ET/EU> .
|
||||
If the optional modifier
|
||||
.Pa inv
|
||||
is specified, the media unit will be inverted before insertion.
|
||||
.Pp
|
||||
.Nm chio exchange
|
||||
.It Xo Nm chio exchange
|
||||
.Ar <src ET> <src EU> <dst1 ET> <dst1 EU>
|
||||
.Op Ar <dst2 ET> <dst2 ET>
|
||||
.Op Ar inv1
|
||||
.Op Ar inv2
|
||||
.Pp
|
||||
Performs a media unit exchange operation. The media unit in
|
||||
.Xc
|
||||
Perform a media unit exchange operation. The media unit in
|
||||
.Pa <src ET/EU>
|
||||
is moved to
|
||||
.Pa <dst1 ET/EU>
|
||||
@@ -130,11 +136,10 @@ Note that not all medium changers support the
|
||||
.Nm exchange
|
||||
operation; The changer must have multiple free pickers or emulate
|
||||
multiple free pickers with transient storage.
|
||||
.Pp
|
||||
.Nm chio position
|
||||
.It Xo Nm chio position
|
||||
.Ar <to ET> <to EU>
|
||||
.Op Ar inv
|
||||
.Pp
|
||||
.Xc
|
||||
Position the picker in front of the element described by
|
||||
.Pa <to ET/EU> .
|
||||
If the optional modifier
|
||||
@@ -142,62 +147,59 @@ If the optional modifier
|
||||
is specified, the media unit will be inverted before insertion.
|
||||
.Pp
|
||||
Note that not all changers behave as expected when issued this command.
|
||||
.Pp
|
||||
.Nm chio params
|
||||
.Pp
|
||||
.It Nm chio params
|
||||
Report the number of slots, drives, pickers, and portals in the changer,
|
||||
and which picker unit the changer is currently configured to use.
|
||||
.Pp
|
||||
.Nm chio getpicker
|
||||
.Pp
|
||||
.It Nm chio getpicker
|
||||
Report which picker unit the changer is currently configured to use.
|
||||
.Pp
|
||||
.Nm chio setpicker
|
||||
.It Xo Nm chio setpicker
|
||||
.Ar <unit>
|
||||
.Pp
|
||||
.Xc
|
||||
Configure the changer to use picker
|
||||
.Pa <unit> .
|
||||
.Pp
|
||||
.Nm chio status
|
||||
.It Xo Nm chio status
|
||||
.Op Ar <type>
|
||||
.Pp
|
||||
.Xc
|
||||
Report the status of all elements in the changer. If
|
||||
.Pa <type>
|
||||
is specified, report the status of all elements of type
|
||||
.Pa <type> .
|
||||
.El
|
||||
.Pp
|
||||
The status bits are defined as follows:
|
||||
.Bl -tag -width indent
|
||||
.It Nm FULL
|
||||
.It FULL
|
||||
Element contains a media unit.
|
||||
.It Nm IMPEXP
|
||||
.It IMPEXP
|
||||
Media was deposited into element by an outside human operator.
|
||||
.It Nm EXCEPT
|
||||
.It EXCEPT
|
||||
Element is in an abnormal state.
|
||||
.It Nm ACCESS
|
||||
.It ACCESS
|
||||
Media in this element is accessible by a picker.
|
||||
.It Nm EXENAB
|
||||
Element supports passing media (exporting) to an outsite human operator.
|
||||
.It Nm INENAB
|
||||
.It EXENAB
|
||||
Element supports passing media (exporting) to an outside human operator.
|
||||
.It INENAB
|
||||
Element supports receiving media (importing) from an outside human operator.
|
||||
.El
|
||||
.Pp
|
||||
.Sh EXAMPLES
|
||||
.Nm chio move slot 3 drive 0
|
||||
.Pp
|
||||
Moves the media in slot 3 (fourth slot) to drive 0 (first drive).
|
||||
.Pp
|
||||
.Nm chio setpicker 2
|
||||
Configures the changer to use picker 2 (third picker) for operations.
|
||||
.Pp
|
||||
.Bl -tag -width indent
|
||||
.It Nm chio move slot 3 drive 0
|
||||
Move the media in slot 3 (fourth slot) to drive 0 (first drive).
|
||||
.It Nm chio setpicker 2
|
||||
Configure the changer to use picker 2 (third picker) for operations.
|
||||
.El
|
||||
.Sh FILES
|
||||
/dev/ch0 - default changer device
|
||||
.Bl -tag -width /dev/ch0 -compact
|
||||
.It Pa /dev/ch0
|
||||
default changer device
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr mt 1 ,
|
||||
.Xr ch 4 ,
|
||||
.Xr mount 8 .
|
||||
.Sh AUTHOR
|
||||
.Xr mount 8
|
||||
.Sh AUTHORS
|
||||
The
|
||||
.Nm chio
|
||||
program and SCSI changer driver were written by Jason R. Thorpe
|
||||
<[email protected]> for And Communications, http://www.and.com/
|
||||
.Nm
|
||||
program and SCSI changer driver were written by
|
||||
.An Jason R. Thorpe Aq [email protected]
|
||||
for And Communications, http://www.and.com/
|
||||
+50
-24
@@ -33,7 +33,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)chmod.1 8.4 (Berkeley) 3/31/94
|
||||
.\" $Id: chmod.1,v 1.4.2.1 1997/02/28 07:54:25 mpp Exp $
|
||||
.\" $Id: chmod.1,v 1.4.2.3 1998/05/22 10:41:45 jkoshy Exp $
|
||||
.\"
|
||||
.Dd March 31, 1994
|
||||
.Dt CHMOD 1
|
||||
@@ -51,7 +51,7 @@
|
||||
.Ar file ...
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm chmod
|
||||
.Nm
|
||||
utility modifies the file mode bits of the listed files
|
||||
as specified by the
|
||||
.Ar mode
|
||||
@@ -82,7 +82,7 @@ Symbolic links do not have modes, so unless the
|
||||
or
|
||||
.Fl L
|
||||
option is set,
|
||||
.Nm chmod
|
||||
.Nm
|
||||
on a symbolic link always succeeds and has no effect.
|
||||
The
|
||||
.Fl H ,
|
||||
@@ -99,39 +99,63 @@ Only the owner of a file or the super-user is permitted to change
|
||||
the mode of a file.
|
||||
.Pp
|
||||
The
|
||||
.Nm chmod
|
||||
.Nm
|
||||
utility exits 0 on success, and >0 if an error occurs.
|
||||
.Sh MODES
|
||||
Modes may be absolute or symbolic.
|
||||
An absolute mode is an octal number constructed by
|
||||
.Ar or-ing
|
||||
the following values:
|
||||
An absolute mode is an octal number constructed from the sum of
|
||||
one or more of the following values:
|
||||
.Pp
|
||||
.Bl -tag -width 6n -compact -offset indent
|
||||
.It Li 4000
|
||||
set-user-ID-on-execution
|
||||
( see
|
||||
(the set-user-ID-on-execution bit) Executable files with this bit set
|
||||
will run with effective uid set to the uid of the file owner.
|
||||
Directories with the set-user-id bit set will force all files and
|
||||
sub-directories created in them to be owned by the directory owner
|
||||
and not by the uid of the creating process, if the underlying file
|
||||
system supports this feature: see
|
||||
.Xr chmod 2
|
||||
for directories )
|
||||
and the
|
||||
.Ar suiddir
|
||||
option to
|
||||
.Xr mount 1 .
|
||||
.It Li 2000
|
||||
set-group-ID-on-execution
|
||||
(the set-group-ID-on-execution bit) Executable files with this bit set
|
||||
will run with effective gid set to the gid of the file owner.
|
||||
.It Li 1000
|
||||
sticky bit, see
|
||||
.Xr chmod 2
|
||||
(the sticky bit)
|
||||
When set on a directory, unprivileged users can delete and rename
|
||||
only those files in the directory that are owned by them, regardless of
|
||||
the permissions on the directory. Under FreeBSD, the sticky bit is
|
||||
ignored for executable files and may only be set for directories (see
|
||||
.Xr sticky 8 ).
|
||||
.It Li 0400
|
||||
read by owner
|
||||
Allow read by owner.
|
||||
.It Li 0200
|
||||
write by owner
|
||||
Allow write by owner.
|
||||
.It Li 0100
|
||||
execute (or search for directories) by owner
|
||||
.It Li 0070
|
||||
read, write, execute/search by group
|
||||
.It Li 0007
|
||||
read, write, execute/search by others
|
||||
For files, allow execution by owner. For directories, allow the owner to
|
||||
search in the directory.
|
||||
.It Li 0040
|
||||
Allow read by group members.
|
||||
.It Li 0020
|
||||
Allow write by group members.
|
||||
.It Li 0010
|
||||
For files, allow execution by group members. For directories, allow
|
||||
group members to search in the directory.
|
||||
.It Li 0004
|
||||
Allow read by others.
|
||||
.It Li 0002
|
||||
Allow write by others.
|
||||
.It Li 0001
|
||||
For files, allow execution by others. For directories allow others to
|
||||
search in the directory.
|
||||
.El
|
||||
.Pp
|
||||
The read, write, and execute/search values for group and others
|
||||
are encoded as described for owner.
|
||||
For example, the absolute mode that permits read, write and execute by
|
||||
the owner, read and execute by group members, read and execute by
|
||||
others, and no set-uid or set-gid behaviour is 755
|
||||
(400+200+100+040+010+004+001).
|
||||
.Pp
|
||||
The symbolic mode is described by the following grammar:
|
||||
.Bd -literal -offset indent
|
||||
@@ -280,16 +304,18 @@ option for the naughty bits.
|
||||
.Sh SEE ALSO
|
||||
.Xr chflags 1 ,
|
||||
.Xr install 1 ,
|
||||
.Xr mount 1 ,
|
||||
.Xr chmod 2 ,
|
||||
.Xr stat 2 ,
|
||||
.Xr umask 2 ,
|
||||
.Xr fts 3 ,
|
||||
.Xr setmode 3 ,
|
||||
.Xr symlink 7 ,
|
||||
.Xr chown 8
|
||||
.Xr chown 8 ,
|
||||
.Xr sticky 8
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Nm chmod
|
||||
.Nm
|
||||
utility is expected to be
|
||||
.St -p1003.2
|
||||
compatible with the exception of the
|
||||
|
||||
+16
-14
@@ -33,7 +33,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)cp.1 8.3 (Berkeley) 4/18/94
|
||||
.\" $Id: cp.1,v 1.9 1997/02/22 14:01:32 peter Exp $
|
||||
.\" $Id: cp.1,v 1.6.2.2 1998/07/15 02:01:05 jkh Exp $
|
||||
.\"
|
||||
.Dd April 18, 1994
|
||||
.Dt CP 1
|
||||
@@ -60,7 +60,7 @@
|
||||
.Ar source_file ... target_directory
|
||||
.Sh DESCRIPTION
|
||||
In the first synopsis form, the
|
||||
.Nm cp
|
||||
.Nm
|
||||
utility copies the contents of the
|
||||
.Ar source_file
|
||||
to the
|
||||
@@ -72,7 +72,7 @@ is copied to the destination
|
||||
.Ar target_directory .
|
||||
The names of the files themselves are not changed.
|
||||
If
|
||||
.Nm cp
|
||||
.Nm
|
||||
detects an attempt to copy a file to itself, the copy will fail.
|
||||
.Pp
|
||||
The following options are available:
|
||||
@@ -94,11 +94,11 @@ option is specified, no symbolic links are followed.
|
||||
If
|
||||
.Ar source_file
|
||||
designates a directory,
|
||||
.Nm cp
|
||||
.Nm
|
||||
copies the directory and the entire subtree connected at that point.
|
||||
This option also causes symbolic links to be copied, rather than
|
||||
indirected through, and for
|
||||
.Nm cp
|
||||
.Nm
|
||||
to create special files rather than copying them as normal files.
|
||||
Created directories have the same mode as the corresponding source
|
||||
directory, unmodified by the process' umask.
|
||||
@@ -112,8 +112,8 @@ option overrides any previous
|
||||
.Fl i
|
||||
options.)
|
||||
.It Fl i
|
||||
Causes
|
||||
.Nm cp
|
||||
Cause
|
||||
.Nm
|
||||
to write a prompt to the standard error output before copying a file
|
||||
that would overwrite an existing file.
|
||||
If the response from the standard input begins with the character
|
||||
@@ -127,8 +127,8 @@ option overrides any previous
|
||||
.Fl f
|
||||
options.)
|
||||
.It Fl p
|
||||
Causes
|
||||
.Nm cp
|
||||
Cause
|
||||
.Nm
|
||||
to preserve in the copy as many of the modification time, access time,
|
||||
file flags, file mode, user ID, and group ID as allowed by permissions.
|
||||
.Pp
|
||||
@@ -143,13 +143,15 @@ be preserved, the set group ID bit is not preserved
|
||||
in the copy's permissions.
|
||||
If the source file has both its set user ID and set group ID bits on,
|
||||
and either the user ID or group ID cannot be preserved, neither
|
||||
the set user ID or set group ID bits are preserved in the copy's
|
||||
the set user ID nor set group ID bits are preserved in the copy's
|
||||
permissions.
|
||||
.El
|
||||
.Pp
|
||||
For each destination file that already exists, its contents are
|
||||
overwritten if permissions allow, but its mode, user ID, and group
|
||||
ID are unchanged.
|
||||
overwritten if permissions allow. Its mode, user ID, and group
|
||||
ID are unchanged unless the
|
||||
.Fl p
|
||||
option was specified.
|
||||
.Pp
|
||||
In the second synopsis form,
|
||||
.Ar target_directory
|
||||
@@ -200,7 +202,7 @@ command's actions are determined by the last one specified.
|
||||
exits 0 on success, >0 if an error occurred.
|
||||
.Sh COMPATIBILITY
|
||||
Historic versions of the
|
||||
.Nm cp
|
||||
.Nm
|
||||
utility had a
|
||||
.Fl r
|
||||
option.
|
||||
@@ -215,7 +217,7 @@ or fifo's.
|
||||
.Xr symlink 7
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Nm cp
|
||||
.Nm
|
||||
command is expected to be
|
||||
.St -p1003.2
|
||||
compatible.
|
||||
|
||||
+2
-1
@@ -33,7 +33,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: cp.c,v 1.10 1996/03/08 06:58:06 wosch Exp $
|
||||
* $Id: cp.c,v 1.10.2.1 1997/08/24 10:34:45 jkh Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -261,6 +261,7 @@ copy(argv, type, fts_options)
|
||||
for (rval = 0; (curr = fts_read(ftsp)) != NULL;) {
|
||||
switch (curr->fts_info) {
|
||||
case FTS_NS:
|
||||
case FTS_DNR:
|
||||
case FTS_ERR:
|
||||
warnx("%s: %s",
|
||||
curr->fts_path, strerror(curr->fts_errno));
|
||||
|
||||
+30
-16
@@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: utils.c,v 1.9.2.1 1997/08/24 10:34:49 jkh Exp $
|
||||
* $Id: utils.c,v 1.9.2.2 1998/02/15 10:53:17 jkh Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -207,7 +207,7 @@ copy_link(p, exists)
|
||||
int len;
|
||||
char link[MAXPATHLEN];
|
||||
|
||||
if ((len = readlink(p->fts_path, link, sizeof(link))) == -1) {
|
||||
if ((len = readlink(p->fts_path, link, sizeof(link) - 1)) == -1) {
|
||||
warn("readlink: %s", p->fts_path);
|
||||
return (1);
|
||||
}
|
||||
@@ -262,7 +262,9 @@ setfile(fs, fd)
|
||||
int fd;
|
||||
{
|
||||
static struct timeval tv[2];
|
||||
struct stat ts;
|
||||
int rval;
|
||||
int gotstat;
|
||||
|
||||
rval = 0;
|
||||
fs->st_mode &= S_ISUID | S_ISGID | S_ISVTX |
|
||||
@@ -274,30 +276,42 @@ setfile(fs, fd)
|
||||
warn("utimes: %s", to.p_path);
|
||||
rval = 1;
|
||||
}
|
||||
if (fd ? fstat(fd, &ts) : stat(to.p_path, &ts))
|
||||
gotstat = 0;
|
||||
else {
|
||||
gotstat = 1;
|
||||
ts.st_mode &= S_ISUID | S_ISGID | S_ISVTX |
|
||||
S_IRWXU | S_IRWXG | S_IRWXO;
|
||||
}
|
||||
/*
|
||||
* Changing the ownership probably won't succeed, unless we're root
|
||||
* or POSIX_CHOWN_RESTRICTED is not set. Set uid/gid before setting
|
||||
* the mode; current BSD behavior is to remove all setuid bits on
|
||||
* chown. If chown fails, lose setuid/setgid bits.
|
||||
*/
|
||||
if (fd ? fchown(fd, fs->st_uid, fs->st_gid) :
|
||||
chown(to.p_path, fs->st_uid, fs->st_gid)) {
|
||||
if (errno != EPERM) {
|
||||
if (!gotstat || fs->st_uid != ts.st_uid || fs->st_gid != ts.st_gid)
|
||||
if (fd ? fchown(fd, fs->st_uid, fs->st_gid) :
|
||||
chown(to.p_path, fs->st_uid, fs->st_gid)) {
|
||||
if (errno != EPERM) {
|
||||
warn("chown: %s", to.p_path);
|
||||
rval = 1;
|
||||
}
|
||||
fs->st_mode &= ~(S_ISUID | S_ISGID);
|
||||
}
|
||||
|
||||
if (!gotstat || fs->st_mode != ts.st_mode)
|
||||
if (fd ? fchmod(fd, fs->st_mode) : chmod(to.p_path, fs->st_mode)) {
|
||||
warn("chown: %s", to.p_path);
|
||||
rval = 1;
|
||||
}
|
||||
fs->st_mode &= ~(S_ISUID | S_ISGID);
|
||||
}
|
||||
if (fd ? fchmod(fd, fs->st_mode) : chmod(to.p_path, fs->st_mode)) {
|
||||
warn("chown: %s", to.p_path);
|
||||
rval = 1;
|
||||
}
|
||||
|
||||
if (fd ?
|
||||
fchflags(fd, fs->st_flags) : chflags(to.p_path, fs->st_flags)) {
|
||||
warn("chflags: %s", to.p_path);
|
||||
rval = 1;
|
||||
}
|
||||
if (!gotstat || fs->st_flags != ts.st_flags)
|
||||
if (fd ?
|
||||
fchflags(fd, fs->st_flags) : chflags(to.p_path, fs->st_flags)) {
|
||||
warn("chflags: %s", to.p_path);
|
||||
rval = 1;
|
||||
}
|
||||
|
||||
return (rval);
|
||||
}
|
||||
|
||||
|
||||
+85
-76
@@ -30,7 +30,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)csh.1 8.2 (Berkeley) 1/21/94
|
||||
.\" $Id: csh.1,v 1.8 1997/02/22 14:01:40 peter Exp $
|
||||
.\" $Id: csh.1,v 1.5.2.2 1998/06/30 06:42:24 charnier Exp $
|
||||
.\"
|
||||
.Dd January 21, 1994
|
||||
.Dt CSH 1
|
||||
@@ -46,15 +46,15 @@
|
||||
.Op Fl l
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm csh
|
||||
.Nm
|
||||
is a command language interpreter
|
||||
incorporating a history mechanism (see
|
||||
.Nm History Substitutions ) ,
|
||||
.Sx History Substitutions ) ,
|
||||
job control facilities (see
|
||||
.Nm Jobs ) ,
|
||||
.Sx Jobs ) ,
|
||||
interactive file name
|
||||
and user name completion (see
|
||||
.Nm File Name Completion ) ,
|
||||
.Sx File Name Completion ) ,
|
||||
and a C-like syntax. It is used both as an interactive
|
||||
login shell and a shell script command processor.
|
||||
.Ss Argument list processing
|
||||
@@ -100,7 +100,7 @@ is the only flag specified).
|
||||
The shell loads
|
||||
.Pa .cshrc
|
||||
even if it does not belong to the effective user.
|
||||
.Xr su 1
|
||||
.Xr Su 1
|
||||
can pass
|
||||
.Fl m
|
||||
to the shell.
|
||||
@@ -116,16 +116,16 @@ A
|
||||
may be used to escape the newline at the end of this
|
||||
line and continue onto another line.
|
||||
.It Fl v
|
||||
Causes the
|
||||
Cause the
|
||||
.Ar verbose
|
||||
variable to be set, with the effect
|
||||
that command input is echoed after history substitution.
|
||||
.It Fl x
|
||||
Causes the
|
||||
Cause the
|
||||
.Ar echo
|
||||
variable to be set, so that commands are echoed immediately before execution.
|
||||
.It Fl V
|
||||
Causes the
|
||||
Cause the
|
||||
.Ar verbose
|
||||
variable to be set even before
|
||||
.Pa .cshrc
|
||||
@@ -157,7 +157,7 @@ Remaining arguments initialize the variable
|
||||
.Ar argv .
|
||||
.Pp
|
||||
An instance of
|
||||
.Nm csh
|
||||
.Nm
|
||||
begins by executing commands from the file
|
||||
.Pa /etc/csh.cshrc
|
||||
and,
|
||||
@@ -256,7 +256,7 @@ showing that the job which was started asynchronously was job number
|
||||
1 and had one (top-level) process, whose process id was 1234.
|
||||
.Pp
|
||||
If you are running a job and wish to do something else you may hit the key
|
||||
.Nm ^Z
|
||||
.Em ^Z
|
||||
(control-Z) which sends a STOP signal to the current job.
|
||||
The shell will then normally show that the job has been `Stopped',
|
||||
and print another prompt. You can then manipulate the state of this job,
|
||||
@@ -271,11 +271,11 @@ the
|
||||
command
|
||||
.Ar fg .
|
||||
A
|
||||
.Nm ^Z
|
||||
.Em ^Z
|
||||
takes effect immediately and
|
||||
is like an interrupt in that pending output and unread input are discarded
|
||||
when it is typed. There is another special key
|
||||
.Nm ^Y
|
||||
.Em ^Y
|
||||
that does not generate a STOP signal until a program attempts to
|
||||
.Xr read 2
|
||||
it.
|
||||
@@ -353,7 +353,7 @@ the shell variable
|
||||
.Ar filec
|
||||
(see
|
||||
.Ic set ) ,
|
||||
.Nm csh
|
||||
.Nm
|
||||
will
|
||||
interactively complete file names and user names from unique
|
||||
prefixes, when they are input from the terminal followed by
|
||||
@@ -370,7 +370,7 @@ and the input is
|
||||
.Pp
|
||||
.Dl % vi ch<escape>
|
||||
.Pp
|
||||
.Nm csh
|
||||
.Nm
|
||||
will complete the prefix ``ch''
|
||||
to the only matching file name ``chaosnet'', changing the input
|
||||
line to
|
||||
@@ -381,7 +381,7 @@ However, given
|
||||
.Pp
|
||||
.Dl % vi D<escape>
|
||||
.Pp
|
||||
.Nm csh
|
||||
.Nm
|
||||
will only expand the input to
|
||||
.Pp
|
||||
.Dl % vi DSC.
|
||||
@@ -391,7 +391,7 @@ incomplete, since there are two file names matching the prefix ``D''.
|
||||
.Pp
|
||||
If a partial file name is followed by the end-of-file character
|
||||
(usually control-D), then, instead of completing the name,
|
||||
.Nm csh
|
||||
.Nm
|
||||
will list all file names matching the prefix. For example,
|
||||
the input
|
||||
.Pp
|
||||
@@ -455,7 +455,7 @@ in the previous command with little typing and a high degree of confidence.
|
||||
History substitutions begin with the character `!' and may begin
|
||||
.Ar anywhere
|
||||
in the input stream (with the proviso that they
|
||||
.Nm "do not"
|
||||
.Em "do not"
|
||||
nest.)
|
||||
This `!' may be preceded by a `\e' to prevent its special meaning; for
|
||||
convenience, an `!' is passed unchanged when it is followed by a blank,
|
||||
@@ -631,7 +631,7 @@ Strings enclosed in `"' may be expanded as described below.
|
||||
.Pp
|
||||
In both cases the resulting text becomes (all or part of) a single word;
|
||||
only in one special case (see
|
||||
.Em Command Substitution
|
||||
.Sx Command Substitution
|
||||
below) does a `"' quoted string yield parts of more than one word;
|
||||
`\'' quoted strings never do.
|
||||
.Ss Alias substitution
|
||||
@@ -708,7 +708,7 @@ occurs, and within `\''s where it
|
||||
.Em never
|
||||
occurs.
|
||||
Strings quoted by `\*(ga' are interpreted later (see
|
||||
.Nm "Command substitution"
|
||||
.Sx "Command substitution"
|
||||
below) so `$' substitution does not occur there until later, if at all.
|
||||
A `$' is passed unchanged if followed by a blank, tab, or end-of-line.
|
||||
.Pp
|
||||
@@ -764,11 +764,11 @@ It is not an error for a range to be empty if the second argument is omitted
|
||||
or in range.
|
||||
.It $#name
|
||||
.It ${#name}
|
||||
Gives the number of words in the variable.
|
||||
Give the number of words in the variable.
|
||||
This is useful for later use in a
|
||||
`$argv[selector]'.
|
||||
.It $0
|
||||
Substitutes the name of the file from which command input is being read.
|
||||
Substitute the name of the file from which command input is being read.
|
||||
An error occurs if the name is not known.
|
||||
.It $number
|
||||
.It ${number}
|
||||
@@ -788,16 +788,16 @@ The following substitutions may not be modified with `:' modifiers.
|
||||
.Bl -tag -width Ds -compact -offset indent
|
||||
.It $?name
|
||||
.It ${?name}
|
||||
Substitutes the string `1' if name is set, `0' if it is not.
|
||||
Substitute the string `1' if name is set, `0' if it is not.
|
||||
.It $?0
|
||||
Substitutes `1' if the current input filename is known, `0' if it is not.
|
||||
Substitute `1' if the current input filename is known, `0' if it is not.
|
||||
.It \&$\&$\&
|
||||
Substitute the (decimal) process number of the (parent) shell.
|
||||
.It $!
|
||||
Substitute the (decimal) process number of the last background process
|
||||
started by this shell.
|
||||
.It $<
|
||||
Substitutes a line from the standard
|
||||
Substitute a line from the standard
|
||||
input, with no further interpretation.
|
||||
It can be used to read from the keyboard in a shell script.
|
||||
.El
|
||||
@@ -922,7 +922,7 @@ is expanded in the same way as `<' input filenames are.
|
||||
.It >>& name
|
||||
.It >>! name
|
||||
.It >>&! name
|
||||
Uses file
|
||||
Use file
|
||||
.Ar name
|
||||
as the standard output;
|
||||
like `>' but places output at the end of the file.
|
||||
@@ -961,11 +961,11 @@ Several of the builtin commands (to be described later)
|
||||
take expressions, in which the operators are similar to those of C, with
|
||||
the same precedence.
|
||||
These expressions appear in the
|
||||
.Nm @,
|
||||
.Ar exit ,
|
||||
.Ar if ,
|
||||
.Em @ ,
|
||||
.Em exit ,
|
||||
.Em if ,
|
||||
and
|
||||
.Ar while
|
||||
.Em while
|
||||
commands.
|
||||
The following operators are available:
|
||||
.Bd -ragged -offset indent
|
||||
@@ -1076,7 +1076,7 @@ or
|
||||
.Ar unalias .
|
||||
.Pp
|
||||
.It Ic alloc
|
||||
Shows the amount of dynamic memory acquired, broken down into used and
|
||||
Show the amount of dynamic memory acquired, broken down into used and
|
||||
free memory.
|
||||
With an argument shows the number of free and used blocks in each size
|
||||
category. The categories start at size 8 and double at each step.
|
||||
@@ -1085,11 +1085,11 @@ systems other than the VAX may use a different memory allocator.
|
||||
.Pp
|
||||
.It Ic bg
|
||||
.It Ic bg \&% Ns Ar job ...
|
||||
Puts the current or specified jobs into the background, continuing them
|
||||
Put the current or specified jobs into the background, continuing them
|
||||
if they were stopped.
|
||||
.Pp
|
||||
.It Ic break
|
||||
Causes execution to resume after the
|
||||
Cause execution to resume after the
|
||||
.Ic end
|
||||
of the nearest enclosing
|
||||
.Ic foreach
|
||||
@@ -1099,7 +1099,7 @@ The remaining commands on the current line are executed.
|
||||
Multi-level breaks are thus possible by writing them all on one line.
|
||||
.Pp
|
||||
.It Ic breaksw
|
||||
Causes a break from a
|
||||
Cause a break from a
|
||||
.Ic switch ,
|
||||
resuming after the
|
||||
.Ic endsw .
|
||||
@@ -1137,7 +1137,7 @@ or
|
||||
The rest of the commands on the current line are executed.
|
||||
.Pp
|
||||
.It Ic default :
|
||||
Labels the default case in a
|
||||
Label the default case in a
|
||||
.Ic switch
|
||||
statement.
|
||||
The default should come after all
|
||||
@@ -1145,7 +1145,7 @@ The default should come after all
|
||||
labels.
|
||||
.Pp
|
||||
.It Ic dirs
|
||||
Prints the directory stack; the top of the stack is at the left,
|
||||
Print the directory stack; the top of the stack is at the left,
|
||||
the first directory in the stack being the current directory.
|
||||
.Pp
|
||||
.It Ic echo Ar wordlist
|
||||
@@ -1192,7 +1192,7 @@ variable (first form) or with the value of the specified
|
||||
.Pp
|
||||
.It Ic fg
|
||||
.It Ic fg % Ns Ar job ...
|
||||
Brings the current or specified jobs into the foreground, continuing them if
|
||||
Bring the current or specified jobs into the foreground, continuing them if
|
||||
they were stopped.
|
||||
.Pp
|
||||
.It Ic foreach Ar name (wordlist)
|
||||
@@ -1252,7 +1252,7 @@ that does not begin with a `/'.
|
||||
.It Ic history Ar n
|
||||
.It Ic history Fl r Ar n
|
||||
.It Ic history Fl h Ar n
|
||||
Displays the history event list; if
|
||||
Display the history event list; if
|
||||
.Ar n
|
||||
is given only the
|
||||
.Ar n
|
||||
@@ -1324,7 +1324,7 @@ must appear alone on its input line or after an
|
||||
.Pp
|
||||
.It Ic jobs
|
||||
.It Ic jobs Fl l
|
||||
Lists the active jobs; the
|
||||
List the active jobs; the
|
||||
.Fl l
|
||||
option lists process id's in addition to the normal information.
|
||||
.Pp
|
||||
@@ -1332,10 +1332,10 @@ option lists process id's in addition to the normal information.
|
||||
.It Ic kill Ar pid
|
||||
.It Ic kill Fl sig Ar pid ...
|
||||
.It Ic kill Fl l
|
||||
Sends either the TERM (terminate) signal or the
|
||||
Send either the TERM (terminate) signal or the
|
||||
specified signal to the specified jobs or processes.
|
||||
Signals are either given by number or by names (as given in
|
||||
.Pa /usr/include/signal.h,
|
||||
.Pa /usr/include/signal.h ,
|
||||
stripped of the prefix ``SIG'').
|
||||
The signal names are listed by ``kill \-l''.
|
||||
There is no default, just saying `kill' does not
|
||||
@@ -1349,7 +1349,7 @@ then the job or process will be sent a CONT (continue) signal as well.
|
||||
.It Ic limit Fl h
|
||||
.It Ic limit Fl h Ar resource
|
||||
.It Ic limit Fl h Ar resource maximum-use
|
||||
Limits the consumption by the current process and each process
|
||||
Limit the consumption by the current process and each process
|
||||
it creates to not individually exceed
|
||||
.Ar maximum-use
|
||||
on the
|
||||
@@ -1405,7 +1405,7 @@ of the names suffice.
|
||||
.Pp
|
||||
.It Ic login
|
||||
Terminate a login shell, replacing it with an instance of
|
||||
.Pa /usr/bin/login.
|
||||
.Pa /usr/bin/login .
|
||||
This is one way to log off, included for compatibility with
|
||||
.Xr sh 1 .
|
||||
.Pp
|
||||
@@ -1448,7 +1448,7 @@ All processes detached with `&' are effectively
|
||||
.Pp
|
||||
.It Ic notify
|
||||
.It Ic notify % Ns Ar job ...
|
||||
Causes the shell to notify the user asynchronously when the status of the
|
||||
Cause the shell to notify the user asynchronously when the status of the
|
||||
current or specified jobs change; normally notification is presented
|
||||
before a prompt. This is automatic if the shell variable
|
||||
.Ic notify
|
||||
@@ -1478,7 +1478,7 @@ are disabled (/etc/csh.cshrc, /etc/csh.login).
|
||||
.Pp
|
||||
.It Ic popd
|
||||
.It Ic popd Ar +n
|
||||
Pops the directory stack, returning to the new top directory.
|
||||
Pop the directory stack, returning to the new top directory.
|
||||
With an argument
|
||||
.Ns \`+ Ar n Ns \'
|
||||
discards the
|
||||
@@ -1511,7 +1511,7 @@ stack around to be the top element and changes to it. The members
|
||||
of the directory stack are numbered from the top starting at 0.
|
||||
.Pp
|
||||
.It Ic rehash
|
||||
Causes the internal hash table of the contents of the directories in
|
||||
Cause the internal hash table of the contents of the directories in
|
||||
the
|
||||
.Ic path
|
||||
variable to be recomputed. This is needed if new commands are added
|
||||
@@ -1589,7 +1589,7 @@ The most commonly used environment variables
|
||||
and
|
||||
.Ev PATH
|
||||
are automatically imported to and exported from the
|
||||
.Nm csh
|
||||
.Nm
|
||||
variables
|
||||
.Ar user ,
|
||||
.Ar term ,
|
||||
@@ -1625,19 +1625,21 @@ commands.
|
||||
Normally input during
|
||||
.Ic source
|
||||
commands is not placed on the history list;
|
||||
the \-h option causes the commands to be placed on the
|
||||
the
|
||||
.Fl h
|
||||
option causes the commands to be placed on the
|
||||
history list without being executed.
|
||||
.Pp
|
||||
.It Ic stop
|
||||
.It Ic stop % Ns Ar job ...
|
||||
Stops the current or specified jobs that are executing in the background.
|
||||
Stop the current or specified jobs that are executing in the background.
|
||||
.Pp
|
||||
.It Ic suspend
|
||||
Causes the shell to stop in its tracks, much as if it had been sent a stop
|
||||
Cause the shell to stop in its tracks, much as if it had been sent a stop
|
||||
signal with
|
||||
.Ic ^Z .
|
||||
.Em ^Z .
|
||||
This is most often used to stop shells started by
|
||||
.Xr su 1 .
|
||||
.Xr su 1 .
|
||||
.Pp
|
||||
.It Ic switch Ar (string)
|
||||
.It Ic case Ar str1 :
|
||||
@@ -1699,7 +1701,7 @@ is disabled.
|
||||
.It Ic unlimit Ar resource
|
||||
.It Ic unlimit Fl h
|
||||
.It Ic unlimit Fl h Ar resource
|
||||
Removes the limitation on
|
||||
Remove the limitation on
|
||||
.Ar resource .
|
||||
If no
|
||||
.Ar resource
|
||||
@@ -1718,7 +1720,7 @@ It is not an error for nothing to be
|
||||
.Ic unset .
|
||||
.Pp
|
||||
.It Ic unsetenv Ar pattern
|
||||
Removes all variables whose name match the specified pattern from the
|
||||
Remove all variables whose name match the specified pattern from the
|
||||
environment. See also the
|
||||
.Ic setenv
|
||||
command above and
|
||||
@@ -1730,7 +1732,7 @@ If the shell is interactive, then an interrupt can disrupt the wait.
|
||||
After the interrupt, the shell prints names and job numbers of all jobs
|
||||
known to be outstanding.
|
||||
.It Ic which Ar command
|
||||
Displays the resolved command that will be executed by the shell.
|
||||
Display the resolved command that will be executed by the shell.
|
||||
.Pp
|
||||
.It Ic while Ar (expr)
|
||||
.It \&...
|
||||
@@ -1755,10 +1757,10 @@ Prompting occurs here the first time through the loop as for the
|
||||
statement if the input is a terminal.
|
||||
.Pp
|
||||
.It Ic % Ns Ar job
|
||||
Brings the specified job into the foreground.
|
||||
Bring the specified job into the foreground.
|
||||
.Pp
|
||||
.It Ic % Ns Ar job Ic &
|
||||
Continues the specified job in the background.
|
||||
Continue the specified job in the background.
|
||||
.Pp
|
||||
.It Ic @
|
||||
.It Ic @ Ar name Ns = Ns expr
|
||||
@@ -1831,7 +1833,7 @@ is likewise handled; it is not
|
||||
necessary to worry about its setting other than in the file
|
||||
.Ar \&.cshrc
|
||||
as inferior
|
||||
.Nm csh
|
||||
.Nm
|
||||
processes will import the definition of
|
||||
.Ar path
|
||||
from the environment, and re-export it if you then change it.
|
||||
@@ -1842,7 +1844,7 @@ positional parameters are substituted, i.e., `$1' is replaced by
|
||||
`$argv[1]',
|
||||
etc.
|
||||
.It Ic cdpath
|
||||
Gives a list of alternate directories searched to find subdirectories
|
||||
Give a list of alternate directories searched to find subdirectories
|
||||
in
|
||||
.Ar chdir
|
||||
commands.
|
||||
@@ -1910,10 +1912,9 @@ files are not accidentally destroyed, and that `>>' redirections
|
||||
refer to existing files.
|
||||
.It Ic noglob
|
||||
If set, filename expansion is inhibited.
|
||||
This inhibition is most useful in shell scripts that
|
||||
are not dealing with filenames,
|
||||
or after a list of filenames has been obtained and further expansions
|
||||
are not desirable.
|
||||
This inhibition is most useful in shell scripts that are not dealing with
|
||||
filenames, or after a list of filenames has been obtained and further
|
||||
expansions are not desirable.
|
||||
.It Ic nonomatch
|
||||
If set, it is not an error for a filename expansion to not match any
|
||||
existing files; instead the primitive pattern is returned.
|
||||
@@ -1981,7 +1982,7 @@ If it terminated abnormally, then 0200 is added to the status.
|
||||
Builtin commands that fail return exit status `1',
|
||||
all other builtin commands set status to `0'.
|
||||
.It Ic time
|
||||
Controls automatic timing of commands.
|
||||
Control automatic timing of commands.
|
||||
If set, then any command that takes more than this many cpu seconds
|
||||
will cause a line giving user, system, and real times and a utilization
|
||||
percentage which is the ratio of user plus system times to real time
|
||||
@@ -2080,27 +2081,35 @@ signal; otherwise this signal is passed on to children from the state in the
|
||||
shell's parent.
|
||||
Interrupts are not allowed when a login shell is reading the file
|
||||
.Pa \&.logout .
|
||||
.Sh AUTHOR
|
||||
William Joy.
|
||||
Job control and directory stack features first implemented by J.E. Kulp of
|
||||
IIASA, Laxenburg, Austria,
|
||||
.Sh AUTHORS
|
||||
.An William Joy .
|
||||
.Pp
|
||||
Job control and directory stack features first implemented by
|
||||
.An J.E. Kulp
|
||||
of IIASA, Laxenburg, Austria,
|
||||
with different syntax than that used now.
|
||||
File name completion code written by Ken Greer, HP Labs.
|
||||
Eight-bit implementation Christos S. Zoulas, Cornell University.
|
||||
.Pp
|
||||
File name completion code written by
|
||||
.An Ken Greer ,
|
||||
HP Labs.
|
||||
.Pp
|
||||
Eight-bit implementation
|
||||
.An Christos S. Zoulas ,
|
||||
Cornell University.
|
||||
.Sh FILES
|
||||
.Bl -tag -width /etc/passwd -compact
|
||||
.It Pa ~/.cshrc
|
||||
Read at beginning of execution by each shell.
|
||||
read at beginning of execution by each shell.
|
||||
.It Pa ~/.login
|
||||
Read by login shell, after `.cshrc' at login.
|
||||
read by login shell, after `.cshrc' at login.
|
||||
.It Pa ~/.logout
|
||||
Read by login shell, at logout.
|
||||
read by login shell, at logout.
|
||||
.It Pa /bin/sh
|
||||
Standard shell, for shell scripts not starting with a `#'.
|
||||
standard shell, for shell scripts not starting with a `#'.
|
||||
.It Pa /tmp/sh*
|
||||
Temporary file for `<<'.
|
||||
temporary file for `<<'.
|
||||
.It Pa /etc/passwd
|
||||
Source of home directories for `~name'.
|
||||
source of home directories for `~name'.
|
||||
.El
|
||||
.Sh LIMITATIONS
|
||||
Word lengths \-
|
||||
|
||||
+6
-6
@@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: csh.c,v 1.6.2.1 1997/08/24 21:41:29 jkh Exp $
|
||||
* $Id: csh.c,v 1.6.2.2 1998/01/31 17:06:13 joerg Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -525,7 +525,7 @@ notty:
|
||||
{
|
||||
int osetintr = setintr;
|
||||
sig_t oparintr = parintr;
|
||||
sigset_t omask = sigblock(sigmask(SIGINT));
|
||||
int omask = sigblock(sigmask(SIGINT));
|
||||
|
||||
setintr = 0;
|
||||
parintr = SIG_IGN; /* Disable onintr */
|
||||
@@ -696,7 +696,7 @@ srcunit(unit, onlyown, hflg)
|
||||
bool otell = cantell;
|
||||
|
||||
struct Bin saveB;
|
||||
volatile sigset_t omask;
|
||||
volatile int omask;
|
||||
jmp_buf oldexit;
|
||||
|
||||
/* The (few) real local variables */
|
||||
@@ -932,9 +932,9 @@ pintr1(wantnl)
|
||||
bool wantnl;
|
||||
{
|
||||
Char **v;
|
||||
sigset_t omask;
|
||||
int omask;
|
||||
|
||||
omask = sigblock((sigset_t) 0);
|
||||
omask = sigblock(0);
|
||||
if (setintr) {
|
||||
(void) sigsetmask(omask & ~sigmask(SIGINT));
|
||||
if (pjobs) {
|
||||
@@ -1004,7 +1004,7 @@ process(catch)
|
||||
* Interruptible during interactive reads
|
||||
*/
|
||||
if (setintr)
|
||||
(void) sigsetmask(sigblock((sigset_t) 0) & ~sigmask(SIGINT));
|
||||
(void) sigsetmask(sigblock(0) & ~sigmask(SIGINT));
|
||||
|
||||
/*
|
||||
* For the sake of reset()
|
||||
|
||||
+3
-5
@@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: dir.c,v 1.4 1995/06/18 14:34:48 ache Exp $
|
||||
* $Id: dir.c,v 1.4.2.1 1997/08/24 21:41:30 jkh Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -702,8 +702,7 @@ dcanon(cp, p)
|
||||
*/
|
||||
*--sp = 0; /* form the pathname for readlink */
|
||||
if (sp != cp && !adrof(STRignore_symlinks) &&
|
||||
(cc = readlink(short2str(cp), tlink,
|
||||
sizeof tlink)) >= 0) {
|
||||
(cc = readlink(short2str(cp), tlink, sizeof(tlink) - 1)) >= 0) {
|
||||
(void) Strcpy(link, str2short(tlink));
|
||||
link[cc] = '\0';
|
||||
|
||||
@@ -787,8 +786,7 @@ dcanon(cp, p)
|
||||
|
||||
if (sp != cp && adrof(STRchase_symlinks) &&
|
||||
!adrof(STRignore_symlinks) &&
|
||||
(cc = readlink(short2str(cp), tlink,
|
||||
sizeof tlink)) >= 0) {
|
||||
(cc = readlink(short2str(cp), tlink, sizeof(tlink) - 1)) >= 0) {
|
||||
(void) Strcpy(link, str2short(tlink));
|
||||
link[cc] = '\0';
|
||||
|
||||
|
||||
+2
-2
@@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: exec.c,v 1.4 1995/06/18 14:20:16 ache Exp $
|
||||
* $Id: exec.c,v 1.4.2.1 1997/08/24 21:41:31 jkh Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -193,7 +193,7 @@ doexec(v, t)
|
||||
* We must do this AFTER any possible forking (like `foo` in glob) so that
|
||||
* this shell can still do subprocesses.
|
||||
*/
|
||||
(void) sigsetmask((sigset_t) 0);
|
||||
(void) sigsetmask(0);
|
||||
/*
|
||||
* If no path, no words in path, or a / in the filename then restrict the
|
||||
* command search.
|
||||
|
||||
+5
-5
@@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: func.c,v 1.5 1996/08/11 23:10:38 ache Exp $
|
||||
* $Id: func.c,v 1.5.2.1 1997/08/24 21:41:33 jkh Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -507,7 +507,7 @@ preread()
|
||||
{
|
||||
whyles->w_end.type = I_SEEK;
|
||||
if (setintr)
|
||||
(void) sigsetmask(sigblock((sigset_t) 0) & ~sigmask(SIGINT));
|
||||
(void) sigsetmask(sigblock(0) & ~sigmask(SIGINT));
|
||||
|
||||
search(T_BREAK, 0, NULL); /* read the expression in */
|
||||
if (setintr)
|
||||
@@ -565,7 +565,7 @@ dorepeat(v, kp)
|
||||
struct command *kp;
|
||||
{
|
||||
int i;
|
||||
sigset_t omask = 0;
|
||||
int omask = 0;
|
||||
|
||||
i = getn(v[1]);
|
||||
if (setintr)
|
||||
@@ -907,7 +907,7 @@ xecho(sep, v)
|
||||
int nonl = 0;
|
||||
|
||||
if (setintr)
|
||||
(void) sigsetmask(sigblock((sigset_t) 0) & ~sigmask(SIGINT));
|
||||
(void) sigsetmask(sigblock(0) & ~sigmask(SIGINT));
|
||||
v++;
|
||||
if (*v == 0)
|
||||
return;
|
||||
@@ -955,7 +955,7 @@ dosetenv(v, t)
|
||||
Char **ep;
|
||||
|
||||
if (setintr)
|
||||
(void) sigsetmask(sigblock((sigset_t) 0) & ~sigmask(SIGINT));
|
||||
(void) sigsetmask(sigblock(0) & ~sigmask(SIGINT));
|
||||
for (ep = STR_environ; *ep; ep++)
|
||||
(void) fprintf(cshout, "%s\n", vis_str(*ep));
|
||||
return;
|
||||
|
||||
+2
-2
@@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: hist.c,v 1.2 1994/09/24 02:54:06 davidg Exp $
|
||||
* $Id: hist.c,v 1.2.8.1 1997/08/24 21:41:34 jkh Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -127,7 +127,7 @@ dohist(v, t)
|
||||
if (getn(value(STRhistory)) == 0)
|
||||
return;
|
||||
if (setintr)
|
||||
(void) sigsetmask(sigblock((sigset_t) 0) & ~sigmask(SIGINT));
|
||||
(void) sigsetmask(sigblock(0) & ~sigmask(SIGINT));
|
||||
while (*++v && **v == '-') {
|
||||
Char *vp = *v;
|
||||
|
||||
|
||||
+10
-10
@@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: proc.c,v 1.2.8.1 1997/08/24 21:41:37 jkh Exp $
|
||||
* $Id: proc.c,v 1.2.8.2 1998/01/31 17:06:15 joerg Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -205,7 +205,7 @@ pnote()
|
||||
{
|
||||
struct process *pp;
|
||||
int flags;
|
||||
sigset_t omask;
|
||||
int omask;
|
||||
|
||||
neednote = 0;
|
||||
for (pp = proclist.p_next; pp != NULL; pp = pp->p_next) {
|
||||
@@ -228,7 +228,7 @@ void
|
||||
pwait()
|
||||
{
|
||||
struct process *fp, *pp;
|
||||
sigset_t omask;
|
||||
int omask;
|
||||
|
||||
/*
|
||||
* Here's where dead procs get flushed.
|
||||
@@ -259,7 +259,7 @@ pjwait(pp)
|
||||
{
|
||||
struct process *fp;
|
||||
int jobflags, reason;
|
||||
sigset_t omask;
|
||||
int omask;
|
||||
|
||||
while (pp->p_pid != pp->p_jobid)
|
||||
pp = pp->p_friends;
|
||||
@@ -348,7 +348,7 @@ dowait(v, t)
|
||||
struct command *t;
|
||||
{
|
||||
struct process *pp;
|
||||
sigset_t omask;
|
||||
int omask;
|
||||
|
||||
pjobs++;
|
||||
omask = sigblock(sigmask(SIGCHLD));
|
||||
@@ -356,7 +356,7 @@ loop:
|
||||
for (pp = proclist.p_next; pp; pp = pp->p_next)
|
||||
if (pp->p_pid && /* pp->p_pid == pp->p_jobid && */
|
||||
pp->p_flags & PRUNNING) {
|
||||
(void) sigpause((sigset_t) 0);
|
||||
(void) sigpause(0);
|
||||
goto loop;
|
||||
}
|
||||
(void) sigsetmask(omask);
|
||||
@@ -1003,7 +1003,7 @@ pkill(v, signum)
|
||||
struct process *pp, *np;
|
||||
int jobflags = 0;
|
||||
int pid, err1 = 0;
|
||||
sigset_t omask;
|
||||
int omask;
|
||||
Char *cp;
|
||||
|
||||
omask = sigmask(SIGCHLD);
|
||||
@@ -1087,7 +1087,7 @@ pstart(pp, foregnd)
|
||||
int foregnd;
|
||||
{
|
||||
struct process *np;
|
||||
sigset_t omask;
|
||||
int omask;
|
||||
long jobflags = 0;
|
||||
|
||||
omask = sigblock(sigmask(SIGCHLD));
|
||||
@@ -1233,7 +1233,7 @@ pfork(t, wanttty)
|
||||
int pid;
|
||||
bool ignint = 0;
|
||||
int pgrp;
|
||||
sigset_t omask;
|
||||
int omask;
|
||||
|
||||
/*
|
||||
* A child will be uninterruptible only under very special conditions.
|
||||
@@ -1330,7 +1330,7 @@ void
|
||||
pgetty(wanttty, pgrp)
|
||||
int wanttty, pgrp;
|
||||
{
|
||||
sigset_t omask = 0;
|
||||
int omask = 0;
|
||||
|
||||
/*
|
||||
* christos: I am blocking the tty signals till I've set things
|
||||
|
||||
+4
-4
@@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: sem.c,v 1.3 1995/05/30 00:06:37 rgrimes Exp $
|
||||
* $Id: sem.c,v 1.3.6.1 1997/08/24 21:41:38 jkh Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -70,9 +70,9 @@ execute(t, wanttty, pipein, pipeout)
|
||||
int pid = 0;
|
||||
int pv[2];
|
||||
|
||||
static sigset_t csigmask;
|
||||
static int csigmask;
|
||||
|
||||
static sigset_t ocsigmask;
|
||||
static int ocsigmask;
|
||||
static int onosigchld = 0;
|
||||
static int nosigchld = 0;
|
||||
|
||||
@@ -226,7 +226,7 @@ execute(t, wanttty, pipein, pipeout)
|
||||
else {
|
||||
int ochild, osetintr, ohaderr, odidfds;
|
||||
int oSHIN, oSHOUT, oSHERR, oOLDSTD, otpgrp;
|
||||
sigset_t omask;
|
||||
int omask;
|
||||
|
||||
/*
|
||||
* Prepare for the vfork by saving everything that the child
|
||||
|
||||
+2
-2
@@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: set.c,v 1.4 1995/07/07 23:13:11 ache Exp $
|
||||
* $Id: set.c,v 1.4.2.1 1997/08/24 21:41:38 jkh Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -819,7 +819,7 @@ plist(p)
|
||||
int len;
|
||||
|
||||
if (setintr)
|
||||
(void) sigsetmask(sigblock((sigset_t) 0) & ~sigmask(SIGINT));
|
||||
(void) sigsetmask(sigblock(0) & ~sigmask(SIGINT));
|
||||
|
||||
for (;;) {
|
||||
while (p->v_left)
|
||||
|
||||
+15
-15
@@ -33,7 +33,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)date.1 8.3 (Berkeley) 4/28/95
|
||||
.\" $Id: date.1,v 1.8.2.6 1997/10/03 12:54:28 danny Exp $
|
||||
.\" $Id: date.1,v 1.8.2.8 1998/06/30 06:42:44 charnier Exp $
|
||||
.\"
|
||||
.Dd November 17, 1993
|
||||
.Dt DATE 1
|
||||
@@ -52,7 +52,7 @@
|
||||
.Op Fl f Ar fmt Ar date | [[[[yy]mm]dd]HH]MM[\&.ss]
|
||||
.Op Cm + Ns Ar format
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
.Nm Date
|
||||
displays the current date and time when invoked without arguments.
|
||||
Providing arguments will format the date and time in a user-defined
|
||||
way or set the date.
|
||||
@@ -84,12 +84,12 @@ is used to synchronize the clocks on groups of machines.
|
||||
By default, if
|
||||
.Xr timed
|
||||
is running,
|
||||
.Nm date
|
||||
.Nm
|
||||
will set the time on all of the machines in the local group.
|
||||
The
|
||||
.Fl n
|
||||
option stops
|
||||
.Nm date
|
||||
.Nm
|
||||
from setting the time for other than the current machine.
|
||||
.It Fl r
|
||||
Print out the date and time in
|
||||
@@ -112,14 +112,14 @@ Adjust the minute, hour, month day, week day, month or year according to
|
||||
.Ar val .
|
||||
If
|
||||
.Ar val
|
||||
is preceeded with a plus or minus sign, the date is adjusted forwards
|
||||
is preceded with a plus or minus sign, the date is adjusted forwards
|
||||
or backwards according to the remaining string, otherwise the relevant
|
||||
part of the date is set. The date can be adjusted as many times as
|
||||
required using these flags. Flags are processed in the order given.
|
||||
.Pp
|
||||
Minutes are in the range 0-59, hours are in the range 1-12, month days
|
||||
are in the range 1-31, week days are in the range 0-6 (sun-sat), months
|
||||
are in the range 1-12 (jan-dec) and years are in the range 80-38 or
|
||||
are in the range 1-31, week days are in the range 0-6 (Sun-Sat), months
|
||||
are in the range 1-12 (Jan-Dec) and years are in the range 80-38 or
|
||||
1980-2038.
|
||||
.Pp
|
||||
If
|
||||
@@ -219,7 +219,7 @@ The command:
|
||||
date -v1d -v+1m -v-1d -v-fri
|
||||
.Ed
|
||||
.Pp
|
||||
will display the last friday of the month:
|
||||
will display the last Friday of the month:
|
||||
.Bd -literal -offset indent
|
||||
Fri Aug 29 04:31:11 BST 1997
|
||||
.Ed
|
||||
@@ -242,7 +242,7 @@ date 1432
|
||||
sets the time to
|
||||
.Li "2:32 PM" ,
|
||||
without modifying the date.
|
||||
.Sh ENVIRONMENT VARIABLES
|
||||
.Sh ENVIRONMENT
|
||||
The execution of
|
||||
.Nm
|
||||
is affected by the following environment variables:
|
||||
@@ -250,7 +250,7 @@ is affected by the following environment variables:
|
||||
.It Ev TZ
|
||||
The timezone to use when displaying dates.
|
||||
The normal format is a pathname relative to
|
||||
.Dq Pa /usr/share/zoneinfo .
|
||||
.Pa /usr/share/zoneinfo .
|
||||
For example, the command
|
||||
.Dq TZ=America/Los_Angeles date
|
||||
displays the current time in California.
|
||||
@@ -261,9 +261,9 @@ for more information.
|
||||
.Sh FILES
|
||||
.Bl -tag -width /var/log/messages -compact
|
||||
.It Pa /var/log/wtmp
|
||||
A record of date resets and time changes.
|
||||
a record of date resets and time changes
|
||||
.It Pa /var/log/messages
|
||||
A record of the user setting the time.
|
||||
a record of the user setting the time
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr gettimeofday 2 ,
|
||||
@@ -285,14 +285,14 @@ Occasionally, when
|
||||
synchronizes the time on many hosts, the setting of a new time value may
|
||||
require more than a few seconds.
|
||||
On these occasions,
|
||||
.Nm date
|
||||
.Nm
|
||||
prints:
|
||||
.Ql Network time being set .
|
||||
The message
|
||||
.Ql Communication error with timed
|
||||
occurs when the communication
|
||||
between
|
||||
.Nm date
|
||||
.Nm
|
||||
and
|
||||
.Xr timed
|
||||
fails.
|
||||
@@ -313,7 +313,7 @@ will be running on
|
||||
.Tn GMT .
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Nm date
|
||||
.Nm
|
||||
command is expected to be compatible with
|
||||
.St -p1003.2 .
|
||||
.Sh HISTORY
|
||||
|
||||
+9
-9
@@ -33,7 +33,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)dd.1 8.2 (Berkeley) 1/13/94
|
||||
.\" $Id: dd.1,v 1.2.8.2 1997/08/24 21:45:30 jkh Exp $
|
||||
.\" $Id: dd.1,v 1.2.8.3 1998/02/15 11:04:28 jkh Exp $
|
||||
.\"
|
||||
.Dd January 13, 1994
|
||||
.Dt DD 1
|
||||
@@ -52,7 +52,7 @@ Input data is read and written in 512-byte blocks.
|
||||
If input reads are short, input from multiple reads are aggregated
|
||||
to form the output block.
|
||||
When finished,
|
||||
.Nm dd
|
||||
.Nm
|
||||
displays the number of complete and partial input and output blocks
|
||||
and truncated input records to the standard error output.
|
||||
.Pp
|
||||
@@ -237,7 +237,7 @@ will be positioned past the block in which the error occurred using
|
||||
Do not truncate the output file.
|
||||
This will preserve any blocks in the output file not explicitly written
|
||||
by
|
||||
.Nm dd .
|
||||
.Nm Ns .
|
||||
The
|
||||
.Cm notrunc
|
||||
value is not supported for tapes.
|
||||
@@ -287,7 +287,7 @@ in an integer, respectively.
|
||||
Two or more numbers may be separated by an ``x'' to indicate a product.
|
||||
.Pp
|
||||
When finished,
|
||||
.Nm dd
|
||||
.Nm
|
||||
displays the number of complete and partial input and output blocks,
|
||||
truncated input records and odd-length byte-swapping blocks to the
|
||||
standard error output.
|
||||
@@ -310,7 +310,7 @@ This means that the final output block may be shorter than the output
|
||||
block size.
|
||||
.Pp
|
||||
If
|
||||
.Nm dd
|
||||
.Nm
|
||||
receives a
|
||||
.Dv SIGINFO
|
||||
(see the ``status'' argument for
|
||||
@@ -319,17 +319,17 @@ signal, the current input and output block counts will
|
||||
be written to the standard error output
|
||||
in the same format as the standard completion message.
|
||||
If
|
||||
.Nm dd
|
||||
.Nm
|
||||
receives a
|
||||
.Dv SIGINT
|
||||
signal, the current input and output block counts will
|
||||
be written to the standard error output
|
||||
in the same format as the standard completion message and
|
||||
.Nm dd
|
||||
.Nm
|
||||
will exit.
|
||||
.Pp
|
||||
The
|
||||
.Nm dd
|
||||
.Nm
|
||||
utility exits 0 on success and >0 if an error occurred.
|
||||
.Sh SEE ALSO
|
||||
.Xr cp 1 ,
|
||||
@@ -337,7 +337,7 @@ utility exits 0 on success and >0 if an error occurred.
|
||||
.Xr tr 1
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Nm dd
|
||||
.Nm
|
||||
utility is expected to be a superset of the
|
||||
.St -p1003.2
|
||||
standard.
|
||||
|
||||
+5
-4
@@ -34,7 +34,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: misc.c,v 1.2.8.3 1998/02/11 02:24:41 asami Exp $
|
||||
* $Id: misc.c,v 1.2.8.4 1998/02/15 11:04:30 jkh Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -100,9 +100,10 @@ summaryx(notused)
|
||||
|
||||
/* ARGSUSED */
|
||||
void
|
||||
terminate(notused)
|
||||
int notused;
|
||||
terminate(sig)
|
||||
int sig;
|
||||
{
|
||||
|
||||
exit(0);
|
||||
/* XXX exit() shouldn't call exit() from a signal handler. */
|
||||
exit(sig == 0 ? 0 : 1);
|
||||
}
|
||||
+32
-25
@@ -30,7 +30,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)df.1 8.2 (Berkeley) 1/13/94
|
||||
.\" $Id: df.1,v 1.4.2.2 1997/09/19 06:18:10 charnier Exp $
|
||||
.\" $Id: df.1,v 1.4.2.3 1998/02/15 11:06:23 jkh Exp $
|
||||
.\"
|
||||
.Dd January 13, 1994
|
||||
.Dt DF 1
|
||||
@@ -40,7 +40,7 @@
|
||||
.Nd display free disk space
|
||||
.Sh SYNOPSIS
|
||||
.Nm df
|
||||
.Op Fl ink
|
||||
.Op Fl ikn
|
||||
.Op Fl t Ar type
|
||||
.Op Ar file | Ar filesystem ...
|
||||
.Sh DESCRIPTION
|
||||
@@ -72,31 +72,37 @@ This option should be used if it is possible that one or more
|
||||
filesystems are in a state such that they will not be able to provide
|
||||
statistics without a long delay.
|
||||
When this option is specified,
|
||||
.Nm df
|
||||
.Nm
|
||||
will not request new statistics from the filesystems, but will respond
|
||||
with the possibly stale statistics that were previously obtained.
|
||||
.It Fl t
|
||||
Only print out statistics for filesystems of the specified types.
|
||||
The recognized types are:
|
||||
ufs, nfs, mfs, lfs, msdos, fdesc, portal, kernfs, procfs, afs, isofs,
|
||||
iso9660fs, cdfs, and cd9660,
|
||||
along with the aggregates:
|
||||
all (the default),
|
||||
local (ufs, mfs, lfs, msdos, cd9660),
|
||||
and misc (fdesc, portal, kernfs, procfs).
|
||||
The names isofs, iso9660fs, cdfs, and cd9660 are aliases to each other
|
||||
all of them refering to the same type of file system.
|
||||
The string ``no'' may be prepending to a type to get its complement
|
||||
(e.g. ``nonfs'' to get non-NFS filesystems). The first
|
||||
.Fl t
|
||||
option overrides the default, additional such options will add to
|
||||
(or subtract from) the current set of types; e.g. either
|
||||
``df -t ufs -t lfs''
|
||||
or
|
||||
``df -t local -t nomfs''
|
||||
will display statistics for UFS and LFS filesystems.
|
||||
More than one type may be specified in a comma separated list.
|
||||
The list of filesystem types can be prefixed with
|
||||
.Dq no
|
||||
to specify the filesystem types for which action should
|
||||
.Em not
|
||||
be taken.
|
||||
For example, the
|
||||
.Nm
|
||||
command:
|
||||
.Bd -literal -offset indent
|
||||
df -t nonfs,mfs
|
||||
.Ed
|
||||
.Pp
|
||||
lists all filesystems except those of type
|
||||
.Tn NFS
|
||||
and
|
||||
.Tn MFS .
|
||||
The
|
||||
.Xr sysctl 8
|
||||
command can be used to find out the types of filesystems
|
||||
that are available on the system:
|
||||
.Bd -literal -offset indent
|
||||
sysctl vfs
|
||||
.Ed
|
||||
.El
|
||||
.Sh ENVIRONMENT VARIABLES
|
||||
.Sh ENVIRONMENT
|
||||
.Bl -tag -width BLOCKSIZE
|
||||
.It Ev BLOCKSIZE
|
||||
If the environment variable
|
||||
@@ -111,15 +117,16 @@ and
|
||||
flags are ignored if a file or filesystem is specified.
|
||||
.Sh SEE ALSO
|
||||
.Xr quota 1 ,
|
||||
.Xr statfs 2 ,
|
||||
.Xr fstatfs 2 ,
|
||||
.Xr getfsstat 2 ,
|
||||
.Xr statfs 2 ,
|
||||
.Xr getmntinfo 3 ,
|
||||
.Xr fstab 5 ,
|
||||
.Xr mount 8 ,
|
||||
.Xr quot 8
|
||||
.Xr quot 8 ,
|
||||
.Xr sysctl 8
|
||||
.Sh HISTORY
|
||||
A
|
||||
.Nm df
|
||||
.Nm
|
||||
command appeared in
|
||||
.At v1 .
|
||||
@@ -30,7 +30,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" From: @(#)hostname.1 8.1 (Berkeley) 5/31/93
|
||||
.\" $Id: domainname.1,v 1.2 1995/01/14 17:02:33 ats Exp $
|
||||
.\" $Id: domainname.1,v 1.2.6.1 1997/08/24 21:48:26 jkh Exp $
|
||||
.\"
|
||||
.Dd September 18, 1994
|
||||
.Dt DOMAINNAME 1
|
||||
@@ -42,7 +42,7 @@
|
||||
.Nm domainname
|
||||
.Op Ar ypdomain
|
||||
.Sh DESCRIPTION
|
||||
.Nm domainname
|
||||
.Nm Domainname
|
||||
prints the name of the current YP/NIS domain. The super-user can
|
||||
set the domain name by supplying an argument; this is usually done in the
|
||||
network initialization script
|
||||
|
||||
+4
-4
@@ -33,7 +33,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)echo.1 8.1 (Berkeley) 7/22/93
|
||||
.\" $Id: echo.1,v 1.2 1994/09/24 02:55:17 davidg Exp $
|
||||
.\" $Id: echo.1,v 1.3 1995/08/31 17:25:54 jkh Exp $
|
||||
.\"
|
||||
.Dd July 22, 1993
|
||||
.Dt ECHO 1
|
||||
@@ -47,7 +47,7 @@
|
||||
.Op "string ..."
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm echo
|
||||
.Nm
|
||||
utility writes any specified operands, separated by single blank (`` '')
|
||||
characters and followed by a newline (``\en'') character, to the standard
|
||||
output.
|
||||
@@ -61,13 +61,13 @@ by iBCS2 compatible systems.
|
||||
.El
|
||||
.Pp
|
||||
The
|
||||
.Nm echo
|
||||
.Nm
|
||||
utility exits 0 on success, and >0 if an error occurs.
|
||||
.Sh SEE ALSO
|
||||
.Xr printf 1
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Nm echo
|
||||
.Nm
|
||||
utility is expected to be
|
||||
.St -p1003.2
|
||||
compatible.
|
||||
+4
-4
@@ -1,11 +1,11 @@
|
||||
# $Id: Makefile,v 1.12 1995/10/03 15:44:50 markm Exp $
|
||||
# $Id: Makefile,v 1.13 1995/10/22 20:14:13 ache Exp $
|
||||
|
||||
PROG= ed
|
||||
SRCS= buf.c cbc.c glbl.c io.c main.c re.c sub.c undo.c
|
||||
LINKS= ${BINDIR}/ed ${BINDIR}/red
|
||||
MLINKS= ed.1 red.1
|
||||
LINKS= ${BINDIR}/ed ${BINDIR}/red
|
||||
MLINKS= ed.1 red.1
|
||||
|
||||
.if exists(../../secure) && !defined(NOCRYPT) && !defined(NOSECURE)
|
||||
.if exists(${.CURDIR}/../../secure) && !defined(NOCRYPT) && !defined(NOSECURE)
|
||||
DISTRIBUTION=des
|
||||
CFLAGS+=-DDES
|
||||
LDADD+= -L${CIPHEROBJDIR} -lcipher
|
||||
|
||||
+439
-547
File diff suppressed because it is too large.
Load diff
+4
-10
@@ -1,13 +1,7 @@
|
||||
# /b/source/CVS/src/bin/expr/Makefile,v 1.5 1993/06/14 19:56:06 jtc Exp
|
||||
# $Id: Makefile,v 1.8 1996/05/07 23:14:17 wosch Exp $
|
||||
# $Id: Makefile,v 1.10 1996/06/02 17:05:48 phk Exp $
|
||||
|
||||
PROG= expr
|
||||
SRCS= expr.c
|
||||
CLEANFILES+= expr.c y.tab.h
|
||||
|
||||
expr.c:
|
||||
${YACC} -d ${.IMPSRC}
|
||||
mv -f y.tab.c expr.c
|
||||
PROG= expr
|
||||
SRCS= expr.y
|
||||
YFLAGS=
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
|
||||
+11
-11
@@ -28,7 +28,7 @@
|
||||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $Id: expr.1,v 1.3 1994/04/24 01:18:46 jkh Exp $
|
||||
.\" $Id: expr.1,v 1.4 1996/01/29 22:53:24 mpp Exp $
|
||||
.\"
|
||||
.Dd July 3, 1993
|
||||
.Dt EXPR 1
|
||||
@@ -41,13 +41,13 @@
|
||||
.Ar expression
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm expr
|
||||
.Nm
|
||||
utility evaluates
|
||||
.Ar expression
|
||||
and writes the result on standard output.
|
||||
.Pp
|
||||
All operators are separate arguments to the
|
||||
.Nm expr
|
||||
.Nm
|
||||
utility.
|
||||
Characters special to the command interpreter must be escaped.
|
||||
.Pp
|
||||
@@ -55,26 +55,26 @@ Operators are listed below in order of increasing precedence.
|
||||
Operators with equal precedence are grouped within { } symbols.
|
||||
.Bl -tag -width indent
|
||||
.It Ar expr1 Li | Ar expr2
|
||||
Returns the evaluation of
|
||||
Return the evaluation of
|
||||
.Ar expr1
|
||||
if it is neither an empty string nor zero;
|
||||
otherwise, returns the evaluation of
|
||||
.Ar expr2 .
|
||||
.It Ar expr1 Li & Ar expr2
|
||||
Returns the evaluation of
|
||||
Return the evaluation of
|
||||
.Ar expr1
|
||||
if neither expression evaluates to an empty string or zero;
|
||||
otherwise, returns zero.
|
||||
.It Ar expr1 Li "{=, >, >=, <, <=, !=}" Ar expr2
|
||||
Returns the results of integer comparison if both arguments are integers;
|
||||
Return the results of integer comparison if both arguments are integers;
|
||||
otherwise, returns the results of string comparison using the locale-specific
|
||||
collation sequence.
|
||||
The result of each comparison is 1 if the specified relation is true,
|
||||
or 0 if the relation is false.
|
||||
.It Ar expr1 Li "{+, -}" Ar expr2
|
||||
Returns the results of addition or subtraction of integer-valued arguments.
|
||||
Return the results of addition or subtraction of integer-valued arguments.
|
||||
.It Ar expr1 Li "{*, /, %}" Ar expr2
|
||||
Returns the results of multiplication, integer division, or remainder of integer-valued arguments.
|
||||
Return the results of multiplication, integer division, or remainder of integer-valued arguments.
|
||||
.It Ar expr1 Li : Ar expr2
|
||||
The
|
||||
.Dq \:
|
||||
@@ -115,9 +115,9 @@ The following example returns the number of characters in variable a.
|
||||
.El
|
||||
.Sh DIAGNOSTICS
|
||||
The
|
||||
.Nm expr
|
||||
.Nm
|
||||
utility exits with one of the following values:
|
||||
.Bl -tag -width Ds -compact
|
||||
.Bl -tag -width indent -compact
|
||||
.It 0
|
||||
the expression is neither an empty string nor 0.
|
||||
.It 1
|
||||
@@ -127,6 +127,6 @@ the expression is invalid.
|
||||
.El
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Nm expr
|
||||
.Nm
|
||||
utility conforms to
|
||||
.St -p1003.2 .
|
||||
@@ -30,7 +30,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)hostname.1 8.2 (Berkeley) 4/28/95
|
||||
.\" $Id: hostname.1,v 1.3.2.1 1997/02/28 07:54:36 mpp Exp $
|
||||
.\" $Id: hostname.1,v 1.3.2.3 1998/06/30 06:43:13 charnier Exp $
|
||||
.\"
|
||||
.Dd April 28, 1995
|
||||
.Dt HOSTNAME 1
|
||||
@@ -43,7 +43,7 @@
|
||||
.Op Fl s
|
||||
.Op Ar name-of-host
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
.Nm Hostname
|
||||
prints the name of the current host. The super-user can
|
||||
set the hostname by supplying an argument; this is usually done in the
|
||||
network initialization script
|
||||
@@ -54,13 +54,13 @@ time.
|
||||
Options:
|
||||
.Bl -tag -width flag
|
||||
.It Fl s
|
||||
Trims off any domain information from the printed
|
||||
Trim off any domain information from the printed
|
||||
name.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr gethostname 3
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm hostname
|
||||
.Nm
|
||||
command appeared in
|
||||
.Bx 4.2 .
|
||||
+6
-6
@@ -33,7 +33,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)kill.1 8.2 (Berkeley) 4/28/95
|
||||
.\" $Id$
|
||||
.\" $Id: kill.1,v 1.3.2.2 1998/05/22 10:50:26 jkoshy Exp $
|
||||
.\"
|
||||
.Dd April 28, 1995
|
||||
.Dt KILL 1
|
||||
@@ -110,22 +110,22 @@ ALRM (alarm clock)
|
||||
TERM (software termination signal)
|
||||
.El
|
||||
.Pp
|
||||
.Nm
|
||||
.Nm Kill
|
||||
is a built-in to
|
||||
.Xr csh 1 ;
|
||||
it allows job specifiers of the form ``%...'' as arguments
|
||||
so process id's are not as often used as
|
||||
.Nm kill
|
||||
.Nm
|
||||
arguments.
|
||||
See
|
||||
.Xr csh 1
|
||||
.Xr csh 1
|
||||
for details.
|
||||
.Sh SEE ALSO
|
||||
.Xr csh 1 ,
|
||||
.Xr killall 1 ,
|
||||
.Xr ps 1 ,
|
||||
.Xr kill 2 ,
|
||||
.Xr sigvec 2
|
||||
.Xr sigaction 2
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Nm
|
||||
@@ -134,7 +134,7 @@ function is expected to be
|
||||
compatible.
|
||||
.Sh HISTORY
|
||||
A
|
||||
.Nm kill
|
||||
.Nm
|
||||
command appeared in
|
||||
.At v6 .
|
||||
.Sh BUGS
|
||||
|
||||
+6
-6
@@ -33,7 +33,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)ln.1 8.2 (Berkeley) 12/30/93
|
||||
.\" $Id: ln.1,v 1.2 1994/09/24 02:55:47 davidg Exp $
|
||||
.\" $Id: ln.1,v 1.3 1996/08/29 18:05:55 wosch Exp $
|
||||
.\"
|
||||
.Dd December 30, 1993
|
||||
.Dt LN 1
|
||||
@@ -52,7 +52,7 @@
|
||||
.Op target_dir
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm ln
|
||||
.Nm
|
||||
utility creates a new directory entry (linked file) which has the
|
||||
same modes as the original file.
|
||||
It is useful for maintaining multiple copies of a file in many places
|
||||
@@ -75,7 +75,7 @@ Create a symbolic link.
|
||||
.El
|
||||
.Pp
|
||||
By default
|
||||
.Nm ln
|
||||
.Nm
|
||||
makes
|
||||
.Em hard
|
||||
links.
|
||||
@@ -99,7 +99,7 @@ call may be used to read the contents of a symbolic link.
|
||||
Symbolic links may span file systems and may refer to directories.
|
||||
.Pp
|
||||
Given one or two arguments,
|
||||
.Nm ln
|
||||
.Nm
|
||||
creates a link to an existing file
|
||||
.Ar source_file .
|
||||
If
|
||||
@@ -113,7 +113,7 @@ to the last component of
|
||||
.Ar source_file .
|
||||
.Pp
|
||||
Given more than two arguments,
|
||||
.Nm ln
|
||||
.Nm
|
||||
makes links in
|
||||
.Ar target_dir
|
||||
to all the named source files.
|
||||
@@ -127,6 +127,6 @@ The links made will have the same name as the files being linked to.
|
||||
.Xr symlink 7
|
||||
.Sh HISTORY
|
||||
A
|
||||
.Nm ln
|
||||
.Nm
|
||||
command appeared in
|
||||
.At v1 .
|
||||
+15
-20
@@ -30,7 +30,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)symlink.7 8.3 (Berkeley) 3/31/94
|
||||
.\" $Id: symlink.7,v 1.2.8.1 1997/06/14 18:47:31 jdp Exp $
|
||||
.\" $Id: symlink.7,v 1.2.8.2 1997/06/19 01:09:09 jdp Exp $
|
||||
.\"
|
||||
.Dd March 31, 1994
|
||||
.Dt SYMLINK 7
|
||||
@@ -200,6 +200,8 @@ option is not specified),
|
||||
the
|
||||
.Nm ls
|
||||
command follows symbolic links named as arguments if the
|
||||
.Fl H
|
||||
or
|
||||
.Fl L
|
||||
option is specified,
|
||||
or if the
|
||||
@@ -207,16 +209,13 @@ or if the
|
||||
.Fl d
|
||||
or
|
||||
.Fl l
|
||||
options are not specified.
|
||||
(If the
|
||||
.Fl L
|
||||
option is specified,
|
||||
options are not specified. (The
|
||||
.Nm ls
|
||||
always follows symbolic links.
|
||||
.Nm Ls
|
||||
is the only command where the
|
||||
command is the only command where the
|
||||
.Fl H
|
||||
and
|
||||
.Fl L
|
||||
option affects its behavior even though it is not doing a walk of
|
||||
options affect its behavior even though it is not doing a walk of
|
||||
a file tree.)
|
||||
.Pp
|
||||
The
|
||||
@@ -394,23 +393,19 @@ options.
|
||||
To maintain compatibility with historic systems,
|
||||
the
|
||||
.Nm ls
|
||||
command never follows symbolic links unless the
|
||||
.Fl L
|
||||
flag is specified.
|
||||
If the
|
||||
command acts a little differently. If you do not specify the
|
||||
.Fl F ,
|
||||
.Fl d or
|
||||
.Fl l
|
||||
options,
|
||||
.Nm ls
|
||||
will follow symbolic links specified on the command line. If the
|
||||
.Fl L
|
||||
flag is specified,
|
||||
.Nm ls
|
||||
follows all symbolic links,
|
||||
regardless of their type,
|
||||
whether specified on the command line or encountered in the tree walk.
|
||||
The
|
||||
.Nm ls
|
||||
command does not support the
|
||||
.Fl H
|
||||
or
|
||||
.Fl P
|
||||
options.
|
||||
.Sh SEE ALSO
|
||||
.Xr chflags 1 ,
|
||||
.Xr chgrp 1 ,
|
||||
|
||||
+3
-1
@@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)extern.h 8.1 (Berkeley) 5/31/93
|
||||
* $Id$
|
||||
* $Id: extern.h,v 1.2 1994/09/24 02:55:52 davidg Exp $
|
||||
*/
|
||||
|
||||
int acccmp __P((const FTSENT *, const FTSENT *));
|
||||
@@ -49,3 +49,5 @@ void printcol __P((DISPLAY *));
|
||||
void printlong __P((DISPLAY *));
|
||||
void printscol __P((DISPLAY *));
|
||||
void usage __P((void));
|
||||
int len_octal __P((char *, int));
|
||||
int prn_octal __P((char *));
|
||||
+74
-21
@@ -13,7 +13,7 @@
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" must display the following acknowledgment:
|
||||
.\" This product includes software developed by the University of
|
||||
.\" California, Berkeley and its contributors.
|
||||
.\" 4. Neither the name of the University nor the names of its contributors
|
||||
@@ -33,7 +33,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)ls.1 8.6 (Berkeley) 4/18/94
|
||||
.\" $Id: ls.1,v 1.5.2.4 1997/09/19 06:18:11 charnier Exp $
|
||||
.\" $Id: ls.1,v 1.5.2.6 1998/07/15 02:01:34 jkh Exp $
|
||||
.\"
|
||||
.Dd April 18, 1994
|
||||
.Dt LS 1
|
||||
@@ -43,20 +43,20 @@
|
||||
.Nd list directory contents
|
||||
.Sh SYNOPSIS
|
||||
.Nm ls
|
||||
.Op Fl ACFLRTacdfgikloqrstu1
|
||||
.Op Fl ABCFHLPRTabcdfgikloqrstu1
|
||||
.Op Ar file ...
|
||||
.Sh DESCRIPTION
|
||||
For each operand that names a
|
||||
.Ar file
|
||||
of a type other than
|
||||
directory,
|
||||
.Nm ls
|
||||
.Nm
|
||||
displays its name as well as any requested,
|
||||
associated information.
|
||||
For each operand that names a
|
||||
.Ar file
|
||||
of type directory,
|
||||
.Nm ls
|
||||
.Nm
|
||||
displays the names of files contained
|
||||
within that directory, as well as any requested, associated
|
||||
information.
|
||||
@@ -76,6 +76,9 @@ List all entries except for
|
||||
and
|
||||
.Ql \&.. .
|
||||
Always set for the super-user.
|
||||
.It Fl B
|
||||
Force printing of non-graphic characters in file names as \\xxx,
|
||||
where xxx is the numeric value of the character in octal.
|
||||
.It Fl C
|
||||
Force multi-column output; this is the default when output is to a terminal.
|
||||
.It Fl F
|
||||
@@ -84,11 +87,29 @@ that is a directory, an asterisk (*) after each that is
|
||||
executable,
|
||||
an at sign (@) after each symbolic link,
|
||||
an equals sign (=) after each socket,
|
||||
a percent sign (%) after each whiteout,
|
||||
and a vertical bar (|) after each that is a
|
||||
.Tn FIFO .
|
||||
.Tn FIFO .
|
||||
.It Fl H
|
||||
Symbolic links on the command line are followed. This option is assumed if
|
||||
none of the
|
||||
.Fl F ,
|
||||
.Fl d ,
|
||||
or
|
||||
.Fl l
|
||||
options are specified.
|
||||
.It Fl L
|
||||
If argument is a symbolic link, list the file or directory the link references
|
||||
rather than the link itself.
|
||||
rather than the link itself. This option cancels the
|
||||
.Fl P
|
||||
option.
|
||||
.It Fl P
|
||||
If argument is a symbolic link, list the link itself rather than the
|
||||
object the link references. This option cancels the
|
||||
.Fl H
|
||||
and
|
||||
.Fl L
|
||||
options.
|
||||
.It Fl R
|
||||
Recursively list subdirectories encountered.
|
||||
.It Fl T
|
||||
@@ -97,11 +118,14 @@ month, day, hour, minute, second, and year.
|
||||
.It Fl a
|
||||
Include directory entries whose names begin with a
|
||||
dot (.).
|
||||
.It Fl b
|
||||
As
|
||||
.Fl B ,
|
||||
but use C escape codes whenever possible.
|
||||
.It Fl c
|
||||
Use time when file status was last changed for sorting or printing.
|
||||
.It Fl d
|
||||
Directories are listed as plain files (not searched recursively) and
|
||||
symbolic links in the argument list are not indirected through.
|
||||
Directories are listed as plain files (not searched recursively).
|
||||
.It Fl f
|
||||
Output is not sorted.
|
||||
.It Fl g
|
||||
@@ -114,8 +138,10 @@ format output.
|
||||
.It Fl i
|
||||
For each file, print the file's file serial number (inode number).
|
||||
.It Fl k
|
||||
If the 's' option is specified, print the file size allocation in kilobytes,
|
||||
not blocks.
|
||||
If the
|
||||
.Fl s
|
||||
option is specified, print the file size allocation in kilobytes,
|
||||
not blocks. This option overrides the environment variable BLOCKSIZE.
|
||||
.It Fl l
|
||||
(The lowercase letter ``ell.'') List in long format. (See below.)
|
||||
If the output is to a terminal, a total sum for all the file
|
||||
@@ -134,7 +160,8 @@ lexicographical order or the oldest entries first.
|
||||
Display the number of file system blocks actually used by each file, in units
|
||||
of 512 bytes, where partial units are rounded up to the next integer value.
|
||||
If the output is to a terminal, a total sum for all the file
|
||||
sizes is output on a line before the listing.
|
||||
sizes is output on a line before the listing. The environment variable
|
||||
BLOCKSIZE overrides the unit size of 512 bytes.
|
||||
.It Fl t
|
||||
Sort by time modified (most recently modified
|
||||
first) before sorting the operands by lexicographical
|
||||
@@ -162,14 +189,30 @@ options all override each other; the last one specified determines
|
||||
the format used.
|
||||
.Pp
|
||||
The
|
||||
.Fl c ,
|
||||
.Fl c
|
||||
and
|
||||
.Fl u
|
||||
options override each other; the last one specified determines
|
||||
the file time used.
|
||||
.Pp
|
||||
The
|
||||
.Fl B ,
|
||||
.Fl b
|
||||
and
|
||||
.Fl q
|
||||
options all override each other; the last one specified determines
|
||||
the format used for non-printable characters.
|
||||
.Pp
|
||||
The
|
||||
.Fl H,
|
||||
.Fl L
|
||||
and
|
||||
.Fl P
|
||||
options all override each other (either partially or fully); they
|
||||
are applied in the order specified.
|
||||
.Pp
|
||||
By default,
|
||||
.Nm ls
|
||||
.Nm
|
||||
lists one entry per line to standard
|
||||
output; the exceptions are to terminals or when the
|
||||
.Fl C
|
||||
@@ -198,6 +241,10 @@ number of 512-byte blocks used by the files in the directory is displayed
|
||||
on a line by itself immediately before the information for the files in the
|
||||
directory.
|
||||
.Pp
|
||||
If the modification time of the file is more than 6 months
|
||||
in the past or future, then the year of the last modification
|
||||
is displayed in place of the hour and minute fields.
|
||||
.Pp
|
||||
If the owner or group names are not a known user or group name
|
||||
the numeric ID's are displayed.
|
||||
.Pp
|
||||
@@ -207,7 +254,9 @@ in the size field. If the file is a symbolic link the pathname of the
|
||||
linked-to file is preceded by
|
||||
.Dq \-> .
|
||||
.Pp
|
||||
The file mode printed under the -l option consists of the
|
||||
The file mode printed under the
|
||||
.Fl l
|
||||
option consists of the
|
||||
entry type, owner permissions, and group permissions.
|
||||
The entry type character describes the type of file, as
|
||||
follows:
|
||||
@@ -292,11 +341,11 @@ or
|
||||
.El
|
||||
.Pp
|
||||
The
|
||||
.Nm ls
|
||||
.Nm
|
||||
utility exits 0 on success, and >0 if an error occurs.
|
||||
.Sh ENVIRONMENT VARIABLES
|
||||
.Sh ENVIRONMENT
|
||||
The following environment variables affect the execution of
|
||||
.Nm ls :
|
||||
.Nm Ns :
|
||||
.Bl -tag -width BLOCKSIZE
|
||||
.It Ev BLOCKSIZE
|
||||
If the environment variable
|
||||
@@ -311,7 +360,7 @@ decimal integer, it is used as the
|
||||
column position width for displaying
|
||||
multiple-text-column output.
|
||||
The
|
||||
.Nm ls
|
||||
.Nm
|
||||
utility calculates how
|
||||
many pathname text columns to display
|
||||
based on the width provided.
|
||||
@@ -334,12 +383,16 @@ specification.
|
||||
.Xr sticky 8
|
||||
.Sh HISTORY
|
||||
An
|
||||
.Nm ls
|
||||
.Nm
|
||||
command appeared in
|
||||
.At v1 .
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Nm ls
|
||||
.Nm
|
||||
function is expected to be a superset of the
|
||||
.St -p1003.2
|
||||
specification.
|
||||
.Sh BUGS
|
||||
To maintain backward compatibility, the relationships between the many
|
||||
options is quite complex.
|
||||
|
||||
+33
-13
@@ -33,7 +33,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: ls.c,v 1.10 1996/08/27 21:51:48 adam Exp $
|
||||
* $Id: ls.c,v 1.10.2.2 1998/07/15 02:01:34 jkh Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -82,16 +82,16 @@ int f_kblocks; /* print size in kilobytes */
|
||||
int f_listdir; /* list actual directory, not contents */
|
||||
int f_listdot; /* list files beginning with . */
|
||||
int f_longform; /* long listing format */
|
||||
int f_newline; /* if precede with newline */
|
||||
int f_nonprint; /* show unprintables as ? */
|
||||
int f_nosort; /* don't sort output */
|
||||
int f_octal; /* show unprintables as \xxx */
|
||||
int f_octal_escape; /* like f_octal but use C escapes if possible */
|
||||
int f_recursive; /* ls subdirectories also */
|
||||
int f_reversesort; /* reverse whatever sort is used */
|
||||
int f_sectime; /* print the real time for all files */
|
||||
int f_singlecol; /* use single column output */
|
||||
int f_size; /* list size in short listing */
|
||||
int f_statustime; /* use time of last mode change */
|
||||
int f_dirname; /* if precede with directory name */
|
||||
int f_timesort; /* sort by time vice name */
|
||||
int f_type; /* add type character for non-regular files */
|
||||
|
||||
@@ -131,7 +131,7 @@ main(argc, argv)
|
||||
f_listdot = 1;
|
||||
|
||||
fts_options = FTS_PHYSICAL;
|
||||
while ((ch = getopt(argc, argv, "1ACFLRTacdfgikloqrstu")) != -1) {
|
||||
while ((ch = getopt(argc, argv, "1ABCFHLPRTabcdfgikloqrstu")) != -1) {
|
||||
switch (ch) {
|
||||
/*
|
||||
* The -1, -C and -l options all override each other so shell
|
||||
@@ -141,6 +141,11 @@ main(argc, argv)
|
||||
f_singlecol = 1;
|
||||
f_column = f_longform = 0;
|
||||
break;
|
||||
case 'B':
|
||||
f_nonprint = 0;
|
||||
f_octal = 1;
|
||||
f_octal_escape = 0;
|
||||
break;
|
||||
case 'C':
|
||||
f_column = 1;
|
||||
f_longform = f_singlecol = 0;
|
||||
@@ -161,10 +166,18 @@ main(argc, argv)
|
||||
case 'F':
|
||||
f_type = 1;
|
||||
break;
|
||||
case 'H':
|
||||
fts_options |= FTS_COMFOLLOW;
|
||||
break;
|
||||
case 'L':
|
||||
fts_options &= ~FTS_PHYSICAL;
|
||||
fts_options |= FTS_LOGICAL;
|
||||
break;
|
||||
case 'P':
|
||||
fts_options &= ~FTS_COMFOLLOW;
|
||||
fts_options &= ~FTS_LOGICAL;
|
||||
fts_options |= FTS_PHYSICAL;
|
||||
break;
|
||||
case 'R':
|
||||
f_recursive = 1;
|
||||
break;
|
||||
@@ -195,6 +208,8 @@ main(argc, argv)
|
||||
break;
|
||||
case 'q':
|
||||
f_nonprint = 1;
|
||||
f_octal = 0;
|
||||
f_octal_escape = 0;
|
||||
break;
|
||||
case 'r':
|
||||
f_reversesort = 1;
|
||||
@@ -208,6 +223,11 @@ main(argc, argv)
|
||||
case 't':
|
||||
f_timesort = 1;
|
||||
break;
|
||||
case 'b':
|
||||
f_nonprint = 0;
|
||||
f_octal = 0;
|
||||
f_octal_escape = 1;
|
||||
break;
|
||||
default:
|
||||
case '?':
|
||||
usage();
|
||||
@@ -411,6 +431,10 @@ display(p, list)
|
||||
prcopy(cur->fts_name, cur->fts_name, cur->fts_namelen);
|
||||
if (cur->fts_namelen > maxlen)
|
||||
maxlen = cur->fts_namelen;
|
||||
if (f_octal || f_octal_escape) {
|
||||
int t = len_octal(cur->fts_name, cur->fts_namelen);
|
||||
if (t > maxlen) maxlen = t;
|
||||
}
|
||||
if (needstats) {
|
||||
sp = cur->fts_statp;
|
||||
if (sp->st_blocks > maxblock)
|
||||
@@ -513,16 +537,12 @@ mastercmp(a, b)
|
||||
if (a_info == FTS_NS || b_info == FTS_NS)
|
||||
return (namecmp(*a, *b));
|
||||
|
||||
if (a_info == b_info)
|
||||
return (sortfcn(*a, *b));
|
||||
|
||||
if ((*a)->fts_level == FTS_ROOTLEVEL)
|
||||
if (a_info != b_info &&
|
||||
(*a)->fts_level == FTS_ROOTLEVEL && !f_listdir) {
|
||||
if (a_info == FTS_D)
|
||||
return (1);
|
||||
else if (b_info == FTS_D)
|
||||
if (b_info == FTS_D)
|
||||
return (-1);
|
||||
else
|
||||
return (sortfcn(*a, *b));
|
||||
else
|
||||
return (sortfcn(*a, *b));
|
||||
}
|
||||
return (sortfcn(*a, *b));
|
||||
}
|
||||
+4
-1
@@ -1,3 +1,4 @@
|
||||
|
||||
/*
|
||||
* Copyright (c) 1989, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
@@ -34,7 +35,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)ls.h 8.1 (Berkeley) 5/31/93
|
||||
* $Id$
|
||||
* $Id: ls.h,v 1.2 1994/09/24 02:55:55 davidg Exp $
|
||||
*/
|
||||
|
||||
#define NO_PRINT 1
|
||||
@@ -45,6 +46,8 @@ extern int f_accesstime; /* use time of last access */
|
||||
extern int f_flags; /* show flags associated with a file */
|
||||
extern int f_inode; /* print inode */
|
||||
extern int f_longform; /* long listing format */
|
||||
extern int f_octal; /* print unprintables in octal */
|
||||
extern int f_octal_escape; /* like f_octal but use C escapes if possible */
|
||||
extern int f_sectime; /* print the real time for all files */
|
||||
extern int f_size; /* list size in short listing */
|
||||
extern int f_statustime; /* use time of last mode change */
|
||||
|
||||
+17
-7
@@ -33,7 +33,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: print.c,v 1.7 1995/12/30 18:15:30 joerg Exp $
|
||||
* $Id: print.c,v 1.8 1996/01/20 10:31:14 mpp Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -95,7 +95,7 @@ printlong(dp)
|
||||
continue;
|
||||
sp = p->fts_statp;
|
||||
if (f_inode)
|
||||
(void)printf("%*lu ", dp->s_inode, sp->st_ino);
|
||||
(void)printf("%*lu ", dp->s_inode, (u_long)sp->st_ino);
|
||||
if (f_size)
|
||||
(void)printf("%*qd ",
|
||||
dp->s_block, howmany(sp->st_blocks, blocksize));
|
||||
@@ -124,7 +124,8 @@ printlong(dp)
|
||||
printtime(sp->st_ctime);
|
||||
else
|
||||
printtime(sp->st_mtime);
|
||||
(void)printf("%s", p->fts_name);
|
||||
if (f_octal || f_octal_escape) (void)prn_octal(p->fts_name);
|
||||
else (void)printf("%s", p->fts_name);
|
||||
if (f_type)
|
||||
(void)printtype(sp->st_mode);
|
||||
if (S_ISLNK(sp->st_mode))
|
||||
@@ -215,11 +216,12 @@ printaname(p, inodefield, sizefield)
|
||||
sp = p->fts_statp;
|
||||
chcnt = 0;
|
||||
if (f_inode)
|
||||
chcnt += printf("%*lu ", (int)inodefield, sp->st_ino);
|
||||
chcnt += printf("%*lu ", (int)inodefield, (u_long)sp->st_ino);
|
||||
if (f_size)
|
||||
chcnt += printf("%*qd ",
|
||||
(int)sizefield, howmany(sp->st_blocks, blocksize));
|
||||
chcnt += printf("%s", p->fts_name);
|
||||
chcnt += (f_octal || f_octal_escape) ? prn_octal(p->fts_name)
|
||||
: printf("%s", p->fts_name);
|
||||
if (f_type)
|
||||
chcnt += printtype(sp->st_mode);
|
||||
return (chcnt);
|
||||
@@ -231,6 +233,10 @@ printtime(ftime)
|
||||
{
|
||||
int i;
|
||||
char longstring[80];
|
||||
static time_t now;
|
||||
|
||||
if (now == 0)
|
||||
now = time(NULL);
|
||||
|
||||
strftime(longstring, sizeof(longstring), "%c", localtime(&ftime));
|
||||
for (i = 4; i < 11; ++i)
|
||||
@@ -240,7 +246,7 @@ printtime(ftime)
|
||||
if (f_sectime)
|
||||
for (i = 11; i < 24; i++)
|
||||
(void)putchar(longstring[i]);
|
||||
else if (ftime + SIXMONTHS > time(NULL))
|
||||
else if (ftime + SIXMONTHS > now && ftime < now + SIXMONTHS)
|
||||
for (i = 11; i < 16; ++i)
|
||||
(void)putchar(longstring[i]);
|
||||
else {
|
||||
@@ -293,5 +299,9 @@ printlink(p)
|
||||
return;
|
||||
}
|
||||
path[lnklen] = '\0';
|
||||
(void)printf(" -> %s", path);
|
||||
if (f_octal || f_octal_escape) {
|
||||
(void)printf(" -> ");
|
||||
(void)prn_octal(path);
|
||||
}
|
||||
else (void)printf(" -> %s", path);
|
||||
}
|
||||
+89
-2
@@ -33,7 +33,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: util.c,v 1.5 1996/03/31 16:14:11 ache Exp $
|
||||
* $Id: util.c,v 1.5.2.2 1998/07/15 02:01:36 jkh Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -65,9 +65,96 @@ prcopy(src, dest, len)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* The fts system makes it difficult to replace fts_name with a different-
|
||||
* sized string, so we just calculate the real length here and do the
|
||||
* conversion in prn_octal()
|
||||
*
|
||||
* XXX when using f_octal_escape (-b) rather than f_octal (-B), the
|
||||
* length computed by len_octal may be too big. I just can't be buggered
|
||||
* to fix this as an efficient fix would involve a lookup table. Same goes
|
||||
* for the rather inelegant code in prn_octal.
|
||||
*
|
||||
* DES 1998/04/23
|
||||
*/
|
||||
|
||||
int
|
||||
len_octal(s, len)
|
||||
char *s;
|
||||
int len;
|
||||
{
|
||||
int r = 0;
|
||||
|
||||
while (len--)
|
||||
if (isprint((unsigned char)*s++)) r++; else r += 4;
|
||||
return r;
|
||||
}
|
||||
|
||||
int
|
||||
prn_octal(s)
|
||||
char *s;
|
||||
{
|
||||
unsigned char ch;
|
||||
int len = 0;
|
||||
|
||||
while ((ch = *s++))
|
||||
{
|
||||
if (isprint(ch) && (ch != '\"') && (ch != '\\'))
|
||||
putchar(ch), len++;
|
||||
else if (f_octal_escape) {
|
||||
putchar('\\');
|
||||
switch (ch) {
|
||||
case '\\':
|
||||
putchar('\\');
|
||||
break;
|
||||
case '\"':
|
||||
putchar('"');
|
||||
break;
|
||||
case '\a':
|
||||
putchar('a');
|
||||
break;
|
||||
case '\b':
|
||||
putchar('b');
|
||||
break;
|
||||
case '\f':
|
||||
putchar('f');
|
||||
break;
|
||||
case '\n':
|
||||
putchar('n');
|
||||
break;
|
||||
case '\r':
|
||||
putchar('r');
|
||||
break;
|
||||
case '\t':
|
||||
putchar('t');
|
||||
break;
|
||||
case '\v':
|
||||
putchar('v');
|
||||
break;
|
||||
default:
|
||||
putchar('0' + (ch >> 6));
|
||||
putchar('0' + ((ch >> 3) & 3));
|
||||
putchar('0' + (ch & 3));
|
||||
len += 2;
|
||||
break;
|
||||
}
|
||||
len += 2;
|
||||
}
|
||||
else {
|
||||
putchar('\\');
|
||||
putchar('0' + (ch >> 6));
|
||||
putchar('0' + ((ch >> 3) & 3));
|
||||
putchar('0' + (ch & 3));
|
||||
len += 4;
|
||||
}
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
void
|
||||
usage()
|
||||
{
|
||||
(void)fprintf(stderr, "usage: ls [-1ACFLRTacdfikloqrstu] [file ...]\n");
|
||||
(void)fprintf(stderr, "usage: ls [-ACFHLPRTacdfgikloqrstu1]"
|
||||
" [file ...]\n");
|
||||
exit(1);
|
||||
}
|
||||
+4
-4
@@ -33,7 +33,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)mkdir.1 8.2 (Berkeley) 1/25/94
|
||||
.\" $Id: mkdir.1,v 1.6 1997/02/22 14:04:08 peter Exp $
|
||||
.\" $Id: mkdir.1,v 1.3.2.2 1998/06/30 06:42:30 charnier Exp $
|
||||
.\"
|
||||
.Dd January 25, 1994
|
||||
.Dt MKDIR 1
|
||||
@@ -47,7 +47,7 @@
|
||||
.Op Fl m Ar mode
|
||||
.Ar directory_name ...
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
.Nm Mkdir
|
||||
creates the directories named as operands, in the order specified,
|
||||
using mode
|
||||
.Li rwxrwxrwx (\&0777)
|
||||
@@ -81,13 +81,13 @@ permission for the owner.
|
||||
.Pp
|
||||
The user must have write permission in the parent directory.
|
||||
.Pp
|
||||
.Nm
|
||||
.Nm Mkdir
|
||||
exits 0 if successful, and >0 if an error occurred.
|
||||
.Sh SEE ALSO
|
||||
.Xr rmdir 1
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Nm mkdir
|
||||
.Nm
|
||||
utility is expected to be
|
||||
.St -p1003.2
|
||||
compatible.
|
||||
|
||||
+9
-10
@@ -33,7 +33,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)mv.1 8.1 (Berkeley) 5/31/93
|
||||
.\" $Id: mv.1,v 1.7 1996/08/29 18:06:04 wosch Exp $
|
||||
.\" $Id: mv.1,v 1.7.2.1 1998/02/15 11:16:27 jkh Exp $
|
||||
.\"
|
||||
.Dd May 31, 1993
|
||||
.Dt MV 1
|
||||
@@ -49,9 +49,8 @@
|
||||
.Op Fl f | Fl i
|
||||
.Ar source ... directory
|
||||
.Sh DESCRIPTION
|
||||
.Pp
|
||||
In its first form, the
|
||||
.Nm mv
|
||||
.Nm
|
||||
utility renames the file named by the
|
||||
.Ar source
|
||||
operand to the destination path named by the
|
||||
@@ -61,7 +60,7 @@ This form is assumed when the last operand does not name an already
|
||||
existing directory.
|
||||
.Pp
|
||||
In its second form,
|
||||
.Nm mv
|
||||
.Nm
|
||||
moves each file named by a
|
||||
.Ar source
|
||||
operand to a destination file in the existing directory named by the
|
||||
@@ -82,8 +81,8 @@ option overrides any previous
|
||||
.Fl i
|
||||
options.)
|
||||
.It Fl i
|
||||
Causes
|
||||
.Nm mv
|
||||
Cause
|
||||
.Nm
|
||||
to write a prompt to standard error before moving a file that would
|
||||
overwrite an existing file.
|
||||
If the response from the standard input begins with the character
|
||||
@@ -103,7 +102,7 @@ It is an error for either the
|
||||
operand or the destination path to specify a directory unless both do.
|
||||
.Pp
|
||||
If the destination path does not have a mode which permits writing,
|
||||
.Nm mv
|
||||
.Nm
|
||||
prompts the user for confirmation as specified for the
|
||||
.Fl i
|
||||
option.
|
||||
@@ -111,7 +110,7 @@ option.
|
||||
As the
|
||||
.Xr rename 2
|
||||
call does not work across file systems,
|
||||
.Nm mv
|
||||
.Nm
|
||||
uses
|
||||
.Xr cp 1
|
||||
and
|
||||
@@ -125,7 +124,7 @@ rm -f destination_path && \e
|
||||
.Ed
|
||||
.Pp
|
||||
The
|
||||
.Nm mv
|
||||
.Nm
|
||||
utility exits 0 on success, and >0 if an error occurs.
|
||||
.Sh SEE ALSO
|
||||
.Xr cp 1 ,
|
||||
@@ -133,7 +132,7 @@ utility exits 0 on success, and >0 if an error occurs.
|
||||
.Xr symlink 7
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Nm mv
|
||||
.Nm
|
||||
utility is expected to be
|
||||
.St -p1003.2
|
||||
compatible.
|
||||
|
||||
+10
-6
@@ -33,7 +33,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: mv.c,v 1.8.2.1 1997/08/25 08:33:11 jkh Exp $
|
||||
* $Id: mv.c,v 1.8.2.3 1998/05/25 22:45:42 steve Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -78,7 +78,7 @@ main(argc, argv)
|
||||
register char *p, *endp;
|
||||
struct stat sb;
|
||||
int ch;
|
||||
char path[MAXPATHLEN + 1];
|
||||
char path[MAXPATHLEN];
|
||||
|
||||
while ((ch = getopt(argc, argv, "fi")) != -1)
|
||||
switch (ch) {
|
||||
@@ -110,11 +110,15 @@ main(argc, argv)
|
||||
}
|
||||
|
||||
/* It's a directory, move each file into it. */
|
||||
if (strlen(argv[argc - 1]) > sizeof(path) - 1)
|
||||
errx(1, "%s: destination pathname too long", *argv);
|
||||
(void)strcpy(path, argv[argc - 1]);
|
||||
baselen = strlen(path);
|
||||
endp = &path[baselen];
|
||||
*endp++ = '/';
|
||||
++baselen;
|
||||
if (!baselen || *(endp - 1) != '/') {
|
||||
*endp++ = '/';
|
||||
++baselen;
|
||||
}
|
||||
for (rval = 0; --argc; ++argv) {
|
||||
/*
|
||||
* Find the last component of the source pathname. It
|
||||
@@ -266,8 +270,8 @@ err: if (unlink(to))
|
||||
|
||||
oldmode = sbp->st_mode & ALLPERMS;
|
||||
if (fchown(to_fd, sbp->st_uid, sbp->st_gid)) {
|
||||
warn("%s: set owner/group (was: %u/%u)", to, sbp->st_uid,
|
||||
sbp->st_gid);
|
||||
warn("%s: set owner/group (was: %lu/%lu)", to,
|
||||
(u_long)sbp->st_uid, (u_long)sbp->st_gid);
|
||||
if (oldmode & (S_ISUID | S_ISGID)) {
|
||||
warnx(
|
||||
"%s: owner/group changed; clearing suid/sgid (mode was 0%03o)",
|
||||
|
||||
+3
-3
@@ -34,7 +34,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: ftree.c,v 1.4.2.2 1997/09/14 13:07:23 jkh Exp $
|
||||
* $Id: ftree.c,v 1.4.2.3 1998/02/15 11:18:19 jkh Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -506,14 +506,14 @@ next_file(arcn)
|
||||
* have to read the symlink path from the file
|
||||
*/
|
||||
if ((cnt = readlink(ftent->fts_path, arcn->ln_name,
|
||||
PAXPATHLEN)) < 0) {
|
||||
PAXPATHLEN - 1)) < 0) {
|
||||
sys_warn(1, errno, "Unable to read symlink %s",
|
||||
ftent->fts_path);
|
||||
continue;
|
||||
}
|
||||
/*
|
||||
* set link name length, watch out readlink does not
|
||||
* allways null terminate the link path
|
||||
* allways NUL terminate the link path
|
||||
*/
|
||||
arcn->ln_name[cnt] = '\0';
|
||||
arcn->ln_nlen = cnt;
|
||||
|
||||
+40
-39
@@ -34,7 +34,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)pax.1 8.4 (Berkeley) 4/18/94
|
||||
.\" $Id: pax.1,v 1.2 1994/09/24 02:56:26 davidg Exp $
|
||||
.\" $Id: pax.1,v 1.3.2.2 1998/06/30 06:42:49 charnier Exp $
|
||||
.\"
|
||||
.Dd April 18, 1994
|
||||
.Dt PAX 1
|
||||
@@ -194,7 +194,7 @@ The presence of the
|
||||
and the
|
||||
.Fl w
|
||||
options specifies which of the following functional modes
|
||||
.Nm pax
|
||||
.Nm
|
||||
will operate under:
|
||||
.Em list , read , write ,
|
||||
and
|
||||
@@ -284,7 +284,7 @@ While processing a damaged archive during a
|
||||
or
|
||||
.Em list
|
||||
operation,
|
||||
.Nm pax
|
||||
.Nm
|
||||
will attempt to recover from media defects and will search through the archive
|
||||
to locate and process the largest number of archive members possible (see the
|
||||
.Fl E
|
||||
@@ -298,7 +298,7 @@ If the
|
||||
.Ar directory
|
||||
operand does not exist, or it is not writable by the user,
|
||||
or it is not of type directory,
|
||||
.Nm Pax
|
||||
.Nm
|
||||
will exit with a non-zero exit status.
|
||||
.Pp
|
||||
The
|
||||
@@ -317,7 +317,7 @@ be selected.
|
||||
When a
|
||||
.Ar pattern
|
||||
operand does not select at least one archive member,
|
||||
.Nm pax
|
||||
.Nm
|
||||
will write these
|
||||
.Ar pattern
|
||||
operands in a diagnostic message to
|
||||
@@ -330,7 +330,7 @@ operand specifies the pathname of a file to be copied or archived.
|
||||
When a
|
||||
.Ar file
|
||||
operand does not select at least one archive member,
|
||||
.Nm pax
|
||||
.Nm
|
||||
will write these
|
||||
.Ar file
|
||||
operand pathnames in a diagnostic message to
|
||||
@@ -357,7 +357,7 @@ and
|
||||
as the mode argument.
|
||||
When the selected archive format supports the specification of linked
|
||||
files and these files cannot be linked while the archive is being extracted,
|
||||
.Nm pax
|
||||
.Nm
|
||||
will write a diagnostic message to
|
||||
.Dv standard error
|
||||
and exit with a non-zero exit status at the completion of operation.
|
||||
@@ -381,7 +381,7 @@ If an archive format is not specified with a
|
||||
option, the format currently being used in the archive will be selected.
|
||||
Any attempt to append to an archive in a format different from the
|
||||
format already used in the archive will cause
|
||||
.Nm pax
|
||||
.Nm
|
||||
to exit immediately
|
||||
with a non-zero exit status.
|
||||
The blocking size used in the archive volume where writing starts
|
||||
@@ -450,7 +450,7 @@ or
|
||||
.Em write ) .
|
||||
A single archive may span multiple files and different archive devices.
|
||||
When required,
|
||||
.Nm pax
|
||||
.Nm
|
||||
will prompt for the pathname of the file or device of the next volume in the
|
||||
archive.
|
||||
.It Fl i
|
||||
@@ -460,7 +460,7 @@ For each archive member matching a
|
||||
operand or each file matching a
|
||||
.Ar file
|
||||
operand,
|
||||
.Nm pax
|
||||
.Nm
|
||||
will prompt to
|
||||
.Pa /dev/tty
|
||||
giving the name of the file, its file mode and its modification time.
|
||||
@@ -569,7 +569,7 @@ nor the
|
||||
.Cm o
|
||||
specification character is specified, or the user ID and group ID are not
|
||||
preserved for any reason,
|
||||
.Nm pax
|
||||
.Nm
|
||||
will not set the
|
||||
.Dv S_ISUID
|
||||
.Em ( setuid )
|
||||
@@ -578,7 +578,7 @@ and
|
||||
.Em ( setgid )
|
||||
bits of the file mode.
|
||||
If the preservation of any of these items fails for any reason,
|
||||
.Nm pax
|
||||
.Nm
|
||||
will write a diagnostic message to
|
||||
.Dv standard error .
|
||||
Failure to preserve these items will affect the final exit status,
|
||||
@@ -636,9 +636,9 @@ File or archive member names that substitute to the empty string
|
||||
are not selected and will be skipped.
|
||||
.It Fl t
|
||||
Reset the access times of any file or directory read or accessed by
|
||||
.Nm pax
|
||||
.Nm
|
||||
to be the same as they were before being read or accessed by
|
||||
.Nm pax .
|
||||
.Nm Ns .
|
||||
.It Fl u
|
||||
Ignore files that are older (having a less recent file modification time)
|
||||
than a pre-existing file or archive member with the same name.
|
||||
@@ -699,7 +699,7 @@ standard.
|
||||
The default blocksize for this format is 5120 bytes.
|
||||
Inode and device information about a file (used for detecting file hard links
|
||||
by this format) which may be truncated by this format is detected by
|
||||
.Nm pax
|
||||
.Nm
|
||||
and is repaired.
|
||||
.It Ar bcpio
|
||||
The old binary cpio format.
|
||||
@@ -708,21 +708,21 @@ This format is not very portable and should not be used when other formats
|
||||
are available.
|
||||
Inode and device information about a file (used for detecting file hard links
|
||||
by this format) which may be truncated by this format is detected by
|
||||
.Nm pax
|
||||
.Nm
|
||||
and is repaired.
|
||||
.It Ar sv4cpio
|
||||
The System V release 4 cpio.
|
||||
The default blocksize for this format is 5120 bytes.
|
||||
Inode and device information about a file (used for detecting file hard links
|
||||
by this format) which may be truncated by this format is detected by
|
||||
.Nm pax
|
||||
.Nm
|
||||
and is repaired.
|
||||
.It Ar sv4crc
|
||||
The System V release 4 cpio with file crc checksums.
|
||||
The default blocksize for this format is 5120 bytes.
|
||||
Inode and device information about a file (used for detecting file hard links
|
||||
by this format) which may be truncated by this format is detected by
|
||||
.Nm pax
|
||||
.Nm
|
||||
and is repaired.
|
||||
.It Ar tar
|
||||
The old BSD tar format as found in BSD4.3.
|
||||
@@ -790,20 +790,20 @@ archives to
|
||||
.Ar limit .
|
||||
With a positive
|
||||
.Ar limit ,
|
||||
.Nm pax
|
||||
.Nm
|
||||
will attempt to recover from an archive read error and will
|
||||
continue processing starting with the next file stored in the archive.
|
||||
A
|
||||
.Ar limit
|
||||
of 0 will cause
|
||||
.Nm pax
|
||||
.Nm
|
||||
to stop operation after the first read error is detected on an archive volume.
|
||||
A
|
||||
.Ar limit
|
||||
of
|
||||
.Li NONE
|
||||
will cause
|
||||
.Nm pax
|
||||
.Nm
|
||||
to attempt to recover from read errors forever.
|
||||
The default
|
||||
.Ar limit
|
||||
@@ -813,7 +813,7 @@ is a small positive number of retries.
|
||||
Using this option with
|
||||
.Li NONE
|
||||
should be used with extreme caution as
|
||||
.Nm pax
|
||||
.Nm
|
||||
may get stuck in an infinite loop on a very badly flawed archive.
|
||||
.It Fl G Ar group
|
||||
Select a file based on its
|
||||
@@ -857,7 +857,7 @@ only files with a modification or inode change time of exactly that
|
||||
time will be selected.
|
||||
.Pp
|
||||
When
|
||||
.Nm pax
|
||||
.Nm
|
||||
is in the
|
||||
.Em write
|
||||
or
|
||||
@@ -887,7 +887,7 @@ created and had their modification time reset to an older time (as what
|
||||
happens when a file is extracted from an archive and the modification time
|
||||
is preserved).
|
||||
Time comparisons using both file times is useful when
|
||||
.Nm pax
|
||||
.Nm
|
||||
is used to create a time based incremental archive (only files that were
|
||||
changed during a specified time range will be archived).
|
||||
.Pp
|
||||
@@ -1053,13 +1053,13 @@ gives the verbose table of contents for an archive stored in
|
||||
.Pa filename .
|
||||
.Pp
|
||||
The following commands:
|
||||
.Dl mkdir newdir
|
||||
.Dl cd olddir
|
||||
.Dl pax -rw .\ newdir
|
||||
.Dl mkdir /tmp/foo
|
||||
.Dl cd /tmp/bar
|
||||
.Dl pax -rw .\ /tmp/foo
|
||||
will copy the entire
|
||||
.Pa olddir
|
||||
.Pa /tmp/bar
|
||||
directory hierarchy to
|
||||
.Pa newdir .
|
||||
.Pa /tmp/foo .
|
||||
.Pp
|
||||
The command:
|
||||
.Dl pax -r -s ',^//*usr//*,,' -f a.pax
|
||||
@@ -1093,7 +1093,7 @@ files with the same name found in the source file tree
|
||||
.Pa home .
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Nm pax
|
||||
.Nm
|
||||
utility is a superset of the
|
||||
.St -p1003.2
|
||||
standard.
|
||||
@@ -1121,10 +1121,11 @@ and
|
||||
operations are extensions to the
|
||||
.Tn POSIX
|
||||
standard.
|
||||
.Sh AUTHOR
|
||||
Keith Muller at the University of California, San Diego
|
||||
.Sh AUTHORS
|
||||
.An Keith Muller
|
||||
at the University of California, San Diego
|
||||
.Sh ERRORS
|
||||
.Nm pax
|
||||
.Nm Pax
|
||||
will exit with one of the following values:
|
||||
.Bl -tag -width 2n
|
||||
.It 0
|
||||
@@ -1134,7 +1135,7 @@ An error occurred.
|
||||
.El
|
||||
.Pp
|
||||
Whenever
|
||||
.Nm pax
|
||||
.Nm
|
||||
cannot create a file or a link when reading an archive or cannot
|
||||
find a file when writing an archive, or cannot preserve the user ID,
|
||||
group ID, or file mode when the
|
||||
@@ -1143,28 +1144,28 @@ option is specified, a diagnostic message is written to
|
||||
.Dv standard error
|
||||
and a non-zero exit status will be returned, but processing will continue.
|
||||
In the case where pax cannot create a link to a file,
|
||||
.Nm pax
|
||||
.Nm
|
||||
will not create a second copy of the file.
|
||||
.Pp
|
||||
If the extraction of a file from an archive is prematurely terminated by
|
||||
a signal or error,
|
||||
.Nm pax
|
||||
.Nm
|
||||
may have only partially extracted a file the user wanted.
|
||||
Additionally, the file modes of extracted files and directories
|
||||
may have incorrect file bits, and the modification and access times may be
|
||||
wrong.
|
||||
.Pp
|
||||
If the creation of an archive is prematurely terminated by a signal or error,
|
||||
.Nm pax
|
||||
.Nm
|
||||
may have only partially created the archive which may violate the specific
|
||||
archive format specification.
|
||||
.Pp
|
||||
If while doing a
|
||||
.Em copy ,
|
||||
.Nm pax
|
||||
.Nm
|
||||
detects a file is about to overwrite itself, the file is not copied,
|
||||
a diagnostic message is written to
|
||||
.Dv standard error
|
||||
and when
|
||||
.Nm pax
|
||||
.Nm
|
||||
completes it will exit with a non-zero exit status.
|
||||
+2
-1
@@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)extern.h 8.3 (Berkeley) 4/2/94
|
||||
* $Id: extern.h,v 1.2 1994/09/24 02:56:42 davidg Exp $
|
||||
* $Id: extern.h,v 1.3 1996/10/21 07:30:23 peter Exp $
|
||||
*/
|
||||
|
||||
struct kinfo;
|
||||
@@ -64,6 +64,7 @@ void parsefmt __P((char *));
|
||||
void pcpu __P((KINFO *, VARENT *));
|
||||
void pmem __P((KINFO *, VARENT *));
|
||||
void pri __P((KINFO *, VARENT *));
|
||||
void rtprior __P((KINFO *, VARENT *));
|
||||
void printheader __P((void));
|
||||
void pvar __P((KINFO *, VARENT *));
|
||||
void rssize __P((KINFO *, VARENT *));
|
||||
|
||||
+11
-2
@@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: fmt.c,v 1.6 1995/10/23 21:03:40 ache Exp $
|
||||
* $Id: fmt.c,v 1.6.2.1 1997/03/10 19:10:52 guido Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -44,6 +44,7 @@ static char sccsid[] = "@(#)fmt.c 8.4 (Berkeley) 4/15/94";
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <vis.h>
|
||||
#include "ps.h"
|
||||
|
||||
@@ -58,8 +59,16 @@ static char *
|
||||
shquote(argv)
|
||||
char **argv;
|
||||
{
|
||||
long arg_max;
|
||||
char **p, *dst, *src;
|
||||
static char buf[4*ARG_MAX]; /* XXX */
|
||||
static char *buf = NULL;
|
||||
|
||||
if (buf == NULL) {
|
||||
if ((arg_max = sysconf(_SC_ARG_MAX)) == -1)
|
||||
errx(1, "sysconf _SC_ARG_MAX failed");
|
||||
if ((buf = malloc((4 * arg_max) + 1)) == NULL)
|
||||
errx(1, "malloc failed");
|
||||
}
|
||||
|
||||
if (*argv == 0) {
|
||||
buf[0] = 0;
|
||||
|
||||
+3
-4
@@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: keyword.c,v 1.8 1995/10/28 20:11:15 phk Exp $
|
||||
* $Id: keyword.c,v 1.9.2.1 1998/06/04 22:20:31 steve Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -139,7 +139,7 @@ VAR var[] = {
|
||||
{"rss", "RSS", NULL, 0, p_rssize, 4},
|
||||
{"rssize", "", "rsz"},
|
||||
{"rsz", "RSZ", NULL, 0, rssize, 4},
|
||||
{"rtprio", "RTPRIO", NULL, 0, pvar, 7, POFF(p_rtprio), LONG, "d"},
|
||||
{"rtprio", "RTPRIO", NULL, 0, rtprior, 7, POFF(p_rtprio)},
|
||||
{"ruid", "RUID", NULL, 0, evar, UIDLEN, EOFF(e_pcred.p_ruid),
|
||||
ULONG, UIDFMT},
|
||||
{"ruser", "RUSER", NULL, LJUST, runame, USERLEN},
|
||||
@@ -345,8 +345,7 @@ findvar(p)
|
||||
if (!v) {
|
||||
warnx("%s: keyword not found", p);
|
||||
eval = 1;
|
||||
}
|
||||
if (hp)
|
||||
} else if (hp)
|
||||
v->header = hp;
|
||||
return (v);
|
||||
}
|
||||
|
||||
+34
-2
@@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: print.c,v 1.16.2.1 1997/04/16 16:10:48 jdp Exp $
|
||||
* $Id: print.c,v 1.16.2.2 1997/08/03 08:33:17 peter Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -164,12 +164,13 @@ logname(k, ve)
|
||||
VARENT *ve;
|
||||
{
|
||||
VAR *v;
|
||||
char *s;
|
||||
|
||||
v = ve->var;
|
||||
#ifndef NEWVM
|
||||
(void)printf("%-*s", v->width, KI_PROC(k)->p_logname);
|
||||
#else
|
||||
(void)printf("%-*s", v->width, KI_EPROC(k)->e_login);
|
||||
(void)printf("%-*s", v->width, (s = KI_EPROC(k)->e_login, *s) ? s : "-");
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -657,6 +658,37 @@ trss(k, ve)
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
rtprior(k, ve)
|
||||
KINFO *k;
|
||||
VARENT *ve;
|
||||
{
|
||||
VAR *v;
|
||||
struct rtprio *prtp;
|
||||
char str[8];
|
||||
unsigned type, prio;
|
||||
|
||||
v = ve->var;
|
||||
prtp = (struct rtprio *) ((char *)KI_PROC(k) + v->off);
|
||||
prio = prtp->prio;
|
||||
switch (type = prtp->type) {
|
||||
case RTP_PRIO_REALTIME:
|
||||
snprintf(str, sizeof(str), "real:%u", prio);
|
||||
break;
|
||||
case RTP_PRIO_NORMAL:
|
||||
strncpy(str, "normal", sizeof(str));
|
||||
break;
|
||||
case RTP_PRIO_IDLE:
|
||||
snprintf(str, sizeof(str), "idle:%u", prio);
|
||||
break;
|
||||
default:
|
||||
snprintf(str, sizeof(str), "%u:%u", type, prio);
|
||||
break;
|
||||
}
|
||||
str[sizeof(str)-1] = '\0';
|
||||
(void)printf("%*s", v->width, str);
|
||||
}
|
||||
|
||||
/*
|
||||
* Generic output routines. Print fields from various prototype
|
||||
* structures.
|
||||
|
||||
+3
-3
@@ -33,7 +33,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)pwd.1 8.2 (Berkeley) 4/28/95
|
||||
.\" $Id: pwd.1,v 1.5 1997/02/22 14:05:15 peter Exp $
|
||||
.\" $Id: pwd.1,v 1.2.8.2 1998/06/30 06:43:02 charnier Exp $
|
||||
.\"
|
||||
.Dd April 28, 1995
|
||||
.Dt PWD 1
|
||||
@@ -44,14 +44,14 @@
|
||||
.Sh SYNOPSIS
|
||||
.Nm pwd
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
.Nm Pwd
|
||||
writes the absolute pathname of the current working directory to
|
||||
the standard output.
|
||||
.Pp
|
||||
The pwd utility exits 0 on success, and >0 if an error occurs.
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Nm pwd
|
||||
.Nm
|
||||
command is expected to be
|
||||
.St -p1003.2
|
||||
compatible.
|
||||
|
||||
+3
-1
@@ -31,10 +31,12 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)pathnames.h 8.1 (Berkeley) 5/31/93
|
||||
* $Id$
|
||||
* $Id: pathnames.h,v 1.2 1994/09/24 02:56:55 davidg Exp $
|
||||
*/
|
||||
|
||||
#include <paths.h>
|
||||
|
||||
#define _PATH_CP "/bin/cp"
|
||||
#define _PATH_RCP "/bin/rcp"
|
||||
#define _PATH_RLOGIN "/usr/bin/rlogin"
|
||||
#define _PATH_RSH "/usr/bin/rsh"
|
||||
+14
-21
@@ -30,7 +30,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)rcp.1 8.1 (Berkeley) 5/31/93
|
||||
.\" $Id: rcp.1,v 1.5 1997/02/22 14:05:21 peter Exp $
|
||||
.\" $Id: rcp.1,v 1.2.8.1 1997/02/28 07:54:41 mpp Exp $
|
||||
.\"
|
||||
.Dd May 31, 1993
|
||||
.Dt RCP 1
|
||||
@@ -58,26 +58,21 @@ argument is either a remote file name of the
|
||||
form ``rname@rhost:path'', or a local file name (containing no `:' characters,
|
||||
or a `/' before any `:'s).
|
||||
.Pp
|
||||
.Bl -tag -width flag
|
||||
The following options are available:
|
||||
.Bl -tag -width indent
|
||||
.It Fl K
|
||||
The
|
||||
.Fl K
|
||||
option turns off all Kerberos authentication.
|
||||
Turn off all Kerberos authentication.
|
||||
.It Fl k
|
||||
The
|
||||
.Fl k
|
||||
option requests
|
||||
.Nm rcp
|
||||
Request
|
||||
.Nm
|
||||
to obtain tickets
|
||||
for the remote host in realm
|
||||
.Ar realm
|
||||
instead of the remote host's realm as determined by
|
||||
.Xr krb_realmofhost 3 .
|
||||
.It Fl p
|
||||
The
|
||||
.Fl p
|
||||
option causes
|
||||
.Nm rcp
|
||||
Cause
|
||||
.Nm
|
||||
to attempt to preserve (duplicate) in its copies the modification
|
||||
times and modes of the source files, ignoring the
|
||||
.Ar umask .
|
||||
@@ -89,16 +84,14 @@ modified by the
|
||||
on the destination host is used.
|
||||
.It Fl r
|
||||
If any of the source files are directories,
|
||||
.Nm rcp
|
||||
.Nm
|
||||
copies each subtree rooted at that name; in this case
|
||||
the destination must be a directory.
|
||||
.It Fl x
|
||||
The
|
||||
.Fl x
|
||||
option turns on
|
||||
Turn on
|
||||
.Tn DES
|
||||
encryption for all data passed by
|
||||
.Nm rcp .
|
||||
.Nm Ns .
|
||||
This may impact response time and
|
||||
.Tn CPU
|
||||
utilization, but provides
|
||||
@@ -134,11 +127,11 @@ are on the current machine.
|
||||
.Xr rsh 1
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm rcp
|
||||
.Nm
|
||||
command appeared in
|
||||
.Bx 4.2 .
|
||||
The version of
|
||||
.Nm rcp
|
||||
.Nm
|
||||
described here
|
||||
has been reimplemented with Kerberos in
|
||||
.Bx 4.3 Reno .
|
||||
@@ -157,4 +150,4 @@ The destination user and hostname may have to be specified as
|
||||
``rhost.rname'' when the destination machine is running the
|
||||
.Bx 4.2
|
||||
version of
|
||||
.Nm rcp .
|
||||
.Nm Ns .
|
||||
+24
-11
@@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id$
|
||||
* $Id: rcp.c,v 1.8.2.4 1998/02/18 11:38:37 markm Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -72,8 +72,6 @@ static char const sccsid[] = "@(#)rcp.c 8.2 (Berkeley) 4/2/94";
|
||||
#include <des.h>
|
||||
#include <krb.h>
|
||||
|
||||
/* #include "../../usr.bin/rlogin/krb.h" */
|
||||
|
||||
char dst_realm_buf[REALM_SZ];
|
||||
char *dest_realm = NULL;
|
||||
int use_kerberos = 1;
|
||||
@@ -96,6 +94,9 @@ uid_t userid;
|
||||
int errs, rem;
|
||||
int pflag, iamremote, iamrecursive, targetshouldbedirectory;
|
||||
|
||||
static int argc_copy;
|
||||
static char **argv_copy;
|
||||
|
||||
#define CMDNEEDS 64
|
||||
char cmd[CMDNEEDS]; /* must hold "rcp -r -p -d\0" */
|
||||
|
||||
@@ -119,6 +120,24 @@ main(argc, argv)
|
||||
struct servent *sp;
|
||||
int ch, fflag, tflag;
|
||||
char *targ, *shell;
|
||||
int i;
|
||||
|
||||
/*
|
||||
* Prepare for execing ourselves.
|
||||
*/
|
||||
|
||||
argc_copy = argc + 1;
|
||||
argv_copy = malloc((argc_copy + 1) * sizeof(*argv_copy));
|
||||
if (argv_copy == NULL)
|
||||
err(1, "malloc");
|
||||
argv_copy[0] = argv[0];
|
||||
argv_copy[1] = "-K";
|
||||
for(i = 1; i < argc; ++i) {
|
||||
argv_copy[i + 1] = strdup(argv[i]);
|
||||
if (argv_copy[i + 1] == NULL)
|
||||
errx(1, "strdup: out of memory");
|
||||
}
|
||||
argv_copy[argc + 1] = NULL;
|
||||
|
||||
fflag = tflag = 0;
|
||||
while ((ch = getopt(argc, argv, OPTIONS)) != -1)
|
||||
@@ -774,10 +793,8 @@ int
|
||||
kerberos(host, bp, locuser, user)
|
||||
char **host, *bp, *locuser, *user;
|
||||
{
|
||||
struct servent *sp;
|
||||
|
||||
again:
|
||||
if (use_kerberos) {
|
||||
setuid(getuid());
|
||||
rem = KSUCCESS;
|
||||
errno = 0;
|
||||
if (dest_realm == NULL)
|
||||
@@ -791,15 +808,11 @@ again:
|
||||
krcmd(host, port, user, bp, 0, dest_realm);
|
||||
|
||||
if (rem < 0) {
|
||||
use_kerberos = 0;
|
||||
if ((sp = getservbyname("shell", "tcp")) == NULL)
|
||||
errx(1, "unknown service shell/tcp");
|
||||
if (errno == ECONNREFUSED)
|
||||
oldw("remote host doesn't support Kerberos");
|
||||
else if (errno == ENOENT)
|
||||
oldw("can't provide Kerberos authentication data");
|
||||
port = sp->s_port;
|
||||
goto again;
|
||||
execv(_PATH_RCP, argv_copy);
|
||||
}
|
||||
} else {
|
||||
#ifdef CRYPT
|
||||
|
||||
+13
-8
@@ -33,7 +33,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)rm.1 8.2 (Berkeley) 4/18/94
|
||||
.\" $Id: rm.1,v 1.4.2.1 1997/04/08 20:43:37 mpp Exp $
|
||||
.\" $Id: rm.1,v 1.4.2.2 1997/04/09 05:05:46 mpp Exp $
|
||||
.\"
|
||||
.Dd April 18, 1994
|
||||
.Dt RM 1
|
||||
@@ -44,11 +44,11 @@
|
||||
.Sh SYNOPSIS
|
||||
.Nm rm
|
||||
.Op Fl f | Fl i
|
||||
.Op Fl dPRr
|
||||
.Op Fl dPRrW
|
||||
.Ar file ...
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm rm
|
||||
.Nm
|
||||
utility attempts to remove the non-directory type files specified on the
|
||||
command line.
|
||||
If the permissions of the file do not permit writing, and the standard
|
||||
@@ -100,23 +100,27 @@ that directory is skipped.
|
||||
.It Fl r
|
||||
Equivalent to
|
||||
.Fl R .
|
||||
.It Fl W
|
||||
Attempt to undelete the named files.
|
||||
Currently, this option can only be used to recover
|
||||
files covered by whiteouts.
|
||||
.El
|
||||
.Pp
|
||||
The
|
||||
.Nm rm
|
||||
.Nm
|
||||
utility removes symbolic links, not the files referenced by the links.
|
||||
.Pp
|
||||
It is an error to attempt to remove the files ``.'' and ``..''.
|
||||
.Pp
|
||||
The
|
||||
.Nm rm
|
||||
.Nm
|
||||
utility exits 0 if all of the named files or file hierarchies were removed,
|
||||
or if the
|
||||
.Fl f
|
||||
option was specified and all of the existing files or file hierarchies were
|
||||
removed.
|
||||
If an error occurs,
|
||||
.Nm rm
|
||||
.Nm
|
||||
exits with a value >0.
|
||||
.Sh NOTE
|
||||
The
|
||||
@@ -141,6 +145,7 @@ This is useful for commands that do not use
|
||||
to parse the command line arguments.
|
||||
.Sh SEE ALSO
|
||||
.Xr rmdir 1 ,
|
||||
.Xr undelete 2 ,
|
||||
.Xr unlink 2 ,
|
||||
.Xr fts 3 ,
|
||||
.Xr getopt 3 ,
|
||||
@@ -155,7 +160,7 @@ In addition, only regular files are overwritten, other types of files
|
||||
are not.
|
||||
.Sh COMPATIBILITY
|
||||
The
|
||||
.Nm rm
|
||||
.Nm
|
||||
utility differs from historical implementations in that the
|
||||
.Fl f
|
||||
option only masks attempts to remove non-existent files instead of
|
||||
@@ -167,7 +172,7 @@ implementations prompted on the standard output,
|
||||
not the standard error output.
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Nm rm
|
||||
.Nm
|
||||
command is expected to be
|
||||
.St -p1003.2
|
||||
compatible.
|
||||
|
||||
+22
-18
@@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: rm.c,v 1.11 1996/03/07 23:26:59 wosch Exp $
|
||||
* $Id: rm.c,v 1.11.2.1 1997/12/03 05:40:08 imp Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -81,7 +81,7 @@ main(argc, argv)
|
||||
{
|
||||
int ch, rflag;
|
||||
|
||||
rflag = 0;
|
||||
Pflag = rflag = 0;
|
||||
while ((ch = getopt(argc, argv, "dfiPRr")) != -1)
|
||||
switch(ch) {
|
||||
case 'd':
|
||||
@@ -112,16 +112,17 @@ main(argc, argv)
|
||||
usage();
|
||||
|
||||
checkdot(argv);
|
||||
if (!*argv)
|
||||
exit (eval);
|
||||
|
||||
stdin_ok = isatty(STDIN_FILENO);
|
||||
uid = geteuid();
|
||||
|
||||
if (rflag)
|
||||
rm_tree(argv);
|
||||
else
|
||||
rm_file(argv);
|
||||
if (*argv) {
|
||||
stdin_ok = isatty(STDIN_FILENO);
|
||||
|
||||
if (rflag)
|
||||
rm_tree(argv);
|
||||
else
|
||||
rm_file(argv);
|
||||
}
|
||||
|
||||
exit (eval);
|
||||
}
|
||||
|
||||
@@ -132,13 +133,14 @@ rm_tree(argv)
|
||||
FTS *fts;
|
||||
FTSENT *p;
|
||||
int needstat;
|
||||
int flags;
|
||||
int rval;
|
||||
|
||||
/*
|
||||
* Remove a file hierarchy. If forcing removal (-f), or interactive
|
||||
* (-i) or can't ask anyway (stdin_ok), don't stat the file.
|
||||
*/
|
||||
needstat = !uid || !fflag && !iflag && stdin_ok;
|
||||
needstat = !uid || (!fflag && !iflag && stdin_ok);
|
||||
|
||||
/*
|
||||
* If the -i option is specified, the user can skip on the pre-order
|
||||
@@ -176,7 +178,7 @@ rm_tree(argv)
|
||||
continue;
|
||||
case FTS_D:
|
||||
/* Pre-order: give user chance to skip. */
|
||||
if (iflag && !check(p->fts_path, p->fts_accpath,
|
||||
if (!fflag && !check(p->fts_path, p->fts_accpath,
|
||||
p->fts_statp)) {
|
||||
(void)fts_set(fts, p, FTS_SKIP);
|
||||
p->fts_number = SKIPPED;
|
||||
@@ -193,10 +195,11 @@ rm_tree(argv)
|
||||
if (p->fts_number == SKIPPED)
|
||||
continue;
|
||||
break;
|
||||
default:
|
||||
if (!fflag &&
|
||||
!check(p->fts_path, p->fts_accpath, p->fts_statp))
|
||||
continue;
|
||||
}
|
||||
if (!fflag &&
|
||||
!check(p->fts_path, p->fts_accpath, p->fts_statp))
|
||||
continue;
|
||||
|
||||
rval = 0;
|
||||
if (!uid &&
|
||||
@@ -357,9 +360,9 @@ check(path, name, sp)
|
||||
* first because we may not have stat'ed the file.
|
||||
*/
|
||||
if (!stdin_ok || S_ISLNK(sp->st_mode) ||
|
||||
!access(name, W_OK) &&
|
||||
(!access(name, W_OK) &&
|
||||
!(sp->st_flags & (SF_APPEND|SF_IMMUTABLE)) &&
|
||||
(!(sp->st_flags & (UF_APPEND|UF_IMMUTABLE)) || !uid))
|
||||
(!(sp->st_flags & (UF_APPEND|UF_IMMUTABLE)) || !uid)))
|
||||
return (1);
|
||||
strmode(sp->st_mode, modep);
|
||||
strcpy(flagsp, flags_to_string(sp->st_flags, NULL));
|
||||
@@ -398,7 +401,8 @@ checkdot(argv)
|
||||
if (!complained++)
|
||||
warnx("\".\" and \"..\" may not be removed");
|
||||
eval = 1;
|
||||
for (save = t; (t[0] = t[1]) != NULL; ++t);
|
||||
for (save = t; (t[0] = t[1]) != NULL; ++t)
|
||||
continue;
|
||||
t = save;
|
||||
} else
|
||||
++t;
|
||||
|
||||
+6
-6
@@ -30,7 +30,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)rmail.8 6.10 (Berkeley) 4/29/93
|
||||
.\" $Id: rmail.8,v 1.5 1997/02/22 14:05:30 peter Exp $
|
||||
.\" $Id: rmail.8,v 1.2.8.2 1998/06/30 06:43:18 charnier Exp $
|
||||
.\"
|
||||
.Dd April 29, 1993
|
||||
.Dt RMAIL 8
|
||||
@@ -42,7 +42,7 @@
|
||||
.Nm rmail
|
||||
.Ar user ...
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
.Nm Rmail
|
||||
interprets incoming mail received via
|
||||
.Xr uucp 1 ,
|
||||
collapsing ``From'' lines in the form generated
|
||||
@@ -52,18 +52,18 @@ into a single line of the form ``return-path!sender'',
|
||||
and passing the processed mail on to
|
||||
.Xr sendmail 8 .
|
||||
.Pp
|
||||
.Nm
|
||||
.Nm Rmail
|
||||
is explicitly designed for use with
|
||||
.Xr uucp
|
||||
.Xr uucp 1
|
||||
and
|
||||
.Xr sendmail .
|
||||
.Xr sendmail 8 .
|
||||
.Sh SEE ALSO
|
||||
.Xr uucp 1 ,
|
||||
.Xr mail.local 8 ,
|
||||
.Xr sendmail 8
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm rmail
|
||||
.Nm
|
||||
program appeared in
|
||||
.Bx 4.2 .
|
||||
.Sh BUGS
|
||||
|
||||
+8
-6
@@ -33,7 +33,7 @@
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)rmdir.1 8.1 (Berkeley) 5/31/93
|
||||
.\" $Id: rmdir.1,v 1.3 1996/08/29 18:06:08 wosch Exp $
|
||||
.\" $Id: rmdir.1,v 1.3.2.2 1998/06/30 06:42:35 charnier Exp $
|
||||
.\"
|
||||
.Dd May 31, 1993
|
||||
.Dt RMDIR 1
|
||||
@@ -46,7 +46,9 @@
|
||||
.Op Fl p
|
||||
.Ar directory ...
|
||||
.Sh DESCRIPTION
|
||||
The rmdir utility removes the directory entry specified by
|
||||
The
|
||||
.Nm
|
||||
utility removes the directory entry specified by
|
||||
each
|
||||
.Ar directory
|
||||
argument, provided it is empty.
|
||||
@@ -56,11 +58,11 @@ In order to remove both a parent directory and a subdirectory
|
||||
of that parent, the subdirectory
|
||||
must be specified first so the parent directory
|
||||
is empty when
|
||||
.Nm rmdir
|
||||
.Nm
|
||||
tries to remove it.
|
||||
.Pp
|
||||
The following option is available:
|
||||
.Bl -tag -width Ds
|
||||
.Bl -tag -width indent
|
||||
.It Fl p
|
||||
Each
|
||||
.Ar directory
|
||||
@@ -73,7 +75,7 @@ for fully non-discriminant recursive removal.)
|
||||
.El
|
||||
.Pp
|
||||
The
|
||||
.Nm rmdir
|
||||
.Nm
|
||||
utility exits with one of the following values:
|
||||
.Bl -tag -width Ds
|
||||
.It Li \&0
|
||||
@@ -87,7 +89,7 @@ An error occurred.
|
||||
.Xr rm 1
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Nm rmdir
|
||||
.Nm
|
||||
command is expected to be
|
||||
.St -p1003.2
|
||||
compatible.
|
||||
|
||||
+6
-10
@@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: rmdir.c,v 1.2 1994/09/24 02:57:13 davidg Exp $
|
||||
* $Id: rmdir.c,v 1.2.8.1 1997/08/25 08:43:06 jkh Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -40,7 +40,11 @@ static char const copyright[] =
|
||||
#endif /* not lint */
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)rmdir.c 8.3 (Berkeley) 4/2/94";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)rmdir.c 8.3 (Berkeley) 4/2/94";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id$";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <err.h>
|
||||
@@ -78,14 +82,6 @@ main(argc, argv)
|
||||
usage();
|
||||
|
||||
for (errors = 0; *argv; argv++) {
|
||||
char *p;
|
||||
|
||||
/* Delete trailing slashes, per POSIX. */
|
||||
p = *argv + strlen(*argv);
|
||||
while (--p > *argv && *p == '/')
|
||||
;
|
||||
*++p = '\0';
|
||||
|
||||
if (rmdir(*argv) < 0) {
|
||||
warn("%s", *argv);
|
||||
errors = 1;
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
# @(#)TOUR 8.1 (Berkeley) 5/31/93
|
||||
# $Id: TOUR,v 1.2 1994/09/24 02:57:19 davidg Exp $
|
||||
# $Id: TOUR,v 1.5 1997/02/22 13:58:19 peter Exp $
|
||||
|
||||
NOTE -- This is the original TOUR paper distributed with ash and
|
||||
does not represent the current state of the shell. It is provided anyway
|
||||
|
||||
+5
-3
@@ -32,12 +32,14 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: alias.c,v 1.4 1996/09/01 10:19:26 peter Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)alias.c 8.3 (Berkeley) 5/4/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)alias.c 8.3 (Berkeley) 5/4/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: alias.c,v 1.10 1998/05/18 06:43:25 charnier Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)alias.h 8.2 (Berkeley) 5/4/95
|
||||
* $Id: alias.h,v 1.2 1994/09/24 02:57:20 davidg Exp $
|
||||
* $Id: alias.h,v 1.5 1997/02/22 13:58:20 peter Exp $
|
||||
*/
|
||||
|
||||
#define ALIASINUSE 1
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)arith.h 1.1 (Berkeley) 5/4/95
|
||||
* $Id$
|
||||
* $Id: arith.h,v 1.4 1997/02/22 13:58:20 peter Exp $
|
||||
*/
|
||||
|
||||
int arith __P((char *));
|
||||
|
||||
+9
-2
@@ -88,11 +88,15 @@ expr: ARITH_LPAREN expr ARITH_RPAREN = { $$ = $2; }
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: arith.y,v 1.3 1996/09/01 10:19:38 peter Exp $
|
||||
* $Id: arith.y,v 1.9 1998/08/25 09:33:34 cracauer Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)arith.y 8.3 (Berkeley) 5/4/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)arith.y 8.3 (Berkeley) 5/4/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: arith.y,v 1.9 1998/08/25 09:33:34 cracauer Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
#include "shell.h"
|
||||
@@ -103,6 +107,9 @@ static char const sccsid[] = "@(#)arith.y 8.3 (Berkeley) 5/4/95";
|
||||
char *arith_buf, *arith_startbuf;
|
||||
extern void arith_lex_reset();
|
||||
|
||||
int yylex __P((void));
|
||||
int yyparse __P((void));
|
||||
|
||||
int
|
||||
arith(s)
|
||||
char *s;
|
||||
|
||||
+6
-2
@@ -34,11 +34,15 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: arith_lex.l,v 1.5 1996/09/01 10:19:41 peter Exp $
|
||||
* $Id: arith_lex.l,v 1.12 1998/08/25 09:33:34 cracauer Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)arith_lex.l 8.3 (Berkeley) 5/4/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)arith_lex.l 8.3 (Berkeley) 5/4/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: arith_lex.l,v 1.12 1998/08/25 09:33:34 cracauer Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
# @(#)builtins.def 8.4 (Berkeley) 5/4/95
|
||||
# $Id: builtins.def,v 1.3 1996/10/01 04:59:13 peter Exp $
|
||||
# $Id: builtins.def,v 1.6 1997/04/28 03:50:07 steve Exp $
|
||||
|
||||
#
|
||||
# This file lists all the builtin commands. The first column is the name
|
||||
|
||||
+160
-19
@@ -32,12 +32,14 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: cd.c,v 1.6 1996/09/01 10:19:47 peter Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)cd.c 8.2 (Berkeley) 5/4/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)cd.c 8.2 (Berkeley) 5/4/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: cd.c,v 1.18 1998/09/06 21:01:57 tegge Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <sys/types.h>
|
||||
@@ -104,7 +106,7 @@ cdcmd(argc, argv)
|
||||
/*
|
||||
* XXX - rethink
|
||||
*/
|
||||
if (p[0] == '.' && p[1] == '/')
|
||||
if (p[0] == '.' && p[1] == '/' && p[2] != '\0')
|
||||
p += 2;
|
||||
print = strcmp(p, dest);
|
||||
}
|
||||
@@ -128,22 +130,58 @@ docd(dest, print)
|
||||
char *dest;
|
||||
int print;
|
||||
{
|
||||
char *p;
|
||||
char *q;
|
||||
char *component;
|
||||
struct stat statb;
|
||||
int first;
|
||||
int badstat;
|
||||
|
||||
TRACE(("docd(\"%s\", %d) called\n", dest, print));
|
||||
|
||||
/*
|
||||
* Check each component of the path. If we find a symlink or
|
||||
* something we can't stat, clear curdir to force a getcwd()
|
||||
* next time we get the value of the current directory.
|
||||
*/
|
||||
badstat = 0;
|
||||
cdcomppath = stalloc(strlen(dest) + 1);
|
||||
scopy(dest, cdcomppath);
|
||||
STARTSTACKSTR(p);
|
||||
if (*dest == '/') {
|
||||
STPUTC('/', p);
|
||||
cdcomppath++;
|
||||
}
|
||||
first = 1;
|
||||
while ((q = getcomponent()) != NULL) {
|
||||
if (q[0] == '\0' || (q[0] == '.' && q[1] == '\0'))
|
||||
continue;
|
||||
if (! first)
|
||||
STPUTC('/', p);
|
||||
first = 0;
|
||||
component = q;
|
||||
while (*q)
|
||||
STPUTC(*q++, p);
|
||||
if (equal(component, ".."))
|
||||
continue;
|
||||
STACKSTRNUL(p);
|
||||
if ((lstat(stackblock(), &statb) < 0)
|
||||
|| (S_ISLNK(statb.st_mode))) {
|
||||
/* print = 1; */
|
||||
badstat = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
INTOFF;
|
||||
updatepwd(dest);
|
||||
if (chdir(stackblock()) < 0) {
|
||||
if (chdir(dest) < 0) {
|
||||
INTON;
|
||||
return -1;
|
||||
}
|
||||
hashcd(); /* update command hash table */
|
||||
if (prevdir)
|
||||
ckfree(prevdir);
|
||||
prevdir = curdir;
|
||||
curdir = savestr(stackblock());
|
||||
updatepwd(badstat ? NULL : dest);
|
||||
INTON;
|
||||
if (print && iflag)
|
||||
out1fmt("%s\n", stackblock());
|
||||
if (print && iflag && curdir)
|
||||
out1fmt("%s\n", curdir);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -174,8 +212,9 @@ getcomponent()
|
||||
|
||||
|
||||
/*
|
||||
* Determine the new working directory, but don't actually enforce
|
||||
* any changes.
|
||||
* Update curdir (the name of the current directory) in response to a
|
||||
* cd command. We also call hashcd to let the routines in exec.c know
|
||||
* that the current directory has changed.
|
||||
*/
|
||||
STATIC void
|
||||
updatepwd(dir)
|
||||
@@ -184,12 +223,30 @@ updatepwd(dir)
|
||||
char *new;
|
||||
char *p;
|
||||
|
||||
hashcd(); /* update command hash table */
|
||||
|
||||
/*
|
||||
* If our argument is NULL, we don't know the current directory
|
||||
* any more because we traversed a symbolic link or something
|
||||
* we couldn't stat().
|
||||
*/
|
||||
if (dir == NULL || curdir == NULL) {
|
||||
if (prevdir)
|
||||
ckfree(prevdir);
|
||||
INTOFF;
|
||||
prevdir = curdir;
|
||||
curdir = NULL;
|
||||
if (getpwd() == NULL)
|
||||
error("getcwd() failed: %s", strerror(errno));
|
||||
setvar("PWD", curdir, VEXPORT | VTEXTFIXED);
|
||||
setvar("OLDPWD", prevdir, VEXPORT | VTEXTFIXED);
|
||||
INTON;
|
||||
return;
|
||||
}
|
||||
cdcomppath = stalloc(strlen(dir) + 1);
|
||||
scopy(dir, cdcomppath);
|
||||
STARTSTACKSTR(new);
|
||||
if (*dir != '/') {
|
||||
if (curdir == NULL)
|
||||
return;
|
||||
p = curdir;
|
||||
while (*p)
|
||||
STPUTC(*p++, new);
|
||||
@@ -208,6 +265,14 @@ updatepwd(dir)
|
||||
if (new == stackblock())
|
||||
STPUTC('/', new);
|
||||
STACKSTRNUL(new);
|
||||
INTOFF;
|
||||
if (prevdir)
|
||||
ckfree(prevdir);
|
||||
prevdir = curdir;
|
||||
curdir = savestr(stackblock());
|
||||
setvar("PWD", curdir, VEXPORT | VTEXTFIXED);
|
||||
setvar("OLDPWD", prevdir, VEXPORT | VTEXTFIXED);
|
||||
INTON;
|
||||
}
|
||||
|
||||
|
||||
@@ -224,6 +289,10 @@ pwdcmd(argc, argv)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#define MAXPWD 256
|
||||
|
||||
/*
|
||||
* Find out what the current directory is. If we already know the current
|
||||
* directory, this routine returns immediately.
|
||||
@@ -231,7 +300,79 @@ pwdcmd(argc, argv)
|
||||
char *
|
||||
getpwd()
|
||||
{
|
||||
char buf[MAXPWD];
|
||||
|
||||
if (curdir)
|
||||
return (curdir);
|
||||
return ((curdir = getcwd(NULL, 0)));
|
||||
return curdir;
|
||||
/*
|
||||
* Things are a bit complicated here; we could have just used
|
||||
* getcwd, but traditionally getcwd is implemented using popen
|
||||
* to /bin/pwd. This creates a problem for us, since we cannot
|
||||
* keep track of the job if it is being ran behind our backs.
|
||||
* So we re-implement getcwd(), and we suppress interrupts
|
||||
* throughout the process. This is not completely safe, since
|
||||
* the user can still break out of it by killing the pwd program.
|
||||
* We still try to use getcwd for systems that we know have a
|
||||
* c implementation of getcwd, that does not open a pipe to
|
||||
* /bin/pwd.
|
||||
*/
|
||||
#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__SVR4)
|
||||
|
||||
if (getcwd(buf, sizeof(buf)) == NULL) {
|
||||
char *pwd = getenv("PWD");
|
||||
struct stat stdot, stpwd;
|
||||
|
||||
if (pwd && *pwd == '/' && stat(".", &stdot) != -1 &&
|
||||
stat(pwd, &stpwd) != -1 &&
|
||||
stdot.st_dev == stpwd.st_dev &&
|
||||
stdot.st_ino == stpwd.st_ino) {
|
||||
curdir = savestr(pwd);
|
||||
return curdir;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
curdir = savestr(buf);
|
||||
#else
|
||||
{
|
||||
char *p;
|
||||
int i;
|
||||
int status;
|
||||
struct job *jp;
|
||||
int pip[2];
|
||||
|
||||
INTOFF;
|
||||
if (pipe(pip) < 0)
|
||||
error("Pipe call failed");
|
||||
jp = makejob((union node *)NULL, 1);
|
||||
if (forkshell(jp, (union node *)NULL, FORK_NOJOB) == 0) {
|
||||
(void) close(pip[0]);
|
||||
if (pip[1] != 1) {
|
||||
close(1);
|
||||
copyfd(pip[1], 1);
|
||||
close(pip[1]);
|
||||
}
|
||||
(void) execl("/bin/pwd", "pwd", (char *)0);
|
||||
error("Cannot exec /bin/pwd");
|
||||
}
|
||||
(void) close(pip[1]);
|
||||
pip[1] = -1;
|
||||
p = buf;
|
||||
while ((i = read(pip[0], p, buf + MAXPWD - p)) > 0
|
||||
|| (i == -1 && errno == EINTR)) {
|
||||
if (i > 0)
|
||||
p += i;
|
||||
}
|
||||
(void) close(pip[0]);
|
||||
pip[0] = -1;
|
||||
status = waitforjob(jp);
|
||||
if (status != 0)
|
||||
error((char *)0);
|
||||
if (i < 0 || p == buf || p[-1] != '\n')
|
||||
error("pwd command failed");
|
||||
p[-1] = '\0';
|
||||
}
|
||||
curdir = savestr(buf);
|
||||
INTON;
|
||||
#endif
|
||||
return curdir;
|
||||
}
|
||||
+4
-2
@@ -30,7 +30,9 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id$
|
||||
* $Id: cd.h,v 1.4 1998/09/06 21:01:57 tegge Exp $
|
||||
*/
|
||||
|
||||
char *getpwd __P((void));
|
||||
char *getpwd __P((void));
|
||||
int cdcmd __P((int, char **));
|
||||
int pwdcmd __P((int, char **));
|
||||
+32
-14
@@ -32,12 +32,14 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: error.c,v 1.5 1996/09/03 14:15:46 peter Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)error.c 8.2 (Berkeley) 5/4/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)error.c 8.2 (Berkeley) 5/4/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: error.c,v 1.13 1998/08/25 09:33:34 cracauer Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
@@ -50,6 +52,7 @@ static char const sccsid[] = "@(#)error.c 8.2 (Berkeley) 5/4/95";
|
||||
#include "output.h"
|
||||
#include "error.h"
|
||||
#include "show.h"
|
||||
#include "trap.h"
|
||||
#include <signal.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
@@ -60,9 +63,9 @@ static char const sccsid[] = "@(#)error.c 8.2 (Berkeley) 5/4/95";
|
||||
*/
|
||||
|
||||
struct jmploc *handler;
|
||||
int exception;
|
||||
volatile int suppressint;
|
||||
volatile int intpending;
|
||||
volatile sig_atomic_t exception;
|
||||
volatile sig_atomic_t suppressint;
|
||||
volatile sig_atomic_t intpending;
|
||||
char *commandname;
|
||||
|
||||
|
||||
@@ -89,28 +92,43 @@ exraise(e)
|
||||
* Called from trap.c when a SIGINT is received. (If the user specifies
|
||||
* that SIGINT is to be trapped or ignored using the trap builtin, then
|
||||
* this routine is not called.) Suppressint is nonzero when interrupts
|
||||
* are held using the INTOFF macro. The call to _exit is necessary because
|
||||
* there is a short period after a fork before the signal handlers are
|
||||
* set to the appropriate value for the child. (The test for iflag is
|
||||
* just defensive programming.)
|
||||
* are held using the INTOFF macro. If SIGINTs are not suppressed and
|
||||
* the shell is not a root shell, then we want to be terminated if we
|
||||
* get here, as if we were terminated directly by a SIGINT. Arrange for
|
||||
* this here.
|
||||
*/
|
||||
|
||||
void
|
||||
onint() {
|
||||
sigset_t sigset;
|
||||
|
||||
if (suppressint) {
|
||||
/*
|
||||
* The !in_dotrap here is safe. The only way we can arrive here
|
||||
* with in_dotrap set is that a trap handler set SIGINT to SIG_DFL
|
||||
* and killed itself.
|
||||
*/
|
||||
|
||||
if (suppressint && !in_dotrap) {
|
||||
intpending++;
|
||||
return;
|
||||
}
|
||||
intpending = 0;
|
||||
sigemptyset(&sigset);
|
||||
sigprocmask(SIG_SETMASK, &sigset, NULL);
|
||||
out2str("\n");
|
||||
|
||||
/*
|
||||
* This doesn't seem to be needed, since main() emits a newline.
|
||||
*/
|
||||
#if 0
|
||||
if (tcgetpgrp(0) == getpid())
|
||||
write(STDERR_FILENO, "\n", 1);
|
||||
#endif
|
||||
if (rootshell && iflag)
|
||||
exraise(EXINT);
|
||||
else
|
||||
_exit(128 + SIGINT);
|
||||
else {
|
||||
signal(SIGINT, SIG_DFL);
|
||||
kill(getpid(), SIGINT);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
+5
-4
@@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)error.h 8.2 (Berkeley) 5/4/95
|
||||
* $Id: error.h,v 1.4 1996/09/03 14:15:48 peter Exp $
|
||||
* $Id: error.h,v 1.9 1998/08/24 19:15:48 cracauer Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -57,13 +57,14 @@
|
||||
*/
|
||||
|
||||
#include <setjmp.h>
|
||||
#include <signal.h>
|
||||
|
||||
struct jmploc {
|
||||
jmp_buf loc;
|
||||
};
|
||||
|
||||
extern struct jmploc *handler;
|
||||
extern int exception;
|
||||
extern volatile sig_atomic_t exception;
|
||||
|
||||
/* exceptions */
|
||||
#define EXINT 0 /* SIGINT received */
|
||||
@@ -79,8 +80,8 @@ extern int exception;
|
||||
* more fun than worrying about efficiency and portability. :-))
|
||||
*/
|
||||
|
||||
extern volatile int suppressint;
|
||||
extern volatile int intpending;
|
||||
extern volatile sig_atomic_t suppressint;
|
||||
extern volatile sig_atomic_t intpending;
|
||||
extern char *commandname; /* name of command--printed on error */
|
||||
|
||||
#define INTOFF suppressint++
|
||||
|
||||
+9
-4
@@ -32,12 +32,14 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: eval.c,v 1.7.2.2 1997/05/13 19:18:56 steve Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)eval.c 8.9 (Berkeley) 6/8/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)eval.c 8.9 (Berkeley) 6/8/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: eval.c,v 1.15 1998/05/18 06:43:34 charnier Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <signal.h>
|
||||
@@ -764,7 +766,10 @@ evalcommand(cmd, flags, backcmd)
|
||||
for (sp = varlist.list ; sp ; sp = sp->next)
|
||||
mklocal(sp->text);
|
||||
funcnest++;
|
||||
evaltree(cmdentry.u.func, 0);
|
||||
if (flags & EV_TESTED)
|
||||
evaltree(cmdentry.u.func, EV_TESTED);
|
||||
else
|
||||
evaltree(cmdentry.u.func, 0);
|
||||
funcnest--;
|
||||
INTOFF;
|
||||
poplocalvars();
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)eval.h 8.2 (Berkeley) 5/4/95
|
||||
* $Id: eval.h,v 1.3 1996/09/01 10:19:59 peter Exp $
|
||||
* $Id: eval.h,v 1.6 1997/02/22 13:58:24 peter Exp $
|
||||
*/
|
||||
|
||||
extern char *commandname; /* currently executing command */
|
||||
|
||||
+5
-3
@@ -32,12 +32,14 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: exec.c,v 1.6 1996/09/03 14:15:49 peter Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)exec.c 8.4 (Berkeley) 6/8/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)exec.c 8.4 (Berkeley) 6/8/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: exec.c,v 1.12 1998/05/18 06:43:37 charnier Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)exec.h 8.3 (Berkeley) 6/8/95
|
||||
* $Id: exec.h,v 1.3 1996/09/01 10:20:05 peter Exp $
|
||||
* $Id: exec.h,v 1.7 1997/04/28 03:08:38 steve Exp $
|
||||
*/
|
||||
|
||||
/* values of cmdtype */
|
||||
|
||||
+161
-43
@@ -32,12 +32,14 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: expand.c,v 1.11.2.4 1997/06/19 17:57:30 jkh Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)expand.c 8.5 (Berkeley) 5/15/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)expand.c 8.5 (Berkeley) 5/15/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: expand.c,v 1.24 1998/09/13 19:24:57 tegge Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <sys/types.h>
|
||||
@@ -49,6 +51,7 @@ static char const sccsid[] = "@(#)expand.c 8.5 (Berkeley) 5/15/95";
|
||||
#include <pwd.h>
|
||||
#include <stdlib.h>
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
|
||||
/*
|
||||
* Routines to expand arguments to commands. We have to deal with
|
||||
@@ -100,6 +103,7 @@ STATIC char *evalvar __P((char *, int));
|
||||
STATIC int varisset __P((char *, int));
|
||||
STATIC void varvalue __P((char *, int, int));
|
||||
STATIC void recordregion __P((int, int, int));
|
||||
STATIC void removerecordregions __P((int));
|
||||
STATIC void ifsbreakup __P((char *, struct arglist *));
|
||||
STATIC void expandmeta __P((struct strlist *, int));
|
||||
STATIC void expmeta __P((char *, char *));
|
||||
@@ -224,6 +228,13 @@ argstr(p, flag)
|
||||
case '\0':
|
||||
case CTLENDVAR: /* ??? */
|
||||
goto breakloop;
|
||||
case CTLQUOTEMARK:
|
||||
/* "$@" syntax adherence hack */
|
||||
if (p[0] == CTLVAR && p[2] == '@' && p[3] == '=')
|
||||
break;
|
||||
if ((flag & EXP_FULL) != 0)
|
||||
STPUTC(c, expdest);
|
||||
break;
|
||||
case CTLESC:
|
||||
if (quotes)
|
||||
STPUTC(c, expdest);
|
||||
@@ -279,6 +290,8 @@ exptilde(p, flag)
|
||||
switch(c) {
|
||||
case CTLESC:
|
||||
return (startp);
|
||||
case CTLQUOTEMARK:
|
||||
return (startp);
|
||||
case ':':
|
||||
if (flag & EXP_VARTILDE)
|
||||
goto done;
|
||||
@@ -313,6 +326,46 @@ lose:
|
||||
}
|
||||
|
||||
|
||||
STATIC void
|
||||
removerecordregions(endoff)
|
||||
int endoff;
|
||||
{
|
||||
if (ifslastp == NULL)
|
||||
return;
|
||||
|
||||
if (ifsfirst.endoff > endoff) {
|
||||
while (ifsfirst.next != NULL) {
|
||||
struct ifsregion *ifsp;
|
||||
INTOFF;
|
||||
ifsp = ifsfirst.next->next;
|
||||
ckfree(ifsfirst.next);
|
||||
ifsfirst.next = ifsp;
|
||||
INTON;
|
||||
}
|
||||
if (ifsfirst.begoff > endoff)
|
||||
ifslastp = NULL;
|
||||
else {
|
||||
ifslastp = &ifsfirst;
|
||||
ifsfirst.endoff = endoff;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
ifslastp = &ifsfirst;
|
||||
while (ifslastp->next && ifslastp->next->begoff < endoff)
|
||||
ifslastp=ifslastp->next;
|
||||
while (ifslastp->next != NULL) {
|
||||
struct ifsregion *ifsp;
|
||||
INTOFF;
|
||||
ifsp = ifslastp->next->next;
|
||||
ckfree(ifslastp->next);
|
||||
ifslastp->next = ifsp;
|
||||
INTON;
|
||||
}
|
||||
if (ifslastp->endoff > endoff)
|
||||
ifslastp->endoff = endoff;
|
||||
}
|
||||
|
||||
/*
|
||||
* Expand arithmetic expression. Backup to start of expression,
|
||||
* evaluate, place result in (backed up) result, adjust string position.
|
||||
@@ -323,17 +376,10 @@ expari(flag)
|
||||
{
|
||||
char *p, *start;
|
||||
int result;
|
||||
int begoff;
|
||||
int quotes = flag & (EXP_FULL | EXP_CASE);
|
||||
int quoted;
|
||||
|
||||
while (ifsfirst.next != NULL) {
|
||||
struct ifsregion *ifsp;
|
||||
INTOFF;
|
||||
ifsp = ifsfirst.next->next;
|
||||
ckfree(ifsfirst.next);
|
||||
ifsfirst.next = ifsp;
|
||||
INTON;
|
||||
}
|
||||
ifslastp = NULL;
|
||||
|
||||
/*
|
||||
* This routine is slightly over-compilcated for
|
||||
@@ -360,12 +406,21 @@ expari(flag)
|
||||
for (p = start; *p != CTLARI; p++)
|
||||
if (*p == CTLESC)
|
||||
p++;
|
||||
|
||||
if (p[1] == '"')
|
||||
quoted=1;
|
||||
else
|
||||
quoted=0;
|
||||
begoff = p - start;
|
||||
removerecordregions(begoff);
|
||||
if (quotes)
|
||||
rmescapes(p+1);
|
||||
result = arith(p+1);
|
||||
rmescapes(p+2);
|
||||
result = arith(p+2);
|
||||
fmtstr(p, 12, "%d", result);
|
||||
while (*p++)
|
||||
;
|
||||
if (quoted == 0)
|
||||
recordregion(begoff, p - 1 - start, 0);
|
||||
result = expdest - p + 1;
|
||||
STADJUST(-result, expdest);
|
||||
}
|
||||
@@ -668,19 +723,24 @@ record:
|
||||
STPUTC('\0', expdest);
|
||||
pat = expdest;
|
||||
if (subevalvar(p, NULL, expdest - stackblock(), subtype,
|
||||
startloc, varflags))
|
||||
goto record;
|
||||
else {
|
||||
startloc, varflags) == 0) {
|
||||
int amount = (expdest - pat) + 1;
|
||||
STADJUST(-amount, expdest);
|
||||
}
|
||||
break;
|
||||
/* Remove any recorded regions beyond start of variable */
|
||||
removerecordregions(startloc);
|
||||
goto record;
|
||||
|
||||
case VSASSIGN:
|
||||
case VSQUESTION:
|
||||
if (!set) {
|
||||
if (subevalvar(p, var, 0, subtype, startloc, varflags)) {
|
||||
varflags &= ~VSNUL;
|
||||
/*
|
||||
* Remove any recorded regions beyond
|
||||
* start of variable
|
||||
*/
|
||||
removerecordregions(startloc);
|
||||
goto again;
|
||||
}
|
||||
break;
|
||||
@@ -814,17 +874,23 @@ numvar:
|
||||
}
|
||||
break;
|
||||
case '@':
|
||||
if (allow_split) {
|
||||
sep = '\0';
|
||||
goto allargs;
|
||||
if (allow_split && quoted) {
|
||||
for (ap = shellparam.p ; (p = *ap++) != NULL ; ) {
|
||||
STRTODEST(p);
|
||||
if (*ap)
|
||||
STPUTC('\0', expdest);
|
||||
}
|
||||
break;
|
||||
}
|
||||
/* fall through */
|
||||
case '*':
|
||||
sep = ' ';
|
||||
allargs:
|
||||
if (ifsset() != 0)
|
||||
sep = ifsval()[0];
|
||||
else
|
||||
sep = ' ';
|
||||
for (ap = shellparam.p ; (p = *ap++) != NULL ; ) {
|
||||
STRTODEST(p);
|
||||
if (*ap)
|
||||
if (*ap && sep)
|
||||
STPUTC(sep, expdest);
|
||||
}
|
||||
break;
|
||||
@@ -891,45 +957,69 @@ ifsbreakup(string, arglist)
|
||||
char *q;
|
||||
char *ifs;
|
||||
int ifsspc;
|
||||
int nulonly;
|
||||
|
||||
|
||||
start = string;
|
||||
ifsspc = 0;
|
||||
nulonly = 0;
|
||||
if (ifslastp != NULL) {
|
||||
ifsp = &ifsfirst;
|
||||
do {
|
||||
p = string + ifsp->begoff;
|
||||
ifs = ifsp->nulonly? nullstr : ifsval();
|
||||
ifsspc = strchr(ifs, ' ') != NULL;
|
||||
nulonly = ifsp->nulonly;
|
||||
ifs = nulonly ? nullstr :
|
||||
( ifsset() ? ifsval() : " \t\n" );
|
||||
ifsspc = 0;
|
||||
while (p < string + ifsp->endoff) {
|
||||
q = p;
|
||||
if (*p == CTLESC)
|
||||
p++;
|
||||
if (strchr(ifs, *p++)) {
|
||||
if (q > start || !ifsspc) {
|
||||
*q = '\0';
|
||||
sp = (struct strlist *)stalloc(sizeof *sp);
|
||||
sp->text = start;
|
||||
*arglist->lastp = sp;
|
||||
arglist->lastp = &sp->next;
|
||||
if (strchr(ifs, *p)) {
|
||||
if (!nulonly)
|
||||
ifsspc = (strchr(" \t\n", *p) != NULL);
|
||||
/* Ignore IFS whitespace at start */
|
||||
if (q == start && ifsspc) {
|
||||
p++;
|
||||
start = p;
|
||||
continue;
|
||||
}
|
||||
if (ifsspc) {
|
||||
*q = '\0';
|
||||
sp = (struct strlist *)stalloc(sizeof *sp);
|
||||
sp->text = start;
|
||||
*arglist->lastp = sp;
|
||||
arglist->lastp = &sp->next;
|
||||
p++;
|
||||
if (!nulonly) {
|
||||
for (;;) {
|
||||
if (p >= string + ifsp->endoff)
|
||||
if (p >= string + ifsp->endoff) {
|
||||
break;
|
||||
}
|
||||
q = p;
|
||||
if (*p == CTLESC)
|
||||
p++;
|
||||
if (strchr(ifs, *p++) == NULL) {
|
||||
if (strchr(ifs, *p) == NULL ) {
|
||||
p = q;
|
||||
break;
|
||||
}
|
||||
} else if (strchr(" \t\n",*p) == NULL) {
|
||||
if (ifsspc) {
|
||||
p++;
|
||||
ifsspc = 0;
|
||||
} else {
|
||||
p = q;
|
||||
break;
|
||||
}
|
||||
} else
|
||||
p++;
|
||||
}
|
||||
}
|
||||
start = p;
|
||||
}
|
||||
} else
|
||||
p++;
|
||||
}
|
||||
} while ((ifsp = ifsp->next) != NULL);
|
||||
if (*start || (!ifsspc && start > string)) {
|
||||
if (*start || (!ifsspc && start > string &&
|
||||
(nulonly || 1))) {
|
||||
sp = (struct strlist *)stalloc(sizeof *sp);
|
||||
sp->text = start;
|
||||
*arglist->lastp = sp;
|
||||
@@ -1035,6 +1125,8 @@ expmeta(enddir, name)
|
||||
if (*q == '!' || *q == '^')
|
||||
q++;
|
||||
for (;;) {
|
||||
while (*q == CTLQUOTEMARK)
|
||||
q++;
|
||||
if (*q == CTLESC)
|
||||
q++;
|
||||
if (*q == '/' || *q == '\0')
|
||||
@@ -1048,6 +1140,8 @@ expmeta(enddir, name)
|
||||
metaflag = 1;
|
||||
} else if (*p == '\0')
|
||||
break;
|
||||
else if (*p == CTLQUOTEMARK)
|
||||
continue;
|
||||
else if (*p == CTLESC)
|
||||
p++;
|
||||
if (*p == '/') {
|
||||
@@ -1060,6 +1154,8 @@ expmeta(enddir, name)
|
||||
if (enddir != expdir)
|
||||
metaflag++;
|
||||
for (p = name ; ; p++) {
|
||||
if (*p == CTLQUOTEMARK)
|
||||
continue;
|
||||
if (*p == CTLESC)
|
||||
p++;
|
||||
*enddir++ = *p;
|
||||
@@ -1074,6 +1170,8 @@ expmeta(enddir, name)
|
||||
if (start != name) {
|
||||
p = name;
|
||||
while (p < start) {
|
||||
while (*p == CTLQUOTEMARK)
|
||||
p++;
|
||||
if (*p == CTLESC)
|
||||
p++;
|
||||
*enddir++ = *p++;
|
||||
@@ -1098,7 +1196,12 @@ expmeta(enddir, name)
|
||||
*endname++ = '\0';
|
||||
}
|
||||
matchdot = 0;
|
||||
if (start[0] == '.' || (start[0] == CTLESC && start[1] == '.'))
|
||||
p = start;
|
||||
while (*p == CTLQUOTEMARK)
|
||||
p++;
|
||||
if (*p == CTLESC)
|
||||
p++;
|
||||
if (*p == '.')
|
||||
matchdot++;
|
||||
while (! int_pending() && (dp = readdir(dirp)) != NULL) {
|
||||
if (dp->d_name[0] == '.' && ! matchdot)
|
||||
@@ -1243,13 +1346,18 @@ pmatch(pattern, string)
|
||||
if (*q++ != *p++)
|
||||
return 0;
|
||||
break;
|
||||
case CTLQUOTEMARK:
|
||||
continue;
|
||||
case '?':
|
||||
if (*q++ == '\0')
|
||||
return 0;
|
||||
break;
|
||||
case '*':
|
||||
c = *p;
|
||||
if (c != CTLESC && c != '?' && c != '*' && c != '[') {
|
||||
while (c == CTLQUOTEMARK || c == '*')
|
||||
c = *++p;
|
||||
if (c != CTLESC && c != CTLQUOTEMARK &&
|
||||
c != '?' && c != '*' && c != '[') {
|
||||
while (*q != c) {
|
||||
if (*q == '\0')
|
||||
return 0;
|
||||
@@ -1270,6 +1378,8 @@ pmatch(pattern, string)
|
||||
if (*endp == '!' || *endp == '^')
|
||||
endp++;
|
||||
for (;;) {
|
||||
while (*endp == CTLQUOTEMARK)
|
||||
endp++;
|
||||
if (*endp == '\0')
|
||||
goto dft; /* no matching ] */
|
||||
if (*endp == CTLESC)
|
||||
@@ -1288,10 +1398,14 @@ pmatch(pattern, string)
|
||||
return 0;
|
||||
c = *p++;
|
||||
do {
|
||||
if (c == CTLQUOTEMARK)
|
||||
continue;
|
||||
if (c == CTLESC)
|
||||
c = *p++;
|
||||
if (*p == '-' && p[1] != ']') {
|
||||
p++;
|
||||
while (*p == CTLQUOTEMARK)
|
||||
p++;
|
||||
if (*p == CTLESC)
|
||||
p++;
|
||||
if ( collate_range_cmp(chr, c) >= 0
|
||||
@@ -1329,16 +1443,20 @@ breakloop:
|
||||
void
|
||||
rmescapes(str)
|
||||
char *str;
|
||||
{
|
||||
{
|
||||
char *p, *q;
|
||||
|
||||
p = str;
|
||||
while (*p != CTLESC) {
|
||||
while (*p != CTLESC && *p != CTLQUOTEMARK) {
|
||||
if (*p++ == '\0')
|
||||
return;
|
||||
}
|
||||
q = p;
|
||||
while (*p) {
|
||||
if (*p == CTLQUOTEMARK) {
|
||||
p++;
|
||||
continue;
|
||||
}
|
||||
if (*p == CTLESC)
|
||||
p++;
|
||||
*q++ = *p++;
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)expand.h 8.2 (Berkeley) 5/4/95
|
||||
* $Id: expand.h,v 1.2 1994/09/24 02:57:35 davidg Exp $
|
||||
* $Id: expand.h,v 1.7 1998/09/13 19:24:57 tegge Exp $
|
||||
*/
|
||||
|
||||
struct strlist {
|
||||
|
||||
+5
-3
@@ -32,12 +32,14 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: histedit.c,v 1.6 1996/09/03 13:35:09 peter Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)histedit.c 8.2 (Berkeley) 5/4/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)histedit.c 8.2 (Berkeley) 5/4/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: histedit.c,v 1.12 1998/05/18 06:43:42 charnier Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <sys/param.h>
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)init.h 8.2 (Berkeley) 5/4/95
|
||||
* $Id: init.h,v 1.2 1994/09/24 02:57:37 davidg Exp $
|
||||
* $Id: init.h,v 1.5 1997/02/22 13:58:27 peter Exp $
|
||||
*/
|
||||
|
||||
void init __P((void));
|
||||
|
||||
+5
-3
@@ -32,12 +32,14 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: input.c,v 1.6 1996/09/03 14:15:50 peter Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)input.c 8.3 (Berkeley) 6/9/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)input.c 8.3 (Berkeley) 6/9/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: input.c,v 1.11 1998/05/18 06:43:45 charnier Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <stdio.h> /* defines BUFSIZ */
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)input.h 8.2 (Berkeley) 5/4/95
|
||||
* $Id: input.h,v 1.3 1996/09/01 10:20:21 peter Exp $
|
||||
* $Id: input.h,v 1.6 1997/02/22 13:58:28 peter Exp $
|
||||
*/
|
||||
|
||||
/* PEOF (the end of file marker) is defined in syntax.h */
|
||||
|
||||
+39
-14
@@ -32,12 +32,14 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: jobs.c,v 1.8.2.3 1997/08/25 09:10:00 jkh Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)jobs.c 8.5 (Berkeley) 5/4/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)jobs.c 8.5 (Berkeley) 5/4/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: jobs.c,v 1.23 1998/09/08 13:16:52 cracauer Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <fcntl.h>
|
||||
@@ -85,6 +87,9 @@ MKINIT pid_t backgndpid = -1; /* pid of last background process */
|
||||
int initialpgrp; /* pgrp of shell on invocation */
|
||||
int curjob; /* current job */
|
||||
#endif
|
||||
int in_waitcmd = 0; /* are we in waitcmd()? */
|
||||
int in_dowait = 0; /* are we in dowait()? */
|
||||
volatile sig_atomic_t breakwaitcmd = 0; /* should wait be terminated? */
|
||||
|
||||
#if JOBS
|
||||
STATIC void restartjob __P((struct job *));
|
||||
@@ -383,7 +388,14 @@ waitcmd(argc, argv)
|
||||
} else {
|
||||
job = NULL;
|
||||
}
|
||||
for (;;) { /* loop until process terminated or stopped */
|
||||
|
||||
/*
|
||||
* Loop until a process is terminated or stopped, or a SIGINT is
|
||||
* received.
|
||||
*/
|
||||
|
||||
in_waitcmd++;
|
||||
do {
|
||||
if (job != NULL) {
|
||||
if (job->state) {
|
||||
status = job->ps[job->nprocs - 1].status;
|
||||
@@ -397,19 +409,23 @@ waitcmd(argc, argv)
|
||||
retval = WTERMSIG(status) + 128;
|
||||
if (! iflag)
|
||||
freejob(job);
|
||||
in_waitcmd--;
|
||||
return retval;
|
||||
}
|
||||
} else {
|
||||
for (jp = jobtab ; ; jp++) {
|
||||
if (jp >= jobtab + njobs) { /* no running procs */
|
||||
in_waitcmd--;
|
||||
return 0;
|
||||
}
|
||||
if (jp->used && jp->state == 0)
|
||||
break;
|
||||
}
|
||||
}
|
||||
dowait(1, (struct job *)NULL);
|
||||
}
|
||||
} while (dowait(1, (struct job *)NULL) != -1);
|
||||
in_waitcmd--;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -697,9 +713,9 @@ waitforjob(jp)
|
||||
|
||||
INTOFF;
|
||||
TRACE(("waitforjob(%%%d) called\n", jp - jobtab + 1));
|
||||
while (jp->state == 0) {
|
||||
dowait(1, jp);
|
||||
}
|
||||
while (jp->state == 0)
|
||||
if (dowait(1, jp) == -1)
|
||||
dotrap();
|
||||
#if JOBS
|
||||
if (jp->jobctl) {
|
||||
#ifdef OLD_TTY_DRIVER
|
||||
@@ -725,9 +741,12 @@ waitforjob(jp)
|
||||
st = WTERMSIG(status) + 128;
|
||||
if (! JOBS || jp->state == JOBDONE)
|
||||
freejob(jp);
|
||||
CLEAR_PENDING_INT;
|
||||
if (WIFSIGNALED(status) && WTERMSIG(status) == SIGINT)
|
||||
kill(getpid(), SIGINT);
|
||||
if (int_pending()) {
|
||||
if (WIFSIGNALED(status) && WTERMSIG(status) == SIGINT)
|
||||
kill(getpid(), SIGINT);
|
||||
else
|
||||
CLEAR_PENDING_INT;
|
||||
}
|
||||
INTON;
|
||||
return st;
|
||||
}
|
||||
@@ -753,11 +772,17 @@ dowait(block, job)
|
||||
int core;
|
||||
int sig;
|
||||
|
||||
in_dowait++;
|
||||
TRACE(("dowait(%d) called\n", block));
|
||||
do {
|
||||
pid = waitproc(block, &status);
|
||||
TRACE(("wait returns %d, status=%d\n", pid, status));
|
||||
} while (pid == -1 && errno == EINTR);
|
||||
} while (pid == -1 && errno == EINTR && breakwaitcmd == 0);
|
||||
in_dowait--;
|
||||
if (breakwaitcmd != 0) {
|
||||
breakwaitcmd = 0;
|
||||
return -1;
|
||||
}
|
||||
if (pid <= 0)
|
||||
return pid;
|
||||
INTOFF;
|
||||
@@ -865,7 +890,7 @@ dowait(block, job)
|
||||
*/
|
||||
|
||||
#ifdef SYSV
|
||||
STATIC int gotsigchild;
|
||||
STATIC sig_atomic_t gotsigchild;
|
||||
|
||||
STATIC int onsigchild() {
|
||||
gotsigchild = 1;
|
||||
|
||||
+5
-1
@@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)jobs.h 8.2 (Berkeley) 5/4/95
|
||||
* $Id: jobs.h,v 1.3 1996/09/01 10:20:27 peter Exp $
|
||||
* $Id: jobs.h,v 1.10 1998/09/10 22:09:11 cracauer Exp $
|
||||
*/
|
||||
|
||||
/* Mode argument to forkshell. Don't change FORK_FG or FORK_BG. */
|
||||
@@ -42,6 +42,7 @@
|
||||
#define FORK_BG 1
|
||||
#define FORK_NOJOB 2
|
||||
|
||||
#include <signal.h> /* for sig_atomic_t */
|
||||
|
||||
/*
|
||||
* A job structure contains information about a job. A job is either a
|
||||
@@ -77,6 +78,9 @@ struct job {
|
||||
|
||||
extern pid_t backgndpid; /* pid of last background process */
|
||||
extern int job_warning; /* user was warned about stopped jobs */
|
||||
extern int in_waitcmd; /* are we in waitcmd()? */
|
||||
extern int in_dowait; /* are we in dowait()? */
|
||||
extern volatile sig_atomic_t breakwaitcmd; /* break wait to process traps? */
|
||||
|
||||
void setjobctl __P((int));
|
||||
int fgcmd __P((int, char **));
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)machdep.h 8.2 (Berkeley) 5/4/95
|
||||
* $Id: machdep.h,v 1.2 1994/09/24 02:57:43 davidg Exp $
|
||||
* $Id: machdep.h,v 1.5 1997/02/22 13:58:30 peter Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
+5
-3
@@ -32,12 +32,14 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: mail.c,v 1.3 1996/09/01 10:20:35 peter Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)mail.c 8.2 (Berkeley) 5/4/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)mail.c 8.2 (Berkeley) 5/4/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: mail.c,v 1.8 1998/05/18 06:43:50 charnier Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)mail.h 8.2 (Berkeley) 5/4/95
|
||||
* $Id: mail.h,v 1.2 1994/09/24 02:57:45 davidg Exp $
|
||||
* $Id: mail.h,v 1.5 1997/02/22 13:58:33 peter Exp $
|
||||
*/
|
||||
|
||||
void chkmail __P((int));
|
||||
+5
-3
@@ -32,8 +32,6 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: main.c,v 1.9.2.1 1997/08/03 18:44:27 steve Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -43,7 +41,11 @@ static char const copyright[] =
|
||||
#endif /* not lint */
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)main.c 8.6 (Berkeley) 5/28/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)main.c 8.6 (Berkeley) 5/28/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: main.c,v 1.15 1998/05/18 06:43:52 charnier Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)main.h 8.2 (Berkeley) 5/4/95
|
||||
* $Id: main.h,v 1.2 1994/09/24 02:57:49 davidg Exp $
|
||||
* $Id: main.h,v 1.5 1997/02/22 13:58:34 peter Exp $
|
||||
*/
|
||||
|
||||
extern int rootpid; /* pid of main shell */
|
||||
|
||||
+6
-3
@@ -32,12 +32,14 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: memalloc.c,v 1.4 1996/09/03 14:15:53 peter Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)memalloc.c 8.3 (Berkeley) 5/4/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)memalloc.c 8.3 (Berkeley) 5/4/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: memalloc.c,v 1.12 1998/09/13 19:24:57 tegge Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
#include "shell.h"
|
||||
@@ -46,6 +48,7 @@ static char const sccsid[] = "@(#)memalloc.c 8.3 (Berkeley) 5/4/95";
|
||||
#include "error.h"
|
||||
#include "machdep.h"
|
||||
#include "mystring.h"
|
||||
#include "expand.h"
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)memalloc.h 8.2 (Berkeley) 5/4/95
|
||||
* $Id: memalloc.h,v 1.2 1994/09/24 02:57:51 davidg Exp $
|
||||
* $Id: memalloc.h,v 1.5 1997/02/22 13:58:35 peter Exp $
|
||||
*/
|
||||
|
||||
struct stackmark {
|
||||
|
||||
+6
-3
@@ -32,12 +32,14 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: miscbltin.c,v 1.8.2.1 1997/08/25 09:10:10 jkh Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)miscbltin.c 8.4 (Berkeley) 5/4/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)miscbltin.c 8.4 (Berkeley) 5/4/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: miscbltin.c,v 1.17 1998/08/25 09:33:34 cracauer Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
@@ -52,6 +54,7 @@ static char const sccsid[] = "@(#)miscbltin.c 8.4 (Berkeley) 5/4/95";
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <termios.h>
|
||||
|
||||
#include "shell.h"
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
# @(#)mkbuiltins 8.2 (Berkeley) 5/4/95
|
||||
# $Id: mkbuiltins,v 1.4 1996/06/24 04:22:22 jkh Exp $
|
||||
# $Id: mkbuiltins,v 1.7 1997/02/22 13:58:36 peter Exp $
|
||||
|
||||
temp=/tmp/ka$$
|
||||
havejobs=0
|
||||
|
||||
+5
-3
@@ -32,8 +32,6 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: mkinit.c,v 1.6 1996/09/01 10:20:50 peter Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -43,7 +41,11 @@ static char const copyright[] =
|
||||
#endif /* not lint */
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)mkinit.c 8.2 (Berkeley) 5/4/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)mkinit.c 8.2 (Berkeley) 5/4/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: mkinit.c,v 1.12 1998/05/18 06:44:00 charnier Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
|
||||
+5
-3
@@ -32,8 +32,6 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: mknodes.c,v 1.4 1996/09/03 13:35:11 peter Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -43,7 +41,11 @@ static char const copyright[] =
|
||||
#endif /* not lint */
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)mknodes.c 8.2 (Berkeley) 5/4/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)mknodes.c 8.2 (Berkeley) 5/4/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: mknodes.c,v 1.9 1998/05/18 06:44:01 charnier Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
|
||||
+6
-3
@@ -32,8 +32,6 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: mksyntax.c,v 1.6 1996/09/01 10:20:56 peter Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
@@ -43,7 +41,11 @@ static char const copyright[] =
|
||||
#endif /* not lint */
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)mksyntax.c 8.2 (Berkeley) 5/4/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)mksyntax.c 8.2 (Berkeley) 5/4/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: mksyntax.c,v 1.12 1998/09/06 21:13:09 tegge Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
@@ -291,6 +293,7 @@ init()
|
||||
syntax[base + CTLBACKQ + CTLQUOTE] = "CCTL";
|
||||
syntax[base + CTLARI] = "CCTL";
|
||||
syntax[base + CTLENDARI] = "CCTL";
|
||||
syntax[base + CTLQUOTEMARK] = "CCTL";
|
||||
}
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
# @(#)mktokens 8.1 (Berkeley) 5/31/93
|
||||
# $Id: mktokens,v 1.2 1994/09/24 02:57:58 davidg Exp $
|
||||
# $Id: mktokens,v 1.5 1997/02/22 13:58:37 peter Exp $
|
||||
|
||||
# The following is a list of tokens. The second column is nonzero if the
|
||||
# token marks the end of a list. The third column is the name to print in
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)myhistedit.h 8.2 (Berkeley) 5/4/95
|
||||
* $Id: myhistedit.h,v 1.3 1996/09/01 10:21:00 peter Exp $
|
||||
* $Id: myhistedit.h,v 1.6 1997/02/22 13:58:38 peter Exp $
|
||||
*/
|
||||
|
||||
#include <histedit.h>
|
||||
|
||||
+5
-3
@@ -32,12 +32,14 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: mystring.c,v 1.4 1996/09/03 14:15:55 peter Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)mystring.c 8.2 (Berkeley) 5/4/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)mystring.c 8.2 (Berkeley) 5/4/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: mystring.c,v 1.9 1998/05/18 06:44:06 charnier Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)mystring.h 8.2 (Berkeley) 5/4/95
|
||||
* $Id: mystring.h,v 1.2 1994/09/24 02:58:00 davidg Exp $
|
||||
* $Id: mystring.h,v 1.5 1997/02/22 13:58:39 peter Exp $
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)nodes.c.pat 8.2 (Berkeley) 5/4/95
|
||||
* $Id: nodes.c.pat,v 1.3 1996/09/01 10:21:08 peter Exp $
|
||||
* $Id: nodes.c.pat,v 1.6 1997/04/28 03:14:04 steve Exp $
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@
|
||||
# SUCH DAMAGE.
|
||||
#
|
||||
# @(#)nodetypes 8.2 (Berkeley) 5/4/95
|
||||
# $Id: nodetypes,v 1.2 1994/09/24 02:58:03 davidg Exp $
|
||||
# $Id: nodetypes,v 1.5 1997/02/22 13:58:39 peter Exp $
|
||||
|
||||
# This file describes the nodes used in parse trees. Unindented lines
|
||||
# contain a node type followed by a structure tag. Subsequent indented
|
||||
|
||||
+5
-3
@@ -32,12 +32,14 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: options.c,v 1.8.2.1 1996/12/21 21:10:25 joerg Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)options.c 8.2 (Berkeley) 5/4/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)options.c 8.2 (Berkeley) 5/4/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: options.c,v 1.14 1998/05/18 06:44:08 charnier Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <signal.h>
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)options.h 8.2 (Berkeley) 5/4/95
|
||||
* $Id: options.h,v 1.4 1996/10/29 03:12:49 steve Exp $
|
||||
* $Id: options.h,v 1.7 1997/02/22 13:58:40 peter Exp $
|
||||
*/
|
||||
|
||||
struct shparam {
|
||||
|
||||
+5
-3
@@ -32,12 +32,14 @@
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: output.c,v 1.4 1996/09/03 14:15:56 peter Exp $
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char const sccsid[] = "@(#)output.c 8.2 (Berkeley) 5/4/95";
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)output.c 8.2 (Berkeley) 5/4/95";
|
||||
#endif
|
||||
static const char rcsid[] =
|
||||
"$Id: output.c,v 1.9 1998/05/18 06:44:10 charnier Exp $";
|
||||
#endif /* not lint */
|
||||
|
||||
/*
|
||||
|
||||
Loaded 100 of 1908 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user