mirror of
https://git.savannah.gnu.org/git/coreutils.git
synced 2025-09-10 07:59:52 +02:00
Compare commits
2598 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a5761a4adb | ||
|
|
017c2208e2 | ||
|
|
fb918bedbf | ||
|
|
702a18d659 | ||
|
|
0bd10f3b8b | ||
|
|
d0d7266488 | ||
|
|
1f4be66913 | ||
|
|
931e5aef07 | ||
|
|
7a45935962 | ||
|
|
c1a20dc27b | ||
|
|
55c73b9516 | ||
|
|
f540cf3789 | ||
|
|
e3d5348851 | ||
|
|
ae48cdae26 | ||
|
|
6a9dc978f9 | ||
|
|
c5549236da | ||
|
|
215f635780 | ||
|
|
314c0eaa97 | ||
|
|
4adcccbf48 | ||
|
|
c19dbea39c | ||
|
|
4a6814ada7 | ||
|
|
f91c0597b1 | ||
|
|
8ddf1353cc | ||
|
|
b382c38eb1 | ||
|
|
42a19757ae | ||
|
|
0c0586bb2e | ||
|
|
dd356beb0a | ||
|
|
ba13d22e09 | ||
|
|
1512315121 | ||
|
|
ce221c2708 | ||
|
|
6ee4cfca07 | ||
|
|
c42deaae1a | ||
|
|
cc9e07b32f | ||
|
|
1ea1325068 | ||
|
|
43231af577 | ||
|
|
be9d4e80a0 | ||
|
|
98abcaa372 | ||
|
|
8adddf55c0 | ||
|
|
9df8af3675 | ||
|
|
7e1ff0b4f8 | ||
|
|
ca9b1df44b | ||
|
|
c791a382f8 | ||
|
|
d27ac3d82a | ||
|
|
9d9dbdb922 | ||
|
|
0863bbf447 | ||
|
|
e16b6e395b | ||
|
|
c1d185f01c | ||
|
|
d51cd50606 | ||
|
|
559a6d0f80 | ||
|
|
dcb8cc65fa | ||
|
|
92a2cc65cb | ||
|
|
b7412e8bc0 | ||
|
|
9e3fc21d11 | ||
|
|
a3b479c91f | ||
|
|
b928574bf6 | ||
|
|
6daabb7578 | ||
|
|
d7e2b7fa84 | ||
|
|
9265193dd2 | ||
|
|
a20222cd22 | ||
|
|
d7098ccf98 | ||
|
|
e5a2ac0f88 | ||
|
|
885b7147cc | ||
|
|
9d78678c22 | ||
|
|
30978dfadf | ||
|
|
d83e894316 | ||
|
|
ccd5e413fb | ||
|
|
500ad9b9b1 | ||
|
|
fd5bc32835 | ||
|
|
6fee4452d3 | ||
|
|
16b4b4f861 | ||
|
|
1060257446 | ||
|
|
475574011d | ||
|
|
876ff10b0c | ||
|
|
cd6ee8563b | ||
|
|
ddb038c033 | ||
|
|
8c10d25fd0 | ||
|
|
7c8156ca73 | ||
|
|
0327689de0 | ||
|
|
d50e1a86b7 | ||
|
|
2c6d700418 | ||
|
|
4b0eb25d6d | ||
|
|
9cc87603b9 | ||
|
|
d4add26938 | ||
|
|
4fcf036cb3 | ||
|
|
ca2302ece5 | ||
|
|
59e6528c22 | ||
|
|
b79c9e46a9 | ||
|
|
0b797ed056 | ||
|
|
619a52f976 | ||
|
|
b5a4f7671a | ||
|
|
d711a9e3be | ||
|
|
029b8ea75d | ||
|
|
34ba862f93 | ||
|
|
6b7e8621e2 | ||
|
|
cc0a6e14fc | ||
|
|
8683024a34 | ||
|
|
d8e1894335 | ||
|
|
68527271a5 | ||
|
|
0f88878c11 | ||
|
|
fab46cb466 | ||
|
|
003ab9a58d | ||
|
|
709d79631a | ||
|
|
7b355ee476 | ||
|
|
3be0542f6d | ||
|
|
17e6ca3e89 | ||
|
|
575cb67bb2 | ||
|
|
457ae040b7 | ||
|
|
ddc4c1a8a9 | ||
|
|
ef2c79217f | ||
|
|
c5c97ee23a | ||
|
|
ae1f13cd3c | ||
|
|
d5d3e4a862 | ||
|
|
7080cab46c | ||
|
|
036ab5abda | ||
|
|
17170ddcb3 | ||
|
|
9fd07809b6 | ||
|
|
350063fa65 | ||
|
|
9a8d898e60 | ||
|
|
f0693e040c | ||
|
|
899a855343 | ||
|
|
f026fc4b46 | ||
|
|
eaa5777cc5 | ||
|
|
80b4ef8025 | ||
|
|
f02d6eea14 | ||
|
|
62718bc18d | ||
|
|
0e71fdcb84 | ||
|
|
78dfee94cb | ||
|
|
b8da58cdac | ||
|
|
8837ed851e | ||
|
|
32af38ad7f | ||
|
|
eb025632fc | ||
|
|
96a4006030 | ||
|
|
498e1e4f34 | ||
|
|
0ba46f3211 | ||
|
|
1c6add23a8 | ||
|
|
83ce802e59 | ||
|
|
2e828f4304 | ||
|
|
fd275f739b | ||
|
|
29cf63f13e | ||
|
|
bed74c5f2c | ||
|
|
9679e3f156 | ||
|
|
786254cbd5 | ||
|
|
3888eed848 | ||
|
|
68754e2a35 | ||
|
|
f4c8df3d37 | ||
|
|
165e561cf5 | ||
|
|
643087c9eb | ||
|
|
e13f998e3d | ||
|
|
ec317bd993 | ||
|
|
466902bf34 | ||
|
|
3935842cb3 | ||
|
|
12b5bb320c | ||
|
|
95631bcc4d | ||
|
|
c81581d5c3 | ||
|
|
5ca2fe79d9 | ||
|
|
fd73068711 | ||
|
|
cea6b0e19a | ||
|
|
6dfd1fe44a | ||
|
|
17b4cf8818 | ||
|
|
5bd4fe2400 | ||
|
|
b4994d29a1 | ||
|
|
ef7c6ac69f | ||
|
|
b9485873b6 | ||
|
|
6b11de0aad | ||
|
|
41de1d5546 | ||
|
|
0264deb7f0 | ||
|
|
adaffb391b | ||
|
|
dbe1e3529a | ||
|
|
a59ff019de | ||
|
|
4de67de0af | ||
|
|
510b33a541 | ||
|
|
626d26baaa | ||
|
|
96a4360079 | ||
|
|
5ecd38d97e | ||
|
|
313f44f036 | ||
|
|
3087631793 | ||
|
|
96bd9415dc | ||
|
|
a4d28ef145 | ||
|
|
3a9de00dc7 | ||
|
|
a6386ad90d | ||
|
|
3bbdcee8c3 | ||
|
|
1e8f677ed4 | ||
|
|
3a49e627de | ||
|
|
7a79266014 | ||
|
|
d7a4a48c83 | ||
|
|
aa6f330821 | ||
|
|
079eb6b3d1 | ||
|
|
ae3d0303a0 | ||
|
|
867d0d0403 | ||
|
|
5d5cef3277 | ||
|
|
99583c1cae | ||
|
|
3fb3949208 | ||
|
|
0b49457e24 | ||
|
|
9e35801348 | ||
|
|
afef4e7e86 | ||
|
|
0e1e6b5e56 | ||
|
|
8706a066cf | ||
|
|
37f7bae4f0 | ||
|
|
fceb8c6f6d | ||
|
|
1a71d84326 | ||
|
|
de68469582 | ||
|
|
8b4aebd031 | ||
|
|
6c0a2cd041 | ||
|
|
2eb1ba5109 | ||
|
|
d3f25cc8bf | ||
|
|
a9e5e84ed7 | ||
|
|
585d13437c | ||
|
|
496f29fa8c | ||
|
|
0ea01d21a3 | ||
|
|
2ebfe2fc9c | ||
|
|
680cd976cc | ||
|
|
c6fcfa23be | ||
|
|
636b6d76f3 | ||
|
|
951b87ccd5 | ||
|
|
e6c8577825 | ||
|
|
55b9df1653 | ||
|
|
b2523f82c5 | ||
|
|
f7e3d9b0f2 | ||
|
|
b0231a2f03 | ||
|
|
a5f8422570 | ||
|
|
5bdb1226eb | ||
|
|
eb540d8e9b | ||
|
|
174a1f057c | ||
|
|
6dcc1a7fc3 | ||
|
|
08264fc838 | ||
|
|
24272cc948 | ||
|
|
62808a7fb5 | ||
|
|
03b25d2e46 | ||
|
|
570446de4a | ||
|
|
970a18999d | ||
|
|
61fe93b0c0 | ||
|
|
41766f78de | ||
|
|
45615cb41f | ||
|
|
4006f4e672 | ||
|
|
7488703199 | ||
|
|
6c80ecd8d5 | ||
|
|
4bffc55254 | ||
|
|
96a48abf78 | ||
|
|
e5ccb59f97 | ||
|
|
649a00e9b8 | ||
|
|
515f184462 | ||
|
|
609231e3fa | ||
|
|
1f8ece552f | ||
|
|
82c0b315bc | ||
|
|
9a9e0503a2 | ||
|
|
cd79080f4a | ||
|
|
3ee8ba25ba | ||
|
|
c725204141 | ||
|
|
4ab5b1b246 | ||
|
|
b10e1c1a4a | ||
|
|
69a590a469 | ||
|
|
e5f8396b09 | ||
|
|
efaf3a08de | ||
|
|
6f6a8f0361 | ||
|
|
7dd8275506 | ||
|
|
234cd4e3fe | ||
|
|
6d1c743816 | ||
|
|
5dff34cd8d | ||
|
|
83f07a2ae3 | ||
|
|
c7bfa321f9 | ||
|
|
3124a4e393 | ||
|
|
f7f7207a69 | ||
|
|
dd11d9349e | ||
|
|
17077cbcbf | ||
|
|
9db4370c1a | ||
|
|
91d008f619 | ||
|
|
ac9b8804eb | ||
|
|
78088e3400 | ||
|
|
01ac2fda31 | ||
|
|
f12b040a86 | ||
|
|
b2ad2ca795 | ||
|
|
13f19a6185 | ||
|
|
b1113d0168 | ||
|
|
82e2664b87 | ||
|
|
6eb3ba11fb | ||
|
|
a4726a4c8d | ||
|
|
11eaed5c9c | ||
|
|
fc0e70fe74 | ||
|
|
596072d020 | ||
|
|
23fd377567 | ||
|
|
4cb69e11ad | ||
|
|
99ec0b1a38 | ||
|
|
f900759505 | ||
|
|
c762eef14f | ||
|
|
8cfd57e318 | ||
|
|
0a6e22bb95 | ||
|
|
1f6174e466 | ||
|
|
8f5baf053e | ||
|
|
ea1d6448fb | ||
|
|
c66dd95e8e | ||
|
|
bdccb7c890 | ||
|
|
643bb0f883 | ||
|
|
5c1e3600c9 | ||
|
|
ea64b210f7 | ||
|
|
67b3ee9676 | ||
|
|
46f67717fb | ||
|
|
4597dbd2a7 | ||
|
|
78c7cfea3f | ||
|
|
4ab4543c2d | ||
|
|
c6827392b2 | ||
|
|
28618d4dda | ||
|
|
27076dfd18 | ||
|
|
04e21e6e53 | ||
|
|
92b12e12af | ||
|
|
62ddac9d22 | ||
|
|
a3e653fea2 | ||
|
|
54160b0b94 | ||
|
|
f09c1b54cf | ||
|
|
0e727f4c59 | ||
|
|
ca845879a4 | ||
|
|
9c24b11207 | ||
|
|
c1f4d04c0f | ||
|
|
2220d47e56 | ||
|
|
dbb5342c42 | ||
|
|
b0c47ec127 | ||
|
|
667d18259c | ||
|
|
12107c3302 | ||
|
|
cd93525ee8 | ||
|
|
1c421df83b | ||
|
|
245b16635b | ||
|
|
cefeb81dd5 | ||
|
|
87ef26a750 | ||
|
|
ccd890dc9f | ||
|
|
9193e7e10a | ||
|
|
9159586138 | ||
|
|
515fe7d138 | ||
|
|
1a15d841b8 | ||
|
|
be39dde5b1 | ||
|
|
f74c790e4d | ||
|
|
545c2323d4 | ||
|
|
69a27f2c3d | ||
|
|
9a7a47422e | ||
|
|
d2b62daff5 | ||
|
|
a6005c2ba4 | ||
|
|
2a41097fd7 | ||
|
|
901688234a | ||
|
|
8f065fba94 | ||
|
|
12046ce90b | ||
|
|
cac2b2c8eb | ||
|
|
2394313610 | ||
|
|
a022cf6329 | ||
|
|
ac8cf8db56 | ||
|
|
2b1fd19a04 | ||
|
|
206dd4a985 | ||
|
|
ef2c17c290 | ||
|
|
72c145938f | ||
|
|
0b903c36ca | ||
|
|
bc9509e015 | ||
|
|
9d8a92eeb8 | ||
|
|
95a4eb7b02 | ||
|
|
c010271591 | ||
|
|
c017df37f1 | ||
|
|
49f015c36b | ||
|
|
c8729cad98 | ||
|
|
14714daf41 | ||
|
|
03089e39cb | ||
|
|
ff7b7797bb | ||
|
|
e3d2d82194 | ||
|
|
cafa875ac4 | ||
|
|
aab1a6520d | ||
|
|
3eb3c770fd | ||
|
|
af8dd6d427 | ||
|
|
e1b511adc6 | ||
|
|
ad0b9f7dde | ||
|
|
37a7d1433c | ||
|
|
598ed91d62 | ||
|
|
86af2dfa29 | ||
|
|
ee16ef9929 | ||
|
|
62c03f8fac | ||
|
|
5e8cbfdf8e | ||
|
|
1d423f93c8 | ||
|
|
aa2fb76aa1 | ||
|
|
8c01127f70 | ||
|
|
e4d4cea119 | ||
|
|
723e226532 | ||
|
|
2b4dff2063 | ||
|
|
d1f42de115 | ||
|
|
ce7a9483a9 | ||
|
|
be7f1936bd | ||
|
|
43343c2793 | ||
|
|
68aff85110 | ||
|
|
9bbd5af6e8 | ||
|
|
34598a09f5 | ||
|
|
c6bb7f43ff | ||
|
|
2497b8e42f | ||
|
|
8c55f0fbfa | ||
|
|
a6d4483234 | ||
|
|
33106990a6 | ||
|
|
63fb8bd5b6 | ||
|
|
2bd28f0200 | ||
|
|
48a269db9c | ||
|
|
07fdea3ed9 | ||
|
|
14947f5b6c | ||
|
|
786b4298a5 | ||
|
|
a0ba130aea | ||
|
|
ae1331b60a | ||
|
|
2f17be04e3 | ||
|
|
db6dff2e6e | ||
|
|
fc1b595b19 | ||
|
|
c206bac583 | ||
|
|
64f41399ff | ||
|
|
bcfbac9349 | ||
|
|
32ea988e8b | ||
|
|
ad7b8c7978 | ||
|
|
b24b689963 | ||
|
|
334294f09d | ||
|
|
3f6c422f1a | ||
|
|
ad7e872471 | ||
|
|
a82d360478 | ||
|
|
bfe17c403d | ||
|
|
d234d4b968 | ||
|
|
edc5d1e500 | ||
|
|
ce62cf1bd3 | ||
|
|
eb7996a1df | ||
|
|
4d84eaa764 | ||
|
|
a5c943a9b4 | ||
|
|
6249feeba8 | ||
|
|
74222f7619 | ||
|
|
18d123ec85 | ||
|
|
2b6249f98c | ||
|
|
6884ff795d | ||
|
|
e54c429349 | ||
|
|
559555c77c | ||
|
|
b76525f29d | ||
|
|
a848d8b02b | ||
|
|
6f382f7324 | ||
|
|
5e9dbfad55 | ||
|
|
940ec37b9d | ||
|
|
fd72bdc343 | ||
|
|
5a75d400d9 | ||
|
|
03229a474f | ||
|
|
5b8a7240b0 | ||
|
|
7e168001e9 | ||
|
|
ca66dd1648 | ||
|
|
2200bd0564 | ||
|
|
9befab3af8 | ||
|
|
39d971818e | ||
|
|
e724268ea5 | ||
|
|
748de084cc | ||
|
|
7ca9560caf | ||
|
|
6c38ff8431 | ||
|
|
b6389794e2 | ||
|
|
29c8739e95 | ||
|
|
767a8b968e | ||
|
|
5db1ff6873 | ||
|
|
164e61fbb9 | ||
|
|
4a8560e2a0 | ||
|
|
d4439bcbf4 | ||
|
|
af37865370 | ||
|
|
3c26c805a7 | ||
|
|
a19f9253c4 | ||
|
|
510f7bfe87 | ||
|
|
283c81ccdd | ||
|
|
80206d9811 | ||
|
|
c696260961 | ||
|
|
dadffbebca | ||
|
|
2ea4083a64 | ||
|
|
a536063677 | ||
|
|
570e8c45fe | ||
|
|
37bbc4c47f | ||
|
|
5486771381 | ||
|
|
9ee956a2f7 | ||
|
|
15b923a271 | ||
|
|
6080be6701 | ||
|
|
3474b1e642 | ||
|
|
a96affa5e1 | ||
|
|
d85c0c81fa | ||
|
|
6978ba6736 | ||
|
|
753bb04a60 | ||
|
|
99bf17613b | ||
|
|
c7a1d7f58f | ||
|
|
b23214fca0 | ||
|
|
ce0f0e7e12 | ||
|
|
52b40984a2 | ||
|
|
eba70ec3a5 | ||
|
|
9d348b20ef | ||
|
|
34e8e6db03 | ||
|
|
b918fce9a6 | ||
|
|
02bdcf7646 | ||
|
|
cdcc745b6b | ||
|
|
33b79abe90 | ||
|
|
bac77ea3d9 | ||
|
|
b65a2d1877 | ||
|
|
6e5c26da04 | ||
|
|
ab4c1d5532 | ||
|
|
7678915a9e | ||
|
|
e5ee2e3aee | ||
|
|
902453fc35 | ||
|
|
545b6d7541 | ||
|
|
0fe8dc3290 | ||
|
|
44ce3e4b3c | ||
|
|
2aeeb5466e | ||
|
|
eb8c474088 | ||
|
|
290867cc4a | ||
|
|
4e2a62ff5e | ||
|
|
a1e22df67a | ||
|
|
703f6c0969 | ||
|
|
00489c764a | ||
|
|
6b33fa2fc6 | ||
|
|
01fb2d0ba8 | ||
|
|
d072c179a7 | ||
|
|
c77361418f | ||
|
|
ca407c08fa | ||
|
|
ffffb388a0 | ||
|
|
744750ded3 | ||
|
|
a879a0925f | ||
|
|
56a4c59e60 | ||
|
|
a1d54b2837 | ||
|
|
1882eec679 | ||
|
|
67bf6815c4 | ||
|
|
dc0221e601 | ||
|
|
ffceff850d | ||
|
|
af75d641d4 | ||
|
|
647eaf53a8 | ||
|
|
01eacf71cb | ||
|
|
cebf7f7371 | ||
|
|
a18abe21f7 | ||
|
|
ce7f59f2ff | ||
|
|
e289e5c881 | ||
|
|
a72662ed6b | ||
|
|
89eb405076 | ||
|
|
a6b74b8947 | ||
|
|
5a6436bf38 | ||
|
|
593a07614a | ||
|
|
d815f6dbb7 | ||
|
|
512de3938e | ||
|
|
66f8c36584 | ||
|
|
49d3f4be1a | ||
|
|
0dc6b951d8 | ||
|
|
665089a167 | ||
|
|
2afe4a1677 | ||
|
|
b645ebf086 | ||
|
|
99c8e3f461 | ||
|
|
81cae5ce24 | ||
|
|
dd2496d71e | ||
|
|
8a7ec6fa52 | ||
|
|
973f88bd7d | ||
|
|
27195acdb6 | ||
|
|
421c142235 | ||
|
|
8d7c1bb101 | ||
|
|
4afd8a87cd | ||
|
|
41fe641773 | ||
|
|
33c2d4da98 | ||
|
|
40d884ef95 | ||
|
|
99e738219b | ||
|
|
51e63eddf4 | ||
|
|
3f1725cd4a | ||
|
|
bde17523a9 | ||
|
|
fa6c1e3f51 | ||
|
|
b5e07cb9e8 | ||
|
|
2ee11887cd | ||
|
|
6d0fe4dba5 | ||
|
|
5a731510b2 | ||
|
|
d23970e52e | ||
|
|
4c7e003c1b | ||
|
|
4262ada1bd | ||
|
|
f4bb64378d | ||
|
|
d3ddaf1b29 | ||
|
|
16cec7b66e | ||
|
|
9d6d0e452b | ||
|
|
c16552eee5 | ||
|
|
e2003dea4b | ||
|
|
7f412c940d | ||
|
|
4b42154477 | ||
|
|
dc58af4acf | ||
|
|
58c37faa5c | ||
|
|
bec7e2c432 | ||
|
|
214d3ee739 | ||
|
|
a7d1d17be0 | ||
|
|
7039e40db2 | ||
|
|
c69f2e06ce | ||
|
|
48ed048feb | ||
|
|
abb32bb0ae | ||
|
|
5ad73398f4 | ||
|
|
e6b4ef7f1d | ||
|
|
a9a425d557 | ||
|
|
83df3a8165 | ||
|
|
9eea5b03dd | ||
|
|
b31006ba99 | ||
|
|
de19a1af57 | ||
|
|
3ba3282be5 | ||
|
|
0d051ba221 | ||
|
|
8020e5b1e3 | ||
|
|
074e29a651 | ||
|
|
5da70319a7 | ||
|
|
8ac1a9f278 | ||
|
|
6e78c788f0 | ||
|
|
35f99d5347 | ||
|
|
de1abda345 | ||
|
|
e6d1f21ea6 | ||
|
|
2223ca3c2d | ||
|
|
4605ddcc95 | ||
|
|
4dcdd8be06 | ||
|
|
67e6f0f233 | ||
|
|
8965df82d1 | ||
|
|
453257fa71 | ||
|
|
9e7746f4c0 | ||
|
|
7721a2148a | ||
|
|
64a1747ac5 | ||
|
|
2e53304940 | ||
|
|
299741bf33 | ||
|
|
a715ff5d80 | ||
|
|
e3dbc8d753 | ||
|
|
d8cfcf1a19 | ||
|
|
7fc37adff9 | ||
|
|
53ba358c4b | ||
|
|
f9114f866d | ||
|
|
846b65a50e | ||
|
|
6e8cd75ccf | ||
|
|
3a88e9055b | ||
|
|
10ff1d4404 | ||
|
|
fe02d6163d | ||
|
|
6088c6dba5 | ||
|
|
04c5110e59 | ||
|
|
555d569125 | ||
|
|
ff6434052f | ||
|
|
c230b93ee1 | ||
|
|
06f7295ae7 | ||
|
|
f35ad592ca | ||
|
|
8b213cb96f | ||
|
|
1cbf3518b8 | ||
|
|
7d04e0b63c | ||
|
|
fb10c254d8 | ||
|
|
003d4e0cbe | ||
|
|
b3e0a2f188 | ||
|
|
04bc254d7a | ||
|
|
6d9cf68838 | ||
|
|
442596279b | ||
|
|
04b4ee1245 | ||
|
|
848d68e2c7 | ||
|
|
1e1836f7ca | ||
|
|
4877e7ad84 | ||
|
|
15606fc8a9 | ||
|
|
fc3520c6fc | ||
|
|
0c788cabce | ||
|
|
a170c7e497 | ||
|
|
fff4a08af1 | ||
|
|
047ab72566 | ||
|
|
3ec40eb458 | ||
|
|
e2a70948d4 | ||
|
|
a905df79ad | ||
|
|
0ab9ebc469 | ||
|
|
807ad57ff1 | ||
|
|
2b45b199f8 | ||
|
|
ecbe7fb826 | ||
|
|
071b36fd90 | ||
|
|
d7313803f0 | ||
|
|
26ba37793c | ||
|
|
2f223b443c | ||
|
|
7758b0efd3 | ||
|
|
343d7d4065 | ||
|
|
f35cc0e4a0 | ||
|
|
86adc7266e | ||
|
|
57db2c8659 | ||
|
|
6d797a5b97 | ||
|
|
3d16018d2e | ||
|
|
6a4bcbb5d6 | ||
|
|
240330ca78 | ||
|
|
719c68fe2e | ||
|
|
34f5f485be | ||
|
|
dc70d62988 | ||
|
|
75dedb9944 | ||
|
|
45f4bb1290 | ||
|
|
dda6cbbb1c | ||
|
|
4c52326d70 | ||
|
|
2fd73898d2 | ||
|
|
4726bde475 | ||
|
|
a44fd51a81 | ||
|
|
35e9b38dd8 | ||
|
|
a2e113a2db | ||
|
|
767aa7bf70 | ||
|
|
9234b6f7e0 | ||
|
|
77bc22f77a | ||
|
|
646e37ff59 | ||
|
|
bf7c8ba557 | ||
|
|
59f339c1f8 | ||
|
|
2309be536f | ||
|
|
14c7cfea4c | ||
|
|
6f809229ef | ||
|
|
f09cbdc4b4 | ||
|
|
ef159d5cdb | ||
|
|
58e6f3d386 | ||
|
|
39237a241f | ||
|
|
8ba0cddae4 | ||
|
|
13221a5a13 | ||
|
|
3351c8aada | ||
|
|
19548deac9 | ||
|
|
ff43f6b441 | ||
|
|
1d51d96e1e | ||
|
|
140f272a56 | ||
|
|
9da59fff0d | ||
|
|
06b1f74288 | ||
|
|
dbb90872ee | ||
|
|
cb8155615a | ||
|
|
b29576f01f | ||
|
|
d404816448 | ||
|
|
02d8535f9e | ||
|
|
dfe88896b5 | ||
|
|
0f19d3650b | ||
|
|
10c95a54b5 | ||
|
|
f849e0aaac | ||
|
|
7e6aff288f | ||
|
|
c5b3b8e2b6 | ||
|
|
e20a6cfb82 | ||
|
|
bae1890d5b | ||
|
|
b2816db207 | ||
|
|
2e6f8bf01e | ||
|
|
a3eb51b0e2 | ||
|
|
6d3ea70cf7 | ||
|
|
b965b62436 | ||
|
|
8bd3e55a54 | ||
|
|
cb93da5115 | ||
|
|
9897e1994c | ||
|
|
52fc0276d7 | ||
|
|
ce73721712 | ||
|
|
0f6d0c6016 | ||
|
|
a4b18d8961 | ||
|
|
fb205872c1 | ||
|
|
a4ff1d036d | ||
|
|
26693888de | ||
|
|
63a8743830 | ||
|
|
2ef6aec8ce | ||
|
|
d38d008a1d | ||
|
|
09184490e9 | ||
|
|
c27d78e6e0 | ||
|
|
3b96dac1d7 | ||
|
|
c96356eba9 | ||
|
|
1d478cbd05 | ||
|
|
10d0bbfbc7 | ||
|
|
76c7142a55 | ||
|
|
e913eebe7c | ||
|
|
79278d0cad | ||
|
|
8af3bb0443 | ||
|
|
e8b70f2823 | ||
|
|
79e4cbd57a | ||
|
|
0057fa16a4 | ||
|
|
924d623ac8 | ||
|
|
636fceb22a | ||
|
|
ab0ab21b2e | ||
|
|
625d533476 | ||
|
|
2eef2b57dd | ||
|
|
faa8bced59 | ||
|
|
d2be1268c4 | ||
|
|
c75c72a9fc | ||
|
|
fc1018de0e | ||
|
|
7ec9be427c | ||
|
|
5e15547dad | ||
|
|
e9f9963e6b | ||
|
|
ad9071c4ba | ||
|
|
0ef5b0241e | ||
|
|
ef71f8a52d | ||
|
|
4c9753bdf7 | ||
|
|
e8e002ad91 | ||
|
|
36efe03850 | ||
|
|
37877a3b9c | ||
|
|
81c4b1fcff | ||
|
|
516c58c84c | ||
|
|
f930c9ca0e | ||
|
|
8e1915ff14 | ||
|
|
710a1bc347 | ||
|
|
c55ed2c0a9 | ||
|
|
f08e272c8b | ||
|
|
c2e4117240 | ||
|
|
90e0ba933e | ||
|
|
b2615f2b7f | ||
|
|
ae6d164b7a | ||
|
|
0e7a38dbbe | ||
|
|
1be69adaeb | ||
|
|
925390f0bf | ||
|
|
92255513cd | ||
|
|
42e9ac45ff | ||
|
|
eaa373aeb6 | ||
|
|
cea518eba5 | ||
|
|
fdadb32d0a | ||
|
|
b2cb94b93c | ||
|
|
c09bf755a6 | ||
|
|
137f240e4a | ||
|
|
59d5765b0f | ||
|
|
0ded127f4c | ||
|
|
205cfe4695 | ||
|
|
24f18f089d | ||
|
|
61dd314ba4 | ||
|
|
24a893ff63 | ||
|
|
ef0776dddd | ||
|
|
6095c9a3f8 | ||
|
|
ebc0c4c72f | ||
|
|
65e6baf5a9 | ||
|
|
072ec8dc77 | ||
|
|
ef8e614b04 | ||
|
|
d51a8422a2 | ||
|
|
7b53d3d127 | ||
|
|
36d90a4f13 | ||
|
|
09d4a8f165 | ||
|
|
c7475ee11e | ||
|
|
2431a66944 | ||
|
|
b016bc2d4f | ||
|
|
bdd9db581f | ||
|
|
29fbbc05c9 | ||
|
|
2a061153f6 | ||
|
|
8bbc4ca7ec | ||
|
|
56130b3231 | ||
|
|
5a40d9ead2 | ||
|
|
13d897efcf | ||
|
|
0c4c742189 | ||
|
|
9d64f63aaa | ||
|
|
d7984a3fdb | ||
|
|
17d3a3e28c | ||
|
|
20ee294371 | ||
|
|
6e40a95415 | ||
|
|
24ad720079 | ||
|
|
bb3842917c | ||
|
|
9c46845348 | ||
|
|
2cc5a65c0f | ||
|
|
15bef4ddb6 | ||
|
|
5ce88fe525 | ||
|
|
676991e630 | ||
|
|
f3959d84d3 | ||
|
|
86459445f9 | ||
|
|
ad0f322065 | ||
|
|
735b546108 | ||
|
|
94650aa4ba | ||
|
|
786fcaf4a2 | ||
|
|
eae0819e3d | ||
|
|
550a02c909 | ||
|
|
1e2a59b68a | ||
|
|
7fb3529376 | ||
|
|
3a898d66ba | ||
|
|
699c46f88b | ||
|
|
5565903d7c | ||
|
|
c14da32ec4 | ||
|
|
db37e581bc | ||
|
|
75bb9f0a2a | ||
|
|
89e4bfabcd | ||
|
|
57b792bb8a | ||
|
|
625cb88756 | ||
|
|
01084fbd8d | ||
|
|
219be37b93 | ||
|
|
3be197ed19 | ||
|
|
2bac14f45a | ||
|
|
ed05aed044 | ||
|
|
02be728995 | ||
|
|
cb75a8c02d | ||
|
|
f7978a042c | ||
|
|
6980e29da9 | ||
|
|
79d4ae4bf8 | ||
|
|
03d0ba4c06 | ||
|
|
b41ca51fc6 | ||
|
|
8e6c9373c1 | ||
|
|
dbaf821f82 | ||
|
|
b8b5ed3d52 | ||
|
|
8075fc59b5 | ||
|
|
d22026207c | ||
|
|
b5d5f6fffd | ||
|
|
e464e1da1c | ||
|
|
ec4ea625c9 | ||
|
|
38fa93be81 | ||
|
|
a1319f687c | ||
|
|
059c9672ff | ||
|
|
8a2075ba7d | ||
|
|
a6050a7291 | ||
|
|
d1cf325739 | ||
|
|
6cc8245afb | ||
|
|
93066fab51 | ||
|
|
daeef68961 | ||
|
|
c5e9725e5b | ||
|
|
e94bd40348 | ||
|
|
6576e27321 | ||
|
|
d29bfd529e | ||
|
|
e758541f7e | ||
|
|
0cf2e85eda | ||
|
|
de9a50b611 | ||
|
|
b6dd48b361 | ||
|
|
184edc32ab | ||
|
|
0199003cf9 | ||
|
|
bbd396f52f | ||
|
|
2a15b5cbc4 | ||
|
|
2dbf41d0d0 | ||
|
|
c80374e8e8 | ||
|
|
e53320438b | ||
|
|
1bb22e3075 | ||
|
|
fc7d0fef5f | ||
|
|
b2861672f1 | ||
|
|
9cd1ed4307 | ||
|
|
8a054458d4 | ||
|
|
570703fb5e | ||
|
|
0b79c81d9d | ||
|
|
6acdf37888 | ||
|
|
1391eaea5d | ||
|
|
d3de1d0186 | ||
|
|
a15c26266f | ||
|
|
c32c344dd6 | ||
|
|
e305ef0fa8 | ||
|
|
f1014ac7cc | ||
|
|
8fd6feded9 | ||
|
|
c175e3f6c8 | ||
|
|
73f2d11007 | ||
|
|
f2bb69ebb0 | ||
|
|
0129239343 | ||
|
|
92d76e1e92 | ||
|
|
dc2f3bc5e4 | ||
|
|
1a35394a57 | ||
|
|
2b5e6e4835 | ||
|
|
306c8e8b4f | ||
|
|
3cc80a4390 | ||
|
|
ff015c529a | ||
|
|
ebf16be3ea | ||
|
|
4061c49579 | ||
|
|
d01146b817 | ||
|
|
d0ae660607 | ||
|
|
5aaccdf6a7 | ||
|
|
dc3a2321e0 | ||
|
|
3f094fd26b | ||
|
|
e86cf7f5e6 | ||
|
|
ad9fd82850 | ||
|
|
da5debc995 | ||
|
|
9f79f8d7e0 | ||
|
|
56931437e3 | ||
|
|
5051a33ba6 | ||
|
|
8d851e17c0 | ||
|
|
1df5e317dc | ||
|
|
950d7008ea | ||
|
|
8a2d561e45 | ||
|
|
ccf99a6d4c | ||
|
|
78ec76159b | ||
|
|
28ea23054e | ||
|
|
cea6ca618e | ||
|
|
a9ecff59e4 | ||
|
|
b1f44ffb39 | ||
|
|
2e0e925d3b | ||
|
|
6f0db0ac6e | ||
|
|
aef17cff0f | ||
|
|
92cad6a4e5 | ||
|
|
5bd81eab0f | ||
|
|
598064934e | ||
|
|
c75c37dc2b | ||
|
|
67492390d4 | ||
|
|
480aa4b7c1 | ||
|
|
9a9958dafc | ||
|
|
2262fbb298 | ||
|
|
a36a4fdedc | ||
|
|
57d75ea4d8 | ||
|
|
7880914895 | ||
|
|
b214c8214c | ||
|
|
68f054be8f | ||
|
|
d9feb76a02 | ||
|
|
872325a656 | ||
|
|
d133be1fc3 | ||
|
|
ad02a0f47d | ||
|
|
f7d204bce4 | ||
|
|
2b38bcb26a | ||
|
|
6d89182e28 | ||
|
|
30215a98cc | ||
|
|
c8088a6184 | ||
|
|
82395d065e | ||
|
|
5120cb1bc9 | ||
|
|
e407204f28 | ||
|
|
af3fa53348 | ||
|
|
4fc8280fa6 | ||
|
|
9e92d099ce | ||
|
|
7c3982f666 | ||
|
|
b6e520d478 | ||
|
|
2c41df8b40 | ||
|
|
86168539c7 | ||
|
|
d849f68245 | ||
|
|
91990a324b | ||
|
|
ac829d6935 | ||
|
|
d1a60cddfe | ||
|
|
8d8acf4b3c | ||
|
|
fadc4d4786 | ||
|
|
9eb27b5fad | ||
|
|
b1e1f83089 | ||
|
|
ad935391c2 | ||
|
|
5f057a69d6 | ||
|
|
d635ea46cb | ||
|
|
51816f9adb | ||
|
|
50bc2a4286 | ||
|
|
7f01432879 | ||
|
|
d11a1de3ed | ||
|
|
c6590a2f61 | ||
|
|
f5da3f584b | ||
|
|
5771d0193b | ||
|
|
f52a204a4e | ||
|
|
21126e288b | ||
|
|
d1aa15101c | ||
|
|
92c4ad70ea | ||
|
|
1247f879f9 | ||
|
|
b46ec3cd33 | ||
|
|
f0ea374271 | ||
|
|
72af85a647 | ||
|
|
aa77b79b4b | ||
|
|
f36cf8b4d8 | ||
|
|
a8a0842148 | ||
|
|
8c3b497f01 | ||
|
|
61d6d975af | ||
|
|
b5422e71f7 | ||
|
|
c20f3cd330 | ||
|
|
a88ba0dd94 | ||
|
|
81c7cd4c29 | ||
|
|
f79efa913c | ||
|
|
8b861292c6 | ||
|
|
39f54be321 | ||
|
|
9bfbfd3b8a | ||
|
|
fff7466c36 | ||
|
|
bd2fa30652 | ||
|
|
fffcc47efc | ||
|
|
302c89b285 | ||
|
|
3dd09fbf17 | ||
|
|
baa4aff633 | ||
|
|
aa3694f1ff | ||
|
|
9211474a6e | ||
|
|
ca76cd842a | ||
|
|
6879364228 | ||
|
|
0a2845a592 | ||
|
|
d4e06e8c46 | ||
|
|
61789dd7d5 | ||
|
|
df92958bed | ||
|
|
c559453c89 | ||
|
|
65ab259cdb | ||
|
|
563ff6778d | ||
|
|
eae700da7d | ||
|
|
dc3bf580fc | ||
|
|
d2ed2e78cf | ||
|
|
c799d7b979 | ||
|
|
73c74c33e6 | ||
|
|
c1635e0379 | ||
|
|
2486f9acdf | ||
|
|
af1a8f76a6 | ||
|
|
1c1565ff39 | ||
|
|
c3d98f8640 | ||
|
|
cf504308fe | ||
|
|
3677890d37 | ||
|
|
2af2bec9b2 | ||
|
|
30f0e39058 | ||
|
|
fc1e984e89 | ||
|
|
24c61a8949 | ||
|
|
b3354081ac | ||
|
|
aedb44867d | ||
|
|
65a82e4c26 | ||
|
|
28571ed121 | ||
|
|
3a0036e766 | ||
|
|
fa0309e396 | ||
|
|
4f3c16b4f5 | ||
|
|
16b01fbdc7 | ||
|
|
cd0be06ed2 | ||
|
|
48f998c0e8 | ||
|
|
f3a82e33ac | ||
|
|
14867399cd | ||
|
|
948cbc01ff | ||
|
|
29dade1a06 | ||
|
|
814ef75488 | ||
|
|
17202b905d | ||
|
|
0a35becaf5 | ||
|
|
21eba648bd | ||
|
|
c880cde6a9 | ||
|
|
3afb09ac80 | ||
|
|
1595f15531 | ||
|
|
a6921b13ef | ||
|
|
ae5a552bf1 | ||
|
|
0d4eeae035 | ||
|
|
c4f4cfbf11 | ||
|
|
8cef936d37 | ||
|
|
583ce8b6c9 | ||
|
|
f369403dc6 | ||
|
|
3a82fa109f | ||
|
|
57d9a3625b | ||
|
|
3f81b8e189 | ||
|
|
d06faa245b | ||
|
|
29544710c6 | ||
|
|
7c38cd6901 | ||
|
|
9419e88fc4 | ||
|
|
2c929257dc | ||
|
|
28efd24883 | ||
|
|
bb09da15fe | ||
|
|
db8d2fe339 | ||
|
|
b3183656ef | ||
|
|
aa0c7901a4 | ||
|
|
ef8f6fe459 | ||
|
|
c3aafd6932 | ||
|
|
b0a1aa04ba | ||
|
|
e304471a9e | ||
|
|
405638ebb0 | ||
|
|
2020df6702 | ||
|
|
c4836a7811 | ||
|
|
47c5a14bad | ||
|
|
f6ac75fd2c | ||
|
|
c76a2ddf15 | ||
|
|
337e4b174d | ||
|
|
246e147a6a | ||
|
|
e566848d2a | ||
|
|
da1695cee6 | ||
|
|
2fd63693cc | ||
|
|
244554ca1a | ||
|
|
22b03a6110 | ||
|
|
d726c5ad5f | ||
|
|
c5fcc8e462 | ||
|
|
256f19b8db | ||
|
|
e4dfd95e1f | ||
|
|
846263ddff | ||
|
|
b9d1d9e98e | ||
|
|
3c3e5c4a31 | ||
|
|
e2497bb4fd | ||
|
|
7a5c83d8d5 | ||
|
|
808b51dfba | ||
|
|
baea296b94 | ||
|
|
07b422cb2a | ||
|
|
558fd59769 | ||
|
|
dea4262fa6 | ||
|
|
17e6a0e4bb | ||
|
|
9f1c3a0e22 | ||
|
|
a9e1eeab54 | ||
|
|
b39517e205 | ||
|
|
920077edd1 | ||
|
|
e2f0548110 | ||
|
|
a25f0cdb7e | ||
|
|
5fe8296d4a | ||
|
|
853b15e627 | ||
|
|
f5d3da342d | ||
|
|
8f5e4ea244 | ||
|
|
06b02f10be | ||
|
|
e616c17722 | ||
|
|
3bde76131b | ||
|
|
5a3e8f271b | ||
|
|
e5106171da | ||
|
|
e56702cfd6 | ||
|
|
20075bd5d4 | ||
|
|
11af8c2887 | ||
|
|
4e9fd57633 | ||
|
|
db2557052c | ||
|
|
97943b2180 | ||
|
|
69e796de6c | ||
|
|
2a7a905dfc | ||
|
|
81b59e0ba3 | ||
|
|
419dd76de0 | ||
|
|
04c4d4dc87 | ||
|
|
9f96885c83 | ||
|
|
7da31a15bb | ||
|
|
d7f4b25511 | ||
|
|
99c885f123 | ||
|
|
fba433574b | ||
|
|
d678a9231c | ||
|
|
d936975f34 | ||
|
|
4656d21181 | ||
|
|
b11f94d927 | ||
|
|
f57432bb1d | ||
|
|
3612fcbdb2 | ||
|
|
60a7806d6e | ||
|
|
e3fe486f9f | ||
|
|
0142f9ed84 | ||
|
|
63d4f2d50b | ||
|
|
6a8f12175a | ||
|
|
687ed33f94 | ||
|
|
39ae860d5b | ||
|
|
8f0c48cf2f | ||
|
|
a5d6352ca2 | ||
|
|
1f8d1e1a94 | ||
|
|
0d9dce8362 | ||
|
|
69e2127485 | ||
|
|
12756a214f | ||
|
|
7ca2112fce | ||
|
|
b9bf7eada4 | ||
|
|
0692039ada | ||
|
|
edd622d994 | ||
|
|
c53546aa7e | ||
|
|
c58e076233 | ||
|
|
20f7083676 | ||
|
|
ebf1beaf96 | ||
|
|
42eb22a775 | ||
|
|
68d442ddaf | ||
|
|
5e8ee3161d | ||
|
|
3f570570fd | ||
|
|
4228c4b860 | ||
|
|
1b34d3edee | ||
|
|
94fcdc55eb | ||
|
|
09eb7ebbca | ||
|
|
91564c12b0 | ||
|
|
a261a6aa62 | ||
|
|
59ad795300 | ||
|
|
3b118bfa86 | ||
|
|
9c5a25e176 | ||
|
|
525a872b3f | ||
|
|
908d3853ac | ||
|
|
2377fcd9a3 | ||
|
|
5e55fec6e9 | ||
|
|
28d582acd9 | ||
|
|
2b345f4a8d | ||
|
|
49a3c7a82d | ||
|
|
2202d97525 | ||
|
|
83dcec4e43 | ||
|
|
ad61fd4133 | ||
|
|
9644fae0fd | ||
|
|
36dd24da90 | ||
|
|
b79eab3aa6 | ||
|
|
c7f3f0fba9 | ||
|
|
0bca413339 | ||
|
|
a714e6b4e5 | ||
|
|
246ae48193 | ||
|
|
96cb172817 | ||
|
|
59c60442f3 | ||
|
|
7408ba7d77 | ||
|
|
8b7fb356cb | ||
|
|
b164e8fd95 | ||
|
|
8481ec72a8 | ||
|
|
90e921d334 | ||
|
|
f033fef4ce | ||
|
|
7513e6d4f4 | ||
|
|
361dda3c20 | ||
|
|
44cfebcac7 | ||
|
|
e2ae699ef5 | ||
|
|
b2b2d44f20 | ||
|
|
76272609c2 | ||
|
|
ebce0d1dec | ||
|
|
21d2ed30b3 | ||
|
|
7592628e48 | ||
|
|
9fff44980c | ||
|
|
5de5f30d9b | ||
|
|
aa21da0560 | ||
|
|
c1e20b738a | ||
|
|
981a7966e7 | ||
|
|
cc98f8a745 | ||
|
|
815c5a7a31 | ||
|
|
5c7becf8ca | ||
|
|
b7bdf635da | ||
|
|
1e6f7000ac | ||
|
|
e1ce35d51f | ||
|
|
12549a6db8 | ||
|
|
3741aa834b | ||
|
|
e98b44e829 | ||
|
|
9cb0d2f448 | ||
|
|
8232744d27 | ||
|
|
a5e2a85f07 | ||
|
|
1183723f25 | ||
|
|
014c8f4a02 | ||
|
|
b042392540 | ||
|
|
7823d1aaed | ||
|
|
f676dbef22 | ||
|
|
0798f9740f | ||
|
|
80cb677ce9 | ||
|
|
18a3d6a8aa | ||
|
|
9e2f2e9f31 | ||
|
|
98ca17881b | ||
|
|
d4e24746dc | ||
|
|
65cbf7d1fd | ||
|
|
edcef60550 | ||
|
|
3e7513f731 | ||
|
|
2efda64d38 | ||
|
|
e34b2d9108 | ||
|
|
bc4fb9c6f0 | ||
|
|
a4376b2603 | ||
|
|
28bcd77302 | ||
|
|
6793260cdd | ||
|
|
d614857d03 | ||
|
|
8abf13fa94 | ||
|
|
154e260c9d | ||
|
|
1b7ac91429 | ||
|
|
bbc05d986e | ||
|
|
21b915db0f | ||
|
|
c2fbf52745 | ||
|
|
5c754a018b | ||
|
|
821811d87f | ||
|
|
57eace9a0f | ||
|
|
afd24a90a3 | ||
|
|
395fbc0389 | ||
|
|
19d1db4624 | ||
|
|
f54a032ad1 | ||
|
|
213d9a655f | ||
|
|
71447df741 | ||
|
|
e44fbb95ea | ||
|
|
5ec71c5990 | ||
|
|
f1587760e9 | ||
|
|
78c4877776 | ||
|
|
55a1f9d86b | ||
|
|
a759b38acf | ||
|
|
04a5f2605f | ||
|
|
7278cc2e51 | ||
|
|
4166236b53 | ||
|
|
1f6bad2b30 | ||
|
|
3c25a62eb8 | ||
|
|
5e2bb11618 | ||
|
|
44dc43bb3d | ||
|
|
bf76cb368c | ||
|
|
c578654cad | ||
|
|
bf3a5672fb | ||
|
|
f87b5cab0c | ||
|
|
33f9d106bc | ||
|
|
793fbbc7f2 | ||
|
|
20c2cd43a9 | ||
|
|
546f26cbb3 | ||
|
|
a00579f70b | ||
|
|
61d5f094fd | ||
|
|
3e04fcdbb5 | ||
|
|
31cb36e88f | ||
|
|
06506ceb4f | ||
|
|
2c1c1dc64e | ||
|
|
7db90444af | ||
|
|
92747bfbc9 | ||
|
|
467a80a588 | ||
|
|
2d34812b74 | ||
|
|
874d77f17f | ||
|
|
662fff7861 | ||
|
|
2852c1c0a1 | ||
|
|
bae9a65da4 | ||
|
|
a08c6469be | ||
|
|
c99c6c304a | ||
|
|
6cf1df86a5 | ||
|
|
b2d18ac8f5 | ||
|
|
1c3fa0f99e | ||
|
|
5d9ed2d7bc | ||
|
|
97d18a1d85 | ||
|
|
7e37a5e5e1 | ||
|
|
d283021a71 | ||
|
|
0e4a77847a | ||
|
|
bc3afd9b46 | ||
|
|
fb92d24736 | ||
|
|
c00f96b198 | ||
|
|
7a50bc0dff | ||
|
|
31a6a88517 | ||
|
|
78ebc8e8d5 | ||
|
|
e053850b61 | ||
|
|
aa247b62b3 | ||
|
|
c31e5c3ca5 | ||
|
|
3da062869b | ||
|
|
f8053809f8 | ||
|
|
ef95b3233e | ||
|
|
437d89a151 | ||
|
|
2b1c83e4e2 | ||
|
|
e4407b754b | ||
|
|
f2c93707b4 | ||
|
|
5713380d80 | ||
|
|
ff9ea9b139 | ||
|
|
026c2017b1 | ||
|
|
64eb355c76 | ||
|
|
023877ac27 | ||
|
|
cc6668c3e7 | ||
|
|
ecf261bb6e | ||
|
|
3de8f89388 | ||
|
|
1495a99781 | ||
|
|
80e8506f75 | ||
|
|
bb1f5171c4 | ||
|
|
5883167774 | ||
|
|
2d1ec93821 | ||
|
|
012945ff54 | ||
|
|
0199f37303 | ||
|
|
8ecf5f402d | ||
|
|
81e204a3e7 | ||
|
|
ccfd76fbc8 | ||
|
|
0957ccf367 | ||
|
|
3ca688d69a | ||
|
|
885956355c | ||
|
|
e6345ecb09 | ||
|
|
758e7f409f | ||
|
|
945532de66 | ||
|
|
54bf872aab | ||
|
|
ee6911b745 | ||
|
|
c5c6647f22 | ||
|
|
72d40f6724 | ||
|
|
99f7bd761f | ||
|
|
325addae1d | ||
|
|
4e69204179 | ||
|
|
c7b097f904 | ||
|
|
8723a1eaae | ||
|
|
fe680fd860 | ||
|
|
2bd66cf7fc | ||
|
|
8e7e29d1de | ||
|
|
96efa91b23 | ||
|
|
ea2703dd8c | ||
|
|
009e3b99cf | ||
|
|
10b3363e2e | ||
|
|
c8aa23a9cc | ||
|
|
8a755a3d27 | ||
|
|
36a16de45c | ||
|
|
6e2ffd49b1 | ||
|
|
2abefb14eb | ||
|
|
e2c1c2e529 | ||
|
|
067c2ea921 | ||
|
|
e91fe759ec | ||
|
|
37d0d50168 | ||
|
|
6f46b8dd99 | ||
|
|
1f2f9be7f8 | ||
|
|
96400fcda4 | ||
|
|
4ff8979277 | ||
|
|
3e9354e7f7 | ||
|
|
42e25937cf | ||
|
|
1701230f32 | ||
|
|
68bd369ece | ||
|
|
358a274042 | ||
|
|
2f8c0a3131 | ||
|
|
9b0e6e4b56 | ||
|
|
2302cc643b | ||
|
|
f29617e3fe | ||
|
|
485d699baf | ||
|
|
a5bda3260c | ||
|
|
b5b50f46ea | ||
|
|
0037e217df | ||
|
|
2bea3939c6 | ||
|
|
65562d99c3 | ||
|
|
f199c753eb | ||
|
|
af0225072d | ||
|
|
d85702e334 | ||
|
|
b4012f613a | ||
|
|
bc3a5c4e5f | ||
|
|
fe734b9b2d | ||
|
|
d298aab8a2 | ||
|
|
87ca587534 | ||
|
|
aafbc6e7fc | ||
|
|
8efbf4f961 | ||
|
|
9e19c0c5cd | ||
|
|
9b2c2ebb79 | ||
|
|
9f9d6f6c31 | ||
|
|
e73a9ed54d | ||
|
|
84f8fd1af6 | ||
|
|
15e112e97b | ||
|
|
37d93402d2 | ||
|
|
b00199bd9b | ||
|
|
98ad587709 | ||
|
|
5d1f26b8e5 | ||
|
|
dd3d3d7226 | ||
|
|
fe42846981 | ||
|
|
a907e0806e | ||
|
|
4705104cfa | ||
|
|
706fae60a3 | ||
|
|
9aec59b45a | ||
|
|
3fcb933b8c | ||
|
|
50c1199e09 | ||
|
|
5ce160d64c | ||
|
|
30c0861e98 | ||
|
|
6d5707dfa6 | ||
|
|
fca9e007c6 | ||
|
|
75ecfa15f1 | ||
|
|
e3cc4f6bc8 | ||
|
|
d851ca7056 | ||
|
|
4471d9eb05 | ||
|
|
39b517459f | ||
|
|
d4eb26affa | ||
|
|
fc9f72abca | ||
|
|
cec759ed61 | ||
|
|
9d4fa35a77 | ||
|
|
66be6a1689 | ||
|
|
aaa4c7445b | ||
|
|
4d18918a3a | ||
|
|
26802588fa | ||
|
|
d8a4f42f8c | ||
|
|
638f87f1bd | ||
|
|
521f68c0a5 | ||
|
|
c672e2892b | ||
|
|
27d553aad2 | ||
|
|
d04627589e | ||
|
|
9782cef803 | ||
|
|
88429654db | ||
|
|
b9ca7077bb | ||
|
|
f5bf6fe980 | ||
|
|
9db9190cd4 | ||
|
|
df5fb23be1 | ||
|
|
9b9c6a8565 | ||
|
|
51a3adcefa | ||
|
|
d1772031ee | ||
|
|
309253682d | ||
|
|
b34d965da0 | ||
|
|
b9676dd73d | ||
|
|
de9ef8a7a7 | ||
|
|
3c20276087 | ||
|
|
174e9df9c1 | ||
|
|
8d83abaf89 | ||
|
|
82a83f3743 | ||
|
|
0b6b9b5195 | ||
|
|
ae3295706e | ||
|
|
79a8c33f6d | ||
|
|
44dcbba28a | ||
|
|
f0ed17134a | ||
|
|
1cc94659ad | ||
|
|
4ee49675d3 | ||
|
|
2fcddf2514 | ||
|
|
450dbb37c2 | ||
|
|
42ee53e9ba | ||
|
|
2a9c589d4d | ||
|
|
4efee8b478 | ||
|
|
6e5e7b7179 | ||
|
|
a580a5e647 | ||
|
|
d63b8caa5c | ||
|
|
2fae9e5d26 | ||
|
|
9be58099c4 | ||
|
|
49db4dd32c | ||
|
|
c6be028a84 | ||
|
|
e92b78f873 | ||
|
|
83c58cadbc | ||
|
|
c3d224580c | ||
|
|
894cb43a58 | ||
|
|
d063f15ca1 | ||
|
|
7e03c96656 | ||
|
|
ae66a6b2b0 | ||
|
|
686562b5a7 | ||
|
|
b094fe9daa | ||
|
|
16a1aff95a | ||
|
|
7f892add00 | ||
|
|
a9f5b7cff2 | ||
|
|
6b1cbebf24 | ||
|
|
fc0b04b093 | ||
|
|
8471372f24 | ||
|
|
80f17f22f2 | ||
|
|
098bfeea80 | ||
|
|
0ef9bacdc7 | ||
|
|
879adb17cc | ||
|
|
92c8fc20fb | ||
|
|
47a2e7569c | ||
|
|
d5654c49bd | ||
|
|
a6a92722ff | ||
|
|
f5a1b61888 | ||
|
|
24d1484e1c | ||
|
|
efc6e85c74 | ||
|
|
a988aefd03 | ||
|
|
a49772f23b | ||
|
|
ea1f6ec04b | ||
|
|
0b072ba82c | ||
|
|
0928d79889 | ||
|
|
6994cb9650 | ||
|
|
5b34b167f9 | ||
|
|
923091ff96 | ||
|
|
26061de96f | ||
|
|
102ad5c8ff | ||
|
|
bb0d2464f8 | ||
|
|
2de5b90948 | ||
|
|
d85b445409 | ||
|
|
707c2dc263 | ||
|
|
7f8213c31e | ||
|
|
e1958d172e | ||
|
|
7f0947ae50 | ||
|
|
dcfb371a6b | ||
|
|
acca325884 | ||
|
|
3e729d218d | ||
|
|
56117f587b | ||
|
|
568ec722bb | ||
|
|
a95d10ec54 | ||
|
|
8f730b8a46 | ||
|
|
2f8490672b | ||
|
|
99fbca4eba | ||
|
|
f05581b361 | ||
|
|
5444831241 | ||
|
|
1e40feefae | ||
|
|
f3ac2e7839 | ||
|
|
01f0361e79 | ||
|
|
33c85ae850 | ||
|
|
db5fd4aaae | ||
|
|
f4df046ab6 | ||
|
|
93da1d6e5b | ||
|
|
3e947ade15 | ||
|
|
800c8d7882 | ||
|
|
7afc9d1829 | ||
|
|
15295aaf8a | ||
|
|
4542868aea | ||
|
|
3287aaae94 | ||
|
|
86eb6a1aac | ||
|
|
4a2b55cc60 | ||
|
|
73711e47bb | ||
|
|
e03be48b10 | ||
|
|
b8efd17fe8 | ||
|
|
d7b3fa5629 | ||
|
|
8572927454 | ||
|
|
b3fca9f7f6 | ||
|
|
3a0a028c8c | ||
|
|
0c3fd30903 | ||
|
|
52f3031b24 | ||
|
|
b3463e39bd | ||
|
|
a34483b143 | ||
|
|
afa12bc912 | ||
|
|
c0f45e1e43 | ||
|
|
7c8e0d8c97 | ||
|
|
b0b791399d | ||
|
|
6dd490fa03 | ||
|
|
dec4961f11 | ||
|
|
ff927371bd | ||
|
|
0dc8754559 | ||
|
|
fb66999103 | ||
|
|
97b434be77 | ||
|
|
51cd0868f5 | ||
|
|
65d5eb615d | ||
|
|
0bb8253d33 | ||
|
|
b0c1bd7cb5 | ||
|
|
2fe074017c | ||
|
|
e91b426d5a | ||
|
|
f05548e77b | ||
|
|
df4c89a556 | ||
|
|
2c9dc1f509 | ||
|
|
b7d1e33e4a | ||
|
|
0d1ddb59de | ||
|
|
022e60027b | ||
|
|
2bb262fd64 | ||
|
|
225d614f6f | ||
|
|
8087128c07 | ||
|
|
3cfa2e263a | ||
|
|
a927d9b0ae | ||
|
|
0099b7b26e | ||
|
|
9e1b4e382a | ||
|
|
a62884b9bb | ||
|
|
79d3f45d37 | ||
|
|
31f6ab878e | ||
|
|
8fade926f8 | ||
|
|
7fa1528c0f | ||
|
|
5073e90886 | ||
|
|
7cec3ce1bd | ||
|
|
0924e6fa60 | ||
|
|
608b7ce3ba | ||
|
|
b15c6a222b | ||
|
|
722b47ca02 | ||
|
|
67632ea61f | ||
|
|
6766af1902 | ||
|
|
fd59122b41 | ||
|
|
90ed4c7d26 | ||
|
|
072b27d4d2 | ||
|
|
27fc27695b | ||
|
|
44fc00b79c | ||
|
|
b78de3e724 | ||
|
|
faf0e1a16e | ||
|
|
909dc8c01d | ||
|
|
6f468fedb4 | ||
|
|
a5f1ced62a | ||
|
|
2e55f17398 | ||
|
|
4d13e6fa55 | ||
|
|
e38b3095cb | ||
|
|
c759590c03 | ||
|
|
647185eda4 | ||
|
|
0764c7eb69 | ||
|
|
3856e7a1c1 | ||
|
|
669102ec61 | ||
|
|
a2e185c904 | ||
|
|
039ff08371 | ||
|
|
507e4c7e69 | ||
|
|
8529df5a59 | ||
|
|
52be7173c0 | ||
|
|
746246f20f | ||
|
|
8faf6cb717 | ||
|
|
e093b77bfb | ||
|
|
25170852d7 | ||
|
|
7a0fd15ee7 | ||
|
|
31bfafc32e | ||
|
|
554f8ec02f | ||
|
|
3364b4a289 | ||
|
|
988d9b05dd | ||
|
|
c531932fd2 | ||
|
|
c5ad355677 | ||
|
|
42ad428793 | ||
|
|
8cd4321b8b | ||
|
|
6b5ddbc2c9 | ||
|
|
6f1ebf7e68 | ||
|
|
2bcf0bd3f3 | ||
|
|
7b94e62e37 | ||
|
|
94bdbcb500 | ||
|
|
3723d62e4f | ||
|
|
fe8cf19c6b | ||
|
|
cf9b64e697 | ||
|
|
c36eeadd49 | ||
|
|
a76c54f4c1 | ||
|
|
cc76ce042c | ||
|
|
5d0c6e59ac | ||
|
|
d62d8770a6 | ||
|
|
84d2cd2820 | ||
|
|
a4f4371389 | ||
|
|
4c7e4c094e | ||
|
|
52b883ffc0 | ||
|
|
df6f3a4998 | ||
|
|
23b0d345e9 | ||
|
|
d3caacdc49 | ||
|
|
63821aae49 | ||
|
|
500578e250 | ||
|
|
bc0c927da9 | ||
|
|
0fdba7fb2a | ||
|
|
81ca387201 | ||
|
|
2afb97d4f4 | ||
|
|
a71d24334e | ||
|
|
0ea919d2da | ||
|
|
c2a79f9f5f | ||
|
|
1b6f16a2d0 | ||
|
|
05128c2c79 | ||
|
|
711933ad30 | ||
|
|
2ce61398ce | ||
|
|
2e9825b4e7 | ||
|
|
c89f42f5b7 | ||
|
|
9c9354c36d | ||
|
|
16aa74d9d2 | ||
|
|
c59588ce72 | ||
|
|
cf6f431bce | ||
|
|
bbaec810c7 | ||
|
|
b1c9ecbff6 | ||
|
|
6e8beadc83 | ||
|
|
79bca6482d | ||
|
|
d43f88070c | ||
|
|
c1c76161dc | ||
|
|
88d2464bd8 | ||
|
|
a10a5f3a93 | ||
|
|
3e94e8645c | ||
|
|
bd9d31c3f0 | ||
|
|
13d08934ba | ||
|
|
b150c16ebc | ||
|
|
76f8ced07d | ||
|
|
fd09326a94 | ||
|
|
3eb2a22131 | ||
|
|
1edeae648d | ||
|
|
940fd633a2 | ||
|
|
d577c22aa6 | ||
|
|
476382ce9d | ||
|
|
5814c8c46b | ||
|
|
4796fb9f3a | ||
|
|
fe9777a0bd | ||
|
|
649d8f321e | ||
|
|
6dc7d3dea2 | ||
|
|
e7389b6a8f | ||
|
|
2130b49220 | ||
|
|
387827ac90 | ||
|
|
c322ce4c4f | ||
|
|
9c8f7eb9b7 | ||
|
|
e7d469d663 | ||
|
|
3fad422ee5 | ||
|
|
8379824202 | ||
|
|
8b67554aec | ||
|
|
edd66bd294 | ||
|
|
db29cde02a | ||
|
|
306433db58 | ||
|
|
a94c64bcad | ||
|
|
389d9bc4e0 | ||
|
|
9a628d3908 | ||
|
|
513813de35 | ||
|
|
63c90500f0 | ||
|
|
1f3e04f05c | ||
|
|
8cbf0850d9 | ||
|
|
0c583dd647 | ||
|
|
5579ee544c | ||
|
|
30690e6b57 | ||
|
|
2b22830114 | ||
|
|
6e05a8291b | ||
|
|
53d9bb54c7 | ||
|
|
69b3ea263d | ||
|
|
b890a03963 | ||
|
|
86bb482007 | ||
|
|
436f7c405a | ||
|
|
52f24baacc | ||
|
|
6b16d2e1fe | ||
|
|
f409a8a021 | ||
|
|
dae7a9d7f4 | ||
|
|
4bdaed5ff4 | ||
|
|
f7eb4c8913 | ||
|
|
c0fca1bce9 | ||
|
|
d9b0ac1791 | ||
|
|
4696d3dabf | ||
|
|
fa3228b72d | ||
|
|
507b8890a4 | ||
|
|
70654669d5 | ||
|
|
14c6978cc5 | ||
|
|
997fd16b2d | ||
|
|
2cf349d10e | ||
|
|
99ec01ea67 | ||
|
|
051550c21b | ||
|
|
2753d47434 | ||
|
|
b94d49e397 | ||
|
|
b57a53520b | ||
|
|
5ffa85be43 | ||
|
|
03132c06be | ||
|
|
18cdfb06b1 | ||
|
|
7cbc9c5c4d | ||
|
|
2fc820ac2b | ||
|
|
7d24fad90d | ||
|
|
1f7d9dacf4 | ||
|
|
2237d0c5d1 | ||
|
|
2bf54d98be | ||
|
|
cfcf052439 | ||
|
|
04b6320338 | ||
|
|
06e70ddab4 | ||
|
|
70246cdb71 | ||
|
|
ceae44d812 | ||
|
|
503372a035 | ||
|
|
db7b7871a3 | ||
|
|
dd971baefb | ||
|
|
6af87f1ac6 | ||
|
|
aa4d86195c | ||
|
|
6f59cd3b32 | ||
|
|
51ce2f8e5f | ||
|
|
a1d32600e6 | ||
|
|
fca7f39b74 | ||
|
|
d62b389816 | ||
|
|
1c87370738 | ||
|
|
8f751a33c3 | ||
|
|
e5b0e0f712 | ||
|
|
3fb9cf6101 | ||
|
|
ffd066b0f4 | ||
|
|
ae7dbaf035 | ||
|
|
4bba632820 | ||
|
|
7d9ec7823a | ||
|
|
5e1d777314 | ||
|
|
2d5f1727df | ||
|
|
8bfb607ef8 | ||
|
|
25c00a2209 | ||
|
|
330a67148c | ||
|
|
8689db3bd6 | ||
|
|
4aaedfa9d2 | ||
|
|
9f05072b09 | ||
|
|
005e766386 | ||
|
|
64d9604079 | ||
|
|
5bf497f604 | ||
|
|
74942a8e91 | ||
|
|
2f39ab1832 | ||
|
|
3e0f9951dd | ||
|
|
ff4121e50e | ||
|
|
4155657f6f | ||
|
|
7d6e8efb15 | ||
|
|
a490e3f68b | ||
|
|
467828f261 | ||
|
|
d5f0bac1aa | ||
|
|
2678e964e6 | ||
|
|
2ad3aaaca2 | ||
|
|
3eba873029 | ||
|
|
5a6c247bcb | ||
|
|
c2a328bb30 | ||
|
|
af1d1e7d3d | ||
|
|
968b78491b | ||
|
|
7e1e127680 | ||
|
|
4f2e8e8b2b | ||
|
|
ef991b4aa3 | ||
|
|
dbc3f75efa | ||
|
|
8cb947f707 | ||
|
|
361446c55b | ||
|
|
93b4e4074f | ||
|
|
f1bafaa237 | ||
|
|
1941ce9f42 | ||
|
|
7b8da9264b | ||
|
|
07d71b97ce | ||
|
|
c07abd1655 | ||
|
|
71e6aca3b2 | ||
|
|
81679a0c34 | ||
|
|
3e06bb8549 | ||
|
|
a427fa83f6 | ||
|
|
594350107d | ||
|
|
d73c55e449 | ||
|
|
f8b38d358b | ||
|
|
6fa5979ccb | ||
|
|
866d4b9e59 | ||
|
|
24e2617917 | ||
|
|
533999f0fe | ||
|
|
eaa95f208b | ||
|
|
9d874c09f6 | ||
|
|
b701bf8a30 | ||
|
|
7c102d03c7 | ||
|
|
0c0ad8da77 | ||
|
|
8d503b5362 | ||
|
|
274003219b | ||
|
|
0bba57ce8c | ||
|
|
afd8381b51 | ||
|
|
76ffae0660 | ||
|
|
74b63f68dd | ||
|
|
85431d93ed | ||
|
|
186af758eb | ||
|
|
c4dbc53ec4 | ||
|
|
00fc6c9262 | ||
|
|
9e2756872d | ||
|
|
c1c9a579e3 | ||
|
|
e3f8ccf486 | ||
|
|
3eeda5b2bf | ||
|
|
09edea7381 | ||
|
|
02da289e42 | ||
|
|
6d81e0f580 | ||
|
|
1c7b8f6e85 | ||
|
|
af6ce0f12c | ||
|
|
904404bfd2 | ||
|
|
a4d1bdafd6 | ||
|
|
e922107a25 | ||
|
|
8e763221fd | ||
|
|
df5b9c4dc3 | ||
|
|
cda8d2a9af | ||
|
|
58b5f108f2 | ||
|
|
93a207af8d | ||
|
|
fd77bc4a78 | ||
|
|
1e2d216c9e | ||
|
|
df1b3c4948 | ||
|
|
0b765fd547 | ||
|
|
8229e0dbef | ||
|
|
05c446084e | ||
|
|
e28263f673 | ||
|
|
b96c3e6a5d | ||
|
|
ddd7e2a0b8 | ||
|
|
b7bf622acb | ||
|
|
48cab72bd1 | ||
|
|
e735c8f6e0 | ||
|
|
7436273688 | ||
|
|
79e188a2ec | ||
|
|
17232a74f2 | ||
|
|
7af1f21709 | ||
|
|
b9bda3c30d | ||
|
|
bd0070c191 | ||
|
|
a43c0607ac | ||
|
|
2a1279c26d | ||
|
|
9ff208503c | ||
|
|
c73398fa51 | ||
|
|
25839c6c48 | ||
|
|
9d8ec0121c | ||
|
|
9c0e765d5a | ||
|
|
8f67d26ec0 | ||
|
|
b96446bf59 | ||
|
|
7d6185f0f5 | ||
|
|
ad2abcb447 | ||
|
|
df8f50e9bc | ||
|
|
b5501a398e | ||
|
|
baef38bda1 | ||
|
|
dc421733a1 | ||
|
|
968956b998 | ||
|
|
8458d3c376 | ||
|
|
7cdce2075e | ||
|
|
891d094b56 | ||
|
|
c8445f75e0 | ||
|
|
8afe15dd9b | ||
|
|
5cfcfdc5c7 | ||
|
|
9a40ef44fb | ||
|
|
54a8b24b6e | ||
|
|
f2d0d9bda9 | ||
|
|
30b904e1f3 | ||
|
|
8a385c1588 | ||
|
|
493d1adca1 | ||
|
|
6a03579aa4 | ||
|
|
b564762ef5 | ||
|
|
a7870f9997 | ||
|
|
37af708d04 | ||
|
|
279d3ae95e | ||
|
|
321db91227 | ||
|
|
99a1b10d2e | ||
|
|
39f15c676a | ||
|
|
af51884dac | ||
|
|
e3eb136b93 | ||
|
|
a810608d0d | ||
|
|
d78d5d448f | ||
|
|
8f28cc8708 | ||
|
|
0dc71387d4 | ||
|
|
ed759a47cb | ||
|
|
a5f6a3dc40 | ||
|
|
8429ee57dd | ||
|
|
95cc4c0984 | ||
|
|
ef549ef73e | ||
|
|
6d334f8f62 | ||
|
|
da73a665f0 | ||
|
|
72695161da | ||
|
|
66372e29eb | ||
|
|
b604e6b1f1 | ||
|
|
039d440f50 | ||
|
|
f40532072e | ||
|
|
b9f3b0ed92 | ||
|
|
35e2136e59 | ||
|
|
209557e03a | ||
|
|
d225261a77 | ||
|
|
0f14bad291 | ||
|
|
f4e8ba6beb | ||
|
|
1afc458839 | ||
|
|
629576ece4 | ||
|
|
b729ec75ca | ||
|
|
4d390a18ba | ||
|
|
fc3429bc45 | ||
|
|
06ab933220 | ||
|
|
61b95dac69 | ||
|
|
3cff443b59 | ||
|
|
38e11fdc5d | ||
|
|
94eb7340ec | ||
|
|
79476921ef | ||
|
|
d34280f171 | ||
|
|
c8987dca56 | ||
|
|
ccdb1b0215 | ||
|
|
bf0b70f10d | ||
|
|
adac7cd0e3 | ||
|
|
de879011f3 | ||
|
|
f275d7ae99 | ||
|
|
f5b2352264 | ||
|
|
110190e4d9 | ||
|
|
e1b81c9b74 | ||
|
|
3dfa4910e2 | ||
|
|
706a45c0b8 | ||
|
|
7bdd841fd2 | ||
|
|
6d64ac8442 | ||
|
|
175e677c82 | ||
|
|
8b856a3132 | ||
|
|
a97b7f61ff | ||
|
|
0b9c7cac74 | ||
|
|
32852d9825 | ||
|
|
63b6a548e1 | ||
|
|
f27c09a303 | ||
|
|
fb4a9133ed | ||
|
|
11691bf911 | ||
|
|
034781fc4f | ||
|
|
2fa9e8e2d9 | ||
|
|
565b41ed31 | ||
|
|
2570759aa0 | ||
|
|
eb04599224 | ||
|
|
83e51f160b | ||
|
|
3bf61e47d8 | ||
|
|
1c670cbcd2 | ||
|
|
82f70b1ed9 | ||
|
|
56a2795f38 | ||
|
|
dd39ed6e81 | ||
|
|
726b66072a | ||
|
|
7bf6b048be | ||
|
|
10a482fd41 | ||
|
|
16de496c5d | ||
|
|
33e8cff715 | ||
|
|
23eb5e1acd | ||
|
|
900acbdbcb | ||
|
|
45d6772cfe | ||
|
|
fa805211ac | ||
|
|
eca1e2d890 | ||
|
|
6027bfa668 | ||
|
|
679295f1de | ||
|
|
beee918e72 | ||
|
|
9d0fbdaf36 | ||
|
|
e60f34c475 | ||
|
|
1f987f7eed | ||
|
|
5dffc8a83c | ||
|
|
c9b0d2415a | ||
|
|
9893f72169 | ||
|
|
9a8547bc45 | ||
|
|
173be61cad | ||
|
|
855fc65068 | ||
|
|
4f16f7f014 | ||
|
|
909593073d | ||
|
|
b2f1dc2045 | ||
|
|
0cf127ff5c | ||
|
|
7316ccbb5f | ||
|
|
50ab0a78e0 | ||
|
|
ea59c2ae6d | ||
|
|
8cd9be5598 | ||
|
|
dc374320b8 | ||
|
|
5f97defa02 | ||
|
|
8910e98330 | ||
|
|
a11576bb59 | ||
|
|
de7d4fdb5f | ||
|
|
ddbaad372e | ||
|
|
70729acb60 | ||
|
|
5b60bebabb | ||
|
|
29f888398d | ||
|
|
e2365ea11e | ||
|
|
681607ae07 | ||
|
|
c82b876b6f | ||
|
|
ec6cab66bf | ||
|
|
08575c4bce | ||
|
|
caa5ba0ca2 | ||
|
|
7682c7ed4b | ||
|
|
41033e8bd0 | ||
|
|
c4d9b90a58 | ||
|
|
9c1108fdea | ||
|
|
1ee0ec3463 | ||
|
|
26ebb5b5de | ||
|
|
d9ab98a19f | ||
|
|
44a8a34725 | ||
|
|
b310d2131d | ||
|
|
0f16f7e6b2 | ||
|
|
d454296098 | ||
|
|
ad094a6c52 | ||
|
|
98a0f8c36e | ||
|
|
28ecf065f8 | ||
|
|
61c83b3d22 | ||
|
|
5e7630f24f | ||
|
|
4bccf0b322 | ||
|
|
0439c570ab | ||
|
|
78d4dc2ea3 | ||
|
|
7dc3d4d8f8 | ||
|
|
cdd85ee367 | ||
|
|
9ffb6b8bb6 | ||
|
|
ee32712334 | ||
|
|
b4c4729c8f | ||
|
|
f4ab08b5ca | ||
|
|
4cedb82f6e | ||
|
|
9917b0be5a | ||
|
|
363a391db4 | ||
|
|
0d784f664b | ||
|
|
0265852ab2 | ||
|
|
d377c5bd7f | ||
|
|
77678307a5 | ||
|
|
b7b37133ac | ||
|
|
f13c461cf7 | ||
|
|
2d1b13b6d0 | ||
|
|
556a834d33 | ||
|
|
cbed45a540 | ||
|
|
bfcb6bacf8 | ||
|
|
9e82f23de4 | ||
|
|
20925d812d | ||
|
|
e8d79c1502 | ||
|
|
8d45c22c3c | ||
|
|
16aef05416 | ||
|
|
8000bd993e | ||
|
|
8751c5fc27 | ||
|
|
29955c54b8 | ||
|
|
5d461b6c45 | ||
|
|
62471a036d | ||
|
|
0ed1711755 | ||
|
|
3939790637 | ||
|
|
483977a347 | ||
|
|
b5fd786410 | ||
|
|
95ce12946b | ||
|
|
0ec82af940 | ||
|
|
c2f01a209e | ||
|
|
7b9a35951b | ||
|
|
b6baea64d1 | ||
|
|
447637fb37 | ||
|
|
2b21f12d85 | ||
|
|
5a0dcd18c4 | ||
|
|
f3eff573fc | ||
|
|
18b2abbf6c | ||
|
|
7a33a02755 | ||
|
|
3aafbfb626 | ||
|
|
0283d73512 | ||
|
|
ebc79b0b6d | ||
|
|
b6f0933da1 | ||
|
|
d6e1aff5e6 | ||
|
|
81c488fe62 | ||
|
|
b6e61f0f18 | ||
|
|
f04d7b8252 | ||
|
|
c3a2a9a1cf | ||
|
|
83ab129925 | ||
|
|
fc172101b7 | ||
|
|
22e8070d31 | ||
|
|
fb84cd1881 | ||
|
|
5b2989b22a | ||
|
|
96c32a549f | ||
|
|
4b44b870de | ||
|
|
de8600a83e | ||
|
|
c0e0779f61 | ||
|
|
989527ca9e | ||
|
|
a73c5cdedd | ||
|
|
6732d5e87e | ||
|
|
d8eba2c4de | ||
|
|
dd5500c678 | ||
|
|
e105aad760 | ||
|
|
f886ecfdcf | ||
|
|
674500658f | ||
|
|
0b0b0c10b9 | ||
|
|
74ab294e6f | ||
|
|
32317fa2be | ||
|
|
17eefced98 | ||
|
|
4d87cd7f5c | ||
|
|
1b86315413 | ||
|
|
5f5eb0cb24 | ||
|
|
00c25e46b5 | ||
|
|
28ae3f3e55 | ||
|
|
02e4c447fb | ||
|
|
fc98e3b53b | ||
|
|
6d87de19d3 | ||
|
|
8686ed3e79 | ||
|
|
ecd73385f0 | ||
|
|
c0aad8bb11 | ||
|
|
4c8c36c325 | ||
|
|
db111e12ae | ||
|
|
7161f22f6d | ||
|
|
7088e9294e | ||
|
|
e1e9b12ead | ||
|
|
7471db2e0d | ||
|
|
e1e70abfab | ||
|
|
cb40817c27 | ||
|
|
a9b3766804 | ||
|
|
6b6a9cd8c4 | ||
|
|
d929a883fc | ||
|
|
8ddf9aa30c | ||
|
|
2b87d03f50 | ||
|
|
836ab0b6f7 | ||
|
|
08e983d3df | ||
|
|
222d08dc72 | ||
|
|
099fd9e8f0 | ||
|
|
52d78f0558 | ||
|
|
72dadf240e | ||
|
|
917893f4d3 | ||
|
|
63a52bbb4c | ||
|
|
ea7b78f868 | ||
|
|
707be37f35 | ||
|
|
7ef999a43f | ||
|
|
73a5c3b847 | ||
|
|
37991cf4a9 | ||
|
|
940b6777c0 | ||
|
|
e440740bd9 | ||
|
|
8a6d80dda1 | ||
|
|
388c1a6104 | ||
|
|
484ce2d8de | ||
|
|
caa75371a8 | ||
|
|
78c5e7b7ba | ||
|
|
414207ccc7 | ||
|
|
58eeea1ac8 | ||
|
|
5ae09a5d3d | ||
|
|
8deb67d1db | ||
|
|
99eb99dc7d | ||
|
|
5d1daca135 | ||
|
|
1a282c62b7 | ||
|
|
4d6b3bb492 | ||
|
|
55a0417174 | ||
|
|
326aa5c043 | ||
|
|
ca01db1efe | ||
|
|
14c3068647 | ||
|
|
deef029135 | ||
|
|
c21b31a36f | ||
|
|
aaeb7a61c4 | ||
|
|
3a6d52861d | ||
|
|
3737902524 | ||
|
|
09026d5413 | ||
|
|
c01a38db4d | ||
|
|
1e50f47812 | ||
|
|
87261b73b3 | ||
|
|
121f936e4f | ||
|
|
a5261150bb | ||
|
|
d4cc62de24 | ||
|
|
28526f7763 | ||
|
|
beb34bac0a | ||
|
|
6ea18cc152 | ||
|
|
5aa9a43b0c | ||
|
|
f839ec4d47 | ||
|
|
279c73a725 | ||
|
|
fb18828c2c | ||
|
|
b2b3e046e7 | ||
|
|
f5d7ab79b8 | ||
|
|
c9488ff0e1 | ||
|
|
8df5a2474c | ||
|
|
cb2a0f5e50 | ||
|
|
9525a77c98 | ||
|
|
dbb27d4a36 | ||
|
|
4da3051ac3 | ||
|
|
da313bea2d | ||
|
|
0604854c16 | ||
|
|
f5a12e3c11 | ||
|
|
ae60bce16e | ||
|
|
dabc92dc12 | ||
|
|
ee5c9da57b | ||
|
|
cf346c4179 | ||
|
|
f89de05989 | ||
|
|
5a3b6381c2 | ||
|
|
cb5a1ce84b | ||
|
|
c976fc9de2 | ||
|
|
fb3d344a5b | ||
|
|
93a2f57576 | ||
|
|
4fdadc2de6 | ||
|
|
701b698712 | ||
|
|
2a36dfaa48 | ||
|
|
7d70c84f7d | ||
|
|
cd8327ce2d | ||
|
|
79a41c2f8b | ||
|
|
60d1eabd0c | ||
|
|
be53392f0a | ||
|
|
d9025b763b | ||
|
|
fadaa762b5 | ||
|
|
5c46e766b0 | ||
|
|
678bbca816 | ||
|
|
fa207c2942 | ||
|
|
9e2ed8d97a | ||
|
|
4c419b468b | ||
|
|
31555f918c | ||
|
|
1d9ccbf010 | ||
|
|
1db0824586 | ||
|
|
4d9bd13285 | ||
|
|
6fd75407f4 | ||
|
|
1d07c58db8 | ||
|
|
847d1c0da7 | ||
|
|
414d5f13be | ||
|
|
985cae59cb | ||
|
|
72ee797c44 | ||
|
|
73caa61683 | ||
|
|
ee65e66c6c | ||
|
|
48f3734b37 | ||
|
|
df08b15a80 | ||
|
|
8d10649023 | ||
|
|
c346a4e4cf | ||
|
|
9b27320468 | ||
|
|
d25d599163 | ||
|
|
5dc16bf67a | ||
|
|
dea4390e10 | ||
|
|
d77adba2d7 | ||
|
|
b6c2910a61 | ||
|
|
023c594b9b | ||
|
|
d50c8903f9 | ||
|
|
b51a19058f | ||
|
|
c1845ef979 | ||
|
|
ed3076c1e3 | ||
|
|
436ab156b1 | ||
|
|
ca9bd98b2a | ||
|
|
b20df0057f | ||
|
|
d7c291117c | ||
|
|
56478b94ae | ||
|
|
3b7a24cc92 | ||
|
|
2c63fed0e8 | ||
|
|
fab23e172d | ||
|
|
45f197087d | ||
|
|
2fb1f177d9 | ||
|
|
dc1f8d9a16 | ||
|
|
2adb484d90 | ||
|
|
46abc467c6 | ||
|
|
b1828eec81 | ||
|
|
a6ad856b3b | ||
|
|
8a7b2f0191 | ||
|
|
06392556ec | ||
|
|
222973731a | ||
|
|
30cc300814 | ||
|
|
722e2f0957 | ||
|
|
4f982cb6f5 | ||
|
|
3f25540d1e | ||
|
|
7de89daf4d | ||
|
|
4337731793 | ||
|
|
04b726d04d | ||
|
|
16dc8023ae | ||
|
|
c8ef0d4bbe | ||
|
|
aee944ad9b | ||
|
|
63f570d12b | ||
|
|
109d7b4386 | ||
|
|
34db7168de | ||
|
|
b62d5afd3f | ||
|
|
ab0bba9958 | ||
|
|
e4676fbb20 | ||
|
|
fd90d8dbf8 | ||
|
|
edbe4553a8 | ||
|
|
0e18bbb519 | ||
|
|
473f37a6c9 | ||
|
|
90525ea340 | ||
|
|
083a5e420b | ||
|
|
0f165cf273 | ||
|
|
3b57acb098 | ||
|
|
8a1213f73f | ||
|
|
9ac5676264 | ||
|
|
da05e6a690 | ||
|
|
5dcf4f2419 | ||
|
|
aa69564e94 | ||
|
|
73dc52f0b9 | ||
|
|
ae6c9955fb | ||
|
|
dd494192a1 | ||
|
|
fa9fc61ee6 | ||
|
|
7faf69c42d | ||
|
|
61e5152b36 | ||
|
|
301cc00d3b | ||
|
|
1bd2ed97b2 | ||
|
|
3a9d91bb57 | ||
|
|
a26e5e37b8 | ||
|
|
a2e87ae6d1 | ||
|
|
482dc4ee3c | ||
|
|
e698bc0929 | ||
|
|
d64218ea47 | ||
|
|
afb733429b | ||
|
|
9e24c8b0b8 | ||
|
|
f86ac0a31d | ||
|
|
989a7519d5 | ||
|
|
f811e82ad5 | ||
|
|
52928277c2 | ||
|
|
a4b249905e | ||
|
|
de8c144109 | ||
|
|
86c5732f05 | ||
|
|
4a7159dc6c | ||
|
|
7fe7b5d7e2 | ||
|
|
84f5f8528f | ||
|
|
a28d74d2d2 | ||
|
|
2f25926b52 | ||
|
|
4b0c5ec1e9 | ||
|
|
b3e98fa251 | ||
|
|
ed1dca3b40 | ||
|
|
a27a05e698 | ||
|
|
585aa5fac9 | ||
|
|
a5a086c06e | ||
|
|
ee356181ed | ||
|
|
114c6c6af1 | ||
|
|
96096e769d | ||
|
|
b8d9cea40a | ||
|
|
f9a905424f | ||
|
|
10d29bac27 | ||
|
|
9a3433a769 | ||
|
|
b2dfbca4f7 | ||
|
|
a25c404a31 | ||
|
|
1463ff6353 | ||
|
|
c8cde25280 | ||
|
|
b3d09e5532 | ||
|
|
c764daeac9 | ||
|
|
8e17181225 | ||
|
|
cd66abd80a | ||
|
|
0603231e16 | ||
|
|
e73f197706 | ||
|
|
71409500a9 | ||
|
|
83485ba28d | ||
|
|
598382f216 | ||
|
|
ba2900b4aa | ||
|
|
1774bc1d78 | ||
|
|
b27c41df41 | ||
|
|
a1ec1c4af3 | ||
|
|
666c84f948 | ||
|
|
c1471b042b | ||
|
|
7bd952c2a8 | ||
|
|
18005e1153 | ||
|
|
a2057e286e | ||
|
|
74f084382d | ||
|
|
59d2dceb2c | ||
|
|
b087829d9b | ||
|
|
a6cac026c6 | ||
|
|
81cb734910 | ||
|
|
90790efabe | ||
|
|
8e092dca08 | ||
|
|
fa10fa9e64 | ||
|
|
9c2368bab8 | ||
|
|
815dafff5a | ||
|
|
5f6b9742d1 | ||
|
|
b64b2719bc | ||
|
|
3fcc2c725f | ||
|
|
8126042cb4 | ||
|
|
30d2217876 | ||
|
|
c8de90386d | ||
|
|
1553648f54 | ||
|
|
aef02ded49 | ||
|
|
4bc8b66e3a | ||
|
|
e0f3ba1a46 | ||
|
|
1683c6c470 | ||
|
|
24b279f642 | ||
|
|
e82e2278a2 | ||
|
|
f623b9cc48 | ||
|
|
7808919ea4 | ||
|
|
9ee54a9b3a | ||
|
|
c0b3a3636c | ||
|
|
74c1d7d5f4 | ||
|
|
dd08ddd29d | ||
|
|
2169593a4f | ||
|
|
bf009adc4e | ||
|
|
2dce4a36d9 | ||
|
|
69683b305d | ||
|
|
f459045c8c | ||
|
|
1806cb5075 | ||
|
|
2764048933 | ||
|
|
7012d1083e | ||
|
|
406ddda49f | ||
|
|
1c9af0041d | ||
|
|
9402bfd9ef | ||
|
|
a39a7f8ada | ||
|
|
95143d669f | ||
|
|
5061ab5f05 | ||
|
|
92b78195a1 | ||
|
|
bc70df09bb | ||
|
|
2f327c7f34 | ||
|
|
7650a9d9e4 | ||
|
|
b87d62b760 | ||
|
|
c6c2071280 | ||
|
|
28b012a9cc | ||
|
|
821add521e | ||
|
|
1443d5fffa | ||
|
|
24844c6332 | ||
|
|
a26140a98f | ||
|
|
456b0e7bca | ||
|
|
a1a34e0a9b | ||
|
|
955a34ed82 | ||
|
|
6eb493e1db | ||
|
|
50f3294545 | ||
|
|
1a6915b4d8 | ||
|
|
4bc8a7b528 | ||
|
|
9940a771e1 | ||
|
|
88e4ad1d36 | ||
|
|
3e08e11574 | ||
|
|
215ba7757e | ||
|
|
54041560f5 | ||
|
|
dd553cb9e4 | ||
|
|
1dabc37a3a | ||
|
|
34a52b7574 | ||
|
|
99d96a6ba3 | ||
|
|
b87e838b05 | ||
|
|
652303d907 | ||
|
|
4ebfbeef6d | ||
|
|
27b35f3dcc | ||
|
|
48c448a356 | ||
|
|
af123efc85 | ||
|
|
166a16089f | ||
|
|
e02dc25a9e | ||
|
|
0285f77feb | ||
|
|
bf03365731 | ||
|
|
727433f0db | ||
|
|
1e4a6cbe1c | ||
|
|
543be22259 | ||
|
|
6195ec1bc7 | ||
|
|
f5342d557b | ||
|
|
43a6f9d2d8 | ||
|
|
33795311ba | ||
|
|
60a8a47a86 | ||
|
|
269f95aef7 | ||
|
|
23b6d0adbe | ||
|
|
a70f409dee | ||
|
|
41a201e991 | ||
|
|
4c83ec781b | ||
|
|
63cf4a9893 | ||
|
|
57241aed6a | ||
|
|
fb9e0e1b1a | ||
|
|
fdb24f917f | ||
|
|
2e91541147 | ||
|
|
ebb48992c0 | ||
|
|
3b21e822ac | ||
|
|
66c2f3a08a | ||
|
|
c1c7368372 | ||
|
|
7fda17ac4f | ||
|
|
242256b45d | ||
|
|
79dbd85e74 | ||
|
|
8982646a63 | ||
|
|
fbf9eeb8d7 | ||
|
|
4911e67aa8 | ||
|
|
66d5a12094 | ||
|
|
4d94665d3d | ||
|
|
e3b1f10354 | ||
|
|
d971214e89 | ||
|
|
94fe1350f4 | ||
|
|
494f552020 | ||
|
|
0b219591dd | ||
|
|
28154116c4 | ||
|
|
4488d9300d | ||
|
|
bdf06b6060 | ||
|
|
105f262769 | ||
|
|
1f295ae62d | ||
|
|
7c80315d48 | ||
|
|
93696dfa49 | ||
|
|
2238faa8fd | ||
|
|
5bd7048dfe | ||
|
|
43f4c1dfd6 | ||
|
|
2634943070 | ||
|
|
73db00ea87 | ||
|
|
a9066ef619 | ||
|
|
3e4950247e | ||
|
|
7292e5031b | ||
|
|
98950444e6 | ||
|
|
1249a88daf | ||
|
|
1d3ea9cba8 | ||
|
|
c04d364e49 | ||
|
|
e5e8774bc5 | ||
|
|
1a52475baa | ||
|
|
eac67711b5 | ||
|
|
7ad9855775 | ||
|
|
bffeb8c5aa | ||
|
|
97dcae2fb6 | ||
|
|
4e27c7372b | ||
|
|
67ba4ac017 | ||
|
|
b84a28d9dd | ||
|
|
0d1d166269 | ||
|
|
62dbf128a5 | ||
|
|
6258f69c2c | ||
|
|
fb3d202184 | ||
|
|
ea9d247693 | ||
|
|
65cb579ccc | ||
|
|
ebde935587 | ||
|
|
01f160092e | ||
|
|
053a9d88ee | ||
|
|
742dc8804a | ||
|
|
11b02c5e13 | ||
|
|
0324f0f18b | ||
|
|
35559dd156 | ||
|
|
07e4a0df24 | ||
|
|
eab8963d92 | ||
|
|
8e81a3f7a5 | ||
|
|
294df06bed | ||
|
|
f0801eeaad | ||
|
|
79209163af | ||
|
|
9ae6099323 | ||
|
|
273c2c5fbc | ||
|
|
8e47db95c6 | ||
|
|
87d796becc | ||
|
|
09bf17f365 | ||
|
|
34c138f62a | ||
|
|
0e6ddcffef | ||
|
|
a5fe0f8417 | ||
|
|
c00db580d2 | ||
|
|
4c625eb0d6 | ||
|
|
0e158f1b05 | ||
|
|
3ff5583bb6 | ||
|
|
aecb3ebe6f | ||
|
|
0017571134 | ||
|
|
752fb79cac | ||
|
|
465a0e3b5e | ||
|
|
a0921ba770 | ||
|
|
927ab782d4 | ||
|
|
06f3a96515 | ||
|
|
847f8d0124 | ||
|
|
da8058b5dc | ||
|
|
2029c3f7c4 | ||
|
|
4ed098d64f | ||
|
|
3c652fbccb | ||
|
|
31d84d08e1 | ||
|
|
98185c3285 | ||
|
|
b225f0052c | ||
|
|
7ff05dde60 | ||
|
|
f2e4930801 | ||
|
|
697d5aade0 | ||
|
|
9eba0a5500 | ||
|
|
e302d9c571 | ||
|
|
4475c1fb99 | ||
|
|
ba05e365f0 | ||
|
|
227da5e6ce | ||
|
|
44acfea13a | ||
|
|
e34a8a5084 | ||
|
|
472b34493d | ||
|
|
506a9218f4 | ||
|
|
86b6fbd90c | ||
|
|
da026ebe10 | ||
|
|
b0e6b6a062 | ||
|
|
b4f1cf7143 | ||
|
|
24950c329b | ||
|
|
c3db551fd7 | ||
|
|
70d3f1e772 | ||
|
|
2b3aab956d | ||
|
|
35f7a62c1c | ||
|
|
525eedaf38 | ||
|
|
982d395b6a | ||
|
|
11cfdfba16 | ||
|
|
3cc73c9659 | ||
|
|
82f4ea062b | ||
|
|
8bdaac168a | ||
|
|
5f19438017 | ||
|
|
cedd6e358d | ||
|
|
d010bd778c | ||
|
|
264546ddf1 | ||
|
|
773ad92533 | ||
|
|
876fe14529 | ||
|
|
9a8b88f974 |
6
.cvsignore
Normal file
6
.cvsignore
Normal file
@@ -0,0 +1,6 @@
|
||||
Makefile
|
||||
config.h
|
||||
config.log
|
||||
config.status
|
||||
stamp-h1
|
||||
autom4te.cache
|
||||
1
.prev-version
Normal file
1
.prev-version
Normal file
@@ -0,0 +1 @@
|
||||
4.5.1
|
||||
411
ABOUT-NLS
411
ABOUT-NLS
@@ -8,7 +8,7 @@ A few packages already provide translations for their messages.
|
||||
|
||||
If you found this `ABOUT-NLS' file inside a distribution, you may
|
||||
assume that the distributed package does use GNU `gettext' internally,
|
||||
itself available at your nearest GNU archive site. But you do *not*
|
||||
itself available at your nearest GNU archive site. But you do _not_
|
||||
need to install GNU `gettext' prior to configuring, installing or using
|
||||
this package with messages translated.
|
||||
|
||||
@@ -22,8 +22,8 @@ related to internationalization, you should tell about the version of
|
||||
`gettext' which is used. The information can be found in the
|
||||
`intl/VERSION' file, in internationalized packages.
|
||||
|
||||
One advise in advance
|
||||
=====================
|
||||
Quick configuration advice
|
||||
==========================
|
||||
|
||||
If you want to exploit the full power of internationalization, you
|
||||
should configure it using
|
||||
@@ -34,13 +34,14 @@ to force usage of internationalizing routines provided within this
|
||||
package, despite the existence of internationalizing capabilities in the
|
||||
operating system where this package is being installed. So far, only
|
||||
the `gettext' implementation in the GNU C library version 2 provides as
|
||||
many features (such as locale alias or message inheritance) as the
|
||||
implementation here. It is also not possible to offer this additional
|
||||
functionality on top of a `catgets' implementation. Future versions of
|
||||
GNU `gettext' will very likely convey even more functionality. So it
|
||||
might be a good idea to change to GNU `gettext' as soon as possible.
|
||||
many features (such as locale alias, message inheritance, automatic
|
||||
charset conversion or plural form handling) as the implementation here.
|
||||
It is also not possible to offer this additional functionality on top
|
||||
of a `catgets' implementation. Future versions of GNU `gettext' will
|
||||
very likely convey even more functionality. So it might be a good idea
|
||||
to change to GNU `gettext' as soon as possible.
|
||||
|
||||
So you need not provide this option if you are using GNU libc 2 or
|
||||
So you need _not_ provide this option if you are using GNU libc 2 or
|
||||
you have installed a recent copy of the GNU gettext package with the
|
||||
included `libintl'.
|
||||
|
||||
@@ -53,23 +54,20 @@ Most such packages use GNU `gettext'. Other packages have their own
|
||||
ways to internationalization, predating GNU `gettext'.
|
||||
|
||||
By default, this package will be installed to allow translation of
|
||||
messages. It will automatically detect whether the system provides
|
||||
usable `catgets' (if using this is selected by the installer) or
|
||||
`gettext' functions. If neither is available, the GNU `gettext' own
|
||||
messages. It will automatically detect whether the system already
|
||||
provides the GNU `gettext' functions. If not, the GNU `gettext' own
|
||||
library will be used. This library is wholly contained within this
|
||||
package, usually in the `intl/' subdirectory, so prior installation of
|
||||
the GNU `gettext' package is *not* required. Installers may use
|
||||
the GNU `gettext' package is _not_ required. Installers may use
|
||||
special options at configuration time for changing the default
|
||||
behaviour. The commands:
|
||||
|
||||
./configure --with-included-gettext
|
||||
./configure --with-catgets
|
||||
./configure --disable-nls
|
||||
|
||||
will respectively bypass any pre-existing `catgets' or `gettext' to use
|
||||
the internationalizing routines provided within this package, enable
|
||||
the use of the `catgets' functions (if found on the locale system), or
|
||||
else, *totally* disable translation of messages.
|
||||
will respectively bypass any pre-existing `gettext' to use the
|
||||
internationalizing routines provided within this package, or else,
|
||||
_totally_ disable translation of messages.
|
||||
|
||||
When you already have GNU `gettext' installed on your system and run
|
||||
configure without an option for your new package, `configure' will
|
||||
@@ -83,18 +81,10 @@ package is more recent, you should use
|
||||
|
||||
to prevent auto-detection.
|
||||
|
||||
By default the configuration process will not test for the `catgets'
|
||||
function and therefore they will not be used. The reasons are already
|
||||
given above: the emulation on top of `catgets' cannot provide all the
|
||||
extensions provided by the GNU `gettext' library. If you nevertheless
|
||||
want to use the `catgets' functions use
|
||||
|
||||
./configure --with-catgets
|
||||
|
||||
to enable the test for `catgets' (this causes no harm if `catgets' is
|
||||
not available on your system). If you really select this option we
|
||||
would like to hear about the reasons because we cannot think of any
|
||||
good one ourself.
|
||||
The configuration process will not test for the `catgets' function
|
||||
and therefore it will not be used. The reason is that even an
|
||||
emulation of `gettext' on top of `catgets' could not provide all the
|
||||
extensions of the GNU `gettext' library.
|
||||
|
||||
Internationalized packages have usually many `po/LL.po' files, where
|
||||
LL gives an ISO 639 two-letter code identifying the language. Unless
|
||||
@@ -110,22 +100,42 @@ Using This Package
|
||||
|
||||
As a user, if your language has been installed for this package, you
|
||||
only have to set the `LANG' environment variable to the appropriate
|
||||
ISO 639 `LL' two-letter code prior to using the programs in the
|
||||
package. For example, let's suppose that you speak German. At the
|
||||
shell prompt, merely execute `setenv LANG de' (in `csh'),
|
||||
`export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash'). This
|
||||
can be done from your `.login' or `.profile' file, once and for all.
|
||||
`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code,
|
||||
and `CC' is an ISO 3166 two-letter country code. For example, let's
|
||||
suppose that you speak German and live in Germany. At the shell
|
||||
prompt, merely execute `setenv LANG de_DE' (in `csh'),
|
||||
`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
|
||||
This can be done from your `.login' or `.profile' file, once and for
|
||||
all.
|
||||
|
||||
An operating system might already offer message localization for
|
||||
many of its programs, while other programs have been installed locally
|
||||
with the full capabilities of GNU `gettext'. Just using `gettext'
|
||||
extended syntax for `LANG' would break proper localization of already
|
||||
available operating system programs. In this case, users should set
|
||||
both `LANGUAGE' and `LANG' variables in their environment, as programs
|
||||
using GNU `gettext' give preference to `LANGUAGE'. For example, some
|
||||
Swedish users would rather read translations in German than English for
|
||||
when Swedish is not available. This is easily accomplished by setting
|
||||
`LANGUAGE' to `sv:de' while leaving `LANG' to `sv'.
|
||||
You might think that the country code specification is redundant.
|
||||
But in fact, some languages have dialects in different countries. For
|
||||
example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
|
||||
country code serves to distinguish the dialects.
|
||||
|
||||
The locale naming convention of `LL_CC', with `LL' denoting the
|
||||
language and `CC' denoting the country, is the one use on systems based
|
||||
on GNU libc. On other systems, some variations of this scheme are
|
||||
used, such as `LL' or `LL_CC.ENCODING'. You can get the list of
|
||||
locales supported by your system for your country by running the command
|
||||
`locale -a | grep '^LL''.
|
||||
|
||||
Not all programs have translations for all languages. By default, an
|
||||
English message is shown in place of a nonexistent translation. If you
|
||||
understand other languages, you can set up a priority list of languages.
|
||||
This is done through a different environment variable, called
|
||||
`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG'
|
||||
for the purpose of message handling, but you still need to have `LANG'
|
||||
set to the primary language; this is required by other parts of the
|
||||
system libraries. For example, some Swedish users who would rather
|
||||
read translations in German than English for when Swedish is not
|
||||
available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
|
||||
|
||||
In the `LANGUAGE' environment variable, but not in the `LANG'
|
||||
environment variable, `LL_CC' combinations can be abbreviated as `LL'
|
||||
to denote the language's main dialect. For example, `de' is equivalent
|
||||
to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
|
||||
(Portuguese as spoken in Portugal) in this context.
|
||||
|
||||
Translating Teams
|
||||
=================
|
||||
@@ -133,33 +143,21 @@ Translating Teams
|
||||
For the Free Translation Project to be a success, we need interested
|
||||
people who like their own language and write it well, and who are also
|
||||
able to synergize with other translators speaking the same language.
|
||||
Each translation team has its own mailing list, courtesy of Linux
|
||||
International. You may reach your translation team at the address
|
||||
`LL@li.org', replacing LL by the two-letter ISO 639 code for your
|
||||
language. Language codes are *not* the same as the country codes given
|
||||
in ISO 3166. The following translation teams exist, as of December
|
||||
1997:
|
||||
Each translation team has its own mailing list. The up-to-date list of
|
||||
teams can be found at the Free Translation Project's homepage,
|
||||
`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
|
||||
area.
|
||||
|
||||
Chinese `zh', Czech `cs', Danish `da', Dutch `nl', English `en',
|
||||
Esperanto `eo', Finnish `fi', French `fr', German `de', Hungarian
|
||||
`hu', Irish `ga', Italian `it', Indonesian `id', Japanese `ja',
|
||||
Korean `ko', Latin `la', Norwegian `no', Persian `fa', Polish
|
||||
`pl', Portuguese `pt', Russian `ru', Slovenian `sl', Spanish `es',
|
||||
Swedish `sv', and Turkish `tr'.
|
||||
|
||||
For example, you may reach the Chinese translation team by writing to
|
||||
`zh@li.org'.
|
||||
|
||||
If you'd like to volunteer to *work* at translating messages, you
|
||||
If you'd like to volunteer to _work_ at translating messages, you
|
||||
should become a member of the translating team for your own language.
|
||||
The subscribing address is *not* the same as the list itself, it has
|
||||
The subscribing address is _not_ the same as the list itself, it has
|
||||
`-request' appended. For example, speakers of Swedish can send a
|
||||
message to `sv-request@li.org', having this message body:
|
||||
|
||||
subscribe
|
||||
|
||||
Keep in mind that team members are expected to participate
|
||||
*actively* in translations, or at solving translational difficulties,
|
||||
_actively_ in translations, or at solving translational difficulties,
|
||||
rather than merely lurking around. If your team does not exist yet and
|
||||
you want to start one, or if you are unsure about what to do or how to
|
||||
get started, please write to `translation@iro.umontreal.ca' to reach the
|
||||
@@ -173,42 +171,232 @@ Available Packages
|
||||
==================
|
||||
|
||||
Languages are not equally supported in all packages. The following
|
||||
matrix shows the current state of internationalization, as of December
|
||||
1997. The matrix shows, in regard of each package, for which languages
|
||||
PO files have been submitted to translation coordination.
|
||||
matrix shows the current state of internationalization, as of August
|
||||
2002. The matrix shows, in regard of each package, for which languages
|
||||
PO files have been submitted to translation coordination, with a
|
||||
translation percentage of at least 50%.
|
||||
|
||||
Ready PO files cs da de en es fi fr it ja ko nl no pl pt ru sl sv
|
||||
.----------------------------------------------------.
|
||||
bash | [] [] [] | 3
|
||||
bison | [] [] [] | 3
|
||||
clisp | [] [] [] [] | 4
|
||||
cpio | [] [] [] [] [] [] | 6
|
||||
diffutils | [] [] [] [] [] | 5
|
||||
enscript | [] [] [] [] [] [] | 6
|
||||
fileutils | [] [] [] [] [] [] [] [] [] [] | 10
|
||||
findutils | [] [] [] [] [] [] [] [] [] | 9
|
||||
flex | [] [] [] [] | 4
|
||||
gcal | [] [] [] [] [] | 5
|
||||
gettext | [] [] [] [] [] [] [] [] [] [] [] | 12
|
||||
grep | [] [] [] [] [] [] [] [] [] [] | 10
|
||||
hello | [] [] [] [] [] [] [] [] [] [] [] | 11
|
||||
id-utils | [] [] [] | 3
|
||||
indent | [] [] [] [] [] | 5
|
||||
libc | [] [] [] [] [] [] [] | 7
|
||||
m4 | [] [] [] [] [] [] | 6
|
||||
make | [] [] [] [] [] [] | 6
|
||||
music | [] [] | 2
|
||||
ptx | [] [] [] [] [] [] [] [] | 8
|
||||
recode | [] [] [] [] [] [] [] [] [] | 9
|
||||
sh-utils | [] [] [] [] [] [] [] [] | 8
|
||||
sharutils | [] [] [] [] [] [] | 6
|
||||
tar | [] [] [] [] [] [] [] [] [] [] [] | 11
|
||||
texinfo | [] [] [] | 3
|
||||
textutils | [] [] [] [] [] [] [] [] [] | 9
|
||||
wdiff | [] [] [] [] [] [] [] [] | 8
|
||||
`----------------------------------------------------'
|
||||
17 languages cs da de en es fi fr it ja ko nl no pl pt ru sl sv
|
||||
27 packages 6 4 25 1 18 1 26 2 1 12 20 9 19 7 4 7 17 179
|
||||
Ready PO files be bg ca cs da de el en eo es et fi fr
|
||||
+----------------------------------------+
|
||||
a2ps | [] [] [] [] |
|
||||
ap-utils | |
|
||||
bash | [] [] [] [] |
|
||||
bfd | [] [] |
|
||||
binutils | [] [] |
|
||||
bison | [] [] [] [] |
|
||||
clisp | |
|
||||
clisp | [] [] [] [] |
|
||||
clisplow | |
|
||||
cpio | [] [] [] [] |
|
||||
darkstat | () |
|
||||
diffutils | [] [] [] [] [] [] |
|
||||
enscript | [] [] |
|
||||
error | [] [] [] |
|
||||
fetchmail | [] () [] [] [] () |
|
||||
fileutils | [] [] [] [] [] |
|
||||
findutils | [] [] [] [] [] [] |
|
||||
flex | [] [] [] [] [] |
|
||||
gas | [] [] |
|
||||
gawk | [] [] [] |
|
||||
gcal | [] [] |
|
||||
gcc | [] [] |
|
||||
gettext | [] [] [] [] [] |
|
||||
gnupg | [] [] [] [] [] [] [] |
|
||||
gprof | [] [] |
|
||||
gpsdrive | () () () () () |
|
||||
grep | [] [] [] [] [] [] [] [] |
|
||||
gretl | [] |
|
||||
gthumb | () () () |
|
||||
hello | [] [] [] [] [] [] [] [] [] |
|
||||
id-utils | [] [] [] |
|
||||
indent | [] [] [] [] [] |
|
||||
jpilot | () [] [] [] |
|
||||
jwhois | [] [] |
|
||||
kbd | [] [] [] |
|
||||
ld | [] [] |
|
||||
libc | [] [] [] [] [] [] [] [] |
|
||||
libiconv | [] [] [] [] |
|
||||
lifelines | () () |
|
||||
lilypond | [] [] |
|
||||
lingoteach | [] [] |
|
||||
lingoteach_lessons| () () |
|
||||
lynx | [] [] [] [] [] |
|
||||
m4 | [] [] [] [] [] |
|
||||
make | [] [] [] [] |
|
||||
man-db | [] () () [] () () |
|
||||
mysecretdiary | [] [] [] |
|
||||
nano | [] () [] [] [] [] |
|
||||
nano_1_0 | [] () [] [] [] [] |
|
||||
opcodes | [] [] [] |
|
||||
parted | [] [] [] [] [] |
|
||||
ptx | [] [] [] [] [] [] [] |
|
||||
python | |
|
||||
recode | [] [] [] [] [] [] |
|
||||
sed | [] [] [] [] [] [] [] [] [] [] |
|
||||
sh-utils | [] [] [] [] |
|
||||
sharutils | [] [] [] [] [] [] [] |
|
||||
sketch | () [] () |
|
||||
soundtracker | [] [] [] |
|
||||
sp | [] |
|
||||
tar | [] [] [] [] [] [] |
|
||||
texinfo | [] [] [] [] [] |
|
||||
textutils | [] [] [] [] [] |
|
||||
util-linux | [] [] [] [] [] [] |
|
||||
vorbis-tools | [] |
|
||||
wastesedge | |
|
||||
wdiff | [] [] [] [] [] [] |
|
||||
wget | [] [] [] [] [] [] [] [] [] [] |
|
||||
+----------------------------------------+
|
||||
be bg ca cs da de el en eo es et fi fr
|
||||
0 2 19 10 30 44 9 1 12 44 17 6 53
|
||||
|
||||
gl he hr hu id it ja ko lv nb nl nn
|
||||
+-------------------------------------+
|
||||
a2ps | () () [] |
|
||||
ap-utils | |
|
||||
bash | [] |
|
||||
bfd | [] |
|
||||
binutils | [] |
|
||||
bison | [] [] [] [] |
|
||||
clisp | |
|
||||
clisp | [] |
|
||||
clisplow | |
|
||||
cpio | [] [] [] [] |
|
||||
darkstat | |
|
||||
diffutils | [] [] [] [] [] |
|
||||
enscript | [] [] |
|
||||
error | [] |
|
||||
fetchmail | [] |
|
||||
fileutils | [] [] [] |
|
||||
findutils | [] [] [] [] [] [] [] [] |
|
||||
flex | [] |
|
||||
gas | |
|
||||
gawk | [] |
|
||||
gcal | |
|
||||
gcc | [] |
|
||||
gettext | [] [] |
|
||||
gnupg | [] [] [] [] |
|
||||
gprof | [] |
|
||||
gpsdrive | [] () () |
|
||||
grep | [] [] [] [] [] [] [] |
|
||||
gretl | |
|
||||
gthumb | () () |
|
||||
hello | [] [] [] [] [] [] [] [] [] [] [] [] |
|
||||
id-utils | [] [] |
|
||||
indent | [] [] [] [] |
|
||||
jpilot | () () |
|
||||
jwhois | [] [] |
|
||||
kbd | |
|
||||
ld | |
|
||||
libc | [] [] [] [] |
|
||||
libiconv | [] [] [] |
|
||||
lifelines | |
|
||||
lilypond | [] |
|
||||
lingoteach | [] |
|
||||
lingoteach_lessons| |
|
||||
lynx | [] [] [] [] |
|
||||
m4 | [] [] [] [] |
|
||||
make | [] [] [] [] [] [] |
|
||||
man-db | () () |
|
||||
mysecretdiary | [] |
|
||||
nano | [] [] [] [] |
|
||||
nano_1_0 | [] [] [] [] [] |
|
||||
opcodes | [] [] |
|
||||
parted | [] [] [] |
|
||||
ptx | [] [] [] [] [] |
|
||||
python | |
|
||||
recode | [] [] [] |
|
||||
sed | [] [] [] [] [] [] [] [] |
|
||||
sh-utils | [] [] [] |
|
||||
sharutils | [] [] [] |
|
||||
sketch | () |
|
||||
soundtracker | [] [] |
|
||||
sp | |
|
||||
tar | [] [] [] [] [] [] |
|
||||
texinfo | [] [] [] |
|
||||
textutils | [] [] [] [] |
|
||||
util-linux | () [] |
|
||||
vorbis-tools | [] |
|
||||
wastesedge | |
|
||||
wdiff | [] [] [] |
|
||||
wget | [] [] [] [] [] [] |
|
||||
+-------------------------------------+
|
||||
gl he hr hu id it ja ko lv nb nl nn
|
||||
23 9 12 19 16 13 26 9 1 7 19 3
|
||||
|
||||
no pl pt pt_BR ru sk sl sv tr uk zh_CN zh_TW
|
||||
+----------------------------------------------+
|
||||
a2ps | () () () [] [] [] [] [] | 10
|
||||
ap-utils | () | 0
|
||||
bash | [] | 6
|
||||
bfd | [] [] | 5
|
||||
binutils | [] [] | 5
|
||||
bison | [] [] [] [] | 12
|
||||
clisp | | 0
|
||||
clisp | | 5
|
||||
clisplow | | 0
|
||||
cpio | [] [] [] [] | 12
|
||||
darkstat | [] [] () () | 2
|
||||
diffutils | [] [] [] [] [] [] | 17
|
||||
enscript | [] [] [] [] | 8
|
||||
error | [] [] [] | 7
|
||||
fetchmail | () () [] | 6
|
||||
fileutils | [] [] [] [] [] [] | 14
|
||||
findutils | [] [] [] [] [] [] [] | 21
|
||||
flex | [] [] [] | 9
|
||||
gas | [] | 3
|
||||
gawk | [] [] | 6
|
||||
gcal | [] [] | 4
|
||||
gcc | [] | 4
|
||||
gettext | [] [] [] [] [] [] | 13
|
||||
gnupg | [] [] [] | 14
|
||||
gprof | [] [] | 5
|
||||
gpsdrive | [] [] | 3
|
||||
grep | [] [] [] [] [] | 20
|
||||
gretl | | 1
|
||||
gthumb | () () [] | 1
|
||||
hello | [] [] [] [] [] [] [] | 28
|
||||
id-utils | [] [] [] [] | 9
|
||||
indent | [] [] [] [] [] | 14
|
||||
jpilot | () () [] [] | 5
|
||||
jwhois | [] () () [] [] | 7
|
||||
kbd | [] [] | 5
|
||||
ld | [] [] | 4
|
||||
libc | [] [] [] [] [] [] | 18
|
||||
libiconv | [] [] [] [] [] | 12
|
||||
lifelines | [] | 1
|
||||
lilypond | [] | 4
|
||||
lingoteach | [] [] | 5
|
||||
lingoteach_lessons| () | 0
|
||||
lynx | [] [] [] [] | 13
|
||||
m4 | [] [] [] [] | 13
|
||||
make | [] [] [] [] [] | 15
|
||||
man-db | | 3
|
||||
mysecretdiary | [] [] [] | 7
|
||||
nano | [] [] [] [] | 13
|
||||
nano_1_0 | [] [] [] [] | 14
|
||||
opcodes | [] [] [] | 8
|
||||
parted | [] [] [] [] | 12
|
||||
ptx | [] [] [] [] [] [] [] | 19
|
||||
python | | 0
|
||||
recode | [] [] [] [] [] [] | 15
|
||||
sed | [] [] [] [] [] [] | 24
|
||||
sh-utils | [] [] | 9
|
||||
sharutils | [] [] [] [] | 14
|
||||
sketch | [] () [] | 4
|
||||
soundtracker | [] | 6
|
||||
sp | | 1
|
||||
tar | [] [] [] [] [] [] [] | 19
|
||||
texinfo | [] [] | 10
|
||||
textutils | [] [] [] [] [] | 14
|
||||
util-linux | [] [] [] | 10
|
||||
vorbis-tools | [] | 3
|
||||
wastesedge | | 0
|
||||
wdiff | [] [] [] [] [] | 14
|
||||
wget | [] [] [] [] [] [] [] [] | 24
|
||||
+----------------------------------------------+
|
||||
37 teams no pl pt pt_BR ru sk sl sv tr uk zh_CN zh_TW
|
||||
68 domains 4 15 2 28 28 12 10 49 43 4 1 9 609
|
||||
|
||||
Some counters in the preceding matrix are higher than the number of
|
||||
visible blocks let us expect. This is because a few extra PO files are
|
||||
@@ -221,6 +409,27 @@ distributed as such by its maintainer. There might be an observable
|
||||
lag between the mere existence a PO file and its wide availability in a
|
||||
distribution.
|
||||
|
||||
If December 1997 seems to be old, you may fetch a more recent copy
|
||||
of this `ABOUT-NLS' file on most GNU archive sites.
|
||||
If August 2002 seems to be old, you may fetch a more recent copy of
|
||||
this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
|
||||
matrix with full percentage details can be found at
|
||||
`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
|
||||
|
||||
Using `gettext' in new packages
|
||||
===============================
|
||||
|
||||
If you are writing a freely available program and want to
|
||||
internationalize it you are welcome to use GNU `gettext' in your
|
||||
package. Of course you have to respect the GNU Library General Public
|
||||
License which covers the use of the GNU `gettext' library. This means
|
||||
in particular that even non-free programs can use `libintl' as a shared
|
||||
library, whereas only free software can use `libintl' as a static
|
||||
library or use modified versions of `libintl'.
|
||||
|
||||
Once the sources are changed appropriately and the setup can handle
|
||||
to use of `gettext' the only thing missing are the translations. The
|
||||
Free Translation Project is also available for packages which are not
|
||||
developed inside the GNU project. Therefore the information given above
|
||||
applies also for every other Free Software Project. Contact
|
||||
`translation@iro.umontreal.ca' to make the `.pot' files available to
|
||||
the translation teams.
|
||||
|
||||
|
||||
2
AUTHORS
Normal file
2
AUTHORS
Normal file
@@ -0,0 +1,2 @@
|
||||
See the --version output of each program for the authors
|
||||
of that program.
|
||||
408
ChangeLog
Normal file
408
ChangeLog
Normal file
@@ -0,0 +1,408 @@
|
||||
2002-10-05 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Version 4.5.2.
|
||||
|
||||
* src/remove.c (remove_entry) [ROOT_CAN_UNLINK_DIRS]: With `rm -i DIR',
|
||||
don't recurse into directory, DIR. Prompted by a report from
|
||||
Leonardo Milano.
|
||||
|
||||
* tests/rm/i-no-r: New file/test, for the above fix.
|
||||
* tests/rm/Makefile.am (TESTS): Add i-no-r.
|
||||
|
||||
* tests/tail-2/big-4gb: New file/test, for the fix of 2002-09-27.
|
||||
* tests/tail-2/Makefile.am (TESTS): Add big-4gb.
|
||||
|
||||
2002-10-03 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/rm.c (AUTHORS): Mark translatable string with `N_ (...)'.
|
||||
* src/df.c (AUTHORS): Likewise.
|
||||
* src/du.c (AUTHORS): Likewise.
|
||||
* src/tail.c (AUTHORS): Likewise.
|
||||
* src/touch.c (AUTHORS): Likewise.
|
||||
|
||||
2002-10-02 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (SUBDIRS): Remove `old'.
|
||||
(EXTRA_DIST): List the files in old/.
|
||||
* configure.ac (AC_CONFIG_FILES): Remove old/* names.
|
||||
Suggestion from Akim Demaille.
|
||||
|
||||
2002-10-01 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/sys2.h (SSIZE_MAX): Define.
|
||||
|
||||
2002-09-30 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/csplit.c: Don't include stdlib.h here. It's already included
|
||||
via system.h.
|
||||
|
||||
2002-09-29 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/tr.c (find_bracketed_repeat): Rearrange pointer/integer
|
||||
expression to avoid bogus warning from gcc.
|
||||
|
||||
* src/cat.c (simple_cat): Use a temporary to avoid bogus warnings.
|
||||
(cat): Declare insize and outsize to be of type size_t, not int.
|
||||
Rearrange pointer/integer expressions to avoid bogus warnings.
|
||||
(main): Declare insize and outsize to be of type size_t, not int.
|
||||
|
||||
* src/tail.c (parse_options): Give a sensible diagnostic for
|
||||
an invalid byte or line count. Reported by Mikko Tuumanen.
|
||||
|
||||
* src/touch.c (main): Split a long line.
|
||||
|
||||
* tests/du/Makefile.am (TESTS): Add slink.
|
||||
* tests/du/slink: New test for system.h change of 2002-08-31.
|
||||
|
||||
In move mode, always first try to rename. Before, upon failure to
|
||||
rename a directory, this code would never attempt to rename any
|
||||
other file in that directory, but would thenceforth always copy.
|
||||
On some systems (e.g., NetApp's OnTap-6.4), renaming a directory
|
||||
may fail with EXDEV, yet renaming files within that directory to
|
||||
a newly-created destination directory succeeds.
|
||||
* src/copy.c (copy_internal): Remove local, move_mode;
|
||||
use x->move_mode instead. Based on a patch from Tom Haynes.
|
||||
|
||||
2002-09-28 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/split.c (FAIL_ONLY_ONE_WAY): New macro.
|
||||
Factor out some duplication.
|
||||
(main): Use it.
|
||||
[case 'a']: Use strtoul rather than strtol to avoid compiler warnings.
|
||||
|
||||
* src/sort.c (begfield, limfield): Rearrange comparisons to avoid
|
||||
compiler warnings.
|
||||
(fillbuf, keycompare): Cast literal `-1' to size_t in comparisons,
|
||||
to avoid compiler warnings.
|
||||
|
||||
* src/shred.c (dopass): Use a uintmax_t temporary to avoid bogus
|
||||
compiler warnings.
|
||||
|
||||
Fix things so `mkdir -p' can create very deep directories, e.g.,
|
||||
mkdir -p $(perl -e 'print "a/" x 40000') now works.
|
||||
* src/mkdir.c (main): For --parents (-p), call make_path with the
|
||||
entire directory name, so we don't ever require that file operations
|
||||
like stat or chmod be performed on the entire command line argument.
|
||||
* makepath.c (make_path): Restore umask *before* creating the final
|
||||
component.
|
||||
|
||||
2002-09-27 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
* src/tail.c (tail_bytes): Change type of bytes_remaining to off_t
|
||||
to avoid overflow. Reported by Hans Lermen.
|
||||
|
||||
2002-09-26 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/install.c (get_ids): Use strtoul, not strtol. Remove some casts.
|
||||
|
||||
2002-09-25 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/test.c (eaccess): Change type of local `euid' from int to uid_t
|
||||
and add a cast, to avoid a warning about `signed and unsigned type in
|
||||
conditional expression'.
|
||||
|
||||
2002-09-22 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/rmdir.c: Include "dirname.h", for declaration of
|
||||
strip_trailing_slashes.
|
||||
|
||||
* src/stat.c (PRIdMAX, PRIuMAX): Remove definitions.
|
||||
Now they're defined through system.h.
|
||||
|
||||
* src/cp-hash.c, src/dd.c, src/df.c, src/du.c, src/ls.c,
|
||||
* src/stat.c, src/wc.c: Remove all inclusions of inttypes.h,
|
||||
since it's already included from sys2.h via system.h.
|
||||
|
||||
* Use automake-1.6f. Regenerate dependent files.
|
||||
|
||||
* src/Makefile.am (PERL): Remove duplicate definition.
|
||||
|
||||
fmt's -s, -t, -c options didn't work properly for long lines.
|
||||
Since get_line may end up calling put_paragraph (for long lines),
|
||||
be sure to set global, `other_indent', before it is used there.
|
||||
|
||||
* src/fmt.c (set_other_indent): New function, factored out of...
|
||||
(get_paragraph): ... here. Call it.
|
||||
(get_line): Call set_other_indent before calling flush_paragraph,
|
||||
which calls fmt_paragraph, which in turn calls put_paragraph,
|
||||
which uses other_indent.
|
||||
|
||||
* tests/fmt/Makefile.am (TESTS): Add long-line.
|
||||
* tests/fmt/long-line: New file/test, for the above fix.
|
||||
|
||||
2002-09-21 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/od.c: No longer include deprecated <values.h>.
|
||||
It was required solely for now-removed reference to BITSPERBYTE.
|
||||
* src/install.c: Likewise.
|
||||
Suggestion from Bruno Haible.
|
||||
|
||||
2002-09-06 Andreas Schwab <schwab@suse.de>
|
||||
|
||||
`rmdir -p dir-specified-with-trailing-slash/' would fail.
|
||||
* src/rmdir.c (remove_parents): Strip trailing slashes.
|
||||
|
||||
2002-09-20 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* tests/rmdir/t-slash: New file/test, for the above fix.
|
||||
* tests/rmdir/Makefile.am (TESTS): Add t-slash.
|
||||
|
||||
* Makefile.maint (announcement): Arrange to gpg-sign the message.
|
||||
Add a URL for each detached signature file.
|
||||
|
||||
2002-09-07 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
* configure.ac: Add need-ngettext to AM_GNU_GETTEXT invocation.
|
||||
|
||||
2002-09-18 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
`od -t x8' used the wrong (`l'-prefixed) printf format.
|
||||
Likewise for the o8 and u8 formats.
|
||||
* src/od.c (ISPEC_TO_FORMAT): Define macro.
|
||||
(decode_one_format): Use PRIdMAX, PRIoMAX, etc. for LONG_LONG.
|
||||
Reported by Arun Sharma.
|
||||
|
||||
2002-09-17 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/sys2.h (PRIdMAX, PRIoMAX, PRIuMAX, PRIxMAX): Define if necessary.
|
||||
From gettext's intl/loadmsgcat.c.
|
||||
|
||||
* tests/od/x8: New file/test, for the above fix.
|
||||
* tests/od/Makefile.am (TESTS): Add x8.
|
||||
|
||||
2002-09-15 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Use autoconf-2.54. Regenerate dependent files.
|
||||
|
||||
* src/csplit.c (get_format_width): Add cast to avoid
|
||||
warning about `signed and unsigned type in conditional expression'.
|
||||
|
||||
2002-09-14 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/who.c (print_user): Change type of local to size_t
|
||||
to avoid warnings about `comparison between signed and unsigned'.
|
||||
* src/ptx.c (generate_all_output): Likewise.
|
||||
|
||||
* src/dd.c (main, skip): Add casts to avoid warnings about
|
||||
`comparison between signed and unsigned'.
|
||||
|
||||
* src/id.c (print_full_info, print_group_list): Add casts to avoid
|
||||
warnings about `signed and unsigned type in conditional expression'.
|
||||
|
||||
* src/md5sum.c: Change type of global, digest_hex_bytes, to size_t
|
||||
to avoid warnings about `comparison between signed and unsigned'.
|
||||
(split_3): Change parameter names to be readable and add comment.
|
||||
Clean up the test for whether a line may be ignored.
|
||||
|
||||
2002-09-13 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/printf.c (main): Handle leading command line argument of `--'.
|
||||
Reported by Raul: DervishD <raul@pleyades.net>
|
||||
* tests/misc/printf: New file: test for the above.
|
||||
* tests/misc/Makefile.am (TESTS): Add printf.
|
||||
|
||||
* src/date.c (usage): Explain that %S's range of [0..60] is required --
|
||||
rather than 0..59 -- to accommodate the occasional positive leap second.
|
||||
Reported by Richard Neill.
|
||||
|
||||
2002-09-12 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/Makefile.am (nanosec_libs): Define.
|
||||
(sleep_LDADD, tail_LDADD): Use it here.
|
||||
|
||||
Factor nanosleep-related code into ../lib/xnanosleep.c.
|
||||
* src/sleep.c: Include xnanosleep.h.
|
||||
Factor out fenv.h-related code.
|
||||
(timespec_subtract): Remove function.
|
||||
(main): Remove code that deals with computing start and stop times
|
||||
as well as the loop around nanosleep. Now that's in xnanosleep.c.
|
||||
|
||||
Allow S (in --sleep-interval=S) to be a floating point value.
|
||||
* src/tail.c: Include xnanosleep.h and xstrtod.h.
|
||||
Move declaration of global variable, sleep_interval, to ...
|
||||
(main): ...here.
|
||||
(usage): Update description of --sleep-interval option.
|
||||
(tail_forever): New parameter, sleep_interval. Update caller.
|
||||
Use xnanosleep, rather than sleep.
|
||||
(parse_options): New parameter, sleep_interval. Update caller.
|
||||
Use xstrtod, now that we accept floating point values.
|
||||
Prompted by a patch from Augey Mikus.
|
||||
|
||||
2002-09-06 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/remove.c (prompt): Change comment to give a better note to
|
||||
translators. From Michael Piefel.
|
||||
|
||||
2002-09-02 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* README: A good problem report/patch includes diffs against
|
||||
the most recent test release.
|
||||
|
||||
* src/pathchk.c (NEED_PATHCONF_WRAPPER): Define.
|
||||
(pathconf_wrapper): Define only if NEED_PATHCONF_WRAPPER is set.
|
||||
|
||||
* src/kill.c (print_table_row): Use an unsigned type for widths
|
||||
to avoid warning about comparison between signed and unsigned.
|
||||
(list_signals): Likewise.
|
||||
|
||||
* src/od.c (skip): Add a cast to avoid warning about comparison
|
||||
between signed and unsigned.
|
||||
* src/install.c (get_ids): Likewise. Also rearrange range-checking
|
||||
comparisons to make them more readable.
|
||||
|
||||
2002-09-01 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Version 4.5.1.
|
||||
|
||||
2002-08-31 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
Symlinks were always reported as using 0 blocks.
|
||||
* src/system.h (ST_NBLOCKS): Don't depend on file type.
|
||||
This reverts the change of 2000-01-30.
|
||||
Based on a report and patch from Neil Brown via Michael Stone.
|
||||
This fixes Debian Bug#156358.
|
||||
|
||||
* Most files: Change `exit (0)' to `exit (EXIT_SUCCESS)',
|
||||
`exit (1)' to `exit (EXIT_FAILURE)', and
|
||||
`usage (1)' to `usage (EXIT_FAILURE)'.
|
||||
|
||||
* chgrp.c, chmod.c, chown.c, chroot.c, cp.c, date.c, dd.c, du.c,
|
||||
* hostname.c, id.c, install.c, ln.c, mkdir.c, mkfifo.c, mknod.c,
|
||||
* nice.c, pinky.c, printf.c, pwd.c, shred.c, sleep.c, stty.c,
|
||||
* su.c, tac-pipe.c, tail.c, tee.c, touch.c, uname.c, uptime.c,
|
||||
* users.c, who.c: Change `error (1, ...' to `error (EXIT_FAILURE, ...'.
|
||||
But don't change `error (0, ...' to `error (EXIT_SUCCESS, ...', since
|
||||
error never exits successfully.
|
||||
|
||||
2002-08-29 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/remove.c (remove_cwd_entries): Use closedir (not CLOSEDIR)
|
||||
when ignoring any return value.
|
||||
|
||||
* src/remove.c (remove_cwd_entries): Detect and diagnose readdir
|
||||
failures. On some systems (at least EMC Celerra and Solaris5.8),
|
||||
this appears to be necessary.
|
||||
(is_empty_dir): Likewise. Also, always close directory handle.
|
||||
* src/ls.c (print_dir): Likewise.
|
||||
(print_dir): Rename local variable: reading -> dirp.
|
||||
Reported by Mike Coleman.
|
||||
|
||||
2002-08-28 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/remove.c (remove_cwd_entries): Use CLOSEDIR, not closedir.
|
||||
Give a diagnostic and fail if closedir fails.
|
||||
|
||||
2002-08-26 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (THANKS-to-translators): New rule.
|
||||
(EXTRA_DIST): Add both THANKS-to-translators and THANKStt.in.
|
||||
* THANKStt.in: New file.
|
||||
|
||||
* src/cat.c (close_stdout_wrapper): New, kludgey, function and
|
||||
file-scoped global.
|
||||
(main): Register it with atexit.
|
||||
Close STDOUT_FILENO, to avoid a problem when writing to
|
||||
/dev/audio on at least Solaris 2.7 and 2.8 systems.
|
||||
Reported by Shing-Shong Shei.
|
||||
|
||||
2002-08-25 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/cat.c (main): Close STDIN_FILENO rather than a literal `0'.
|
||||
* src/tac.c (main): Likewise.
|
||||
* src/tail.c (main): Likewise.
|
||||
* src/tee.c (main): Likewise.
|
||||
* src/tr.c (main): Likewise.
|
||||
* src/wc.c (main): Likewise.
|
||||
|
||||
2002-08-20 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* tests/mv/setup: Rewrite not to use `: ${VAR=not_set}' paradigm.
|
||||
|
||||
2002-08-10 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/nohup.sh: Don't use "exec --"; it's not portable and
|
||||
shouldn't be needed.
|
||||
|
||||
2002-08-09 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/pr.c (main): Don't ignore -COLUMN if it's the last option.
|
||||
(usage): Clarify help text for the -COLUMN option.
|
||||
Patch by Padraig Brady.
|
||||
* tests/pr/Test.pm [col-last]: New test for the above.
|
||||
|
||||
* configure.ac: Start with version 4.5.1, chosen so that it's larger
|
||||
than the latest version numbers of the component packages.
|
||||
|
||||
* man/Makefile.am (check-x-vs-1): Set and export PATH so we use
|
||||
programs in ../src.
|
||||
|
||||
2002-08-08 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/date.c: Guard inclusion of <langinfo.h> with
|
||||
`#if HAVE_LANGINFO_CODESET', not `#if HAVE_LANGINFO_H'.
|
||||
* src/sort.c: Likewise.
|
||||
Patch by GOTO Masanori.
|
||||
|
||||
2002-08-05 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
Fix some minor time-related bugs with POSIX time arguments.
|
||||
Some valid time stamps were being rejected (notably -1, and
|
||||
time stamps before 1900 on 64-bit hosts). And some invalid
|
||||
time stamps were being accepted, e.g. September 31.
|
||||
|
||||
* src/date.c (main): Adjust to posixtime signature change.
|
||||
* src/touch.c (main): Likewise. Remove unnecessary initialization.
|
||||
Use localtime, not posixtm, to warn about obsolete "touch".
|
||||
|
||||
2002-08-05 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* tests/misc/Makefile.am (TESTS): Add nice and pathchk1.
|
||||
|
||||
2002-08-04 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/Makefile.am (check-README): New target/rule.
|
||||
(check): Depend on it.
|
||||
|
||||
* configure.ac (AC_CONFIG_FILES): Add old/Makefile and old/*/Makefile.
|
||||
|
||||
2002-08-03 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (SUBDIRS): Add old.
|
||||
* old/: New directory, containing legacy ChangeLog* and NEWS files
|
||||
from the fileutils, sh-utils, and textutils packages.
|
||||
|
||||
* src/Makefile.am (AM_INSTALLCHECK_STD_OPTIONS_EXEMPT): Set to false.
|
||||
|
||||
2002-08-02 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* NEWS, doc/coreutils.texi: uniq now obeys LC_COLLATE.
|
||||
|
||||
* src/uniq.c: Include hard-locale.h, xmemcoll.h.
|
||||
(hard_LC_COLLATE): New var.
|
||||
(different): Args are now char *, not const char *.
|
||||
Use xmemcoll instead of memcmp to compare lines, so that
|
||||
LC_COLLATE has effect. However, use memcmp if it is an
|
||||
easy locale.
|
||||
(check_file): Do not include newline in comparison, so that
|
||||
xmemcoll has a byte to stomp on temporarily.
|
||||
(main): Set hard_LC_COLLATE.
|
||||
|
||||
2002-07-29 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (SUBDIRS): Remove djgpp, for now.
|
||||
|
||||
2002-07-08 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/Makefile.am (uninstall-local): Search for @GNU_PACKAGE@,
|
||||
rather than the hard-coded `sh-utils'.
|
||||
|
||||
2002-07-01 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* configure.ac: Merge the three files from fileutils,
|
||||
textutils, and sh-utils.
|
||||
* Makefile.am: Likewise.
|
||||
* src/Makefile.am: Likewise.
|
||||
|
||||
Local Variables:
|
||||
version-control: never
|
||||
End:
|
||||
127
INSTALL
127
INSTALL
@@ -1,3 +1,9 @@
|
||||
Copyright 1994, 1995, 1996, 1999, 2000, 2001 Free Software Foundation,
|
||||
Inc.
|
||||
|
||||
This file is free documentation; the Free Software Foundation gives
|
||||
unlimited permission to copy, distribute and modify it.
|
||||
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
@@ -8,20 +14,27 @@ various system-dependent variables used during compilation. It uses
|
||||
those values to create a `Makefile' in each directory of the package.
|
||||
It may also create one or more `.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script `config.status' that
|
||||
you can run in the future to recreate the current configuration, a file
|
||||
`config.cache' that saves the results of its tests to speed up
|
||||
reconfiguring, and a file `config.log' containing compiler output
|
||||
(useful mainly for debugging `configure').
|
||||
you can run in the future to recreate the current configuration, and a
|
||||
file `config.log' containing compiler output (useful mainly for
|
||||
debugging `configure').
|
||||
|
||||
It can also use an optional file (typically called `config.cache'
|
||||
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
||||
the results of its tests to speed up reconfiguring. (Caching is
|
||||
disabled by default to prevent problems with accidental use of stale
|
||||
cache files.)
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the `README' so they can
|
||||
be considered for the next release. If at some point `config.cache'
|
||||
contains results you don't want to keep, you may remove or edit it.
|
||||
be considered for the next release. If you are using the cache, and at
|
||||
some point `config.cache' contains results you don't want to keep, you
|
||||
may remove or edit it.
|
||||
|
||||
The file `configure.in' is used to create `configure' by a program
|
||||
called `autoconf'. You only need `configure.in' if you want to change
|
||||
it or regenerate `configure' using a newer version of `autoconf'.
|
||||
The file `configure.ac' (or `configure.in') is used to create
|
||||
`configure' by a program called `autoconf'. You only need
|
||||
`configure.ac' if you want to change it or regenerate `configure' using
|
||||
a newer version of `autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
@@ -55,14 +68,15 @@ Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the `configure' script does not know about. You can give `configure'
|
||||
initial values for variables by setting them in the environment. Using
|
||||
a Bourne-compatible shell, you can do that on the command line like
|
||||
this:
|
||||
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
|
||||
the `configure' script does not know about. Run `./configure --help'
|
||||
for details on some of the pertinent environment variables.
|
||||
|
||||
Or on systems that have the `env' program, you can do it like this:
|
||||
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
|
||||
You can give `configure' initial values for variables by setting
|
||||
them in the environment. You can do that on the command line like this:
|
||||
|
||||
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
|
||||
|
||||
*Note Defining Variables::, for more details.
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
@@ -75,11 +89,11 @@ directory where you want the object files and executables to go and run
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'.
|
||||
|
||||
If you have to use a `make' that does not supports the `VPATH'
|
||||
variable, you have to compile the package for one architecture at a time
|
||||
in the source code directory. After you have installed the package for
|
||||
one architecture, use `make distclean' before reconfiguring for another
|
||||
architecture.
|
||||
If you have to use a `make' that does not support the `VPATH'
|
||||
variable, you have to compile the package for one architecture at a
|
||||
time in the source code directory. After you have installed the
|
||||
package for one architecture, use `make distclean' before reconfiguring
|
||||
for another architecture.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
@@ -122,22 +136,35 @@ you can use the `configure' options `--x-includes=DIR' and
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features `configure' can not figure out
|
||||
There may be some features `configure' cannot figure out
|
||||
automatically, but needs to determine by the type of host the package
|
||||
will run on. Usually `configure' can figure that out, but if it prints
|
||||
a message saying it can not guess the host type, give it the
|
||||
`--host=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name with three fields:
|
||||
a message saying it cannot guess the host type, give it the
|
||||
`--build=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name which has the form:
|
||||
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
where SYSTEM can have one of these forms:
|
||||
|
||||
OS KERNEL-OS
|
||||
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
`config.sub' isn't included in this package, then this package doesn't
|
||||
need to know the host type.
|
||||
|
||||
If you are building compiler tools for cross-compiling, you can also
|
||||
If you are _building_ compiler tools for cross-compiling, you should
|
||||
use the `--target=TYPE' option to select the type of system they will
|
||||
produce code for and the `--build=TYPE' option to select the type of
|
||||
system on which you are compiling the package.
|
||||
produce code for.
|
||||
|
||||
If you want to _use_ a cross compiler, that generates code for a
|
||||
platform different from the build platform, you should specify the host
|
||||
platform (i.e., that on which the generated programs will eventually be
|
||||
run) with `--host=TYPE'. In this case, you should also specify the
|
||||
build platform with `--build=TYPE', because, in this case, it may not
|
||||
be possible to guess the build platform (it sometimes involves
|
||||
compiling and running simple test programs, and this can't be done if
|
||||
the compiler is a cross compiler).
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
@@ -150,20 +177,44 @@ default values for variables like `CC', `cache_file', and `prefix'.
|
||||
`CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all `configure' scripts look for a site script.
|
||||
|
||||
Operation Controls
|
||||
Defining Variables
|
||||
==================
|
||||
|
||||
Variables not defined in a site shell script can be set in the
|
||||
environment passed to `configure'. However, some packages may run
|
||||
configure again during the build, and the customized values of these
|
||||
variables may be lost. In order to avoid this problem, you should set
|
||||
them in the `configure' command line, using `VAR=value'. For example:
|
||||
|
||||
./configure CC=/usr/local2/bin/gcc
|
||||
|
||||
will cause the specified gcc to be used as the C compiler (unless it is
|
||||
overridden in the site shell script).
|
||||
|
||||
`configure' Invocation
|
||||
======================
|
||||
|
||||
`configure' recognizes the following options to control how it
|
||||
operates.
|
||||
|
||||
`--cache-file=FILE'
|
||||
Use and save the results of the tests in FILE instead of
|
||||
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
|
||||
debugging `configure'.
|
||||
|
||||
`--help'
|
||||
`-h'
|
||||
Print a summary of the options to `configure', and exit.
|
||||
|
||||
`--version'
|
||||
`-V'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
script, and exit.
|
||||
|
||||
`--cache-file=FILE'
|
||||
Enable the cache: use and save the results of the tests in FILE,
|
||||
traditionally `config.cache'. FILE defaults to `/dev/null' to
|
||||
disable caching.
|
||||
|
||||
`--config-cache'
|
||||
`-C'
|
||||
Alias for `--cache-file=config.cache'.
|
||||
|
||||
`--quiet'
|
||||
`--silent'
|
||||
`-q'
|
||||
@@ -175,8 +226,6 @@ operates.
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
`configure' can determine that directory automatically.
|
||||
|
||||
`--version'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
script, and exit.
|
||||
`configure' also accepts some other, not widely useful, options. Run
|
||||
`configure --help' for more details.
|
||||
|
||||
`configure' also accepts some other, not widely useful, options.
|
||||
|
||||
47
Makefile.am
Normal file
47
Makefile.am
Normal file
@@ -0,0 +1,47 @@
|
||||
## Process this file with automake to produce Makefile.in -*-Makefile-*-
|
||||
|
||||
SUBDIRS = lib src doc man m4 po tests
|
||||
EXTRA_DIST = Makefile.cfg Makefile.maint GNUmakefile \
|
||||
.kludge-stamp .prev-version THANKS-to-translators THANKStt.in \
|
||||
old/fileutils/ChangeLog \
|
||||
old/fileutils/ChangeLog-1997 \
|
||||
old/sh-utils/ChangeLog \
|
||||
old/sh-utils/ChangeLog.0 \
|
||||
old/textutils/ChangeLog \
|
||||
old/fileutils/NEWS \
|
||||
old/sh-utils/NEWS \
|
||||
old/textutils/NEWS
|
||||
|
||||
install-root:
|
||||
cd src && $(MAKE) $@
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
# Some tests always need root privileges, others need them only sometimes.
|
||||
check-root:
|
||||
cd tests && $(MAKE) $@
|
||||
|
||||
distcheck-hook:
|
||||
$(MAKE) my-distcheck
|
||||
|
||||
# Just prior to distribution, ...
|
||||
# transform the automake-generated rule that runs `rm -f rm'.
|
||||
# On some systems, that command would fail with a diagnostic like
|
||||
# `rm: cannot unlink `rm': Text file busy' when `.' appears so early
|
||||
# in the shell's search path that running `rm' would run the `rm'
|
||||
# executable in the current directory.
|
||||
# Similarly, adjust the clean-binPROGRAMS rule.
|
||||
|
||||
rm_subst = \
|
||||
s!(rm -f (rm|\$$\(bin_PROGRAMS\)))$$!$$1 > /dev/null 2>&1 || /bin/$$1!
|
||||
.kludge-stamp: $(srcdir)/src/Makefile.in
|
||||
perl -pi -e '$(rm_subst)' $(srcdir)/src/Makefile.in
|
||||
touch $@
|
||||
|
||||
THANKS-to-translators: po/LINGUAS THANKStt.in
|
||||
( \
|
||||
cat $(srcdir)/THANKStt.in; \
|
||||
for lang in `cat po/LINGUAS`; do \
|
||||
echo http://www.iro.umontreal.ca/contrib/po/HTML/team-$$lang.html; \
|
||||
done; \
|
||||
) > $@-tmp && mv $@-tmp $@
|
||||
50
Makefile.cfg
50
Makefile.cfg
@@ -1,21 +1,39 @@
|
||||
# -*- makefile -*-
|
||||
## Customize Makefile.maint.
|
||||
|
||||
move_if_change = move-if-change
|
||||
|
||||
# List the hosts to which test releases are copied.
|
||||
# `a' and `b' are merely placeholders, and correspond to the
|
||||
# `a_' and `b_' prefixes of the following variables.
|
||||
hosts = a b
|
||||
a_host = alpha.gnu.org
|
||||
b_host = freefriends.org
|
||||
|
||||
alpha_subdir = gnu/fetish
|
||||
a_url_dir = $(alpha_subdir)
|
||||
b_url_dir = $(alpha_subdir)
|
||||
url_dir_list = \
|
||||
ftp://alpha.gnu.org/gnu/fetish \
|
||||
http://fetish.sf.net \
|
||||
|
||||
# Files that `make wget-update' should update.
|
||||
wget_files = \
|
||||
$(srcdir)/config.guess \
|
||||
$(srcdir)/config.sub \
|
||||
$(srcdir)/doc/texinfo.tex \
|
||||
$(srcdir)/src/ansi2knr.c
|
||||
$(srcdir)/config/config.guess \
|
||||
$(srcdir)/config/config.sub \
|
||||
$(srcdir)/config/texinfo.tex
|
||||
|
||||
# $(srcdir)/src/ansi2knr.c
|
||||
|
||||
###############################################
|
||||
|
||||
# FIXME: CAUTION this list is a duplicate of one in lib/Makefile.am.
|
||||
io_functions = \
|
||||
clearerr feof ferror fflush fgets fputc fputs \
|
||||
fread fwrite getc getchar putc putchar
|
||||
unlocked_io_functions = $(patsubst %,%_unlocked,$(io_functions))
|
||||
|
||||
comma_separated = $(shell echo $(unlocked_io_functions)|tr -s ' ' ,)
|
||||
|
||||
# This temp file may not be e.g., $@t, since that may be in a read-only
|
||||
# directory. Instead, use a file in the current directory.
|
||||
t_io = $(notdir $@)t
|
||||
|
||||
# This rule requires GNU make.
|
||||
$(srcdir)/m4/jm-glibc-io.m4: $(srcdir)/m4/jm-glibc-io.m4n Makefile.cfg
|
||||
echo dnl This file is automatically generated from $(notdir $<). \
|
||||
> $(t_io)
|
||||
echo >> $(t_io)
|
||||
sed \
|
||||
-e 's/@space_separated@/$(unlocked_io_functions)/g' \
|
||||
-e 's/@comma_separated@/$(comma_separated)/g' \
|
||||
$< >> $(t_io)
|
||||
mv $(t_io) $@
|
||||
|
||||
603
Makefile.in
Normal file
603
Makefile.in
Normal file
@@ -0,0 +1,603 @@
|
||||
# Makefile.in generated by automake 1.7 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
|
||||
# Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = .
|
||||
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
host_triplet = @host@
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DF_PROG = @DF_PROG@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FESETROUND_LIBM = @FESETROUND_LIBM@
|
||||
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
|
||||
GLIBC21 = @GLIBC21@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GNU_PACKAGE = @GNU_PACKAGE@
|
||||
HELP2MAN = @HELP2MAN@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
KMEM_GROUP = @KMEM_GROUP@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBS = @LIBS@
|
||||
LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
|
||||
LIB_CRYPT = @LIB_CRYPT@
|
||||
LIB_NANOSLEEP = @LIB_NANOSLEEP@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MAN = @MAN@
|
||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
NEED_SETGID = @NEED_SETGID@
|
||||
OBJEXT = @OBJEXT@
|
||||
OPTIONAL_BIN_PROGS = @OPTIONAL_BIN_PROGS@
|
||||
OPTIONAL_BIN_ZCRIPTS = @OPTIONAL_BIN_ZCRIPTS@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
POSUB = @POSUB@
|
||||
POW_LIB = @POW_LIB@
|
||||
RANLIB = @RANLIB@
|
||||
SEQ_LIBM = @SEQ_LIBM@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SQRT_LIBM = @SQRT_LIBM@
|
||||
STRIP = @STRIP@
|
||||
U = @U@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
YACC = @YACC@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__include = @am__include@
|
||||
am__quote = @am__quote@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
datadir = @datadir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
oldincludedir = @oldincludedir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
|
||||
SUBDIRS = lib src doc man m4 po tests
|
||||
EXTRA_DIST = Makefile.cfg Makefile.maint GNUmakefile \
|
||||
.kludge-stamp .prev-version THANKS-to-translators THANKStt.in \
|
||||
old/fileutils/ChangeLog \
|
||||
old/fileutils/ChangeLog-1997 \
|
||||
old/sh-utils/ChangeLog \
|
||||
old/sh-utils/ChangeLog.0 \
|
||||
old/textutils/ChangeLog \
|
||||
old/fileutils/NEWS \
|
||||
old/sh-utils/NEWS \
|
||||
old/textutils/NEWS
|
||||
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
|
||||
# Just prior to distribution, ...
|
||||
# transform the automake-generated rule that runs `rm -f rm'.
|
||||
# On some systems, that command would fail with a diagnostic like
|
||||
# `rm: cannot unlink `rm': Text file busy' when `.' appears so early
|
||||
# in the shell's search path that running `rm' would run the `rm'
|
||||
# executable in the current directory.
|
||||
# Similarly, adjust the clean-binPROGRAMS rule.
|
||||
rm_subst = \
|
||||
s!(rm -f (rm|\$$\(bin_PROGRAMS\)))$$!$$1 > /dev/null 2>&1 || /bin/$$1!
|
||||
|
||||
subdir = .
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
DIST_SOURCES =
|
||||
|
||||
RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
|
||||
ps-recursive install-info-recursive uninstall-info-recursive \
|
||||
all-recursive install-data-recursive install-exec-recursive \
|
||||
installdirs-recursive install-recursive uninstall-recursive \
|
||||
check-recursive installcheck-recursive
|
||||
DIST_COMMON = README ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL \
|
||||
Makefile.am Makefile.in NEWS THANKS TODO aclocal.m4 config.hin \
|
||||
config/ChangeLog config/config.guess config/config.rpath \
|
||||
config/config.sub config/depcomp config/install-sh \
|
||||
config/mdate-sh config/missing config/mkinstalldirs \
|
||||
config/texinfo.tex configure configure.ac
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
all: config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno
|
||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnits Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
|
||||
|
||||
$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
$(SHELL) ./config.status --recheck
|
||||
$(srcdir)/configure: $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
|
||||
cd $(srcdir) && $(AUTOCONF)
|
||||
|
||||
$(ACLOCAL_M4): configure.ac m4/acl.m4 m4/afs.m4 m4/assert.m4 m4/bison.m4 m4/boottime.m4 m4/c-stack.m4 m4/check-decl.m4 m4/chown.m4 m4/codeset.m4 m4/d-ino.m4 m4/d-type.m4 m4/dirfd.m4 m4/dos.m4 m4/error.m4 m4/fpending.m4 m4/fstypename.m4 m4/fsusage.m4 m4/ftruncate.m4 m4/getcwd.m4 m4/getgroups.m4 m4/getline.m4 m4/gettext.m4 m4/gettimeofday.m4 m4/glibc.m4 m4/glibc21.m4 m4/group-member.m4 m4/host-os.m4 m4/iconv.m4 m4/intdiv0.m4 m4/inttypes-pri.m4 m4/inttypes.m4 m4/isc-posix.m4 m4/jm-glibc-io.m4 m4/jm-macros.m4 m4/jm-mktime.m4 m4/jm-winsz1.m4 m4/jm-winsz2.m4 m4/lchown.m4 m4/lcmessage.m4 m4/lib-check.m4 m4/lib-ld.m4 m4/lib-link.m4 m4/lib-prefix.m4 m4/link-follow.m4 m4/longlong.m4 m4/ls-mntd-fs.m4 m4/lstat.m4 m4/mbrtowc.m4 m4/mbswidth.m4 m4/memcmp.m4 m4/mkdir-slash.m4 m4/mkstemp.m4 m4/nanosleep.m4 m4/perl.m4 m4/prereq.m4 m4/progtest.m4 m4/putenv.m4 m4/regex.m4 m4/rename.m4 m4/rmdir-errno.m4 m4/search-libs.m4 m4/st_dm_mode.m4 m4/st_mtim.m4 m4/stat.m4 m4/stdbool.m4 m4/strftime.m4 m4/timespec.m4 m4/unlink-busy.m4 m4/uptime.m4 m4/utimbuf.m4 m4/utime.m4 m4/utimes.m4 m4/xstrtoimax.m4 m4/xstrtoumax.m4
|
||||
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
|
||||
config.h: stamp-h1
|
||||
@if test ! -f $@; then \
|
||||
rm -f stamp-h1; \
|
||||
$(MAKE) stamp-h1; \
|
||||
else :; fi
|
||||
|
||||
stamp-h1: $(srcdir)/config.hin $(top_builddir)/config.status
|
||||
@rm -f stamp-h1
|
||||
cd $(top_builddir) && $(SHELL) ./config.status config.h
|
||||
|
||||
$(srcdir)/config.hin: $(top_srcdir)/configure.ac $(ACLOCAL_M4)
|
||||
cd $(top_srcdir) && $(AUTOHEADER)
|
||||
touch $(srcdir)/config.hin
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f config.h stamp-h1
|
||||
uninstall-info-am:
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
# To change the values of `make' variables: instead of editing Makefiles,
|
||||
# (1) if the variable is set in `config.status', edit `config.status'
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@set fnord $$MAKEFLAGS; amf=$$2; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
mostlyclean-recursive clean-recursive distclean-recursive \
|
||||
maintainer-clean-recursive:
|
||||
@set fnord $$MAKEFLAGS; amf=$$2; \
|
||||
dot_seen=no; \
|
||||
case "$@" in \
|
||||
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||
*) list='$(SUBDIRS)' ;; \
|
||||
esac; \
|
||||
rev=''; for subdir in $$list; do \
|
||||
if test "$$subdir" = "."; then :; else \
|
||||
rev="$$subdir $$rev"; \
|
||||
fi; \
|
||||
done; \
|
||||
rev="$$rev ."; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
for subdir in $$rev; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ETAGS = etags
|
||||
ETAGSFLAGS =
|
||||
|
||||
CTAGS = ctags
|
||||
CTAGSFLAGS =
|
||||
|
||||
tags: TAGS
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.hin $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) config.hin $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|
||||
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.hin $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) config.hin $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
top_distdir = .
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
|
||||
am__remove_distdir = \
|
||||
{ test ! -d $(distdir) \
|
||||
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr $(distdir); }; }
|
||||
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@case `sed 15q $(srcdir)/NEWS` in \
|
||||
*"$(VERSION)"*) : ;; \
|
||||
*) \
|
||||
echo "NEWS not updated; not releasing" 1>&2; \
|
||||
exit 1;; \
|
||||
esac
|
||||
$(am__remove_distdir)
|
||||
mkdir $(distdir)
|
||||
$(mkinstalldirs) $(distdir)/config $(distdir)/old/fileutils $(distdir)/old/sh-utils $(distdir)/old/textutils $(distdir)/po
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkinstalldirs) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d $(distdir)/$$subdir \
|
||||
|| mkdir $(distdir)/$$subdir \
|
||||
|| exit 1; \
|
||||
(cd $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$(top_distdir)" \
|
||||
distdir=../$(distdir)/$$subdir \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
|
||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r $(distdir)
|
||||
dist-gzip: distdir
|
||||
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
$(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist dist-all: distdir
|
||||
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
# This target untars the dist file and tries a VPATH configuration. Then
|
||||
# it guarantees that the distribution is self-contained by making another
|
||||
# tarfile.
|
||||
distcheck: dist
|
||||
$(am__remove_distdir)
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
|
||||
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||
mkdir $(distdir)/=build
|
||||
mkdir $(distdir)/=inst
|
||||
chmod a-w $(distdir)
|
||||
dc_install_base=`$(am__cd) $(distdir)/=inst && pwd` \
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& $(mkinstalldirs) $$dc_destdir \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcheck-hook \
|
||||
&& cd $(distdir)/=build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
--with-included-gettext \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||
distuninstallcheck \
|
||||
&& chmod -R a-w "$$dc_install_base" \
|
||||
&& ({ $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||
&& rm -rf "$$dc_destdir" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
|
||||
&& rm -f $(distdir).tar.gz \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
||||
$(am__remove_distdir)
|
||||
@echo "$(distdir).tar.gz is ready for distribution" | \
|
||||
sed 'h;s/./=/g;p;x;p;x'
|
||||
distuninstallcheck:
|
||||
cd $(distuninstallcheck_dir) \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
|| { echo "ERROR: files left after uninstall:" ; \
|
||||
if test -n "$(DESTDIR)"; then \
|
||||
echo " (check DESTDIR support)"; \
|
||||
fi ; \
|
||||
$(distuninstallcheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
distcleancheck: distclean
|
||||
if test '$(srcdir)' = . ; then \
|
||||
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
||||
$(distcleancheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile config.h
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-recursive
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f Makefile $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-man:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf autom4te.cache
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-generic
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am
|
||||
|
||||
uninstall-info: uninstall-info-recursive
|
||||
|
||||
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
|
||||
clean-generic clean-recursive ctags ctags-recursive dist \
|
||||
dist-all dist-bzip2 dist-gzip distcheck distclean \
|
||||
distclean-generic distclean-hdr distclean-recursive \
|
||||
distclean-tags distcleancheck distdir distuninstallcheck dvi \
|
||||
dvi-am dvi-recursive info info-am info-recursive install \
|
||||
install-am install-data install-data-am install-data-recursive \
|
||||
install-exec install-exec-am install-exec-recursive \
|
||||
install-info install-info-am install-info-recursive install-man \
|
||||
install-recursive install-strip installcheck installcheck-am \
|
||||
installdirs installdirs-am installdirs-recursive \
|
||||
maintainer-clean maintainer-clean-generic \
|
||||
maintainer-clean-recursive mostlyclean mostlyclean-generic \
|
||||
mostlyclean-recursive pdf pdf-am pdf-recursive ps ps-am \
|
||||
ps-recursive tags tags-recursive uninstall uninstall-am \
|
||||
uninstall-info-am uninstall-info-recursive uninstall-recursive
|
||||
|
||||
|
||||
install-root:
|
||||
cd src && $(MAKE) $@
|
||||
|
||||
# Some tests always need root privileges, others need them only sometimes.
|
||||
check-root:
|
||||
cd tests && $(MAKE) $@
|
||||
|
||||
distcheck-hook:
|
||||
$(MAKE) my-distcheck
|
||||
.kludge-stamp: $(srcdir)/src/Makefile.in
|
||||
perl -pi -e '$(rm_subst)' $(srcdir)/src/Makefile.in
|
||||
touch $@
|
||||
|
||||
THANKS-to-translators: po/LINGUAS THANKStt.in
|
||||
( \
|
||||
cat $(srcdir)/THANKStt.in; \
|
||||
for lang in `cat po/LINGUAS`; do \
|
||||
echo http://www.iro.umontreal.ca/contrib/po/HTML/team-$$lang.html; \
|
||||
done; \
|
||||
) > $@-tmp && mv $@-tmp $@
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
189
Makefile.maint
189
Makefile.maint
@@ -1,6 +1,31 @@
|
||||
# -*-Makefile-*-
|
||||
# This Makefile fragment is shared between fileutils, sh-utils, textutils,
|
||||
# and Autoconf.
|
||||
# CPPI, Bison, and Autoconf.
|
||||
|
||||
## Copyright (C) 2001-2002 Free Software Foundation, Inc.
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or modify
|
||||
## it under the terms of the GNU General Public License as published by
|
||||
## the Free Software Foundation; either version 2, or (at your option)
|
||||
## any later version.
|
||||
##
|
||||
## This program is distributed in the hope that it will be useful,
|
||||
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
## GNU General Public License for more details.
|
||||
##
|
||||
## You should have received a copy of the GNU General Public License
|
||||
## along with this program; if not, write to the Free Software
|
||||
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
## 02111-1307, USA.
|
||||
|
||||
# Do not save the original name or timestamp in the .tar.gz file.
|
||||
GZIP_ENV = '--no-name --best'
|
||||
|
||||
# Automake 1.4 does not define AMTAR.
|
||||
AMTAR ?= $(TAR)
|
||||
|
||||
CVS = cvs
|
||||
|
||||
prev_version_file ?= .prev-version
|
||||
|
||||
@@ -17,7 +42,7 @@ my_distdir = $(PACKAGE)-$(VERSION)
|
||||
|
||||
# Old releases are stored here.
|
||||
# Used for diffs and xdeltas.
|
||||
release-archive-dir ?= ../release
|
||||
release_archive_dir ?= ../release
|
||||
|
||||
|
||||
|
||||
@@ -25,6 +50,39 @@ release-archive-dir ?= ../release
|
||||
## Sanity checks. ##
|
||||
## --------------- ##
|
||||
|
||||
# Checks that don't require cvs.
|
||||
# Run `changelog-check' last, as previous test may reveal problems requiring
|
||||
# new ChangeLog entries.
|
||||
local-check = \
|
||||
po-check copyright-check writable-files m4-check author_mark_check \
|
||||
changelog-check strftime-check header-check
|
||||
.PHONY: $(local-check)
|
||||
|
||||
# Make sure C source files in src/ don't include xalloc.h directly,
|
||||
# since they all already include it via sys2.h.
|
||||
# It's not a big deal -- just aesthetics.
|
||||
header-check:
|
||||
if test -f $(srcdir)/src/sys2.h; then \
|
||||
if grep 'xalloc\.h' $(srcdir)/src/*.c; then \
|
||||
exit 1; \
|
||||
fi; \
|
||||
fi
|
||||
|
||||
# Ensure that date's --help output stays in sync with the info
|
||||
# documentation for GNU strftime. The only exception is %N,
|
||||
# which date accepts but GNU strftime does not.
|
||||
extract_char = sed 's/^[^%][^%]*%\(.\).*/\1/'
|
||||
strftime-check:
|
||||
if test -f $(srcdir)/src/date.c; then \
|
||||
grep '^ %. ' $(srcdir)/src/date.c | sort \
|
||||
| $(extract_char) > $@-src; \
|
||||
{ echo N; \
|
||||
info libc date calendar format | grep '^ `%.'\' \
|
||||
| $(extract_char); } | sort > $@-info; \
|
||||
diff -u $@-src $@-info || exit 1; \
|
||||
rm -f $@-src $@-info; \
|
||||
fi
|
||||
|
||||
changelog-check:
|
||||
if head ChangeLog | grep 'Version $(VERSION)' >/dev/null; then \
|
||||
:; \
|
||||
@@ -33,43 +91,63 @@ changelog-check:
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
m4-check:
|
||||
@grep 'AC_DEFUN([^[]' m4/*.m4 \
|
||||
&& { echo 'Makefile.maint: quote the first arg to AC_DEFUN' 1>&2; \
|
||||
exit 1; } || :
|
||||
|
||||
# Verify that all source files using _() are listed in po/POTFILES.in.
|
||||
po-check:
|
||||
if test -f po/POTFILES.in; then \
|
||||
grep -E -v '^(#|$$)' po/POTFILES.in | sort > $@-1; \
|
||||
grep -E -l '\b_\(' lib/*.c src/*.c | sort > $@-2; \
|
||||
grep -E -l '\b_\(' lib/*.[ch] src/*.[ch] | sort > $@-2; \
|
||||
diff -u $@-1 $@-2 || exit 1; \
|
||||
rm -f $@-1 $@-2; \
|
||||
fi
|
||||
|
||||
# In a definition of #define AUTHORS "... and ..." where the RHS contains
|
||||
# the English word `and', the string must be marked with `N_ (...)' so that
|
||||
# gettext recognizes it as a string requiring translation.
|
||||
author_mark_check:
|
||||
@grep '^# *define AUTHORS "[^"]* and ' src/*.c |grep -v ' N_ (' && \
|
||||
{ echo 'Makefile.maint: enclose the above strings in N_ (...)' 1>&2; \
|
||||
exit 1; } || :
|
||||
|
||||
# Check that `make alpha' will not fail at the end of the process.
|
||||
writable-files:
|
||||
if test -d $(release-archive-dir); then :; else \
|
||||
mkdir $(release-archive-dir); \
|
||||
if test -d $(release_archive_dir); then :; else \
|
||||
mkdir $(release_archive_dir); \
|
||||
fi
|
||||
for file in $(distdir).tar.gz $(xd-delta) \
|
||||
$(release-archive-dir)/$(distdir).tar.gz \
|
||||
$(release-archive-dir)/$(xd-delta); do \
|
||||
$(release_archive_dir)/$(distdir).tar.gz \
|
||||
$(release_archive_dir)/$(xd-delta); do \
|
||||
test -e $$file || continue; \
|
||||
test -w $$file \
|
||||
|| { echo ERROR: $$file is not writable; fail=1; }; \
|
||||
done; \
|
||||
test "$$fail" && exit 1 || :
|
||||
|
||||
# Checks that don't require cvs.
|
||||
local-check: changelog-check po-check writable-files check-copyright
|
||||
v_etc_file = lib/version-etc.c
|
||||
# Make sure that the copyright date in $(v_etc_file) is up to date.
|
||||
copyright-check:
|
||||
@if test -f $(v_etc_file); then \
|
||||
grep '"Copyright (C) $(shell date +%Y) Free' $(v_etc_file) \
|
||||
>/dev/null \
|
||||
|| { echo 'out of date copyright in $(v_etc_file); update it' 1>&2; \
|
||||
exit 1; }; \
|
||||
fi
|
||||
|
||||
|
||||
# Sanity checks with the CVS repository.
|
||||
cvs-tag-check:
|
||||
echo $(this-cvs-tag); \
|
||||
if cvs -n log -h README | grep -e $(this-cvs-tag): >/dev/null; then \
|
||||
if $(CVS) -n log -h README | grep -e $(this-cvs-tag): >/dev/null; then \
|
||||
echo "$(this-cvs-tag) as already been used; not tagging" 1>&2; \
|
||||
exit 1; \
|
||||
else :; fi
|
||||
|
||||
cvs-diff-check:
|
||||
if cvs diff >cvs-diffs; then \
|
||||
if $(CVS) diff >cvs-diffs; then \
|
||||
rm cvs-diffs; \
|
||||
else \
|
||||
echo "Some files are locally modified:" 1>&2; \
|
||||
@@ -84,18 +162,12 @@ maintainer-distcheck: changelog-check
|
||||
$(MAKE) my-distcheck
|
||||
|
||||
|
||||
# Do not save the original name or timestamp in the .tar.gz file.
|
||||
GZIP_ENV = '--no-name --best'
|
||||
|
||||
# Automake 1.4 does not define AMTAR.
|
||||
AMTAR ?= $(TAR)
|
||||
|
||||
# Tag before making distribution. Also, don't make a distribution if
|
||||
# checks fail. Also, make sure the NEWS file is up-to-date.
|
||||
# FIXME: use dist-hook/my-dist like distcheck-hook/my-distcheck.
|
||||
cvs-dist: cvs-check maintainer-distcheck
|
||||
cvs update po
|
||||
cvs tag -c $(this-cvs-tag)
|
||||
cvs-dist: $(local-check) cvs-check maintainer-distcheck
|
||||
$(CVS) update po
|
||||
$(CVS) tag -c $(this-cvs-tag)
|
||||
$(MAKE) dist
|
||||
|
||||
# Use this to make sure we don't run these programs when building
|
||||
@@ -112,7 +184,7 @@ null_AM_MAKEFLAGS = \
|
||||
# and building with CFLAGS='-Wformat -Werror' causes any format warning to be
|
||||
# treated as a failure.
|
||||
t=./=test
|
||||
my-distcheck: writable-files po-check
|
||||
my-distcheck: $(local-check)
|
||||
-rm -rf $(t)
|
||||
mkdir $(t)
|
||||
GZIP=$(GZIP_ENV) $(AMTAR) -C $(t) -zxf $(distdir).tar.gz
|
||||
@@ -131,19 +203,15 @@ my-distcheck: writable-files po-check
|
||||
echo "$(distdir).tar.gz is ready for distribution"; \
|
||||
echo "========================"
|
||||
|
||||
# This must be the same name on both hosts.
|
||||
# Make it a symlink that points to the right place.
|
||||
real_dir = fetish-ftp
|
||||
|
||||
url_dir_list = $(foreach x,$(hosts),ftp://$($(x)_host)/$($(x)_url_dir))
|
||||
|
||||
tgz-md5 = $(shell md5sum < $(my_distdir).tar.gz|sed 's/ -//')
|
||||
tgz-sha1 = $(shell sha1sum < $(my_distdir).tar.gz|sed 's/ -//')
|
||||
bz2-md5 = $(shell md5sum < $(my_distdir).tar.bz2|sed 's/ -//')
|
||||
bz2-sha1 = $(shell sha1sum < $(my_distdir).tar.bz2|sed 's/ -//')
|
||||
tgz-size = $(shell du --human $(my_distdir).tar.gz|sed 's/\([Mk]\).*/ \1B/')
|
||||
bz2-size = $(shell du --human $(my_distdir).tar.bz2|sed 's/\([Mk]\).*/ \1B/')
|
||||
xd-size = $(shell du --human $(xd-delta)|sed 's/\([Mk]\).*/ \1B/')
|
||||
xdelta-md5 = $(shell md5sum < $(xd-delta)|sed 's/ -//')
|
||||
xdelta-sha1 = $(shell sha1sum < $(xd-delta)|sed 's/ -//')
|
||||
tgz-size = $(shell du --human $(my_distdir).tar.gz|sed 's/\([MkK]\).*/ \1B/')
|
||||
bz2-size = $(shell du --human $(my_distdir).tar.bz2|sed 's/\([MkK]\).*/ \1B/')
|
||||
xd-size = $(shell du --human $(xd-delta)|sed 's/\([MkK]\).*/ \1B/')
|
||||
|
||||
rel-check:
|
||||
tarz=/tmp/rel-check-tarz-$$$$; \
|
||||
@@ -157,18 +225,15 @@ rel-check:
|
||||
prev-tgz = $(PACKAGE)-$(PREV_VERSION).tar.gz
|
||||
xd-delta = $(PACKAGE)-$(PREV_VERSION)-$(VERSION).xdelta
|
||||
|
||||
GZIP = gzip
|
||||
BZIP2 = bzip2
|
||||
$(my_distdir).tar.bz2: $(my_distdir).tar.gz
|
||||
$(GZIP) -dc $< > $(my_distdir).tar
|
||||
rm -f $@
|
||||
$(BZIP2) -9 $(my_distdir).tar
|
||||
news-r1 = /^[^ ].*$(THIS_VERSION_REGEXP)[]:]/
|
||||
news-r2 = /^[^ ].*$(PREV_VERSION_REGEXP)[]:]/
|
||||
|
||||
rel-files = $(xd-delta) $(distdir).tar.bz2 $(distdir).tar.gz
|
||||
announcement: NEWS ChangeLog $(rel-files)
|
||||
@( \
|
||||
echo Subject: $(my_distdir) released; \
|
||||
echo; \
|
||||
echo '<#secure method=pgpmime mode=sign>'; \
|
||||
echo FIXME: put comments here; \
|
||||
echo; \
|
||||
for url in $(url_dir_list); do \
|
||||
@@ -182,20 +247,26 @@ announcement: NEWS ChangeLog $(rel-files)
|
||||
echo " $$url/$(xd-delta) ($(xd-size))"; \
|
||||
done; \
|
||||
echo; \
|
||||
echo "Here are the MD5 and SHA1 signatures for the compressed tar files:"; \
|
||||
echo "Here are GPG detached signatures:"; \
|
||||
echo " $$url/$(my_distdir).tar.gz.sig"; \
|
||||
echo " $$url/$(my_distdir).tar.bz2.sig"; \
|
||||
echo; \
|
||||
echo "Here are the MD5 and SHA1 signatures:"; \
|
||||
echo; \
|
||||
echo "$(tgz-md5) $(my_distdir).tar.gz"; \
|
||||
echo "$(bz2-md5) $(my_distdir).tar.bz2"; \
|
||||
echo "$(xdelta-md5) $(xd-delta)"; \
|
||||
echo "$(tgz-sha1) $(my_distdir).tar.gz"; \
|
||||
echo "$(bz2-sha1) $(my_distdir).tar.bz2"; \
|
||||
echo "$(xdelta-sha1) $(xd-delta)"; \
|
||||
echo; \
|
||||
echo NEWS:; \
|
||||
sed -n "/$(THIS_VERSION_REGEXP)[]:]/,/$(PREV_VERSION_REGEXP)[]:]/p" NEWS \
|
||||
sed -n "$(news-r1),$(news-r2)p" NEWS \
|
||||
| grep -v '^\['; \
|
||||
echo; \
|
||||
echo ChangeLog entries:; \
|
||||
find . -name ChangeLog -maxdepth 2 \
|
||||
| xargs cvs diff -up -r$(prev-cvs-tag) -rHEAD \
|
||||
| xargs $(CVS) diff -up -r$(prev-cvs-tag) -rHEAD \
|
||||
| sed -n 's/^+//p' \
|
||||
| perl -ne 'm!^\+\+ (\./)?! or print,next;' \
|
||||
-e 'print "\n"."*"x70 ."\n"; s///; print; print "*"x70 ."\n"'; \
|
||||
@@ -210,9 +281,10 @@ move_if_change ?= move-if-change
|
||||
# The following pseudo table associates a local directory and a URL
|
||||
# with each of the files that belongs to some other package and is
|
||||
# regularly updated from the specified URL.
|
||||
wget_files ?= $(srcdir)/config.guess $(srcdir)/config.sub \
|
||||
wget_files ?= $(srcdir)/config/config.guess \
|
||||
$(srcdir)/config/config.sub \
|
||||
$(srcdir)/src/ansi2knr.c \
|
||||
$(srcdir)/doc/texinfo.tex
|
||||
$(srcdir)/config/texinfo.tex
|
||||
get-targets = $(patsubst %, get-%, $(wget_files))
|
||||
|
||||
config.guess-url_prefix = $(ftp-gnu)/config/
|
||||
@@ -236,41 +308,32 @@ $(get-targets):
|
||||
automake_repo=:pserver:anoncvs@anoncvs.cygnus.com:/cvs/automake
|
||||
.PHONY: wget-update
|
||||
wget-update: $(get-targets)
|
||||
for f in depcomp missing; do \
|
||||
test -f $$f || continue; \
|
||||
echo checking out $$f...; \
|
||||
cvs -d $(automake_repo) co -p automake/lib/$$f > $$f.t \
|
||||
&& $(move_if_change) $$f.t $$f; \
|
||||
cd config && \
|
||||
for f in depcomp missing mkinstalldirs; do \
|
||||
test -f $$f || { echo "*** skipping $$f" 1>&2; continue; }; \
|
||||
echo checking out $$f...; \
|
||||
$(CVS) -d $(automake_repo) co -p automake/lib/$$f > $$f.t \
|
||||
&& $(move_if_change) $$f.t $$f; \
|
||||
done
|
||||
|
||||
define emit-rsync-commands
|
||||
define emit-upload-commands
|
||||
echo =====================================
|
||||
echo =====================================
|
||||
echo 'for host in $(a_host) $(b_host); do \'
|
||||
echo ' rsync -e ssh --pro -av $(xd-delta) $(my_distdir).tar.bz2 \'
|
||||
echo ' $(my_distdir).tar.gz $$host:$(real_dir); done'
|
||||
echo upload $(PACKAGE) $(PREV_VERSION) $(VERSION)
|
||||
echo '# send the /tmp/announcement e-mail'
|
||||
echo =====================================
|
||||
echo =====================================
|
||||
endef
|
||||
|
||||
# Make sure that the copyright date in lib/version-etc.c is up to date.
|
||||
check-copyright:
|
||||
@if test -f lib/version-etc.c; then \
|
||||
grep 'N_("Copyright (C) $(shell date +%Y) Free' lib/version-etc.c \
|
||||
> /dev/null \
|
||||
|| { echo 'out of date copyright in $<; update it' 1>&2; exit 1; }; \
|
||||
fi
|
||||
|
||||
$(xd-delta): $(release-archive-dir)/$(prev-tgz) $(distdir).tar.gz
|
||||
$(xd-delta): $(release_archive_dir)/$(prev-tgz) $(distdir).tar.gz
|
||||
xdelta delta -9 $^ $@ || :
|
||||
|
||||
alpha: local-check
|
||||
alpha: $(local-check)
|
||||
$(MAKE) cvs-dist
|
||||
$(MAKE) $(xd-delta)
|
||||
$(MAKE) -s announcement > /tmp/announce-$(my_distdir)
|
||||
ln $(rel-files) $(release-archive-dir)
|
||||
ln $(rel-files) $(release_archive_dir)
|
||||
chmod a-w $(rel-files)
|
||||
echo $(VERSION) > $(prev_version_file)
|
||||
cvs ci -m. $(prev_version_file)
|
||||
@$(emit-rsync-commands)
|
||||
$(CVS) ci -m. $(prev_version_file)
|
||||
@$(emit-upload-commands)
|
||||
|
||||
14
NEWS
Normal file
14
NEWS
Normal file
@@ -0,0 +1,14 @@
|
||||
[4.5.2]
|
||||
* `rm -i dir' (without --recursive (-r)) no longer recurses into dir
|
||||
* `tail -c N FILE' now works with files of size >= 4GB
|
||||
* `mkdir -p' can now create very deep (e.g. 40,000-component) directories
|
||||
* rmdir -p dir-with-trailing-slash/ no longer fails
|
||||
* printf now honors the `--' command line delimiter
|
||||
* od's 8-byte formats x8, o8, and u8 now work
|
||||
* tail now accepts fractional seconds for its --sleep-interval=S (-s) option
|
||||
[4.5.1]
|
||||
* du and ls now report sizes of symbolic links (before they'd always report 0)
|
||||
* uniq now obeys the LC_COLLATE locale, as per POSIX 1003.1-2001 TC1.
|
||||
|
||||
This package is the union of the following:
|
||||
textutils-2.1, fileutils-4.1.11, sh-utils-2.0.15.
|
||||
96
README
Normal file
96
README
Normal file
@@ -0,0 +1,96 @@
|
||||
These are the GNU core utilities. This package is the union of
|
||||
the GNU fileutils, sh-utils, and textutils packages.
|
||||
|
||||
Most of these programs have significant advantages over their Unix
|
||||
counterparts, such as greater speed, additional options, and fewer
|
||||
arbitrary limits.
|
||||
|
||||
The programs that can be built with this package are:
|
||||
|
||||
basename cat chgrp chmod chown chroot cksum comm cp csplit cut date dd
|
||||
df dir dircolors dirname du echo env expand expr factor false fmt fold
|
||||
ginstall groups head hostid hostname id join kill link ln logname ls
|
||||
md5sum mkdir mkfifo mknod mv nice nl nohup od paste pathchk pinky pr
|
||||
printenv printf ptx pwd rm rmdir seq sha1sum shred sleep sort split
|
||||
stat stty su sum sync tac tail tee test touch tr true tsort tty uname
|
||||
unexpand uniq unlink uptime users vdir wc who whoami yes
|
||||
|
||||
See the file NEWS for a list of major changes in the current release.
|
||||
|
||||
See the file INSTALL for compilation and installation instructions.
|
||||
|
||||
These programs are intended to be POSIX.2 compliant (with BSD and other
|
||||
extensions), like the rest of the GNU system.
|
||||
|
||||
The ls, dir, and vdir commands are all separate executables instead of
|
||||
one program that checks argv[0] because people often rename these
|
||||
programs to things like gls, gnuls, l, etc. Renaming a program
|
||||
file shouldn't affect how it operates, so that people can get the
|
||||
behavior they want with whatever name they want.
|
||||
|
||||
Special thanks to Paul Eggert, Brian Matthews, Bruce Evans, Karl Berry,
|
||||
Kaveh Ghazi, and François Pinard for help with debugging and porting
|
||||
these programs. Many thanks to all of the people who have taken the
|
||||
time to submit problem reports and fixes. All contributed changes are
|
||||
attributed in the ChangeLog file.
|
||||
|
||||
And thanks to the following people who have provided accounts for
|
||||
portability testing on many different types of systems: Bob Proulx,
|
||||
Christian Robert, François Pinard, Greg McGary, Harlan Stenn,
|
||||
Joel N. Weber, Mark D. Roth, Matt Schalit, Nelson H. F. Beebe,
|
||||
Réjean Payette, Sam Tardieu.
|
||||
|
||||
Thanks to Michael Stone for inflicting test releases of the fileutils
|
||||
on Debian's unstable distribution, and to all the kind folks who used
|
||||
that distribution and found and reported bugs.
|
||||
|
||||
Note that each man page is now automatically generated from a template
|
||||
and from the corresponding --help usage message. Patches to the template
|
||||
files (man/*.x) are welcome. However, the authoritative documentation
|
||||
is in texinfo form in the doc directory.
|
||||
|
||||
If you run the tests on a SunOS4.1.4 system, expect the ctime-part of
|
||||
the ls `time-1' test to fail. I believe that is due to a bug in the
|
||||
way Sun implemented link(2) and chmod(2).
|
||||
|
||||
There are pretty many tests, but nowhere near as many as we need.
|
||||
Additions and corrections are very welcome.
|
||||
|
||||
If you see a problem that you've already reported, feel free to re-report
|
||||
it -- it won't bother me to get a reminder. Besides, the more messages I
|
||||
get regarding a particular problem the sooner it'll be fixed -- usually.
|
||||
If you sent a complete patch and, after a couple weeks you haven't
|
||||
received any acknowledgement please ping us. A complete patch includes
|
||||
a well-written ChangeLog entry, unified (diff -u format) diffs relative
|
||||
to the most recent test release, an explanation for why the patch is
|
||||
necessary or useful, and if at all possible, enough information to
|
||||
reproduce whatever problem prompted it.
|
||||
|
||||
If your patch adds a new feature, please try to get some sort of consensus
|
||||
that it is a worthwhile change. One way to do that is to send mail to
|
||||
bug-gnu-utils@gnu.org (aka the gnu.utils.bug news group) including as
|
||||
much description and justification as you can. Based on the feedback
|
||||
that generates, you may be able to convince us that it's worth adding.
|
||||
|
||||
|
||||
WARNING: If you modify files like configure.in, m4/*.m4, aclocal.m4,
|
||||
or any Makefile.am, then don't be surprised if what gets regenerated no
|
||||
longer works. To make things work, you'll have to be using appropriate
|
||||
versions of automake and autoconf. As for what versions are `appropriate',
|
||||
use the versions of
|
||||
|
||||
* autoconf specified via AC_PREREQ in m4/jm-macros.m4
|
||||
* automake specified via AM_INIT_AUTOMAKE in configure.ac
|
||||
|
||||
Usually it's fine to use versions that are newer than those specified.
|
||||
|
||||
These programs all recognize the `--version' option. When reporting
|
||||
bugs, please include in the subject line both the package name/version
|
||||
and the name of the program for which you found a problem.
|
||||
|
||||
For general documentation on the coding and usage standards
|
||||
this distribution follows, see the GNU Coding Standards,
|
||||
http://www.gnu.org/prep/standards_toc.html.
|
||||
|
||||
Mail suggestions and bug reports for these programs to
|
||||
the address on the last line of --help output.
|
||||
73
THANKS
73
THANKS
@@ -1,21 +1,25 @@
|
||||
These people have contributed to the GNU fileutils, textutils,
|
||||
and/or sh-utils packages. Some have reported problems, others have
|
||||
contributed improvements to the documentation, actual code, and even
|
||||
These people have contributed to the GNU coreutils (formerly, the fileutils,
|
||||
textutils, and/or sh-utils packages). Some have reported problems, others
|
||||
have contributed improvements to the documentation, actual code, and even
|
||||
complete programs. Those contributions are described in the ChangeLog
|
||||
files. If your name has been left out, if you'd rather not be listed,
|
||||
or if you'd prefer a different address be used, please let me know.
|
||||
Some old names and addresses are still in the ChangeLog.
|
||||
|
||||
??? kytek@cybercomm.net
|
||||
Achim Blumensath blume@corona.oche.de
|
||||
Adam Klein aklein@debian.org
|
||||
Akim Demaille demaille@inf.enst.fr
|
||||
Alain Magloire alain@qnx.com
|
||||
Alan Iwi iwi@atm.ox.ac.uk
|
||||
Albert Chin-A-Young china@thewrittenword.com
|
||||
Albert Hopkins ahopkins@dynacare.com
|
||||
Alberto Accomazzi alberto@cfa0.harvard.edu
|
||||
aldomel aldomel@ix.netcom.com
|
||||
Alen Muzinic zveki@fly.cc.fer.hr
|
||||
Alexandre Duret-Lutz duret_g@epita.fr
|
||||
Alexey Solovyov alekso@math.uu.se
|
||||
Alfred M. Szmidt ams@kemisten.nu
|
||||
Andi Kleen freitag@alancoxonachip.com
|
||||
Andre Novaes Cunha Andre.Cunha@br.global-one.net
|
||||
Andreas Gruenbacher ag@bestbits.at
|
||||
Andreas Jaeger jaeger@gnu.org
|
||||
@@ -34,11 +38,14 @@ Ariel Faigon ariel@cthulhu.engr.sgi.com
|
||||
Arne H. Juul arnej@solan.unit.no
|
||||
Arne Henrik Juul arnej@imf.unit.no
|
||||
Arthur Pool pool@commerce.uq.edu.au
|
||||
Arun Sharma arun.sharma@intel.com
|
||||
Augey Mikus mikus@dqc.org
|
||||
Austin Donnelly Austin.Donnelly@cl.cam.ac.uk
|
||||
Axel Kittenberger Anshil@gmx.net
|
||||
Bauke Jan Douma bjdouma@xs4all.nl
|
||||
Bengt Martensson bengt@mathematik.uni-Bremen.de
|
||||
Bernd Leibing bernd.leibing@rz.uni-ulm.de
|
||||
Bernhard Baehr bernhard.baehr@gmx.de
|
||||
Bernhard Rosenkraenzer bero@redhat.de
|
||||
Bill Peters peters@gaffel.as.arizona.edu
|
||||
Bjorn Helgaas helgaas@rsn.hp.com
|
||||
@@ -55,21 +62,27 @@ Carlos Canau Carlos.Canau@relay.puug.pt
|
||||
Charles Karney karney@pppl.gov
|
||||
Charles Randall crandall@matchlogic.com
|
||||
Chip Salzenberg chip@valinux.com
|
||||
Chris Faylor cgf@cygnus.com
|
||||
Chris J. Bednar cjb@AdvancedDataSolutions.com
|
||||
Chris Sylvain csylvain@umm.edu
|
||||
Chris Yeo cyeo@biking.org
|
||||
Christi Alice Scarborough christi@chiark.greenend.org.uk
|
||||
Christian Harkort christian.harkort@web.de
|
||||
Christian Krackowizer ckrackowiz@std.schuler-ag.com
|
||||
Christian Rose menthos@menthos.com
|
||||
Christian von Roques roques@pond.sub.org
|
||||
Chuck Hedrick hedrick@klinzhai.rutgers.edu
|
||||
Clark Morgan cmorgan@aracnet.com
|
||||
Colin Plumb colin@nyx.net
|
||||
Colin Watson cjw44@riva.ucam.org
|
||||
Collin Rogowski collin@rogowski.de
|
||||
Dale Scheetz dwarf@polaris.net
|
||||
Dan Hagerty hag@gnu.ai.it.edu
|
||||
Dan Jacobson http://www.geocities.com/jidani
|
||||
Dan Pascu dan@services.iiruc.ro
|
||||
Daniel Bergstrom noa@melody.se
|
||||
Darren Salt ds@youmustbejoking.demon.co.uk
|
||||
Dave Beckett dajobe@dajobe.org
|
||||
David Dyck dcd@tc.fluke.COM
|
||||
David Godfrey dave@delta.demon.co.uk
|
||||
David Luyer david_luyer@pacific.net.au
|
||||
@@ -78,7 +91,6 @@ Derek Clegg dclegg@next.com
|
||||
Dick Streefland dick_streefland@tasking.com
|
||||
Dirk Lattermann dlatt@t-online.de
|
||||
Dirk-Jan Faber djfaber@snow.nl
|
||||
Dan Jacobson http://www.geocities.com/jidani
|
||||
Don Parsons dparsons@synapse.kent.edu
|
||||
Donni Erpel donald@appc11.gsi.de
|
||||
Doug McLaren dougmc@comco.com
|
||||
@@ -91,41 +103,49 @@ Eli Zaretskii eliz@is.elta.co.il
|
||||
Emile LeBlanc leblanc@math.toronto.edu
|
||||
Eric Backus ericb@lsid.hp.com
|
||||
Eric G. Miller egm2@jps.net
|
||||
Eric Pemente pemente@northpark.edu
|
||||
Eric S. Raymond esr@snark.thyrsus.com
|
||||
Erik Bennett bennett@cvo.oneworld.com
|
||||
Erik Corry erik@kroete2.freinet.de
|
||||
Felix Lee flee@teleport.com
|
||||
Fletcher Mattox fletcher@cs.utexas.edu
|
||||
Florin Iucha fiucha@hsys.mic.ro
|
||||
François Pinard pinard@iro.umontreal.ca
|
||||
Frank Adler fadler@allesklar.de
|
||||
Frank T Lofaro ftlofaro@snooks.Egr.UNLV.EDU
|
||||
François Pinard pinard@iro.umontreal.ca
|
||||
Fred Fish fnf@ninemoons.com
|
||||
Frédéric L. W. Meunier 0@pervalidus.net
|
||||
Frederik Eaton frederik@caltech.edu
|
||||
Gabor Z. Papp gzp@gzp.org.hu
|
||||
Gaël Quéri gqueri@mail.dotcom.fr
|
||||
Galen Hazelwood galenh@micron.net
|
||||
Gary Anderson ganderson@clark.net
|
||||
Gaël Quéri gqueri@mail.dotcom.fr
|
||||
Gaute Hvoslef Kvalnes gaute@verdsveven.com
|
||||
Geoff Kuenning geoff@cs.hmc.edu
|
||||
Geoff Odhner geoff@franklin.com
|
||||
Geoff Whale geoffw@cse.unsw.EDU.AU
|
||||
Gerhard Poul gpoul@gnu.org
|
||||
Germano Leichsenring germano@jedi.cs.kobe-u.ac.jp
|
||||
Göran Uddeborg goeran@uddeborg.pp.se
|
||||
GOTO Masanori gotom@debian.or.jp
|
||||
Greg Louis glouis@dynamicro.on.ca
|
||||
Greg McGary gkm@gnu.org
|
||||
Greg Troxel gdt@bbn.com
|
||||
Greg Wooledge gawooledge@sherwin.com
|
||||
Gregory Leblanc gleblanc@cu-portland.edu
|
||||
Göran Uddeborg goeran@uddeborg.pp.se
|
||||
H. J. Lu hjl@valinux.com
|
||||
Hans Lermen ???
|
||||
Hans Verkuil hans@wyst.hobby.nl
|
||||
Harry Liu rliu@lek.ugcs.caltech.edu
|
||||
Herbert Xu herbert@gondor.apana.org.au
|
||||
Holger Berger hberger@ess.nec.de
|
||||
Hon-Yin Kok hkok@yoda.unl.edu
|
||||
Hugh Daniel hugh@xanadu.com
|
||||
Ian Bruce ian.bruce@myrealbox.com
|
||||
Ian Jackson ijackson@chiark.greenend.org.uk
|
||||
Ian Lance Taylor ian@cygnus.com
|
||||
Ian Turner vectro@pipeline.com
|
||||
Iida Yosiaki iida@gnu.org
|
||||
James james@albion.glarp.com
|
||||
James Antill jmanti%essex.ac.uk@seralph21.essex.ac.uk
|
||||
James Sneeringer jvs@ocslink.com
|
||||
@@ -146,7 +166,7 @@ Jim Blandy jimb@cyclic.com
|
||||
Jim Dennis jimd@starshine.org
|
||||
Joakim Rosqvist dvljrt@cs.umu.se
|
||||
Jochen Hein jochen@jochen.org
|
||||
Joe Orton joe@orton.demon.co.uk
|
||||
Joe Orton joe@manyfish.co.uk
|
||||
Johan Danielsson joda@pdc.kth.se
|
||||
John Bley jbb6@acpub.duke.edu
|
||||
John David Anglin dave.anglin@nrc.ca
|
||||
@@ -161,11 +181,12 @@ John Summerfield summer@OS2.ami.com.au
|
||||
Joost van Baal joostvb@xs4all.nl
|
||||
Jorge Stolfi stolfi@ic.unicamp.br
|
||||
Joseph S. Myers jsm28@cam.ac.uk
|
||||
Juan F. Codagnone juam@arnet.com.ar
|
||||
Jungshik Shin jshin@pantheon.yale.edu
|
||||
Jürgen Fluk louis@dachau.marco.de
|
||||
jvogel jvogel@linkny.com
|
||||
Kai-Uwe Rommel rommel@informatik.tu-muenchen.de
|
||||
Kai Henningsen kai@debian.org
|
||||
Kai-Uwe Rommel rommel@informatik.tu-muenchen.de
|
||||
Kalle Olavi Niemitalo tosi@stekt.oulu.fi
|
||||
Kamal Paul Nigam Kamal_Paul_Nigam@gs35.sp.cs.cmu.edu
|
||||
Karl Eichwalder keichwa@gmx.net
|
||||
@@ -178,11 +199,11 @@ Keith Thompson kst@sdsc.edu
|
||||
Ken Pizzini kenp@halcyon.com
|
||||
Kjetil Torgrim Homme kjetilho@ifi.uio.no
|
||||
Kristoffer Rose kris@diku.dk
|
||||
??? kytek@cybercomm.net
|
||||
Larry McVoy lm@sgi.com
|
||||
Lars Hecking lhecking@nmrc.ucc.ie
|
||||
Lehti Rami rammer@cs.tut.fi
|
||||
Leonard N. Zubkoff lnz@dandelion.com
|
||||
Leonardo Milano lmilano@udel.edu
|
||||
Lorne Baker lbaker@nitro.avint.net
|
||||
M. P. Suzuki mpsuzuki@hiroshima-u.ac.jp
|
||||
Maciej Kwapulinski pikpok@univ.gda.pl
|
||||
@@ -191,6 +212,7 @@ Manfred Hollstein manfred@s-direktnet.de
|
||||
Marc Boucher marc@mbsi.ca
|
||||
Marc Olzheim marcolz@stack.nl
|
||||
Marco Franzen Marco.Franzen@Thyron.com
|
||||
Marcus Brinkmann http://www.marcus-brinkmann.de
|
||||
Marcus Daniels marcus@ee.pdx.edu
|
||||
Mark A. Thomas thommark@access.digex.net
|
||||
Mark D. Roth roth@uiuc.edu
|
||||
@@ -204,6 +226,7 @@ Markus Demleitner msdemlei@auriga.ari.uni-heidelberg.de
|
||||
Martin martin@dresden.nacamar.de
|
||||
Martin Gallant martyg@goodbit.net
|
||||
Martin Hippe martin.hippe@schlund.de
|
||||
Martin Michlmayr tbm@cyrius.com
|
||||
Martin Mitchell martin@debian.org
|
||||
Martin P.J. Zinser zinser@decus.de
|
||||
Marty Leisner leisner@sdsp.mc.xerox.com
|
||||
@@ -212,46 +235,59 @@ Mate Wierdl mw@moni.msci.memphis.edu
|
||||
Matej Vela mvela@public.srce.hr
|
||||
Matt Perry matt@primefactor.com
|
||||
Matt Schalit mschalit@pacbell.net
|
||||
Matthew Arnison maffew@cat.org.au
|
||||
Matthew Braun matthew@ans.net
|
||||
Matthew Clarke Matthew_Clarke@mindlink.bc.ca
|
||||
Matthew S. Levine mslevine@theory.lcs.mit.edu
|
||||
Matthew Smith matts@bluesguitar.org
|
||||
Matthew Swift swift@alum.mit.edu
|
||||
Mattias Wadenstein maswan@acc.umu.se
|
||||
Matthias Urlichs smurf@noris.de
|
||||
Mattias Wadenstein maswan@acc.umu.se
|
||||
Meelis Roos mroos@tartu.cyber.ee
|
||||
Michael ??? michael@roka.net
|
||||
Michael Deutschmann michael@talamasca.ocis.net
|
||||
Michael Gaughen mgaughen@polyserve.com
|
||||
Michael Hasselberg mikelh@zonta.ping.de
|
||||
Michael Hohn hohn@math.utah.edu
|
||||
Michael J. Croghan mcroghan@usatoday.com
|
||||
Michael Piefel piefel@informatik.hu-berlin.de
|
||||
Michael Steffens michael.steffens@s.netic.de
|
||||
Michael Stone mstone@debian.org
|
||||
Michael Stutz stutz@dsl.org
|
||||
Michael Veksler mveksler@techunix.technion.ac.il
|
||||
Michail Litvak mci@owl.openwall.com
|
||||
Michel Robitaille robitail@IRO.UMontreal.CA
|
||||
Michiel Bacchiani bacchian@raven.bu.edu
|
||||
Mike Castle dalgoda@ix.netcom.com
|
||||
Mike Coleman mkc@mathdogs.com
|
||||
Mikko Tuumanen m@sorvankyla.yok.utu.fi
|
||||
Miles Bader miles@gnu.ai.mit.edu
|
||||
Minh Tran-Le tranle@intellicorp.com
|
||||
Morten Welinder terra@diku.dk
|
||||
Neal H Walfield neal@cs.uml.edu
|
||||
Neil Brown neilb@cse.unsw.edu.au
|
||||
Nelson H. F. Beebe beebe@math.utah.edu
|
||||
Nick Lawes nlawes@silverplatter.com
|
||||
Niklas Edmundsson nikke@acc.umu.se
|
||||
Noah Friedman friedman@splode.com
|
||||
Noel Cragg noel@red-bean.com
|
||||
Olav Morkrid olav@funcom.com
|
||||
Ole Laursen olau@hardworking.dk
|
||||
Oskar Liljeblad osk@hem.passagen.se
|
||||
Ørn E. Hansen oehansen@daimi.aau.dk
|
||||
Oskar Liljeblad osk@hem.passagen.se
|
||||
Paul Eggert eggert@twinsun.com
|
||||
Paul Nevai nevai@ops.mps.ohio-state.edu
|
||||
Paul Sauer paul@alexa.com
|
||||
Paul Slootman paul@debian.org
|
||||
Pawel Prokop pablo@wizard.ae.krakow.pl
|
||||
Per Cederqvist ceder@lysator.liu.se
|
||||
Per Kristian Hove perhov@math.ntnu.no
|
||||
Peter Eriksson peter@ifm.liu.se
|
||||
Peter Moulder reiter@netspace.net.au
|
||||
Peter Samuelson psamuels@sampo.creighton.edu
|
||||
Peter Seebach seebs@taniemarie.solon.com
|
||||
Petter Reinholdtsen pere@hungry.com
|
||||
Phelippe Neveu pneveu@pcigeomatics.com
|
||||
Phil Richards phil.richards@vf.vodafone.co.uk
|
||||
Philippe De Muyter phdm@macqel.be
|
||||
Philippe Schnoebelen Philippe.Schnoebelen@imag.fr
|
||||
@@ -262,9 +298,11 @@ Rainer Orth ro@TechFak.Uni-Bielefeld.DE
|
||||
Ralf W. Stephan stephan@tmt.de
|
||||
Ralph Loader loader@maths.ox.ac.uk
|
||||
Raul Miller moth@magenta.com
|
||||
Raúl Núñez de Arenas Coronado raul@pleyades.net
|
||||
Richard Braakman dark@xs4all.nl
|
||||
Richard Dawe richdawe@bigfoot.com
|
||||
Richard J. Rauenzahn rrauenza@hairball.cup.hp.com
|
||||
Richard Neill rn214@hermes.cam.ac.uk
|
||||
Richard Sharman rsharman@magmacom.com
|
||||
Rick Sladkey jrs@world.std.com
|
||||
Rik Faith faith@cs.unc.edu
|
||||
@@ -282,22 +320,27 @@ Sander van Malssen svm@kozmix.ow.nl
|
||||
Santiago Vila Doncel sanvila@unex.es
|
||||
Savochkin Andrey Vladimirovich saw@msu.ru
|
||||
Scott Lurndal slurn@griffin.engr.sgi.com
|
||||
Shing-Shong Shei shei@cs.indiana.edu
|
||||
Soeren Sonnenburg sonnenburg@informatik.hu-berlin.de
|
||||
Stéphane Chazelas Stephane_CHAZELAS@yahoo.fr
|
||||
Stephen Eglen eglen@pcg.wustl.edu
|
||||
Stephen Gildea gildea@stop.mail-abuse.org
|
||||
Stephen Smoogen ??????????
|
||||
Stephen Smoogen smooge@mindspring.com
|
||||
Steve McConnel steve@acadcomp.sil.org
|
||||
Stuart Kemp skemp@peter.bmc.com
|
||||
Tadayoshi Funaba tadf@kt.rim.or.jp
|
||||
TAKAI Kousuke takai@vlsi.kuee.kyoto-u.ac.jp
|
||||
Theodore Ts'o tytso@rsts-11.mit.edu
|
||||
Thomas Bushnell thomas@gnu.ai.mit.edu
|
||||
Thomas Quinot thomas@Cuivre.FR.EU.ORG
|
||||
Tim J. Robbins tjr@FreeBSD.org
|
||||
Tim Smithers mouse@dmouse.com.au
|
||||
Tim Waugh twaugh@redhat
|
||||
Todd A. Jacobs tjacobs@codegnome.org
|
||||
Tom Haynes thomas@netapp.com
|
||||
Tom Quinn trq@dionysos.thphys.ox.ac.uk
|
||||
Ton Hospel thospel@mail.dma.be
|
||||
Tony Kocurko akocurko@mun.ca
|
||||
Tony Leneis tony@plaza.ds.adp.com
|
||||
Tony Robinson ajr@eng.cam.ac.uk
|
||||
Torbjorn Granlund tege@nada.kth.se
|
||||
@@ -305,6 +348,7 @@ Torbjorn Lindgren tl@funcom.no
|
||||
Torsten Landschoff torsten@pclab.ifg.uni-kiel.de
|
||||
Ulrich Drepper drepper@gnu.org
|
||||
Urs Thuermann urs@isnogud.escape.de
|
||||
Uwe H. Steinfeld usteinfeld@gmx.net
|
||||
Vesselin Atanasov vesselin@bgnet.bg
|
||||
Vin Shelton acs@alumni.princeton.edu
|
||||
Volker Borchert bt@teknon.de
|
||||
@@ -316,6 +360,7 @@ Will Edgington wedgingt@acm.org
|
||||
William Bader william@nscs.fast.net
|
||||
William Dowling will@franklin.com
|
||||
William Lewis wiml@omnigroup.com
|
||||
Wojciech Purczynski cliph@isec.pl
|
||||
Wolfram Kleff kleff@cs.uni-bonn.de
|
||||
Won-kyu Park wkpark@chem.skku.ac.kr
|
||||
Zvi Har'El rl@math.technion.ac.il
|
||||
|
||||
4
THANKStt.in
Normal file
4
THANKStt.in
Normal file
@@ -0,0 +1,4 @@
|
||||
The following teams have translated the many diagnostics of this
|
||||
package into many different languages. Thank you!
|
||||
|
||||
---
|
||||
6
TODO
Normal file
6
TODO
Normal file
@@ -0,0 +1,6 @@
|
||||
restore djgpp, eventually
|
||||
merge TODO lists
|
||||
add unit tests for lib/*.c
|
||||
|
||||
strip: add an option to specify the program used to strip binaries.
|
||||
suggestion from Karl Berry
|
||||
32
TODO-private
Normal file
32
TODO-private
Normal file
@@ -0,0 +1,32 @@
|
||||
Move things so there are no symlinks from repository to
|
||||
any directory other than common
|
||||
|
||||
******************
|
||||
LINGUAS:
|
||||
sort -u ../[fst]u/po/LINGUAS > po/LINGUAS
|
||||
|
||||
go cu
|
||||
cd po
|
||||
for i in f s t; do
|
||||
echo $i:
|
||||
xu=${i}u
|
||||
for j in $(cat ../../$xu/po/LINGUAS); do
|
||||
echo " $j"
|
||||
msgmerge -o k ../../$xu/po/$j.po $j.po && mv k $j.po
|
||||
done
|
||||
done
|
||||
|
||||
go cu; cd po; export xu=tu j=zh_TW
|
||||
go cu; cd po; export xu=su j=ru
|
||||
go cu; cd po; export xu=fu j=zh_TW
|
||||
go cu; cd po; export xu=tu j=fr
|
||||
go cu; cd po; export xu=su j=tr
|
||||
go cu; cd po; export xu=fu j=ca
|
||||
|
||||
go cu; cd po; export xu=su j=sl
|
||||
go cu; cd po; export xu=tu j=el
|
||||
go cu; cd po; export xu=su j=da
|
||||
go cu; cd po; export xu=fu j=lg
|
||||
k=$xu-$j
|
||||
msgmerge -o $k ../../$xu/po/$j.po $j.po && mv $k $j.po
|
||||
cvs ci -m 'merge from fileutils-4.1.11' $j.po
|
||||
6148
aclocal.m4
vendored
Normal file
6148
aclocal.m4
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1450
config.hin
Normal file
1450
config.hin
Normal file
File diff suppressed because it is too large
Load Diff
4
config/ChangeLog
Normal file
4
config/ChangeLog
Normal file
@@ -0,0 +1,4 @@
|
||||
2002-02-17 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* config.guess (main): Don't use `head -1'; it's no longer portable.
|
||||
Use `sed 1q' instead.
|
||||
1363
config/config.guess
vendored
Normal file
1363
config/config.guess
vendored
Normal file
File diff suppressed because it is too large
Load Diff
513
config/config.rpath
Executable file
513
config/config.rpath
Executable file
@@ -0,0 +1,513 @@
|
||||
#! /bin/sh
|
||||
# Output a system dependent set of variables, describing how to set the
|
||||
# run time search path of shared libraries in an executable.
|
||||
#
|
||||
# Copyright 1996-2002 Free Software Foundation, Inc.
|
||||
# Taken from GNU libtool, 2001
|
||||
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
#
|
||||
# The first argument passed to this file is the canonical host specification,
|
||||
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
|
||||
# or
|
||||
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
|
||||
# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
|
||||
# should be set by the caller.
|
||||
#
|
||||
# The set of defined variables is at the end of this script.
|
||||
|
||||
# All known linkers require a `.a' archive for static linking (except M$VC,
|
||||
# which needs '.lib').
|
||||
libext=a
|
||||
shlibext=
|
||||
|
||||
host="$1"
|
||||
host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
|
||||
host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
|
||||
host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
|
||||
|
||||
wl=
|
||||
if test "$GCC" = yes; then
|
||||
wl='-Wl,'
|
||||
else
|
||||
case "$host_os" in
|
||||
aix3* | aix4* | aix5*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
hpux9* | hpux10* | hpux11*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
irix5* | irix6*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
linux*)
|
||||
echo '__INTEL_COMPILER' > conftest.$ac_ext
|
||||
if $CC -E conftest.$ac_ext >/dev/null | grep __INTEL_COMPILER >/dev/null
|
||||
then
|
||||
:
|
||||
else
|
||||
# Intel icc
|
||||
wl='-Qoption,ld,'
|
||||
fi
|
||||
;;
|
||||
osf3* | osf4* | osf5*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
solaris*)
|
||||
wl='-Wl,'
|
||||
;;
|
||||
sunos4*)
|
||||
wl='-Qoption ld '
|
||||
;;
|
||||
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
|
||||
if test "x$host_vendor" = xsni; then
|
||||
wl='-LD'
|
||||
else
|
||||
wl='-Wl,'
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
hardcode_libdir_flag_spec=
|
||||
hardcode_libdir_separator=
|
||||
hardcode_direct=no
|
||||
hardcode_minus_L=no
|
||||
|
||||
case "$host_os" in
|
||||
cygwin* | mingw* | pw32*)
|
||||
# FIXME: the MSVC++ port hasn't been tested in a loooong time
|
||||
# When not using gcc, we currently assume that we are using
|
||||
# Microsoft Visual C++.
|
||||
if test "$GCC" != yes; then
|
||||
with_gnu_ld=no
|
||||
fi
|
||||
;;
|
||||
openbsd*)
|
||||
with_gnu_ld=no
|
||||
;;
|
||||
esac
|
||||
|
||||
ld_shlibs=yes
|
||||
if test "$with_gnu_ld" = yes; then
|
||||
case "$host_os" in
|
||||
aix3* | aix4* | aix5*)
|
||||
# On AIX, the GNU linker is very broken
|
||||
ld_shlibs=no
|
||||
;;
|
||||
amigaos*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_minus_L=yes
|
||||
# Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
|
||||
# that the semantics of dynamic libraries on AmigaOS, at least up
|
||||
# to version 4, is to share data among multiple programs linked
|
||||
# with the same dynamic library. Since this doesn't match the
|
||||
# behavior of shared libraries on other platforms, we can use
|
||||
# them.
|
||||
ld_shlibs=no
|
||||
;;
|
||||
beos*)
|
||||
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
cygwin* | mingw* | pw32*)
|
||||
# hardcode_libdir_flag_spec is actually meaningless, as there is
|
||||
# no search path for DLLs.
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
;;
|
||||
solaris* | sysv5*)
|
||||
if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
|
||||
ld_shlibs=no
|
||||
elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
sunos4*)
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
*)
|
||||
if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
|
||||
:
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if test "$ld_shlibs" = yes; then
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
fi
|
||||
else
|
||||
case "$host_os" in
|
||||
aix3*)
|
||||
# Note: this linker hardcodes the directories in LIBPATH if there
|
||||
# are no directories specified by -L.
|
||||
hardcode_minus_L=yes
|
||||
if test "$GCC" = yes; then
|
||||
# Neither direct hardcoding nor static linking is supported with a
|
||||
# broken collect2.
|
||||
hardcode_direct=unsupported
|
||||
fi
|
||||
;;
|
||||
aix4* | aix5*)
|
||||
if test "$host_cpu" = ia64; then
|
||||
# On IA64, the linker does run time linking by default, so we don't
|
||||
# have to do anything special.
|
||||
aix_use_runtimelinking=no
|
||||
else
|
||||
aix_use_runtimelinking=no
|
||||
# Test if we are trying to use run time linking or normal
|
||||
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
|
||||
# need to do runtime linking.
|
||||
case $host_os in aix4.[23]|aix4.[23].*|aix5*)
|
||||
for ld_flag in $LDFLAGS; do
|
||||
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
|
||||
aix_use_runtimelinking=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
esac
|
||||
fi
|
||||
hardcode_direct=yes
|
||||
hardcode_libdir_separator=':'
|
||||
if test "$GCC" = yes; then
|
||||
case $host_os in aix4.[012]|aix4.[012].*)
|
||||
collect2name=`${CC} -print-prog-name=collect2`
|
||||
if test -f "$collect2name" && \
|
||||
strings "$collect2name" | grep resolve_lib_name >/dev/null
|
||||
then
|
||||
# We have reworked collect2
|
||||
hardcode_direct=yes
|
||||
else
|
||||
# We have old collect2
|
||||
hardcode_direct=unsupported
|
||||
hardcode_minus_L=yes
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_libdir_separator=
|
||||
fi
|
||||
esac
|
||||
fi
|
||||
if test "$aix_use_runtimelinking" = yes; then
|
||||
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
|
||||
else
|
||||
if test "$host_cpu" = ia64; then
|
||||
hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
|
||||
else
|
||||
hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
amigaos*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_minus_L=yes
|
||||
# see comment about different semantics on the GNU ld section
|
||||
ld_shlibs=no
|
||||
;;
|
||||
cygwin* | mingw* | pw32*)
|
||||
# When not using gcc, we currently assume that we are using
|
||||
# Microsoft Visual C++.
|
||||
# hardcode_libdir_flag_spec is actually meaningless, as there is
|
||||
# no search path for DLLs.
|
||||
hardcode_libdir_flag_spec=' '
|
||||
libext=lib
|
||||
;;
|
||||
darwin* | rhapsody*)
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
freebsd1*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
freebsd2.2*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
freebsd2*)
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
freebsd*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
hpux9* | hpux10* | hpux11*)
|
||||
hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=yes # Not in the search PATH, but as the default
|
||||
# location of the library.
|
||||
;;
|
||||
irix5* | irix6*)
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
netbsd*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
newsos6)
|
||||
hardcode_direct=yes
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
openbsd*)
|
||||
hardcode_direct=yes
|
||||
if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
|
||||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
|
||||
else
|
||||
case "$host_os" in
|
||||
openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
;;
|
||||
*)
|
||||
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
os2*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
osf3*)
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
osf4* | osf5*)
|
||||
if test "$GCC" = yes; then
|
||||
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
|
||||
else
|
||||
# Both cc and cxx compiler support -rpath directly
|
||||
hardcode_libdir_flag_spec='-rpath $libdir'
|
||||
fi
|
||||
hardcode_libdir_separator=:
|
||||
;;
|
||||
sco3.2v5*)
|
||||
;;
|
||||
solaris*)
|
||||
hardcode_libdir_flag_spec='-R$libdir'
|
||||
;;
|
||||
sunos4*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=yes
|
||||
;;
|
||||
sysv4)
|
||||
if test "x$host_vendor" = xsno; then
|
||||
hardcode_direct=yes # is this really true???
|
||||
else
|
||||
hardcode_direct=no # Motorola manual says yes, but my tests say they lie
|
||||
fi
|
||||
;;
|
||||
sysv4.3*)
|
||||
;;
|
||||
sysv5*)
|
||||
hardcode_libdir_flag_spec=
|
||||
;;
|
||||
uts4*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
;;
|
||||
dgux*)
|
||||
hardcode_libdir_flag_spec='-L$libdir'
|
||||
;;
|
||||
sysv4*MP*)
|
||||
if test -d /usr/nec; then
|
||||
ld_shlibs=yes
|
||||
fi
|
||||
;;
|
||||
sysv4.2uw2*)
|
||||
hardcode_direct=yes
|
||||
hardcode_minus_L=no
|
||||
;;
|
||||
sysv5uw7* | unixware7*)
|
||||
;;
|
||||
*)
|
||||
ld_shlibs=no
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Check dynamic linker characteristics
|
||||
libname_spec='lib$name'
|
||||
sys_lib_dlsearch_path_spec="/lib /usr/lib"
|
||||
sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
|
||||
case "$host_os" in
|
||||
aix3*)
|
||||
shlibext=so
|
||||
;;
|
||||
aix4* | aix5*)
|
||||
shlibext=so
|
||||
;;
|
||||
amigaos*)
|
||||
shlibext=ixlibrary
|
||||
;;
|
||||
beos*)
|
||||
shlibext=so
|
||||
;;
|
||||
bsdi4*)
|
||||
shlibext=so
|
||||
sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
|
||||
sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
|
||||
;;
|
||||
cygwin* | mingw* | pw32*)
|
||||
case $GCC,$host_os in
|
||||
yes,cygwin*)
|
||||
shlibext=dll.a
|
||||
;;
|
||||
yes,mingw*)
|
||||
shlibext=dll
|
||||
sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"`
|
||||
;;
|
||||
yes,pw32*)
|
||||
shlibext=dll
|
||||
;;
|
||||
*)
|
||||
shlibext=dll
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
darwin* | rhapsody*)
|
||||
shlibext=dylib
|
||||
;;
|
||||
freebsd1*)
|
||||
;;
|
||||
freebsd*)
|
||||
shlibext=so
|
||||
;;
|
||||
gnu*)
|
||||
shlibext=so
|
||||
;;
|
||||
hpux9* | hpux10* | hpux11*)
|
||||
shlibext=sl
|
||||
;;
|
||||
irix5* | irix6*)
|
||||
shlibext=so
|
||||
case "$host_os" in
|
||||
irix5*)
|
||||
libsuff= shlibsuff=
|
||||
;;
|
||||
*)
|
||||
case $LD in
|
||||
*-32|*"-32 ") libsuff= shlibsuff= ;;
|
||||
*-n32|*"-n32 ") libsuff=32 shlibsuff=N32 ;;
|
||||
*-64|*"-64 ") libsuff=64 shlibsuff=64 ;;
|
||||
*) libsuff= shlibsuff= ;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
|
||||
sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
|
||||
;;
|
||||
linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
|
||||
;;
|
||||
linux-gnu*)
|
||||
shlibext=so
|
||||
;;
|
||||
netbsd*)
|
||||
shlibext=so
|
||||
;;
|
||||
newsos6)
|
||||
shlibext=so
|
||||
;;
|
||||
openbsd*)
|
||||
shlibext=so
|
||||
;;
|
||||
os2*)
|
||||
libname_spec='$name'
|
||||
shlibext=dll
|
||||
;;
|
||||
osf3* | osf4* | osf5*)
|
||||
shlibext=so
|
||||
sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
|
||||
sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
|
||||
;;
|
||||
sco3.2v5*)
|
||||
shlibext=so
|
||||
;;
|
||||
solaris*)
|
||||
shlibext=so
|
||||
;;
|
||||
sunos4*)
|
||||
shlibext=so
|
||||
;;
|
||||
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
|
||||
shlibext=so
|
||||
case "$host_vendor" in
|
||||
motorola)
|
||||
sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
uts4*)
|
||||
shlibext=so
|
||||
;;
|
||||
dgux*)
|
||||
shlibext=so
|
||||
;;
|
||||
sysv4*MP*)
|
||||
if test -d /usr/nec; then
|
||||
shlibext=so
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
|
||||
escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
||||
escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
||||
escaped_sys_lib_search_path_spec=`echo "X$sys_lib_search_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
||||
escaped_sys_lib_dlsearch_path_spec=`echo "X$sys_lib_dlsearch_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
|
||||
|
||||
sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
|
||||
|
||||
# How to pass a linker flag through the compiler.
|
||||
wl="$escaped_wl"
|
||||
|
||||
# Static library suffix (normally "a").
|
||||
libext="$libext"
|
||||
|
||||
# Shared library suffix (normally "so").
|
||||
shlibext="$shlibext"
|
||||
|
||||
# Flag to hardcode \$libdir into a binary during linking.
|
||||
# This must work even if \$libdir does not exist.
|
||||
hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
|
||||
|
||||
# Whether we need a single -rpath flag with a separated argument.
|
||||
hardcode_libdir_separator="$hardcode_libdir_separator"
|
||||
|
||||
# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
|
||||
# resulting binary.
|
||||
hardcode_direct="$hardcode_direct"
|
||||
|
||||
# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
|
||||
# resulting binary.
|
||||
hardcode_minus_L="$hardcode_minus_L"
|
||||
|
||||
# Compile-time system search path for libraries
|
||||
sys_lib_search_path_spec="$escaped_sys_lib_search_path_spec"
|
||||
|
||||
# Run-time system search path for libraries
|
||||
sys_lib_dlsearch_path_spec="$escaped_sys_lib_dlsearch_path_spec"
|
||||
|
||||
EOF
|
||||
1470
config/config.sub
vendored
Normal file
1470
config/config.sub
vendored
Normal file
File diff suppressed because it is too large
Load Diff
423
config/depcomp
Normal file
423
config/depcomp
Normal file
@@ -0,0 +1,423 @@
|
||||
#! /bin/sh
|
||||
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
# Copyright 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
# 02111-1307, USA.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||
|
||||
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
# `libtool' can also be set to `yes' or `no'.
|
||||
|
||||
if test -z "$depfile"; then
|
||||
base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
|
||||
dir=`echo "$object" | sed 's,/.*$,/,'`
|
||||
if test "$dir" = "$object"; then
|
||||
dir=
|
||||
fi
|
||||
# FIXME: should be _deps on DOS.
|
||||
depfile="$dir.deps/$base"
|
||||
fi
|
||||
|
||||
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||
|
||||
rm -f "$tmpdepfile"
|
||||
|
||||
# Some modes work just like other modes, but use different flags. We
|
||||
# parameterize here, but still list the modes in the big case below,
|
||||
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||
# here, because this file can only contain one case statement.
|
||||
if test "$depmode" = hp; then
|
||||
# HP compiler uses -M and no extra arg.
|
||||
gccflag=-M
|
||||
depmode=gcc
|
||||
fi
|
||||
|
||||
if test "$depmode" = dashXmstdout; then
|
||||
# This is just like dashmstdout with a different argument.
|
||||
dashmflag=-xM
|
||||
depmode=dashmstdout
|
||||
fi
|
||||
|
||||
case "$depmode" in
|
||||
gcc3)
|
||||
## gcc 3 implements dependency tracking that does exactly what
|
||||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
mv "$tmpdepfile" "$depfile"
|
||||
;;
|
||||
|
||||
gcc)
|
||||
## There are various ways to get dependency output from gcc. Here's
|
||||
## why we pick this rather obscure method:
|
||||
## - Don't want to use -MD because we'd like the dependencies to end
|
||||
## up in a subdir. Having to rename by hand is ugly.
|
||||
## (We might end up doing this anyway to support other compilers.)
|
||||
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||
## -MM, not -M (despite what the docs say).
|
||||
## - Using -M directly means running the compiler twice (even worse
|
||||
## than renaming).
|
||||
if test -z "$gccflag"; then
|
||||
gccflag=-MD,
|
||||
fi
|
||||
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
|
||||
## The second -e expression handles DOS-style file names with drive letters.
|
||||
sed -e 's/^[^:]*: / /' \
|
||||
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||
## This next piece of magic avoids the `deleted header file' problem.
|
||||
## The problem is that when a header file which appears in a .P file
|
||||
## is deleted, the dependency causes make to die (because there is
|
||||
## typically no way to rebuild the header). We avoid this by adding
|
||||
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||
## this for us directly.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" |
|
||||
## Some versions of gcc put a space before the `:'. On the theory
|
||||
## that the space means something, we add a space to the output as
|
||||
## well.
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
sgi)
|
||||
if test "$libtool" = yes; then
|
||||
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||
else
|
||||
"$@" -MDupdate "$tmpdepfile"
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
rm -f "$depfile"
|
||||
|
||||
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||
echo "$object : \\" > "$depfile"
|
||||
|
||||
# Clip off the initial element (the dependent). Don't try to be
|
||||
# clever and replace this with sed code, as IRIX sed won't handle
|
||||
# lines with more than a fixed number of characters (4096 in
|
||||
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||
# the IRIX cc adds comments like `#:fec' to the end of the
|
||||
# dependency line.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
||||
tr '
|
||||
' ' ' >> $depfile
|
||||
echo >> $depfile
|
||||
|
||||
# The second pass generates a dummy entry for each header file.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||
>> $depfile
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
aix)
|
||||
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||
# in a .u file. This file always lives in the current directory.
|
||||
# Also, the AIX compiler puts `$object:' at the start of each line;
|
||||
# $object doesn't have directory information.
|
||||
stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
|
||||
tmpdepfile="$stripped.u"
|
||||
outname="$stripped.o"
|
||||
if test "$libtool" = yes; then
|
||||
"$@" -Wc,-M
|
||||
else
|
||||
"$@" -M
|
||||
fi
|
||||
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
if test -f "$tmpdepfile"; then
|
||||
# Each line is of the form `foo.o: dependent.h'.
|
||||
# Do two passes, one to just change these to
|
||||
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
|
||||
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
# "include basename.Plo" scheme.
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
tru64)
|
||||
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
||||
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||
# dependencies in `foo.d' instead, so we check for that too.
|
||||
# Subdirectories are respected.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1="$dir.libs/$base.lo.d"
|
||||
tmpdepfile2="$dir.libs/$base.d"
|
||||
"$@" -Wc,-MD
|
||||
else
|
||||
tmpdepfile1="$dir$base.o.d"
|
||||
tmpdepfile2="$dir$base.d"
|
||||
"$@" -MD
|
||||
fi
|
||||
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
if test -f "$tmpdepfile1"; then
|
||||
tmpdepfile="$tmpdepfile1"
|
||||
else
|
||||
tmpdepfile="$tmpdepfile2"
|
||||
fi
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||
# That's a space and a tab in the [].
|
||||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
#nosideeffect)
|
||||
# This comment above is used by automake to tell side-effect
|
||||
# dependency tracking mechanisms from slower ones.
|
||||
|
||||
dashmstdout)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the proprocessed file to stdout, regardless of -o.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove `-o $object'. We will use -o /dev/null later,
|
||||
# however we can't do the remplacement now because
|
||||
# `-o $object' might simply not be used
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
test -z "$dashmflag" && dashmflag=-M
|
||||
"$@" -o /dev/null $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
dashXmstdout)
|
||||
# This case only exists to satisfy depend.m4. It is never actually
|
||||
# run, as this mode is specially recognized in the preamble.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
makedepend)
|
||||
"$@" || exit $?
|
||||
# X makedepend
|
||||
shift
|
||||
cleared=no
|
||||
for arg in "$@"; do
|
||||
case $cleared in
|
||||
no)
|
||||
set ""; shift
|
||||
cleared=yes ;;
|
||||
esac
|
||||
case "$arg" in
|
||||
-D*|-I*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
-*)
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
esac
|
||||
done
|
||||
obj_suffix="`echo $object | sed 's/^.*\././'`"
|
||||
touch "$tmpdepfile"
|
||||
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
sed '1,2d' "$tmpdepfile" | tr ' ' '
|
||||
' | \
|
||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||
## correctly. Breaking it into two sed invocations is a workaround.
|
||||
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||
;;
|
||||
|
||||
cpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the proprocessed file to stdout.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
# Remove `-o $object'.
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
"$@" -E |
|
||||
sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||
sed '$ s: \\$::' > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
cat < "$tmpdepfile" >> "$depfile"
|
||||
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvisualcpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the proprocessed file to stdout, regardless of -o,
|
||||
# because we must use -o when running libtool.
|
||||
"$@" || exit $?
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case "$arg" in
|
||||
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||
set fnord "$@"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
"$@" -E |
|
||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||
echo " " >> "$depfile"
|
||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
none)
|
||||
exec "$@"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unknown depmode $depmode" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
276
config/install-sh
Executable file
276
config/install-sh
Executable file
@@ -0,0 +1,276 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# install - install a program, script, or datafile
|
||||
# This comes from X11R5 (mit/util/scripts/install.sh).
|
||||
#
|
||||
# Copyright 1991 by the Massachusetts Institute of Technology
|
||||
#
|
||||
# Permission to use, copy, modify, distribute, and sell this software and its
|
||||
# documentation for any purpose is hereby granted without fee, provided that
|
||||
# the above copyright notice appear in all copies and that both that
|
||||
# copyright notice and this permission notice appear in supporting
|
||||
# documentation, and that the name of M.I.T. not be used in advertising or
|
||||
# publicity pertaining to distribution of the software without specific,
|
||||
# written prior permission. M.I.T. makes no representations about the
|
||||
# suitability of this software for any purpose. It is provided "as is"
|
||||
# without express or implied warranty.
|
||||
#
|
||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||
# `make' implicit rules from creating a file called install from it
|
||||
# when there is no Makefile.
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch. It can only install one file at a time, a restriction
|
||||
# shared with many OS's install programs.
|
||||
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit="${DOITPROG-}"
|
||||
|
||||
|
||||
# put in absolute paths if you don't have them in your path; or use env. vars.
|
||||
|
||||
mvprog="${MVPROG-mv}"
|
||||
cpprog="${CPPROG-cp}"
|
||||
chmodprog="${CHMODPROG-chmod}"
|
||||
chownprog="${CHOWNPROG-chown}"
|
||||
chgrpprog="${CHGRPPROG-chgrp}"
|
||||
stripprog="${STRIPPROG-strip}"
|
||||
rmprog="${RMPROG-rm}"
|
||||
mkdirprog="${MKDIRPROG-mkdir}"
|
||||
|
||||
transformbasename=""
|
||||
transform_arg=""
|
||||
instcmd="$mvprog"
|
||||
chmodcmd="$chmodprog 0755"
|
||||
chowncmd=""
|
||||
chgrpcmd=""
|
||||
stripcmd=""
|
||||
rmcmd="$rmprog -f"
|
||||
mvcmd="$mvprog"
|
||||
src=""
|
||||
dst=""
|
||||
dir_arg=""
|
||||
|
||||
while [ x"$1" != x ]; do
|
||||
case "$1" in
|
||||
-c) instcmd=$cpprog
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-d) dir_arg=true
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-m) chmodcmd="$chmodprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-s) stripcmd=$stripprog
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
|
||||
shift
|
||||
continue;;
|
||||
|
||||
*) if [ x"$src" = x ]
|
||||
then
|
||||
src=$1
|
||||
else
|
||||
# this colon is to work around a 386BSD /bin/sh bug
|
||||
:
|
||||
dst=$1
|
||||
fi
|
||||
shift
|
||||
continue;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ x"$src" = x ]
|
||||
then
|
||||
echo "install: no input file specified" >&2
|
||||
exit 1
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
if [ x"$dir_arg" != x ]; then
|
||||
dst=$src
|
||||
src=""
|
||||
|
||||
if [ -d "$dst" ]; then
|
||||
instcmd=:
|
||||
chmodcmd=""
|
||||
else
|
||||
instcmd=$mkdirprog
|
||||
fi
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
|
||||
# might cause directories to be created, which would be especially bad
|
||||
# if $src (and thus $dsttmp) contains '*'.
|
||||
|
||||
if [ -f "$src" -o -d "$src" ]
|
||||
then
|
||||
true
|
||||
else
|
||||
echo "install: $src does not exist" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ x"$dst" = x ]
|
||||
then
|
||||
echo "install: no destination specified" >&2
|
||||
exit 1
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
# If destination is a directory, append the input filename; if your system
|
||||
# does not like double slashes in filenames, you may need to add some logic
|
||||
|
||||
if [ -d "$dst" ]
|
||||
then
|
||||
dst=$dst/`basename "$src"`
|
||||
else
|
||||
true
|
||||
fi
|
||||
fi
|
||||
|
||||
## this sed command emulates the dirname command
|
||||
dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
||||
|
||||
# Make sure that the destination directory exists.
|
||||
# this part is taken from Noah Friedman's mkinstalldirs script
|
||||
|
||||
# Skip lots of stat calls in the usual case.
|
||||
if [ ! -d "$dstdir" ]; then
|
||||
defaultIFS='
|
||||
'
|
||||
IFS="${IFS-$defaultIFS}"
|
||||
|
||||
oIFS=$IFS
|
||||
# Some sh's can't handle IFS=/ for some reason.
|
||||
IFS='%'
|
||||
set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
|
||||
IFS=$oIFS
|
||||
|
||||
pathcomp=''
|
||||
|
||||
while [ $# -ne 0 ] ; do
|
||||
pathcomp=$pathcomp$1
|
||||
shift
|
||||
|
||||
if [ ! -d "$pathcomp" ] ;
|
||||
then
|
||||
$mkdirprog "$pathcomp"
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
pathcomp=$pathcomp/
|
||||
done
|
||||
fi
|
||||
|
||||
if [ x"$dir_arg" != x ]
|
||||
then
|
||||
$doit $instcmd "$dst" &&
|
||||
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else true ; fi &&
|
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else true ; fi &&
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else true ; fi &&
|
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else true ; fi
|
||||
else
|
||||
|
||||
# If we're going to rename the final executable, determine the name now.
|
||||
|
||||
if [ x"$transformarg" = x ]
|
||||
then
|
||||
dstfile=`basename "$dst"`
|
||||
else
|
||||
dstfile=`basename "$dst" $transformbasename |
|
||||
sed $transformarg`$transformbasename
|
||||
fi
|
||||
|
||||
# don't allow the sed command to completely eliminate the filename
|
||||
|
||||
if [ x"$dstfile" = x ]
|
||||
then
|
||||
dstfile=`basename "$dst"`
|
||||
else
|
||||
true
|
||||
fi
|
||||
|
||||
# Make a couple of temp file names in the proper directory.
|
||||
|
||||
dsttmp=$dstdir/#inst.$$#
|
||||
rmtmp=$dstdir/#rm.$$#
|
||||
|
||||
# Trap to clean up temp files at exit.
|
||||
|
||||
trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
|
||||
# Move or copy the file name to the temp name
|
||||
|
||||
$doit $instcmd $src "$dsttmp" &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits
|
||||
|
||||
# If any of these fail, we abort the whole thing. If we want to
|
||||
# ignore errors from any of these, just make sure not to ignore
|
||||
# errors from the above "$doit $instcmd $src $dsttmp" command.
|
||||
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp";else true;fi &&
|
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp";else true;fi &&
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp";else true;fi &&
|
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp";else true;fi &&
|
||||
|
||||
# Now remove or move any old file at destination location. We try this
|
||||
# two ways since rm can't unlink itself on some systems and the destination
|
||||
# file might be busy for other reasons. In this case, the final cleanup
|
||||
# might fail but the new file should still install successfully.
|
||||
|
||||
{
|
||||
if [ -f "$dstdir/$dstfile" ]
|
||||
then
|
||||
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
|
||||
$doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
|
||||
{
|
||||
echo "install: cannot unlink or rename $dstdir/$dstfile" >&2
|
||||
(exit 1); exit
|
||||
}
|
||||
else
|
||||
true
|
||||
fi
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
|
||||
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
|
||||
|
||||
fi &&
|
||||
|
||||
# The final little trick to "correctly" pass the exit status to the exit trap.
|
||||
|
||||
{
|
||||
(exit 0); exit
|
||||
}
|
||||
336
config/missing
Normal file
336
config/missing
Normal file
@@ -0,0 +1,336 @@
|
||||
#! /bin/sh
|
||||
# Common stub for a few missing GNU programs while installing.
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
|
||||
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
# 02111-1307, USA.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
if test $# -eq 0; then
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
run=:
|
||||
|
||||
# In the cases where this matters, `missing' is being run in the
|
||||
# srcdir already.
|
||||
if test -f configure.ac; then
|
||||
configure_ac=configure.ac
|
||||
else
|
||||
configure_ac=configure.in
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
--run)
|
||||
# Try to run requested program, and just exit if it succeeds.
|
||||
run=
|
||||
shift
|
||||
"$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
# If it does not exist, or fails to run (possibly an outdated version),
|
||||
# try to emulate it.
|
||||
case "$1" in
|
||||
|
||||
-h|--h|--he|--hel|--help)
|
||||
echo "\
|
||||
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||
|
||||
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
||||
error status if there is no known handling for PROGRAM.
|
||||
|
||||
Options:
|
||||
-h, --help display this help and exit
|
||||
-v, --version output version information and exit
|
||||
--run try to run the given command, and emulate it if it fails
|
||||
|
||||
Supported PROGRAM values:
|
||||
aclocal touch file \`aclocal.m4'
|
||||
autoconf touch file \`configure'
|
||||
autoheader touch file \`config.h.in'
|
||||
automake touch all \`Makefile.in' files
|
||||
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
flex create \`lex.yy.c', if possible, from existing .c
|
||||
help2man touch the output file
|
||||
lex create \`lex.yy.c', if possible, from existing .c
|
||||
makeinfo touch the output file
|
||||
tar try tar, gnutar, gtar, then tar without non-portable flags
|
||||
yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
|
||||
;;
|
||||
|
||||
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||
echo "missing 0.4 - GNU automake"
|
||||
;;
|
||||
|
||||
-*)
|
||||
echo 1>&2 "$0: Unknown \`$1' option"
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
aclocal*)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
||||
to install the \`Automake' and \`Perl' packages. Grab them from
|
||||
any GNU archive site."
|
||||
touch aclocal.m4
|
||||
;;
|
||||
|
||||
autoconf)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified \`${configure_ac}'. You might want to install the
|
||||
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
||||
archive site."
|
||||
touch configure
|
||||
;;
|
||||
|
||||
autoheader)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
||||
from any GNU archive site."
|
||||
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
|
||||
test -z "$files" && files="config.h"
|
||||
touch_files=
|
||||
for f in $files; do
|
||||
case "$f" in
|
||||
*:*) touch_files="$touch_files "`echo "$f" |
|
||||
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||
*) touch_files="$touch_files $f.in";;
|
||||
esac
|
||||
done
|
||||
touch $touch_files
|
||||
;;
|
||||
|
||||
automake*)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
||||
You might want to install the \`Automake' and \`Perl' packages.
|
||||
Grab them from any GNU archive site."
|
||||
find . -type f -name Makefile.am -print |
|
||||
sed 's/\.am$/.in/' |
|
||||
while read f; do touch "$f"; done
|
||||
;;
|
||||
|
||||
autom4te)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, and you do not seem to have it handy on your
|
||||
system. You might have modified some files without having the
|
||||
proper tools for further handling them.
|
||||
You can get \`$1Help2man' as part of \`Autoconf' from any GNU
|
||||
archive site."
|
||||
|
||||
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
|
||||
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo "#! /bin/sh"
|
||||
echo "# Created by GNU Automake missing as a replacement of"
|
||||
echo "# $ $@"
|
||||
echo "exit 0"
|
||||
chmod +x $file
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
bison|yacc)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified a \`.y' file. You may need the \`Bison' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Bison' from any GNU archive site."
|
||||
rm -f y.tab.c y.tab.h
|
||||
if [ $# -ne 1 ]; then
|
||||
eval LASTARG="\${$#}"
|
||||
case "$LASTARG" in
|
||||
*.y)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||
if [ -f "$SRCFILE" ]; then
|
||||
cp "$SRCFILE" y.tab.c
|
||||
fi
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||
if [ -f "$SRCFILE" ]; then
|
||||
cp "$SRCFILE" y.tab.h
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ ! -f y.tab.h ]; then
|
||||
echo >y.tab.h
|
||||
fi
|
||||
if [ ! -f y.tab.c ]; then
|
||||
echo 'main() { return 0; }' >y.tab.c
|
||||
fi
|
||||
;;
|
||||
|
||||
lex|flex)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified a \`.l' file. You may need the \`Flex' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Flex' from any GNU archive site."
|
||||
rm -f lex.yy.c
|
||||
if [ $# -ne 1 ]; then
|
||||
eval LASTARG="\${$#}"
|
||||
case "$LASTARG" in
|
||||
*.l)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||
if [ -f "$SRCFILE" ]; then
|
||||
cp "$SRCFILE" lex.yy.c
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ ! -f lex.yy.c ]; then
|
||||
echo 'main() { return 0; }' >lex.yy.c
|
||||
fi
|
||||
;;
|
||||
|
||||
help2man)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified a dependency of a manual page. You may need the
|
||||
\`Help2man' package in order for those modifications to take
|
||||
effect. You can get \`Help2man' from any GNU archive site."
|
||||
|
||||
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
||||
if test -z "$file"; then
|
||||
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
|
||||
fi
|
||||
if [ -f "$file" ]; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo ".ab help2man is required to generate this page"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
makeinfo)
|
||||
if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
|
||||
# We have makeinfo, but it failed.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is missing on your system. You should only need it if
|
||||
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||
indirectly affecting the aspect of the manual. The spurious
|
||||
call might also be the consequence of using a buggy \`make' (AIX,
|
||||
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||
the \`GNU make' package. Grab either from any GNU archive site."
|
||||
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
||||
if test -z "$file"; then
|
||||
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
|
||||
fi
|
||||
touch $file
|
||||
;;
|
||||
|
||||
tar)
|
||||
shift
|
||||
if test -n "$run"; then
|
||||
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# We have already tried tar in the generic part.
|
||||
# Look for gnutar/gtar before invocation to avoid ugly error
|
||||
# messages.
|
||||
if (gnutar --version > /dev/null 2>&1); then
|
||||
gnutar "$@" && exit 0
|
||||
fi
|
||||
if (gtar --version > /dev/null 2>&1); then
|
||||
gtar "$@" && exit 0
|
||||
fi
|
||||
firstarg="$1"
|
||||
if shift; then
|
||||
case "$firstarg" in
|
||||
*o*)
|
||||
firstarg=`echo "$firstarg" | sed s/o//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
case "$firstarg" in
|
||||
*h*)
|
||||
firstarg=`echo "$firstarg" | sed s/h//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
||||
You may want to install GNU tar or Free paxutils, or check the
|
||||
command line arguments."
|
||||
exit 1
|
||||
;;
|
||||
|
||||
*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, and you do not seem to have it handy on your
|
||||
system. You might have modified some files without having the
|
||||
proper tools for further handling them. Check the \`README' file,
|
||||
it often tells you about the needed prerequirements for installing
|
||||
this package. You may also peek at any GNU archive site, in case
|
||||
some other package would contain this missing \`$1' program."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
111
config/mkinstalldirs
Normal file
111
config/mkinstalldirs
Normal file
@@ -0,0 +1,111 @@
|
||||
#! /bin/sh
|
||||
# mkinstalldirs --- make directory hierarchy
|
||||
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
|
||||
# Created: 1993-05-16
|
||||
# Public domain
|
||||
|
||||
errstatus=0
|
||||
dirmode=""
|
||||
|
||||
usage="\
|
||||
Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
|
||||
|
||||
# process command line arguments
|
||||
while test $# -gt 0 ; do
|
||||
case $1 in
|
||||
-h | --help | --h*) # -h for help
|
||||
echo "$usage" 1>&2
|
||||
exit 0
|
||||
;;
|
||||
-m) # -m PERM arg
|
||||
shift
|
||||
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
|
||||
dirmode=$1
|
||||
shift
|
||||
;;
|
||||
--) # stop option processing
|
||||
shift
|
||||
break
|
||||
;;
|
||||
-*) # unknown option
|
||||
echo "$usage" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
*) # first non-opt arg
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
for file
|
||||
do
|
||||
if test -d "$file"; then
|
||||
shift
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
case $# in
|
||||
0) exit 0 ;;
|
||||
esac
|
||||
|
||||
case $dirmode in
|
||||
'')
|
||||
if mkdir -p -- . 2>/dev/null; then
|
||||
echo "mkdir -p -- $*"
|
||||
exec mkdir -p -- "$@"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
|
||||
echo "mkdir -m $dirmode -p -- $*"
|
||||
exec mkdir -m "$dirmode" -p -- "$@"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
for file
|
||||
do
|
||||
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
|
||||
shift
|
||||
|
||||
pathcomp=
|
||||
for d
|
||||
do
|
||||
pathcomp="$pathcomp$d"
|
||||
case $pathcomp in
|
||||
-*) pathcomp=./$pathcomp ;;
|
||||
esac
|
||||
|
||||
if test ! -d "$pathcomp"; then
|
||||
echo "mkdir $pathcomp"
|
||||
|
||||
mkdir "$pathcomp" || lasterr=$?
|
||||
|
||||
if test ! -d "$pathcomp"; then
|
||||
errstatus=$lasterr
|
||||
else
|
||||
if test ! -z "$dirmode"; then
|
||||
echo "chmod $dirmode $pathcomp"
|
||||
lasterr=""
|
||||
chmod "$dirmode" "$pathcomp" || lasterr=$?
|
||||
|
||||
if test ! -z "$lasterr"; then
|
||||
errstatus=$lasterr
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
pathcomp="$pathcomp/"
|
||||
done
|
||||
done
|
||||
|
||||
exit $errstatus
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# End:
|
||||
# mkinstalldirs ends here
|
||||
File diff suppressed because it is too large
Load Diff
302
configure.ac
Normal file
302
configure.ac
Normal file
@@ -0,0 +1,302 @@
|
||||
dnl Process this file with autoconf to produce a configure script. -*-m4-*-
|
||||
AC_INIT(GNU coreutils, 4.5.2, bug-coreutils@gnu.org)
|
||||
AC_CONFIG_SRCDIR(src/ls.c)
|
||||
|
||||
AC_CONFIG_AUX_DIR(config)
|
||||
AM_CONFIG_HEADER(config.h:config.hin)
|
||||
AC_CANONICAL_HOST
|
||||
|
||||
AM_INIT_AUTOMAKE([1.6b gnits dist-bzip2])
|
||||
|
||||
AC_GNU_SOURCE
|
||||
jm_PERL
|
||||
AC_PROG_CC
|
||||
AC_PROG_CPP
|
||||
AC_PROG_GCC_TRADITIONAL
|
||||
AC_PROG_RANLIB
|
||||
AC_AIX
|
||||
AC_MINIX
|
||||
|
||||
AC_CHECK_FUNCS(uname,
|
||||
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS uname" MAN="$MAN uname.1")
|
||||
AC_CHECK_FUNCS(chroot,
|
||||
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS chroot" MAN="$MAN chroot.1")
|
||||
AC_CHECK_FUNCS(gethostid,
|
||||
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS hostid" MAN="$MAN hostid.1")
|
||||
|
||||
jm_MACROS
|
||||
|
||||
AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
|
||||
jm_WINSIZE_IN_PTEM
|
||||
|
||||
# Check for SunOS statfs brokenness wrt partitions 2GB and larger.
|
||||
# If <sys/vfs.h> exists and struct statfs has a member named f_spare,
|
||||
# enable the work-around code in fsusage.c.
|
||||
AC_MSG_CHECKING([for statfs that truncates block counts])
|
||||
AC_CACHE_VAL(fu_cv_sys_truncating_statfs,
|
||||
[AC_TRY_COMPILE([
|
||||
#if !defined(sun) && !defined(__sun)
|
||||
choke -- this is a workaround for a Sun-specific problem
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
#include <sys/vfs.h>],
|
||||
[struct statfs t; long c = *(t.f_spare);],
|
||||
fu_cv_sys_truncating_statfs=yes,
|
||||
fu_cv_sys_truncating_statfs=no,
|
||||
)])
|
||||
if test $fu_cv_sys_truncating_statfs = yes; then
|
||||
AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS, 1,
|
||||
[ Define if the block counts reported by statfs may be truncated to 2GB
|
||||
and the correct values may be stored in the f_spare array.
|
||||
(SunOS 4.1.2, 4.1.3, and 4.1.3_U1 are reported to have this problem.
|
||||
SunOS 4.1.1 seems not to be affected.)])
|
||||
fi
|
||||
AC_MSG_RESULT($fu_cv_sys_truncating_statfs)
|
||||
|
||||
AC_MSG_CHECKING(whether localtime caches TZ)
|
||||
AC_CACHE_VAL(utils_cv_localtime_cache,
|
||||
[if test x$ac_cv_func_tzset = xyes; then
|
||||
AC_TRY_RUN([#include <time.h>
|
||||
#if STDC_HEADERS
|
||||
# include <stdlib.h>
|
||||
#endif
|
||||
extern char **environ;
|
||||
unset_TZ ()
|
||||
{
|
||||
char **from, **to;
|
||||
for (to = from = environ; (*to = *from); from++)
|
||||
if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
|
||||
to++;
|
||||
}
|
||||
main()
|
||||
{
|
||||
time_t now = time ((time_t *) 0);
|
||||
int hour_GMT0, hour_unset;
|
||||
if (putenv ("TZ=GMT0") != 0)
|
||||
exit (1);
|
||||
hour_GMT0 = localtime (&now)->tm_hour;
|
||||
unset_TZ ();
|
||||
hour_unset = localtime (&now)->tm_hour;
|
||||
if (putenv ("TZ=PST8") != 0)
|
||||
exit (1);
|
||||
if (localtime (&now)->tm_hour == hour_GMT0)
|
||||
exit (1);
|
||||
unset_TZ ();
|
||||
if (localtime (&now)->tm_hour != hour_unset)
|
||||
exit (1);
|
||||
exit (0);
|
||||
}], utils_cv_localtime_cache=no, utils_cv_localtime_cache=yes,
|
||||
[# If we have tzset, assume the worst when cross-compiling.
|
||||
utils_cv_localtime_cache=yes])
|
||||
else
|
||||
# If we lack tzset, report that localtime does not cache TZ,
|
||||
# since we can't invalidate the cache if we don't have tzset.
|
||||
utils_cv_localtime_cache=no
|
||||
fi])dnl
|
||||
AC_MSG_RESULT($utils_cv_localtime_cache)
|
||||
if test $utils_cv_localtime_cache = yes; then
|
||||
AC_DEFINE(LOCALTIME_CACHE, 1, [FIXME])
|
||||
fi
|
||||
|
||||
# SCO-ODT-3.0 is reported to need -los to link programs using initgroups
|
||||
AC_CHECK_FUNCS(initgroups)
|
||||
if test $ac_cv_func_initgroups = no; then
|
||||
AC_CHECK_LIB(os, initgroups)
|
||||
fi
|
||||
|
||||
AC_CHECK_FUNCS(syslog)
|
||||
if test $ac_cv_func_syslog = no; then
|
||||
# syslog is not in the default libraries. See if it's in some other.
|
||||
for lib in bsd socket inet; do
|
||||
AC_CHECK_LIB($lib, syslog, [AC_DEFINE(HAVE_SYSLOG, 1, [FIXME])
|
||||
LIBS="$LIBS -l$lib"; break])
|
||||
done
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING(for 3-argument setpriority function)
|
||||
AC_CACHE_VAL(utils_cv_func_setpriority,
|
||||
[AC_TRY_LINK([#include <sys/time.h>
|
||||
#include <sys/resource.h>],
|
||||
[setpriority(0, 0, 0);],
|
||||
utils_cv_func_setpriority=yes, utils_cv_func_setpriority=no)])
|
||||
AC_MSG_RESULT($utils_cv_func_setpriority)
|
||||
if test $utils_cv_func_setpriority = yes; then
|
||||
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS nice"
|
||||
OPTIONAL_BIN_ZCRIPTS="$OPTIONAL_BIN_ZCRIPTS nohup"
|
||||
MAN="$MAN nice.1 nohup.1"
|
||||
else
|
||||
AC_MSG_CHECKING(for nice function)
|
||||
AC_CACHE_VAL(utils_cv_func_nice,
|
||||
[AC_TRY_LINK([], nice();,
|
||||
utils_cv_func_nice=yes, utils_cv_func_nice=no)])
|
||||
AC_MSG_RESULT($utils_cv_func_nice)
|
||||
if test $utils_cv_func_nice = yes; then
|
||||
AC_DEFINE(NICE_PRIORITY, 1, [FIXME])
|
||||
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS nice"
|
||||
OPTIONAL_BIN_ZCRIPTS="$OPTIONAL_BIN_ZCRIPTS nohup"
|
||||
MAN="$MAN nice.1 nohup.1"
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_DEFUN(jm_DUMMY_1,
|
||||
[
|
||||
AC_REQUIRE([jm_PREREQ_READUTMP])
|
||||
if test $ac_cv_header_utmp_h = yes || test $ac_cv_header_utmpx_h = yes; then
|
||||
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS pinky users who"
|
||||
MAN="$MAN pinky.1 users.1 who.1"
|
||||
fi
|
||||
])
|
||||
jm_DUMMY_1
|
||||
|
||||
AC_MSG_CHECKING(ut_host in struct utmp)
|
||||
AC_CACHE_VAL(su_cv_func_ut_host_in_utmp,
|
||||
[AC_TRY_LINK([#include <sys/types.h>
|
||||
#include <utmp.h>], [struct utmp ut; ut.ut_host;],
|
||||
su_cv_func_ut_host_in_utmp=yes, su_cv_func_ut_host_in_utmp=no)])
|
||||
AC_MSG_RESULT($su_cv_func_ut_host_in_utmp)
|
||||
if test $su_cv_func_ut_host_in_utmp = yes; then
|
||||
have_ut_host=1
|
||||
AC_DEFINE(HAVE_UT_HOST, 1, [FIXME])
|
||||
fi
|
||||
|
||||
if test -z "$have_ut_host"; then
|
||||
AC_MSG_CHECKING(ut_host in struct utmpx)
|
||||
AC_CACHE_VAL(su_cv_func_ut_host_in_utmpx,
|
||||
[AC_TRY_LINK([#include <sys/types.h>
|
||||
#include <utmpx.h>], [struct utmpx ut; ut.ut_host;],
|
||||
su_cv_func_ut_host_in_utmpx=yes, su_cv_func_ut_host_in_utmpx=no)])
|
||||
AC_MSG_RESULT($su_cv_func_ut_host_in_utmpx)
|
||||
if test $su_cv_func_ut_host_in_utmpx = yes; then
|
||||
AC_DEFINE(HAVE_UTMPX_H, 1, [FIXME])
|
||||
AC_DEFINE(HAVE_UT_HOST, 1, [FIXME])
|
||||
fi
|
||||
fi
|
||||
|
||||
GNULIB_BOOT_TIME(
|
||||
[OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS uptime" MAN="$MAN uptime.1"])
|
||||
|
||||
AM_SYS_POSIX_TERMIOS
|
||||
jm_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
|
||||
|
||||
if test $ac_cv_sys_posix_termios = yes; then
|
||||
OPTIONAL_BIN_PROGS="$OPTIONAL_BIN_PROGS stty" MAN="$MAN stty.1"
|
||||
|
||||
AC_MSG_CHECKING(whether termios.h needs _XOPEN_SOURCE)
|
||||
AC_CACHE_VAL(su_cv_sys_termios_needs_xopen_source,
|
||||
[AC_EGREP_CPP(yes, [#include <termios.h>
|
||||
#ifdef IUCLC
|
||||
yes
|
||||
#endif], su_cv_sys_termios_needs_xopen_source=no,
|
||||
AC_EGREP_CPP(yes, [#define _XOPEN_SOURCE
|
||||
#include <termios.h>
|
||||
#ifdef IUCLC
|
||||
yes
|
||||
#endif], su_cv_sys_termios_needs_xopen_source=yes,
|
||||
su_cv_sys_termios_needs_xopen_source=no))])
|
||||
AC_MSG_RESULT($su_cv_sys_termios_needs_xopen_source)
|
||||
test $su_cv_sys_termios_needs_xopen_source = yes &&
|
||||
AC_DEFINE(TERMIOS_NEEDS_XOPEN_SOURCE, 1, [FIXME])
|
||||
|
||||
AC_MSG_CHECKING(c_line in struct termios)
|
||||
AC_CACHE_VAL(su_cv_sys_c_line_in_termios,
|
||||
[AC_TRY_LINK([#if TERMIOS_NEEDS_XOPEN_SOURCE
|
||||
#define _XOPEN_SOURCE
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
#include <termios.h>],
|
||||
[struct termios t; t.c_line;],
|
||||
su_cv_sys_c_line_in_termios=yes,
|
||||
su_cv_sys_c_line_in_termios=no)])
|
||||
AC_MSG_RESULT($su_cv_sys_c_line_in_termios)
|
||||
test $su_cv_sys_c_line_in_termios = yes && AC_DEFINE(HAVE_C_LINE, 1, [FIXME])
|
||||
fi
|
||||
|
||||
# FIXME: note that this macro appears above, too.
|
||||
# I'm leaving it here for now. This whole thing needs to be modernized...
|
||||
jm_WINSIZE_IN_PTEM
|
||||
|
||||
jm_HEADER_TIOCGWINSZ_IN_TERMIOS_H
|
||||
|
||||
if test $jm_cv_sys_tiocgwinsz_needs_termios_h = no && \
|
||||
test $jm_cv_sys_tiocgwinsz_needs_sys_ioctl_h = no; then
|
||||
AC_MSG_CHECKING(TIOCGWINSZ in sys/pty.h)
|
||||
AC_CACHE_VAL(su_cv_sys_tiocgwinsz_in_sys_pty_h,
|
||||
[AC_TRY_LINK([#include <sys/types.h>
|
||||
#ifdef WINSIZE_IN_PTEM
|
||||
# include <sys/stream.h>
|
||||
# include <sys/ptem.h>
|
||||
#endif
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/tty.h>
|
||||
#include <sys/pty.h>],
|
||||
[int x = TIOCGWINSZ;],
|
||||
su_cv_sys_tiocgwinsz_in_sys_pty_h=yes,
|
||||
su_cv_sys_tiocgwinsz_in_sys_pty_h=no)])
|
||||
AC_MSG_RESULT($su_cv_sys_tiocgwinsz_in_sys_pty_h)
|
||||
|
||||
test $su_cv_sys_tiocgwinsz_in_sys_pty_h = yes \
|
||||
&& AC_DEFINE(GWINSZ_IN_SYS_PTY, 1,
|
||||
[Define if your system defines TIOCGWINSZ in sys/pty.h.])
|
||||
fi
|
||||
|
||||
# For src/kill.c.
|
||||
AC_CHECK_DECLS([strsignal, strtoimax, sys_siglist, _sys_siglist])
|
||||
|
||||
jm_LIB_CHECK
|
||||
|
||||
AM_GNU_GETTEXT([external], [need-ngettext])
|
||||
|
||||
AC_CONFIG_FILES(
|
||||
Makefile
|
||||
doc/Makefile
|
||||
lib/Makefile
|
||||
man/Makefile
|
||||
m4/Makefile
|
||||
po/Makefile.in
|
||||
src/Makefile
|
||||
tests/Makefile
|
||||
tests/basename/Makefile
|
||||
tests/chgrp/Makefile
|
||||
tests/chmod/Makefile
|
||||
tests/chown/Makefile
|
||||
tests/cp/Makefile
|
||||
tests/cut/Makefile
|
||||
tests/date/Makefile
|
||||
tests/dd/Makefile
|
||||
tests/dircolors/Makefile
|
||||
tests/du/Makefile
|
||||
tests/expr/Makefile
|
||||
tests/factor/Makefile
|
||||
tests/fmt/Makefile
|
||||
tests/head/Makefile
|
||||
tests/install/Makefile
|
||||
tests/join/Makefile
|
||||
tests/ln/Makefile
|
||||
tests/ls-2/Makefile
|
||||
tests/ls/Makefile
|
||||
tests/md5sum/Makefile
|
||||
tests/misc/Makefile
|
||||
tests/mkdir/Makefile
|
||||
tests/mv/Makefile
|
||||
tests/od/Makefile
|
||||
tests/pr/Makefile
|
||||
tests/rm/Makefile
|
||||
tests/rmdir/Makefile
|
||||
tests/seq/Makefile
|
||||
tests/sha1sum/Makefile
|
||||
tests/shred/Makefile
|
||||
tests/sort/Makefile
|
||||
tests/stty/Makefile
|
||||
tests/sum/Makefile
|
||||
tests/tac/Makefile
|
||||
tests/tail-2/Makefile
|
||||
tests/tail/Makefile
|
||||
tests/test/Makefile
|
||||
tests/touch/Makefile
|
||||
tests/tr/Makefile
|
||||
tests/tsort/Makefile
|
||||
tests/unexpand/Makefile
|
||||
tests/uniq/Makefile
|
||||
tests/wc/Makefile
|
||||
)
|
||||
AC_OUTPUT
|
||||
269
doc/ChangeLog
269
doc/ChangeLog
@@ -1,3 +1,272 @@
|
||||
2002-09-13 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (tail invocation): In --sleep-interval=NUMBER,
|
||||
NUMBER may now be a floating point number.
|
||||
(stat invocation): Remove references to now-removed %S and %C.
|
||||
(Time directives) [%S]: Explain why the range is [0..60].
|
||||
|
||||
2002-08-30 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi [START-INFO-DIR-ENTRY]: Don't use sc{} on LHS.
|
||||
Fix typo: s/permission/permissions/. From Michail Litvak.
|
||||
|
||||
2002-08-02 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* coreutils.texi (uniq invocation): uniq now obeys LC_COLLATE.
|
||||
|
||||
2002-07-29 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* coreutils.texi (nohup invocation): Change behavior to conform to
|
||||
POSIX 1003.1-2001:
|
||||
- Do not adjust scheduling priority.
|
||||
- Redirects stderr to stdout, if stderr is not a terminal.
|
||||
- Exit status is now 126 if command was found but not invoked,
|
||||
127 if nohup failed or if command was not found.
|
||||
|
||||
2002-07-24 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (Time directives): Document %P, %R, %e, %F,
|
||||
%g, %G, and %V
|
||||
|
||||
2002-07-22 Martin Michlmayr <tbm@cyrius.com>
|
||||
|
||||
* coreutils.texi (Formatting the file names): Document
|
||||
that -N/--literal are equivalent to --quoting-style=literal.
|
||||
Reported by Oskar Liljeblad as Debian bug#103612.
|
||||
|
||||
2002-07-10 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (du invocation): s/PAT/PATTERN/.
|
||||
From Martin Michlmayr.
|
||||
|
||||
2002-07-08 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (cp invocation): Remove unnecessary "$@" in example;
|
||||
Texinfo would render the @" as an umlaut over the following character.
|
||||
From Paul Eggert.
|
||||
* Makefile.am (check-texinfo): Check for the above.
|
||||
|
||||
2002-07-06 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (stat invocation): Remove description of --secure.
|
||||
|
||||
2002-07-03 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (stat invocation): Rename --link/-l
|
||||
to --dereference/-L. Rewrite description of --dereference.
|
||||
|
||||
2002-06-26 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* coreutils.texi (Putting the tools together): Don't mention egrep,
|
||||
since it's not part of POSIX 1003.1-2001.
|
||||
|
||||
2002-06-21 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (stat invocation): New section. From Michael Meskes.
|
||||
|
||||
2002-05-19 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* coreutils.texi (ls invocation): Document new option: --author.
|
||||
|
||||
2002-06-03 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (rm invocation): Add the warning (also in the --help
|
||||
output) that the contents of a removed file are often recoverable.
|
||||
|
||||
2002-05-27 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (check-texinfo): Adapt to reflect that now we use
|
||||
@acronym{POSIX}.
|
||||
|
||||
2002-05-26 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi: Use @acronym in place of most uses of @sc.
|
||||
* getdate.texi (Date input formats): Likewise.
|
||||
|
||||
2002-04-28 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi: Change `@code{PROG}' to `@command{PROG}'.
|
||||
|
||||
2002-04-28 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* coreutils.texi (kill invocation): Document the above.
|
||||
Document POSIX signals better.
|
||||
|
||||
2002-04-15 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi: Document kill.
|
||||
Written by Marcus Brinkmann.
|
||||
|
||||
2002-04-13 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi: Document link and unlink.
|
||||
|
||||
2002-04-08 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi: Use new directives, @copying and @insertcopying,
|
||||
thus now requiring texinfo-4.2 to create the .info file.
|
||||
|
||||
2002-02-26 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* coreutils.texi (File characteristic tests): Document the
|
||||
behavior of test -nt and -ot when one of the files does not exist,
|
||||
using the same behavior that is documented in ksh93.
|
||||
|
||||
2002-03-05 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* coreutils.texi (cut invocation): Say that selected input is
|
||||
written in the same order that it is read, and is written
|
||||
exactly once.
|
||||
|
||||
2002-03-03 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
Make cp -r equivalent to cp -R. Add a new cp option --copy-contents
|
||||
for people who want to emulate the traditional (and rarely desirable)
|
||||
cp -r behavior.
|
||||
|
||||
* coreutils.texi (cp invocation): Document this.
|
||||
Fix some related minor bugs: --no-dereference is no longer
|
||||
equivalent to -d, and --archive (-a) can override the other
|
||||
symlink options. Warn that cp -R is not portable on symbolic
|
||||
links unless you also specify -P.
|
||||
|
||||
2002-03-02 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (cp invocation): Document that cp -r
|
||||
preserves symlinks. Emphasize non-portability of cp -r.
|
||||
|
||||
2002-02-27 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* coreutils.texi (Time directives): Add %N for nanoseconds.
|
||||
This documents the recent change to 'ls'.
|
||||
|
||||
2002-02-28 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (pr invocation): Reword to avoid using `:'
|
||||
in an @opindex entry -- info doesn't permit it.
|
||||
|
||||
2002-02-27 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* coreutils.texi (Formatting file timestamps): Document new
|
||||
time-formatting method: --time-style=+FORMAT.
|
||||
|
||||
2002-02-18 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* coreutils.texi (seq invocation): In the example, use "tail
|
||||
-n 3", not "tail -3", to conform to POSIX 1003.1-2001.
|
||||
|
||||
2002-02-17 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (tsort background): New section.
|
||||
From Ian Lance Taylor.
|
||||
(tsort invocation): Add a more realistic example.
|
||||
|
||||
2002-02-15 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* coreutils.texi: Document _POSIX2_VERSION.
|
||||
(Standards Conformance): New section.
|
||||
|
||||
2002-01-24 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (START-INFO-DIR-ENTRY): Remove a few entries
|
||||
and clean up a few others based on suggestions from Bob Proulx.
|
||||
|
||||
2002-02-14 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
Add support for POSIX 1003.1-2001, which requires removal for
|
||||
support of obsolete "+" option syntax in sort, tail, and uniq.
|
||||
* coreutils.texi: Document this. (Also, document a similar
|
||||
change to "touch", for fileutils).
|
||||
|
||||
2002-01-12 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (shred invocation): List some journaled filesystems.
|
||||
|
||||
2001-11-10 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (Date directives): Document %u.
|
||||
|
||||
2001-11-07 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* coreutils.texi (paste invocation): Give examples.
|
||||
Thanks to Dan Jacobson for suggesting the examples.
|
||||
|
||||
2001-11-05 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (sort invocation): Recommend setting LC_ALL=C,
|
||||
not LC_COLLATE=C. Explain how the latter can cause problems.
|
||||
Based on a message from Paul Eggert.
|
||||
(ls invocation): Recommend setting LC_ALL=C, not LC_COLLATE=C.
|
||||
|
||||
2001-10-21 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (cp invocation): Describe --reply=...
|
||||
|
||||
2001-10-17 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (cp invocation): `cp --no-dereference' is
|
||||
no longer equivalent to `cp -d'.
|
||||
`cp -d' is equivalent to `--no-dereference --preserve=links'.
|
||||
cp's -P option means --no-dereference, not --parents.
|
||||
Describe new optional argument to --preserve.
|
||||
Describe new option: --no-preserve=ATTRIBUTE_LIST.
|
||||
|
||||
2001-09-23 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (check-texinfo): Redirect stderr of `grep -w' to
|
||||
/dev/null, so people with old versions of grep don't see the failure.
|
||||
|
||||
2001-09-16 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (mv invocation): Describe new option:
|
||||
--reply={yes,no,query}. Fix a few typos.
|
||||
|
||||
2001-09-15 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* coreutils.texi (uniq invocation): The input need not
|
||||
be sorted. Try to clarify -d versus -D versus -u.
|
||||
|
||||
2001-09-12 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (tail invocation): Document new option: -F.
|
||||
From Herbert Xu.
|
||||
|
||||
2001-09-04 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* coreutils.texi (join invocation): Describe the GNU
|
||||
extension to join, which does not require sorted input when
|
||||
the input contains no unpairable lines.
|
||||
|
||||
2001-09-03 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* coreutils.texi:
|
||||
New 'uname' options -i or --hardware-platform,
|
||||
and -o or --operating-system.
|
||||
'uname -a' now outputs -i and -o information at the end.
|
||||
New uname option --kernel-version is an alias for -v.
|
||||
Uname option --release has been renamed to --kernel-release,
|
||||
and --sysname has been renamed to --kernel-name;
|
||||
the old options will work for a while, but are no longer documented.
|
||||
|
||||
2001-08-24 Herbert Xu <herbert@gondor.apana.org.au>
|
||||
|
||||
* coreutils.texi (cut invocation): Document how cut treats lines
|
||||
with no separators.
|
||||
|
||||
2001-06-19 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* coreutils.texi: expr now uses LC_COLLATE for string comparison,
|
||||
as per POSIX.
|
||||
|
||||
2001-08-25 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi: Use @option, rather than @samp everywhere.
|
||||
|
||||
2001-06-21 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* coreutils.texi: 'expr' now requires '+' rather than 'quote'
|
||||
to quote tokens.
|
||||
|
||||
2001-07-14 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* coreutils.texi (cp invocation): Reflect 2001-07-08 change to
|
||||
|
||||
@@ -31,6 +31,9 @@ $(INFO_DEPS): $(EXTRA_DIST)
|
||||
# List words/regexps here that should not appear in the texinfo documentation.
|
||||
check-texinfo:
|
||||
grep timezone $(srcdir)/*.texi && exit 1 || :
|
||||
grep -w POSIX $(srcdir)/*.texi && exit 1 || :
|
||||
grep '\$$@"' $(srcdir)/*.texi && exit 1 || :
|
||||
$(PERL) -ne \
|
||||
'/\bPOSIX\b/ && !/\@acronym{POSIX}/ || /{posix}/ and print,exit 1' \
|
||||
$(srcdir)/*.texi 2> /dev/null && : || exit 1
|
||||
|
||||
check: check-texinfo
|
||||
|
||||
323
doc/Makefile.in
323
doc/Makefile.in
@@ -1,6 +1,7 @@
|
||||
# Makefile.in generated automatically by automake 1.4i from Makefile.am.
|
||||
# Makefile.in generated by automake 1.7 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
|
||||
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
|
||||
# Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@@ -13,107 +14,73 @@
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
SHELL = @SHELL@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
|
||||
bindir = @bindir@
|
||||
sbindir = @sbindir@
|
||||
libexecdir = @libexecdir@
|
||||
datadir = @datadir@
|
||||
sysconfdir = @sysconfdir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
localstatedir = @localstatedir@
|
||||
libdir = @libdir@
|
||||
infodir = @infodir@
|
||||
mandir = @mandir@
|
||||
includedir = @includedir@
|
||||
oldincludedir = /usr/include
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ..
|
||||
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = @program_transform_name@
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
host_alias = @host_alias@
|
||||
host_triplet = @host@
|
||||
ACLOCAL = @ACLOCAL@
|
||||
ALLOCA = @ALLOCA@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CATALOGS = @CATALOGS@
|
||||
CATOBJEXT = @CATOBJEXT@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
DATADIRNAME = @DATADIRNAME@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DF_PROG = @DF_PROG@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FESETROUND_LIBM = @FESETROUND_LIBM@
|
||||
GENCAT = @GENCAT@
|
||||
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
|
||||
GLIBC21 = @GLIBC21@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GNU_PACKAGE = @GNU_PACKAGE@
|
||||
GT_NO = @GT_NO@
|
||||
GT_YES = @GT_YES@
|
||||
INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
|
||||
HELP2MAN = @HELP2MAN@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLDEPS = @INTLDEPS@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLOBJS = @INTLOBJS@
|
||||
KMEM_GROUP = @KMEM_GROUP@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIBS = @LIBS@
|
||||
LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
|
||||
LIB_CRYPT = @LIB_CRYPT@
|
||||
LIB_NANOSLEEP = @LIB_NANOSLEEP@
|
||||
MAN = @MAN@
|
||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||
MSGFMT = @MSGFMT@
|
||||
NEED_SETGID = @NEED_SETGID@
|
||||
OPTIONAL_BIN_PROGS = @OPTIONAL_BIN_PROGS@
|
||||
OPTIONAL_BIN_ZCRIPTS = @OPTIONAL_BIN_ZCRIPTS@
|
||||
PACKAGE = @PACKAGE@
|
||||
PERL = @PERL@
|
||||
POFILES = @POFILES@
|
||||
POSUB = @POSUB@
|
||||
POW_LIBM = @POW_LIBM@
|
||||
RANLIB = @RANLIB@
|
||||
SEQ_LIBM = @SEQ_LIBM@
|
||||
SQRT_LIBM = @SQRT_LIBM@
|
||||
U = @U@
|
||||
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
YACC = @YACC@
|
||||
_am_include = @_am_include@
|
||||
_am_quote = @_am_quote@
|
||||
install_sh = @install_sh@
|
||||
l = @l@
|
||||
|
||||
info_TEXINFOS = coreutils.texi
|
||||
|
||||
EXTRA_DIST = perm.texi getdate.texi constants.texi doclicense.texi
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
|
||||
# The following is necessary if the package name is 8 characters or longer.
|
||||
# If the info documentation would be split into 10 or more separate files,
|
||||
@@ -124,70 +91,134 @@ EXTRA_DIST = perm.texi getdate.texi constants.texi doclicense.texi
|
||||
# and those names all map to one 14-byte name (<package>.info-) on some crufty
|
||||
# old systems.
|
||||
MAKEINFO = makeinfo --no-split
|
||||
EXEEXT =
|
||||
OBJEXT = o
|
||||
MAN = @MAN@
|
||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||
MSGFMT = @MSGFMT@
|
||||
MSGMERGE = @MSGMERGE@
|
||||
NEED_SETGID = @NEED_SETGID@
|
||||
OBJEXT = @OBJEXT@
|
||||
OPTIONAL_BIN_PROGS = @OPTIONAL_BIN_PROGS@
|
||||
OPTIONAL_BIN_ZCRIPTS = @OPTIONAL_BIN_ZCRIPTS@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PERL = @PERL@
|
||||
POSUB = @POSUB@
|
||||
POW_LIB = @POW_LIB@
|
||||
RANLIB = @RANLIB@
|
||||
SEQ_LIBM = @SEQ_LIBM@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SQRT_LIBM = @SQRT_LIBM@
|
||||
STRIP = @STRIP@
|
||||
U = @U@
|
||||
USE_NLS = @USE_NLS@
|
||||
VERSION = @VERSION@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
YACC = @YACC@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__include = @am__include@
|
||||
am__quote = @am__quote@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
datadir = @datadir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
oldincludedir = @oldincludedir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
info_TEXINFOS = coreutils.texi
|
||||
|
||||
EXTRA_DIST = perm.texi getdate.texi constants.texi doclicense.texi
|
||||
subdir = doc
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
DIST_SOURCES =
|
||||
TEXINFO_TEX = $(top_srcdir)/config/texinfo.tex
|
||||
am__TEXINFO_TEX_DIR = $(top_srcdir)/config
|
||||
INFO_DEPS = coreutils.info
|
||||
DVIS = coreutils.dvi
|
||||
PDFS = coreutils.pdf
|
||||
PSS = coreutils.ps
|
||||
TEXINFOS = coreutils.texi
|
||||
DIST_COMMON = ChangeLog Makefile.am Makefile.in mdate-sh stamp-vti \
|
||||
texinfo.tex version.texi
|
||||
DIST_COMMON = ChangeLog Makefile.am Makefile.in stamp-vti version.texi
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .dvi .info .ps .texi
|
||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||
.SUFFIXES: .dvi .info .pdf .ps .texi
|
||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnits doc/Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) && \
|
||||
CONFIG_HEADERS= CONFIG_LINKS= \
|
||||
CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
|
||||
|
||||
$(srcdir)/version.texi: $(srcdir)/stamp-vti
|
||||
@:
|
||||
$(srcdir)/stamp-vti: coreutils.texi $(top_srcdir)/configure.in
|
||||
@(set `$(SHELL) $(srcdir)/mdate-sh $(srcdir)/coreutils.texi`; \
|
||||
.texi.info:
|
||||
@rm -f $@ $@-[0-9] $@-[0-9][0-9]
|
||||
$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
|
||||
`test -f '$<' || echo '$(srcdir)/'`$< -o $@
|
||||
|
||||
.texi.dvi:
|
||||
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||
$(TEXI2DVI) `test -f '$<' || echo '$(srcdir)/'`$<
|
||||
|
||||
.texi.pdf:
|
||||
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||
$(TEXI2PDF) `test -f '$<' || echo '$(srcdir)/'`$<
|
||||
coreutils.info: coreutils.texi version.texi
|
||||
coreutils.dvi: coreutils.texi version.texi
|
||||
coreutils.pdf: coreutils.texi version.texi
|
||||
version.texi: stamp-vti
|
||||
stamp-vti: coreutils.texi $(top_srcdir)/configure.ac
|
||||
@(dir=.; test -f ./coreutils.texi || dir=$(srcdir); \
|
||||
set `$(SHELL) $(top_srcdir)/config/mdate-sh $$dir/coreutils.texi`; \
|
||||
echo "@set UPDATED $$1 $$2 $$3"; \
|
||||
echo "@set UPDATED-MONTH $$2 $$3"; \
|
||||
echo "@set EDITION $(VERSION)"; \
|
||||
echo "@set VERSION $(VERSION)") > vti.tmp
|
||||
@cmp -s vti.tmp $(srcdir)/version.texi \
|
||||
|| (echo "Updating $(srcdir)/version.texi"; \
|
||||
cp vti.tmp $(srcdir)/version.texi)
|
||||
@cmp -s vti.tmp version.texi \
|
||||
|| (echo "Updating version.texi"; \
|
||||
cp vti.tmp version.texi)
|
||||
-@rm -f vti.tmp
|
||||
@cp $(srcdir)/version.texi $@
|
||||
@cp version.texi $@
|
||||
|
||||
mostlyclean-vti:
|
||||
-rm -f vti.tmp
|
||||
|
||||
maintainer-clean-vti:
|
||||
-rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
|
||||
|
||||
coreutils.info: coreutils.texi $(srcdir)/version.texi
|
||||
coreutils.dvi: coreutils.texi $(srcdir)/version.texi
|
||||
|
||||
.texi.info:
|
||||
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
|
||||
cd $(srcdir) \
|
||||
&& $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
|
||||
`echo $< | sed 's,.*/,,'`
|
||||
|
||||
.texi.dvi:
|
||||
TEXINPUTS=$(srcdir):$$TEXINPUTS \
|
||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||
$(TEXI2DVI) $<
|
||||
|
||||
.texi:
|
||||
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
|
||||
cd $(srcdir) \
|
||||
&& $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
|
||||
`echo $< | sed 's,.*/,,'`
|
||||
-rm -f stamp-vti version.texi
|
||||
TEXI2DVI = texi2dvi
|
||||
|
||||
TEXI2PDF = $(TEXI2DVI) --pdf --batch
|
||||
DVIPS = dvips
|
||||
.dvi.ps:
|
||||
$(DVIPS) $< -o $@
|
||||
@@ -195,7 +226,7 @@ DVIPS = dvips
|
||||
uninstall-info-am:
|
||||
$(PRE_UNINSTALL)
|
||||
@if (install-info --version && \
|
||||
install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \
|
||||
install-info --version | grep -i -v debian) >/dev/null 2>&1; then \
|
||||
list='$(INFO_DEPS)'; \
|
||||
for file in $$list; do \
|
||||
echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file"; \
|
||||
@@ -214,22 +245,22 @@ uninstall-info-am:
|
||||
dist-info: $(INFO_DEPS)
|
||||
list='$(INFO_DEPS)'; \
|
||||
for base in $$list; do \
|
||||
d=$(srcdir); \
|
||||
for file in `CDPATH=: && cd $$d && eval echo $$base*`; do \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file; \
|
||||
if test -f $$base; then d=.; else d=$(srcdir); fi; \
|
||||
for file in $$d/$$base*; do \
|
||||
relfile=`expr "$$file" : "$$d/\(.*\)"`; \
|
||||
test -f $(distdir)/$$relfile || \
|
||||
cp -p $$file $(distdir)/$$relfile; \
|
||||
done; \
|
||||
done
|
||||
|
||||
mostlyclean-aminfo:
|
||||
-rm -f coreutils.aux coreutils.cp coreutils.cps coreutils.dvi coreutils.fl \
|
||||
coreutils.fn coreutils.ky coreutils.log coreutils.op \
|
||||
coreutils.pg coreutils.ps coreutils.toc coreutils.tp \
|
||||
coreutils.vr
|
||||
-rm -f coreutils.aux coreutils.cp coreutils.cps coreutils.fl coreutils.fn \
|
||||
coreutils.ky coreutils.log coreutils.op coreutils.pg \
|
||||
coreutils.tmp coreutils.toc coreutils.tp coreutils.vr \
|
||||
coreutils.dvi coreutils.pdf coreutils.ps
|
||||
|
||||
maintainer-clean-aminfo:
|
||||
cd $(srcdir) && \
|
||||
for i in $(INFO_DEPS); do \
|
||||
list='$(INFO_DEPS)'; for i in $$list; do \
|
||||
rm -f $$i; \
|
||||
if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
|
||||
rm -f $$i-[0-9]*; \
|
||||
@@ -238,6 +269,8 @@ maintainer-clean-aminfo:
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
@@ -245,15 +278,24 @@ top_distdir = ..
|
||||
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@for file in $(DISTFILES); do \
|
||||
if test -f $$file; then d=.; else d=$(srcdir); fi; \
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
$(mkinstalldirs) "$(distdir)/$$dir"; \
|
||||
dir="/$$dir"; \
|
||||
$(mkinstalldirs) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
cp -pR $$d/$$file $(distdir) \
|
||||
|| exit 1; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
@@ -261,7 +303,7 @@ distdir: $(DISTFILES)
|
||||
fi; \
|
||||
done
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="${top_distdir}" distdir="$(distdir)" \
|
||||
top_distdir="$(top_distdir)" distdir="$(distdir)" \
|
||||
dist-info
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
@@ -281,6 +323,7 @@ install-am: all-am
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
@@ -288,7 +331,7 @@ mostlyclean-generic:
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
|
||||
-rm -f Makefile $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@@ -320,17 +363,18 @@ install-info-am: $(INFO_DEPS)
|
||||
$(mkinstalldirs) $(DESTDIR)$(infodir)
|
||||
@list='$(INFO_DEPS)'; \
|
||||
for file in $$list; do \
|
||||
d=$(srcdir); \
|
||||
for ifile in `CDPATH=: && cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
|
||||
if test -f $$d/$$ifile; then \
|
||||
echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
|
||||
$(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
|
||||
if test -f $$file; then d=.; else d=$(srcdir); fi; \
|
||||
for ifile in echo $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9]; do \
|
||||
if test -f $$ifile; then \
|
||||
relfile=`expr "$$ifile" : "$$d/\(.*\)"`; \
|
||||
echo " $(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile"; \
|
||||
$(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile; \
|
||||
else : ; fi; \
|
||||
done; \
|
||||
done
|
||||
@$(POST_INSTALL)
|
||||
@if (install-info --version && \
|
||||
install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \
|
||||
install-info --version | grep -i -v debian) >/dev/null 2>&1; then \
|
||||
list='$(INFO_DEPS)'; \
|
||||
for file in $$list; do \
|
||||
echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
|
||||
@@ -350,6 +394,14 @@ mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-aminfo mostlyclean-generic mostlyclean-vti
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am: $(PDFS)
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am: $(PSS)
|
||||
|
||||
uninstall-am: uninstall-info-am
|
||||
|
||||
.PHONY: all all-am check check-am clean clean-generic dist-info \
|
||||
@@ -359,8 +411,8 @@ uninstall-am: uninstall-info-am
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
maintainer-clean maintainer-clean-aminfo \
|
||||
maintainer-clean-generic maintainer-clean-vti mostlyclean \
|
||||
mostlyclean-aminfo mostlyclean-generic mostlyclean-vti \
|
||||
uninstall uninstall-am uninstall-info-am
|
||||
mostlyclean-aminfo mostlyclean-generic mostlyclean-vti pdf \
|
||||
pdf-am ps ps-am uninstall uninstall-am uninstall-info-am
|
||||
|
||||
|
||||
# Remove `DISABLED_' when fileutils, textutils, and sh-utils have
|
||||
@@ -381,7 +433,10 @@ $(INFO_DEPS): $(EXTRA_DIST)
|
||||
# List words/regexps here that should not appear in the texinfo documentation.
|
||||
check-texinfo:
|
||||
grep timezone $(srcdir)/*.texi && exit 1 || :
|
||||
grep -w POSIX $(srcdir)/*.texi && exit 1 || :
|
||||
grep '\$$@"' $(srcdir)/*.texi && exit 1 || :
|
||||
$(PERL) -ne \
|
||||
'/\bPOSIX\b/ && !/\@acronym{POSIX}/ || /{posix}/ and print,exit 1' \
|
||||
$(srcdir)/*.texi 2> /dev/null && : || exit 1
|
||||
|
||||
check: check-texinfo
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
|
||||
8
doc/code-vs-command
Normal file
8
doc/code-vs-command
Normal file
@@ -0,0 +1,8 @@
|
||||
perl -pi -e \
|
||||
's/\@code\{('"$(echo cp dd df dir dircolors du install ln ls mkdir mkfifo mknod mv shred touch vdir|tr ' ' '|')"')\}/\@command{$1}/' coreutils.texi
|
||||
|
||||
perl -pi -e \
|
||||
's/\@code\{('"$(echo cp dd df dir dircolors du install ln ls mkdir mkfifo mknod mv shred touch vdir|tr ' ' '|')"')\}/\@command{$1}/' coreutils.texi
|
||||
|
||||
regex=$((textutils; shellutils) | tr -s ' ' '|')
|
||||
perl -pi -e 's/\@code\{('"$regex"')\}/\@command{$1}/' coreutils.texi
|
||||
3370
doc/coreutils.texi
3370
doc/coreutils.texi
File diff suppressed because it is too large
Load Diff
@@ -35,13 +35,13 @@ programs accept. These are the strings you, as a user, can supply as
|
||||
arguments to the various programs. The C interface (via the
|
||||
@code{getdate} function) is not described here.
|
||||
|
||||
@cindex beginning of time, for @sc{posix}
|
||||
@cindex epoch, for @sc{posix}
|
||||
@cindex beginning of time, for @acronym{POSIX}
|
||||
@cindex epoch, for @acronym{POSIX}
|
||||
Although the date syntax here can represent any possible time since the
|
||||
year zero, computer integers often cannot represent such a wide range of
|
||||
time. On @sc{posix} systems, the clock starts at 1970-01-01 00:00:00
|
||||
@sc{utc}: @sc{posix} does not require support for times before the
|
||||
@sc{posix} Epoch and times far in the future. Traditional Unix systems
|
||||
time. On @acronym{POSIX} systems, the clock starts at 1970-01-01 00:00:00
|
||||
@sc{utc}: @acronym{POSIX} does not require support for times before the
|
||||
@acronym{POSIX} Epoch and times far in the future. Traditional Unix systems
|
||||
have 32-bit signed @code{time_t} and can represent times from 1901-12-13
|
||||
20:45:52 through 2038-01-19 03:14:07 @sc{utc}. Systems with 64-bit
|
||||
signed @code{time_t} can represent all the times in the known
|
||||
|
||||
@@ -11,3 +11,4 @@ safe-lstat.h
|
||||
safe-stat.c
|
||||
safe-stat.h
|
||||
stat.c
|
||||
unlocked-io.h
|
||||
|
||||
928
lib/ChangeLog
928
lib/ChangeLog
@@ -1,3 +1,924 @@
|
||||
2002-09-28 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* makepath.c (make_path): Restore umask *before* creating the final
|
||||
component.
|
||||
|
||||
2002-09-25 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* fsusage.c [! HAVE_INTTYPES_H && HAVE_STDINT_H] Include <stdint.h>.
|
||||
(UINTMAX_MAX) [!defined UINTMAX_MAX]: New macro.
|
||||
(PROPAGATE_ALL_ONES): Work even if X is unsigned and narrower than
|
||||
int. Work more efficiently if X is the same width as uintmax_t.
|
||||
Do not compare X to -1, to avoid bogus compiler warning.
|
||||
(get_fs_usage): (uintmax_t) -1 -> UINTMAX_MAX to avoid a cast.
|
||||
Don't assume that f_frsize and f_bsize are the same type.
|
||||
|
||||
2002-09-25 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* fsusage.c: Remove unneeded parentheses around operands of `defined'.
|
||||
|
||||
* safe-read.c (safe_read): Make comment more precise:
|
||||
upon error, it returns -1.
|
||||
|
||||
2002-09-22 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* makepath.c (make_path): Minor reformatting.
|
||||
|
||||
2002-09-14 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* lib/xnanosleep (xnanosleep): Return -1 on failure, not 1,
|
||||
for consistency with nanosleep. Check errno after nanosleep
|
||||
returns -1.
|
||||
|
||||
2002-09-11 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* xnanosleep.c, xnanosleep.h: New files, factored out of sleep.c.
|
||||
* Makefile.am (libfetish_a_SOURCES): Add them.
|
||||
|
||||
2002-09-04 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* addext.c (addext): Add a cast to avoid gcc's warning about
|
||||
`comparison between signed and unsigned'.
|
||||
|
||||
* sig2str.c (str2signum, sig2str): Declare loop index variables to be
|
||||
of type size_t so that they match type of upper bound, thus avoiding
|
||||
warning about `comparison between signed and unsigned'.
|
||||
|
||||
2002-08-31 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* mktime.c: Update from GNU libc.
|
||||
* obstack.c: Likewise.
|
||||
* getopt.c: Likewise.
|
||||
* getopt1.c: Likewise.
|
||||
|
||||
2002-08-05 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
Fix some minor time-related bugs with POSIX time arguments.
|
||||
Some valid time stamps were being rejected (notably -1, and
|
||||
time stamps before 1900 on 64-bit hosts). And some invalid
|
||||
time stamps were being accepted, e.g. September 31.
|
||||
|
||||
* lib/posixtm.h (posixtime): Return bool instead of time_t, so
|
||||
that we can return (time_t) -1 successfully.
|
||||
* lib/posixtm.c: Likewise.
|
||||
[HAVE_STDBOOL_H]: Include <stdbool.h>.
|
||||
(bool, false, true) [!HAVE_STDBOOL_H]: New type.
|
||||
(t): Remove static var.
|
||||
(year, posix_time_parse): Now takes struct tm * arg to modify, instead
|
||||
of static var. All uses changed.
|
||||
(year): Do not reject years before 1900; they can occur with
|
||||
64-bit time_t.
|
||||
(posix_time_parse): Do not check for out-of-range components;
|
||||
that is now the caller's responsibility, since our checks were
|
||||
only approximations.
|
||||
(posixtime): Use mktime to check for out-of-range components,
|
||||
since it knows them exactly.
|
||||
If mktime returns (time_t) -1, check whether an error actually occurred
|
||||
by invoking localtime on -1.
|
||||
(main) [TEST_POSIXTIME]: Check for input data errors, and report
|
||||
posixtime failures better.
|
||||
Improve the test data (in comments only).
|
||||
|
||||
2002-07-27 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* readutmp.h: If we have both utmpx.h and utmp.h, and there exists
|
||||
the utmp.ut_exit member, but not the utmpx.ut_exit member, then
|
||||
undefine HAVE_UTMPX_H. For AIX 4.3.3. Doing all this in cpp is
|
||||
a big kludge; someday we'll put the brains in an autoconf macro.
|
||||
(UT_EXIT_E_TERMINATION, UT_EXIT_E_EXIT): Define.
|
||||
|
||||
2002-07-20 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* xmalloc.c: Adjust to work with new autoconf macros, AC_FUNC_MALLOC
|
||||
and AC_FUNC_REALLOC: test #ifndef HAVE_MALLOC/HAVE_REALLOC.
|
||||
|
||||
* gettext.h: Upgrade to gettext-0.11.3.
|
||||
|
||||
2002-07-13 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
* xstat.in: Include <string.h>.
|
||||
* mountlist.c: #undef MNT_IGNORE before defining it, to avoid warning
|
||||
on FreeBSD.
|
||||
|
||||
2002-07-09 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* mountlist.h (ME_DUMMY): Don't count entries of type `auto' as dummy
|
||||
ones. At least on GNU/Linux systems, `auto' means something else.
|
||||
From Michael Stone.
|
||||
|
||||
2002-07-01 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* c-stack.c: Include sys/time.h.
|
||||
From Volker Borchert.
|
||||
|
||||
2002-06-11 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* fnmatch.c, fnmatch_loop.c (WIDE_CHAR_SUPPORT):
|
||||
New macro. Use it uniformly instead of
|
||||
(defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H).
|
||||
It also uses HAVE_BTOWC, to fix a porting bug on Solaris 2.5.1
|
||||
reported by Vin Shelton.
|
||||
|
||||
2002-06-22 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* fnmatch.c (ISASCII, ISPRINT): Undefine, to avoid warning about
|
||||
redefinition due to Solaris5.6's definition in /usr/include/sys/euc.h.
|
||||
|
||||
2002-06-22 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* c-stack.h (segv_handler, c_stack_action) [! defined SA_SIGINFO]:
|
||||
Do not assume SA_SIGINFO behavior.
|
||||
Bug reported by Jim Meyering on NetBSD 1.5.2.
|
||||
|
||||
2002-06-22 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* c-stack.c, c-stack.h: New files, from diffutils-2.8.2.
|
||||
|
||||
* exitfail.c, exitfail.h: Likewise.
|
||||
* Makefile.am (libfetish_a_SOURCES): Add exitfail.c and exitfail.h.
|
||||
|
||||
* Makefile.am (libfetish_a_SOURCES): Add fnmatch_.h in place
|
||||
of fnmatch.h.
|
||||
(EXTRA_DIST): Add fnmatch_loop.c.
|
||||
(libfetish_a_SOURCES): Add c-stack.c and c-stack.h.
|
||||
|
||||
* fnmatch_loop.c: New file, from diffutils-2.8.2.
|
||||
* fnmatch.c: Update from diffutils-2.8.2.
|
||||
* fnmatch_.h: New file. From diffutils-2.8.2.
|
||||
* fnmatch.h: Remove file.
|
||||
|
||||
2002-06-18 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* file-type.h: Report an error if neither S_ISREG nor
|
||||
S_IFREG is defined, instead of using a test specific to glibc
|
||||
2.2. This should be safe, since POSIX requires S_ISREG and
|
||||
Unix Version 7 had S_IFREG. We don't need to check for
|
||||
<sys/types.h> since we don't use any symbols that it defines.
|
||||
|
||||
2002-06-15 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* file-type.h (FILE_TYPE_H): Guard entire contents with #ifndef.
|
||||
For GNU libc 2.2 and newer, ensure that <sys/types.h> and <sys/stat.h>
|
||||
have been included before this file.
|
||||
|
||||
2002-06-13 Richard Dawe <richdawe@bigfoot.com>
|
||||
|
||||
* Makefile.am (lstat.c, stat.c, .sin.sed): Use t-$@, rather than $@-t,
|
||||
so that each temporary file name is unique and valid in the first
|
||||
8 characters, for operation under DOS.
|
||||
|
||||
2002-06-15 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
Work even with DJGPP 2.03, which lacks support for symlinks.
|
||||
From Richard Dawe.
|
||||
* xstat.in (S_ISLNK): Define to 0 if neither S_ISLNK nor S_IFLNK
|
||||
is defined.
|
||||
* lchown.c (S_ISLNK): Likewise.
|
||||
|
||||
2002-06-14 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* file-type.h: Use the version from diffutils-2.8.2.
|
||||
* file-type.c: Likewise.
|
||||
|
||||
2002-05-27 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
Fix a problem seen only on nonconforming systems whereby ls.c's
|
||||
use of localtime, and then of gettimeofday would cause trouble:
|
||||
the localtime call used to initialize rpl_gettimeofday's save
|
||||
mechanism would clobber ls's current local time information so
|
||||
that in any long listing the first file would always be listed
|
||||
with date 1970-01-01. Analysis by Volker Borchert.
|
||||
|
||||
* gettimeofday.c (localtime): Undefine.
|
||||
(rpl_localtime): New function.
|
||||
|
||||
2002-05-22 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (libfetish_a_SOURCES): Add file-type.c and file-type.h.
|
||||
* file-type.h: New file.
|
||||
* file-type.c (file_type): New file/function. Extracted from diffutils.
|
||||
|
||||
2002-04-29 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* hard-locale.c: Upgrade to version used in GNU Diffutils 2.8.1.
|
||||
|
||||
2002-04-28 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* sig2str.h (SIGNUM_BOUND): Do not use WTERMSIG, to avoid
|
||||
depending on <sys/wait.h> and WTERMSIG. Default to 64 instead
|
||||
of 127, since 64 is the largest conceivable number for ancient
|
||||
nonstandard hosts.
|
||||
* sig2str.c: Do not include <sys/wait.h>; no longer needed.
|
||||
|
||||
2002-04-28 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* sig2str.c (WTERMSIG): Remove definition (unused).
|
||||
|
||||
2002-04-28 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* sig2str.h, sig2str.c: New files.
|
||||
* Makefile.am (libfetish_a_SOURCES): Add sig2str.h.
|
||||
|
||||
2002-04-24 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* gettext.h: New file, from Gettext.
|
||||
* Makefile.am (INCLUDES): Remove -I../intl.
|
||||
(libfetish_a_SOURCES): Add gettext.h.
|
||||
|
||||
2002-04-16 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* readutmp.h (UT_TYPE): Remove definition (now in who.c).
|
||||
(HAVE_STRUCT_XTMP_UT_EXIT, HAVE_STRUCT_XTMP_UT_ID): Define.
|
||||
(HAVE_STRUCT_XTMP_UT_PID, HAVE_STRUCT_XTMP_UT_TYPE): Define.
|
||||
|
||||
2002-04-12 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* dirfd.h (dirfd): Elide prototype if dirfd is a macro.
|
||||
|
||||
2002-03-10 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* makepath.c (make_path): Remove a comma from a diagnostic.
|
||||
Suggestion from Santiago Vila.
|
||||
|
||||
2002-03-08 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* rename.c: Mention that this wrapper is needed also on
|
||||
mips-dec-ultrix4.4 systems.
|
||||
|
||||
2002-03-02 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* gettime.c (gettime): Test HAVE_CLOCK_GETTIME,
|
||||
not HAVE_CLOCK_SETTIME.
|
||||
|
||||
2002-02-27 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* nanosleep.h: Rename to....
|
||||
* timespec.h: New name for nanosleep.h. All uses changed.
|
||||
|
||||
* gettime.c: New file.
|
||||
* settime.c: New file.
|
||||
* stime.c: Remove.
|
||||
|
||||
* Makefile.am (libfetish_a_SOURCES): Add gettime.c, settime.c,
|
||||
timespec.h. Remove nanosleep.h.
|
||||
|
||||
2002-02-25 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* acl.c, acl.h: New files.
|
||||
* Makefile.am (libfetish_a_SOURCES): Add acl.h, acl.c.
|
||||
|
||||
2002-02-24 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* strnlen.c (strnlen): Define-away/undef so that an inconsistent
|
||||
prototype in string.h (on at least AIX4.3.2.0 w/gcc-2.95.3) doesn't
|
||||
cause trouble. Reported by Nelson Beebe.
|
||||
|
||||
2002-02-23 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* path-concat.c (xpath_concat): Reorder code to pacify
|
||||
compilers that don't know that xalloc_die never returns.
|
||||
|
||||
2002-02-20 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* getdate.c: Regenerate using bison-1.33.
|
||||
|
||||
2002-02-15 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* posixver.c, posixver.h: New files.
|
||||
* Makefile.am (libfetish_a_SOURCES): Add them.
|
||||
|
||||
2002-02-02 Paul Eggert <eggert@twinsun.com>
|
||||
Bruno Haible <bruno@clisp.org>
|
||||
|
||||
* unicodeio.h (print_unicode_char): Add exit_on_error argument.
|
||||
(fwrite_success_callback): New declaration.
|
||||
* unicodeio.c (unicode_to_mb): New function, extracted from
|
||||
print_unicode_char. Call failure callback instead of error.
|
||||
(fwrite_success_callback): New function.
|
||||
(exit_failure_callback): New function.
|
||||
(fallback_failure_callback): New function.
|
||||
(print_unicode_char): Call unicode_to_mb.
|
||||
|
||||
2002-01-26 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (getdate$U.o): Depend on unlocked-io.h.
|
||||
|
||||
2002-01-22 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (Makefile): Don't depend on $(BUILT_SOURCES).
|
||||
Otherwise, some versions of automake would omit the rule that makes
|
||||
Makefile from Makefile.in.
|
||||
|
||||
2001-01-21 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* xmemcoll.h, xmemcoll.c: New files.
|
||||
* Makefile.am (libfetish_a_SOURCES): Add them.
|
||||
* memcoll.c: Include errno.h, and declare errno if not defined.
|
||||
(memcoll): Set errno to zero if there is no error.
|
||||
|
||||
* quotearg.c (quotearg_buffer_restyled):
|
||||
Fix bug with quoting buffers containing NUL when backslashing escapes.
|
||||
This bug was exposed by the other changes in this patch.
|
||||
(quotearg_n_options): New arg ARGSIZE.
|
||||
All callers changed.
|
||||
(quoting_options_from_style): New function.
|
||||
(quotearg_n_style): Use it.
|
||||
(quotearg_n_style_mem): New function.
|
||||
|
||||
* quotearg.h (quotearg_n_style_mem): New function.
|
||||
|
||||
2002-01-16 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* getdate.y: Add three semicolons, each just before a closing brace.
|
||||
Bison (as of version 1.31) no longer papers over that mistake.
|
||||
|
||||
2002-02-14 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* backupfile.c (ISDIGIT): Comment fix.
|
||||
* getdate.y (ISDIGIT): Likewise.
|
||||
* posixtm.c (ISDIGIT, year): Likewise.
|
||||
* strverscmp.c (ISDIGIT): Likewise.
|
||||
* userspec.c (ISDIGIT): Likewise.
|
||||
|
||||
2002-01-05 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* version-etc.c (version_etc_copyright): Update copyright year.
|
||||
|
||||
2001-01-19 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* closeout.c (close_stdout_status): If ferror (stdout), do
|
||||
not silently exit merely because the output buffer happens to
|
||||
have nothing pending.
|
||||
|
||||
2001-12-18 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
See the big note in ../ChangeLog.
|
||||
* human.c (suffixes): Prefer K to k for 1024.
|
||||
(generate_suffix_backwards): New function.
|
||||
(human_readable_inexact): Use it.
|
||||
* xstrtol.c (__xstrtol): If there is no number but there
|
||||
is a valid suffix, assume 1. "MB" now means decimal, "MiB" binary.
|
||||
Accept 'K' as well as 'k'.
|
||||
|
||||
2001-12-15 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* regex.h (__restrict_arr): Update from libc.
|
||||
|
||||
* mountlist.h (ME_REMOTE): Recognize file systems of type smbfs
|
||||
as `remote' if the name starts with `//'. Suggested by Michael Stone.
|
||||
(STREQ): Define.
|
||||
|
||||
2001-12-10 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* linebuffer.c: Remove explicit declarations of xmalloc and xrealloc,
|
||||
Instead, include "xalloc.h".
|
||||
(initbuffer): Don't cast xmalloc return value to char*.
|
||||
(readline): Reword comment.
|
||||
Don't cast xrealloc return value to char*
|
||||
Return NULL, not 0.
|
||||
|
||||
2001-12-09 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* modechange.c (mode_compile): Add cast to avoid pedantic warning about
|
||||
`signed and unsigned type in conditional expression'.
|
||||
* posixtm.c (posix_time_parse): Likewise.
|
||||
|
||||
* xreadlink.c (xreadlink): Add cast to avoid a pedantic warning.
|
||||
|
||||
* readtokens.c (readtoken): Declare an index to be of type unsigned
|
||||
to avoid a pedantic warning.
|
||||
|
||||
* getstr.c: Don't include assert.h.
|
||||
(getstr): Remove warning-evoking assertions.
|
||||
Return -1 if offset parameter is out of bounds.
|
||||
Change the type of a local from int to size_t.
|
||||
|
||||
* strftime.c (my_strftime_localtime_r): Include this function
|
||||
definition in the `#if ! HAVE_TM_GMTOFF' block.
|
||||
|
||||
* xgethostname.c: Remove declarations of xmalloc and xrealloc.
|
||||
Include xalloc.h instead.
|
||||
|
||||
2001-12-02 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* tempname.c: Don't declare getenv, thus reverting the change of
|
||||
2001-11-18. It's no longer necessary, now that stdlib.h is always
|
||||
included.
|
||||
|
||||
* regex.c [!__BOUNDED_POINTERS__]: Define away __bounded,
|
||||
__unbounded, and __ptrvalue. Reported by Uwe H. Steinfeld.
|
||||
|
||||
2001-11-30 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* xstrdup.c: Include xalloc.h, so that xstrdup is declared
|
||||
before being defined.
|
||||
|
||||
2001-11-27 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* quotearg.h (quotearg_n, quotearg_n_style):
|
||||
First arg is int, not unsigned.
|
||||
* quotearg.c (quotearg_n, quotearg_n_style): Likewise.
|
||||
(SIZE_MAX, UINT_MAX): New macros.
|
||||
(quotearg_n_options): Abort if N is negative.
|
||||
Avoid overflow check on hosts where size_t is 64 bits and int
|
||||
is 32 bits, as overflow is impossible there.
|
||||
Fix off-by-one typo that caused unnecessary reallocation.
|
||||
|
||||
2001-11-27 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* tempname.c: Merge with version from libc.
|
||||
* regex.c: Likewise.
|
||||
|
||||
* tempname.c: Include stdlib.h unconditionally. On some old systems
|
||||
for which STDC_HEADERS is 0, it was not included, resulting in a
|
||||
warning about an integer-to-pointer conversion problem with getenv.
|
||||
Reported by Volker Borchert.
|
||||
|
||||
2001-11-26 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* gtod.h: Remove file.
|
||||
* Makefile.am (libfetish_a_SOURCES): Remove gtod.h.
|
||||
* gettimeofday.c: Don't include gtod.h.
|
||||
(GTOD_init): Remove function.
|
||||
(rpl_gettimeofday): Do its job here instead, rather than aborting.
|
||||
Suggestion from Volker Borchert.
|
||||
|
||||
2001-11-23 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* hash.h (struct hash_table): Don't define here. Merely declare it.
|
||||
* hash.c (struct hash_table): Define it here instead.
|
||||
|
||||
2001-11-22 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* hash.h: Bracket contents of file with #ifndef HASH_H_ ... #endif.
|
||||
|
||||
2001-11-18 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* tempname.c (TMP_MAX): Remove; no longer needed.
|
||||
(TEMPORARIES): New macro.
|
||||
(__gen_tempname): Use TEMPORARIES rather than TMP_MAX. This
|
||||
removes an artificial limitation (e.g. HP-UX 10.20, where
|
||||
TMP_MAX is 17576).
|
||||
|
||||
2001-11-18 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* tempname.c [!HAVE_DECL_GETENV]: Declare getenv to avoid warning
|
||||
on SunOS4.
|
||||
|
||||
* Makefile.am (Makefile): Depend on $(BUILT_SOURCES), so those
|
||||
files will be created before anything else.
|
||||
|
||||
2001-11-17 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* modechange.c (mode_adjust): Fix error introduced on 1999-04-26
|
||||
that made e.g., `chmod a=,o=w,g=o F' cause F to be group readable
|
||||
rather than group writable. Patch by Juan F. Codagnone.
|
||||
|
||||
* readtokens.c: Remove explicit declarations of xmalloc and xrealloc,
|
||||
Instead, include "xalloc.h".
|
||||
|
||||
* mountlist.c: Include unlocked-io.h after all system headers.
|
||||
Remove explicit declarations of xmalloc, xrealloc,
|
||||
and xstrdup. Instead, include "xalloc.h".
|
||||
|
||||
* argmatch.c, closeout.c, error.c, exclude.c: Include unlocked-io.h.
|
||||
* fatal.c, getdate.y, getpass.c, getstr.c, getusershell.c: Likewise.
|
||||
* mountlist.c, posixtm.c, readtokens.c, readutmp.c: Likewise.
|
||||
|
||||
* regex.c, sha.c, version-etc.c, yesno.c: Likewise.
|
||||
Reported by Padraig Brady.
|
||||
|
||||
* mkstemp.c: #undef mkstemp.
|
||||
Include config.h.
|
||||
(rpl_mkstemp): Rename from mkstemp.
|
||||
Protoize.
|
||||
|
||||
2001-11-16 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* physmem.c [HAVE_SYS_PSTAT_H]: Include <sys/pstat.h>.
|
||||
(physmem_total) [HAVE_PSTAT_GETSTATIC]: If sysconf couldn't be used to
|
||||
determine the amount of total physical memory, use pstat_getstatic.
|
||||
HPUX-11 doesn't define _SC_PHYS_PAGES.
|
||||
(physmem_available) [HAVE_PSTAT_GETSTATIC && HAVE_PSTAT_GETDYNAMIC]:
|
||||
If sysconf couldn't be used to determine the amount of available
|
||||
physical memory, use both pstat_getstatic and pstat_getdynamic.
|
||||
Based on a patch from Bob Proulx.
|
||||
|
||||
2001-11-05 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* xstat.in (slash_aware_lstat): Correct a misleading comment.
|
||||
|
||||
2001-11-03 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* argmatch.h (ARGMATCH_TO_ARGUMENT): Remove casts of first two args
|
||||
in argmatch_to_argument call.
|
||||
|
||||
* dirfd.c (dirfd): Reflect the fact that DIR_TO_FD now takes an
|
||||
argument.
|
||||
|
||||
* hash.c (hash_clear): Fix a bug that could lead to an infloop or
|
||||
e.g., a fault due to an attempt to free a NULL pointer.
|
||||
|
||||
2001-11-01 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* dirfd.c, dirfd.h: New files.
|
||||
* Makefile.am (libfetish_a_SOURCES): Add dirfd.h.
|
||||
|
||||
* hash.c (hash_print) [TESTING]: Clean up.
|
||||
|
||||
2001-10-22 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* hard-locale.c (alloca): Define to __builtin_alloca if __GNUC__,
|
||||
to avoid a warning if -Wall.
|
||||
|
||||
2001-10-21 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* regex.c (uintptr_t): Remove macro and decl; it's config.h's job.
|
||||
|
||||
2001-10-21 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* obstack.c (_): Honor the setting of ENABLE_NLS. Otherwise,
|
||||
this code would end up calling gettext even in packages built
|
||||
with --disable-nls.
|
||||
* getopt.c (_): Likewise.
|
||||
* regex.c (_): Likewise.
|
||||
|
||||
2001-10-20 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* error.c (strerror_r): Do not declare unless !_LIBC.
|
||||
Do not check for HAVE_DECL_STRERROR_R missing unless STRERROR_R_CHAR_P.
|
||||
Use strerror_r that is only a macro, even if it is not a function.
|
||||
(strerror): Check for HAVE_DECL_STRERROR before declaring.
|
||||
(private_strerror): Use prototypes, not old-style function definition.
|
||||
(print_errno_message): New function.
|
||||
Support the POSIX 'int'-flavored strerror_r, as well as the traditional
|
||||
char*-flavored one.
|
||||
(error_tail, error, error_at_line): Use it.
|
||||
|
||||
2001-10-11 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* argmatch.c (argmatch_invalid): Use quotearg_n_style (0, ...
|
||||
and quote_n (1, ... to avoid clobbering a buffer.
|
||||
|
||||
2001-10-05 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am: (libfetish_a_SOURCES): Add hash-pjw.c and hash-pjw.h.
|
||||
* hash-pjw.c: New file (factored out of fileutils' remove.c).
|
||||
* hash-pjw.h: New file.
|
||||
|
||||
2001-09-30 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* mountlist.c [MOUNTED_GETFSSTAT]:
|
||||
Include <sys/ucred.h>, for Apple Darwin.
|
||||
Include sys/mount.h and sys/fs_types.h only if available.
|
||||
(FS_TYPE): Define.
|
||||
(read_filesystem_list): Use FS_TYPE.
|
||||
|
||||
2001-09-29 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* exclude.c (excluded_filename): 0 -> false, since it's
|
||||
a boolean context.
|
||||
|
||||
2001-09-28 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
Fix bug reported by Petter Reinholdtsen for HP-UX 10.20, which
|
||||
#defines strtoimax. Also treat the other strto* functions
|
||||
like strtoimax.
|
||||
|
||||
* xstrtol.c (strtol): Do not declare if HAVE_DECL_STRTOL.
|
||||
(strtoul): Do not declare if HAVE_DECL_STRTOUL.
|
||||
(strtoimax, strtoumax): Do not declare if already defined as a macro.
|
||||
|
||||
2001-09-26 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
Most macros in unlocked-io.h had the wrong number of arguments.
|
||||
* gen-uio: New script.
|
||||
(USE_UNLOCKED_IO): Define to 1 if not already defined.
|
||||
* unlocked-io.hin: Remove file.
|
||||
* Makefile.am (unlocked-io.h): Rewrite to use a separate script,
|
||||
rather than trying to embed it here.
|
||||
(EXTRA_DIST): Add gen-uio. Remove unlocked-io.hin
|
||||
Reported by Padraig Brady.
|
||||
|
||||
2001-09-25 Volker Borchert <bt@teknon.de>
|
||||
|
||||
* gettimeofday.c (rpl_gettimeofday): Declare local variable `result'.
|
||||
|
||||
2001-09-23 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* mountlist.c: Remove useless parentheses in #if directives.
|
||||
(MOUNTED) [!defined MOUNTED]: Define to _PATH_MOUNTED, for when
|
||||
the deprecated MOUNTED symbol is no longer defined in mntent.h.
|
||||
|
||||
2001-09-22 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* localcharset.c: Update from latest gettext.
|
||||
* config.charset: Likewise.
|
||||
|
||||
2001-09-20 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* xstrtol.c (strtoimax): Guard declaration with
|
||||
`#if !HAVE_DECL_STRTOIMAX', rather than just `#ifndef strtoimax'.
|
||||
The latter fails because some systems (at least rs6000-ibm-aix4.3.3.0)
|
||||
have their own, conflicting declaration of strtoimax in sys/inttypes.h.
|
||||
(strtoumax): Likewise, for completeness (it wasn't necessary).
|
||||
|
||||
2001-09-06 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* strtoimax.c (HAVE_LONG_LONG):
|
||||
Redefine to HAVE_UNSIGNED_LONG_LONG if unsigned.
|
||||
(strtoimax): Use sizeof (long), not sizeof strtol (ptr, endptr, base),
|
||||
to work around bug in IBM C compiler.
|
||||
|
||||
2001-09-16 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* mkdir.c: New file.
|
||||
|
||||
2001-09-04 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* xgetcwd.c: Revert some of the previous change; intead,
|
||||
fix the HAVE_GETCWD_NULL code to behave more like the
|
||||
!HAVE_GETCWD_NULL code used to.
|
||||
|
||||
Include "xalloc.h".
|
||||
(xgetcwd): Do not return NULL when memory is exhausted; instead,
|
||||
invoke xalloc_die.
|
||||
|
||||
2001-09-04 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* xreadlink.c (xreadlink): Omit size_t* arg. All uses changed.
|
||||
Use ssize_t, not int, to store result of readlink.
|
||||
Check for ssize_t overflow as well as size_t overflow,
|
||||
as POSIX says the result of readlink is implementation-defined
|
||||
when ssize_t overflows.
|
||||
Remove unnecessary cast to char*.
|
||||
Use free+malloc instead of realloc, as the storage doesn't need
|
||||
to be preserved and it's clearer and can be more efficient that way.
|
||||
(SIZE_MAX, SSIZE_MAX): New macros, if <limits.h> doesn't declare.
|
||||
* xreadlink.h (xreadlink): Update prototype.
|
||||
|
||||
2001-09-03 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* exclude.c (fnmatch_no_wildcards): Fix confusion between
|
||||
usage of FNM_CASEFOLD and FNM_LEADING_DIR. The bug was
|
||||
spotted by Jim Meyering.
|
||||
|
||||
2001-09-03 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* xreadlink.c (xreadlink): Preserve errno around `free' during failure.
|
||||
|
||||
2001-09-03 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* xgetcwd.c: Fix the !HAVE_GETCWD_NULL code to behave more
|
||||
like the HAVE_GETCWD_NULL code.
|
||||
Include pathmax.h if not HAVE_GETCWD.
|
||||
Do not include xalloc.h.
|
||||
(INITIAL_BUFFER_SIZE): New symbol.
|
||||
Do not use xmalloc / xrealloc, since the caller is responsible for
|
||||
handling errors. Preserve errno around `free' during failure.
|
||||
Do not overrun buffer when using getwd.
|
||||
|
||||
2001-09-03 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* xgetcwd.c (xgetcwd): Use HAVE_GETCWD_NULL, not (defined
|
||||
__GLIBC__ && __GLIBC__ >= 2), to decide whether to use getcwd (NULL, 0).
|
||||
|
||||
2001-09-02 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* error.c: Update from GNU libc.
|
||||
|
||||
2001-09-01 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* xreadlink.c: New file.
|
||||
* xreadlink.h: New file.
|
||||
* Makefile.am (libfetish_a_SOURCES): Add xreadlink.c and xreadlink.h.
|
||||
|
||||
* regex.c (uintptr_t) [!_LIBC]: Define to private_uintptr_t, so it
|
||||
doesn't conflict with sparc-sun-solaris2.7's definition in
|
||||
/usr/include/sys/int_types.h.
|
||||
|
||||
* exclude.c: Use `""', not `<>' to #include non-system header files.
|
||||
(fnmatch_no_wildcards): Rewrite not to use function names, strcasecmp
|
||||
and strncasecmp as r-values. Unixware didn't have declarations.
|
||||
|
||||
2001-08-31 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* xgetcwd.c (xgetcwd): Reorganize to avoid some duplication.
|
||||
Use an initial, malloc'd, buffer of length 128 rather than
|
||||
a statically allocated one of length 1024.
|
||||
|
||||
2001-08-30 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* xgetcwd.c: Don't include pathmax.h.
|
||||
Include stdlib.h and unistd.h if available.
|
||||
Include xalloc.h.
|
||||
(xmalloc, xstrdup, free): Remove decls.
|
||||
(xgetcwd): Don't assume sizes fit in unsigned.
|
||||
Check for overflow when computing sizes.
|
||||
Simplify reallocation code.
|
||||
|
||||
2001-08-28 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* Makefile.am (libfetish_a_SOURCES): Remove strtoxmax.c.
|
||||
|
||||
* strtoimax.c: Renamed from strtoxmax.c, removing the
|
||||
old strtoimax.c.
|
||||
|
||||
Also, make the following further changes to make this file's
|
||||
configuration more similar to that of strtol.c:
|
||||
(UNSIGNED): Renamed from STRTOUXMAX_UNSIGNED. All uses changed.
|
||||
(strtoumax, uintmax_t, strtoull, strtol): Remove.
|
||||
(intmax_t, strtoimax, strtol, strtoll): New macros, if UNSIGNED.
|
||||
(strtoimax): Renamed from strtoumax. All uses of unsigned values
|
||||
changed to signed values.
|
||||
|
||||
And make the following changes as well:
|
||||
Fix copyright notice, as 1999 was missing.
|
||||
(verify): New macro.
|
||||
(strtoimax): Check sizes at compile-time, not run-time.
|
||||
Prefer strtol to strtoll if both work.
|
||||
(main): Remove; it was not that useful and was a pain to maintain.
|
||||
|
||||
* strtoumax.c: Include strtoimax.c, not strtouxmax.c.
|
||||
|
||||
2001-08-30 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* savedir.c (savedir): Remove size parameter, as POSIX says that
|
||||
a directory's st_size can have an arbitrary value, so the old
|
||||
usage could waste an arbitrary amount of memory. All uses
|
||||
changed.
|
||||
* savedir.h: Update prototype.
|
||||
|
||||
2001-08-30 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* xstrtol.c (strtoimax): New decl.
|
||||
|
||||
2001-08-28 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* xstrtol.h: Add copyright notice.
|
||||
(_DECLARE_XSTRTOL): Improve quality of diagnostic for
|
||||
LONGINT_INVALID_SUFFIX_CHAR.
|
||||
|
||||
2001-08-30 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
|
||||
tm to be declared.
|
||||
|
||||
2001-08-30 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* hash.c: Remove '2001' from copyright notice.
|
||||
|
||||
2001-08-30 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* full-write.h: New file.
|
||||
* Makefile.am (libfetish_a_SOURCES): Add full-write.h.
|
||||
* full-write.c: Correct credits, as cccp.c no longer
|
||||
exists and anyway it was so heavily changed from the old cccp
|
||||
code as to be unrecognizable. Include full-write.h.
|
||||
(full_write) Return size_t, with short writes meaning failure.
|
||||
All callers changed. This fixes a bug with large buffers
|
||||
on 64-bit hosts.
|
||||
* utime.c: Include full-write.h.
|
||||
|
||||
2001-08-30 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
Merge 'exclude' changes from tar 1.13.22.
|
||||
This fixes one or two unlikely storage allocation overflow bugs,
|
||||
but doesn't change user-visible behavior otherwise.
|
||||
|
||||
2001-08-30 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* exclude.c (bool): Declare, perhaps by including stdbool.h.
|
||||
(<sys/types.h>): Include only if HAVE_SYS_TYPES_H.
|
||||
(<stdlib.h>, <string.h>, <strings.h>, <inttypes.h>, <stdint.h>):
|
||||
Include if available.
|
||||
(<xalloc.h>): Include
|
||||
(SIZE_MAX): Define if <stdint.h> or <inttypes.h> doesn't.
|
||||
(verify): New macro. Use it to verify that EXCLUDE macros do not
|
||||
collide with FNM macros.
|
||||
(struct patopts): New struct.
|
||||
(struct exclude): Use it, as exclude patterns now come with options.
|
||||
(new_exclude): Support above changes.
|
||||
(new_exclude, add_exclude_file):
|
||||
Initial size must now be a power of two to simplify overflow checking.
|
||||
(free_exclude, fnmatch_no_wildcards): New function.
|
||||
(excluded_filename): No longer requires options arg, as the options
|
||||
are determined by add_exclude. Now returns bool, not int.
|
||||
(excluded_filename, add_exclude):
|
||||
Add support for the fancy new exclusion options.
|
||||
(add_exclude, add_exclude_file): Now takes int options arg.
|
||||
Check for arithmetic overflow when computing sizes.
|
||||
(add_exclude_file): xrealloc might modify errno, so don't
|
||||
realloc until after errno might be used.
|
||||
|
||||
* exclude.h (EXCLUDE_ANCHORED, EXCLUDE_INCLUDE,EXCLUDE_WILDCARDS):
|
||||
New macros.
|
||||
(free_exclude): New decl.
|
||||
(add_exclude, add_exclude_file): Now takes int options arg.
|
||||
(excluded_filename): No longer requires options arg, as the options
|
||||
are determined by add_exclude. Now returns bool, not int.
|
||||
|
||||
2001-08-30 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* alloca.c (alloca): Arg is of type size_t, not unsigned.
|
||||
|
||||
2001-08-27 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (libfetish_a_SOURCES): Add strtoxmax.c
|
||||
|
||||
* version-etc.c (N_): Remove definition.
|
||||
Revert most of last change.
|
||||
Instead, simply don't mark the `Copyright...' string for translation.
|
||||
Based on advice from Paul Eggert.
|
||||
|
||||
* strtoxmax.c: Tweak comment.
|
||||
|
||||
2001-08-26 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* version-etc.c (version_etc_copyright_fmt): Replace literal year
|
||||
of copyright with `%s' so translators don't get an untranslated
|
||||
message in 2002.
|
||||
(COPYRIGHT_YEAR): Define.
|
||||
(version_etc): Use fprintf rather than fputs.
|
||||
Suggestion from Ulrich Drepper.
|
||||
|
||||
* Makefile.am (libfetish_a_SOURCES): Add xstrtoimax.c.
|
||||
|
||||
* strtoll.c: New file, from GNU libc.
|
||||
* xstrtoimax.c: New file.
|
||||
|
||||
* xstrtol.h: Add xstrtoimax.
|
||||
* strtoumax.c: New file. Simply include "strtoumax.c".
|
||||
* strtoimax.c: New file. Likewise, but first define STRTOUXMAX_SIGNED.
|
||||
|
||||
* strtoumax.c: Factor to work both for unsigned and signed types, ...
|
||||
* strtoxmax.c: ... then renamed to this.
|
||||
|
||||
2001-08-13 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* Makefile.am (unlocked-io.h): Do not append "_unlocked" twice.
|
||||
Port to Solaris 8, where 'sed' requires a space after the 'r'
|
||||
command, and where sh dislikes "$/". Clean up the spacing a bit.
|
||||
Redirect output to $tmp just once.
|
||||
|
||||
2001-08-12 Paul Eggert <eggert@sic.twinsun.com>
|
||||
|
||||
* addext.c (<errno.h>): Include.
|
||||
(errno): Declare if not defined.
|
||||
(addext): Work correctly when pathconf returns -1 and leaves
|
||||
errno alone because there is no limit. Also, work even if
|
||||
pathconf returns a value greater than SIZE_MAX.
|
||||
|
||||
2001-08-12 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* xgetcwd.c (xgetcwd) [defined __GLIBC__ && __GLIBC__ >= 2]:
|
||||
Simply `return getcwd (NULL, 0);'.
|
||||
[! (defined __GLIBC__ && __GLIBC__ >= 2)]:
|
||||
Use 1300 as initial value for length, not PATH_MAX.
|
||||
|
||||
* pathmax.h: Clean up cpp syntax.
|
||||
|
||||
2001-08-12 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* gettimeofday.c: New file.
|
||||
* gtod.h: New file.
|
||||
* Makefile.am (libfetish_a_SOURCES): Add gtod.h.
|
||||
|
||||
2001-08-04 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* error.h (__attribute__): Remove `|| __STRICT_ANSI__' from #if stmt,
|
||||
to get in sync with glibc.
|
||||
|
||||
2001-08-03 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
The following changes are from gettext 0.10.39 as maintained by
|
||||
Bruno Haible.
|
||||
|
||||
* mbswidth.h (MBSW_REJECT_UNPRINTABLE, MBSW_REJECT_INVALID):
|
||||
Renamed from MBSW_ACCEPT_UNPRINTABLE and MBSW_ACCEPT_INVALID
|
||||
with inverted sense. All uses changed.
|
||||
|
||||
* mbswidth.c: Don't include <limits.h>.
|
||||
Include <stdlib.h> and <string.h> unconditionally.
|
||||
(iswcntrl, mbsinit, ISCNTRL): New macros.
|
||||
(mbsnwidth): Use K&R style function declarations.
|
||||
Don't bother checking for MB_LEN_MAX == 1, since the compiler
|
||||
can optimize it when MB_CUR_MAX == 1.
|
||||
The width of control characters is zero, not 1.
|
||||
|
||||
2001-07-15 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (EXTRA_DIST): Add unlocked-io.hin.
|
||||
(BUILT_SOURCES): Add unlocked-io.h.
|
||||
(io_functions): Define.
|
||||
(unlocked-io.h): New rule.
|
||||
(DISTCLEANFILES): Add unlocked-io.h.
|
||||
(all-local): Depend on unlocked-io.h, to ensure it is created.
|
||||
|
||||
* unlocked-io.hin: New file
|
||||
|
||||
* regex.c: Update from glibc.
|
||||
|
||||
2001-07-05 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (noinst_HEADERS): Remove definition, per new automake
|
||||
@@ -27,10 +948,10 @@
|
||||
|
||||
2001-05-11 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* lib/Makefile.am (libfetish_a_SOURCES):
|
||||
* Makefile.am (libfetish_a_SOURCES):
|
||||
Add strftime.c, since we now compile it on all hosts.
|
||||
|
||||
* lib/strftime.c (my_strftime):
|
||||
* strftime.c (my_strftime):
|
||||
Define to nstrftime if emacs, but only if my_strftime is not defined.
|
||||
(extra_args, extra_args_spec, extra_args_spec_iso): Rename from
|
||||
ut_argument, ut_argument_spec, ut_argument_spec_iso, respectively.
|
||||
@@ -155,8 +1076,7 @@
|
||||
Add dup-safer.c, fopen-safer.c.
|
||||
(noinst_HEADERS): Add stdio-safer.h, unistd-safer.h.
|
||||
|
||||
* dup-safer.c, fopen-safer.c, stdio-safer.h,
|
||||
lib/unistd-safer.h: New files.
|
||||
* dup-safer.c, fopen-safer.c, stdio-safer.h, unistd-safer.h: New files.
|
||||
|
||||
2001-02-25 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ AUTOMAKE_OPTIONS = ../src/ansi2knr
|
||||
|
||||
noinst_LIBRARIES = libfetish.a
|
||||
|
||||
INCLUDES = -I.. -I$(srcdir) -I../intl
|
||||
INCLUDES = -I.. -I$(srcdir)
|
||||
DEFS = -DLIBDIR=\"$(libdir)\" @DEFS@
|
||||
|
||||
## Put relatively complex files at the beginning of the list so
|
||||
@@ -13,11 +13,14 @@ DEFS = -DLIBDIR=\"$(libdir)\" @DEFS@
|
||||
## added by automake, but on systems with an up to date GNU libc,
|
||||
## regex.c isn't even compiled.
|
||||
libfetish_a_SOURCES = \
|
||||
acl.h acl.c \
|
||||
getdate.h getdate.y \
|
||||
posixtm.c posixtm.h \
|
||||
posixver.c posixver.h \
|
||||
strftime.c \
|
||||
getopt.c getopt.h getopt1.c \
|
||||
hash.c hash.h \
|
||||
hash-pjw.c hash-pjw.h \
|
||||
__fpending.h \
|
||||
addext.c \
|
||||
argmatch.c argmatch.h \
|
||||
@@ -25,19 +28,25 @@ libfetish_a_SOURCES = \
|
||||
basename.c \
|
||||
bumpalloc.h \
|
||||
canon-host.c \
|
||||
c-stack.c c-stack.h \
|
||||
closeout.c closeout.h \
|
||||
diacrit.c diacrit.h \
|
||||
dirname.c dirname.h \
|
||||
dirfd.h \
|
||||
dup-safer.c \
|
||||
exclude.c exclude.h \
|
||||
exitfail.c exitfail.h \
|
||||
filemode.c filemode.h \
|
||||
fnmatch.h \
|
||||
file-type.c file-type.h \
|
||||
fnmatch_.h \
|
||||
fopen-safer.c \
|
||||
fsusage.h \
|
||||
full-write.c \
|
||||
full-write.c full-write.h \
|
||||
getline.h \
|
||||
getpagesize.h \
|
||||
getstr.c getstr.h \
|
||||
gettime.c \
|
||||
gettext.h \
|
||||
getugroups.c \
|
||||
group-member.h \
|
||||
hard-locale.c hard-locale.h \
|
||||
@@ -55,7 +64,6 @@ libfetish_a_SOURCES = \
|
||||
memcoll.c memcoll.h \
|
||||
modechange.c modechange.h \
|
||||
mountlist.h \
|
||||
nanosleep.h \
|
||||
path-concat.c path-concat.h \
|
||||
pathmax.h \
|
||||
physmem.c physmem.h \
|
||||
@@ -68,10 +76,13 @@ libfetish_a_SOURCES = \
|
||||
same.c same.h \
|
||||
save-cwd.c save-cwd.h \
|
||||
savedir.c savedir.h \
|
||||
settime.c \
|
||||
sha.c sha.h \
|
||||
sig2str.h \
|
||||
stdio-safer.h \
|
||||
stripslash.c \
|
||||
strverscmp.h \
|
||||
timespec.h \
|
||||
unicodeio.c unicodeio.h \
|
||||
unistd-safer.h \
|
||||
userspec.c \
|
||||
@@ -80,10 +91,14 @@ libfetish_a_SOURCES = \
|
||||
xgetcwd.c \
|
||||
xgethostname.c \
|
||||
xmalloc.c \
|
||||
xmemcoll.c xmemcoll.h \
|
||||
xnanosleep.c xnanosleep.h \
|
||||
xreadlink.c xreadlink.h \
|
||||
xstrdup.c \
|
||||
xstrtod.c xstrtod.h \
|
||||
xstrtol.c xstrtol.h \
|
||||
xstrtoul.c \
|
||||
xstrtoimax.c \
|
||||
xstrtoumax.c \
|
||||
yesno.c
|
||||
|
||||
@@ -91,19 +106,21 @@ libfetish_a_LIBADD = @LIBOBJS@ @ALLOCA@
|
||||
libfetish_a_DEPENDENCIES = $(libfetish_a_LIBADD)
|
||||
|
||||
|
||||
BUILT_SOURCES = getdate.c lstat.c stat.c
|
||||
BUILT_SOURCES = getdate.c lstat.c stat.c unlocked-io.h
|
||||
MAINTAINERCLEANFILES = $(BUILT_SOURCES)
|
||||
DISTCLEANFILES = lstat.c stat.c
|
||||
DISTCLEANFILES = lstat.c stat.c unlocked-io.h
|
||||
|
||||
EXTRA_DIST = xstat.in config.charset ref-add.sin ref-del.sin gen-uio \
|
||||
fnmatch_loop.c
|
||||
|
||||
EXTRA_DIST = xstat.in config.charset ref-add.sin ref-del.sin
|
||||
lstat.c: xstat.in
|
||||
sed \
|
||||
-e '/@IGNORE@/d' \
|
||||
-e 's/@xstat@/lstat/g' \
|
||||
-e '/_LSTAT_ONLY@/d' \
|
||||
-e '/@BEGIN_STAT_ONLY@/,/@END_STAT_ONLY@/d' \
|
||||
$(srcdir)/xstat.in > $@-t
|
||||
mv $@-t $@
|
||||
$(srcdir)/xstat.in > t-$@
|
||||
mv t-$@ $@
|
||||
|
||||
stat.c: xstat.in
|
||||
sed \
|
||||
@@ -111,9 +128,8 @@ stat.c: xstat.in
|
||||
-e 's/@xstat@/stat/g' \
|
||||
-e '/_STAT_ONLY@/d' \
|
||||
-e '/@BEGIN_LSTAT_ONLY@/,/@END_LSTAT_ONLY@/d' \
|
||||
$(srcdir)/xstat.in > $@-t
|
||||
mv $@-t $@
|
||||
|
||||
$(srcdir)/xstat.in > t-$@
|
||||
mv t-$@ $@
|
||||
|
||||
# The following is needed in order to install a simple file in $(libdir)
|
||||
# which is shared with other installed packages. We use a list of referencing
|
||||
@@ -122,7 +138,7 @@ stat.c: xstat.in
|
||||
# On systems with glibc-2.1 or newer, the file is redundant, therefore we
|
||||
# avoid installing it.
|
||||
|
||||
all-local: charset.alias ref-add.sed ref-del.sed lstat.c stat.c
|
||||
all-local: charset.alias ref-add.sed ref-del.sed lstat.c stat.c unlocked-io.h
|
||||
|
||||
charset_alias = $(DESTDIR)$(libdir)/charset.alias
|
||||
charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
|
||||
@@ -158,7 +174,25 @@ charset.alias: config.charset
|
||||
|
||||
SUFFIXES = .sed .sin
|
||||
.sin.sed:
|
||||
sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > $@-t
|
||||
mv $@-t $@
|
||||
sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > t-$@
|
||||
mv t-$@ $@
|
||||
|
||||
CLEANFILES = charset.alias ref-add.sed ref-del.sed
|
||||
|
||||
###############################################
|
||||
|
||||
# FIXME: remove this dependency once automake handles it.
|
||||
# As of cvs automake of about 2002-01-13,
|
||||
# this dependency is necessary to avoid a build failure
|
||||
# when running `make check' before running `make all'.
|
||||
# Otherwise, unlocked-io.h is not built before it's needed.
|
||||
getdate$U.o: unlocked-io.h
|
||||
|
||||
# FIXME: CAUTION this list is a duplicate of one in ../Makefile.cfg.
|
||||
io_functions = \
|
||||
clearerr feof ferror fflush fgets fputc fputs \
|
||||
fread fwrite getc getchar putc putchar
|
||||
|
||||
unlocked-io.h: $(srcdir)/gen-uio Makefile.am
|
||||
srcdir=$(srcdir) $(SHELL) $(srcdir)/gen-uio $(io_functions) > $@t
|
||||
mv $@t $@
|
||||
|
||||
1106
lib/Makefile.in
1106
lib/Makefile.in
File diff suppressed because it is too large
Load Diff
62
lib/acl.c
Normal file
62
lib/acl.c
Normal file
@@ -0,0 +1,62 @@
|
||||
/* acl.c - access control lists
|
||||
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Written by Paul Eggert. */
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <sys/stat.h>
|
||||
#ifndef S_ISLNK
|
||||
# define S_ISLNK(Mode) 0
|
||||
#endif
|
||||
|
||||
#include "acl.h"
|
||||
|
||||
#include <errno.h>
|
||||
#ifndef ENOSYS
|
||||
# define ENOSYS (-1)
|
||||
#endif
|
||||
|
||||
#ifndef MIN_ACL_ENTRIES
|
||||
# define MIN_ACL_ENTRIES 4
|
||||
#endif
|
||||
|
||||
/* Return 1 if PATH has a nontrivial access control list, 0 if not,
|
||||
and -1 (setting errno) if an error is encountered. */
|
||||
|
||||
int
|
||||
file_has_acl (char const *path, struct stat const *pathstat)
|
||||
{
|
||||
/* FIXME: This implementation should work on recent-enough versions
|
||||
of HP-UX, Solaris, and Unixware, but it simply returns 0 with
|
||||
POSIX 1003.1e (draft 17 -- abandoned), AIX, GNU/Linux, Irix, and
|
||||
Tru64. Please see Samba's source/lib/sysacls.c file for
|
||||
fix-related ideas. */
|
||||
|
||||
#if HAVE_ACL && defined GETACLCNT
|
||||
if (! S_ISLNK (pathstat->st_mode))
|
||||
{
|
||||
int n = acl (path, GETACLCNT, 0, NULL);
|
||||
return n < 0 ? (errno == ENOSYS ? 0 : -1) : (MIN_ACL_ENTRIES < n);
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
28
lib/acl.h
Normal file
28
lib/acl.h
Normal file
@@ -0,0 +1,28 @@
|
||||
/* acl.c - access control lists
|
||||
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Written by Paul Eggert. */
|
||||
|
||||
#if HAVE_SYS_ACL_H && HAVE_ACL
|
||||
# include <sys/acl.h>
|
||||
#endif
|
||||
#if ! defined GETACLCNT && defined ACL_CNT
|
||||
# define GETACLCNT ACL_CNT
|
||||
#endif
|
||||
|
||||
int file_has_acl (char const *, struct stat const *);
|
||||
41
lib/addext.c
41
lib/addext.c
@@ -1,5 +1,5 @@
|
||||
/* addext.c -- add an extension to a file name
|
||||
Copyright 1990, 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
|
||||
Copyright 1990, 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -47,6 +47,11 @@
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include <errno.h>
|
||||
#ifndef errno
|
||||
extern int errno;
|
||||
#endif
|
||||
|
||||
#include "backupfile.h"
|
||||
#include "dirname.h"
|
||||
|
||||
@@ -57,26 +62,30 @@ void
|
||||
addext (char *filename, char const *ext, int e)
|
||||
{
|
||||
char *s = base_name (filename);
|
||||
size_t slen = base_len (s), extlen = strlen (ext);
|
||||
long slen_max = -1;
|
||||
size_t slen = base_len (s);
|
||||
size_t extlen = strlen (ext);
|
||||
size_t slen_max = HAVE_LONG_FILE_NAMES ? 255 : _POSIX_NAME_MAX;
|
||||
|
||||
#if HAVE_PATHCONF && defined _PC_NAME_MAX
|
||||
if (slen + extlen <= _POSIX_NAME_MAX && ! HAVE_DOS_FILE_NAMES)
|
||||
/* The file name is so short there's no need to call pathconf. */
|
||||
slen_max = _POSIX_NAME_MAX;
|
||||
else if (s == filename)
|
||||
slen_max = pathconf (".", _PC_NAME_MAX);
|
||||
else
|
||||
if (_POSIX_NAME_MAX < slen + extlen || HAVE_DOS_FILE_NAMES)
|
||||
{
|
||||
char c = *s;
|
||||
if (! ISSLASH (c))
|
||||
*s = 0;
|
||||
slen_max = pathconf (filename, _PC_NAME_MAX);
|
||||
*s = c;
|
||||
/* The new base name is long enough to require a pathconf check. */
|
||||
long name_max;
|
||||
errno = 0;
|
||||
if (s == filename)
|
||||
name_max = pathconf (".", _PC_NAME_MAX);
|
||||
else
|
||||
{
|
||||
char c = *s;
|
||||
if (! ISSLASH (c))
|
||||
*s = 0;
|
||||
name_max = pathconf (filename, _PC_NAME_MAX);
|
||||
*s = c;
|
||||
}
|
||||
if (0 <= name_max || errno == 0)
|
||||
slen_max = name_max == (long) (size_t) name_max ? name_max : -1;
|
||||
}
|
||||
#endif
|
||||
if (slen_max < 0)
|
||||
slen_max = HAVE_LONG_FILE_NAMES ? 255 : 14;
|
||||
|
||||
if (HAVE_DOS_FILE_NAMES && slen_max <= 12)
|
||||
{
|
||||
|
||||
@@ -169,7 +169,7 @@ static header *last_alloca_header = NULL; /* -> last alloca header. */
|
||||
implementations of C, for example under Gould's UTX/32. */
|
||||
|
||||
pointer
|
||||
alloca (unsigned size)
|
||||
alloca (size_t size)
|
||||
{
|
||||
auto char probe; /* Probes stack depth: */
|
||||
register char *depth = ADDRESS_FUNCTION (probe);
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
#include "error.h"
|
||||
#include "quotearg.h"
|
||||
#include "quote.h"
|
||||
#include "unlocked-io.h"
|
||||
|
||||
/* When reporting an invalid argument, show nonprinting characters
|
||||
by using the quoting style ARGMATCH_QUOTING_STYLE. Do not use
|
||||
@@ -160,8 +161,8 @@ argmatch_invalid (const char *context, const char *value, int problem)
|
||||
? _("invalid argument %s for %s")
|
||||
: _("ambiguous argument %s for %s"));
|
||||
|
||||
error (0, 0, format, quotearg_style (ARGMATCH_QUOTING_STYLE, value),
|
||||
quote (context));
|
||||
error (0, 0, format, quotearg_n_style (0, ARGMATCH_QUOTING_STYLE, value),
|
||||
quote_n (1, context));
|
||||
}
|
||||
|
||||
/* List the valid arguments for argmatch.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* argmatch.h -- definitions and prototypes for argmatch.c
|
||||
Copyright (C) 1990, 1998, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1990, 1998, 1999, 2001 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -123,7 +123,7 @@ const char *argmatch_to_argument
|
||||
const char *vallist, size_t valsize));
|
||||
|
||||
# define ARGMATCH_TO_ARGUMENT(Value, Arglist, Vallist) \
|
||||
argmatch_to_argument ((char const *) &(Value), (Arglist), \
|
||||
argmatch_to_argument ((Value), (Arglist), \
|
||||
(const char *) (Vallist), sizeof (*(Vallist)))
|
||||
|
||||
#endif /* ARGMATCH_H_ */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* backupfile.c -- make Emacs style backup file names
|
||||
Copyright 1990,91,92,93,94,95,96,97,98,99,2000, 2001 Free Software
|
||||
Copyright (C) 1990,91,92,93,94,95,96,97,98,99,2000, 2001, 2002 Free Software
|
||||
Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@@ -95,10 +95,9 @@ char *malloc ();
|
||||
- Its arg may be any int or unsigned int; it need not be an unsigned char.
|
||||
- It's guaranteed to evaluate its argument exactly once.
|
||||
- It's typically faster.
|
||||
Posix 1003.2-1992 section 2.5.2.1 page 50 lines 1556-1558 says that
|
||||
only '0' through '9' are digits. Prefer ISDIGIT to isdigit unless
|
||||
it's important to use the locale's definition of `digit' even when the
|
||||
host does not conform to Posix. */
|
||||
POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to
|
||||
ISDIGIT_LOCALE unless it's important to use the locale's definition
|
||||
of `digit' even when the host does not conform to POSIX. */
|
||||
#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9)
|
||||
|
||||
#if D_INO_IN_DIRENT
|
||||
|
||||
435
lib/c-stack.c
Normal file
435
lib/c-stack.c
Normal file
@@ -0,0 +1,435 @@
|
||||
/* Stack overflow handling.
|
||||
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Written by Paul Eggert. */
|
||||
|
||||
/* NOTES:
|
||||
|
||||
A program that uses alloca, dynamic arrays, or large local
|
||||
variables may extend the stack by more than a page at a time. If
|
||||
so, when the stack overflows the operating system may not detect
|
||||
the overflow until the program uses the array, and this module may
|
||||
incorrectly report a program error instead of a stack overflow.
|
||||
|
||||
To avoid this problem, allocate only small objects on the stack; a
|
||||
program should be OK if it limits single allocations to a page or
|
||||
less. Allocate larger arrays in static storage, or on the heap
|
||||
(e.g., with malloc). Yes, this is a pain, but we don't know of any
|
||||
better solution that is portable.
|
||||
|
||||
No attempt has been made to deal with multithreaded applications.
|
||||
|
||||
If ! HAVE_XSI_STACK_OVERFLOW_HEURISTIC, the current implementation
|
||||
assumes that, if the RLIMIT_STACK limit changes during execution,
|
||||
then c_stack_action is invoked immediately afterwards. */
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#ifndef __attribute__
|
||||
# if __GNUC__ < 3 || __STRICT_ANSI__
|
||||
# define __attribute__(x)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#include "gettext.h"
|
||||
#define _(msgid) gettext (msgid)
|
||||
|
||||
#include <errno.h>
|
||||
#ifndef ENOTSUP
|
||||
# define ENOTSUP EINVAL
|
||||
#endif
|
||||
#ifndef EOVERFLOW
|
||||
# define EOVERFLOW EINVAL
|
||||
#endif
|
||||
|
||||
#include <signal.h>
|
||||
#if ! HAVE_STACK_T && ! defined stack_t
|
||||
typedef struct sigaltstack stack_t;
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#if HAVE_SYS_RESOURCE_H
|
||||
/* Include sys/time.h here, because...
|
||||
SunOS-4.1.x <sys/resource.h> fails to include <sys/time.h>.
|
||||
This gives "incomplete type" errors for ru_utime and tu_stime. */
|
||||
# if HAVE_SYS_TIME_H
|
||||
# include <sys/time.h>
|
||||
# endif
|
||||
# include <sys/resource.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_UCONTEXT_H
|
||||
# include <ucontext.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
#ifndef STDERR_FILENO
|
||||
# define STDERR_FILENO 2
|
||||
#endif
|
||||
|
||||
#if DEBUG
|
||||
# include <stdio.h>
|
||||
#endif
|
||||
|
||||
#include "c-stack.h"
|
||||
#include "exitfail.h"
|
||||
|
||||
extern char *program_name;
|
||||
|
||||
/* The user-specified action to take when a SEGV-related program error
|
||||
or stack overflow occurs. */
|
||||
static void (* volatile segv_action) (int);
|
||||
|
||||
/* Translated messages for program errors and stack overflow. Do not
|
||||
translate them in the signal handler, since gettext is not
|
||||
async-signal-safe. */
|
||||
static char const * volatile program_error_message;
|
||||
static char const * volatile stack_overflow_message;
|
||||
|
||||
/* Output an error message, then exit with status EXIT_FAILURE if it
|
||||
appears to have been a stack overflow, or with a core dump
|
||||
otherwise. This function is async-signal-safe. */
|
||||
|
||||
static void die (int) __attribute__ ((noreturn));
|
||||
static void
|
||||
die (int signo)
|
||||
{
|
||||
char const *message =
|
||||
signo ? program_error_message : stack_overflow_message;
|
||||
segv_action (signo);
|
||||
write (STDERR_FILENO, program_name, strlen (program_name));
|
||||
write (STDERR_FILENO, ": ", 2);
|
||||
write (STDERR_FILENO, message, strlen (message));
|
||||
write (STDERR_FILENO, "\n", 1);
|
||||
if (! signo)
|
||||
_exit (exit_failure);
|
||||
kill (getpid (), signo);
|
||||
abort ();
|
||||
}
|
||||
|
||||
#if HAVE_SIGALTSTACK && HAVE_DECL_SIGALTSTACK
|
||||
|
||||
/* Direction of the C runtime stack. This function is
|
||||
async-signal-safe. */
|
||||
|
||||
# if STACK_DIRECTION
|
||||
# define find_stack_direction(ptr) STACK_DIRECTION
|
||||
# else
|
||||
static int
|
||||
find_stack_direction (char const *addr)
|
||||
{
|
||||
char dummy;
|
||||
return ! addr ? find_stack_direction (&dummy) : addr < &dummy ? 1 : -1;
|
||||
}
|
||||
# endif
|
||||
|
||||
# if HAVE_XSI_STACK_OVERFLOW_HEURISTIC
|
||||
# define get_stack_location(argv) 0
|
||||
# else
|
||||
|
||||
# if defined RLIMIT_STACK && defined _SC_PAGESIZE
|
||||
|
||||
/* Return the minimum machine address deducible from ARGV. This
|
||||
includes the addresses of all the strings that ARGV points at, as
|
||||
well as the address of ARGV itself. */
|
||||
|
||||
static char const *
|
||||
min_address_from_argv (char * const *argv)
|
||||
{
|
||||
char const *min = (char const *) argv;
|
||||
char const *p;
|
||||
while ((p = *argv++))
|
||||
if (p < min)
|
||||
min = p;
|
||||
return min;
|
||||
}
|
||||
|
||||
/* Return the maximum machine address deducible from ARGV. */
|
||||
|
||||
static char const *
|
||||
max_address_from_argv (char * const *argv)
|
||||
{
|
||||
char const *max = *argv;
|
||||
char const *max1;
|
||||
char const *p;
|
||||
while ((p = *argv++))
|
||||
if (max < p)
|
||||
max = p;
|
||||
max1 = (char const *) (argv + 1);
|
||||
return max && max1 < max ? max + strlen (max) + 1 : max1;
|
||||
}
|
||||
# endif
|
||||
|
||||
/* The base and size of the stack, determined at startup. */
|
||||
static char const * volatile stack_base;
|
||||
static size_t volatile stack_size;
|
||||
|
||||
/* Store the base and size of the stack into the static variables
|
||||
STACK_BASE and STACK_SIZE. The base is the numerically lowest
|
||||
address in the stack. Return -1 (setting errno) if this cannot be
|
||||
done. */
|
||||
|
||||
static int
|
||||
get_stack_location (char * const *argv)
|
||||
{
|
||||
# if ! (defined RLIMIT_STACK && defined _SC_PAGESIZE)
|
||||
|
||||
errno = ENOTSUP;
|
||||
return -1;
|
||||
|
||||
# else
|
||||
|
||||
struct rlimit rlimit;
|
||||
int r = getrlimit (RLIMIT_STACK, &rlimit);
|
||||
if (r == 0)
|
||||
{
|
||||
char const *base;
|
||||
size_t size = rlimit.rlim_cur;
|
||||
extern char **environ;
|
||||
size_t page_size = sysconf (_SC_PAGESIZE);
|
||||
int stack_direction = find_stack_direction (0);
|
||||
|
||||
# if HAVE_GETCONTEXT && HAVE_DECL_GETCONTEXT
|
||||
ucontext_t context;
|
||||
if (getcontext (&context) == 0)
|
||||
{
|
||||
base = context.uc_stack.ss_sp;
|
||||
if (stack_direction < 0)
|
||||
base -= size - context.uc_stack.ss_size;
|
||||
}
|
||||
else
|
||||
# endif
|
||||
{
|
||||
if (stack_direction < 0)
|
||||
{
|
||||
char const *a = max_address_from_argv (argv);
|
||||
char const *b = max_address_from_argv (environ);
|
||||
base = (a < b ? b : a) - size;
|
||||
base += - (size_t) base % page_size;
|
||||
}
|
||||
else
|
||||
{
|
||||
char const *a = min_address_from_argv (argv);
|
||||
char const *b = min_address_from_argv (environ);
|
||||
base = a < b ? a : b;
|
||||
base -= (size_t) base % page_size;
|
||||
}
|
||||
}
|
||||
|
||||
if (size != rlimit.rlim_cur
|
||||
|| rlimit.rlim_cur < 0
|
||||
|| base + size < base
|
||||
# ifdef RLIM_SAVED_CUR
|
||||
|| rlimit.rlim_cur == RLIM_SAVED_CUR
|
||||
# endif
|
||||
# ifdef RLIM_SAVED_MAX
|
||||
|| rlimit.rlim_cur == RLIM_SAVED_MAX
|
||||
# endif
|
||||
# ifdef RLIM_INFINITY
|
||||
|| rlimit.rlim_cur == RLIM_INFINITY
|
||||
# endif
|
||||
)
|
||||
{
|
||||
errno = EOVERFLOW;
|
||||
return -1;
|
||||
}
|
||||
|
||||
stack_base = base;
|
||||
stack_size = size;
|
||||
|
||||
# if DEBUG
|
||||
fprintf (stderr, "get_stack_location base=%p size=%lx\n",
|
||||
base, (unsigned long) size);
|
||||
# endif
|
||||
}
|
||||
|
||||
return r;
|
||||
|
||||
# endif
|
||||
}
|
||||
# endif
|
||||
|
||||
/* Storage for the alternate signal stack. */
|
||||
static union
|
||||
{
|
||||
char buffer[SIGSTKSZ];
|
||||
|
||||
/* These other members are for proper alignment. There's no
|
||||
standard way to guarantee stack alignment, but this seems enough
|
||||
in practice. */
|
||||
long double ld;
|
||||
long l;
|
||||
void *p;
|
||||
} alternate_signal_stack;
|
||||
|
||||
# if defined SA_ONSTACK && defined SA_SIGINFO && defined _SC_PAGESIZE
|
||||
|
||||
/* Handle a segmentation violation and exit. This function is
|
||||
async-signal-safe. */
|
||||
|
||||
static void segv_handler (int, siginfo_t *, void *) __attribute__((noreturn));
|
||||
static void
|
||||
segv_handler (int signo, siginfo_t *info,
|
||||
void *context __attribute__ ((unused)))
|
||||
{
|
||||
/* Clear SIGNO if it seems to have been a stack overflow. */
|
||||
if (0 < info->si_code)
|
||||
{
|
||||
/* If the faulting address is within the stack, or within one
|
||||
page of the stack end, assume that it is a stack
|
||||
overflow. */
|
||||
# if HAVE_XSI_STACK_OVERFLOW_HEURISTIC
|
||||
ucontext_t const *user_context = context;
|
||||
char const *stack_base = user_context->uc_stack.ss_sp;
|
||||
size_t stack_size = user_context->uc_stack.ss_size;
|
||||
# endif
|
||||
char const *faulting_address = info->si_addr;
|
||||
size_t s = faulting_address - stack_base;
|
||||
size_t page_size = sysconf (_SC_PAGESIZE);
|
||||
if (find_stack_direction (0) < 0)
|
||||
s += page_size;
|
||||
if (s < stack_size + page_size)
|
||||
signo = 0;
|
||||
|
||||
# if DEBUG
|
||||
{
|
||||
char buf[1024];
|
||||
sprintf (buf,
|
||||
"segv_handler fault=%p base=%p size=%lx page=%lx signo=%d\n",
|
||||
faulting_address, stack_base, (unsigned long) stack_size,
|
||||
(unsigned long) page_size, signo);
|
||||
write (STDERR_FILENO, buf, strlen (buf));
|
||||
}
|
||||
# endif
|
||||
}
|
||||
|
||||
die (signo);
|
||||
}
|
||||
# endif
|
||||
|
||||
static void
|
||||
null_action (int signo __attribute__ ((unused)))
|
||||
{
|
||||
}
|
||||
|
||||
/* Assuming ARGV is the argument vector of `main', set up ACTION so
|
||||
that it is invoked on C stack overflow. Return -1 (setting errno)
|
||||
if this cannot be done.
|
||||
|
||||
When ACTION is called, it is passed an argument equal to SIGSEGV
|
||||
for a segmentation violation that does not appear related to stack
|
||||
overflow, and is passed zero otherwise.
|
||||
|
||||
A null ACTION acts like an action that does nothing.
|
||||
|
||||
ACTION must be async-signal-safe. ACTION together with its callees
|
||||
must not require more than SIGSTKSZ bytes of stack space. */
|
||||
|
||||
int
|
||||
c_stack_action (char * const *argv __attribute__ ((unused)),
|
||||
void (*action) (int))
|
||||
{
|
||||
int r = get_stack_location (argv);
|
||||
if (r != 0)
|
||||
return r;
|
||||
|
||||
{
|
||||
stack_t st;
|
||||
st.ss_flags = 0;
|
||||
st.ss_sp = alternate_signal_stack.buffer;
|
||||
st.ss_size = sizeof alternate_signal_stack.buffer;
|
||||
r = sigaltstack (&st, 0);
|
||||
if (r != 0)
|
||||
return r;
|
||||
}
|
||||
|
||||
segv_action = action ? action : null_action;
|
||||
program_error_message = _("program error");
|
||||
stack_overflow_message = _("stack overflow");
|
||||
|
||||
{
|
||||
# if ! (defined SA_ONSTACK && defined SA_SIGINFO && defined _SC_PAGESIZE)
|
||||
return signal (SIGSEGV, die) == SIG_ERR ? -1 : 0;
|
||||
# else
|
||||
struct sigaction act;
|
||||
sigemptyset (&act.sa_mask);
|
||||
|
||||
/* POSIX 1003.1-2001 says SA_RESETHAND implies SA_NODEFER, but
|
||||
this is not true on Solaris 8 at least. It doesn't hurt to use
|
||||
SA_NODEFER here, so leave it in. */
|
||||
act.sa_flags = SA_NODEFER | SA_ONSTACK | SA_RESETHAND | SA_SIGINFO;
|
||||
|
||||
act.sa_sigaction = segv_handler;
|
||||
|
||||
return sigaction (SIGSEGV, &act, 0);
|
||||
# endif
|
||||
}
|
||||
}
|
||||
|
||||
#else /* ! (HAVE_SIGALTSTACK && HAVE_DECL_SIGALTSTACK) */
|
||||
|
||||
int
|
||||
c_stack_action (char * const *argv __attribute__ ((unused)),
|
||||
void (*action) (int) __attribute__ ((unused)))
|
||||
{
|
||||
errno = ENOTSUP;
|
||||
return -1;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#if DEBUG
|
||||
|
||||
int volatile exit_failure;
|
||||
|
||||
static long
|
||||
recurse (char *p)
|
||||
{
|
||||
char array[500];
|
||||
array[0] = 1;
|
||||
return *p + recurse (array);
|
||||
}
|
||||
|
||||
char *program_name;
|
||||
|
||||
int
|
||||
main (int argc __attribute__ ((unused)), char **argv)
|
||||
{
|
||||
program_name = argv[0];
|
||||
fprintf (stderr, "The last line of output should be \"stack overflow\".\n");
|
||||
if (c_stack_action (argv, 0) == 0)
|
||||
return recurse ("\1");
|
||||
perror ("c_stack_action");
|
||||
return 1;
|
||||
}
|
||||
|
||||
#endif /* DEBUG */
|
||||
|
||||
/*
|
||||
Local Variables:
|
||||
compile-command: "gcc -DDEBUG -DHAVE_CONFIG_H -I.. -g -O -Wall -W c-stack.c"
|
||||
End:
|
||||
*/
|
||||
19
lib/c-stack.h
Normal file
19
lib/c-stack.h
Normal file
@@ -0,0 +1,19 @@
|
||||
/* Stack overflow handling.
|
||||
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
int c_stack_action (char * const *, void (*) (int));
|
||||
@@ -1,5 +1,5 @@
|
||||
/* closeout.c - close standard output
|
||||
Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -43,6 +43,7 @@ extern int errno;
|
||||
#include "closeout.h"
|
||||
#include "error.h"
|
||||
#include "quotearg.h"
|
||||
#include "unlocked-io.h"
|
||||
#include "__fpending.h"
|
||||
|
||||
static int default_exit_status = EXIT_FAILURE;
|
||||
@@ -93,7 +94,9 @@ close_stdout_status (int status)
|
||||
{
|
||||
int e = ferror (stdout) ? 0 : -1;
|
||||
|
||||
if (__fpending (stdout) == 0)
|
||||
/* If the stream's error bit is clear and there is nothing to flush,
|
||||
then return right away. */
|
||||
if (e && __fpending (stdout) == 0)
|
||||
return;
|
||||
|
||||
if (fclose (stdout) != 0)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#! /bin/sh
|
||||
# Output a system dependent table of character encoding aliases.
|
||||
#
|
||||
# Copyright (C) 2000-2001 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2000-2002 Free Software Foundation, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU Library General Public License as published
|
||||
@@ -80,10 +80,10 @@
|
||||
# EUC-KR glibc aix hpux irix osf solaris freebsd yes
|
||||
# EUC-TW glibc aix hpux irix osf solaris
|
||||
# BIG5 glibc aix hpux osf solaris freebsd yes
|
||||
# BIG5HKSCS glibc
|
||||
# BIG5-HKSCS glibc
|
||||
# GBK aix osf win32 dos
|
||||
# GB18030 glibc
|
||||
# SJIS hpux osf solaris freebsd
|
||||
# SHIFT_JIS hpux osf solaris freebsd yes
|
||||
# JOHAB glibc win32
|
||||
# TIS-620 glibc aix hpux osf solaris
|
||||
# VISCII glibc yes
|
||||
@@ -174,7 +174,7 @@ case "$os" in
|
||||
echo "eucTW EUC-TW"
|
||||
echo "hp15CN GB2312"
|
||||
#echo "ccdc ?" # what is this?
|
||||
echo "SJIS SJIS"
|
||||
echo "SJIS SHIFT_JIS"
|
||||
echo "utf8 UTF-8"
|
||||
;;
|
||||
irix*)
|
||||
@@ -209,7 +209,7 @@ case "$os" in
|
||||
echo "GBK GBK"
|
||||
echo "KSC5601 CP949"
|
||||
echo "sdeckanji EUC-JP"
|
||||
echo "SJIS SJIS"
|
||||
echo "SJIS SHIFT_JIS"
|
||||
echo "TACTIS TIS-620"
|
||||
echo "UTF-8 UTF-8"
|
||||
;;
|
||||
@@ -230,15 +230,17 @@ case "$os" in
|
||||
echo "cns11643 EUC-TW"
|
||||
echo "5601 EUC-KR"
|
||||
echo "eucJP EUC-JP"
|
||||
echo "PCK SJIS"
|
||||
echo "PCK SHIFT_JIS"
|
||||
echo "TIS620.2533 TIS-620"
|
||||
#echo "sun_eu_greek ?" # what is this?
|
||||
echo "UTF-8 UTF-8"
|
||||
;;
|
||||
freebsd*)
|
||||
freebsd* | os2*)
|
||||
# FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
|
||||
# localcharset.c falls back to using the full locale name
|
||||
# from the environment variables.
|
||||
# Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just
|
||||
# reuse FreeBSD's locale data for OS/2.
|
||||
echo "C ASCII"
|
||||
echo "US-ASCII ASCII"
|
||||
for l in la_LN lt_LN; do
|
||||
@@ -266,8 +268,8 @@ case "$os" in
|
||||
echo "zh_TW.Big5 BIG5"
|
||||
echo "zh_CN.EUC GB2312"
|
||||
echo "ja_JP.EUC EUC-JP"
|
||||
echo "ja_JP.SJIS SJIS"
|
||||
echo "ja_JP.Shift_JIS SJIS"
|
||||
echo "ja_JP.SJIS SHIFT_JIS"
|
||||
echo "ja_JP.Shift_JIS SHIFT_JIS"
|
||||
echo "ko_KR.EUC EUC-KR"
|
||||
;;
|
||||
beos*)
|
||||
|
||||
30
lib/dirfd.c
Normal file
30
lib/dirfd.c
Normal file
@@ -0,0 +1,30 @@
|
||||
/* dirfd.c -- return the file descriptor associated with an open DIR*
|
||||
Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Written by Jim Meyering. */
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include "dirfd.h"
|
||||
|
||||
int
|
||||
dirfd (DIR const *dir_p)
|
||||
{
|
||||
return DIR_TO_FD (dir_p);
|
||||
}
|
||||
27
lib/dirfd.h
Normal file
27
lib/dirfd.h
Normal file
@@ -0,0 +1,27 @@
|
||||
#if HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#if HAVE_DIRENT_H
|
||||
# include <dirent.h>
|
||||
#else /* not HAVE_DIRENT_H */
|
||||
# define dirent direct
|
||||
# if HAVE_SYS_NDIR_H
|
||||
# include <sys/ndir.h>
|
||||
# endif /* HAVE_SYS_NDIR_H */
|
||||
# if HAVE_SYS_DIR_H
|
||||
# include <sys/dir.h>
|
||||
# endif /* HAVE_SYS_DIR_H */
|
||||
# if HAVE_NDIR_H
|
||||
# include <ndir.h>
|
||||
# endif /* HAVE_NDIR_H */
|
||||
#endif /* HAVE_DIRENT_H */
|
||||
|
||||
#ifndef HAVE_DECL_DIRFD
|
||||
"this configure-time declaration test was not run"
|
||||
#endif
|
||||
#if !HAVE_DECL_DIRFD && !defined dirfd
|
||||
int dirfd (DIR const *);
|
||||
#endif
|
||||
273
lib/error.c
273
lib/error.c
@@ -1,23 +1,22 @@
|
||||
/* Error handler for noninteractive utilities
|
||||
Copyright (C) 1990-1998, 2000 Free Software Foundation, Inc.
|
||||
|
||||
Copyright (C) 1990-1998, 2000, 2001 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library. Its master source is NOT part of
|
||||
the C library, however. The master source lives in /gd/gnu/lib.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
/* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */
|
||||
|
||||
@@ -29,6 +28,10 @@
|
||||
#if HAVE_LIBINTL_H
|
||||
# include <libintl.h>
|
||||
#endif
|
||||
#ifdef _LIBC
|
||||
# include <wchar.h>
|
||||
# define mbsrtowcs __mbsrtowcs
|
||||
#endif
|
||||
|
||||
#if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC
|
||||
# if __STDC__
|
||||
@@ -51,13 +54,7 @@ void exit ();
|
||||
#endif
|
||||
|
||||
#include "error.h"
|
||||
|
||||
#ifndef HAVE_DECL_STRERROR_R
|
||||
"this configure-time declaration test was not run"
|
||||
#endif
|
||||
#if !HAVE_DECL_STRERROR_R
|
||||
char *strerror_r ();
|
||||
#endif
|
||||
#include "unlocked-io.h"
|
||||
|
||||
#ifndef _
|
||||
# define _(String) String
|
||||
@@ -83,6 +80,12 @@ unsigned int error_message_count;
|
||||
|
||||
/* In GNU libc we want do not want to use the common name `error' directly.
|
||||
Instead make it a weak alias. */
|
||||
extern void __error (int status, int errnum, const char *message, ...)
|
||||
__attribute__ ((__format__ (__printf__, 3, 4)));
|
||||
extern void __error_at_line (int status, int errnum, const char *file_name,
|
||||
unsigned int line_number, const char *message,
|
||||
...)
|
||||
__attribute__ ((__format__ (__printf__, 5, 6)));;
|
||||
# define error __error
|
||||
# define error_at_line __error_at_line
|
||||
|
||||
@@ -93,21 +96,30 @@ unsigned int error_message_count;
|
||||
|
||||
#else /* not _LIBC */
|
||||
|
||||
# if !HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P
|
||||
# ifndef HAVE_DECL_STRERROR_R
|
||||
"this configure-time declaration test was not run"
|
||||
# endif
|
||||
char *strerror_r ();
|
||||
# endif
|
||||
|
||||
/* The calling program should define program_name and set it to the
|
||||
name of the executing program. */
|
||||
extern char *program_name;
|
||||
|
||||
# ifdef HAVE_STRERROR_R
|
||||
# if HAVE_STRERROR_R || defined strerror_r
|
||||
# define __strerror_r strerror_r
|
||||
# else
|
||||
# if HAVE_STRERROR
|
||||
# ifndef strerror /* On some systems, strerror is a macro */
|
||||
# ifndef HAVE_DECL_STRERROR
|
||||
"this configure-time declaration test was not run"
|
||||
# endif
|
||||
# if !HAVE_DECL_STRERROR
|
||||
char *strerror ();
|
||||
# endif
|
||||
# else
|
||||
static char *
|
||||
private_strerror (errnum)
|
||||
int errnum;
|
||||
private_strerror (int errnum)
|
||||
{
|
||||
extern char *sys_errlist[];
|
||||
extern int sys_nerr;
|
||||
@@ -118,15 +130,118 @@ private_strerror (errnum)
|
||||
}
|
||||
# define strerror private_strerror
|
||||
# endif /* HAVE_STRERROR */
|
||||
# endif /* HAVE_STRERROR_R */
|
||||
# endif /* HAVE_STRERROR_R || defined strerror_r */
|
||||
#endif /* not _LIBC */
|
||||
|
||||
static void
|
||||
print_errno_message (int errnum)
|
||||
{
|
||||
char const *s;
|
||||
|
||||
#if defined HAVE_STRERROR_R || _LIBC
|
||||
char errbuf[1024];
|
||||
# if STRERROR_R_CHAR_P || _LIBC
|
||||
s = __strerror_r (errnum, errbuf, sizeof errbuf);
|
||||
# else
|
||||
if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0)
|
||||
s = errbuf;
|
||||
else
|
||||
s = 0;
|
||||
# endif
|
||||
#else
|
||||
s = strerror (errnum);
|
||||
#endif
|
||||
|
||||
#if !_LIBC
|
||||
if (! s)
|
||||
s = _("Unknown system error");
|
||||
#endif
|
||||
|
||||
#if _LIBC && USE_IN_LIBIO
|
||||
if (_IO_fwide (stderr, 0) > 0)
|
||||
{
|
||||
__fwprintf (stderr, L": %s", s);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
fprintf (stderr, ": %s", s);
|
||||
}
|
||||
|
||||
#ifdef VA_START
|
||||
static void
|
||||
error_tail (int status, int errnum, const char *message, va_list args)
|
||||
{
|
||||
# if HAVE_VPRINTF || _LIBC
|
||||
# if _LIBC && USE_IN_LIBIO
|
||||
if (_IO_fwide (stderr, 0) > 0)
|
||||
{
|
||||
# define ALLOCA_LIMIT 2000
|
||||
size_t len = strlen (message) + 1;
|
||||
wchar_t *wmessage = NULL;
|
||||
mbstate_t st;
|
||||
size_t res;
|
||||
const char *tmp;
|
||||
|
||||
do
|
||||
{
|
||||
if (len < ALLOCA_LIMIT)
|
||||
wmessage = (wchar_t *) alloca (len * sizeof (wchar_t));
|
||||
else
|
||||
{
|
||||
if (wmessage != NULL && len / 2 < ALLOCA_LIMIT)
|
||||
wmessage = NULL;
|
||||
|
||||
wmessage = (wchar_t *) realloc (wmessage,
|
||||
len * sizeof (wchar_t));
|
||||
|
||||
if (wmessage == NULL)
|
||||
{
|
||||
fputws_unlocked (L"out of memory\n", stderr);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
memset (&st, '\0', sizeof (st));
|
||||
tmp =message;
|
||||
}
|
||||
while ((res = mbsrtowcs (wmessage, &tmp, len, &st)) == len);
|
||||
|
||||
if (res == (size_t) -1)
|
||||
/* The string cannot be converted. */
|
||||
wmessage = (wchar_t *) L"???";
|
||||
|
||||
__vfwprintf (stderr, wmessage, args);
|
||||
}
|
||||
else
|
||||
# endif
|
||||
vfprintf (stderr, message, args);
|
||||
# else
|
||||
_doprnt (message, args, stderr);
|
||||
# endif
|
||||
va_end (args);
|
||||
|
||||
++error_message_count;
|
||||
if (errnum)
|
||||
print_errno_message (errnum);
|
||||
# if _LIBC && USE_IN_LIBIO
|
||||
if (_IO_fwide (stderr, 0) > 0)
|
||||
putwc (L'\n', stderr);
|
||||
else
|
||||
# endif
|
||||
putc ('\n', stderr);
|
||||
fflush (stderr);
|
||||
if (status)
|
||||
exit (status);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* Print the program name and error message MESSAGE, which is a printf-style
|
||||
format string with optional args.
|
||||
If ERRNUM is nonzero, print its corresponding system error message.
|
||||
Exit with status STATUS if it is nonzero. */
|
||||
/* VARARGS */
|
||||
|
||||
void
|
||||
#if defined VA_START && __STDC__
|
||||
error (int status, int errnum, const char *message, ...)
|
||||
@@ -142,47 +257,48 @@ error (status, errnum, message, va_alist)
|
||||
va_list args;
|
||||
#endif
|
||||
|
||||
fflush (stdout);
|
||||
#ifdef _LIBC
|
||||
# ifdef USE_IN_LIBIO
|
||||
_IO_flockfile (stderr);
|
||||
# else
|
||||
__flockfile (stderr);
|
||||
# endif
|
||||
#endif
|
||||
if (error_print_progname)
|
||||
(*error_print_progname) ();
|
||||
else
|
||||
{
|
||||
fflush (stdout);
|
||||
fprintf (stderr, "%s: ", program_name);
|
||||
#if _LIBC && USE_IN_LIBIO
|
||||
if (_IO_fwide (stderr, 0) > 0)
|
||||
__fwprintf (stderr, L"%s: ", program_name);
|
||||
else
|
||||
#endif
|
||||
fprintf (stderr, "%s: ", program_name);
|
||||
}
|
||||
|
||||
#ifdef VA_START
|
||||
VA_START (args, message);
|
||||
# if HAVE_VPRINTF || _LIBC
|
||||
vfprintf (stderr, message, args);
|
||||
# else
|
||||
_doprnt (message, args, stderr);
|
||||
# endif
|
||||
va_end (args);
|
||||
error_tail (status, errnum, message, args);
|
||||
#else
|
||||
fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8);
|
||||
#endif
|
||||
|
||||
++error_message_count;
|
||||
if (errnum)
|
||||
{
|
||||
#if defined HAVE_STRERROR_R || _LIBC
|
||||
char errbuf[1024];
|
||||
# if HAVE_WORKING_STRERROR_R || _LIBC
|
||||
fprintf (stderr, ": %s", __strerror_r (errnum, errbuf, sizeof errbuf));
|
||||
# else
|
||||
/* Don't use __strerror_r's return value because on some systems
|
||||
(at least DEC UNIX 4.0[A-D]) strerror_r returns `int'. */
|
||||
__strerror_r (errnum, errbuf, sizeof errbuf);
|
||||
fprintf (stderr, ": %s", errbuf);
|
||||
# endif
|
||||
#else
|
||||
fprintf (stderr, ": %s", strerror (errnum));
|
||||
#endif
|
||||
}
|
||||
print_errno_message (errnum);
|
||||
putc ('\n', stderr);
|
||||
fflush (stderr);
|
||||
if (status)
|
||||
exit (status);
|
||||
#endif
|
||||
|
||||
#ifdef _LIBC
|
||||
# ifdef USE_IN_LIBIO
|
||||
_IO_funlockfile (stderr);
|
||||
# else
|
||||
__funlockfile (stderr);
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Sometimes we want to have at most one error per line. This
|
||||
@@ -212,8 +328,9 @@ error_at_line (status, errnum, file_name, line_number, message, va_alist)
|
||||
static const char *old_file_name;
|
||||
static unsigned int old_line_number;
|
||||
|
||||
if (old_line_number == line_number &&
|
||||
(file_name == old_file_name || !strcmp (old_file_name, file_name)))
|
||||
if (old_line_number == line_number
|
||||
&& (file_name == old_file_name
|
||||
|| strcmp (old_file_name, file_name) == 0))
|
||||
/* Simply return and print nothing. */
|
||||
return;
|
||||
|
||||
@@ -221,50 +338,58 @@ error_at_line (status, errnum, file_name, line_number, message, va_alist)
|
||||
old_line_number = line_number;
|
||||
}
|
||||
|
||||
fflush (stdout);
|
||||
#ifdef _LIBC
|
||||
# ifdef USE_IN_LIBIO
|
||||
_IO_flockfile (stderr);
|
||||
# else
|
||||
__flockfile (stderr);
|
||||
# endif
|
||||
#endif
|
||||
if (error_print_progname)
|
||||
(*error_print_progname) ();
|
||||
else
|
||||
{
|
||||
fflush (stdout);
|
||||
fprintf (stderr, "%s:", program_name);
|
||||
#if _LIBC && USE_IN_LIBIO
|
||||
if (_IO_fwide (stderr, 0) > 0)
|
||||
__fwprintf (stderr, L"%s: ", program_name);
|
||||
else
|
||||
#endif
|
||||
fprintf (stderr, "%s:", program_name);
|
||||
}
|
||||
|
||||
if (file_name != NULL)
|
||||
fprintf (stderr, "%s:%d: ", file_name, line_number);
|
||||
{
|
||||
#if _LIBC && USE_IN_LIBIO
|
||||
if (_IO_fwide (stderr, 0) > 0)
|
||||
__fwprintf (stderr, L"%s:%d: ", file_name, line_number);
|
||||
else
|
||||
#endif
|
||||
fprintf (stderr, "%s:%d: ", file_name, line_number);
|
||||
}
|
||||
|
||||
#ifdef VA_START
|
||||
VA_START (args, message);
|
||||
# if HAVE_VPRINTF || _LIBC
|
||||
vfprintf (stderr, message, args);
|
||||
# else
|
||||
_doprnt (message, args, stderr);
|
||||
# endif
|
||||
va_end (args);
|
||||
error_tail (status, errnum, message, args);
|
||||
#else
|
||||
fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8);
|
||||
#endif
|
||||
|
||||
++error_message_count;
|
||||
if (errnum)
|
||||
{
|
||||
#if defined HAVE_STRERROR_R || _LIBC
|
||||
char errbuf[1024];
|
||||
# if HAVE_WORKING_STRERROR_R || _LIBC
|
||||
fprintf (stderr, ": %s", __strerror_r (errnum, errbuf, sizeof errbuf));
|
||||
# else
|
||||
/* Don't use __strerror_r's return value because on some systems
|
||||
(at least DEC UNIX 4.0[A-D]) strerror_r returns `int'. */
|
||||
__strerror_r (errnum, errbuf, sizeof errbuf);
|
||||
fprintf (stderr, ": %s", errbuf);
|
||||
# endif
|
||||
#else
|
||||
fprintf (stderr, ": %s", strerror (errnum));
|
||||
#endif
|
||||
}
|
||||
print_errno_message (errnum);
|
||||
putc ('\n', stderr);
|
||||
fflush (stderr);
|
||||
if (status)
|
||||
exit (status);
|
||||
#endif
|
||||
|
||||
#ifdef _LIBC
|
||||
# ifdef USE_IN_LIBIO
|
||||
_IO_funlockfile (stderr);
|
||||
# else
|
||||
__funlockfile (stderr);
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef _LIBC
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
#ifndef __attribute__
|
||||
/* This feature is available in gcc versions 2.5 and later. */
|
||||
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
|
||||
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
|
||||
# define __attribute__(Spec) /* empty */
|
||||
# endif
|
||||
/* The __-protected variants of `format' and `printf' attributes
|
||||
|
||||
224
lib/exclude.c
224
lib/exclude.c
@@ -1,5 +1,7 @@
|
||||
/* exclude.c -- exclude file names
|
||||
Copyright 1992, 1993, 1994, 1997, 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
Copyright 1992, 1993, 1994, 1997, 1999, 2000, 2001 Free Software
|
||||
Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -22,73 +24,206 @@
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_STDBOOL_H
|
||||
# include <stdbool.h>
|
||||
#else
|
||||
typedef enum {false = 0, true = 1} bool;
|
||||
#endif
|
||||
|
||||
#include <errno.h>
|
||||
#ifndef errno
|
||||
extern int errno;
|
||||
#endif
|
||||
#include <exclude.h>
|
||||
#include <fnmatch.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#if HAVE_SYS_TYPES_H
|
||||
# include <sys/types.h>
|
||||
#endif
|
||||
#if HAVE_STDLIB_H
|
||||
# include <stdlib.h>
|
||||
#endif
|
||||
#if HAVE_STRING_H
|
||||
# include <string.h>
|
||||
#endif
|
||||
#if HAVE_STRINGS_H
|
||||
# include <strings.h>
|
||||
#endif
|
||||
#if HAVE_INTTYPES_H
|
||||
# include <inttypes.h>
|
||||
#else
|
||||
# if HAVE_STDINT_H
|
||||
# include <stdint.h>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
void *xmalloc PARAMS ((size_t));
|
||||
void *xrealloc PARAMS ((void *, size_t));
|
||||
#include "exclude.h"
|
||||
#include "fnmatch.h"
|
||||
#include "unlocked-io.h"
|
||||
#include "xalloc.h"
|
||||
|
||||
/* Keep track of excluded file name patterns. */
|
||||
#ifndef SIZE_MAX
|
||||
# define SIZE_MAX ((size_t) -1)
|
||||
#endif
|
||||
|
||||
/* Verify a requirement at compile-time (unlike assert, which is runtime). */
|
||||
#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; }
|
||||
|
||||
verify (EXCLUDE_macros_do_not_collide_with_FNM_macros,
|
||||
(((EXCLUDE_ANCHORED | EXCLUDE_INCLUDE | EXCLUDE_WILDCARDS)
|
||||
& (FNM_FILE_NAME | FNM_NOESCAPE | FNM_PERIOD | FNM_LEADING_DIR
|
||||
| FNM_CASEFOLD))
|
||||
== 0));
|
||||
|
||||
/* An exclude pattern-options pair. The options are fnmatch options
|
||||
ORed with EXCLUDE_* options. */
|
||||
|
||||
struct patopts
|
||||
{
|
||||
char const *pattern;
|
||||
int options;
|
||||
};
|
||||
|
||||
/* An exclude list, of pattern-options pairs. */
|
||||
|
||||
struct exclude
|
||||
{
|
||||
char const **exclude;
|
||||
int exclude_alloc;
|
||||
int exclude_count;
|
||||
struct patopts *exclude;
|
||||
size_t exclude_alloc;
|
||||
size_t exclude_count;
|
||||
};
|
||||
|
||||
/* Return a newly allocated and empty exclude list. */
|
||||
|
||||
struct exclude *
|
||||
new_exclude (void)
|
||||
{
|
||||
struct exclude *ex = (struct exclude *) xmalloc (sizeof (struct exclude));
|
||||
struct exclude *ex = (struct exclude *) xmalloc (sizeof *ex);
|
||||
ex->exclude_count = 0;
|
||||
ex->exclude_alloc = 64;
|
||||
ex->exclude = (char const **) xmalloc (ex->exclude_alloc * sizeof (char *));
|
||||
ex->exclude_alloc = (1 << 6); /* This must be a power of 2. */
|
||||
ex->exclude = (struct patopts *) xmalloc (ex->exclude_alloc
|
||||
* sizeof ex->exclude[0]);
|
||||
return ex;
|
||||
}
|
||||
|
||||
int
|
||||
excluded_filename (struct exclude const *ex, char const *f, int options)
|
||||
{
|
||||
char const * const *exclude = ex->exclude;
|
||||
int exclude_count = ex->exclude_count;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < exclude_count; i++)
|
||||
if (fnmatch (exclude[i], f, options) == 0)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
/* Free the storage associated with an exclude list. */
|
||||
|
||||
void
|
||||
add_exclude (struct exclude *ex, char const *pattern)
|
||||
free_exclude (struct exclude *ex)
|
||||
{
|
||||
if (ex->exclude_alloc <= ex->exclude_count)
|
||||
ex->exclude = (char const **) xrealloc (ex->exclude,
|
||||
((ex->exclude_alloc *= 2)
|
||||
* sizeof (char *)));
|
||||
|
||||
ex->exclude[ex->exclude_count++] = pattern;
|
||||
free (ex->exclude);
|
||||
free (ex);
|
||||
}
|
||||
|
||||
int
|
||||
add_exclude_file (void (*add_func) PARAMS ((struct exclude *, char const *)),
|
||||
struct exclude *ex, char const *filename, char line_end)
|
||||
/* Return zero if PATTERN matches F, obeying OPTIONS, except that
|
||||
(unlike fnmatch) wildcards are disabled in PATTERN. */
|
||||
|
||||
static int
|
||||
fnmatch_no_wildcards (char const *pattern, char const *f, int options)
|
||||
{
|
||||
int use_stdin = filename[0] == '-' && !filename[1];
|
||||
if (! (options & FNM_LEADING_DIR))
|
||||
return ((options & FNM_CASEFOLD)
|
||||
? strcasecmp (pattern, f)
|
||||
: strcmp (pattern, f));
|
||||
else
|
||||
{
|
||||
size_t patlen = strlen (pattern);
|
||||
int r = ((options & FNM_CASEFOLD)
|
||||
? strncasecmp (pattern, f, patlen)
|
||||
: strncmp (pattern, f, patlen));
|
||||
if (! r)
|
||||
{
|
||||
r = f[patlen];
|
||||
if (r == '/')
|
||||
r = 0;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
/* Return true if EX excludes F. */
|
||||
|
||||
bool
|
||||
excluded_filename (struct exclude const *ex, char const *f)
|
||||
{
|
||||
size_t exclude_count = ex->exclude_count;
|
||||
|
||||
/* If no options are given, the default is to include. */
|
||||
if (exclude_count == 0)
|
||||
return false;
|
||||
else
|
||||
{
|
||||
struct patopts const *exclude = ex->exclude;
|
||||
size_t i;
|
||||
|
||||
/* Otherwise, the default is the opposite of the first option. */
|
||||
bool excluded = !! (exclude[0].options & EXCLUDE_INCLUDE);
|
||||
|
||||
/* Scan through the options, seeing whether they change F from
|
||||
excluded to included or vice versa. */
|
||||
for (i = 0; i < exclude_count; i++)
|
||||
{
|
||||
char const *pattern = exclude[i].pattern;
|
||||
int options = exclude[i].options;
|
||||
if (excluded == !! (options & EXCLUDE_INCLUDE))
|
||||
{
|
||||
int (*matcher) PARAMS ((char const *, char const *, int)) =
|
||||
(options & EXCLUDE_WILDCARDS
|
||||
? fnmatch
|
||||
: fnmatch_no_wildcards);
|
||||
bool matched = ((*matcher) (pattern, f, options) == 0);
|
||||
char const *p;
|
||||
|
||||
if (! (options & EXCLUDE_ANCHORED))
|
||||
for (p = f; *p && ! matched; p++)
|
||||
if (*p == '/' && p[1] != '/')
|
||||
matched = ((*matcher) (pattern, p + 1, options) == 0);
|
||||
|
||||
excluded ^= matched;
|
||||
}
|
||||
}
|
||||
|
||||
return excluded;
|
||||
}
|
||||
}
|
||||
|
||||
/* Append to EX the exclusion PATTERN with OPTIONS. */
|
||||
|
||||
void
|
||||
add_exclude (struct exclude *ex, char const *pattern, int options)
|
||||
{
|
||||
struct patopts *patopts;
|
||||
|
||||
if (ex->exclude_alloc <= ex->exclude_count)
|
||||
{
|
||||
size_t s = 2 * ex->exclude_alloc;
|
||||
if (! (0 < s && s <= SIZE_MAX / sizeof ex->exclude[0]))
|
||||
xalloc_die ();
|
||||
ex->exclude_alloc = s;
|
||||
ex->exclude = (struct patopts *) xrealloc (ex->exclude,
|
||||
s * sizeof ex->exclude[0]);
|
||||
}
|
||||
|
||||
patopts = &ex->exclude[ex->exclude_count++];
|
||||
patopts->pattern = pattern;
|
||||
patopts->options = options;
|
||||
}
|
||||
|
||||
/* Use ADD_FUNC to append to EX the patterns in FILENAME, each with
|
||||
OPTIONS. LINE_END terminates each pattern in the file. Return -1
|
||||
on failure, 0 on success. */
|
||||
|
||||
int
|
||||
add_exclude_file (void (*add_func) PARAMS ((struct exclude *,
|
||||
char const *, int)),
|
||||
struct exclude *ex, char const *filename, int options,
|
||||
char line_end)
|
||||
{
|
||||
bool use_stdin = filename[0] == '-' && !filename[1];
|
||||
FILE *in;
|
||||
char *buf;
|
||||
char *p;
|
||||
char const *pattern;
|
||||
char const *lim;
|
||||
size_t buf_alloc = 1024;
|
||||
size_t buf_alloc = (1 << 10); /* This must be a power of two. */
|
||||
size_t buf_count = 0;
|
||||
int c;
|
||||
int e = 0;
|
||||
@@ -104,22 +239,27 @@ add_exclude_file (void (*add_func) PARAMS ((struct exclude *, char const *)),
|
||||
{
|
||||
buf[buf_count++] = c;
|
||||
if (buf_count == buf_alloc)
|
||||
buf = xrealloc (buf, buf_alloc *= 2);
|
||||
{
|
||||
buf_alloc *= 2;
|
||||
if (! buf_alloc)
|
||||
xalloc_die ();
|
||||
buf = xrealloc (buf, buf_alloc);
|
||||
}
|
||||
}
|
||||
|
||||
buf = xrealloc (buf, buf_count + 1);
|
||||
|
||||
if (ferror (in))
|
||||
e = errno;
|
||||
|
||||
if (!use_stdin && fclose (in) != 0)
|
||||
e = errno;
|
||||
|
||||
buf = xrealloc (buf, buf_count + 1);
|
||||
|
||||
for (pattern = p = buf, lim = buf + buf_count; p <= lim; p++)
|
||||
if (p < lim ? *p == line_end : buf < p && p[-1])
|
||||
{
|
||||
*p = '\0';
|
||||
(*add_func) (ex, pattern);
|
||||
(*add_func) (ex, pattern, options);
|
||||
pattern = p + 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* exclude.h -- declarations for excluding file names
|
||||
Copyright 1992, 1993, 1994, 1997, 1999 Free Software Foundation, Inc.
|
||||
Copyright 1992, 1993, 1994, 1997, 1999, 2001 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -26,10 +26,24 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Exclude options, which can be ORed with fnmatch options. */
|
||||
|
||||
/* Patterns must match the start of file names, instead of matching
|
||||
anywhere after a '/'. */
|
||||
#define EXCLUDE_ANCHORED (1 << 5)
|
||||
|
||||
/* Include instead of exclude. */
|
||||
#define EXCLUDE_INCLUDE (1 << 6)
|
||||
|
||||
/* '?', '*', '[', and '\\' are special in patterns. Without this
|
||||
option, these characters are ordinary and fnmatch is not used. */
|
||||
#define EXCLUDE_WILDCARDS (1 << 7)
|
||||
|
||||
struct exclude;
|
||||
|
||||
struct exclude *new_exclude PARAMS ((void));
|
||||
void add_exclude PARAMS ((struct exclude *, char const *));
|
||||
int add_exclude_file PARAMS ((void (*) (struct exclude *, char const *),
|
||||
struct exclude *, char const *, char));
|
||||
int excluded_filename PARAMS ((struct exclude const *, char const *, int));
|
||||
void free_exclude PARAMS ((struct exclude *));
|
||||
void add_exclude PARAMS ((struct exclude *, char const *, int));
|
||||
int add_exclude_file PARAMS ((void (*) (struct exclude *, char const *, int),
|
||||
struct exclude *, char const *, int, char));
|
||||
bool excluded_filename PARAMS ((struct exclude const *, char const *));
|
||||
|
||||
31
lib/exitfail.c
Normal file
31
lib/exitfail.c
Normal file
@@ -0,0 +1,31 @@
|
||||
/* Failure exit status
|
||||
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING.
|
||||
If not, write to the Free Software Foundation,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_STDLIB_H
|
||||
# include <stdlib.h>
|
||||
#endif
|
||||
#ifndef EXIT_FAILURE
|
||||
# define EXIT_FAILURE 1
|
||||
#endif
|
||||
|
||||
int volatile exit_failure = EXIT_FAILURE;
|
||||
20
lib/exitfail.h
Normal file
20
lib/exitfail.h
Normal file
@@ -0,0 +1,20 @@
|
||||
/* Failure exit status
|
||||
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING.
|
||||
If not, write to the Free Software Foundation,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
extern int volatile exit_failure;
|
||||
@@ -35,6 +35,7 @@ extern char *program_name;
|
||||
#endif
|
||||
|
||||
#include "fatal.h"
|
||||
#include "unlocked-io.h"
|
||||
|
||||
/* Like error, but always exit with EXIT_FAILURE. */
|
||||
|
||||
|
||||
72
lib/file-type.c
Normal file
72
lib/file-type.c
Normal file
@@ -0,0 +1,72 @@
|
||||
/* Return a string describing the type of a file.
|
||||
|
||||
Copyright (C) 1993, 1994, 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Written by Paul Eggert. */
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include "file-type.h"
|
||||
|
||||
#include <gettext.h>
|
||||
#define _(text) gettext (text)
|
||||
|
||||
char const *
|
||||
file_type (struct stat const *st)
|
||||
{
|
||||
/* See POSIX 1003.1-2001 XCU Table 4-8 lines 17093-17107 for some of
|
||||
these formats.
|
||||
|
||||
To keep diagnostics grammatical in English, the returned string
|
||||
must start with a consonant. */
|
||||
|
||||
if (S_ISREG (st->st_mode))
|
||||
return st->st_size == 0 ? _("regular empty file") : _("regular file");
|
||||
|
||||
if (S_ISDIR (st->st_mode))
|
||||
return _("directory");
|
||||
|
||||
if (S_ISBLK (st->st_mode))
|
||||
return _("block special file");
|
||||
|
||||
if (S_ISCHR (st->st_mode))
|
||||
return _("character special file");
|
||||
|
||||
if (S_ISFIFO (st->st_mode))
|
||||
return _("fifo");
|
||||
|
||||
if (S_ISLNK (st->st_mode))
|
||||
return _("symbolic link");
|
||||
|
||||
if (S_ISSOCK (st->st_mode))
|
||||
return _("socket");
|
||||
|
||||
if (S_TYPEISMQ (st))
|
||||
return _("message queue");
|
||||
|
||||
if (S_TYPEISSEM (st))
|
||||
return _("semaphore");
|
||||
|
||||
if (S_TYPEISSHM (st))
|
||||
return _("shared memory object");
|
||||
|
||||
return _("weird file");
|
||||
}
|
||||
161
lib/file-type.h
Normal file
161
lib/file-type.h
Normal file
@@ -0,0 +1,161 @@
|
||||
/* Return a string describing the type of a file.
|
||||
|
||||
Copyright (C) 1993, 1994, 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Written by Paul Eggert and Jim Meyering. */
|
||||
|
||||
#ifndef FILE_TYPE_H
|
||||
# define FILE_TYPE_H 1
|
||||
|
||||
# if ! defined S_ISREG && ! defined S_IFREG
|
||||
you must include <sys/stat.h> before including this file
|
||||
# endif
|
||||
|
||||
char const *file_type (struct stat const *);
|
||||
|
||||
# ifndef S_IFMT
|
||||
# define S_IFMT 0170000
|
||||
# endif
|
||||
|
||||
# if STAT_MACROS_BROKEN
|
||||
# undef S_ISBLK
|
||||
# undef S_ISCHR
|
||||
# undef S_ISDIR
|
||||
# undef S_ISDOOR
|
||||
# undef S_ISFIFO
|
||||
# undef S_ISLNK
|
||||
# undef S_ISNAM
|
||||
# undef S_ISMPB
|
||||
# undef S_ISMPC
|
||||
# undef S_ISNWK
|
||||
# undef S_ISREG
|
||||
# undef S_ISSOCK
|
||||
# endif
|
||||
|
||||
|
||||
# ifndef S_ISBLK
|
||||
# ifdef S_IFBLK
|
||||
# define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
|
||||
# else
|
||||
# define S_ISBLK(m) 0
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef S_ISCHR
|
||||
# ifdef S_IFCHR
|
||||
# define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
|
||||
# else
|
||||
# define S_ISCHR(m) 0
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef S_ISDIR
|
||||
# ifdef S_IFDIR
|
||||
# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
|
||||
# else
|
||||
# define S_ISDIR(m) 0
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef S_ISDOOR /* Solaris 2.5 and up */
|
||||
# ifdef S_IFDOOR
|
||||
# define S_ISDOOR(m) (((m) & S_IFMT) == S_IFDOOR)
|
||||
# else
|
||||
# define S_ISDOOR(m) 0
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef S_ISFIFO
|
||||
# ifdef S_IFIFO
|
||||
# define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
|
||||
# else
|
||||
# define S_ISFIFO(m) 0
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef S_ISLNK
|
||||
# ifdef S_IFLNK
|
||||
# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
|
||||
# else
|
||||
# define S_ISLNK(m) 0
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef S_ISMPB /* V7 */
|
||||
# ifdef S_IFMPB
|
||||
# define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB)
|
||||
# define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC)
|
||||
# else
|
||||
# define S_ISMPB(m) 0
|
||||
# define S_ISMPC(m) 0
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef S_ISNAM /* Xenix */
|
||||
# ifdef S_IFNAM
|
||||
# define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM)
|
||||
# else
|
||||
# define S_ISNAM(m) 0
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef S_ISNWK /* HP/UX */
|
||||
# ifdef S_IFNWK
|
||||
# define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK)
|
||||
# else
|
||||
# define S_ISNWK(m) 0
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef S_ISREG
|
||||
# ifdef S_IFREG
|
||||
# define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
|
||||
# else
|
||||
# define S_ISREG(m) 0
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef S_ISSOCK
|
||||
# ifdef S_IFSOCK
|
||||
# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
|
||||
# else
|
||||
# define S_ISSOCK(m) 0
|
||||
# endif
|
||||
# endif
|
||||
|
||||
|
||||
# ifndef S_TYPEISSEM
|
||||
# ifdef S_INSEM
|
||||
# define S_TYPEISSEM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSEM)
|
||||
# else
|
||||
# define S_TYPEISSEM(p) 0
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef S_TYPEISSHM
|
||||
# ifdef S_INSHD
|
||||
# define S_TYPEISSHM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSHD)
|
||||
# else
|
||||
# define S_TYPEISSHM(p) 0
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifndef S_TYPEISMQ
|
||||
# define S_TYPEISMQ(p) 0
|
||||
# endif
|
||||
|
||||
#endif /* FILE_TYPE_H */
|
||||
525
lib/fnmatch.c
525
lib/fnmatch.c
@@ -1,4 +1,5 @@
|
||||
/* Copyright 1991, 1992, 1993, 1996, 1997, 2000 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2000, 2001,
|
||||
2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -10,9 +11,9 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
@@ -23,208 +24,362 @@
|
||||
# define _GNU_SOURCE 1
|
||||
#endif
|
||||
|
||||
#ifdef __GNUC__
|
||||
# define alloca __builtin_alloca
|
||||
# define HAVE_ALLOCA 1
|
||||
#else
|
||||
# if defined HAVE_ALLOCA_H || defined _LIBC
|
||||
# include <alloca.h>
|
||||
# else
|
||||
# ifdef _AIX
|
||||
# pragma alloca
|
||||
# else
|
||||
# ifndef alloca
|
||||
char *alloca ();
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if ! defined __builtin_expect && __GNUC__ < 3
|
||||
# define __builtin_expect(expr, expected) (expr)
|
||||
#endif
|
||||
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <fnmatch.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#if defined STDC_HEADERS || !defined isascii
|
||||
# define IN_CTYPE_DOMAIN(c) 1
|
||||
#if HAVE_STRING_H || defined _LIBC
|
||||
# include <string.h>
|
||||
#else
|
||||
# define IN_CTYPE_DOMAIN(c) isascii (c)
|
||||
# if HAVE_STRINGS_H
|
||||
# include <strings.h>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define ISUPPER(c) (IN_CTYPE_DOMAIN (c) && isupper (c))
|
||||
#if defined STDC_HEADERS || defined _LIBC
|
||||
# include <stddef.h>
|
||||
# include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#define WIDE_CHAR_SUPPORT (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC)
|
||||
|
||||
/* For platform which support the ISO C amendement 1 functionality we
|
||||
support user defined character classes. */
|
||||
#if defined _LIBC || WIDE_CHAR_SUPPORT
|
||||
/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */
|
||||
# include <wchar.h>
|
||||
# include <wctype.h>
|
||||
#endif
|
||||
|
||||
/* We need some of the locale data (the collation sequence information)
|
||||
but there is no interface to get this information in general. Therefore
|
||||
we support a correct implementation only in glibc. */
|
||||
#ifdef _LIBC
|
||||
# include "../locale/localeinfo.h"
|
||||
# include "../locale/elem-hash.h"
|
||||
# include "../locale/coll-lookup.h"
|
||||
# include <shlib-compat.h>
|
||||
|
||||
# define CONCAT(a,b) __CONCAT(a,b)
|
||||
# define mbsinit __mbsinit
|
||||
# define mbsrtowcs __mbsrtowcs
|
||||
# define fnmatch __fnmatch
|
||||
extern int fnmatch (const char *pattern, const char *string, int flags);
|
||||
#endif
|
||||
|
||||
/* We often have to test for FNM_FILE_NAME and FNM_PERIOD being both set. */
|
||||
#define NO_LEADING_PERIOD(flags) \
|
||||
((flags & (FNM_FILE_NAME | FNM_PERIOD)) == (FNM_FILE_NAME | FNM_PERIOD))
|
||||
|
||||
/* Comment out all this code if we are using the GNU C Library, are not
|
||||
actually compiling the library itself, and have not detected a bug
|
||||
in the library. This code is part of the GNU C
|
||||
Library, but also included in many other GNU distributions. Compiling
|
||||
and linking in this code is a waste when using the GNU C library
|
||||
(especially if it is a shared library). Rather than having every GNU
|
||||
program understand `configure --with-gnu-libc' and omit the object files,
|
||||
it is simpler to just do this in the source for each such file. */
|
||||
|
||||
#if defined _LIBC || !defined __GNU_LIBRARY__ || !HAVE_FNMATCH_GNU
|
||||
|
||||
|
||||
#ifndef errno
|
||||
# if defined STDC_HEADERS || !defined isascii
|
||||
# define ISASCII(c) 1
|
||||
# else
|
||||
# define ISASCII(c) isascii(c)
|
||||
# endif
|
||||
|
||||
# ifdef isblank
|
||||
# define ISBLANK(c) (ISASCII (c) && isblank (c))
|
||||
# else
|
||||
# define ISBLANK(c) ((c) == ' ' || (c) == '\t')
|
||||
# endif
|
||||
# ifdef isgraph
|
||||
# define ISGRAPH(c) (ISASCII (c) && isgraph (c))
|
||||
# else
|
||||
# define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c))
|
||||
# endif
|
||||
|
||||
# define ISPRINT(c) (ISASCII (c) && isprint (c))
|
||||
# define ISDIGIT(c) (ISASCII (c) && isdigit (c))
|
||||
# define ISALNUM(c) (ISASCII (c) && isalnum (c))
|
||||
# define ISALPHA(c) (ISASCII (c) && isalpha (c))
|
||||
# define ISCNTRL(c) (ISASCII (c) && iscntrl (c))
|
||||
# define ISLOWER(c) (ISASCII (c) && islower (c))
|
||||
# define ISPUNCT(c) (ISASCII (c) && ispunct (c))
|
||||
# define ISSPACE(c) (ISASCII (c) && isspace (c))
|
||||
# define ISUPPER(c) (ISASCII (c) && isupper (c))
|
||||
# define ISXDIGIT(c) (ISASCII (c) && isxdigit (c))
|
||||
|
||||
# define STREQ(s1, s2) ((strcmp (s1, s2) == 0))
|
||||
|
||||
# if defined _LIBC || WIDE_CHAR_SUPPORT
|
||||
/* The GNU C library provides support for user-defined character classes
|
||||
and the functions from ISO C amendement 1. */
|
||||
# ifdef CHARCLASS_NAME_MAX
|
||||
# define CHAR_CLASS_MAX_LENGTH CHARCLASS_NAME_MAX
|
||||
# else
|
||||
/* This shouldn't happen but some implementation might still have this
|
||||
problem. Use a reasonable default value. */
|
||||
# define CHAR_CLASS_MAX_LENGTH 256
|
||||
# endif
|
||||
|
||||
# ifdef _LIBC
|
||||
# define IS_CHAR_CLASS(string) __wctype (string)
|
||||
# else
|
||||
# define IS_CHAR_CLASS(string) wctype (string)
|
||||
# endif
|
||||
|
||||
# ifdef _LIBC
|
||||
# define ISWCTYPE(WC, WT) __iswctype (WC, WT)
|
||||
# else
|
||||
# define ISWCTYPE(WC, WT) iswctype (WC, WT)
|
||||
# endif
|
||||
|
||||
# if (HAVE_MBSTATE_T && HAVE_MBSRTOWCS) || _LIBC
|
||||
/* In this case we are implementing the multibyte character handling. */
|
||||
# define HANDLE_MULTIBYTE 1
|
||||
# endif
|
||||
|
||||
# else
|
||||
# define CHAR_CLASS_MAX_LENGTH 6 /* Namely, `xdigit'. */
|
||||
|
||||
# define IS_CHAR_CLASS(string) \
|
||||
(STREQ (string, "alpha") || STREQ (string, "upper") \
|
||||
|| STREQ (string, "lower") || STREQ (string, "digit") \
|
||||
|| STREQ (string, "alnum") || STREQ (string, "xdigit") \
|
||||
|| STREQ (string, "space") || STREQ (string, "print") \
|
||||
|| STREQ (string, "punct") || STREQ (string, "graph") \
|
||||
|| STREQ (string, "cntrl") || STREQ (string, "blank"))
|
||||
# endif
|
||||
|
||||
/* Avoid depending on library functions or files
|
||||
whose names are inconsistent. */
|
||||
|
||||
# if !defined _LIBC && !defined getenv && !HAVE_DECL_GETENV
|
||||
extern char *getenv ();
|
||||
# endif
|
||||
|
||||
# ifndef errno
|
||||
extern int errno;
|
||||
#endif
|
||||
# endif
|
||||
|
||||
/* Match STRING against the filename pattern PATTERN, returning zero if
|
||||
it matches, nonzero if not. */
|
||||
int
|
||||
fnmatch (const char *pattern, const char *string, int flags)
|
||||
{
|
||||
register const char *p = pattern, *n = string;
|
||||
register char c;
|
||||
/* Global variable. */
|
||||
static int posixly_correct;
|
||||
|
||||
# ifndef internal_function
|
||||
/* Inside GNU libc we mark some function in a special way. In other
|
||||
environments simply ignore the marking. */
|
||||
# define internal_function
|
||||
# endif
|
||||
|
||||
/* Note that this evaluates C many times. */
|
||||
#define FOLD(c) ((flags & FNM_CASEFOLD) && ISUPPER ((unsigned char) (c)) \
|
||||
? tolower ((unsigned char) (c)) \
|
||||
: (c))
|
||||
# ifdef _LIBC
|
||||
# define FOLD(c) ((flags & FNM_CASEFOLD) ? tolower (c) : (c))
|
||||
# else
|
||||
# define FOLD(c) ((flags & FNM_CASEFOLD) && ISUPPER (c) ? tolower (c) : (c))
|
||||
# endif
|
||||
# define CHAR char
|
||||
# define UCHAR unsigned char
|
||||
# define INT int
|
||||
# define FCT internal_fnmatch
|
||||
# define EXT ext_match
|
||||
# define END end_pattern
|
||||
# define L(CS) CS
|
||||
# ifdef _LIBC
|
||||
# define BTOWC(C) __btowc (C)
|
||||
# else
|
||||
# define BTOWC(C) btowc (C)
|
||||
# endif
|
||||
# define STRLEN(S) strlen (S)
|
||||
# define STRCAT(D, S) strcat (D, S)
|
||||
# ifdef _LIBC
|
||||
# define MEMPCPY(D, S, N) __mempcpy (D, S, N)
|
||||
# else
|
||||
# if HAVE_MEMPCPY
|
||||
# define MEMPCPY(D, S, N) mempcpy (D, S, N)
|
||||
# else
|
||||
# define MEMPCPY(D, S, N) ((void *) ((char *) memcpy (D, S, N) + (N)))
|
||||
# endif
|
||||
# endif
|
||||
# define MEMCHR(S, C, N) memchr (S, C, N)
|
||||
# define STRCOLL(S1, S2) strcoll (S1, S2)
|
||||
# include "fnmatch_loop.c"
|
||||
|
||||
while ((c = *p++) != '\0')
|
||||
|
||||
# if HANDLE_MULTIBYTE
|
||||
# define FOLD(c) ((flags & FNM_CASEFOLD) ? towlower (c) : (c))
|
||||
# define CHAR wchar_t
|
||||
# define UCHAR wint_t
|
||||
# define INT wint_t
|
||||
# define FCT internal_fnwmatch
|
||||
# define EXT ext_wmatch
|
||||
# define END end_wpattern
|
||||
# define L(CS) L##CS
|
||||
# define BTOWC(C) (C)
|
||||
# ifdef _LIBC
|
||||
# define STRLEN(S) __wcslen (S)
|
||||
# define STRCAT(D, S) __wcscat (D, S)
|
||||
# define MEMPCPY(D, S, N) __wmempcpy (D, S, N)
|
||||
# else
|
||||
# define STRLEN(S) wcslen (S)
|
||||
# define STRCAT(D, S) wcscat (D, S)
|
||||
# if HAVE_WMEMPCPY
|
||||
# define MEMPCPY(D, S, N) wmempcpy (D, S, N)
|
||||
# else
|
||||
# define MEMPCPY(D, S, N) (wmemcpy (D, S, N) + (N))
|
||||
# endif
|
||||
# endif
|
||||
# define MEMCHR(S, C, N) wmemchr (S, C, N)
|
||||
# define STRCOLL(S1, S2) wcscoll (S1, S2)
|
||||
# define WIDE_CHAR_VERSION 1
|
||||
|
||||
# undef IS_CHAR_CLASS
|
||||
/* We have to convert the wide character string in a multibyte string. But
|
||||
we know that the character class names consist of alphanumeric characters
|
||||
from the portable character set, and since the wide character encoding
|
||||
for a member of the portable character set is the same code point as
|
||||
its single-byte encoding, we can use a simplified method to convert the
|
||||
string to a multibyte character string. */
|
||||
static wctype_t
|
||||
is_char_class (const wchar_t *wcs)
|
||||
{
|
||||
char s[CHAR_CLASS_MAX_LENGTH + 1];
|
||||
char *cp = s;
|
||||
|
||||
do
|
||||
{
|
||||
c = FOLD (c);
|
||||
|
||||
switch (c)
|
||||
/* Test for a printable character from the portable character set. */
|
||||
# ifdef _LIBC
|
||||
if (*wcs < 0x20 || *wcs > 0x7e
|
||||
|| *wcs == 0x24 || *wcs == 0x40 || *wcs == 0x60)
|
||||
return (wctype_t) 0;
|
||||
# else
|
||||
switch (*wcs)
|
||||
{
|
||||
case '?':
|
||||
if (*n == '\0')
|
||||
return FNM_NOMATCH;
|
||||
else if ((flags & FNM_FILE_NAME) && *n == '/')
|
||||
return FNM_NOMATCH;
|
||||
else if ((flags & FNM_PERIOD) && *n == '.' &&
|
||||
(n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/')))
|
||||
return FNM_NOMATCH;
|
||||
case L' ': case L'!': case L'"': case L'#': case L'%':
|
||||
case L'&': case L'\'': case L'(': case L')': case L'*':
|
||||
case L'+': case L',': case L'-': case L'.': case L'/':
|
||||
case L'0': case L'1': case L'2': case L'3': case L'4':
|
||||
case L'5': case L'6': case L'7': case L'8': case L'9':
|
||||
case L':': case L';': case L'<': case L'=': case L'>':
|
||||
case L'?':
|
||||
case L'A': case L'B': case L'C': case L'D': case L'E':
|
||||
case L'F': case L'G': case L'H': case L'I': case L'J':
|
||||
case L'K': case L'L': case L'M': case L'N': case L'O':
|
||||
case L'P': case L'Q': case L'R': case L'S': case L'T':
|
||||
case L'U': case L'V': case L'W': case L'X': case L'Y':
|
||||
case L'Z':
|
||||
case L'[': case L'\\': case L']': case L'^': case L'_':
|
||||
case L'a': case L'b': case L'c': case L'd': case L'e':
|
||||
case L'f': case L'g': case L'h': case L'i': case L'j':
|
||||
case L'k': case L'l': case L'm': case L'n': case L'o':
|
||||
case L'p': case L'q': case L'r': case L's': case L't':
|
||||
case L'u': case L'v': case L'w': case L'x': case L'y':
|
||||
case L'z': case L'{': case L'|': case L'}': case L'~':
|
||||
break;
|
||||
|
||||
case '\\':
|
||||
if (!(flags & FNM_NOESCAPE))
|
||||
{
|
||||
c = *p++;
|
||||
if (c == '\0')
|
||||
/* Trailing \ loses. */
|
||||
return FNM_NOMATCH;
|
||||
c = FOLD (c);
|
||||
}
|
||||
if (FOLD (*n) != c)
|
||||
return FNM_NOMATCH;
|
||||
break;
|
||||
|
||||
case '*':
|
||||
if ((flags & FNM_PERIOD) && *n == '.' &&
|
||||
(n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/')))
|
||||
return FNM_NOMATCH;
|
||||
|
||||
for (c = *p++; c == '?' || c == '*'; c = *p++)
|
||||
{
|
||||
if (c == '?')
|
||||
{
|
||||
/* A ? needs to match one character. */
|
||||
if (*n == '\0' || (*n == '/' && (flags & FNM_FILE_NAME)))
|
||||
/* There isn't another character; no match. */
|
||||
return FNM_NOMATCH;
|
||||
else
|
||||
/* One character of the string is consumed in matching
|
||||
this ? wildcard, so *??? won't match if there are
|
||||
less than three characters. */
|
||||
++n;
|
||||
}
|
||||
}
|
||||
|
||||
if (c == '\0')
|
||||
{
|
||||
if ((flags & (FNM_FILE_NAME | FNM_LEADING_DIR)) == FNM_FILE_NAME)
|
||||
for (; *n != '\0'; n++)
|
||||
if (*n == '/')
|
||||
return FNM_NOMATCH;
|
||||
return 0;
|
||||
}
|
||||
|
||||
{
|
||||
char c1 = (!(flags & FNM_NOESCAPE) && c == '\\') ? *p : c;
|
||||
c1 = FOLD (c1);
|
||||
for (--p; *n != '\0'; ++n)
|
||||
if ((c == '[' || FOLD (*n) == c1) &&
|
||||
fnmatch (p, n, flags & ~FNM_PERIOD) == 0)
|
||||
return 0;
|
||||
else if (*n == '/' && (flags & FNM_FILE_NAME))
|
||||
break;
|
||||
return FNM_NOMATCH;
|
||||
}
|
||||
|
||||
case '[':
|
||||
{
|
||||
/* Nonzero if the sense of the character class is inverted. */
|
||||
register int not;
|
||||
|
||||
if (*n == '\0')
|
||||
return FNM_NOMATCH;
|
||||
|
||||
if ((flags & FNM_PERIOD) && *n == '.' &&
|
||||
(n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/')))
|
||||
return FNM_NOMATCH;
|
||||
|
||||
not = (*p == '!' || *p == '^');
|
||||
if (not)
|
||||
++p;
|
||||
|
||||
c = *p++;
|
||||
for (;;)
|
||||
{
|
||||
register char cstart = c, cend = c;
|
||||
|
||||
if (!(flags & FNM_NOESCAPE) && c == '\\')
|
||||
{
|
||||
if (*p == '\0')
|
||||
return FNM_NOMATCH;
|
||||
cstart = cend = *p++;
|
||||
}
|
||||
|
||||
cstart = cend = FOLD (cstart);
|
||||
|
||||
if (c == '\0')
|
||||
/* [ (unterminated) loses. */
|
||||
return FNM_NOMATCH;
|
||||
|
||||
c = *p++;
|
||||
c = FOLD (c);
|
||||
|
||||
if ((flags & FNM_FILE_NAME) && c == '/')
|
||||
/* [/] can never match. */
|
||||
return FNM_NOMATCH;
|
||||
|
||||
if (c == '-' && *p != ']')
|
||||
{
|
||||
cend = *p++;
|
||||
if (!(flags & FNM_NOESCAPE) && cend == '\\')
|
||||
cend = *p++;
|
||||
if (cend == '\0')
|
||||
return FNM_NOMATCH;
|
||||
cend = FOLD (cend);
|
||||
|
||||
c = *p++;
|
||||
}
|
||||
|
||||
if (FOLD (*n) >= cstart && FOLD (*n) <= cend)
|
||||
goto matched;
|
||||
|
||||
if (c == ']')
|
||||
break;
|
||||
}
|
||||
if (!not)
|
||||
return FNM_NOMATCH;
|
||||
break;
|
||||
|
||||
matched:;
|
||||
/* Skip the rest of the [...] that already matched. */
|
||||
while (c != ']')
|
||||
{
|
||||
if (c == '\0')
|
||||
/* [... (unterminated) loses. */
|
||||
return FNM_NOMATCH;
|
||||
|
||||
c = *p++;
|
||||
if (!(flags & FNM_NOESCAPE) && c == '\\')
|
||||
{
|
||||
if (*p == '\0')
|
||||
return FNM_NOMATCH;
|
||||
/* XXX 1003.2d11 is unclear if this is right. */
|
||||
++p;
|
||||
}
|
||||
}
|
||||
if (not)
|
||||
return FNM_NOMATCH;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
if (c != FOLD (*n))
|
||||
return FNM_NOMATCH;
|
||||
return (wctype_t) 0;
|
||||
}
|
||||
# endif
|
||||
|
||||
++n;
|
||||
/* Avoid overrunning the buffer. */
|
||||
if (cp == s + CHAR_CLASS_MAX_LENGTH)
|
||||
return (wctype_t) 0;
|
||||
|
||||
*cp++ = (char) *wcs++;
|
||||
}
|
||||
while (*wcs != L'\0');
|
||||
|
||||
if (*n == '\0')
|
||||
return 0;
|
||||
*cp = '\0';
|
||||
|
||||
if ((flags & FNM_LEADING_DIR) && *n == '/')
|
||||
/* The FNM_LEADING_DIR flag says that "foo*" matches "foobar/frobozz". */
|
||||
return 0;
|
||||
|
||||
return FNM_NOMATCH;
|
||||
|
||||
#undef FOLD
|
||||
# ifdef _LIBC
|
||||
return __wctype (s);
|
||||
# else
|
||||
return wctype (s);
|
||||
# endif
|
||||
}
|
||||
# define IS_CHAR_CLASS(string) is_char_class (string)
|
||||
|
||||
# include "fnmatch_loop.c"
|
||||
# endif
|
||||
|
||||
|
||||
int
|
||||
fnmatch (pattern, string, flags)
|
||||
const char *pattern;
|
||||
const char *string;
|
||||
int flags;
|
||||
{
|
||||
# if HANDLE_MULTIBYTE
|
||||
if (__builtin_expect (MB_CUR_MAX, 1) != 1)
|
||||
{
|
||||
mbstate_t ps;
|
||||
size_t n;
|
||||
wchar_t *wpattern;
|
||||
wchar_t *wstring;
|
||||
|
||||
/* Convert the strings into wide characters. */
|
||||
memset (&ps, '\0', sizeof (ps));
|
||||
n = mbsrtowcs (NULL, &pattern, 0, &ps);
|
||||
if (__builtin_expect (n, 0) == (size_t) -1)
|
||||
/* Something wrong.
|
||||
XXX Do we have to set `errno' to something which mbsrtows hasn't
|
||||
already done? */
|
||||
return -1;
|
||||
wpattern = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
|
||||
assert (mbsinit (&ps));
|
||||
(void) mbsrtowcs (wpattern, &pattern, n + 1, &ps);
|
||||
|
||||
assert (mbsinit (&ps));
|
||||
n = mbsrtowcs (NULL, &string, 0, &ps);
|
||||
if (__builtin_expect (n, 0) == (size_t) -1)
|
||||
/* Something wrong.
|
||||
XXX Do we have to set `errno' to something which mbsrtows hasn't
|
||||
already done? */
|
||||
return -1;
|
||||
wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
|
||||
assert (mbsinit (&ps));
|
||||
(void) mbsrtowcs (wstring, &string, n + 1, &ps);
|
||||
|
||||
return internal_fnwmatch (wpattern, wstring, wstring + n,
|
||||
flags & FNM_PERIOD, flags);
|
||||
}
|
||||
# endif /* mbstate_t and mbsrtowcs or _LIBC. */
|
||||
|
||||
return internal_fnmatch (pattern, string, string + strlen (string),
|
||||
flags & FNM_PERIOD, flags);
|
||||
}
|
||||
|
||||
# ifdef _LIBC
|
||||
# undef fnmatch
|
||||
versioned_symbol (libc, __fnmatch, fnmatch, GLIBC_2_2_3);
|
||||
# if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_3)
|
||||
strong_alias (__fnmatch, __fnmatch_old)
|
||||
compat_symbol (libc, __fnmatch_old, fnmatch, GLIBC_2_0);
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#endif /* _LIBC or not __GNU_LIBRARY__. */
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
/* Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the GNU C Library.
|
||||
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option) any
|
||||
later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _FNMATCH_H
|
||||
|
||||
#define _FNMATCH_H 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined (__cplusplus) || (defined (__STDC__) && __STDC__)
|
||||
#undef __P
|
||||
#define __P(protos) protos
|
||||
#else /* Not C++ or ANSI C. */
|
||||
#undef __P
|
||||
#define __P(protos) ()
|
||||
/* We can get away without defining `const' here only because in this file
|
||||
it is used only inside the prototype for `fnmatch', which is elided in
|
||||
non-ANSI C where `const' is problematical. */
|
||||
#endif /* C++ or ANSI C. */
|
||||
|
||||
|
||||
/* We #undef these before defining them because some losing systems
|
||||
(HP-UX A.08.07 for example) define these in <unistd.h>. */
|
||||
#undef FNM_PATHNAME
|
||||
#undef FNM_NOESCAPE
|
||||
#undef FNM_PERIOD
|
||||
|
||||
/* Bits set in the FLAGS argument to `fnmatch'. */
|
||||
#define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */
|
||||
#define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */
|
||||
#define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */
|
||||
|
||||
#if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_GNU_SOURCE)
|
||||
#define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */
|
||||
#define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */
|
||||
#define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */
|
||||
#endif
|
||||
|
||||
/* Value returned by `fnmatch' if STRING does not match PATTERN. */
|
||||
#define FNM_NOMATCH 1
|
||||
|
||||
/* Match STRING against the filename pattern PATTERN,
|
||||
returning zero if it matches, FNM_NOMATCH if not. */
|
||||
extern int fnmatch __P ((const char *__pattern, const char *__string,
|
||||
int __flags));
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* fnmatch.h */
|
||||
80
lib/fnmatch_.h
Normal file
80
lib/fnmatch_.h
Normal file
@@ -0,0 +1,80 @@
|
||||
/* Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2001, 2002
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _FNMATCH_H
|
||||
# define _FNMATCH_H 1
|
||||
|
||||
# ifdef __cplusplus
|
||||
extern "C" {
|
||||
# endif
|
||||
|
||||
# if defined __cplusplus || (defined __STDC__ && __STDC__) || defined WINDOWS32
|
||||
# if !defined __GLIBC__ || !defined __P
|
||||
# undef __P
|
||||
# define __P(protos) protos
|
||||
# endif
|
||||
# else /* Not C++ or ANSI C. */
|
||||
# undef __P
|
||||
# define __P(protos) ()
|
||||
/* We can get away without defining `const' here only because in this file
|
||||
it is used only inside the prototype for `fnmatch', which is elided in
|
||||
non-ANSI C where `const' is problematical. */
|
||||
# endif /* C++ or ANSI C. */
|
||||
|
||||
# ifndef __const
|
||||
# define __const const
|
||||
# endif
|
||||
|
||||
/* We #undef these before defining them because some losing systems
|
||||
(HP-UX A.08.07 for example) define these in <unistd.h>. */
|
||||
# undef FNM_PATHNAME
|
||||
# undef FNM_NOESCAPE
|
||||
# undef FNM_PERIOD
|
||||
|
||||
/* Bits set in the FLAGS argument to `fnmatch'. */
|
||||
# define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */
|
||||
# define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */
|
||||
# define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */
|
||||
|
||||
# if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE
|
||||
# define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */
|
||||
# define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */
|
||||
# define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */
|
||||
# define FNM_EXTMATCH (1 << 5) /* Use ksh-like extended matching. */
|
||||
# endif
|
||||
|
||||
/* Value returned by `fnmatch' if STRING does not match PATTERN. */
|
||||
# define FNM_NOMATCH 1
|
||||
|
||||
/* This value is returned if the implementation does not support
|
||||
`fnmatch'. Since this is not the case here it will never be
|
||||
returned but the conformance test suites still require the symbol
|
||||
to be defined. */
|
||||
# ifdef _XOPEN_SOURCE
|
||||
# define FNM_NOSYS (-1)
|
||||
# endif
|
||||
|
||||
/* Match NAME against the filename pattern PATTERN,
|
||||
returning zero if it matches, FNM_NOMATCH if not. */
|
||||
extern int fnmatch __P ((__const char *__pattern, __const char *__name,
|
||||
int __flags));
|
||||
|
||||
# ifdef __cplusplus
|
||||
}
|
||||
# endif
|
||||
|
||||
#endif /* fnmatch.h */
|
||||
1189
lib/fnmatch_loop.c
Normal file
1189
lib/fnmatch_loop.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,6 @@
|
||||
/* fsusage.c -- return space usage of mounted filesystems
|
||||
Copyright (C) 1991, 1992, 1996, 1998, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1991, 1992, 1996, 1998, 1999, 2002 Free Software
|
||||
Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -21,7 +22,15 @@
|
||||
|
||||
#if HAVE_INTTYPES_H
|
||||
# include <inttypes.h>
|
||||
#else
|
||||
# if HAVE_STDINT_H
|
||||
# include <stdint.h>
|
||||
# endif
|
||||
#endif
|
||||
#ifndef UINTMAX_MAX
|
||||
# define UINTMAX_MAX ((uintmax_t) -1)
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include "fsusage.h"
|
||||
@@ -51,7 +60,7 @@ int statfs ();
|
||||
# include <sys/fs/s5param.h>
|
||||
#endif
|
||||
|
||||
#if defined (HAVE_SYS_FILSYS_H) && !defined (_CRAY)
|
||||
#if defined HAVE_SYS_FILSYS_H && !defined _CRAY
|
||||
# include <sys/filsys.h> /* SVR2 */
|
||||
#endif
|
||||
|
||||
@@ -74,9 +83,14 @@ int statvfs ();
|
||||
|
||||
/* Many space usage primitives use all 1 bits to denote a value that is
|
||||
not applicable or unknown. Propagate this information by returning
|
||||
a uintmax_t value that is all 1 bits if the argument is all 1 bits,
|
||||
even if the argument is unsigned and smaller than uintmax_t. */
|
||||
#define PROPAGATE_ALL_ONES(x) ((x) == -1 ? (uintmax_t) -1 : (uintmax_t) (x))
|
||||
a uintmax_t value that is all 1 bits if X is all 1 bits, even if X
|
||||
is unsigned and narrower than uintmax_t. */
|
||||
#define PROPAGATE_ALL_ONES(x) \
|
||||
((sizeof (x) < sizeof (uintmax_t) \
|
||||
&& (~ (x) == (sizeof (x) < sizeof (int) \
|
||||
? - (1 << (sizeof (x) * CHAR_BIT)) \
|
||||
: 0))) \
|
||||
? UINTMAX_MAX : (x))
|
||||
|
||||
/* Extract the top bit of X as an uintmax_t value. */
|
||||
#define EXTRACT_TOP_BIT(x) ((x) \
|
||||
@@ -162,7 +176,7 @@ get_fs_usage (const char *path, const char *disk, struct fs_usage *fsp)
|
||||
fsp->fsu_bavail = PROPAGATE_TOP_BIT (fsd.s_tfree);
|
||||
fsp->fsu_bavail_top_bit_set = EXTRACT_TOP_BIT (fsd.s_tfree) != 0;
|
||||
fsp->fsu_files = (fsd.s_isize == -1
|
||||
? (uintmax_t) -1
|
||||
? UINTMAX_MAX
|
||||
: (fsd.s_isize - 2) * INOPB * (fsd.s_type == Fs2b ? 2 : 1));
|
||||
fsp->fsu_ffree = PROPAGATE_ALL_ONES (fsd.s_tinode);
|
||||
|
||||
@@ -219,7 +233,7 @@ get_fs_usage (const char *path, const char *disk, struct fs_usage *fsp)
|
||||
/* Empirically, the block counts on most SVR3 and SVR3-derived
|
||||
systems seem to always be in terms of 512-byte blocks,
|
||||
no matter what value f_bsize has. */
|
||||
# if _AIX || defined(_CRAY)
|
||||
# if _AIX || defined _CRAY
|
||||
fsp->fsu_blocksize = PROPAGATE_ALL_ONES (fsd.f_bsize);
|
||||
# else
|
||||
fsp->fsu_blocksize = 512;
|
||||
@@ -235,12 +249,13 @@ get_fs_usage (const char *path, const char *disk, struct fs_usage *fsp)
|
||||
return -1;
|
||||
|
||||
/* f_frsize isn't guaranteed to be supported. */
|
||||
fsp->fsu_blocksize =
|
||||
PROPAGATE_ALL_ONES (fsd.f_frsize ? fsd.f_frsize : fsd.f_bsize);
|
||||
fsp->fsu_blocksize = (fsd.f_frsize
|
||||
? PROPAGATE_ALL_ONES (fsd.f_frsize)
|
||||
: PROPAGATE_ALL_ONES (fsd.f_bsize));
|
||||
|
||||
#endif /* STAT_STATVFS */
|
||||
|
||||
#if !defined(STAT_STATFS2_FS_DATA) && !defined(STAT_READ_FILSYS)
|
||||
#if !defined STAT_STATFS2_FS_DATA && !defined STAT_READ_FILSYS
|
||||
/* !Ultrix && !SVR2 */
|
||||
|
||||
fsp->fsu_blocks = PROPAGATE_ALL_ONES (fsd.f_blocks);
|
||||
@@ -255,7 +270,7 @@ get_fs_usage (const char *path, const char *disk, struct fs_usage *fsp)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if defined(_AIX) && defined(_I386)
|
||||
#if defined _AIX && defined _I386
|
||||
/* AIX PS/2 does not supply statfs. */
|
||||
|
||||
int
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
/* full-write.c -- an interface to write that retries after interrupts
|
||||
Copyright (C) 1993, 1994, 1997, 1998, 2000 Free Software Foundation, Inc.
|
||||
|
||||
Copyright 1993, 1994, 1997, 1998, 1999, 2000, 2001 Free Software
|
||||
Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -15,8 +17,7 @@
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Copied largely from GNU C's cccp.c.
|
||||
*/
|
||||
Written by Paul Eggert. */
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
@@ -24,6 +25,8 @@
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#include "full-write.h"
|
||||
|
||||
#if HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
@@ -33,30 +36,28 @@
|
||||
extern int errno;
|
||||
#endif
|
||||
|
||||
/* Write LEN bytes at PTR to descriptor DESC, retrying if interrupted.
|
||||
Return LEN upon success, write's (negative) error code otherwise. */
|
||||
/* Write LEN bytes at PTR to descriptor DESC, retrying if interrupted
|
||||
or if partial writes occur. Return the number of bytes successfully
|
||||
written, setting errno if that is less than LEN. */
|
||||
|
||||
int
|
||||
size_t
|
||||
full_write (int desc, const char *ptr, size_t len)
|
||||
{
|
||||
int total_written;
|
||||
size_t total_written = 0;
|
||||
|
||||
total_written = 0;
|
||||
while (len > 0)
|
||||
{
|
||||
int written = write (desc, ptr, len);
|
||||
/* write on an old Slackware Linux 1.2.13 returns zero when
|
||||
I try to write more data than there is room on a floppy disk.
|
||||
This puts dd into an infinite loop. Reproduce with
|
||||
dd if=/dev/zero of=/dev/fd0. If you have this problem,
|
||||
consider upgrading to a newer kernel. */
|
||||
if (written < 0)
|
||||
ssize_t written = write (desc, ptr, len);
|
||||
if (written <= 0)
|
||||
{
|
||||
/* Some buggy drivers return 0 when you fall off a device's end. */
|
||||
if (written == 0)
|
||||
errno = ENOSPC;
|
||||
#ifdef EINTR
|
||||
if (errno == EINTR)
|
||||
continue;
|
||||
#endif
|
||||
return written;
|
||||
break;
|
||||
}
|
||||
total_written += written;
|
||||
ptr += written;
|
||||
|
||||
9
lib/full-write.h
Normal file
9
lib/full-write.h
Normal file
@@ -0,0 +1,9 @@
|
||||
#ifndef PARAMS
|
||||
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
|
||||
# define PARAMS(Args) Args
|
||||
# else
|
||||
# define PARAMS(Args) ()
|
||||
# endif
|
||||
#endif
|
||||
|
||||
size_t full_write PARAMS ((int, const char *, size_t));
|
||||
53
lib/gen-uio
Executable file
53
lib/gen-uio
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/bin/sh
|
||||
|
||||
fail=0
|
||||
cat <<\EOF || fail=1
|
||||
#ifndef UNLOCKED_IO_H
|
||||
# define UNLOCKED_IO_H 1
|
||||
|
||||
# ifndef USE_UNLOCKED_IO
|
||||
# define USE_UNLOCKED_IO 1
|
||||
# endif
|
||||
|
||||
# if USE_UNLOCKED_IO
|
||||
|
||||
/* These are wrappers for functions/macros from GNU libc.
|
||||
The standard I/O functions are thread-safe. These *_unlocked ones are
|
||||
more efficient but not thread-safe. That they're not thread-safe is
|
||||
fine since all of the applications in this package are single threaded. */
|
||||
|
||||
EOF
|
||||
|
||||
for f in $@; do
|
||||
u=`echo $f|tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
|
||||
cat <<EOF || fail=1
|
||||
# if HAVE_${u}_UNLOCKED
|
||||
# undef $f
|
||||
EOF
|
||||
case $f in
|
||||
getchar)
|
||||
params=;;
|
||||
putchar | clearerr | feof | ferror | fflush | getc )
|
||||
params=x;;
|
||||
putc | fputc | fputs )
|
||||
params=x,y;;
|
||||
fgets )
|
||||
params=x,y,z;;
|
||||
fread | fwrite )
|
||||
params=w,x,y,z;;
|
||||
*)
|
||||
echo $0: missing case for $f 2>&1; fail=1;;
|
||||
esac
|
||||
cat <<EOF || fail=1
|
||||
# define $f($params) ${f}_unlocked ($params)
|
||||
# endif
|
||||
EOF
|
||||
done
|
||||
|
||||
cat <<\EOF || fail=1
|
||||
|
||||
# endif /* USE_UNLOCKED_IO */
|
||||
#endif /* UNLOCKED_IO_H */
|
||||
EOF
|
||||
|
||||
(exit $fail); exit
|
||||
@@ -1,6 +1,6 @@
|
||||
%{
|
||||
/* Parse a string into an internal time stamp.
|
||||
Copyright 1999, 2000 Free Software Foundation, Inc.
|
||||
Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -63,10 +63,9 @@
|
||||
- Its arg may be any int or unsigned int; it need not be an unsigned char.
|
||||
- It's guaranteed to evaluate its argument exactly once.
|
||||
- It's typically faster.
|
||||
Posix 1003.2-1992 section 2.5.2.1 page 50 lines 1556-1558 says that
|
||||
only '0' through '9' are digits. Prefer ISDIGIT to ISDIGIT_LOCALE unless
|
||||
it's important to use the locale's definition of `digit' even when the
|
||||
host does not conform to Posix. */
|
||||
POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to
|
||||
ISDIGIT_LOCALE unless it's important to use the locale's definition
|
||||
of `digit' even when the host does not conform to POSIX. */
|
||||
#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9)
|
||||
|
||||
#if STDC_HEADERS || HAVE_STRING_H
|
||||
@@ -378,19 +377,19 @@ relunit:
|
||||
| tSNUMBER tDAY_UNIT
|
||||
{ PC.rel_day += $1.value * $2; }
|
||||
| tDAY_UNIT
|
||||
{ PC.rel_day += $1 }
|
||||
{ PC.rel_day += $1; }
|
||||
| tUNUMBER tHOUR_UNIT
|
||||
{ PC.rel_hour += $1.value * $2; }
|
||||
| tSNUMBER tHOUR_UNIT
|
||||
{ PC.rel_hour += $1.value * $2; }
|
||||
| tHOUR_UNIT
|
||||
{ PC.rel_hour += $1 }
|
||||
{ PC.rel_hour += $1; }
|
||||
| tUNUMBER tMINUTE_UNIT
|
||||
{ PC.rel_minutes += $1.value * $2; }
|
||||
| tSNUMBER tMINUTE_UNIT
|
||||
{ PC.rel_minutes += $1.value * $2; }
|
||||
| tMINUTE_UNIT
|
||||
{ PC.rel_minutes += $1 }
|
||||
{ PC.rel_minutes += $1; }
|
||||
| tUNUMBER tSEC_UNIT
|
||||
{ PC.rel_seconds += $1.value * $2; }
|
||||
| tSNUMBER tSEC_UNIT
|
||||
@@ -448,6 +447,7 @@ o_merid:
|
||||
may define-away `const'. We want the prototype for get_date to have
|
||||
the same signature as the function definition. */
|
||||
#include "getdate.h"
|
||||
#include "unlocked-io.h"
|
||||
|
||||
#ifndef gmtime
|
||||
struct tm *gmtime ();
|
||||
|
||||
359
lib/getopt.c
359
lib/getopt.c
@@ -1,23 +1,25 @@
|
||||
/* Getopt for GNU.
|
||||
NOTE: The canonical source of this file is maintained with the GNU
|
||||
C Library. Bugs can be reported to bug-glibc@gnu.org.
|
||||
|
||||
Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
|
||||
NOTE: getopt is now part of the C library, so if you don't know what
|
||||
"Keep this file name-space clean" means, talk to drepper@gnu.org
|
||||
before changing it!
|
||||
Copyright (C) 1987,88,89,90,91,92,93,94,95,96,98,99,2000,2001,2002
|
||||
Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option) any
|
||||
later version.
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
|
||||
Ditto for AIX 3.2 and <stdlib.h>. */
|
||||
@@ -76,7 +78,7 @@
|
||||
|
||||
#ifndef _
|
||||
/* This is for other GNU distributions with internationalized messages. */
|
||||
# if defined HAVE_LIBINTL_H || defined _LIBC
|
||||
# if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC
|
||||
# include <libintl.h>
|
||||
# ifndef _
|
||||
# define _(msgid) gettext (msgid)
|
||||
@@ -84,6 +86,13 @@
|
||||
# else
|
||||
# define _(msgid) (msgid)
|
||||
# endif
|
||||
# if defined _LIBC && defined USE_IN_LIBIO
|
||||
# include <wchar.h>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef attribute_hidden
|
||||
# define attribute_hidden
|
||||
#endif
|
||||
|
||||
/* This version of `getopt' appears to the caller like standard Unix `getopt'
|
||||
@@ -129,7 +138,7 @@ int optind = 1;
|
||||
causes problems with re-calling getopt as programs generally don't
|
||||
know that. */
|
||||
|
||||
int __getopt_initialized;
|
||||
int __getopt_initialized attribute_hidden;
|
||||
|
||||
/* The next char to be scanned in the option-element
|
||||
in which the last option character we returned was found.
|
||||
@@ -248,41 +257,34 @@ static int first_nonopt;
|
||||
static int last_nonopt;
|
||||
|
||||
#ifdef _LIBC
|
||||
/* Stored original parameters.
|
||||
XXX This is no good solution. We should rather copy the args so
|
||||
that we can compare them later. But we must not use malloc(3). */
|
||||
extern int __libc_argc;
|
||||
extern char **__libc_argv;
|
||||
|
||||
/* Bash 2.0 gives us an environment variable containing flags
|
||||
indicating ARGV elements that should not be considered arguments. */
|
||||
|
||||
# ifdef USE_NONOPTION_FLAGS
|
||||
/* Defined in getopt_init.c */
|
||||
extern char *__getopt_nonoption_flags;
|
||||
|
||||
static int nonoption_flags_max_len;
|
||||
static int nonoption_flags_len;
|
||||
# endif
|
||||
|
||||
static int original_argc;
|
||||
static char *const *original_argv;
|
||||
|
||||
/* Make sure the environment variable bash 2.0 puts in the environment
|
||||
is valid for the getopt call we must make sure that the ARGV passed
|
||||
to getopt is that one passed to the process. */
|
||||
static void
|
||||
__attribute__ ((unused))
|
||||
store_args_and_env (int argc, char *const *argv)
|
||||
{
|
||||
/* XXX This is no good solution. We should rather copy the args so
|
||||
that we can compare them later. But we must not use malloc(3). */
|
||||
original_argc = argc;
|
||||
original_argv = argv;
|
||||
}
|
||||
# ifdef text_set_element
|
||||
text_set_element (__libc_subinit, store_args_and_env);
|
||||
# endif /* text_set_element */
|
||||
|
||||
# define SWAP_FLAGS(ch1, ch2) \
|
||||
# ifdef USE_NONOPTION_FLAGS
|
||||
# define SWAP_FLAGS(ch1, ch2) \
|
||||
if (nonoption_flags_len > 0) \
|
||||
{ \
|
||||
char __tmp = __getopt_nonoption_flags[ch1]; \
|
||||
__getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \
|
||||
__getopt_nonoption_flags[ch2] = __tmp; \
|
||||
}
|
||||
# else
|
||||
# define SWAP_FLAGS(ch1, ch2)
|
||||
# endif
|
||||
#else /* !_LIBC */
|
||||
# define SWAP_FLAGS(ch1, ch2)
|
||||
#endif /* _LIBC */
|
||||
@@ -314,7 +316,7 @@ exchange (argv)
|
||||
It leaves the longer segment in the right place overall,
|
||||
but it consists of two parts that need to be swapped next. */
|
||||
|
||||
#ifdef _LIBC
|
||||
#if defined _LIBC && defined USE_NONOPTION_FLAGS
|
||||
/* First make sure the handling of the `__getopt_nonoption_flags'
|
||||
string can work normally. Our top argument must be in the range
|
||||
of the string. */
|
||||
@@ -418,9 +420,9 @@ _getopt_initialize (argc, argv, optstring)
|
||||
else
|
||||
ordering = PERMUTE;
|
||||
|
||||
#ifdef _LIBC
|
||||
#if defined _LIBC && defined USE_NONOPTION_FLAGS
|
||||
if (posixly_correct == NULL
|
||||
&& argc == original_argc && argv == original_argv)
|
||||
&& argc == __libc_argc && argv == __libc_argv)
|
||||
{
|
||||
if (nonoption_flags_max_len == 0)
|
||||
{
|
||||
@@ -537,7 +539,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
|
||||
Either it does not have option syntax, or there is an environment flag
|
||||
from the shell indicating it is not an option. The later information
|
||||
is only used when the used in the GNU libc. */
|
||||
#ifdef _LIBC
|
||||
#if defined _LIBC && defined USE_NONOPTION_FLAGS
|
||||
# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \
|
||||
|| (optind < nonoption_flags_len \
|
||||
&& __getopt_nonoption_flags[optind] == '1'))
|
||||
@@ -683,8 +685,26 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
|
||||
if (ambig && !exact)
|
||||
{
|
||||
if (print_errors)
|
||||
fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
|
||||
argv[0], argv[optind]);
|
||||
{
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
char *buf;
|
||||
|
||||
if (__asprintf (&buf, _("%s: option `%s' is ambiguous\n"),
|
||||
argv[0], argv[optind]) >= 0)
|
||||
{
|
||||
|
||||
if (_IO_fwide (stderr, 0) > 0)
|
||||
__fwprintf (stderr, L"%s", buf);
|
||||
else
|
||||
fputs (buf, stderr);
|
||||
|
||||
free (buf);
|
||||
}
|
||||
#else
|
||||
fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
|
||||
argv[0], argv[optind]);
|
||||
#endif
|
||||
}
|
||||
nextchar += strlen (nextchar);
|
||||
optind++;
|
||||
optopt = 0;
|
||||
@@ -705,16 +725,50 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
|
||||
{
|
||||
if (print_errors)
|
||||
{
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
char *buf;
|
||||
int n;
|
||||
#endif
|
||||
|
||||
if (argv[optind - 1][1] == '-')
|
||||
/* --option */
|
||||
fprintf (stderr,
|
||||
_("%s: option `--%s' doesn't allow an argument\n"),
|
||||
argv[0], pfound->name);
|
||||
{
|
||||
/* --option */
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
n = __asprintf (&buf, _("\
|
||||
%s: option `--%s' doesn't allow an argument\n"),
|
||||
argv[0], pfound->name);
|
||||
#else
|
||||
fprintf (stderr, _("\
|
||||
%s: option `--%s' doesn't allow an argument\n"),
|
||||
argv[0], pfound->name);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
/* +option or -option */
|
||||
fprintf (stderr,
|
||||
_("%s: option `%c%s' doesn't allow an argument\n"),
|
||||
argv[0], argv[optind - 1][0], pfound->name);
|
||||
{
|
||||
/* +option or -option */
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
n = __asprintf (&buf, _("\
|
||||
%s: option `%c%s' doesn't allow an argument\n"),
|
||||
argv[0], argv[optind - 1][0],
|
||||
pfound->name);
|
||||
#else
|
||||
fprintf (stderr, _("\
|
||||
%s: option `%c%s' doesn't allow an argument\n"),
|
||||
argv[0], argv[optind - 1][0], pfound->name);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
if (n >= 0)
|
||||
{
|
||||
if (_IO_fwide (stderr, 0) > 0)
|
||||
__fwprintf (stderr, L"%s", buf);
|
||||
else
|
||||
fputs (buf, stderr);
|
||||
|
||||
free (buf);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
nextchar += strlen (nextchar);
|
||||
@@ -730,9 +784,27 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
|
||||
else
|
||||
{
|
||||
if (print_errors)
|
||||
fprintf (stderr,
|
||||
_("%s: option `%s' requires an argument\n"),
|
||||
argv[0], argv[optind - 1]);
|
||||
{
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
char *buf;
|
||||
|
||||
if (__asprintf (&buf, _("\
|
||||
%s: option `%s' requires an argument\n"),
|
||||
argv[0], argv[optind - 1]) >= 0)
|
||||
{
|
||||
if (_IO_fwide (stderr, 0) > 0)
|
||||
__fwprintf (stderr, L"%s", buf);
|
||||
else
|
||||
fputs (buf, stderr);
|
||||
|
||||
free (buf);
|
||||
}
|
||||
#else
|
||||
fprintf (stderr,
|
||||
_("%s: option `%s' requires an argument\n"),
|
||||
argv[0], argv[optind - 1]);
|
||||
#endif
|
||||
}
|
||||
nextchar += strlen (nextchar);
|
||||
optopt = pfound->val;
|
||||
return optstring[0] == ':' ? ':' : '?';
|
||||
@@ -758,14 +830,45 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
|
||||
{
|
||||
if (print_errors)
|
||||
{
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
char *buf;
|
||||
int n;
|
||||
#endif
|
||||
|
||||
if (argv[optind][1] == '-')
|
||||
/* --option */
|
||||
fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
|
||||
argv[0], nextchar);
|
||||
{
|
||||
/* --option */
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
n = __asprintf (&buf, _("%s: unrecognized option `--%s'\n"),
|
||||
argv[0], nextchar);
|
||||
#else
|
||||
fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
|
||||
argv[0], nextchar);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
/* +option or -option */
|
||||
fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
|
||||
argv[0], argv[optind][0], nextchar);
|
||||
{
|
||||
/* +option or -option */
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
n = __asprintf (&buf, _("%s: unrecognized option `%c%s'\n"),
|
||||
argv[0], argv[optind][0], nextchar);
|
||||
#else
|
||||
fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
|
||||
argv[0], argv[optind][0], nextchar);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
if (n >= 0)
|
||||
{
|
||||
if (_IO_fwide (stderr, 0) > 0)
|
||||
__fwprintf (stderr, L"%s", buf);
|
||||
else
|
||||
fputs (buf, stderr);
|
||||
|
||||
free (buf);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
nextchar = (char *) "";
|
||||
optind++;
|
||||
@@ -788,13 +891,42 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
|
||||
{
|
||||
if (print_errors)
|
||||
{
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
char *buf;
|
||||
int n;
|
||||
#endif
|
||||
|
||||
if (posixly_correct)
|
||||
/* 1003.2 specifies the format of this message. */
|
||||
fprintf (stderr, _("%s: illegal option -- %c\n"),
|
||||
argv[0], c);
|
||||
{
|
||||
/* 1003.2 specifies the format of this message. */
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
n = __asprintf (&buf, _("%s: illegal option -- %c\n"),
|
||||
argv[0], c);
|
||||
#else
|
||||
fprintf (stderr, _("%s: illegal option -- %c\n"), argv[0], c);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
fprintf (stderr, _("%s: invalid option -- %c\n"),
|
||||
argv[0], c);
|
||||
{
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
n = __asprintf (&buf, _("%s: invalid option -- %c\n"),
|
||||
argv[0], c);
|
||||
#else
|
||||
fprintf (stderr, _("%s: invalid option -- %c\n"), argv[0], c);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
if (n >= 0)
|
||||
{
|
||||
if (_IO_fwide (stderr, 0) > 0)
|
||||
__fwprintf (stderr, L"%s", buf);
|
||||
else
|
||||
fputs (buf, stderr);
|
||||
|
||||
free (buf);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
optopt = c;
|
||||
return '?';
|
||||
@@ -823,8 +955,24 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
|
||||
if (print_errors)
|
||||
{
|
||||
/* 1003.2 specifies the format of this message. */
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
char *buf;
|
||||
|
||||
if (__asprintf (&buf,
|
||||
_("%s: option requires an argument -- %c\n"),
|
||||
argv[0], c) >= 0)
|
||||
{
|
||||
if (_IO_fwide (stderr, 0) > 0)
|
||||
__fwprintf (stderr, L"%s", buf);
|
||||
else
|
||||
fputs (buf, stderr);
|
||||
|
||||
free (buf);
|
||||
}
|
||||
#else
|
||||
fprintf (stderr, _("%s: option requires an argument -- %c\n"),
|
||||
argv[0], c);
|
||||
#endif
|
||||
}
|
||||
optopt = c;
|
||||
if (optstring[0] == ':')
|
||||
@@ -870,8 +1018,25 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
|
||||
if (ambig && !exact)
|
||||
{
|
||||
if (print_errors)
|
||||
fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
|
||||
argv[0], argv[optind]);
|
||||
{
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
char *buf;
|
||||
|
||||
if (__asprintf (&buf, _("%s: option `-W %s' is ambiguous\n"),
|
||||
argv[0], argv[optind]) >= 0)
|
||||
{
|
||||
if (_IO_fwide (stderr, 0) > 0)
|
||||
__fwprintf (stderr, L"%s", buf);
|
||||
else
|
||||
fputs (buf, stderr);
|
||||
|
||||
free (buf);
|
||||
}
|
||||
#else
|
||||
fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
|
||||
argv[0], argv[optind]);
|
||||
#endif
|
||||
}
|
||||
nextchar += strlen (nextchar);
|
||||
optind++;
|
||||
return '?';
|
||||
@@ -888,9 +1053,27 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
|
||||
else
|
||||
{
|
||||
if (print_errors)
|
||||
fprintf (stderr, _("\
|
||||
{
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
char *buf;
|
||||
|
||||
if (__asprintf (&buf, _("\
|
||||
%s: option `-W %s' doesn't allow an argument\n"),
|
||||
argv[0], pfound->name);
|
||||
argv[0], pfound->name) >= 0)
|
||||
{
|
||||
if (_IO_fwide (stderr, 0) > 0)
|
||||
__fwprintf (stderr, L"%s", buf);
|
||||
else
|
||||
fputs (buf, stderr);
|
||||
|
||||
free (buf);
|
||||
}
|
||||
#else
|
||||
fprintf (stderr, _("\
|
||||
%s: option `-W %s' doesn't allow an argument\n"),
|
||||
argv[0], pfound->name);
|
||||
#endif
|
||||
}
|
||||
|
||||
nextchar += strlen (nextchar);
|
||||
return '?';
|
||||
@@ -903,9 +1086,27 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
|
||||
else
|
||||
{
|
||||
if (print_errors)
|
||||
fprintf (stderr,
|
||||
_("%s: option `%s' requires an argument\n"),
|
||||
argv[0], argv[optind - 1]);
|
||||
{
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
char *buf;
|
||||
|
||||
if (__asprintf (&buf, _("\
|
||||
%s: option `%s' requires an argument\n"),
|
||||
argv[0], argv[optind - 1]) >= 0)
|
||||
{
|
||||
if (_IO_fwide (stderr, 0) > 0)
|
||||
__fwprintf (stderr, L"%s", buf);
|
||||
else
|
||||
fputs (buf, stderr);
|
||||
|
||||
free (buf);
|
||||
}
|
||||
#else
|
||||
fprintf (stderr,
|
||||
_("%s: option `%s' requires an argument\n"),
|
||||
argv[0], argv[optind - 1]);
|
||||
#endif
|
||||
}
|
||||
nextchar += strlen (nextchar);
|
||||
return optstring[0] == ':' ? ':' : '?';
|
||||
}
|
||||
@@ -952,9 +1153,25 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
|
||||
if (print_errors)
|
||||
{
|
||||
/* 1003.2 specifies the format of this message. */
|
||||
#if defined _LIBC && defined USE_IN_LIBIO
|
||||
char *buf;
|
||||
|
||||
if (__asprintf (&buf, _("\
|
||||
%s: option requires an argument -- %c\n"),
|
||||
argv[0], c) >= 0)
|
||||
{
|
||||
if (_IO_fwide (stderr, 0) > 0)
|
||||
__fwprintf (stderr, L"%s", buf);
|
||||
else
|
||||
fputs (buf, stderr);
|
||||
|
||||
free (buf);
|
||||
}
|
||||
#else
|
||||
fprintf (stderr,
|
||||
_("%s: option requires an argument -- %c\n"),
|
||||
argv[0], c);
|
||||
#endif
|
||||
}
|
||||
optopt = c;
|
||||
if (optstring[0] == ':')
|
||||
|
||||
43
lib/getopt.h
43
lib/getopt.h
@@ -1,21 +1,21 @@
|
||||
/* Declarations for getopt.
|
||||
Copyright (C) 1989,90,91,92,93,94,96,97,98 Free Software Foundation, Inc.
|
||||
NOTE: The canonical source of this file is maintained with the GNU C Library.
|
||||
Bugs can be reported to bug-glibc@gnu.org.
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option) any
|
||||
later version.
|
||||
Copyright (C) 1989-1994, 1996-1999, 2001 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
USA. */
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _GETOPT_H
|
||||
|
||||
@@ -23,6 +23,17 @@
|
||||
# define _GETOPT_H 1
|
||||
#endif
|
||||
|
||||
/* If __GNU_LIBRARY__ is not already defined, either we are being used
|
||||
standalone, or this is the first header included in the source file.
|
||||
If we are being used with glibc, we need to include <features.h>, but
|
||||
that does not exist if we are standalone. So: if __GNU_LIBRARY__ is
|
||||
not defined, include <ctype.h>, which will pull in <features.h> for us
|
||||
if it's from glibc. (Why ctype.h? It's guaranteed to exist and it
|
||||
doesn't flood the namespace with stuff the way some other headers do.) */
|
||||
#if !defined __GNU_LIBRARY__
|
||||
# include <ctype.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@@ -82,7 +93,7 @@ extern int optopt;
|
||||
|
||||
struct option
|
||||
{
|
||||
# if defined __STDC__ && __STDC__
|
||||
# if (defined __STDC__ && __STDC__) || defined __cplusplus
|
||||
const char *name;
|
||||
# else
|
||||
char *name;
|
||||
@@ -126,7 +137,7 @@ struct option
|
||||
arguments to the option '\0'. This behavior is specific to the GNU
|
||||
`getopt'. */
|
||||
|
||||
#if defined __STDC__ && __STDC__
|
||||
#if (defined __STDC__ && __STDC__) || defined __cplusplus
|
||||
# ifdef __GNU_LIBRARY__
|
||||
/* Many other libraries have conflicting prototypes for getopt, with
|
||||
differences in the consts, in stdlib.h. To avoid compilation
|
||||
|
||||
@@ -1,28 +1,32 @@
|
||||
/* getopt_long and getopt_long_only entry points for GNU getopt.
|
||||
Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98
|
||||
Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98, 02
|
||||
Free Software Foundation, Inc.
|
||||
NOTE: The canonical source of this file is maintained with the GNU C Library.
|
||||
Bugs can be reported to bug-glibc@gnu.org.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option) any
|
||||
later version.
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include "getopt.h"
|
||||
#ifdef _LIBC
|
||||
# include <getopt.h>
|
||||
#else
|
||||
# include "getopt.h"
|
||||
#endif
|
||||
|
||||
#if !defined __STDC__ || !__STDC__
|
||||
/* This is a separate conditional since some stdc systems
|
||||
@@ -90,6 +94,10 @@ getopt_long_only (argc, argv, options, long_options, opt_index)
|
||||
return _getopt_internal (argc, argv, options, long_options, opt_index, 1);
|
||||
}
|
||||
|
||||
# ifdef _LIBC
|
||||
libc_hidden_def (getopt_long)
|
||||
libc_hidden_def (getopt_long_only)
|
||||
# endif
|
||||
|
||||
#endif /* Not ELIDE_CODE. */
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1992,93,94,95,96,97,98,99,2000 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1992,93,94,95,96,97,98,99,2000, 2001 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <termios.h>
|
||||
#include <unistd.h>
|
||||
#include "getline.h"
|
||||
#include "unlocked-io.h"
|
||||
|
||||
/* It is desirable to use this bit on systems that have it.
|
||||
The only bit of terminal state we want to twiddle is echoing, which is
|
||||
|
||||
13
lib/getstr.c
13
lib/getstr.c
@@ -1,6 +1,6 @@
|
||||
/* getstr.c -- core function for GNU C library getline replacement function
|
||||
|
||||
Copyright (C) 1993, 1996-2000 Free Software Foundation, Inc.
|
||||
Copyright (C) 1993, 1996-2001 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
@@ -25,14 +25,14 @@
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
#if STDC_HEADERS
|
||||
# include <stdlib.h>
|
||||
#else
|
||||
char *malloc (), *realloc ();
|
||||
#endif
|
||||
|
||||
#include "unlocked-io.h"
|
||||
|
||||
/* Always add at least this many bytes when extending the buffer. */
|
||||
#define MIN_CHUNK 64
|
||||
|
||||
@@ -47,7 +47,7 @@ int
|
||||
getstr (char **lineptr, size_t *n, FILE *stream, int delim1, int delim2,
|
||||
size_t offset)
|
||||
{
|
||||
int nchars_avail; /* Allocated but unused chars in *LINEPTR. */
|
||||
size_t nchars_avail; /* Allocated but unused chars in *LINEPTR. */
|
||||
char *read_pos; /* Where we're reading into *LINEPTR. */
|
||||
int ret;
|
||||
|
||||
@@ -62,6 +62,9 @@ getstr (char **lineptr, size_t *n, FILE *stream, int delim1, int delim2,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (*n < offset)
|
||||
return -1;
|
||||
|
||||
nchars_avail = *n - offset;
|
||||
read_pos = *lineptr + offset;
|
||||
|
||||
@@ -73,7 +76,6 @@ getstr (char **lineptr, size_t *n, FILE *stream, int delim1, int delim2,
|
||||
always (unless we get an error while reading the first char)
|
||||
NUL-terminate the line buffer. */
|
||||
|
||||
assert(*n - nchars_avail == read_pos - *lineptr);
|
||||
if (nchars_avail < 2)
|
||||
{
|
||||
if (*n > MIN_CHUNK)
|
||||
@@ -86,7 +88,6 @@ getstr (char **lineptr, size_t *n, FILE *stream, int delim1, int delim2,
|
||||
if (!*lineptr)
|
||||
return -1;
|
||||
read_pos = *n - nchars_avail + *lineptr;
|
||||
assert(*n - nchars_avail == read_pos - *lineptr);
|
||||
}
|
||||
|
||||
if (c == EOF || ferror (stream))
|
||||
|
||||
69
lib/gettext.h
Normal file
69
lib/gettext.h
Normal file
@@ -0,0 +1,69 @@
|
||||
/* Convenience header for conditional use of GNU <libintl.h>.
|
||||
Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Library General Public License as published
|
||||
by the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
USA. */
|
||||
|
||||
#ifndef _LIBGETTEXT_H
|
||||
# define _LIBGETTEXT_H 1
|
||||
|
||||
/* NLS can be disabled through the configure --disable-nls option. */
|
||||
# if ENABLE_NLS
|
||||
|
||||
/* Get declarations of GNU message catalog functions. */
|
||||
# include <libintl.h>
|
||||
|
||||
# else
|
||||
|
||||
/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
|
||||
chokes if dcgettext is defined as a macro. So include it now, to make
|
||||
later inclusions of <locale.h> a NOP. We don't include <libintl.h>
|
||||
as well because people using "gettext.h" will not include <libintl.h>,
|
||||
and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
|
||||
is OK. */
|
||||
# if defined(__sun)
|
||||
# include <locale.h>
|
||||
# endif
|
||||
|
||||
/* Disabled NLS.
|
||||
The casts to 'const char *' serve the purpose of producing warnings
|
||||
for invalid uses of the value returned from these functions.
|
||||
On pre-ANSI systems without 'const', the config.h file is supposed to
|
||||
contain "#define const". */
|
||||
# define gettext(Msgid) ((const char *) (Msgid))
|
||||
# define dgettext(Domainname, Msgid) ((const char *) (Msgid))
|
||||
# define dcgettext(Domainname, Msgid, Category) ((const char *) (Msgid))
|
||||
# define ngettext(Msgid1, Msgid2, N) \
|
||||
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
|
||||
# define dngettext(Domainname, Msgid1, Msgid2, N) \
|
||||
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
|
||||
# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
|
||||
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
|
||||
# define textdomain(Domainname) ((const char *) (Domainname))
|
||||
# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
|
||||
# define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset))
|
||||
|
||||
# endif
|
||||
|
||||
/* A pseudo function call that serves as a marker for the automated
|
||||
extraction of messages, but does not call gettext(). The run-time
|
||||
translation is done at a different place in the code.
|
||||
The argument, String, should be a literal string. Concatenated strings
|
||||
and other string expressions won't work.
|
||||
The macro's expansion is not parenthesized, so that it is suitable as
|
||||
initializer for static 'char[]' or 'const char[]' variables. */
|
||||
# define gettext_noop(String) String
|
||||
|
||||
#endif /* _LIBGETTEXT_H */
|
||||
46
lib/gettime.c
Normal file
46
lib/gettime.c
Normal file
@@ -0,0 +1,46 @@
|
||||
/* gettime -- get the system clock
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Written by Paul Eggert. */
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include "timespec.h"
|
||||
|
||||
/* Get the system time. */
|
||||
|
||||
int
|
||||
gettime (struct timespec *ts)
|
||||
{
|
||||
#if defined CLOCK_REALTIME && HAVE_CLOCK_GETTIME
|
||||
if (clock_gettime (CLOCK_REALTIME, ts) == 0)
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
{
|
||||
struct timeval tv;
|
||||
int r = gettimeofday (&tv, 0);
|
||||
if (r == 0)
|
||||
{
|
||||
ts->tv_sec = tv.tv_sec;
|
||||
ts->tv_nsec = tv.tv_usec * 1000;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
}
|
||||
86
lib/gettimeofday.c
Normal file
86
lib/gettimeofday.c
Normal file
@@ -0,0 +1,86 @@
|
||||
/* Work around the bug in some systems whereby gettimeofday clobbers the
|
||||
static buffer that localtime uses for it's return value. The gettimeofday
|
||||
function from Mac OS X 10.0.4, i.e. Darwin 1.3.7 has this problem.
|
||||
Copyright (C) 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* written by Jim Meyering */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
/* Disable the definitions of gettimeofday and localtime (from config.h)
|
||||
so we can use the library versions here. */
|
||||
#undef gettimeofday
|
||||
#undef localtime
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#if TIME_WITH_SYS_TIME
|
||||
# include <sys/time.h>
|
||||
# include <time.h>
|
||||
#else
|
||||
# if HAVE_SYS_TIME_H
|
||||
# include <sys/time.h>
|
||||
# else
|
||||
# include <time.h>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
static struct tm *localtime_buffer_addr;
|
||||
|
||||
/* This is a wrapper for localtime. It is used only on systems for which
|
||||
gettimeofday clobbers the static buffer used for localtime's result.
|
||||
|
||||
On the first call, record the address of the static buffer that
|
||||
localtime uses for its result. */
|
||||
|
||||
struct tm *
|
||||
rpl_localtime (const time_t *timep)
|
||||
{
|
||||
struct tm *tm = localtime (timep);
|
||||
|
||||
if (! localtime_buffer_addr)
|
||||
localtime_buffer_addr = tm;
|
||||
|
||||
return tm;
|
||||
}
|
||||
|
||||
/* This is a wrapper for gettimeofday. It is used only on systems for which
|
||||
gettimeofday clobbers the static buffer used for localtime's result.
|
||||
|
||||
Save and restore the contents of the buffer used for localtime's result
|
||||
around the call to gettimeofday. */
|
||||
|
||||
int
|
||||
rpl_gettimeofday (struct timeval *tv, struct timezone *tz)
|
||||
{
|
||||
struct tm save;
|
||||
int result;
|
||||
|
||||
if (! localtime_buffer_addr)
|
||||
{
|
||||
time_t t = 0;
|
||||
localtime_buffer_addr = localtime (&t);
|
||||
}
|
||||
|
||||
save = *localtime_buffer_addr;
|
||||
result = gettimeofday (tv, tz);
|
||||
*localtime_buffer_addr = save;
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/* getusershell.c -- Return names of valid user shells.
|
||||
Copyright (C) 1991, 1997, 2000 Free Software Foundation, Inc.
|
||||
Copyright (C) 1991, 1997, 2000, 2001 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -36,6 +36,7 @@
|
||||
# include <stdlib.h>
|
||||
#endif
|
||||
#include <ctype.h>
|
||||
#include "unlocked-io.h"
|
||||
#include "xalloc.h"
|
||||
|
||||
#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/* hard-locale.c -- Determine whether a locale is hard.
|
||||
Copyright 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
|
||||
Copyright (C) 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -19,39 +20,26 @@
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#ifndef __GNUC__
|
||||
# ifdef HAVE_ALLOCA_H
|
||||
# include <alloca.h>
|
||||
# else
|
||||
# ifdef _AIX
|
||||
# pragma alloca
|
||||
# else
|
||||
# ifdef _WIN32
|
||||
# include <malloc.h>
|
||||
# include <io.h>
|
||||
# else
|
||||
# ifndef alloca
|
||||
char *alloca ();
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if HAVE_LOCALE_H
|
||||
# include <locale.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_STDLIB_H
|
||||
# include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_STRING_H
|
||||
# include <string.h>
|
||||
#endif
|
||||
|
||||
#include "hard-locale.h"
|
||||
|
||||
/* Return nonzero if the current CATEGORY locale is hard, i.e. if you
|
||||
can't get away with assuming traditional C or POSIX behavior. */
|
||||
int
|
||||
hard_locale (int category)
|
||||
{
|
||||
#if ! (defined ENABLE_NLS && HAVE_SETLOCALE)
|
||||
#if ! HAVE_SETLOCALE
|
||||
return 0;
|
||||
#else
|
||||
|
||||
@@ -60,22 +48,28 @@ hard_locale (int category)
|
||||
|
||||
if (p)
|
||||
{
|
||||
# if defined __GLIBC__ && __GLIBC__ >= 2
|
||||
# if defined __GLIBC__ && 2 <= __GLIBC__
|
||||
if (strcmp (p, "C") == 0 || strcmp (p, "POSIX") == 0)
|
||||
hard = 0;
|
||||
# else
|
||||
char *locale = alloca (strlen (p) + 1);
|
||||
strcpy (locale, p);
|
||||
char *locale = malloc (strlen (p) + 1);
|
||||
if (locale)
|
||||
{
|
||||
strcpy (locale, p);
|
||||
|
||||
/* Temporarily set the locale to the "C" and "POSIX" locales to
|
||||
find their names, so that we can determine whether one or the
|
||||
other is the caller's locale. */
|
||||
if (((p = setlocale (category, "C")) && strcmp (p, locale) == 0)
|
||||
|| ((p = setlocale (category, "POSIX")) && strcmp (p, locale) == 0))
|
||||
hard = 0;
|
||||
/* Temporarily set the locale to the "C" and "POSIX" locales
|
||||
to find their names, so that we can determine whether one
|
||||
or the other is the caller's locale. */
|
||||
if (((p = setlocale (category, "C"))
|
||||
&& strcmp (p, locale) == 0)
|
||||
|| ((p = setlocale (category, "POSIX"))
|
||||
&& strcmp (p, locale) == 0))
|
||||
hard = 0;
|
||||
|
||||
/* Restore the caller's locale. */
|
||||
setlocale (category, locale);
|
||||
/* Restore the caller's locale. */
|
||||
setlocale (category, locale);
|
||||
free (locale);
|
||||
}
|
||||
# endif
|
||||
}
|
||||
|
||||
|
||||
42
lib/hash-pjw.c
Normal file
42
lib/hash-pjw.c
Normal file
@@ -0,0 +1,42 @@
|
||||
/* hash-pjw.c -- compute a hash value from a NUL-terminated string.
|
||||
Copyright 2001 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include "hash-pjw.h"
|
||||
|
||||
/* A hash function for NUL-terminated char* strings using
|
||||
the method described in Aho, Sethi, & Ullman, p 436. */
|
||||
|
||||
unsigned int
|
||||
hash_pjw (const void *x, unsigned int tablesize)
|
||||
{
|
||||
const char *s = x;
|
||||
unsigned int h = 0;
|
||||
unsigned int g;
|
||||
|
||||
while (*s != 0)
|
||||
{
|
||||
h = (h << 4) + *s++;
|
||||
if ((g = h & (unsigned int) 0xf0000000) != 0)
|
||||
h = (h ^ (g >> 24)) ^ g;
|
||||
}
|
||||
|
||||
return (h % tablesize);
|
||||
}
|
||||
20
lib/hash-pjw.h
Normal file
20
lib/hash-pjw.h
Normal file
@@ -0,0 +1,20 @@
|
||||
/* hash-pjw.h -- declaration for a simple hash function
|
||||
Copyright 2001 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING.
|
||||
If not, write to the Free Software Foundation,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
unsigned int
|
||||
hash_pjw (const void *x, unsigned int tablesize);
|
||||
46
lib/hash.c
46
lib/hash.c
@@ -61,6 +61,40 @@ char *malloc ();
|
||||
|
||||
#include "hash.h"
|
||||
|
||||
struct hash_table
|
||||
{
|
||||
/* The array of buckets starts at BUCKET and extends to BUCKET_LIMIT-1,
|
||||
for a possibility of N_BUCKETS. Among those, N_BUCKETS_USED buckets
|
||||
are not empty, there are N_ENTRIES active entries in the table. */
|
||||
struct hash_entry *bucket;
|
||||
struct hash_entry *bucket_limit;
|
||||
unsigned n_buckets;
|
||||
unsigned n_buckets_used;
|
||||
unsigned n_entries;
|
||||
|
||||
/* Tuning arguments, kept in a physicaly separate structure. */
|
||||
const Hash_tuning *tuning;
|
||||
|
||||
/* Three functions are given to `hash_initialize', see the documentation
|
||||
block for this function. In a word, HASHER randomizes a user entry
|
||||
into a number up from 0 up to some maximum minus 1; COMPARATOR returns
|
||||
true if two user entries compare equally; and DATA_FREER is the cleanup
|
||||
function for a user entry. */
|
||||
Hash_hasher hasher;
|
||||
Hash_comparator comparator;
|
||||
Hash_data_freer data_freer;
|
||||
|
||||
/* A linked list of freed struct hash_entry structs. */
|
||||
struct hash_entry *free_entry_list;
|
||||
|
||||
#if USE_OBSTACK
|
||||
/* Whenever obstacks are used, it is possible to allocate all overflowed
|
||||
entries into a single stack, so they all can be freed in a single
|
||||
operation. It is not clear if the speedup is worth the trouble. */
|
||||
struct obstack entry_stack;
|
||||
#endif
|
||||
};
|
||||
|
||||
/* A hash table contains many internal entries, each holding a pointer to
|
||||
some user provided data (also called a user entry). An entry indistinctly
|
||||
refers to both the internal entry and its associated user entry. A user
|
||||
@@ -576,19 +610,22 @@ void
|
||||
hash_clear (Hash_table *table)
|
||||
{
|
||||
struct hash_entry *bucket;
|
||||
struct hash_entry *cursor;
|
||||
|
||||
for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
|
||||
{
|
||||
if (bucket->data)
|
||||
{
|
||||
struct hash_entry *cursor;
|
||||
struct hash_entry *next;
|
||||
|
||||
/* Free the bucket overflow. */
|
||||
for (cursor = bucket->next; cursor; cursor = cursor->next)
|
||||
for (cursor = bucket->next; cursor; cursor = next)
|
||||
{
|
||||
if (table->data_freer)
|
||||
(*table->data_freer) (cursor->data);
|
||||
cursor->data = NULL;
|
||||
|
||||
next = cursor->next;
|
||||
/* Relinking is done one entry at a time, as it is to be expected
|
||||
that overflows are either rare or short. */
|
||||
cursor->next = table->free_entry_list;
|
||||
@@ -995,13 +1032,14 @@ hash_print (const Hash_table *table)
|
||||
struct hash_entry *cursor;
|
||||
|
||||
if (bucket)
|
||||
printf ("%d:\n", slot);
|
||||
printf ("%d:\n", bucket - table->bucket);
|
||||
|
||||
for (cursor = bucket; cursor; cursor = cursor->next)
|
||||
{
|
||||
char *s = (char *) cursor->data;
|
||||
/* FIXME */
|
||||
printf (" %s\n", s);
|
||||
if (s)
|
||||
printf (" %s\n", s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
53
lib/hash.h
53
lib/hash.h
@@ -1,5 +1,5 @@
|
||||
/* hash - hashing table processing.
|
||||
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
|
||||
Written by Jim Meyering <meyering@ascend.com>, 1998.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@@ -21,13 +21,16 @@
|
||||
/* Make sure USE_OBSTACK is defined to 1 if you want the allocator to use
|
||||
obstacks instead of malloc, and recompile `hash.c' with same setting. */
|
||||
|
||||
#ifndef PARAMS
|
||||
# if PROTOTYPES || __STDC__
|
||||
# define PARAMS(Args) Args
|
||||
# else
|
||||
# define PARAMS(Args) ()
|
||||
#ifndef HASH_H_
|
||||
# define HASH_H_
|
||||
|
||||
# ifndef PARAMS
|
||||
# if PROTOTYPES || __STDC__
|
||||
# define PARAMS(Args) Args
|
||||
# else
|
||||
# define PARAMS(Args) ()
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
typedef unsigned (*Hash_hasher) PARAMS ((const void *, unsigned));
|
||||
typedef bool (*Hash_comparator) PARAMS ((const void *, const void *));
|
||||
@@ -54,39 +57,7 @@ struct hash_tuning
|
||||
|
||||
typedef struct hash_tuning Hash_tuning;
|
||||
|
||||
struct hash_table
|
||||
{
|
||||
/* The array of buckets starts at BUCKET and extends to BUCKET_LIMIT-1,
|
||||
for a possibility of N_BUCKETS. Among those, N_BUCKETS_USED buckets
|
||||
are not empty, there are N_ENTRIES active entries in the table. */
|
||||
struct hash_entry *bucket;
|
||||
struct hash_entry *bucket_limit;
|
||||
unsigned n_buckets;
|
||||
unsigned n_buckets_used;
|
||||
unsigned n_entries;
|
||||
|
||||
/* Tuning arguments, kept in a physicaly separate structure. */
|
||||
const Hash_tuning *tuning;
|
||||
|
||||
/* Three functions are given to `hash_initialize', see the documentation
|
||||
block for this function. In a word, HASHER randomizes a user entry
|
||||
into a number up from 0 up to some maximum minus 1; COMPARATOR returns
|
||||
true if two user entries compare equally; and DATA_FREER is the cleanup
|
||||
function for a user entry. */
|
||||
Hash_hasher hasher;
|
||||
Hash_comparator comparator;
|
||||
Hash_data_freer data_freer;
|
||||
|
||||
/* A linked list of freed struct hash_entry structs. */
|
||||
struct hash_entry *free_entry_list;
|
||||
|
||||
#if USE_OBSTACK
|
||||
/* Whenever obstacks are used, it is possible to allocate all overflowed
|
||||
entries into a single stack, so they all can be freed in a single
|
||||
operation. It is not clear if the speedup is worth the trouble. */
|
||||
struct obstack entry_stack;
|
||||
#endif
|
||||
};
|
||||
struct hash_table;
|
||||
|
||||
typedef struct hash_table Hash_table;
|
||||
|
||||
@@ -118,3 +89,5 @@ void hash_free PARAMS ((Hash_table *));
|
||||
bool hash_rehash PARAMS ((Hash_table *, unsigned));
|
||||
void *hash_insert PARAMS ((Hash_table *, const void *));
|
||||
void *hash_delete PARAMS ((Hash_table *, const void *));
|
||||
|
||||
#endif
|
||||
|
||||
62
lib/human.c
62
lib/human.c
@@ -1,5 +1,7 @@
|
||||
/* human.c -- print human readable file size
|
||||
Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
|
||||
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 Free Software
|
||||
Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -66,16 +68,34 @@ char *getenv ();
|
||||
static const char suffixes[] =
|
||||
{
|
||||
0, /* not used */
|
||||
'k', /* kilo */
|
||||
'M', /* Mega */
|
||||
'G', /* Giga */
|
||||
'T', /* Tera */
|
||||
'P', /* Peta */
|
||||
'E', /* Exa */
|
||||
'Z', /* Zetta */
|
||||
'Y' /* Yotta */
|
||||
'K', /* kibi ('k' for kilo is a special case) */
|
||||
'M', /* mega or mebi */
|
||||
'G', /* giga or gibi */
|
||||
'T', /* tera or tebi */
|
||||
'P', /* peta or pebi */
|
||||
'E', /* exa or exbi */
|
||||
'Z', /* zetta or 2**70 */
|
||||
'Y' /* yotta or 2**80 */
|
||||
};
|
||||
|
||||
/* Generate into P[-1] (and possibly P[-2]) the proper suffix for
|
||||
POWER and BASE. Return the address of the generated suffix. */
|
||||
static char *
|
||||
generate_suffix_backwards (char *p, int power, int base)
|
||||
{
|
||||
char letter = suffixes[power];
|
||||
|
||||
if (base == 1000)
|
||||
{
|
||||
*--p = 'B';
|
||||
if (power == 1)
|
||||
letter = 'k';
|
||||
}
|
||||
|
||||
*--p = letter;
|
||||
return p;
|
||||
}
|
||||
|
||||
/* If INEXACT_STYLE is not human_round_to_even, and if easily
|
||||
possible, adjust VALUE according to the style. */
|
||||
static double
|
||||
@@ -113,7 +133,7 @@ human_readable (uintmax_t n, char *buf,
|
||||
Use INEXACT_STYLE to determine whether to take the ceiling or floor
|
||||
of any result that cannot be expressed exactly.
|
||||
|
||||
If OUTPUT_BLOCK_SIZE is negative, use a format like "127k" if
|
||||
If OUTPUT_BLOCK_SIZE is negative, use a format like "127K" if
|
||||
possible, using powers of -OUTPUT_BLOCK_SIZE; otherwise, use
|
||||
ordinary decimal format. Normally -OUTPUT_BLOCK_SIZE is either
|
||||
1000 or 1024; it must be at least 2. Most people visually process
|
||||
@@ -121,9 +141,10 @@ human_readable (uintmax_t n, char *buf,
|
||||
more prone to misinterpretation. Hence, converting to an
|
||||
abbreviated form usually improves readability. Use a suffix
|
||||
indicating which power is being used. For example, assuming
|
||||
-OUTPUT_BLOCK_SIZE is 1024, 8500 would be converted to 8.3k,
|
||||
-OUTPUT_BLOCK_SIZE is 1024, 8500 would be converted to 8.3K,
|
||||
133456345 to 127M, 56990456345 to 53G, and so on. Numbers smaller
|
||||
than -OUTPUT_BLOCK_SIZE aren't modified. */
|
||||
than -OUTPUT_BLOCK_SIZE aren't modified. If -OUTPUT_BLOCK_SIZE is
|
||||
1024, append a "B" after any size letter. */
|
||||
|
||||
char *
|
||||
human_readable_inexact (uintmax_t n, char *buf,
|
||||
@@ -193,6 +214,8 @@ human_readable_inexact (uintmax_t n, char *buf,
|
||||
sprintf (buf, "%.0f", adjust_value (inexact_style, damt));
|
||||
else
|
||||
{
|
||||
char suffix[3];
|
||||
char const *psuffix;
|
||||
double e = 1;
|
||||
power = 0;
|
||||
|
||||
@@ -205,12 +228,13 @@ human_readable_inexact (uintmax_t n, char *buf,
|
||||
|
||||
damt /= e;
|
||||
|
||||
sprintf (buf, "%.1f%c", adjust_value (inexact_style, damt),
|
||||
suffixes[power]);
|
||||
if (4 < strlen (buf))
|
||||
sprintf (buf, "%.0f%c",
|
||||
adjust_value (inexact_style, damt * 10) / 10,
|
||||
suffixes[power]);
|
||||
suffix[2] = '\0';
|
||||
psuffix = generate_suffix_backwards (suffix + 2, power, base);
|
||||
sprintf (buf, "%.1f%s",
|
||||
adjust_value (inexact_style, damt), psuffix);
|
||||
if (4 + (base == 1000) < strlen (buf))
|
||||
sprintf (buf, "%.0f%s",
|
||||
adjust_value (inexact_style, damt * 10) / 10, psuffix);
|
||||
}
|
||||
|
||||
return buf;
|
||||
@@ -236,7 +260,7 @@ human_readable_inexact (uintmax_t n, char *buf,
|
||||
}
|
||||
while (base <= amt && power < sizeof suffixes - 1);
|
||||
|
||||
*--p = suffixes[power];
|
||||
p = generate_suffix_backwards (p, power, base);
|
||||
|
||||
if (amt < 10)
|
||||
{
|
||||
|
||||
11
lib/lchown.c
11
lib/lchown.c
@@ -1,5 +1,5 @@
|
||||
/* Provide a stub lchown function for systems that lack it.
|
||||
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -30,8 +30,13 @@ extern int errno;
|
||||
#ifdef STAT_MACROS_BROKEN
|
||||
# undef S_ISLNK
|
||||
#endif
|
||||
#if !defined(S_ISLNK) && defined(S_IFLNK)
|
||||
# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
|
||||
|
||||
#ifndef S_ISLNK
|
||||
# ifdef S_IFLNK
|
||||
# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
|
||||
# else
|
||||
# define S_ISLNK(m) 0
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Declare chown to avoid a warning. Don't include unistd.h,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* linebuffer.c -- read arbitrarily long lines
|
||||
Copyright (C) 1986, 1991, 1998, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1986, 1991, 1998, 1999, 2001 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -24,9 +24,9 @@
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include "linebuffer.h"
|
||||
#include "unlocked-io.h"
|
||||
#include "xalloc.h"
|
||||
|
||||
char *xmalloc ();
|
||||
char *xrealloc ();
|
||||
void free ();
|
||||
|
||||
/* Initialize linebuffer LINEBUFFER for use. */
|
||||
@@ -36,14 +36,16 @@ initbuffer (struct linebuffer *linebuffer)
|
||||
{
|
||||
linebuffer->length = 0;
|
||||
linebuffer->size = 200;
|
||||
linebuffer->buffer = (char *) xmalloc (linebuffer->size);
|
||||
linebuffer->buffer = xmalloc (linebuffer->size);
|
||||
}
|
||||
|
||||
/* Read an arbitrarily long line of text from STREAM into LINEBUFFER.
|
||||
Keep the newline; append a newline if it's the last line of a file
|
||||
that ends in a non-newline character. Do not null terminate.
|
||||
Return LINEBUFFER, except at end of file return 0. */
|
||||
|
||||
Therefore the stream can contain NUL bytes, and the length
|
||||
(including the newline) is returned in linebuffer->length.
|
||||
Return NULL upon error, or when STREAM is empty.
|
||||
Otherwise, return LINEBUFFER. */
|
||||
struct linebuffer *
|
||||
readline (struct linebuffer *linebuffer, FILE *stream)
|
||||
{
|
||||
@@ -53,7 +55,7 @@ readline (struct linebuffer *linebuffer, FILE *stream)
|
||||
char *end = buffer + linebuffer->size; /* Sentinel. */
|
||||
|
||||
if (feof (stream) || ferror (stream))
|
||||
return 0;
|
||||
return NULL;
|
||||
|
||||
do
|
||||
{
|
||||
@@ -61,7 +63,7 @@ readline (struct linebuffer *linebuffer, FILE *stream)
|
||||
if (c == EOF)
|
||||
{
|
||||
if (p == buffer)
|
||||
return 0;
|
||||
return NULL;
|
||||
if (p[-1] == '\n')
|
||||
break;
|
||||
c = '\n';
|
||||
@@ -69,7 +71,7 @@ readline (struct linebuffer *linebuffer, FILE *stream)
|
||||
if (p == end)
|
||||
{
|
||||
linebuffer->size *= 2;
|
||||
buffer = (char *) xrealloc (buffer, linebuffer->size);
|
||||
buffer = xrealloc (buffer, linebuffer->size);
|
||||
p = p - linebuffer->buffer + buffer;
|
||||
linebuffer->buffer = buffer;
|
||||
end = buffer + linebuffer->size;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Determine a canonical name for the current locale's character encoding.
|
||||
|
||||
Copyright (C) 2000-2001 Free Software Foundation, Inc.
|
||||
Copyright (C) 2000-2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Library General Public License as published
|
||||
@@ -42,7 +42,12 @@
|
||||
# define WIN32
|
||||
#endif
|
||||
|
||||
#ifndef WIN32
|
||||
#if defined __EMX__
|
||||
/* Assume EMX program runs on OS/2, even if compiled under DOS. */
|
||||
# define OS2
|
||||
#endif
|
||||
|
||||
#if !defined WIN32
|
||||
# if HAVE_LANGINFO_CODESET
|
||||
# include <langinfo.h>
|
||||
# else
|
||||
@@ -50,10 +55,19 @@
|
||||
# include <locale.h>
|
||||
# endif
|
||||
# endif
|
||||
#else /* WIN32 */
|
||||
#elif defined WIN32
|
||||
# define WIN32_LEAN_AND_MEAN
|
||||
# include <windows.h>
|
||||
#endif
|
||||
#if defined OS2
|
||||
# define INCL_DOS
|
||||
# include <os2.h>
|
||||
#endif
|
||||
|
||||
#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
|
||||
/* Win32, OS/2, DOS */
|
||||
# define ISSLASH(C) ((C) == '/' || (C) == '\\')
|
||||
#endif
|
||||
|
||||
#ifndef DIRECTORY_SEPARATOR
|
||||
# define DIRECTORY_SEPARATOR '/'
|
||||
@@ -63,27 +77,35 @@
|
||||
# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_GETC_UNLOCKED
|
||||
# undef getc
|
||||
# define getc getc_unlocked
|
||||
#endif
|
||||
|
||||
/* The following static variable is declared 'volatile' to avoid a
|
||||
possible multithread problem in the function get_charset_aliases. If we
|
||||
are running in a threaded environment, and if two threads initialize
|
||||
'charset_aliases' simultaneously, both will produce the same value,
|
||||
and everything will be ok if the two assignments to 'charset_aliases'
|
||||
are atomic. But I don't know what will happen if the two assignments mix. */
|
||||
#if __STDC__ != 1
|
||||
# define volatile /* empty */
|
||||
#endif
|
||||
/* Pointer to the contents of the charset.alias file, if it has already been
|
||||
read, else NULL. Its format is:
|
||||
ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */
|
||||
static char * volatile charset_aliases;
|
||||
static const char * volatile charset_aliases;
|
||||
|
||||
/* Return a pointer to the contents of the charset.alias file. */
|
||||
static const char *
|
||||
get_charset_aliases ()
|
||||
{
|
||||
char *cp;
|
||||
const char *cp;
|
||||
|
||||
cp = charset_aliases;
|
||||
if (cp == NULL)
|
||||
{
|
||||
#ifndef WIN32
|
||||
#if !defined WIN32
|
||||
FILE *fp;
|
||||
const char *dir = LIBDIR;
|
||||
const char *base = "charset.alias";
|
||||
@@ -135,19 +157,19 @@ get_charset_aliases ()
|
||||
continue;
|
||||
}
|
||||
ungetc (c, fp);
|
||||
if (fscanf(fp, "%50s %50s", buf1, buf2) < 2)
|
||||
if (fscanf (fp, "%50s %50s", buf1, buf2) < 2)
|
||||
break;
|
||||
l1 = strlen (buf1);
|
||||
l2 = strlen (buf2);
|
||||
if (res_size == 0)
|
||||
{
|
||||
res_size = l1 + 1 + l2 + 1;
|
||||
res_ptr = malloc (res_size + 1);
|
||||
res_ptr = (char *) malloc (res_size + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
res_size += l1 + 1 + l2 + 1;
|
||||
res_ptr = realloc (res_ptr, res_size + 1);
|
||||
res_ptr = (char *) realloc (res_ptr, res_size + 1);
|
||||
}
|
||||
if (res_ptr == NULL)
|
||||
{
|
||||
@@ -171,14 +193,16 @@ get_charset_aliases ()
|
||||
if (file_name != NULL)
|
||||
free (file_name);
|
||||
|
||||
#else /* WIN32 */
|
||||
#else
|
||||
|
||||
/* To avoid the troubles of installing a separate file in the same
|
||||
directory as the DLL and of retrieving the DLL's directory at
|
||||
runtime, simply inline the aliases here. */
|
||||
|
||||
# if defined WIN32
|
||||
cp = "CP936" "\0" "GBK" "\0"
|
||||
"CP1361" "\0" "JOHAB" "\0";
|
||||
# endif
|
||||
#endif
|
||||
|
||||
charset_aliases = cp;
|
||||
@@ -202,7 +226,7 @@ locale_charset ()
|
||||
const char *codeset;
|
||||
const char *aliases;
|
||||
|
||||
#ifndef WIN32
|
||||
#if !(defined WIN32 || defined OS2)
|
||||
|
||||
# if HAVE_LANGINFO_CODESET
|
||||
|
||||
@@ -239,7 +263,7 @@ locale_charset ()
|
||||
|
||||
# endif
|
||||
|
||||
#else /* WIN32 */
|
||||
#elif defined WIN32
|
||||
|
||||
static char buf[2 + 10 + 1];
|
||||
|
||||
@@ -247,6 +271,59 @@ locale_charset ()
|
||||
sprintf (buf, "CP%u", GetACP ());
|
||||
codeset = buf;
|
||||
|
||||
#elif defined OS2
|
||||
|
||||
const char *locale;
|
||||
static char buf[2 + 10 + 1];
|
||||
ULONG cp[3];
|
||||
ULONG cplen;
|
||||
|
||||
/* Allow user to override the codeset, as set in the operating system,
|
||||
with standard language environment variables. */
|
||||
locale = getenv ("LC_ALL");
|
||||
if (locale == NULL || locale[0] == '\0')
|
||||
{
|
||||
locale = getenv ("LC_CTYPE");
|
||||
if (locale == NULL || locale[0] == '\0')
|
||||
locale = getenv ("LANG");
|
||||
}
|
||||
if (locale != NULL && locale[0] != '\0')
|
||||
{
|
||||
/* If the locale name contains an encoding after the dot, return it. */
|
||||
const char *dot = strchr (locale, '.');
|
||||
|
||||
if (dot != NULL)
|
||||
{
|
||||
const char *modifier;
|
||||
|
||||
dot++;
|
||||
/* Look for the possible @... trailer and remove it, if any. */
|
||||
modifier = strchr (dot, '@');
|
||||
if (modifier == NULL)
|
||||
return dot;
|
||||
if (modifier - dot < sizeof (buf))
|
||||
{
|
||||
memcpy (buf, dot, modifier - dot);
|
||||
buf [modifier - dot] = '\0';
|
||||
return buf;
|
||||
}
|
||||
}
|
||||
|
||||
/* Resolve through the charset.alias file. */
|
||||
codeset = locale;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* OS/2 has a function returning the locale's codepage as a number. */
|
||||
if (DosQueryCp (sizeof (cp), cp, &cplen))
|
||||
codeset = "";
|
||||
else
|
||||
{
|
||||
sprintf (buf, "CP%u", cp[0]);
|
||||
codeset = buf;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
if (codeset == NULL)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* makepath.c -- Ensure that a directory path exists.
|
||||
Copyright (C) 1990, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
Copyright (C) 1990, 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -46,7 +46,7 @@ char *alloca ();
|
||||
# undef S_ISDIR
|
||||
#endif
|
||||
|
||||
#if !defined(S_ISDIR) && defined(S_IFDIR)
|
||||
#if !defined S_ISDIR && defined S_IFDIR
|
||||
# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
|
||||
#endif
|
||||
|
||||
@@ -311,7 +311,7 @@ make_path (const char *argpath,
|
||||
|
||||
if ((owner != (uid_t) -1 || group != (gid_t) -1)
|
||||
&& chown (basename_dir, owner, group)
|
||||
#if defined(AFS) && defined (EPERM)
|
||||
#if defined AFS && defined EPERM
|
||||
&& errno != EPERM
|
||||
#endif
|
||||
)
|
||||
@@ -338,7 +338,7 @@ make_path (const char *argpath,
|
||||
stat and mkdir process O(n^2) file name components. */
|
||||
if (do_chdir && chdir (basename_dir) < 0)
|
||||
{
|
||||
error (0, errno, _("cannot chdir to directory, %s"),
|
||||
error (0, errno, _("cannot chdir to directory %s"),
|
||||
quote (dirpath));
|
||||
CLEANUP;
|
||||
return 1;
|
||||
@@ -355,6 +355,9 @@ make_path (const char *argpath,
|
||||
if (!do_chdir)
|
||||
basename_dir = dirpath;
|
||||
|
||||
/* Done creating leading directories. Restore original umask. */
|
||||
umask (oldmask);
|
||||
|
||||
/* We're done making leading directories.
|
||||
Create the final component of the path. */
|
||||
|
||||
@@ -364,9 +367,6 @@ make_path (const char *argpath,
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Done creating directories. Restore original umask. */
|
||||
umask (oldmask);
|
||||
|
||||
if (verbose_fmt_string != NULL)
|
||||
error (0, 0, verbose_fmt_string, quote (dirpath));
|
||||
|
||||
@@ -392,7 +392,8 @@ make_path (const char *argpath,
|
||||
if ((mode & ~S_IRWXUGO)
|
||||
&& chmod (basename_dir, mode))
|
||||
{
|
||||
error (0, errno, _("cannot change permissions of %s"), quote (dirpath));
|
||||
error (0, errno, _("cannot change permissions of %s"),
|
||||
quote (dirpath));
|
||||
retval = 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Determine the number of screen columns needed for a string.
|
||||
Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
Copyright (C) 2000-2001 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -21,19 +21,10 @@
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
/* Get MB_LEN_MAX. */
|
||||
#if HAVE_LIMITS_H
|
||||
# include <limits.h>
|
||||
#endif
|
||||
|
||||
/* Get MB_CUR_MAX. */
|
||||
#if HAVE_STDLIB_H
|
||||
# include <stdlib.h>
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
|
||||
#if HAVE_STRING_H
|
||||
# include <string.h>
|
||||
#endif
|
||||
#include <string.h>
|
||||
|
||||
/* Get isprint(). */
|
||||
#include <ctype.h>
|
||||
@@ -43,13 +34,22 @@
|
||||
# include <wchar.h>
|
||||
#endif
|
||||
|
||||
/* Get iswprint(). */
|
||||
/* Get iswprint(), iswcntrl(). */
|
||||
#if HAVE_WCTYPE_H
|
||||
# include <wctype.h>
|
||||
#endif
|
||||
#if !defined iswprint && !HAVE_ISWPRINT
|
||||
# define iswprint(wc) 1
|
||||
#endif
|
||||
#if !defined iswcntrl && !HAVE_ISWCNTRL
|
||||
# define iswcntrl(wc) 0
|
||||
#endif
|
||||
|
||||
#ifndef mbsinit
|
||||
# if !HAVE_MBSINIT
|
||||
# define mbsinit(ps) 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_DECL_WCWIDTH
|
||||
"this configure-time declaration test was not run"
|
||||
@@ -75,32 +75,40 @@ int wcwidth ();
|
||||
/* Undefine to protect against the definition in wctype.h of solaris2.6. */
|
||||
#undef ISPRINT
|
||||
#define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (c))
|
||||
#undef ISCNTRL
|
||||
#define ISCNTRL(c) (IN_CTYPE_DOMAIN (c) && iscntrl (c))
|
||||
|
||||
#include "mbswidth.h"
|
||||
|
||||
/* Returns the number of columns needed to represent the multibyte
|
||||
character string pointed to by STRING. If a non-printable character
|
||||
occurs, -1 is returned, unless MBSW_ACCEPT_UNPRINTABLE is specified.
|
||||
With flags = 0, this is the multibyte analogon of the wcswidth function. */
|
||||
occurs, and MBSW_REJECT_UNPRINTABLE is specified, -1 is returned.
|
||||
With flags = MBSW_REJECT_INVALID | MBSW_REJECT_UNPRINTABLE, this is
|
||||
the multibyte analogon of the wcswidth function. */
|
||||
int
|
||||
mbswidth (const char *string, int flags)
|
||||
mbswidth (string, flags)
|
||||
const char *string;
|
||||
int flags;
|
||||
{
|
||||
return mbsnwidth (string, strlen (string), flags);
|
||||
}
|
||||
|
||||
/* Returns the number of columns needed to represent the multibyte
|
||||
character string pointed to by STRING of length NBYTES. If a
|
||||
non-printable character occurs, -1 is returned, unless
|
||||
MBSW_ACCEPT_UNPRINTABLE is specified. */
|
||||
non-printable character occurs, and MBSW_REJECT_UNPRINTABLE is
|
||||
specified, -1 is returned. */
|
||||
int
|
||||
mbsnwidth (const char *string, size_t nbytes, int flags)
|
||||
mbsnwidth (string, nbytes, flags)
|
||||
const char *string;
|
||||
size_t nbytes;
|
||||
int flags;
|
||||
{
|
||||
const char *p = string;
|
||||
const char *plimit = p + nbytes;
|
||||
int width;
|
||||
|
||||
width = 0;
|
||||
#if HAVE_MBRTOWC && (MB_LEN_MAX > 1)
|
||||
#if HAVE_MBRTOWC
|
||||
if (MB_CUR_MAX > 1)
|
||||
{
|
||||
while (p < plimit)
|
||||
@@ -146,7 +154,7 @@ mbsnwidth (const char *string, size_t nbytes, int flags)
|
||||
if (bytes == (size_t) -1)
|
||||
/* An invalid multibyte sequence was encountered. */
|
||||
{
|
||||
if (flags & MBSW_ACCEPT_INVALID)
|
||||
if (!(flags & MBSW_REJECT_INVALID))
|
||||
{
|
||||
p++;
|
||||
width++;
|
||||
@@ -159,7 +167,7 @@ mbsnwidth (const char *string, size_t nbytes, int flags)
|
||||
if (bytes == (size_t) -2)
|
||||
/* An incomplete multibyte character at the end. */
|
||||
{
|
||||
if (flags & MBSW_ACCEPT_INVALID)
|
||||
if (!(flags & MBSW_REJECT_INVALID))
|
||||
{
|
||||
p = plimit;
|
||||
width++;
|
||||
@@ -179,8 +187,8 @@ mbsnwidth (const char *string, size_t nbytes, int flags)
|
||||
width += w;
|
||||
else
|
||||
/* An unprintable multibyte character. */
|
||||
if (flags & MBSW_ACCEPT_UNPRINTABLE)
|
||||
width += 1;
|
||||
if (!(flags & MBSW_REJECT_UNPRINTABLE))
|
||||
width += (iswcntrl (wc) ? 0 : 1);
|
||||
else
|
||||
return -1;
|
||||
|
||||
@@ -198,8 +206,10 @@ mbsnwidth (const char *string, size_t nbytes, int flags)
|
||||
{
|
||||
unsigned char c = (unsigned char) *p++;
|
||||
|
||||
if ((flags & MBSW_ACCEPT_UNPRINTABLE) || ISPRINT (c))
|
||||
if (ISPRINT (c))
|
||||
width++;
|
||||
else if (!(flags & MBSW_REJECT_UNPRINTABLE))
|
||||
width += (ISCNTRL (c) ? 0 : 1);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef PARAMS
|
||||
# if defined PROTOTYPES || defined __STDC__
|
||||
# if defined (__GNUC__) || __STDC__
|
||||
# define PARAMS(Args) Args
|
||||
# else
|
||||
# define PARAMS(Args) ()
|
||||
@@ -25,13 +25,14 @@
|
||||
|
||||
/* Optional flags to influence mbswidth/mbsnwidth behavior. */
|
||||
|
||||
/* If this bit is set, assume invalid characters have width 0.
|
||||
Otherwise, return -1 upon finding an invalid or incomplete character. */
|
||||
#define MBSW_ACCEPT_INVALID 1
|
||||
/* If this bit is set, return -1 upon finding an invalid or incomplete
|
||||
character. Otherwise, assume invalid characters have width 1. */
|
||||
#define MBSW_REJECT_INVALID 1
|
||||
|
||||
/* If this bit is set, assume unprintable characters have width 1.
|
||||
Otherwise, return -1 upon finding a non-printable character. */
|
||||
#define MBSW_ACCEPT_UNPRINTABLE 2
|
||||
/* If this bit is set, return -1 upon finding a non-printable character.
|
||||
Otherwise, assume unprintable characters have width 0 if they are
|
||||
control characters and 1 otherwise. */
|
||||
#define MBSW_REJECT_UNPRINTABLE 2
|
||||
|
||||
/* Returns the number of screen columns needed for STRING. */
|
||||
#define mbswidth gnu_mbswidth /* avoid clash with UnixWare 7.1.1 function */
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* md5.c - Functions to compute MD5 message digest of files or memory blocks
|
||||
according to the definition of MD5 in RFC 1321 from April 1992.
|
||||
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995, 1996, 2001 Free Software Foundation, Inc.
|
||||
NOTE: The canonical source of this file is maintained with the GNU C
|
||||
Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu.
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
#endif
|
||||
|
||||
#include "md5.h"
|
||||
#include "unlocked-io.h"
|
||||
|
||||
#ifdef _LIBC
|
||||
# include <endian.h>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Locale-specific memory comparison.
|
||||
Copyright 1999 Free Software Foundation, Inc.
|
||||
Copyright 1999, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -21,6 +21,11 @@
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <errno.h>
|
||||
#ifndef errno
|
||||
extern int errno;
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#if HAVE_STRING_H
|
||||
@@ -30,7 +35,8 @@
|
||||
/* Compare S1 (with length S1LEN) and S2 (with length S2LEN) according
|
||||
to the LC_COLLATE locale. S1 and S2 do not overlap, and are not
|
||||
adjacent. Temporarily modify the bytes after S1 and S2, but
|
||||
restore their original contents before returning. */
|
||||
restore their original contents before returning. Set errno to an
|
||||
error number if there is an error, and to zero otherwise. */
|
||||
int
|
||||
memcoll (char *s1, size_t s1len, char *s2, size_t s2len)
|
||||
{
|
||||
@@ -41,7 +47,7 @@ memcoll (char *s1, size_t s1len, char *s2, size_t s2len)
|
||||
s1[s1len++] = '\0';
|
||||
s2[s2len++] = '\0';
|
||||
|
||||
while (! (diff = strcoll (s1, s2)))
|
||||
while (! (errno = 0, (diff = strcoll (s1, s2)) || errno))
|
||||
{
|
||||
/* strcoll found no difference, but perhaps it was fooled by NUL
|
||||
characters in the data. Work around this problem by advancing
|
||||
|
||||
76
lib/mkdir.c
Normal file
76
lib/mkdir.c
Normal file
@@ -0,0 +1,76 @@
|
||||
/* On some systems, mkdir ("foo/", 0700) fails because of the trailing
|
||||
slash. On those systems, this wrapper removes the trailing slash.
|
||||
Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* written by Jim Meyering */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
/* Disable the definition of mkdir to rpl_mkdir (from config.h) in this
|
||||
file. Otherwise, we'd get conflicting prototypes for rpl_mkdir on
|
||||
most systems. */
|
||||
#undef mkdir
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <stdio.h>
|
||||
#if HAVE_STDLIB_H
|
||||
# include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_STRING_H
|
||||
# include <string.h>
|
||||
#else
|
||||
# include <strings.h>
|
||||
#endif
|
||||
|
||||
#include "dirname.h"
|
||||
#include "xalloc.h"
|
||||
|
||||
#ifndef HAVE_DECL_FREE
|
||||
"this configure-time declaration test was not run"
|
||||
#endif
|
||||
#if !HAVE_DECL_FREE
|
||||
void free ();
|
||||
#endif
|
||||
|
||||
/* This function is required at least for NetBSD 1.5.2. */
|
||||
|
||||
int
|
||||
rpl_mkdir (char const *dir, mode_t mode)
|
||||
{
|
||||
int ret_val;
|
||||
char *tmp_dir;
|
||||
size_t len = strlen (dir);
|
||||
|
||||
if (len && dir[len - 1] == '/')
|
||||
{
|
||||
tmp_dir = xstrdup (dir);
|
||||
strip_trailing_slashes (tmp_dir);
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp_dir = (char *) dir;
|
||||
}
|
||||
|
||||
ret_val = mkdir (tmp_dir, mode);
|
||||
|
||||
if (tmp_dir != dir)
|
||||
free (tmp_dir);
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Copyright (C) 1998, 1999 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
/* Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
|
||||
This file is derived from the one in the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
@@ -16,6 +16,13 @@
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
/* Disable the definition of mkstemp to rpl_mkstemp (from config.h) in this
|
||||
file. Otherwise, we'd get conflicting prototypes for rpl_mkstemp on
|
||||
most systems. */
|
||||
#undef mkstemp
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
@@ -30,8 +37,7 @@ int __gen_tempname ();
|
||||
they are replaced with a string that makes the filename unique.
|
||||
Then open the file and return a fd. */
|
||||
int
|
||||
mkstemp (template)
|
||||
char *template;
|
||||
rpl_mkstemp (char *template)
|
||||
{
|
||||
return __gen_tempname (template, __GT_FILE);
|
||||
}
|
||||
|
||||
58
lib/mktime.c
58
lib/mktime.c
@@ -1,22 +1,22 @@
|
||||
/* Convert a `struct tm' to a time_t value.
|
||||
Copyright (C) 1993, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
|
||||
Copyright (C) 1993-1999, 2002 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Paul Eggert (eggert@twinsun.com).
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
/* Define this to have a standalone program to test this implementation of
|
||||
mktime. */
|
||||
@@ -49,6 +49,7 @@
|
||||
# include <stdio.h>
|
||||
# if STDC_HEADERS
|
||||
# include <stdlib.h>
|
||||
# include <string.h>
|
||||
# endif
|
||||
/* Make it work even if the system's libc has its own mktime routine. */
|
||||
# define mktime my_mktime
|
||||
@@ -236,6 +237,9 @@ __mktime_internal (struct tm *tp,
|
||||
int year_requested = tp->tm_year;
|
||||
int isdst = tp->tm_isdst;
|
||||
|
||||
/* 1 if the previous probe was DST. */
|
||||
int dst2;
|
||||
|
||||
/* Ensure that mon is in range, and set year accordingly. */
|
||||
int mon_remainder = mon % 12;
|
||||
int negative_mon_remainder = mon_remainder < 0;
|
||||
@@ -254,6 +258,13 @@ __mktime_internal (struct tm *tp,
|
||||
+ mday - 1);
|
||||
|
||||
int sec_requested = sec;
|
||||
|
||||
/* Only years after 1970 are defined.
|
||||
If year is 69, it might still be representable due to
|
||||
timezone differences. */
|
||||
if (year < 69)
|
||||
return -1;
|
||||
|
||||
#if LEAP_SECONDS_POSSIBLE
|
||||
/* Handle out-of-range seconds specially,
|
||||
since ydhms_tm_diff assumes every minute has 60 seconds. */
|
||||
@@ -270,20 +281,24 @@ __mktime_internal (struct tm *tp,
|
||||
tm.tm_yday = tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
|
||||
t0 = ydhms_tm_diff (year, yday, hour, min, sec, &tm);
|
||||
|
||||
for (t = t1 = t2 = t0 + *offset;
|
||||
for (t = t1 = t2 = t0 + *offset, dst2 = 0;
|
||||
(dt = ydhms_tm_diff (year, yday, hour, min, sec,
|
||||
ranged_convert (convert, &t, &tm)));
|
||||
t1 = t2, t2 = t, t += dt)
|
||||
t1 = t2, t2 = t, t += dt, dst2 = tm.tm_isdst != 0)
|
||||
if (t == t1 && t != t2
|
||||
&& (isdst < 0 || tm.tm_isdst < 0
|
||||
|| (isdst != 0) != (tm.tm_isdst != 0)))
|
||||
&& (tm.tm_isdst < 0
|
||||
|| (isdst < 0
|
||||
? dst2 <= (tm.tm_isdst != 0)
|
||||
: (isdst != 0) != (tm.tm_isdst != 0))))
|
||||
/* We can't possibly find a match, as we are oscillating
|
||||
between two values. The requested time probably falls
|
||||
within a spring-forward gap of size DT. Follow the common
|
||||
practice in this case, which is to return a time that is DT
|
||||
away from the requested time, preferring a time whose
|
||||
tm_isdst differs from the requested value. In practice,
|
||||
this is more useful than returning -1. */
|
||||
tm_isdst differs from the requested value. (If no tm_isdst
|
||||
was requested and only one of the two values has a nonzero
|
||||
tm_isdst, prefer that value.) In practice, this is more
|
||||
useful than returning -1. */
|
||||
break;
|
||||
else if (--remaining_probes == 0)
|
||||
return -1;
|
||||
@@ -357,6 +372,14 @@ __mktime_internal (struct tm *tp,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (year == 69)
|
||||
{
|
||||
/* If year was 69, need to check whether the time was representable
|
||||
or not. */
|
||||
if (t < 0 || t > 2 * 24 * 60 * 60)
|
||||
return -1;
|
||||
}
|
||||
|
||||
*tp = tm;
|
||||
return t;
|
||||
}
|
||||
@@ -382,6 +405,11 @@ mktime (tp)
|
||||
#ifdef weak_alias
|
||||
weak_alias (mktime, timelocal)
|
||||
#endif
|
||||
|
||||
#ifdef _LIBC
|
||||
libc_hidden_def (mktime)
|
||||
libc_hidden_weak (timelocal)
|
||||
#endif
|
||||
|
||||
#if DEBUG
|
||||
|
||||
|
||||
@@ -194,18 +194,18 @@ mode_compile (const char *mode_string, unsigned int masked_ops)
|
||||
&& S_IRGRP == RGRP && S_IWGRP == WGRP && S_IXGRP == XGRP
|
||||
&& S_IROTH == ROTH && S_IWOTH == WOTH && S_IXOTH == XOTH)
|
||||
? octal_value
|
||||
: ((octal_value & SUID ? S_ISUID : 0)
|
||||
| (octal_value & SGID ? S_ISGID : 0)
|
||||
| (octal_value & SVTX ? S_ISVTX : 0)
|
||||
| (octal_value & RUSR ? S_IRUSR : 0)
|
||||
| (octal_value & WUSR ? S_IWUSR : 0)
|
||||
| (octal_value & XUSR ? S_IXUSR : 0)
|
||||
| (octal_value & RGRP ? S_IRGRP : 0)
|
||||
| (octal_value & WGRP ? S_IWGRP : 0)
|
||||
| (octal_value & XGRP ? S_IXGRP : 0)
|
||||
| (octal_value & ROTH ? S_IROTH : 0)
|
||||
| (octal_value & WOTH ? S_IWOTH : 0)
|
||||
| (octal_value & XOTH ? S_IXOTH : 0)));
|
||||
: (mode_t) ((octal_value & SUID ? S_ISUID : 0)
|
||||
| (octal_value & SGID ? S_ISGID : 0)
|
||||
| (octal_value & SVTX ? S_ISVTX : 0)
|
||||
| (octal_value & RUSR ? S_IRUSR : 0)
|
||||
| (octal_value & WUSR ? S_IWUSR : 0)
|
||||
| (octal_value & XUSR ? S_IXUSR : 0)
|
||||
| (octal_value & RGRP ? S_IRGRP : 0)
|
||||
| (octal_value & WGRP ? S_IWGRP : 0)
|
||||
| (octal_value & XGRP ? S_IXGRP : 0)
|
||||
| (octal_value & ROTH ? S_IROTH : 0)
|
||||
| (octal_value & WOTH ? S_IWOTH : 0)
|
||||
| (octal_value & XOTH ? S_IXOTH : 0)));
|
||||
|
||||
p = make_node_op_equals (mode);
|
||||
if (p == NULL)
|
||||
@@ -413,18 +413,18 @@ mode_adjust (mode_t oldmode, const struct mode_change *changes)
|
||||
|
||||
if (changes->value & S_IRWXU)
|
||||
/* Copy `u' permissions onto `g' and `o'. */
|
||||
value |= ((value & S_IRUSR ? S_IRGRP | S_IROTH : 0)
|
||||
| (value & S_IWUSR ? S_IWGRP | S_IROTH : 0)
|
||||
value |= ( (value & S_IRUSR ? S_IRGRP | S_IROTH : 0)
|
||||
| (value & S_IWUSR ? S_IWGRP | S_IWOTH : 0)
|
||||
| (value & S_IXUSR ? S_IXGRP | S_IXOTH : 0));
|
||||
else if (changes->value & S_IRWXG)
|
||||
/* Copy `g' permissions onto `u' and `o'. */
|
||||
value |= ((value & S_IRGRP ? S_IRUSR | S_IROTH : 0)
|
||||
| (value & S_IWGRP ? S_IWUSR | S_IROTH : 0)
|
||||
value |= ( (value & S_IRGRP ? S_IRUSR | S_IROTH : 0)
|
||||
| (value & S_IWGRP ? S_IWUSR | S_IWOTH : 0)
|
||||
| (value & S_IXGRP ? S_IXUSR | S_IXOTH : 0));
|
||||
else
|
||||
/* Copy `o' permissions onto `u' and `g'. */
|
||||
value |= ((value & S_IROTH ? S_IRUSR | S_IRGRP : 0)
|
||||
| (value & S_IWOTH ? S_IWUSR | S_IRGRP : 0)
|
||||
value |= ( (value & S_IROTH ? S_IRUSR | S_IRGRP : 0)
|
||||
| (value & S_IWOTH ? S_IWUSR | S_IWGRP : 0)
|
||||
| (value & S_IXOTH ? S_IXUSR | S_IXGRP : 0));
|
||||
|
||||
/* In order to change only `u', `g', or `o' permissions,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* mountlist.c -- return a list of mounted filesystems
|
||||
Copyright (C) 1991, 1992, 1997-2000 Free Software Foundation, Inc.
|
||||
Copyright (C) 1991, 1992, 1997-2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -21,25 +21,23 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include "mountlist.h"
|
||||
|
||||
|
||||
#ifdef STDC_HEADERS
|
||||
# include <stdlib.h>
|
||||
#else
|
||||
void free ();
|
||||
#endif
|
||||
#if defined(STDC_HEADERS) || defined(HAVE_STRING_H)
|
||||
#if defined STDC_HEADERS || defined HAVE_STRING_H
|
||||
# include <string.h>
|
||||
#else
|
||||
# include <strings.h>
|
||||
#endif
|
||||
#include "xalloc.h"
|
||||
|
||||
#ifndef strstr
|
||||
char *strstr ();
|
||||
#endif
|
||||
char *xmalloc ();
|
||||
char *xrealloc ();
|
||||
char *xstrdup ();
|
||||
|
||||
#include <errno.h>
|
||||
#ifndef errno
|
||||
@@ -58,18 +56,33 @@ extern int errno;
|
||||
# include <sys/param.h>
|
||||
#endif
|
||||
|
||||
#if defined (MOUNTED_GETFSSTAT) /* __alpha running OSF_1 */
|
||||
# include <sys/mount.h>
|
||||
# include <sys/fs_types.h>
|
||||
#if defined MOUNTED_GETFSSTAT /* OSF_1 and Darwin1.3.x */
|
||||
# if HAVE_SYS_UCRED_H
|
||||
# include <sys/ucred.h> /* needed by powerpc-apple-darwin1.3.7 */
|
||||
# endif
|
||||
# if HAVE_SYS_MOUNT_H
|
||||
# include <sys/mount.h>
|
||||
# endif
|
||||
# if HAVE_SYS_FS_TYPES_H
|
||||
# include <sys/fs_types.h> /* needed by powerpc-apple-darwin1.3.7 */
|
||||
# endif
|
||||
# if HAVE_STRUCT_FSSTAT_F_FSTYPENAME
|
||||
# define FS_TYPE(Ent) ((Ent).f_fstypename)
|
||||
# else
|
||||
# define FS_TYPE(Ent) mnt_names[(Ent).f_type]
|
||||
# endif
|
||||
#endif /* MOUNTED_GETFSSTAT */
|
||||
|
||||
#ifdef MOUNTED_GETMNTENT1 /* 4.3BSD, SunOS, HP-UX, Dynix, Irix. */
|
||||
# include <mntent.h>
|
||||
# if !defined(MOUNTED)
|
||||
# if defined(MNT_MNTTAB) /* HP-UX. */
|
||||
# if !defined MOUNTED
|
||||
# if defined _PATH_MOUNTED /* GNU libc */
|
||||
# define MOUNTED _PATH_MOUNTED
|
||||
# endif
|
||||
# if defined MNT_MNTTAB /* HP-UX. */
|
||||
# define MOUNTED MNT_MNTTAB
|
||||
# endif
|
||||
# if defined(MNTTABNAME) /* Dynix. */
|
||||
# if defined MNTTABNAME /* Dynix. */
|
||||
# define MOUNTED MNTTABNAME
|
||||
# endif
|
||||
# endif
|
||||
@@ -123,12 +136,16 @@ extern int errno;
|
||||
# include <sys/mntent.h>
|
||||
#endif
|
||||
|
||||
#if defined (MNTOPT_IGNORE) && defined (HAVE_HASMNTOPT)
|
||||
#undef MNT_IGNORE
|
||||
#if defined MNTOPT_IGNORE && defined HAVE_HASMNTOPT
|
||||
# define MNT_IGNORE(M) hasmntopt ((M), MNTOPT_IGNORE)
|
||||
#else
|
||||
# define MNT_IGNORE(M) 0
|
||||
#endif
|
||||
|
||||
#include "mountlist.h"
|
||||
#include "unlocked-io.h"
|
||||
|
||||
#ifdef MOUNTED_GETMNTENT1 /* 4.3BSD, SunOS, HP-UX, Dynix, Irix. */
|
||||
/* Return the value of the hexadecimal number represented by CP.
|
||||
No prefix (like '0x') or suffix (like 'h') is expected to be
|
||||
@@ -417,7 +434,7 @@ read_filesystem_list (int need_fs_type)
|
||||
}
|
||||
#endif /* MOUNTED_GETMNT. */
|
||||
|
||||
#if defined (MOUNTED_FS_STAT_DEV) /* BeOS */
|
||||
#if defined MOUNTED_FS_STAT_DEV /* BeOS */
|
||||
{
|
||||
/* The next_dev() and fs_stat_dev() system calls give the list of
|
||||
all filesystems, including the information returned by statvfs()
|
||||
@@ -522,7 +539,7 @@ read_filesystem_list (int need_fs_type)
|
||||
}
|
||||
#endif /* MOUNTED_FS_STAT_DEV */
|
||||
|
||||
#if defined (MOUNTED_GETFSSTAT) /* __alpha running OSF_1 */
|
||||
#if defined MOUNTED_GETFSSTAT /* __alpha running OSF_1 */
|
||||
{
|
||||
int numsys, counter, bufsize;
|
||||
struct statfs *stats;
|
||||
@@ -546,7 +563,7 @@ read_filesystem_list (int need_fs_type)
|
||||
me = (struct mount_entry *) xmalloc (sizeof (struct mount_entry));
|
||||
me->me_devname = xstrdup (stats[counter].f_mntfromname);
|
||||
me->me_mountdir = xstrdup (stats[counter].f_mntonname);
|
||||
me->me_type = mnt_names[stats[counter].f_type];
|
||||
me->me_type = xstrdup (FS_TYPE (stats[counter]));
|
||||
me->me_dummy = ME_DUMMY (me->me_devname, me->me_type);
|
||||
me->me_remote = ME_REMOTE (me->me_devname, me->me_type);
|
||||
me->me_dev = (dev_t) -1; /* Magic; means not known yet. */
|
||||
@@ -560,7 +577,7 @@ read_filesystem_list (int need_fs_type)
|
||||
}
|
||||
#endif /* MOUNTED_GETFSSTAT */
|
||||
|
||||
#if defined (MOUNTED_FREAD) || defined (MOUNTED_FREAD_FSTYP) /* SVR[23]. */
|
||||
#if defined MOUNTED_FREAD || defined MOUNTED_FREAD_FSTYP /* SVR[23]. */
|
||||
{
|
||||
struct mnttab mnt;
|
||||
char *table = "/etc/mnttab";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* mountlist.h -- declarations for list of mounted filesystems
|
||||
Copyright (C) 1991, 1992, 1998, 2000 Free Software Foundation, Inc.
|
||||
Copyright (C) 1991, 1992, 1998, 2000-2002 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -38,13 +38,21 @@ struct mount_entry
|
||||
struct mount_entry *read_filesystem_list PARAMS ((int need_fs_type));
|
||||
|
||||
#ifndef ME_DUMMY
|
||||
# define ME_DUMMY(fs_name, fs_type) \
|
||||
(!strcmp (fs_type, "auto") \
|
||||
|| !strcmp (fs_type, "autofs") \
|
||||
# define ME_DUMMY(Fs_name, Fs_type) \
|
||||
(!strcmp (Fs_type, "autofs") \
|
||||
/* for Irix 6.5 */ \
|
||||
|| !strcmp (fs_type, "ignore"))
|
||||
|| !strcmp (Fs_type, "ignore"))
|
||||
#endif
|
||||
|
||||
#undef STREQ
|
||||
#define STREQ(a, b) (strcmp ((a), (b)) == 0)
|
||||
|
||||
#ifndef ME_REMOTE
|
||||
# define ME_REMOTE(fs_name, fs_type) (strchr (fs_name, ':') != 0)
|
||||
/* A file system is `remote' if its Fs_name contains a `:'
|
||||
or if (it is of type smbfs and its Fs_name starts with `//'). */
|
||||
# define ME_REMOTE(Fs_name, Fs_type) \
|
||||
(strchr ((Fs_name), ':') != 0 \
|
||||
|| ((Fs_name)[0] == '/' \
|
||||
&& (Fs_name)[1] == '/' \
|
||||
&& STREQ (Fs_type, "smbfs")))
|
||||
#endif
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user