mirror of
https://git.savannah.gnu.org/git/coreutils.git
synced 2025-09-10 07:59:52 +02:00
Compare commits
495 Commits
FILEUTILS-
...
FILEUTILS-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 |
311
ABOUT-NLS
311
ABOUT-NLS
@@ -113,6 +113,13 @@ 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.
|
||||
@@ -164,128 +171,190 @@ Available Packages
|
||||
==================
|
||||
|
||||
Languages are not equally supported in all packages. The following
|
||||
matrix shows the current state of internationalization, as of September
|
||||
2001. The matrix shows, in regard of each package, for which languages
|
||||
matrix shows the current state of internationalization, as of January
|
||||
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 bg cs da de el en eo es et fi fr gl he hr id it ja
|
||||
+----------------------------------------------------+
|
||||
a2ps | [] [] [] |
|
||||
bash | [] [] [] [] |
|
||||
bfd | |
|
||||
binutils | [] |
|
||||
bison | [] [] [] [] [] |
|
||||
clisp | [] [] [] [] |
|
||||
cpio | [] [] [] [] [] |
|
||||
diffutils | [] [] [] [] [] [] [] |
|
||||
enscript | [] [] |
|
||||
error | [] [] |
|
||||
fetchmail | |
|
||||
fileutils | [] [] [] [] [] [] [] [] |
|
||||
findutils | [] [] [] [] [] [] [] [] |
|
||||
flex | [] [] [] |
|
||||
freetype | |
|
||||
gas | |
|
||||
gawk | [] [] |
|
||||
gcal | |
|
||||
gcc | |
|
||||
gettext | [] [] [] [] [] [] [] [] [] [] |
|
||||
gnupg | [] [] [] [] [] [] [] |
|
||||
gprof | |
|
||||
grep | [] [] [] [] [] [] [] [] |
|
||||
hello | [] [] [] [] [] [] [] [] [] [] [] |
|
||||
id-utils | [] [] [] |
|
||||
indent | [] [] [] [] [] |
|
||||
jpilot | [] |
|
||||
kbd | |
|
||||
ld | [] |
|
||||
libc | [] [] [] [] [] [] [] [] |
|
||||
lilypond | [] |
|
||||
lynx | [] [] [] [] |
|
||||
m4 | [] [] [] [] [] [] [] [] |
|
||||
make | [] [] [] [] [] [] |
|
||||
mysecretdiary | [] |
|
||||
nano | [] [] [] |
|
||||
opcodes | |
|
||||
parted | [] [] [] |
|
||||
ptx | [] [] [] [] [] [] [] |
|
||||
python | |
|
||||
recode | [] [] [] [] [] [] [] [] [] |
|
||||
sed | [] [] [] [] [] [] [] [] [] [] [] [] |
|
||||
sh-utils | [] [] [] [] [] [] [] [] [] [] |
|
||||
sharutils | [] [] [] [] [] [] [] [] |
|
||||
sketch | |
|
||||
soundtracker | [] [] [] |
|
||||
sp | |
|
||||
tar | [] [] [] [] [] [] [] [] |
|
||||
texinfo | [] [] [] [] [] [] |
|
||||
textutils | [] [] [] [] [] [] [] [] |
|
||||
util-linux | [] [] |
|
||||
wdiff | [] [] [] |
|
||||
wget | [] [] [] [] [] [] [] [] [] [] |
|
||||
+----------------------------------------------------+
|
||||
bg cs da de el en eo es et fi fr gl he hr id it ja
|
||||
0 14 24 32 11 1 8 23 13 1 33 22 4 0 7 9 18
|
||||
Ready PO files bg ca cs da de el en eo es et fi fr
|
||||
+-------------------------------------+
|
||||
a2ps | [] [] [] [] |
|
||||
bash | [] [] [] [] |
|
||||
bfd | [] [] |
|
||||
binutils | [] [] |
|
||||
bison | [] [] [] |
|
||||
clisp | [] [] [] [] |
|
||||
cpio | [] [] [] [] |
|
||||
diffutils | [] [] [] [] [] [] |
|
||||
enscript | [] [] |
|
||||
error | [] [] |
|
||||
fetchmail | () [] [] [] () |
|
||||
fileutils | [] [] [] [] [] |
|
||||
findutils | [] [] [] [] [] |
|
||||
flex | [] [] [] |
|
||||
gas | [] |
|
||||
gawk | [] [] |
|
||||
gcal | [] [] |
|
||||
gcc | [] [] |
|
||||
gettext | [] [] [] [] [] |
|
||||
gnupg | [] [] [] [] [] [] |
|
||||
gprof | [] [] |
|
||||
grep | [] [] [] [] [] [] |
|
||||
hello | [] [] [] [] [] [] [] [] |
|
||||
id-utils | [] [] [] |
|
||||
indent | [] [] [] [] |
|
||||
jpilot | () [] [] [] |
|
||||
jwhois | [] [] |
|
||||
kbd | [] |
|
||||
ld | [] [] |
|
||||
libc | [] [] [] [] [] [] [] |
|
||||
lilypond | [] [] |
|
||||
lynx | [] [] [] [] |
|
||||
m4 | [] [] [] [] [] |
|
||||
make | [] [] [] [] |
|
||||
mysecretdiary | [] [] |
|
||||
nano | [] () [] [] [] [] |
|
||||
nano_1_0 | [] () [] [] [] [] |
|
||||
opcodes | [] [] [] |
|
||||
parted | [] [] [] [] |
|
||||
ptx | [] [] [] [] [] |
|
||||
python | |
|
||||
recode | [] [] [] [] [] [] |
|
||||
sed | [] [] [] [] [] [] [] [] |
|
||||
sh-utils | [] [] [] [] [] [] [] [] |
|
||||
sharutils | [] [] [] [] [] [] |
|
||||
sketch | () [] () |
|
||||
soundtracker | [] [] [] |
|
||||
sp | |
|
||||
tar | [] [] [] [] [] [] |
|
||||
texinfo | [] [] [] [] [] |
|
||||
textutils | [] [] [] [] |
|
||||
util-linux | [] [] [] [] |
|
||||
wdiff | [] [] [] [] [] |
|
||||
wget | [] [] [] [] [] [] [] [] |
|
||||
+-------------------------------------+
|
||||
bg ca cs da de el en eo es et fi fr
|
||||
0 8 12 31 36 9 1 9 37 15 1 49
|
||||
|
||||
ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh
|
||||
+----------------------------------------------------+
|
||||
a2ps | [] [] [] | 6
|
||||
bash | | 4
|
||||
bfd | | 0
|
||||
binutils | | 1
|
||||
bison | [] | 6
|
||||
clisp | [] | 5
|
||||
cpio | [] [] [] [] [] | 10
|
||||
diffutils | [] [] [] [] | 11
|
||||
enscript | [] [] [] | 5
|
||||
error | [] [] | 4
|
||||
fetchmail | | 0
|
||||
fileutils | [] [] [] [] [] [] [] [] [] | 17
|
||||
findutils | [] [] [] [] [] [] [] [] | 16
|
||||
flex | [] [] [] | 6
|
||||
freetype | | 0
|
||||
gas | | 0
|
||||
gawk | [] | 3
|
||||
gcal | | 0
|
||||
gcc | | 0
|
||||
gettext | [] [] [] [] [] [] [] [] | 18
|
||||
gnupg | [] [] [] | 10
|
||||
gprof | | 0
|
||||
grep | [] [] [] [] | 12
|
||||
hello | [] [] [] [] [] [] [] [] [] [] [] | 22
|
||||
id-utils | [] [] [] | 6
|
||||
indent | [] [] [] [] [] [] [] | 12
|
||||
jpilot | | 1
|
||||
kbd | [] | 1
|
||||
ld | | 1
|
||||
libc | [] [] [] [] [] [] [] [] | 16
|
||||
lilypond | [] [] | 3
|
||||
lynx | [] [] [] [] | 8
|
||||
m4 | [] [] [] [] | 12
|
||||
make | [] [] [] [] [] [] | 12
|
||||
mysecretdiary | | 1
|
||||
nano | [] | 4
|
||||
opcodes | [] | 1
|
||||
parted | [] [] | 5
|
||||
ptx | [] [] [] [] [] [] [] [] | 15
|
||||
python | | 0
|
||||
recode | [] [] [] [] | 13
|
||||
sed | [] [] [] [] [] [] [] | 19
|
||||
sh-utils | [] [] [] [] [] [] [] [] [] [] [] | 21
|
||||
sharutils | [] [] [] | 11
|
||||
sketch | | 0
|
||||
soundtracker | | 3
|
||||
sp | | 0
|
||||
tar | [] [] [] [] [] [] [] | 15
|
||||
texinfo | [] | 7
|
||||
textutils | [] [] [] [] [] [] [] [] | 16
|
||||
util-linux | [] [] | 4
|
||||
wdiff | [] [] [] [] | 7
|
||||
wget | [] [] [] [] [] [] [] | 17
|
||||
+----------------------------------------------------+
|
||||
33 teams ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh
|
||||
53 domains 9 1 6 20 0 6 17 1 13 25 10 11 23 21 2 2 387
|
||||
gl he hr hu id it ja ko lv nb nl nn
|
||||
+-------------------------------------+
|
||||
a2ps | () () [] |
|
||||
bash | |
|
||||
bfd | [] |
|
||||
binutils | [] |
|
||||
bison | [] |
|
||||
clisp | [] |
|
||||
cpio | [] [] [] |
|
||||
diffutils | [] [] |
|
||||
enscript | [] |
|
||||
error | [] |
|
||||
fetchmail | |
|
||||
fileutils | [] [] |
|
||||
findutils | [] [] [] [] [] [] |
|
||||
flex | [] |
|
||||
gas | |
|
||||
gawk | [] |
|
||||
gcal | |
|
||||
gcc | [] |
|
||||
gettext | [] |
|
||||
gnupg | [] [] [] |
|
||||
gprof | |
|
||||
grep | [] [] |
|
||||
hello | [] [] [] [] [] [] [] [] [] |
|
||||
id-utils | [] |
|
||||
indent | [] [] [] |
|
||||
jpilot | () () |
|
||||
jwhois | |
|
||||
kbd | |
|
||||
ld | |
|
||||
libc | [] [] [] [] |
|
||||
lilypond | [] [] |
|
||||
lynx | [] [] |
|
||||
m4 | [] [] [] [] |
|
||||
make | [] [] [] [] |
|
||||
mysecretdiary | |
|
||||
nano | [] [] [] () () [] |
|
||||
nano_1_0 | [] [] [] () () [] |
|
||||
opcodes | |
|
||||
parted | [] [] [] |
|
||||
ptx | [] [] [] [] |
|
||||
python | |
|
||||
recode | [] [] [] |
|
||||
sed | [] [] [] [] [] [] [] |
|
||||
sh-utils | [] [] [] [] [] |
|
||||
sharutils | [] [] [] |
|
||||
sketch | () |
|
||||
soundtracker | [] |
|
||||
sp | |
|
||||
tar | [] [] [] |
|
||||
texinfo | [] [] [] |
|
||||
textutils | [] [] |
|
||||
util-linux | () [] |
|
||||
wdiff | |
|
||||
wget | [] [] [] [] [] |
|
||||
+-------------------------------------+
|
||||
gl he hr hu id it ja ko lv nb nl nn
|
||||
20 6 1 3 6 11 22 9 1 6 17 4
|
||||
|
||||
no pl pt pt_BR ru sk sl sv tr uk zh
|
||||
+-------------------------------------+
|
||||
a2ps | () () () [] [] [] () | 8
|
||||
bash | | 4
|
||||
bfd | [] [] | 5
|
||||
binutils | [] | 4
|
||||
bison | [] [] [] | 7
|
||||
clisp | | 5
|
||||
cpio | [] [] [] [] | 11
|
||||
diffutils | [] [] [] | 11
|
||||
enscript | [] [] [] | 6
|
||||
error | [] [] | 5
|
||||
fetchmail | () () | 3
|
||||
fileutils | [] [] [] [] | 11
|
||||
findutils | [] [] [] [] [] [] | 17
|
||||
flex | [] [] | 6
|
||||
gas | [] | 2
|
||||
gawk | [] [] | 5
|
||||
gcal | [] | 3
|
||||
gcc | [] | 4
|
||||
gettext | [] [] [] [] | 10
|
||||
gnupg | [] [] [] | 12
|
||||
gprof | [] [] | 4
|
||||
grep | [] [] [] [] [] | 13
|
||||
hello | [] [] [] [] [] [] [] | 24
|
||||
id-utils | [] [] | 6
|
||||
indent | [] [] [] [] | 11
|
||||
jpilot | () () | 3
|
||||
jwhois | () () | 2
|
||||
kbd | [] [] | 3
|
||||
ld | [] [] | 4
|
||||
libc | [] [] [] [] [] [] | 17
|
||||
lilypond | [] | 5
|
||||
lynx | [] [] [] | 9
|
||||
m4 | [] [] [] | 12
|
||||
make | [] [] [] [] | 12
|
||||
mysecretdiary | [] | 3
|
||||
nano | () [] [] [] | 12
|
||||
nano_1_0 | () [] [] [] | 12
|
||||
opcodes | [] [] | 5
|
||||
parted | [] [] [] | 10
|
||||
ptx | [] [] [] [] [] [] | 15
|
||||
python | | 0
|
||||
recode | [] [] [] [] | 13
|
||||
sed | [] [] [] [] [] [] | 21
|
||||
sh-utils | [] [] [] [] [] [] [] [] [] | 22
|
||||
sharutils | [] [] | 11
|
||||
sketch | () | 1
|
||||
soundtracker | | 4
|
||||
sp | | 0
|
||||
tar | [] [] [] [] [] [] [] | 16
|
||||
texinfo | [] [] | 10
|
||||
textutils | [] [] | 8
|
||||
util-linux | [] [] [] | 8
|
||||
wdiff | [] [] [] [] | 9
|
||||
wget | [] [] [] [] [] [] | 19
|
||||
+-------------------------------------+
|
||||
35 teams no pl pt pt_BR ru sk sl sv tr uk zh
|
||||
54 domains 5 12 2 11 25 10 11 39 29 4 1 463
|
||||
|
||||
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
|
||||
@@ -298,9 +367,9 @@ 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 September 2001 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
|
||||
If January 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
|
||||
|
||||
25
INSTALL
25
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
|
||||
==================
|
||||
|
||||
@@ -70,7 +76,7 @@ them in the environment. You can do that on the command line like this:
|
||||
|
||||
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
|
||||
|
||||
*Note Environment Variables::, for more details.
|
||||
*Note Defining Variables::, for more details.
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
@@ -84,10 +90,10 @@ 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 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.
|
||||
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
|
||||
==================
|
||||
@@ -141,8 +147,7 @@ type, such as `sun4', or a canonical name which has the form:
|
||||
|
||||
where SYSTEM can have one of these forms:
|
||||
|
||||
OS
|
||||
KERNEL-OS
|
||||
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
|
||||
@@ -172,11 +177,11 @@ 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.
|
||||
|
||||
Environment Variables
|
||||
=====================
|
||||
Defining Variables
|
||||
==================
|
||||
|
||||
Variables not defined in a site shell script can be set in the
|
||||
environment passed to configure. However, some packages may run
|
||||
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:
|
||||
|
||||
22
Makefile.cfg
22
Makefile.cfg
@@ -1,23 +1,17 @@
|
||||
# -*- makefile -*-
|
||||
## Customize Makefile.maint.
|
||||
|
||||
# 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
|
||||
|
||||
###############################################
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# This Makefile fragment is shared between fileutils, sh-utils, textutils,
|
||||
# CPPI, Bison, and Autoconf.
|
||||
|
||||
## Copyright 2001 Free Software Foundation, Inc.
|
||||
## 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
|
||||
@@ -53,9 +53,35 @@ release_archive_dir ?= ../release
|
||||
# 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
|
||||
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 \
|
||||
@@ -139,7 +165,7 @@ maintainer-distcheck: changelog-check
|
||||
# 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: local-check cvs-check maintainer-distcheck
|
||||
cvs-dist: $(local-check) cvs-check maintainer-distcheck
|
||||
$(CVS) update po
|
||||
$(CVS) tag -c $(this-cvs-tag)
|
||||
$(MAKE) dist
|
||||
@@ -158,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: local-check
|
||||
my-distcheck: $(local-check)
|
||||
-rm -rf $(t)
|
||||
mkdir $(t)
|
||||
GZIP=$(GZIP_ENV) $(AMTAR) -C $(t) -zxf $(distdir).tar.gz
|
||||
@@ -177,21 +203,15 @@ my-distcheck: local-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/ -//')
|
||||
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/\([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/')
|
||||
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-$$$$; \
|
||||
@@ -205,13 +225,6 @@ 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
|
||||
|
||||
rel-files = $(xd-delta) $(distdir).tar.bz2 $(distdir).tar.gz
|
||||
announcement: NEWS ChangeLog $(rel-files)
|
||||
@( \
|
||||
@@ -305,7 +318,7 @@ endef
|
||||
$(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)
|
||||
|
||||
5
THANKS
5
THANKS
@@ -58,9 +58,11 @@ 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
|
||||
@@ -232,6 +234,7 @@ Matthias Urlichs smurf@noris.de
|
||||
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
|
||||
@@ -258,6 +261,7 @@ 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
|
||||
@@ -331,6 +335,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
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.
|
||||
1321
config/config.guess
vendored
Normal file
1321
config/config.guess
vendored
Normal file
File diff suppressed because it is too large
Load Diff
497
config/config.rpath
Executable file
497
config/config.rpath
Executable file
@@ -0,0 +1,497 @@
|
||||
#! /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*)
|
||||
if test "$host_cpu" = ia64; then
|
||||
wl='-Wl,'
|
||||
fi
|
||||
;;
|
||||
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
|
||||
;;
|
||||
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*)
|
||||
hardcode_libdir_separator=':'
|
||||
if test "$GCC" = yes; then
|
||||
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
|
||||
else
|
||||
hardcode_direct=yes
|
||||
fi
|
||||
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
|
||||
# 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 run time linking.
|
||||
aix_use_runtimelinking=no
|
||||
for ld_flag in $LDFLAGS; do
|
||||
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl" ); then
|
||||
aix_use_runtimelinking=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
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_libdir_flag_spec='-R$libdir'
|
||||
hardcode_direct=yes
|
||||
;;
|
||||
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
|
||||
1443
config/config.sub
vendored
Normal file
1443
config/config.sub
vendored
Normal file
File diff suppressed because it is too large
Load Diff
436
config/depcomp
Normal file
436
config/depcomp
Normal file
@@ -0,0 +1,436 @@
|
||||
#! /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 AIX 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.
|
||||
|
||||
base=`echo "$object" | sed -e 's/\.o$/.d/' -e 's/\.lo$/.d/'`
|
||||
tmpdepfile1="$base.o.d"
|
||||
tmpdepfile2="$base.d"
|
||||
if test "$libtool" = yes; then
|
||||
"$@" -Wc,-MD
|
||||
else
|
||||
"$@" -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,
|
||||
# because we must use -o when running libtool.
|
||||
test -z "$dashmflag" && dashmflag=-M
|
||||
( IFS=" "
|
||||
case " $* " in
|
||||
*" --mode=compile "*) # this is libtool, let us make it quiet
|
||||
for arg
|
||||
do # cycle over the arguments
|
||||
case "$arg" in
|
||||
"--mode=compile")
|
||||
# insert --quiet before "--mode=compile"
|
||||
set fnord "$@" --quiet
|
||||
shift # fnord
|
||||
;;
|
||||
esac
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # "$arg"
|
||||
done
|
||||
;;
|
||||
esac
|
||||
"$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
|
||||
) &
|
||||
proc=$!
|
||||
"$@"
|
||||
stat=$?
|
||||
wait "$proc"
|
||||
if test "$stat" != 0; then exit $stat; fi
|
||||
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)
|
||||
# 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} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||
) &
|
||||
proc=$!
|
||||
"$@"
|
||||
stat=$?
|
||||
wait "$proc"
|
||||
if test "$stat" != 0; then exit $stat; fi
|
||||
rm -f "$depfile"
|
||||
cat < "$tmpdepfile" > "$depfile"
|
||||
tail +3 "$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, regardless of -o,
|
||||
# because we must use -o when running libtool.
|
||||
( IFS=" "
|
||||
case " $* " in
|
||||
*" --mode=compile "*)
|
||||
for arg
|
||||
do # cycle over the arguments
|
||||
case $arg in
|
||||
"--mode=compile")
|
||||
# insert --quiet before "--mode=compile"
|
||||
set fnord "$@" --quiet
|
||||
shift # fnord
|
||||
;;
|
||||
esac
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # "$arg"
|
||||
done
|
||||
;;
|
||||
esac
|
||||
"$@" -E |
|
||||
sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
|
||||
sed '$ s: \\$::' > "$tmpdepfile"
|
||||
) &
|
||||
proc=$!
|
||||
"$@"
|
||||
stat=$?
|
||||
wait "$proc"
|
||||
if test "$stat" != 0; then exit $stat; fi
|
||||
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.
|
||||
( IFS=" "
|
||||
case " $* " in
|
||||
*" --mode=compile "*)
|
||||
for arg
|
||||
do # cycle over the arguments
|
||||
case $arg in
|
||||
"--mode=compile")
|
||||
# insert --quiet before "--mode=compile"
|
||||
set fnord "$@" --quiet
|
||||
shift # fnord
|
||||
;;
|
||||
esac
|
||||
set fnord "$@" "$arg"
|
||||
shift # fnord
|
||||
shift # "$arg"
|
||||
done
|
||||
;;
|
||||
esac
|
||||
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"
|
||||
) &
|
||||
proc=$!
|
||||
"$@"
|
||||
stat=$?
|
||||
wait "$proc"
|
||||
if test "$stat" != 0; then exit $stat; fi
|
||||
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 1996, 1997, 1999, 2000 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 ${1+"$@"} && exit 0
|
||||
fi
|
||||
if (gtar --version > /dev/null 2>&1); then
|
||||
gtar ${1+"$@"} && exit 0
|
||||
fi
|
||||
firstarg="$1"
|
||||
if shift; then
|
||||
case "$firstarg" in
|
||||
*o*)
|
||||
firstarg=`echo "$firstarg" | sed s/o//`
|
||||
tar "$firstarg" ${1+"$@"} && exit 0
|
||||
;;
|
||||
esac
|
||||
case "$firstarg" in
|
||||
*h*)
|
||||
firstarg=`echo "$firstarg" | sed s/h//`
|
||||
tar "$firstarg" ${1+"$@"} && 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
|
||||
101
config/mkinstalldirs
Normal file
101
config/mkinstalldirs
Normal file
@@ -0,0 +1,101 @@
|
||||
#! /bin/sh
|
||||
# mkinstalldirs --- make directory hierarchy
|
||||
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
|
||||
# Created: 1993-05-16
|
||||
# Public domain
|
||||
|
||||
# $Id: mkinstalldirs,v 1.1 2002/02/16 14:23:56 meyering Exp $
|
||||
|
||||
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 ;;
|
||||
-- ) shift; break ;; # stop option processing
|
||||
-* ) echo "${usage}" 1>&2; exit 1 ;; # unknown option
|
||||
* ) break ;; # first non-opt arg
|
||||
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: 3
|
||||
# End:
|
||||
# mkinstalldirs ends here
|
||||
@@ -3,10 +3,10 @@
|
||||
% Load plain if necessary, i.e., if running under initex.
|
||||
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
|
||||
%
|
||||
\def\texinfoversion{2001-07-25.07}
|
||||
\def\texinfoversion{2002-03-01.06}
|
||||
%
|
||||
% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
|
||||
% 2000, 01 Free Software Foundation, Inc.
|
||||
% 2000, 01, 02 Free Software Foundation, Inc.
|
||||
%
|
||||
% This texinfo.tex file is free software; you can redistribute it and/or
|
||||
% modify it under the terms of the GNU General Public License as
|
||||
@@ -30,14 +30,17 @@
|
||||
% Please try the latest version of texinfo.tex before submitting bug
|
||||
% reports; you can get the latest version from:
|
||||
% ftp://ftp.gnu.org/gnu/texinfo.tex
|
||||
% (and all GNU mirrors, see http://www.gnu.org/order/ftp.html)
|
||||
% ftp://texinfo.org/tex/texinfo.tex
|
||||
% ftp://us.ctan.org/macros/texinfo/texinfo.tex
|
||||
% (and all CTAN mirrors, finger ctan@us.ctan.org for a list).
|
||||
% /home/gd/gnu/doc/texinfo.tex on the GNU machines.
|
||||
% (and all GNU mirrors, see http://www.gnu.org/order/ftp.html)
|
||||
% ftp://texinfo.org/texinfo/texinfo.tex
|
||||
% ftp://tug.org/tex/texinfo.tex
|
||||
% (and all CTAN mirrors, see http://www.ctan.org),
|
||||
% and /home/gd/gnu/doc/texinfo.tex on the GNU machines.
|
||||
%
|
||||
% The texinfo.tex in any given Texinfo distribution could well be out
|
||||
% of date, so if that's what you're using, please check.
|
||||
% Texinfo has a small home page at http://texinfo.org/.
|
||||
%
|
||||
% Texinfo has a small home page at http://texinfo.org/ and also
|
||||
% http://www.gnu.org/software/texinfo.
|
||||
%
|
||||
% Send bug reports to bug-texinfo@gnu.org. Please include including a
|
||||
% complete document in each bug report with which we can reproduce the
|
||||
@@ -51,12 +54,12 @@
|
||||
% tex foo.texi
|
||||
% tex foo.texi
|
||||
% dvips foo.dvi -o # or whatever, to process the dvi file; this makes foo.ps.
|
||||
% The extra runs of TeX get the cross-reference information correct.
|
||||
% The extra TeX runs get the cross-reference information correct.
|
||||
% Sometimes one run after texindex suffices, and sometimes you need more
|
||||
% than two; texi2dvi does it as many times as necessary.
|
||||
%
|
||||
% It is possible to adapt texinfo.tex for other languages. You can get
|
||||
% the existing language-specific files from ftp://ftp.gnu.org/gnu/texinfo/.
|
||||
% the existing language-specific files from the full Texinfo distribution.
|
||||
|
||||
\message{Loading texinfo [version \texinfoversion]:}
|
||||
|
||||
@@ -833,18 +836,32 @@ where each line of input produces a line of output.}
|
||||
%
|
||||
\def\asis#1{#1}
|
||||
|
||||
% @math means output in math mode.
|
||||
% We don't use $'s directly in the definition of \math because control
|
||||
% sequences like \math are expanded when the toc file is written. Then,
|
||||
% we read the toc file back, the $'s will be normal characters (as they
|
||||
% should be, according to the definition of Texinfo). So we must use a
|
||||
% control sequence to switch into and out of math mode.
|
||||
% @math outputs its argument in math mode.
|
||||
% We don't use $'s directly in the definition of \math because we need
|
||||
% to set catcodes according to plain TeX first, to allow for subscripts,
|
||||
% superscripts, special math chars, etc.
|
||||
%
|
||||
% @math does not do math typesetting in section titles, index
|
||||
% entries, and other such contexts where the catcodes are set before
|
||||
% @math gets a chance to work. This could perhaps be fixed, but for now
|
||||
% at least we can have real math in the main text, where it's needed most.
|
||||
%
|
||||
% This isn't quite enough for @math to work properly in indices, but it
|
||||
% seems unlikely it will ever be needed there.
|
||||
%
|
||||
\let\implicitmath = $%$ font-lock fix
|
||||
%
|
||||
\let\implicitmath = $
|
||||
\def\math#1{\implicitmath #1\implicitmath}
|
||||
% One complication: _ usually means subscripts, but it could also mean
|
||||
% an actual _ character, as in @math{@var{some_variable} + 1}. So make
|
||||
% _ within @math be active (mathcode "8000), and distinguish by seeing
|
||||
% if the current family is \slfam, which is what @var uses.
|
||||
%
|
||||
{\catcode95 = \active % 95 = _
|
||||
\gdef\mathunderscore{%
|
||||
\catcode95=\active
|
||||
\def_{\ifnum\fam=\slfam\_\else\sb\fi}%
|
||||
}}
|
||||
%
|
||||
\def\math{\tex\mathcode`\_="8000\mathunderscore \implicitmath\finishmath}
|
||||
\def\finishmath#1{#1\implicitmath\Etex}
|
||||
|
||||
% @bullet and @minus need the same treatment as @math, just above.
|
||||
\def\bullet{\implicitmath\ptexbullet\implicitmath}
|
||||
@@ -927,10 +944,12 @@ where each line of input produces a line of output.}
|
||||
\def\dopdfimage#1#2#3{%
|
||||
\def\imagewidth{#2}%
|
||||
\def\imageheight{#3}%
|
||||
% without \immediate, pdftex seg faults when the same image is
|
||||
% included twice. (Version 3.14159-pre-1.0-unofficial-20010704.)
|
||||
\ifnum\pdftexversion < 14
|
||||
\pdfimage
|
||||
\immediate\pdfimage
|
||||
\else
|
||||
\pdfximage
|
||||
\immediate\pdfximage
|
||||
\fi
|
||||
\ifx\empty\imagewidth\else width \imagewidth \fi
|
||||
\ifx\empty\imageheight\else height \imageheight \fi
|
||||
@@ -943,7 +962,7 @@ where each line of input produces a line of output.}
|
||||
\pdfrefximage \pdflastximage
|
||||
\fi}
|
||||
\def\pdfmkdest#1{{\normalturnoffactive \pdfdest name{#1} xyz}}
|
||||
\def\pdfmkpgn#1{#1@}
|
||||
\def\pdfmkpgn#1{#1}
|
||||
\let\linkcolor = \Blue % was Cyan, but that seems light?
|
||||
\def\endlink{\Black\pdfendlink}
|
||||
% Adding outlines to PDF; macros for calculating structure of outlines
|
||||
@@ -955,7 +974,7 @@ where each line of input produces a line of output.}
|
||||
\expandafter\xdef\csname#1\endcsname{\the\tempnum}}
|
||||
\def\pdfmakeoutlines{{%
|
||||
\openin 1 \jobname.toc
|
||||
\ifeof 1\else\bgroup
|
||||
\ifeof 1\else\begingroup
|
||||
\closein 1
|
||||
\indexnofonts
|
||||
\def\tt{}
|
||||
@@ -965,32 +984,34 @@ where each line of input produces a line of output.}
|
||||
\edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
|
||||
%
|
||||
\def\chapentry ##1##2##3{}
|
||||
\let\appendixentry = \chapentry
|
||||
\def\unnumbchapentry ##1##2{}
|
||||
\def\secentry ##1##2##3##4{\advancenumber{chap##2}}
|
||||
\def\unnumbsecentry ##1##2{}
|
||||
\def\unnumbsecentry ##1##2##3{\advancenumber{chap##2}}
|
||||
\def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}}
|
||||
\def\unnumbsubsecentry ##1##2{}
|
||||
\def\unnumbsubsecentry ##1##2##3##4{\advancenumber{sec##2.##3}}
|
||||
\def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}}
|
||||
\def\unnumbsubsubsecentry ##1##2{}
|
||||
\def\unnumbsubsubsecentry ##1##2##3##4##5{\advancenumber{subsec##2.##3.##4}}
|
||||
\input \jobname.toc
|
||||
\def\chapentry ##1##2##3{%
|
||||
\pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}}
|
||||
\let\appendixentry = \chapentry
|
||||
\def\unnumbchapentry ##1##2{%
|
||||
\pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
|
||||
\def\secentry ##1##2##3##4{%
|
||||
\pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}}
|
||||
\def\unnumbsecentry ##1##2{%
|
||||
\pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
|
||||
\def\unnumbsecentry ##1##2##3{%
|
||||
\pdfoutline goto name{\pdfmkpgn{##3}}{##1}}
|
||||
\def\subsecentry ##1##2##3##4##5{%
|
||||
\pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}}
|
||||
\def\unnumbsubsecentry ##1##2{%
|
||||
\pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
|
||||
\def\unnumbsubsecentry ##1##2##3##4{%
|
||||
\pdfoutline goto name{\pdfmkpgn{##4}}{##1}}
|
||||
\def\subsubsecentry ##1##2##3##4##5##6{%
|
||||
\pdfoutline goto name{\pdfmkpgn{##6}}{##1}}
|
||||
\def\unnumbsubsubsecentry ##1##2{%
|
||||
\pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
|
||||
\def\unnumbsubsubsecentry ##1##2##3##4##5{%
|
||||
\pdfoutline goto name{\pdfmkpgn{##5}}{##1}}
|
||||
\input \jobname.toc
|
||||
\egroup\fi
|
||||
\endgroup\fi
|
||||
}}
|
||||
\def\makelinks #1,{%
|
||||
\def\params{#1}\def\E{END}%
|
||||
@@ -1107,9 +1128,6 @@ where each line of input produces a line of output.}
|
||||
}%
|
||||
}
|
||||
|
||||
% Use Computer Modern fonts at \magstephalf (11pt).
|
||||
\newcount\mainmagstep \mainmagstep=\magstephalf
|
||||
|
||||
% Set the font macro #1 to the font named #2, adding on the
|
||||
% specified font prefix (normally `cm').
|
||||
% #3 is the font's design size, #4 is a scale factor
|
||||
@@ -1138,13 +1156,16 @@ where each line of input produces a line of output.}
|
||||
\def\scshape{csc}
|
||||
\def\scbshape{csc}
|
||||
|
||||
\newcount\mainmagstep
|
||||
\ifx\bigger\relax
|
||||
\let\mainmagstep=\magstep1
|
||||
\setfont\textrm\rmshape{12}{1000}
|
||||
\setfont\texttt\ttshape{12}{1000}
|
||||
% not really supported.
|
||||
\let\mainmagstep=\magstep1
|
||||
\setfont\textrm\rmshape{12}{1000}
|
||||
\setfont\texttt\ttshape{12}{1000}
|
||||
\else
|
||||
\setfont\textrm\rmshape{10}{\mainmagstep}
|
||||
\setfont\texttt\ttshape{10}{\mainmagstep}
|
||||
\mainmagstep=\magstephalf
|
||||
\setfont\textrm\rmshape{10}{\mainmagstep}
|
||||
\setfont\texttt\ttshape{10}{\mainmagstep}
|
||||
\fi
|
||||
% Instead of cmb10, you many want to use cmbx10.
|
||||
% cmbx10 is a prettier font on its own, but cmb10
|
||||
@@ -1224,20 +1245,6 @@ where each line of input produces a line of output.}
|
||||
\font\seci=cmmi12 scaled \magstep1
|
||||
\font\secsy=cmsy10 scaled \magstep2
|
||||
|
||||
% \setfont\ssecrm\bxshape{10}{\magstep1} % This size an font looked bad.
|
||||
% \setfont\ssecit\itshape{10}{\magstep1} % The letters were too crowded.
|
||||
% \setfont\ssecsl\slshape{10}{\magstep1}
|
||||
% \setfont\ssectt\ttshape{10}{\magstep1}
|
||||
% \setfont\ssecsf\sfshape{10}{\magstep1}
|
||||
|
||||
%\setfont\ssecrm\bfshape{10}{1315} % Note the use of cmb rather than cmbx.
|
||||
%\setfont\ssecit\itshape{10}{1315} % Also, the size is a little larger than
|
||||
%\setfont\ssecsl\slshape{10}{1315} % being scaled magstep1.
|
||||
%\setfont\ssectt\ttshape{10}{1315}
|
||||
%\setfont\ssecsf\sfshape{10}{1315}
|
||||
|
||||
%\let\ssecbf=\ssecrm
|
||||
|
||||
% Subsection fonts (13.15pt).
|
||||
\setfont\ssecrm\rmbshape{12}{\magstephalf}
|
||||
\setfont\ssecit\itbshape{10}{1315}
|
||||
@@ -1254,17 +1261,16 @@ where each line of input produces a line of output.}
|
||||
|
||||
% In order for the font changes to affect most math symbols and letters,
|
||||
% we have to define the \textfont of the standard families. Since
|
||||
% texinfo doesn't allow for producing subscripts and superscripts, we
|
||||
% don't bother to reset \scriptfont and \scriptscriptfont (which would
|
||||
% also require loading a lot more fonts).
|
||||
% texinfo doesn't allow for producing subscripts and superscripts except
|
||||
% in the main text, we don't bother to reset \scriptfont and
|
||||
% \scriptscriptfont (which would also require loading a lot more fonts).
|
||||
%
|
||||
\def\resetmathfonts{%
|
||||
\textfont0 = \tenrm \textfont1 = \teni \textfont2 = \tensy
|
||||
\textfont\itfam = \tenit \textfont\slfam = \tensl \textfont\bffam = \tenbf
|
||||
\textfont\ttfam = \tentt \textfont\sffam = \tensf
|
||||
\textfont0=\tenrm \textfont1=\teni \textfont2=\tensy
|
||||
\textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf
|
||||
\textfont\ttfam=\tentt \textfont\sffam=\tensf
|
||||
}
|
||||
|
||||
|
||||
% The font-changing commands redefine the meanings of \tenSTYLE, instead
|
||||
% of just \STYLE. We do this so that font changes will continue to work
|
||||
% in math mode, where it is the current \fam that is relevant in most
|
||||
@@ -2753,9 +2759,23 @@ width0pt\relax} \fi
|
||||
\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
|
||||
\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
|
||||
|
||||
% Take care of texinfo commands likely to appear in an index entry.
|
||||
% (Must be a way to avoid doing expansion at all, and thus not have to
|
||||
% laboriously list every single command here.)
|
||||
%
|
||||
\def\indexdummies{%
|
||||
\def\ { }%
|
||||
\def\@{@}% change to @@ when we switch to @ as escape char in aux files.
|
||||
% Need these in case \tex is in effect and \{ is a \delimiter again.
|
||||
% But can't use \lbracecmd and \rbracecmd because texindex assumes
|
||||
% braces and backslashes are used only as delimiters.
|
||||
\let\{ = \mylbrace
|
||||
\let\} = \myrbrace
|
||||
\def\_{{\realbackslash _}}%
|
||||
\normalturnoffactive
|
||||
%
|
||||
% Take care of the plain tex accent commands.
|
||||
\def\,##1{\realbackslash ,{##1}}%
|
||||
\def\"{\realbackslash "}%
|
||||
\def\`{\realbackslash `}%
|
||||
\def\'{\realbackslash '}%
|
||||
@@ -2768,69 +2788,66 @@ width0pt\relax} \fi
|
||||
\def\u{\realbackslash u}%
|
||||
\def\v{\realbackslash v}%
|
||||
\def\H{\realbackslash H}%
|
||||
% Take care of the plain tex special European modified letters.
|
||||
\def\oe{\realbackslash oe}%
|
||||
\def\ae{\realbackslash ae}%
|
||||
\def\aa{\realbackslash aa}%
|
||||
\def\OE{\realbackslash OE}%
|
||||
\def\AE{\realbackslash AE}%
|
||||
\def\AA{\realbackslash AA}%
|
||||
\def\o{\realbackslash o}%
|
||||
\def\O{\realbackslash O}%
|
||||
\def\l{\realbackslash l}%
|
||||
\def\L{\realbackslash L}%
|
||||
\def\ss{\realbackslash ss}%
|
||||
% Take care of texinfo commands likely to appear in an index entry.
|
||||
% (Must be a way to avoid doing expansion at all, and thus not have to
|
||||
% laboriously list every single command here.)
|
||||
\def\@{@}% will be @@ when we switch to @ as escape char.
|
||||
% Need these in case \tex is in effect and \{ is a \delimiter again.
|
||||
% But can't use \lbracecmd and \rbracecmd because texindex assumes
|
||||
% braces and backslashes are used only as delimiters.
|
||||
\let\{ = \mylbrace
|
||||
\let\} = \myrbrace
|
||||
\def\_{{\realbackslash _}}%
|
||||
\def\w{\realbackslash w }%
|
||||
\def\bf{\realbackslash bf }%
|
||||
%\def\rm{\realbackslash rm }%
|
||||
\def\sl{\realbackslash sl }%
|
||||
\def\sf{\realbackslash sf}%
|
||||
\def\tt{\realbackslash tt}%
|
||||
\def\gtr{\realbackslash gtr}%
|
||||
\def\less{\realbackslash less}%
|
||||
\def\hat{\realbackslash hat}%
|
||||
\def\TeX{\realbackslash TeX}%
|
||||
\def\dots{\realbackslash dots }%
|
||||
\def\result{\realbackslash result}%
|
||||
\def\equiv{\realbackslash equiv}%
|
||||
\def\expansion{\realbackslash expansion}%
|
||||
\def\print{\realbackslash print}%
|
||||
\def\error{\realbackslash error}%
|
||||
\def\point{\realbackslash point}%
|
||||
\def\copyright{\realbackslash copyright}%
|
||||
\def\tclose##1{\realbackslash tclose {##1}}%
|
||||
\def\code##1{\realbackslash code {##1}}%
|
||||
\def\uref##1{\realbackslash uref {##1}}%
|
||||
\def\url##1{\realbackslash url {##1}}%
|
||||
\def\env##1{\realbackslash env {##1}}%
|
||||
\def\command##1{\realbackslash command {##1}}%
|
||||
\def\option##1{\realbackslash option {##1}}%
|
||||
\def\dotless##1{\realbackslash dotless {##1}}%
|
||||
\def\samp##1{\realbackslash samp {##1}}%
|
||||
\def\,##1{\realbackslash ,{##1}}%
|
||||
% Take care of the plain tex special European modified letters.
|
||||
\def\AA{\realbackslash AA}%
|
||||
\def\AE{\realbackslash AE}%
|
||||
\def\L{\realbackslash L}%
|
||||
\def\OE{\realbackslash OE}%
|
||||
\def\O{\realbackslash O}%
|
||||
\def\aa{\realbackslash aa}%
|
||||
\def\ae{\realbackslash ae}%
|
||||
\def\l{\realbackslash l}%
|
||||
\def\oe{\realbackslash oe}%
|
||||
\def\o{\realbackslash o}%
|
||||
\def\ss{\realbackslash ss}%
|
||||
%
|
||||
% Although these internals commands shouldn't show up, sometimes they do.
|
||||
\def\bf{\realbackslash bf }%
|
||||
\def\gtr{\realbackslash gtr}%
|
||||
\def\hat{\realbackslash hat}%
|
||||
\def\less{\realbackslash less}%
|
||||
%\def\rm{\realbackslash rm }%
|
||||
\def\sf{\realbackslash sf}%
|
||||
\def\sl{\realbackslash sl }%
|
||||
\def\tclose##1{\realbackslash tclose {##1}}%
|
||||
\def\tt{\realbackslash tt}%
|
||||
%
|
||||
\def\b##1{\realbackslash b {##1}}%
|
||||
\def\i##1{\realbackslash i {##1}}%
|
||||
\def\sc##1{\realbackslash sc {##1}}%
|
||||
\def\t##1{\realbackslash t {##1}}%
|
||||
\def\r##1{\realbackslash r {##1}}%
|
||||
\def\i##1{\realbackslash i {##1}}%
|
||||
\def\b##1{\realbackslash b {##1}}%
|
||||
\def\sc##1{\realbackslash sc {##1}}%
|
||||
\def\cite##1{\realbackslash cite {##1}}%
|
||||
\def\key##1{\realbackslash key {##1}}%
|
||||
\def\file##1{\realbackslash file {##1}}%
|
||||
\def\var##1{\realbackslash var {##1}}%
|
||||
\def\kbd##1{\realbackslash kbd {##1}}%
|
||||
\def\dfn##1{\realbackslash dfn {##1}}%
|
||||
\def\emph##1{\realbackslash emph {##1}}%
|
||||
%
|
||||
\def\TeX{\realbackslash TeX}%
|
||||
\def\acronym##1{\realbackslash acronym {##1}}%
|
||||
\def\cite##1{\realbackslash cite {##1}}%
|
||||
\def\code##1{\realbackslash code {##1}}%
|
||||
\def\command##1{\realbackslash command {##1}}%
|
||||
\def\dfn##1{\realbackslash dfn {##1}}%
|
||||
\def\dots{\realbackslash dots }%
|
||||
\def\emph##1{\realbackslash emph {##1}}%
|
||||
\def\env##1{\realbackslash env {##1}}%
|
||||
\def\file##1{\realbackslash file {##1}}%
|
||||
\def\kbd##1{\realbackslash kbd {##1}}%
|
||||
\def\key##1{\realbackslash key {##1}}%
|
||||
\def\math##1{\realbackslash math {##1}}%
|
||||
\def\option##1{\realbackslash option {##1}}%
|
||||
\def\samp##1{\realbackslash samp {##1}}%
|
||||
\def\strong##1{\realbackslash strong {##1}}%
|
||||
\def\uref##1{\realbackslash uref {##1}}%
|
||||
\def\url##1{\realbackslash url {##1}}%
|
||||
\def\var##1{\realbackslash var {##1}}%
|
||||
\def\w{\realbackslash w }%
|
||||
%
|
||||
% These math commands don't seem likely to be used in index entries.
|
||||
\def\copyright{\realbackslash copyright}%
|
||||
\def\equiv{\realbackslash equiv}%
|
||||
\def\error{\realbackslash error}%
|
||||
\def\expansion{\realbackslash expansion}%
|
||||
\def\point{\realbackslash point}%
|
||||
\def\print{\realbackslash print}%
|
||||
\def\result{\realbackslash result}%
|
||||
%
|
||||
% Handle some cases of @value -- where the variable name does not
|
||||
% contain - or _, and the value does not contain any
|
||||
@@ -2855,7 +2872,10 @@ width0pt\relax} \fi
|
||||
\def\indexdummydots{...}
|
||||
|
||||
\def\indexnofonts{%
|
||||
% Just ignore accents.
|
||||
\def\@{@}%
|
||||
% how to handle braces?
|
||||
\def\_{\normalunderscore}%
|
||||
%
|
||||
\let\,=\indexdummyfont
|
||||
\let\"=\indexdummyfont
|
||||
\let\`=\indexdummyfont
|
||||
@@ -2871,45 +2891,49 @@ width0pt\relax} \fi
|
||||
\let\H=\indexdummyfont
|
||||
\let\dotless=\indexdummyfont
|
||||
% Take care of the plain tex special European modified letters.
|
||||
\def\oe{oe}%
|
||||
\def\ae{ae}%
|
||||
\def\aa{aa}%
|
||||
\def\OE{OE}%
|
||||
\def\AE{AE}%
|
||||
\def\AA{AA}%
|
||||
\def\o{o}%
|
||||
\def\O{O}%
|
||||
\def\l{l}%
|
||||
\def\AE{AE}%
|
||||
\def\L{L}%
|
||||
\def\OE{OE}%
|
||||
\def\O{O}%
|
||||
\def\aa{aa}%
|
||||
\def\ae{ae}%
|
||||
\def\l{l}%
|
||||
\def\oe{oe}%
|
||||
\def\o{o}%
|
||||
\def\ss{ss}%
|
||||
\let\w=\indexdummyfont
|
||||
\let\t=\indexdummyfont
|
||||
\let\r=\indexdummyfont
|
||||
\let\i=\indexdummyfont
|
||||
\let\b=\indexdummyfont
|
||||
\let\emph=\indexdummyfont
|
||||
\let\strong=\indexdummyfont
|
||||
\let\cite=\indexdummyfont
|
||||
\let\sc=\indexdummyfont
|
||||
%Don't no-op \tt, since it isn't a user-level command
|
||||
% and is used in the definitions of the active chars like <, >, |...
|
||||
%
|
||||
% Don't no-op \tt, since it isn't a user-level command
|
||||
% and is used in the definitions of the active chars like <, >, |, etc.
|
||||
% Likewise with the other plain tex font commands.
|
||||
%\let\tt=\indexdummyfont
|
||||
\let\tclose=\indexdummyfont
|
||||
\let\code=\indexdummyfont
|
||||
\let\url=\indexdummyfont
|
||||
\let\uref=\indexdummyfont
|
||||
\let\env=\indexdummyfont
|
||||
%
|
||||
\let\b=\indexdummyfont
|
||||
\let\i=\indexdummyfont
|
||||
\let\r=\indexdummyfont
|
||||
\let\sc=\indexdummyfont
|
||||
\let\t=\indexdummyfont
|
||||
%
|
||||
\let\TeX=\indexdummytex
|
||||
\let\acronym=\indexdummyfont
|
||||
\let\cite=\indexdummyfont
|
||||
\let\code=\indexdummyfont
|
||||
\let\command=\indexdummyfont
|
||||
\let\option=\indexdummyfont
|
||||
\let\dfn=\indexdummyfont
|
||||
\let\dots=\indexdummydots
|
||||
\let\emph=\indexdummyfont
|
||||
\let\env=\indexdummyfont
|
||||
\let\file=\indexdummyfont
|
||||
\let\samp=\indexdummyfont
|
||||
\let\kbd=\indexdummyfont
|
||||
\let\key=\indexdummyfont
|
||||
\let\math=\indexdummyfont
|
||||
\let\option=\indexdummyfont
|
||||
\let\samp=\indexdummyfont
|
||||
\let\strong=\indexdummyfont
|
||||
\let\uref=\indexdummyfont
|
||||
\let\url=\indexdummyfont
|
||||
\let\var=\indexdummyfont
|
||||
\let\TeX=\indexdummytex
|
||||
\let\dots=\indexdummydots
|
||||
\def\@{@}%
|
||||
\let\w=\indexdummyfont
|
||||
}
|
||||
|
||||
% To define \realbackslash, we must make \ not be an escape.
|
||||
@@ -3511,8 +3535,8 @@ width0pt\relax} \fi
|
||||
\gdef\thischaptername{#1}%
|
||||
\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}%
|
||||
\toks0 = {#1}%
|
||||
\edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}%
|
||||
{\putwordAppendix{} \appendixletter}}}%
|
||||
\edef\temp{\noexpand\writetocentry{\realbackslash appendixentry{\the\toks0}%
|
||||
{\appendixletter}}}%
|
||||
\temp
|
||||
\appendixnoderef
|
||||
\global\let\section = \appendixsec
|
||||
@@ -3589,7 +3613,8 @@ width0pt\relax} \fi
|
||||
\def\unnumberedseczzz #1{%
|
||||
\plainsecheading {#1}\gdef\thissection{#1}%
|
||||
\toks0 = {#1}%
|
||||
\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry{\the\toks0}}}%
|
||||
\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry%
|
||||
{\the\toks0}{\the\chapno}}}%
|
||||
\temp
|
||||
\unnumbnoderef
|
||||
\nobreak
|
||||
@@ -3628,7 +3653,7 @@ width0pt\relax} \fi
|
||||
\plainsubsecheading {#1}\gdef\thissection{#1}%
|
||||
\toks0 = {#1}%
|
||||
\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry%
|
||||
{\the\toks0}}}%
|
||||
{\the\toks0}{\the\chapno}{\the\secno}}}%
|
||||
\temp
|
||||
\unnumbnoderef
|
||||
\nobreak
|
||||
@@ -3669,7 +3694,7 @@ width0pt\relax} \fi
|
||||
\plainsubsubsecheading {#1}\gdef\thissection{#1}%
|
||||
\toks0 = {#1}%
|
||||
\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry%
|
||||
{\the\toks0}}}%
|
||||
{\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}}}%
|
||||
\temp
|
||||
\unnumbnoderef
|
||||
\nobreak
|
||||
@@ -3945,6 +3970,7 @@ width0pt\relax} \fi
|
||||
\startcontents{\putwordShortTOC}%
|
||||
%
|
||||
\let\chapentry = \shortchapentry
|
||||
\let\appendixentry = \shortappendixentry
|
||||
\let\unnumbchapentry = \shortunnumberedentry
|
||||
% We want a true roman here for the page numbers.
|
||||
\secfonts
|
||||
@@ -3953,11 +3979,11 @@ width0pt\relax} \fi
|
||||
\hyphenpenalty = 10000
|
||||
\advance\baselineskip by 1pt % Open it up a little.
|
||||
\def\secentry ##1##2##3##4{}
|
||||
\def\unnumbsecentry ##1##2{}
|
||||
\def\unnumbsecentry ##1##2##3{}
|
||||
\def\subsecentry ##1##2##3##4##5{}
|
||||
\def\unnumbsubsecentry ##1##2{}
|
||||
\def\unnumbsubsecentry ##1##2##3##4{}
|
||||
\def\subsubsecentry ##1##2##3##4##5##6{}
|
||||
\def\unnumbsubsubsecentry ##1##2{}
|
||||
\def\unnumbsubsubsecentry ##1##2##3##4##5{}
|
||||
\openin 1 \jobname.toc
|
||||
\ifeof 1 \else
|
||||
\closein 1
|
||||
@@ -3980,16 +4006,23 @@ width0pt\relax} \fi
|
||||
% The last argument is the page number.
|
||||
% The arguments in between are the chapter number, section number, ...
|
||||
|
||||
% Chapter-level things, for both the long and short contents.
|
||||
% Chapters, in the main contents.
|
||||
\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}}
|
||||
|
||||
% See comments in \dochapentry re vbox and related settings
|
||||
%
|
||||
% Chapters, in the short toc.
|
||||
% See comments in \dochapentry re vbox and related settings.
|
||||
\def\shortchapentry#1#2#3{%
|
||||
\tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#3\egroup}%
|
||||
}
|
||||
|
||||
% Appendices, in the main contents.
|
||||
\def\appendixentry#1#2#3{\dochapentry{\putwordAppendix{} #2\labelspace#1}{#3}}
|
||||
%
|
||||
% Appendices, in the short toc.
|
||||
\let\shortappendixentry = \shortchapentry
|
||||
|
||||
% Typeset the label for a chapter or appendix for the short contents.
|
||||
% The arg is, e.g. `Appendix A' for an appendix, or `3' for a chapter.
|
||||
% The arg is, e.g., `Appendix A' for an appendix, or `3' for a chapter.
|
||||
% We could simplify the code here by writing out an \appendixentry
|
||||
% command in the toc file for appendices, instead of using \chapentry
|
||||
% for both, but it doesn't seem worth it.
|
||||
@@ -3997,38 +4030,31 @@ width0pt\relax} \fi
|
||||
\newdimen\shortappendixwidth
|
||||
%
|
||||
\def\shortchaplabel#1{%
|
||||
% Compute width of word "Appendix", may change with language.
|
||||
\setbox0 = \hbox{\shortcontrm \putwordAppendix}%
|
||||
\shortappendixwidth = \wd0
|
||||
%
|
||||
% We typeset #1 in a box of constant width, regardless of the text of
|
||||
% #1, so the chapter titles will come out aligned.
|
||||
\setbox0 = \hbox{#1}%
|
||||
\dimen0 = \ifdim\wd0 > \shortappendixwidth \shortappendixwidth \else 0pt \fi
|
||||
%
|
||||
% This space should be plenty, since a single number is .5em, and the
|
||||
% This space should be enough, since a single number is .5em, and the
|
||||
% widest letter (M) is 1em, at least in the Computer Modern fonts.
|
||||
% But use \hss just in case.
|
||||
% (This space doesn't include the extra space that gets added after
|
||||
% the label; that gets put in by \shortchapentry above.)
|
||||
\advance\dimen0 by 1.1em
|
||||
\hbox to \dimen0{#1\hfil}%
|
||||
\dimen0 = 1em
|
||||
\hbox to \dimen0{#1\hss}%
|
||||
}
|
||||
|
||||
% Unnumbered chapters.
|
||||
\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}}
|
||||
\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno\bgroup#2\egroup}}
|
||||
|
||||
% Sections.
|
||||
\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}}
|
||||
\def\unnumbsecentry#1#2{\dosecentry{#1}{#2}}
|
||||
\def\unnumbsecentry#1#2#3{\dosecentry{#1}{#3}}
|
||||
|
||||
% Subsections.
|
||||
\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}}
|
||||
\def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}}
|
||||
\def\unnumbsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}}
|
||||
|
||||
% And subsubsections.
|
||||
\def\subsubsecentry#1#2#3#4#5#6{%
|
||||
\dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}}
|
||||
\def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}}
|
||||
\def\unnumbsubsubsecentry#1#2#3#4#5{\dosubsubsecentry{#1}{#5}}
|
||||
|
||||
% This parameter controls the indentation of the various levels.
|
||||
\newdimen\tocindent \tocindent = 3pc
|
||||
@@ -4069,7 +4095,7 @@ width0pt\relax} \fi
|
||||
\def\tocentry#1#2{\begingroup
|
||||
\vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks
|
||||
% Do not use \turnoffactive in these arguments. Since the toc is
|
||||
% typeset in cmr, so characters such as _ would come out wrong; we
|
||||
% typeset in cmr, characters such as _ would come out wrong; we
|
||||
% have to do the usual translation tricks.
|
||||
\entry{#1}{#2}%
|
||||
\endgroup}
|
||||
@@ -4898,7 +4924,7 @@ width0pt\relax} \fi
|
||||
% #1 is the data type, #2 the name, #3 the args.
|
||||
\def\deftypefunheaderx #1#2 #3\relax{%
|
||||
\doind {fn}{\code{#2}}% Make entry in function index
|
||||
\begingroup\defname {\defheaderxcond#1\relax$$$#2}{\putwordDeftypefun}%
|
||||
\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypefun}%
|
||||
\deftypefunargs {#3}\endgroup %
|
||||
\catcode 61=\other % Turn off change made in \defparsebody
|
||||
}
|
||||
@@ -4907,9 +4933,9 @@ width0pt\relax} \fi
|
||||
|
||||
\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader}
|
||||
|
||||
% \defheaderxcond#1\relax$$$
|
||||
% \defheaderxcond#1\relax$.$
|
||||
% puts #1 in @code, followed by a space, but does nothing if #1 is null.
|
||||
\def\defheaderxcond#1#2$$${\ifx#1\relax\else\code{#1#2} \fi}
|
||||
\def\defheaderxcond#1#2$.${\ifx#1\relax\else\code{#1#2} \fi}
|
||||
|
||||
% #1 is the classification. #2 is the data type. #3 is the name and args.
|
||||
\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax}
|
||||
@@ -4919,7 +4945,7 @@ width0pt\relax} \fi
|
||||
\begingroup
|
||||
\normalparens % notably, turn off `&' magic, which prevents
|
||||
% at least some C++ text from working
|
||||
\defname {\defheaderxcond#2\relax$$$#3}{#1}%
|
||||
\defname {\defheaderxcond#2\relax$.$#3}{#1}%
|
||||
\deftypefunargs {#4}\endgroup %
|
||||
\catcode 61=\other % Turn off change made in \defparsebody
|
||||
}
|
||||
@@ -4965,7 +4991,7 @@ width0pt\relax} \fi
|
||||
\def\deftypeopheader#1#2#3#4{%
|
||||
\dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
|
||||
\begingroup
|
||||
\defname{\defheaderxcond#2\relax$$$#3}
|
||||
\defname{\defheaderxcond#2\relax$.$#3}
|
||||
{\deftypeopcategory\ \putwordon\ \code{#1}}%
|
||||
\deftypefunargs{#4}%
|
||||
\endgroup
|
||||
@@ -4980,7 +5006,7 @@ width0pt\relax} \fi
|
||||
\def\deftypemethodheader#1#2#3#4{%
|
||||
\dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
|
||||
\begingroup
|
||||
\defname{\defheaderxcond#2\relax$$$#3}{\putwordMethodon\ \code{#1}}%
|
||||
\defname{\defheaderxcond#2\relax$.$#3}{\putwordMethodon\ \code{#1}}%
|
||||
\deftypefunargs{#4}%
|
||||
\endgroup
|
||||
}
|
||||
@@ -4994,7 +5020,7 @@ width0pt\relax} \fi
|
||||
\def\deftypeivarheader#1#2#3{%
|
||||
\dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}}% entry in variable index
|
||||
\begingroup
|
||||
\defname{\defheaderxcond#2\relax$$$#3}
|
||||
\defname{\defheaderxcond#2\relax$.$#3}
|
||||
{\putwordInstanceVariableof\ \code{#1}}%
|
||||
\defvarargs{#3}%
|
||||
\endgroup
|
||||
@@ -5077,7 +5103,7 @@ width0pt\relax} \fi
|
||||
% is actually part of the data type, which should not be put into the index.
|
||||
\def\deftypevarheader #1#2{%
|
||||
\dovarind#2 \relax% Make entry in variables index
|
||||
\begingroup\defname {\defheaderxcond#1\relax$$$#2}{\putwordDeftypevar}%
|
||||
\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypevar}%
|
||||
\interlinepenalty=10000
|
||||
\endgraf\nobreak\vskip -\parskip\nobreak
|
||||
\endgroup}
|
||||
@@ -5088,7 +5114,7 @@ width0pt\relax} \fi
|
||||
\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader}
|
||||
|
||||
\def\deftypevrheader #1#2#3{\dovarind#3 \relax%
|
||||
\begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1}
|
||||
\begingroup\defname {\defheaderxcond#2\relax$.$#3}{#1}
|
||||
\interlinepenalty=10000
|
||||
\endgraf\nobreak\vskip -\parskip\nobreak
|
||||
\endgroup}
|
||||
@@ -5799,8 +5825,15 @@ width0pt\relax} \fi
|
||||
%
|
||||
\smallfonts \rm
|
||||
%
|
||||
% Hang the footnote text off the number.
|
||||
\hang
|
||||
% Because we use hanging indentation in footnotes, a @noindent appears
|
||||
% to exdent this text, so make it be a no-op. makeinfo does not use
|
||||
% hanging indentation so @noindent can still be needed within footnote
|
||||
% text after an @example or the like (not that this is good style).
|
||||
\let\noindent = \relax
|
||||
%
|
||||
% Hang the footnote text off the number. Use \everypar in case the
|
||||
% footnote extends for more than one paragraph.
|
||||
\everypar = {\hang}%
|
||||
\textindent{\thisfootno}%
|
||||
%
|
||||
% Don't crash into the line above the footnote text. Since this
|
||||
@@ -5881,7 +5914,7 @@ width0pt\relax} \fi
|
||||
\global\warnednoepsftrue
|
||||
\fi
|
||||
\else
|
||||
\imagexxx #1,,,\finish
|
||||
\imagexxx #1,,,,,\finish
|
||||
\fi
|
||||
}
|
||||
%
|
||||
@@ -5891,33 +5924,34 @@ width0pt\relax} \fi
|
||||
% #4 is (ignored optional) html alt text.
|
||||
% #5 is (ignored optional) extension.
|
||||
% #6 is just the usual extra ignored arg for parsing this stuff.
|
||||
\def\imagexxx#1,#2,#3,#4,#5,#6\finish{%
|
||||
\newif\ifimagevmode
|
||||
\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup
|
||||
\catcode`\^^M = 5 % in case we're inside an example
|
||||
\normalturnoffactive % allow _ et al. in names
|
||||
% If the image is by itself, center it.
|
||||
\ifvmode
|
||||
\imagevmodetrue
|
||||
\nobreak\bigskip
|
||||
% Usually we'll have text after the image which will insert
|
||||
% \parskip glue, so insert it here too to equalize the space
|
||||
% above and below.
|
||||
\nobreak\vskip\parskip
|
||||
\nobreak
|
||||
\line\bgroup\hss
|
||||
\fi
|
||||
%
|
||||
% Output the image.
|
||||
\ifpdf
|
||||
\centerline{\dopdfimage{#1}{#2}{#3}}%
|
||||
\dopdfimage{#1}{#2}{#3}%
|
||||
\else
|
||||
% \epsfbox itself resets \epsf?size at each figure.
|
||||
\setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
|
||||
\setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
|
||||
\begingroup
|
||||
\catcode`\^^M = 5 % in case we're inside an example
|
||||
\normalturnoffactive % allow _ et al. in names
|
||||
% If the image is by itself, center it.
|
||||
\ifvmode
|
||||
\nobreak\bigskip
|
||||
% Usually we'll have text after the image which will insert
|
||||
% \parskip glue, so insert it here too to equalize the space
|
||||
% above and below.
|
||||
\nobreak\vskip\parskip
|
||||
\nobreak
|
||||
\centerline{\epsfbox{#1.eps}}%
|
||||
\bigbreak
|
||||
\else
|
||||
% In the middle of a paragraph, no extra space.
|
||||
\epsfbox{#1.eps}%
|
||||
\fi
|
||||
\endgroup
|
||||
\epsfbox{#1.eps}%
|
||||
\fi
|
||||
}
|
||||
%
|
||||
\ifimagevmode \hss \egroup \bigbreak \fi % space after the image
|
||||
\endgroup}
|
||||
|
||||
|
||||
\message{localization,}
|
||||
@@ -6087,6 +6121,10 @@ should work if nowhere else does.}
|
||||
%
|
||||
\afourpaper
|
||||
\internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}%
|
||||
%
|
||||
% Must explicitly reset to 0 because we call \afourpaper, apparently,
|
||||
% although this does not entirely make sense.
|
||||
\globaldefs = 0
|
||||
}}
|
||||
|
||||
% Use @afourwide to print on European A4 paper in wide format.
|
||||
@@ -6136,7 +6174,7 @@ should work if nowhere else does.}
|
||||
\def\normalless{<}
|
||||
\def\normalgreater{>}
|
||||
\def\normalplus{+}
|
||||
\def\normaldollar{$}
|
||||
\def\normaldollar{$}%$ font-lock fix
|
||||
|
||||
% This macro is used to make a character print one way in ttfont
|
||||
% where it can probably just be output, and another way in other fonts,
|
||||
@@ -6185,7 +6223,7 @@ should work if nowhere else does.}
|
||||
\catcode`\+=\active
|
||||
\def+{{\tt \char 43}}
|
||||
\catcode`\$=\active
|
||||
\def${\ifusingit{{\sl\$}}\normaldollar}
|
||||
\def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
|
||||
%\catcode 27=\active
|
||||
%\def^^[{$\diamondsuit$}
|
||||
|
||||
@@ -6230,7 +6268,7 @@ should work if nowhere else does.}
|
||||
@let<=@normalless
|
||||
@let>=@normalgreater
|
||||
@let+=@normalplus
|
||||
@let$=@normaldollar}
|
||||
@let$=@normaldollar}%$ font-lock fix
|
||||
|
||||
@def@normalturnoffactive{@let"=@normaldoublequote
|
||||
@let\=@normalbackslash
|
||||
@@ -6241,7 +6279,7 @@ should work if nowhere else does.}
|
||||
@let<=@normalless
|
||||
@let>=@normalgreater
|
||||
@let+=@normalplus
|
||||
@let$=@normaldollar}
|
||||
@let$=@normaldollar}%$ font-lock fix
|
||||
|
||||
% Make _ and + \other characters, temporarily.
|
||||
% This is canceled by @fixbackslash.
|
||||
@@ -1,3 +1,73 @@
|
||||
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.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.5a from Makefile.am.
|
||||
# Makefile.in generated by automake 1.6 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,7 +13,6 @@
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
SHELL = @SHELL@
|
||||
|
||||
srcdir = @srcdir@
|
||||
@@ -49,6 +48,7 @@ INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = @program_transform_name@
|
||||
@@ -67,7 +67,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
AMTAR = @AMTAR@
|
||||
AWK = @AWK@
|
||||
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
||||
CATALOGS = @CATALOGS@
|
||||
CATOBJEXT = @CATOBJEXT@
|
||||
CC = @CC@
|
||||
CPP = @CPP@
|
||||
@@ -78,9 +77,9 @@ FESETROUND_LIBM = @FESETROUND_LIBM@
|
||||
GENCAT = @GENCAT@
|
||||
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
|
||||
GLIBC21 = @GLIBC21@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GNU_PACKAGE = @GNU_PACKAGE@
|
||||
HAVE_LIB = @HAVE_LIB@
|
||||
HELP2MAN = @HELP2MAN@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
@@ -89,23 +88,27 @@ INTLLIBS = @INTLLIBS@
|
||||
INTLOBJS = @INTLOBJS@
|
||||
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
||||
KMEM_GROUP = @KMEM_GROUP@
|
||||
LIB = @LIB@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
|
||||
LIB_CRYPT = @LIB_CRYPT@
|
||||
LIB_NANOSLEEP = @LIB_NANOSLEEP@
|
||||
LTLIB = @LTLIB@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
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@
|
||||
RANLIB = @RANLIB@
|
||||
SEQ_LIBM = @SEQ_LIBM@
|
||||
SQRT_LIBM = @SQRT_LIBM@
|
||||
STRIP = @STRIP@
|
||||
U = @U@
|
||||
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
|
||||
USE_NLS = @USE_NLS@
|
||||
@@ -114,7 +117,6 @@ YACC = @YACC@
|
||||
am__include = @am__include@
|
||||
am__quote = @am__quote@
|
||||
install_sh = @install_sh@
|
||||
|
||||
info_TEXINFOS = coreutils.texi
|
||||
|
||||
EXTRA_DIST = perm.texi getdate.texi constants.texi doclicense.texi
|
||||
@@ -129,29 +131,29 @@ EXTRA_DIST = perm.texi getdate.texi constants.texi doclicense.texi
|
||||
# old systems.
|
||||
MAKEINFO = makeinfo --no-split
|
||||
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
|
||||
INFO_DEPS = coreutils.info
|
||||
DVIS = coreutils.dvi
|
||||
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.ac $(ACLOCAL_M4)
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu doc/Makefile
|
||||
$(AUTOMAKE) --gnits doc/Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
|
||||
|
||||
$(srcdir)/version.texi: $(srcdir)/stamp-vti
|
||||
@:
|
||||
$(srcdir)/stamp-vti: coreutils.texi $(top_srcdir)/configure.ac
|
||||
@(set `$(SHELL) $(srcdir)/mdate-sh $(srcdir)/coreutils.texi`; \
|
||||
@(set `$(SHELL) $(top_srcdir)/config/mdate-sh $(srcdir)/coreutils.texi`; \
|
||||
echo "@set UPDATED $$1 $$2 $$3"; \
|
||||
echo "@set UPDATED-MONTH $$2 $$3"; \
|
||||
echo "@set EDITION $(VERSION)"; \
|
||||
@@ -178,7 +180,7 @@ coreutils.dvi: coreutils.texi $(srcdir)/version.texi
|
||||
`echo $< | sed 's,.*/,,'`
|
||||
|
||||
.texi.dvi:
|
||||
TEXINPUTS="$(srcdir)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
TEXINPUTS="$(top_srcdir)/config$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||
$(TEXI2DVI) $<
|
||||
|
||||
@@ -249,10 +251,13 @@ distdir: $(DISTFILES)
|
||||
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) \
|
||||
cp -pR $$d/$$file $(distdir)$$dir \
|
||||
|| exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
@@ -281,6 +286,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:
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
164
lib/ChangeLog
164
lib/ChangeLog
@@ -1,3 +1,167 @@
|
||||
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
|
||||
|
||||
@@ -13,8 +13,10 @@ 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 \
|
||||
@@ -40,6 +42,7 @@ libfetish_a_SOURCES = \
|
||||
getline.h \
|
||||
getpagesize.h \
|
||||
getstr.c getstr.h \
|
||||
gettime.c \
|
||||
getugroups.c \
|
||||
group-member.h \
|
||||
hard-locale.c hard-locale.h \
|
||||
@@ -57,7 +60,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 \
|
||||
@@ -70,10 +72,12 @@ libfetish_a_SOURCES = \
|
||||
same.c same.h \
|
||||
save-cwd.c save-cwd.h \
|
||||
savedir.c savedir.h \
|
||||
settime.c \
|
||||
sha.c sha.h \
|
||||
stdio-safer.h \
|
||||
stripslash.c \
|
||||
strverscmp.h \
|
||||
timespec.h \
|
||||
unicodeio.c unicodeio.h \
|
||||
unistd-safer.h \
|
||||
userspec.c \
|
||||
@@ -82,6 +86,7 @@ libfetish_a_SOURCES = \
|
||||
xgetcwd.c \
|
||||
xgethostname.c \
|
||||
xmalloc.c \
|
||||
xmemcoll.c xmemcoll.h \
|
||||
xreadlink.c xreadlink.h \
|
||||
xstrdup.c \
|
||||
xstrtod.c xstrtod.h \
|
||||
@@ -118,8 +123,6 @@ stat.c: xstat.in
|
||||
$(srcdir)/xstat.in > $@-t
|
||||
mv $@-t $@
|
||||
|
||||
Makefile: $(BUILT_SOURCES)
|
||||
|
||||
# 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
|
||||
# packages so that "make uninstall" will remove the file if and only if it
|
||||
@@ -170,6 +173,13 @@ 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 \
|
||||
|
||||
684
lib/Makefile.in
684
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 *);
|
||||
@@ -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
|
||||
|
||||
@@ -94,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
|
||||
@@ -235,10 +235,12 @@ case "$os" in
|
||||
#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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -25,8 +25,6 @@
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
#if STDC_HEADERS
|
||||
# include <stdlib.h>
|
||||
#else
|
||||
@@ -49,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;
|
||||
|
||||
@@ -64,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;
|
||||
|
||||
@@ -75,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)
|
||||
@@ -88,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))
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
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)
|
||||
{
|
||||
|
||||
@@ -25,9 +25,8 @@
|
||||
#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. */
|
||||
@@ -37,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)
|
||||
{
|
||||
@@ -54,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
|
||||
{
|
||||
@@ -62,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';
|
||||
@@ -70,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,6 +77,11 @@
|
||||
# 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
|
||||
@@ -86,7 +105,7 @@ get_charset_aliases ()
|
||||
cp = charset_aliases;
|
||||
if (cp == NULL)
|
||||
{
|
||||
#ifndef WIN32
|
||||
#if !defined WIN32
|
||||
FILE *fp;
|
||||
const char *dir = LIBDIR;
|
||||
const char *base = "charset.alias";
|
||||
@@ -138,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)
|
||||
{
|
||||
@@ -174,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;
|
||||
@@ -205,7 +226,7 @@ locale_charset ()
|
||||
const char *codeset;
|
||||
const char *aliases;
|
||||
|
||||
#ifndef WIN32
|
||||
#if !(defined WIN32 || defined OS2)
|
||||
|
||||
# if HAVE_LANGINFO_CODESET
|
||||
|
||||
@@ -242,7 +263,7 @@ locale_charset ()
|
||||
|
||||
# endif
|
||||
|
||||
#else /* WIN32 */
|
||||
#elif defined WIN32
|
||||
|
||||
static char buf[2 + 10 + 1];
|
||||
|
||||
@@ -250,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
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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, 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
|
||||
@@ -38,13 +38,22 @@ 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, "auto") \
|
||||
|| !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
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Provide a replacement for the POSIX nanosleep function.
|
||||
Copyright (C) 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
|
||||
@@ -43,7 +43,7 @@ extern int errno;
|
||||
# define SIGCONT SIGTERM
|
||||
#endif
|
||||
|
||||
#include "nanosleep.h"
|
||||
#include "timespec.h"
|
||||
|
||||
static int suspended;
|
||||
int first_call = 1;
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
/* path-concat.c -- concatenate two arbitrary pathnames
|
||||
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
|
||||
Copyright (C) 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
|
||||
@@ -121,7 +123,7 @@ char *
|
||||
xpath_concat (const char *dir, const char *base, char **base_in_result)
|
||||
{
|
||||
char *res = path_concat (dir, base, base_in_result);
|
||||
if (res)
|
||||
return res;
|
||||
xalloc_die ();
|
||||
if (! res)
|
||||
xalloc_die ();
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Parse dates for touch and date.
|
||||
Copyright (C) 1989, 1990, 1991, 1998, 2000, 2001 Free Software Foundation Inc.
|
||||
Copyright (C) 1989, 1990, 1991, 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
|
||||
@@ -46,10 +46,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 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)
|
||||
|
||||
/* The return value. */
|
||||
@@ -64,7 +63,7 @@ time_t mktime ();
|
||||
8, 10, or 12 digits, followed by optional .ss
|
||||
(PDS_LEADING_YEAR | PDS_CENTURY | PDS_SECONDS)
|
||||
|
||||
touch mmddhhmm[YY] FILE... (obsolescent)
|
||||
touch mmddhhmm[YY] FILE... (obsoleted by POSIX 1003.1-2001)
|
||||
8 or 10 digits
|
||||
(PDS_TRAILING_YEAR)
|
||||
|
||||
@@ -82,7 +81,8 @@ year (const int *digit_pair, size_t n, int allow_century)
|
||||
case 1:
|
||||
t.tm_year = *digit_pair;
|
||||
/* Deduce the century based on the year.
|
||||
See POSIX.2 section 4.63.3. */
|
||||
POSIX requires that 00-68 be interpreted as 2000-2068,
|
||||
and that 69-99 be interpreted as 1969-1999. */
|
||||
if (digit_pair[0] <= 68)
|
||||
t.tm_year += 100;
|
||||
break;
|
||||
@@ -125,7 +125,7 @@ posix_time_parse (const char *s, unsigned int syntax_bits)
|
||||
|
||||
size_t s_len = strlen (s);
|
||||
size_t len = (((syntax_bits & PDS_SECONDS) && (dot = strchr (s, '.')))
|
||||
? dot - s
|
||||
? (size_t) (dot - s)
|
||||
: s_len);
|
||||
|
||||
if (len != 8 && len != 10 && len != 12)
|
||||
|
||||
58
lib/posixver.c
Normal file
58
lib/posixver.c
Normal file
@@ -0,0 +1,58 @@
|
||||
/* Which POSIX version to conform to, for utilities.
|
||||
|
||||
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 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. */
|
||||
|
||||
/* Written by Paul Eggert. */
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <limits.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
#if !HAVE_DECL_GETENV && !defined getenv
|
||||
char *getenv ();
|
||||
#endif
|
||||
|
||||
#if HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
#ifndef _POSIX2_VERSION
|
||||
# define _POSIX2_VERSION 0
|
||||
#endif
|
||||
|
||||
/* The POSIX version that utilities should conform to. The default is
|
||||
specified by the system. */
|
||||
|
||||
int
|
||||
posix2_version (void)
|
||||
{
|
||||
long int v = _POSIX2_VERSION;
|
||||
char const *s = getenv ("_POSIX2_VERSION");
|
||||
|
||||
if (s && *s)
|
||||
{
|
||||
char *e;
|
||||
long int i = strtol (s, &e, 10);
|
||||
if (! *e)
|
||||
v = i;
|
||||
}
|
||||
|
||||
return v < INT_MIN ? INT_MIN : v < INT_MAX ? v : INT_MAX;
|
||||
}
|
||||
1
lib/posixver.h
Normal file
1
lib/posixver.h
Normal file
@@ -0,0 +1 @@
|
||||
int posix2_version (void);
|
||||
@@ -1,5 +1,5 @@
|
||||
/* quotearg.c - quote arguments for output
|
||||
Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
Copyright (C) 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
|
||||
@@ -301,6 +301,16 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
|
||||
c = arg[i];
|
||||
switch (c)
|
||||
{
|
||||
case '\0':
|
||||
if (backslash_escapes)
|
||||
{
|
||||
STORE ('\\');
|
||||
STORE ('0');
|
||||
STORE ('0');
|
||||
c = '0';
|
||||
}
|
||||
break;
|
||||
|
||||
case '?':
|
||||
switch (quoting_style)
|
||||
{
|
||||
@@ -527,14 +537,15 @@ quotearg_buffer (char *buffer, size_t buffersize,
|
||||
p->style, p);
|
||||
}
|
||||
|
||||
/* Use storage slot N to return a quoted version of the string ARG.
|
||||
/* Use storage slot N to return a quoted version of argument ARG.
|
||||
ARG is of size ARGSIZE, but if that is -1, ARG is a null-terminated string.
|
||||
OPTIONS specifies the quoting options.
|
||||
The returned value points to static storage that can be
|
||||
reused by the next call to this function with the same value of N.
|
||||
N must be nonnegative. N is deliberately declared with type "int"
|
||||
to allow for future extensions (using negative values). */
|
||||
static char *
|
||||
quotearg_n_options (int n, char const *arg,
|
||||
quotearg_n_options (int n, char const *arg, size_t argsize,
|
||||
struct quoting_options const *options)
|
||||
{
|
||||
/* Preallocate a slot 0 buffer, so that the caller can always quote
|
||||
@@ -575,13 +586,13 @@ quotearg_n_options (int n, char const *arg,
|
||||
{
|
||||
size_t size = slotvec[n].size;
|
||||
char *val = slotvec[n].val;
|
||||
size_t qsize = quotearg_buffer (val, size, arg, (size_t) -1, options);
|
||||
size_t qsize = quotearg_buffer (val, size, arg, argsize, options);
|
||||
|
||||
if (size <= qsize)
|
||||
{
|
||||
slotvec[n].size = size = qsize + 1;
|
||||
slotvec[n].val = val = xrealloc (val == slot0 ? 0 : val, size);
|
||||
quotearg_buffer (val, size, arg, (size_t) -1, options);
|
||||
quotearg_buffer (val, size, arg, argsize, options);
|
||||
}
|
||||
|
||||
return val;
|
||||
@@ -591,7 +602,7 @@ quotearg_n_options (int n, char const *arg,
|
||||
char *
|
||||
quotearg_n (int n, char const *arg)
|
||||
{
|
||||
return quotearg_n_options (n, arg, &default_quoting_options);
|
||||
return quotearg_n_options (n, arg, (size_t) -1, &default_quoting_options);
|
||||
}
|
||||
|
||||
char *
|
||||
@@ -600,13 +611,29 @@ quotearg (char const *arg)
|
||||
return quotearg_n (0, arg);
|
||||
}
|
||||
|
||||
/* Return quoting options for STYLE, with no extra quoting. */
|
||||
static struct quoting_options
|
||||
quoting_options_from_style (enum quoting_style style)
|
||||
{
|
||||
struct quoting_options o;
|
||||
o.style = style;
|
||||
memset (o.quote_these_too, 0, sizeof o.quote_these_too);
|
||||
return o;
|
||||
}
|
||||
|
||||
char *
|
||||
quotearg_n_style (int n, enum quoting_style s, char const *arg)
|
||||
{
|
||||
struct quoting_options o;
|
||||
o.style = s;
|
||||
memset (o.quote_these_too, 0, sizeof o.quote_these_too);
|
||||
return quotearg_n_options (n, arg, &o);
|
||||
struct quoting_options const o = quoting_options_from_style (s);
|
||||
return quotearg_n_options (n, arg, (size_t) -1, &o);
|
||||
}
|
||||
|
||||
char *
|
||||
quotearg_n_style_mem (int n, enum quoting_style s,
|
||||
char const *arg, size_t argsize)
|
||||
{
|
||||
struct quoting_options const o = quoting_options_from_style (s);
|
||||
return quotearg_n_options (n, arg, argsize, &o);
|
||||
}
|
||||
|
||||
char *
|
||||
@@ -621,7 +648,7 @@ quotearg_char (char const *arg, char ch)
|
||||
struct quoting_options options;
|
||||
options = default_quoting_options;
|
||||
set_char_quoting (&options, ch, 1);
|
||||
return quotearg_n_options (0, arg, &options);
|
||||
return quotearg_n_options (0, arg, (size_t) -1, &options);
|
||||
}
|
||||
|
||||
char *
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* quotearg.h - quote arguments for output
|
||||
Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
Copyright (C) 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
|
||||
@@ -98,6 +98,11 @@ char *quotearg PARAMS ((char const *arg));
|
||||
This is like quotearg_n (N, ARG), except that it uses S with no other
|
||||
options to specify the quoting method. */
|
||||
char *quotearg_n_style PARAMS ((int n, enum quoting_style s, char const *arg));
|
||||
/* Use style S and storage slot N to return a quoted version of the
|
||||
argument ARG of size ARGSIZE. This is like quotearg_n_style
|
||||
(N, S, ARG), except it can quote null bytes. */
|
||||
char *quotearg_n_style_mem PARAMS ((int n, enum quoting_style s,
|
||||
char const *arg, size_t argsize));
|
||||
|
||||
/* Equivalent to quotearg_n_style (0, S, ARG). */
|
||||
char *quotearg_style PARAMS ((enum quoting_style s, char const *arg));
|
||||
|
||||
@@ -108,9 +108,10 @@ readtoken (FILE *stream,
|
||||
if (!same_delimiters)
|
||||
{
|
||||
const char *t;
|
||||
unsigned int j;
|
||||
saved_delim = delim;
|
||||
for (i = 0; i < sizeof (isdelim); i++)
|
||||
isdelim[i] = 0;
|
||||
for (j = 0; j < sizeof (isdelim); j++)
|
||||
isdelim[j] = 0;
|
||||
for (t = delim; *t; t++)
|
||||
isdelim[(unsigned int) *t] = 1;
|
||||
}
|
||||
|
||||
@@ -113,10 +113,10 @@
|
||||
# endif
|
||||
|
||||
/* Support for bounded pointers. */
|
||||
# ifndef __BOUNDED_POINTERS__
|
||||
# define __bounded /* nothing */
|
||||
# define __unbounded /* nothing */
|
||||
# define __ptrvalue /* nothing */
|
||||
# if !defined _LIBC && !defined __BOUNDED_POINTERS__
|
||||
# define __bounded /* nothing */
|
||||
# define __unbounded /* nothing */
|
||||
# define __ptrvalue /* nothing */
|
||||
# endif
|
||||
|
||||
/* The `emacs' switch turns on certain matching commands
|
||||
|
||||
14
lib/regex.h
14
lib/regex.h
@@ -1,6 +1,6 @@
|
||||
/* Definitions for data structures and routines for the regular
|
||||
expression library, version 0.12.
|
||||
Copyright (C) 1985,1989-1993,1995-1998, 2000 Free Software Foundation, Inc.
|
||||
Copyright (C) 1985,1989-93,1995-98,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.
|
||||
|
||||
@@ -529,10 +529,14 @@ extern int re_exec _RE_ARGS ((const char *));
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
/* For now unconditionally define __restrict_arr to expand to nothing.
|
||||
Ideally we would have a test for the compiler which allows defining
|
||||
it to restrict. */
|
||||
#define __restrict_arr
|
||||
/* gcc 3.1 and up support the [restrict] syntax. */
|
||||
#ifndef __restrict_arr
|
||||
# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
|
||||
# define __restrict_arr __restrict
|
||||
# else
|
||||
# define __restrict_arr
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* POSIX compatibility. */
|
||||
extern int regcomp _RE_ARGS ((regex_t *__restrict __preg,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/* Work around the bug in some systems whereby rename fails when the source
|
||||
path has a trailing slash. The rename from SunOS 4.1.1_U1 has this bug.
|
||||
Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
path has a trailing slash. The rename functions of SunOS 4.1.1_U1 and
|
||||
mips-dec-ultrix4.4 have this bug.
|
||||
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
|
||||
|
||||
43
lib/settime.c
Normal file
43
lib/settime.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/* settime -- set 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"
|
||||
|
||||
/* Set the system time. */
|
||||
|
||||
int
|
||||
settime (struct timespec const *ts)
|
||||
{
|
||||
#if defined CLOCK_REALTIME && HAVE_CLOCK_SETTIME
|
||||
if (clock_settime (CLOCK_REALTIME, ts) == 0)
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
{
|
||||
struct timeval tv;
|
||||
|
||||
tv.tv_sec = ts->tv_sec;
|
||||
tv.tv_usec = ts->tv_nsec / 1000;
|
||||
return settimeofday (&tv, 0);
|
||||
}
|
||||
}
|
||||
@@ -191,7 +191,6 @@ my_strftime_gmtime_r (t, tp)
|
||||
*tp = *l;
|
||||
return tp;
|
||||
}
|
||||
# endif /* ! HAVE_TM_GMTOFF */
|
||||
|
||||
static struct tm *my_strftime_localtime_r __P ((const time_t *, struct tm *));
|
||||
static struct tm *
|
||||
@@ -205,6 +204,7 @@ my_strftime_localtime_r (t, tp)
|
||||
*tp = *l;
|
||||
return tp;
|
||||
}
|
||||
# endif /* ! HAVE_TM_GMTOFF */
|
||||
#endif /* ! defined _LIBC */
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Find the length of STRING, but scan at most MAXLEN characters.
|
||||
Copyright (C) 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996, 1997, 1998, 2000-2002 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
|
||||
@@ -25,7 +25,11 @@
|
||||
# if !STDC_HEADERS && HAVE_MEMORY_H
|
||||
# include <memory.h>
|
||||
# endif
|
||||
/* Temporarily redefine strnlen so that an inconsistent prototype
|
||||
(on at least AIX4.3.2.0 w/gcc-2.95.3) doesn't cause trouble. */
|
||||
# define strnlen system_strnlen
|
||||
# include <string.h>
|
||||
# undef strnlen
|
||||
#else
|
||||
# include <strings.h>
|
||||
#endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Compare strings while treating digits characters numerically.
|
||||
Copyright (C) 1997, 2000 Free Software Foundation, Inc.
|
||||
Copyright (C) 1997, 2000, 2002 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997.
|
||||
|
||||
@@ -41,10 +41,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 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)
|
||||
|
||||
#undef __strverscmp
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
/* Copyright (C) 2000 Free Software Foundation, Inc.
|
||||
/* timespec -- System time interface
|
||||
|
||||
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 General Public License as published by
|
||||
@@ -14,8 +16,8 @@
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#if ! defined NANOSLEEP_H
|
||||
# define NANOSLEEP_H
|
||||
#if ! defined TIMESPEC_H
|
||||
# define TIMESPEC_H
|
||||
|
||||
/* You must include config.h before including this file. */
|
||||
|
||||
@@ -40,10 +42,19 @@ struct timespec
|
||||
};
|
||||
# endif
|
||||
|
||||
# ifdef ST_MTIM_NSEC
|
||||
# define TIMESPEC_NS(timespec) ((timespec).ST_MTIM_NSEC)
|
||||
# else
|
||||
# define TIMESPEC_NS(timespec) 0
|
||||
# endif
|
||||
|
||||
# if ! HAVE_DECL_NANOSLEEP
|
||||
/* Don't specify a prototype here. Some systems (e.g., OSF) declare
|
||||
nanosleep with a conflicting one (const-less first parameter). */
|
||||
int nanosleep ();
|
||||
# endif
|
||||
|
||||
int gettime (struct timespec *);
|
||||
int settime (struct timespec const *);
|
||||
|
||||
#endif
|
||||
123
lib/unicodeio.c
123
lib/unicodeio.c
@@ -1,6 +1,6 @@
|
||||
/* Unicode character output to streams with locale dependent 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
|
||||
@@ -19,6 +19,9 @@
|
||||
|
||||
/* Written by Bruno Haible <haible@clisp.cons.org>. */
|
||||
|
||||
/* Note: This file requires the locale_charset() function. See in
|
||||
libiconv-1.7/libcharset/INTEGRATE for how to obtain it. */
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
@@ -47,11 +50,13 @@ extern int errno;
|
||||
|
||||
#if ENABLE_NLS
|
||||
# include <libintl.h>
|
||||
# define _(Text) gettext (Text)
|
||||
#else
|
||||
# define _(Text) Text
|
||||
# define gettext(Text) Text
|
||||
#endif
|
||||
#define _(Text) gettext (Text)
|
||||
#define N_(Text) Text
|
||||
|
||||
/* Specification. */
|
||||
#include "unicodeio.h"
|
||||
|
||||
/* When we pass a Unicode character to iconv(), we must pass it in a
|
||||
@@ -105,10 +110,19 @@ utf8_wctomb (unsigned char *r, unsigned int wc)
|
||||
/* Luckily, the encoding's name is platform independent. */
|
||||
#define UTF8_NAME "UTF-8"
|
||||
|
||||
/* Outputs the Unicode character CODE to the output stream STREAM.
|
||||
/* Converts the Unicode character CODE to its multibyte representation
|
||||
in the current locale and calls the SUCCESS callback on the resulting
|
||||
byte sequence. If an error occurs, invokes the FAILURE callback instead,
|
||||
passing it CODE and an English error string.
|
||||
Returns whatever the callback returned.
|
||||
Assumes that the locale doesn't change between two calls. */
|
||||
void
|
||||
print_unicode_char (FILE *stream, unsigned int code)
|
||||
long
|
||||
unicode_to_mb (unsigned int code,
|
||||
long (*success) PARAMS ((const char *buf, size_t buflen,
|
||||
void *callback_arg)),
|
||||
long (*failure) PARAMS ((unsigned int code, const char *msg,
|
||||
void *callback_arg)),
|
||||
void *callback_arg)
|
||||
{
|
||||
static int initialized;
|
||||
static int is_utf8;
|
||||
@@ -130,31 +144,32 @@ print_unicode_char (FILE *stream, unsigned int code)
|
||||
{
|
||||
utf8_to_local = iconv_open (charset, UTF8_NAME);
|
||||
if (utf8_to_local == (iconv_t)(-1))
|
||||
{
|
||||
/* For an unknown encoding, assume ASCII. */
|
||||
utf8_to_local = iconv_open ("ASCII", UTF8_NAME);
|
||||
if (utf8_to_local == (iconv_t)(-1))
|
||||
error (1, 0,
|
||||
_("cannot output U+%04X: iconv function not usable"),
|
||||
code);
|
||||
}
|
||||
/* For an unknown encoding, assume ASCII. */
|
||||
utf8_to_local = iconv_open ("ASCII", UTF8_NAME);
|
||||
}
|
||||
#endif
|
||||
initialized = 1;
|
||||
}
|
||||
|
||||
/* Test whether the utf8_to_local converter is available at all. */
|
||||
if (!is_utf8)
|
||||
{
|
||||
#if HAVE_ICONV
|
||||
if (utf8_to_local == (iconv_t)(-1))
|
||||
return failure (code, N_("iconv function not usable"), callback_arg);
|
||||
#else
|
||||
return failure (code, N_("iconv function not available"), callback_arg);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Convert the character to UTF-8. */
|
||||
count = utf8_wctomb ((unsigned char *) inbuf, code);
|
||||
if (count < 0)
|
||||
error (1, 0, _("U+%04X: character out of range"), code);
|
||||
return failure (code, N_("character out of range"), callback_arg);
|
||||
|
||||
if (is_utf8)
|
||||
{
|
||||
fwrite (inbuf, 1, count, stream);
|
||||
}
|
||||
else
|
||||
{
|
||||
#if HAVE_ICONV
|
||||
if (!is_utf8)
|
||||
{
|
||||
char outbuf[25];
|
||||
const char *inptr;
|
||||
size_t inbytesleft;
|
||||
@@ -177,8 +192,7 @@ print_unicode_char (FILE *stream, unsigned int code)
|
||||
|| (res > 0 && code != 0 && outptr - outbuf == 1 && *outbuf == '\0')
|
||||
# endif
|
||||
)
|
||||
error (1, res == (size_t)(-1) ? errno : 0,
|
||||
_("cannot convert U+%04X to local character set"), code);
|
||||
return failure (code, NULL, callback_arg);
|
||||
|
||||
/* Avoid glibc-2.1 bug and Solaris 2.7 bug. */
|
||||
# if defined _LIBICONV_VERSION \
|
||||
@@ -187,14 +201,63 @@ print_unicode_char (FILE *stream, unsigned int code)
|
||||
/* Get back to the initial shift state. */
|
||||
res = iconv (utf8_to_local, NULL, NULL, &outptr, &outbytesleft);
|
||||
if (res == (size_t)(-1))
|
||||
error (1, errno, _("cannot convert U+%04X to local character set"),
|
||||
code);
|
||||
return failure (code, NULL, callback_arg);
|
||||
# endif
|
||||
|
||||
fwrite (outbuf, 1, outptr - outbuf, stream);
|
||||
#else
|
||||
error (1, 0, _("cannot output U+%04X: iconv function not available"),
|
||||
code);
|
||||
#endif
|
||||
return success (outbuf, outptr - outbuf, callback_arg);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* At this point, is_utf8 is true, so no conversion is needed. */
|
||||
return success (inbuf, count, callback_arg);
|
||||
}
|
||||
|
||||
/* Simple success callback that outputs the converted string.
|
||||
The STREAM is passed as callback_arg. */
|
||||
long
|
||||
fwrite_success_callback (const char *buf, size_t buflen, void *callback_arg)
|
||||
{
|
||||
FILE *stream = (FILE *) callback_arg;
|
||||
|
||||
fwrite (buf, 1, buflen, stream);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Simple failure callback that displays an error and exits. */
|
||||
static long
|
||||
exit_failure_callback (unsigned int code, const char *msg, void *callback_arg)
|
||||
{
|
||||
if (msg == NULL)
|
||||
error (1, 0, _("cannot convert U+%04X to local character set"), code);
|
||||
else
|
||||
error (1, 0, _("cannot convert U+%04X to local character set: %s"), code,
|
||||
gettext (msg));
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Simple failure callback that displays a fallback representation in plain
|
||||
ASCII, using the same notation as ISO C99 strings. */
|
||||
static long
|
||||
fallback_failure_callback (unsigned int code, const char *msg, void *callback_arg)
|
||||
{
|
||||
FILE *stream = (FILE *) callback_arg;
|
||||
|
||||
if (code < 0x10000)
|
||||
fprintf (stream, "\\u%04X", code);
|
||||
else
|
||||
fprintf (stream, "\\U%08X", code);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Outputs the Unicode character CODE to the output stream STREAM.
|
||||
Upon failure, exit if exit_on_error is true, otherwise output a fallback
|
||||
notation. */
|
||||
void
|
||||
print_unicode_char (FILE *stream, unsigned int code, int exit_on_error)
|
||||
{
|
||||
unicode_to_mb (code, fwrite_success_callback,
|
||||
exit_on_error
|
||||
? exit_failure_callback
|
||||
: fallback_failure_callback,
|
||||
stream);
|
||||
}
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/* Unicode character output to streams with locale dependent encoding.
|
||||
|
||||
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
|
||||
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 UNICODEIO_H
|
||||
# define UNICODEIO_H
|
||||
|
||||
@@ -11,7 +30,15 @@
|
||||
# endif
|
||||
# endif
|
||||
|
||||
/* Outputs the Unicode character CODE to the output stream STREAM. */
|
||||
extern void print_unicode_char PARAMS((FILE *stream, unsigned int code));
|
||||
/* Outputs the Unicode character CODE to the output stream STREAM.
|
||||
Upon failure, exit if exit_on_error is true, otherwise output a fallback
|
||||
notation. */
|
||||
extern void print_unicode_char PARAMS ((FILE *stream, unsigned int code,
|
||||
int exit_on_error));
|
||||
|
||||
/* Simple success callback that outputs the converted string.
|
||||
The STREAM is passed as callback_arg. */
|
||||
extern long fwrite_success_callback PARAMS ((const char *buf, size_t buflen,
|
||||
void *callback_arg));
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* userspec.c -- Parse a user and group string.
|
||||
Copyright (C) 1989-1992, 1997, 1998, 2000 Free Software Foundation, Inc.
|
||||
Copyright (C) 1989-1992, 1997, 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
|
||||
@@ -134,10 +134,9 @@ struct group *getgrgid ();
|
||||
- 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)
|
||||
|
||||
#ifndef strdup
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Utility to help print --version output in a consistent format.
|
||||
Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
Copyright (C) 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
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
char* version_etc_copyright =
|
||||
/* Do *not* mark this string for translation. */
|
||||
"Copyright (C) 2001 Free Software Foundation, Inc.";
|
||||
"Copyright (C) 2002 Free Software Foundation, Inc.";
|
||||
|
||||
|
||||
/* Display the --version information the standard way.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* xgethostname.c -- return current hostname with unlimited length
|
||||
Copyright (C) 1992, 1996, 2000 Free Software Foundation, Inc.
|
||||
Copyright (C) 1992, 1996, 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
|
||||
@@ -29,6 +29,7 @@ extern int errno;
|
||||
#endif
|
||||
|
||||
#include "error.h"
|
||||
#include "xalloc.h"
|
||||
|
||||
#ifndef ENAMETOOLONG
|
||||
# define ENAMETOOLONG 9999
|
||||
@@ -39,8 +40,6 @@ extern int errno;
|
||||
#endif
|
||||
|
||||
int gethostname ();
|
||||
char *xmalloc ();
|
||||
char *xrealloc ();
|
||||
|
||||
#ifndef INITIAL_HOSTNAME_LENGTH
|
||||
# define INITIAL_HOSTNAME_LENGTH 34
|
||||
|
||||
70
lib/xmemcoll.c
Normal file
70
lib/xmemcoll.c
Normal file
@@ -0,0 +1,70 @@
|
||||
/* Locale-specific memory comparison.
|
||||
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. */
|
||||
|
||||
/* Contributed by Paul Eggert <eggert@twinsun.com>. */
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <errno.h>
|
||||
#ifndef errno
|
||||
extern int errno;
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#if ENABLE_NLS
|
||||
# include <libintl.h>
|
||||
# define _(Text) gettext (Text)
|
||||
#else
|
||||
# define _(Text) Text
|
||||
#endif
|
||||
|
||||
#include "error.h"
|
||||
#include "memcoll.h"
|
||||
#include "quotearg.h"
|
||||
#include "xmemcoll.h"
|
||||
|
||||
/* Exit value when xmemcoll fails.
|
||||
The caller may set it to some other value. */
|
||||
int xmemcoll_exit_failure = EXIT_FAILURE;
|
||||
|
||||
/* 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. Report an error
|
||||
and exit if there is an error. */
|
||||
|
||||
int
|
||||
xmemcoll (char *s1, size_t s1len, char *s2, size_t s2len)
|
||||
{
|
||||
int diff = memcoll (s1, s1len, s2, s2len);
|
||||
int collation_errno = errno;
|
||||
|
||||
if (collation_errno)
|
||||
{
|
||||
error (0, collation_errno, _("string comparison failed"));
|
||||
error (0, 0, _("Set LC_ALL='C' to work around the problem."));
|
||||
error (xmemcoll_exit_failure, 0,
|
||||
_("The strings compared were %s and %s."),
|
||||
quotearg_n_style_mem (0, locale_quoting_style, s1, s1len),
|
||||
quotearg_n_style_mem (1, locale_quoting_style, s2, s2len));
|
||||
}
|
||||
|
||||
return diff;
|
||||
}
|
||||
2
lib/xmemcoll.h
Normal file
2
lib/xmemcoll.h
Normal file
@@ -0,0 +1,2 @@
|
||||
extern int xmemcoll_exit_failure;
|
||||
int xmemcoll (char *, size_t, char *, size_t);
|
||||
@@ -78,7 +78,7 @@ xreadlink (char const *filename)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (link_length < buf_size)
|
||||
if ((size_t) link_length < buf_size)
|
||||
{
|
||||
buffer[link_length] = 0;
|
||||
return buffer;
|
||||
|
||||
@@ -141,8 +141,16 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
|
||||
tmp = __strtol (s, p, strtol_base);
|
||||
if (errno != 0)
|
||||
return LONGINT_OVERFLOW;
|
||||
|
||||
if (*p == s)
|
||||
return LONGINT_INVALID;
|
||||
{
|
||||
/* If there is no number but there is a valid suffix, assume the
|
||||
number is 1. The string is invalid otherwise. */
|
||||
if (valid_suffixes && **p && strchr (valid_suffixes, **p))
|
||||
tmp = 1;
|
||||
else
|
||||
return LONGINT_INVALID;
|
||||
}
|
||||
|
||||
/* Let valid_suffixes == NULL mean `allow any suffix'. */
|
||||
/* FIXME: update all callers except the ones that allow suffixes
|
||||
@@ -169,15 +177,20 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
|
||||
{
|
||||
/* The ``valid suffix'' '0' is a special flag meaning that
|
||||
an optional second suffix is allowed, which can change
|
||||
the base, e.g. "100MD" for 100 megabytes decimal. */
|
||||
the base. A suffix "B" (e.g. "100MB") stands for a power
|
||||
of 1000, whereas a suffix "iB" (e.g. "100MiB") stands for
|
||||
a power of 1024. If no suffix (e.g. "100M"), assume
|
||||
power-of-1024. */
|
||||
|
||||
switch (p[0][1])
|
||||
{
|
||||
case 'B':
|
||||
suffixes++;
|
||||
case 'i':
|
||||
if (p[0][2] == 'B')
|
||||
suffixes += 2;
|
||||
break;
|
||||
|
||||
case 'D':
|
||||
case 'B':
|
||||
case 'D': /* 'D' is obsolescent */
|
||||
base = 1000;
|
||||
suffixes++;
|
||||
break;
|
||||
@@ -198,29 +211,30 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
|
||||
overflow = 0;
|
||||
break;
|
||||
|
||||
case 'E': /* Exa */
|
||||
case 'E': /* exa or exbi */
|
||||
overflow = bkm_scale_by_power (&tmp, base, 6);
|
||||
break;
|
||||
|
||||
case 'G': /* Giga */
|
||||
case 'G': /* giga or gibi */
|
||||
case 'g': /* 'g' is undocumented; for compatibility only */
|
||||
overflow = bkm_scale_by_power (&tmp, base, 3);
|
||||
break;
|
||||
|
||||
case 'k': /* kilo */
|
||||
case 'K': /* kibi */
|
||||
overflow = bkm_scale_by_power (&tmp, base, 1);
|
||||
break;
|
||||
|
||||
case 'M': /* Mega */
|
||||
case 'M': /* mega or mebi */
|
||||
case 'm': /* 'm' is undocumented; for compatibility only */
|
||||
overflow = bkm_scale_by_power (&tmp, base, 2);
|
||||
break;
|
||||
|
||||
case 'P': /* Peta */
|
||||
case 'P': /* peta or pebi */
|
||||
overflow = bkm_scale_by_power (&tmp, base, 5);
|
||||
break;
|
||||
|
||||
case 'T': /* Tera */
|
||||
case 'T': /* tera or tebi */
|
||||
case 't': /* 't' is undocumented; for compatibility only */
|
||||
overflow = bkm_scale_by_power (&tmp, base, 4);
|
||||
break;
|
||||
@@ -229,11 +243,11 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
|
||||
overflow = bkm_scale (&tmp, 2);
|
||||
break;
|
||||
|
||||
case 'Y': /* Yotta */
|
||||
case 'Y': /* yotta or 2**80 */
|
||||
overflow = bkm_scale_by_power (&tmp, base, 8);
|
||||
break;
|
||||
|
||||
case 'Z': /* Zetta */
|
||||
case 'Z': /* zetta or 2**70 */
|
||||
overflow = bkm_scale_by_power (&tmp, base, 7);
|
||||
break;
|
||||
|
||||
|
||||
49
m4/ChangeLog
49
m4/ChangeLog
@@ -1,3 +1,52 @@
|
||||
2002-02-27 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* jm-macros.m4 (jm_MACROS): Do not replace stime; no longer used.
|
||||
Check for clock_settime.
|
||||
|
||||
2002-02-25 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* acl.m4: New file.
|
||||
* jm-macros.m4 (jm_MACROS): Require AC_FUNC_ACL.
|
||||
Do not check for acl or sys/acl.h, as AC_FUNC_ACL does that now.
|
||||
|
||||
2002-02-16 gettextize <bug-gnu-gettext@gnu.org>
|
||||
|
||||
* codeset.m4: Upgrade to gettext-0.11.
|
||||
* gettext.m4: Upgrade to gettext-0.11.
|
||||
* glibc21.m4: Upgrade to gettext-0.11.
|
||||
* iconv.m4: Upgrade to gettext-0.11.
|
||||
* isc-posix.m4: Upgrade to gettext-0.11.
|
||||
* lcmessage.m4: Upgrade to gettext-0.11.
|
||||
* lib-ld.m4: New file, from gettext-0.11.
|
||||
* lib-link.m4: New file, from gettext-0.11.
|
||||
* lib-prefix.m4: New file, from gettext-0.11.
|
||||
* progtest.m4: Upgrade to gettext-0.11.
|
||||
|
||||
2002-02-15 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* m4/prereq.m4 (jm_PREREQ_POSIXVER): New macro.
|
||||
(jm_PREREQ): Use it.
|
||||
|
||||
2002-01-26 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* jm-macros.m4 (jm_MACROS): Require autoconf-2.52g.
|
||||
* strnlen.m4: Remove file, now that it's part of autoconf.
|
||||
|
||||
2002-01-22 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* jm-macros.m4 (jm_MACROS): Require AC_FUNC_FSEEKO.
|
||||
|
||||
2002-01-19 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* jm-macros.m4 (jm_MACROS): Use AC_FUNC_STRNLEN.
|
||||
Remove useless quotes: DF_PROG="df".
|
||||
* strnlen.m4: New file.
|
||||
|
||||
2001-12-14 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* jm-macros.m4 (jm_MACROS): Check for iswspace.
|
||||
Suggestion from Bruno Haible.
|
||||
|
||||
2001-11-20 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* mkstemp.m4 (UTILS_FUNC_MKSTEMP): Update comment to reflect that
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
##m4-files-begin
|
||||
EXTRA_DIST = \
|
||||
README jm-glibc-io.m4 jm-glibc-io.m4n Makefile.am.in \
|
||||
acl.m4 \
|
||||
afs.m4 \
|
||||
assert.m4 \
|
||||
bison.m4 \
|
||||
@@ -42,6 +43,9 @@ jm-winsz2.m4 \
|
||||
lchown.m4 \
|
||||
lcmessage.m4 \
|
||||
lib-check.m4 \
|
||||
lib-ld.m4 \
|
||||
lib-link.m4 \
|
||||
lib-prefix.m4 \
|
||||
link-follow.m4 \
|
||||
longlong.m4 \
|
||||
ls-mntd-fs.m4 \
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Makefile.in generated by automake 1.5a from Makefile.am.
|
||||
# Makefile.in generated by automake 1.6 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,7 +13,6 @@
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
SHELL = @SHELL@
|
||||
|
||||
srcdir = @srcdir@
|
||||
@@ -49,6 +48,7 @@ INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = @program_transform_name@
|
||||
@@ -67,7 +67,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
AMTAR = @AMTAR@
|
||||
AWK = @AWK@
|
||||
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
||||
CATALOGS = @CATALOGS@
|
||||
CATOBJEXT = @CATOBJEXT@
|
||||
CC = @CC@
|
||||
CPP = @CPP@
|
||||
@@ -78,9 +77,9 @@ FESETROUND_LIBM = @FESETROUND_LIBM@
|
||||
GENCAT = @GENCAT@
|
||||
GETLOADAVG_LIBS = @GETLOADAVG_LIBS@
|
||||
GLIBC21 = @GLIBC21@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GNU_PACKAGE = @GNU_PACKAGE@
|
||||
HAVE_LIB = @HAVE_LIB@
|
||||
HELP2MAN = @HELP2MAN@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
@@ -89,23 +88,27 @@ INTLLIBS = @INTLLIBS@
|
||||
INTLOBJS = @INTLOBJS@
|
||||
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
||||
KMEM_GROUP = @KMEM_GROUP@
|
||||
LIB = @LIB@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBINTL = @LIBINTL@
|
||||
LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
|
||||
LIB_CRYPT = @LIB_CRYPT@
|
||||
LIB_NANOSLEEP = @LIB_NANOSLEEP@
|
||||
LTLIB = @LTLIB@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBINTL = @LTLIBINTL@
|
||||
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@
|
||||
RANLIB = @RANLIB@
|
||||
SEQ_LIBM = @SEQ_LIBM@
|
||||
SQRT_LIBM = @SQRT_LIBM@
|
||||
STRIP = @STRIP@
|
||||
U = @U@
|
||||
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
|
||||
USE_NLS = @USE_NLS@
|
||||
@@ -117,6 +120,7 @@ install_sh = @install_sh@
|
||||
|
||||
EXTRA_DIST = \
|
||||
README jm-glibc-io.m4 jm-glibc-io.m4n Makefile.am.in \
|
||||
acl.m4 \
|
||||
afs.m4 \
|
||||
assert.m4 \
|
||||
bison.m4 \
|
||||
@@ -156,6 +160,9 @@ jm-winsz2.m4 \
|
||||
lchown.m4 \
|
||||
lcmessage.m4 \
|
||||
lib-check.m4 \
|
||||
lib-ld.m4 \
|
||||
lib-link.m4 \
|
||||
lib-prefix.m4 \
|
||||
link-follow.m4 \
|
||||
longlong.m4 \
|
||||
ls-mntd-fs.m4 \
|
||||
@@ -193,7 +200,7 @@ xstrtoimax.m4 \
|
||||
xstrtoumax.m4
|
||||
|
||||
subdir = m4
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
DIST_SOURCES =
|
||||
@@ -203,9 +210,9 @@ all: all-am
|
||||
.SUFFIXES:
|
||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu m4/Makefile
|
||||
$(AUTOMAKE) --gnits m4/Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
|
||||
uninstall-info-am:
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
@@ -220,10 +227,13 @@ distdir: $(DISTFILES)
|
||||
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) \
|
||||
cp -pR $$d/$$file $(distdir)$$dir \
|
||||
|| exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
@@ -248,6 +258,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:
|
||||
|
||||
23
m4/acl.m4
Normal file
23
m4/acl.m4
Normal file
@@ -0,0 +1,23 @@
|
||||
# acl.m4 - check for access control list (ACL) primitives
|
||||
|
||||
# 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.
|
||||
|
||||
AC_DEFUN([AC_FUNC_ACL],
|
||||
[AC_CHECK_HEADERS(sys/acl.h)
|
||||
AC_CHECK_FUNCS(acl)])
|
||||
@@ -1,4 +1,10 @@
|
||||
#serial AM1
|
||||
# codeset.m4 serial AM1 (gettext-0.10.40)
|
||||
dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
|
||||
dnl This file is free software, distributed under the terms of the GNU
|
||||
dnl General Public License. As a special exception to the GNU General
|
||||
dnl Public License, this file may be distributed as part of a program
|
||||
dnl that contains a configuration script generated by Autoconf, under
|
||||
dnl the same distribution terms as the rest of that program.
|
||||
|
||||
dnl From Bruno Haible.
|
||||
|
||||
|
||||
699
m4/gettext.m4
699
m4/gettext.m4
@@ -1,27 +1,40 @@
|
||||
# Macro to add for using GNU gettext.
|
||||
# Ulrich Drepper <drepper@cygnus.com>, 1995.
|
||||
#
|
||||
# This file can be copied and used freely without restrictions. It can
|
||||
# be used in projects which are not available under the GNU General Public
|
||||
# License or the GNU Library General Public License but which still want
|
||||
# to provide support for the GNU gettext functionality.
|
||||
# Please note that the actual code of the GNU gettext library is covered
|
||||
# by the GNU Library General Public License, and the rest of the GNU
|
||||
# gettext package package is covered by the GNU General Public License.
|
||||
# They are *not* in the public domain.
|
||||
# gettext.m4 serial 12 (gettext-0.11)
|
||||
dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
|
||||
dnl This file is free software, distributed under the terms of the GNU
|
||||
dnl General Public License. As a special exception to the GNU General
|
||||
dnl Public License, this file may be distributed as part of a program
|
||||
dnl that contains a configuration script generated by Autoconf, under
|
||||
dnl the same distribution terms as the rest of that program.
|
||||
dnl
|
||||
dnl This file can can be used in projects which are not available under
|
||||
dnl the GNU General Public License or the GNU Library General Public
|
||||
dnl License but which still want to provide support for the GNU gettext
|
||||
dnl functionality.
|
||||
dnl Please note that the actual code of the GNU gettext library is covered
|
||||
dnl by the GNU Library General Public License, and the rest of the GNU
|
||||
dnl gettext package package is covered by the GNU General Public License.
|
||||
dnl They are *not* in the public domain.
|
||||
|
||||
# serial 10
|
||||
dnl Authors:
|
||||
dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
|
||||
dnl Bruno Haible <haible@clisp.cons.org>, 2000-2002.
|
||||
|
||||
dnl Usage: AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR]).
|
||||
dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library
|
||||
dnl Macro to add for using GNU gettext.
|
||||
|
||||
dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
|
||||
dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
|
||||
dnl default (if it is not specified or empty) is 'no-libtool'.
|
||||
dnl INTLSYMBOL should be 'external' for packages with no intl directory,
|
||||
dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory.
|
||||
dnl If INTLSYMBOL is 'use-libtool', then a libtool library
|
||||
dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
|
||||
dnl depending on --{enable,disable}-{shared,static} and on the presence of
|
||||
dnl AM-DISABLE-SHARED). Otherwise, a static library
|
||||
dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
|
||||
dnl $(top_builddir)/intl/libintl.a will be created.
|
||||
dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
|
||||
dnl implementations (in libc or libintl) without the ngettext() function
|
||||
dnl will be ignored.
|
||||
dnl LIBDIR is used to find the intl libraries. If empty,
|
||||
dnl INTLDIR is used to find the intl libraries. If empty,
|
||||
dnl the value `$(top_builddir)/intl/' is used.
|
||||
dnl
|
||||
dnl The result of the configuration is one of three cases:
|
||||
@@ -35,29 +48,53 @@ dnl Catalog extension: .mo after installation, .gmo in source tree
|
||||
dnl 3) No internationalization, always use English msgid.
|
||||
dnl Catalog format: none
|
||||
dnl Catalog extension: none
|
||||
dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
|
||||
dnl The use of .gmo is historical (it was needed to avoid overwriting the
|
||||
dnl GNU format catalogs when building on a platform with an X/Open gettext),
|
||||
dnl but we keep it in order not to force irrelevant filename changes on the
|
||||
dnl maintainers.
|
||||
dnl
|
||||
AC_DEFUN([AM_WITH_NLS],
|
||||
[AC_MSG_CHECKING([whether NLS is requested])
|
||||
dnl Default is enabled NLS
|
||||
AC_ARG_ENABLE(nls,
|
||||
[ --disable-nls do not use Native Language Support],
|
||||
USE_NLS=$enableval, USE_NLS=yes)
|
||||
AC_MSG_RESULT($USE_NLS)
|
||||
AC_SUBST(USE_NLS)
|
||||
AC_DEFUN([AM_GNU_GETTEXT],
|
||||
[
|
||||
dnl Argument checking.
|
||||
ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
|
||||
[errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
|
||||
])])])])])
|
||||
ifelse([$2], [], , [ifelse([$2], [need-ngettext], ,
|
||||
[errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
|
||||
])])])
|
||||
define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
|
||||
define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
|
||||
|
||||
AC_REQUIRE([AM_PO_SUBDIRS])dnl
|
||||
ifelse(gt_included_intl, yes, [
|
||||
AC_REQUIRE([AM_INTL_SUBDIR])dnl
|
||||
])
|
||||
|
||||
dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
|
||||
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
|
||||
AC_REQUIRE([AC_LIB_RPATH])
|
||||
|
||||
AC_MSG_CHECKING([whether NLS is requested])
|
||||
dnl Default is enabled NLS
|
||||
AC_ARG_ENABLE(nls,
|
||||
[ --disable-nls do not use Native Language Support],
|
||||
USE_NLS=$enableval, USE_NLS=yes)
|
||||
AC_MSG_RESULT($USE_NLS)
|
||||
AC_SUBST(USE_NLS)
|
||||
|
||||
ifelse(gt_included_intl, yes, [
|
||||
BUILD_INCLUDED_LIBINTL=no
|
||||
USE_INCLUDED_LIBINTL=no
|
||||
INTLLIBS=
|
||||
])
|
||||
LIBINTL=
|
||||
LTLIBINTL=
|
||||
POSUB=
|
||||
|
||||
dnl If we use NLS figure out what method
|
||||
if test "$USE_NLS" = "yes"; then
|
||||
AC_DEFINE(ENABLE_NLS, 1,
|
||||
[Define to 1 if translation of program messages to the user's native language
|
||||
is requested.])
|
||||
dnl If we use NLS figure out what method
|
||||
if test "$USE_NLS" = "yes"; then
|
||||
gt_use_preinstalled_gnugettext=no
|
||||
ifelse(gt_included_intl, yes, [
|
||||
AC_MSG_CHECKING([whether included gettext is requested])
|
||||
AC_ARG_WITH(included-gettext,
|
||||
[ --with-included-gettext use the GNU gettext library included here],
|
||||
@@ -67,214 +104,140 @@ AC_DEFUN([AM_WITH_NLS],
|
||||
|
||||
nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
|
||||
if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
|
||||
])
|
||||
dnl User does not insist on using GNU NLS library. Figure out what
|
||||
dnl to use. If GNU gettext is available we use this. Else we have
|
||||
dnl to fall back to GNU NLS library.
|
||||
CATOBJEXT=NONE
|
||||
|
||||
dnl Add a version number to the cache macros.
|
||||
define(gt_cv_func_gnugettext_libc, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libc])
|
||||
define(gt_cv_func_gnugettext_libintl, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libintl])
|
||||
define([gt_api_version], ifelse([$2], [need-ngettext], 2, 1))
|
||||
define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
|
||||
define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
|
||||
|
||||
AC_CHECK_HEADER(libintl.h,
|
||||
[AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
|
||||
[AC_TRY_LINK([#include <libintl.h>
|
||||
AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
|
||||
[AC_TRY_LINK([#include <libintl.h>
|
||||
extern int _nl_msg_cat_cntr;],
|
||||
[bindtextdomain ("", "");
|
||||
return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
|
||||
gt_cv_func_gnugettext_libc=yes,
|
||||
gt_cv_func_gnugettext_libc=no)])
|
||||
[bindtextdomain ("", "");
|
||||
return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
|
||||
gt_cv_func_gnugettext_libc=yes,
|
||||
gt_cv_func_gnugettext_libc=no)])
|
||||
|
||||
if test "$gt_cv_func_gnugettext_libc" != "yes"; then
|
||||
AC_CACHE_CHECK([for GNU gettext in libintl],
|
||||
gt_cv_func_gnugettext_libintl,
|
||||
[gt_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS -lintl $LIBICONV"
|
||||
AC_TRY_LINK([#include <libintl.h>
|
||||
if test "$gt_cv_func_gnugettext_libc" != "yes"; then
|
||||
dnl Sometimes libintl requires libiconv, so first search for libiconv.
|
||||
ifelse(gt_included_intl, yes, , [
|
||||
AM_ICONV_LINK
|
||||
])
|
||||
dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
|
||||
dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
|
||||
dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
|
||||
dnl even if libiconv doesn't exist.
|
||||
AC_LIB_LINKFLAGS_BODY([intl])
|
||||
AC_CACHE_CHECK([for GNU gettext in libintl],
|
||||
gt_cv_func_gnugettext_libintl,
|
||||
[gt_save_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $INCINTL"
|
||||
gt_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS $LIBINTL"
|
||||
dnl Now see whether libintl exists and does not depend on libiconv.
|
||||
AC_TRY_LINK([#include <libintl.h>
|
||||
extern int _nl_msg_cat_cntr;],
|
||||
[bindtextdomain ("", "");
|
||||
return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
|
||||
gt_cv_func_gnugettext_libintl=yes,
|
||||
gt_cv_func_gnugettext_libintl=no)
|
||||
LIBS="$gt_save_LIBS"])
|
||||
fi
|
||||
[bindtextdomain ("", "");
|
||||
return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
|
||||
gt_cv_func_gnugettext_libintl=yes,
|
||||
gt_cv_func_gnugettext_libintl=no)
|
||||
dnl Now see whether libintl exists and depends on libiconv.
|
||||
if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
|
||||
LIBS="$LIBS $LIBICONV"
|
||||
AC_TRY_LINK([#include <libintl.h>
|
||||
extern int _nl_msg_cat_cntr;],
|
||||
[bindtextdomain ("", "");
|
||||
return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
|
||||
[LIBINTL="$LIBINTL $LIBICONV"
|
||||
LTLIBINTL="$LTLIBINTL $LTLIBICONV"
|
||||
gt_cv_func_gnugettext_libintl=yes
|
||||
])
|
||||
fi
|
||||
CPPFLAGS="$gt_save_CPPFLAGS"
|
||||
LIBS="$gt_save_LIBS"])
|
||||
fi
|
||||
|
||||
dnl If an already present or preinstalled GNU gettext() is found,
|
||||
dnl use it. But if this macro is used in GNU gettext, and GNU
|
||||
dnl gettext is already preinstalled in libintl, we update this
|
||||
dnl libintl. (Cf. the install rule in intl/Makefile.in.)
|
||||
if test "$gt_cv_func_gnugettext_libc" = "yes" \
|
||||
|| { test "$gt_cv_func_gnugettext_libintl" = "yes" \
|
||||
&& test "$PACKAGE" != gettext; }; then
|
||||
AC_DEFINE(HAVE_GETTEXT, 1,
|
||||
[Define if the GNU gettext() function is already present or preinstalled.])
|
||||
dnl If an already present or preinstalled GNU gettext() is found,
|
||||
dnl use it. But if this macro is used in GNU gettext, and GNU
|
||||
dnl gettext is already preinstalled in libintl, we update this
|
||||
dnl libintl. (Cf. the install rule in intl/Makefile.in.)
|
||||
if test "$gt_cv_func_gnugettext_libc" = "yes" \
|
||||
|| { test "$gt_cv_func_gnugettext_libintl" = "yes" \
|
||||
&& test "$PACKAGE" != gettext; }; then
|
||||
gt_use_preinstalled_gnugettext=yes
|
||||
fi
|
||||
|
||||
if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
|
||||
dnl If iconv() is in a separate libiconv library, then anyone
|
||||
dnl linking with libintl{.a,.so} also needs to link with
|
||||
dnl libiconv.
|
||||
INTLLIBS="-lintl $LIBICONV"
|
||||
fi
|
||||
|
||||
gt_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS $INTLLIBS"
|
||||
AC_CHECK_FUNCS(dcgettext)
|
||||
LIBS="$gt_save_LIBS"
|
||||
|
||||
dnl Search for GNU msgfmt in the PATH.
|
||||
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
|
||||
[$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
|
||||
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
|
||||
|
||||
dnl Search for GNU xgettext in the PATH.
|
||||
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
|
||||
[$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
|
||||
|
||||
CATOBJEXT=.gmo
|
||||
fi
|
||||
])
|
||||
|
||||
if test "$CATOBJEXT" = "NONE"; then
|
||||
dnl GNU gettext is not found in the C library.
|
||||
dnl Fall back on GNU gettext library.
|
||||
nls_cv_use_gnu_gettext=yes
|
||||
ifelse(gt_included_intl, yes, [
|
||||
if test "$gt_use_preinstalled_gnugettext" != "yes"; then
|
||||
dnl GNU gettext is not found in the C library.
|
||||
dnl Fall back on included GNU gettext library.
|
||||
nls_cv_use_gnu_gettext=yes
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$nls_cv_use_gnu_gettext" = "yes"; then
|
||||
dnl Mark actions used to generate GNU NLS library.
|
||||
INTLOBJS="\$(GETTOBJS)"
|
||||
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
|
||||
[$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
|
||||
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
|
||||
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
|
||||
[$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
|
||||
AC_SUBST(MSGFMT)
|
||||
BUILD_INCLUDED_LIBINTL=yes
|
||||
USE_INCLUDED_LIBINTL=yes
|
||||
BUILD_INCLUDED_LIBINTL=yes
|
||||
USE_INCLUDED_LIBINTL=yes
|
||||
LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
|
||||
LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
|
||||
LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
|
||||
fi
|
||||
|
||||
if test "$gt_use_preinstalled_gnugettext" = "yes" \
|
||||
|| test "$nls_cv_use_gnu_gettext" = "yes"; then
|
||||
dnl Mark actions to use GNU gettext tools.
|
||||
CATOBJEXT=.gmo
|
||||
INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV"
|
||||
LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
|
||||
fi
|
||||
])
|
||||
|
||||
dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
|
||||
dnl Test whether we really found GNU msgfmt.
|
||||
if test "$GMSGFMT" != ":"; then
|
||||
dnl If it is no GNU msgfmt we define it as : so that the
|
||||
dnl Makefiles still can work.
|
||||
if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then
|
||||
: ;
|
||||
else
|
||||
AC_MSG_RESULT(
|
||||
[found msgfmt program is not GNU msgfmt; ignore it])
|
||||
GMSGFMT=":"
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
|
||||
dnl Test whether we really found GNU xgettext.
|
||||
if test "$XGETTEXT" != ":"; then
|
||||
dnl If it is no GNU xgettext we define it as : so that the
|
||||
dnl Makefiles still can work.
|
||||
if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then
|
||||
: ;
|
||||
else
|
||||
AC_MSG_RESULT(
|
||||
[found xgettext program is not GNU xgettext; ignore it])
|
||||
XGETTEXT=":"
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl We need to process the po/ directory.
|
||||
POSUB=po
|
||||
if test "$gt_use_preinstalled_gnugettext" = "yes" \
|
||||
|| test "$nls_cv_use_gnu_gettext" = "yes"; then
|
||||
AC_DEFINE(ENABLE_NLS, 1,
|
||||
[Define to 1 if translation of program messages to the user's native language
|
||||
is requested.])
|
||||
else
|
||||
USE_NLS=no
|
||||
fi
|
||||
AC_OUTPUT_COMMANDS(
|
||||
[for ac_file in $CONFIG_FILES; do
|
||||
# Support "outfile[:infile[:infile...]]"
|
||||
case "$ac_file" in
|
||||
*:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
|
||||
esac
|
||||
# PO directories have a Makefile.in generated from Makefile.in.in.
|
||||
case "$ac_file" in */Makefile.in)
|
||||
# Adjust a relative srcdir.
|
||||
ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
|
||||
ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
|
||||
ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
|
||||
# In autoconf-2.13 it is called $ac_given_srcdir.
|
||||
# In autoconf-2.50 it is called $srcdir.
|
||||
test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
|
||||
case "$ac_given_srcdir" in
|
||||
.) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
|
||||
/*) top_srcdir="$ac_given_srcdir" ;;
|
||||
*) top_srcdir="$ac_dots$ac_given_srcdir" ;;
|
||||
esac
|
||||
if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
|
||||
rm -f "$ac_dir/POTFILES"
|
||||
test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
|
||||
sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES"
|
||||
test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
|
||||
sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done])
|
||||
fi
|
||||
|
||||
if test "$USE_NLS" = "yes"; then
|
||||
|
||||
if test "$gt_use_preinstalled_gnugettext" = "yes"; then
|
||||
if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
|
||||
AC_MSG_CHECKING([how to link with libintl])
|
||||
AC_MSG_RESULT([$LIBINTL])
|
||||
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
|
||||
fi
|
||||
|
||||
dnl For backward compatibility. Some packages may be using this.
|
||||
AC_DEFINE(HAVE_GETTEXT, 1,
|
||||
[Define if the GNU gettext() function is already present or preinstalled.])
|
||||
AC_DEFINE(HAVE_DCGETTEXT, 1,
|
||||
[Define if the GNU dcgettext() function is already present or preinstalled.])
|
||||
fi
|
||||
|
||||
dnl We need to process the po/ directory.
|
||||
POSUB=po
|
||||
fi
|
||||
|
||||
ifelse(gt_included_intl, yes, [
|
||||
dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
|
||||
dnl to 'yes' because some of the testsuite requires it.
|
||||
if test "$PACKAGE" = gettext; then
|
||||
BUILD_INCLUDED_LIBINTL=yes
|
||||
fi
|
||||
|
||||
dnl intl/plural.c is generated from intl/plural.y. It requires bison,
|
||||
dnl because plural.y uses bison specific features. It requires at least
|
||||
dnl bison-1.26 because earlier versions generate a plural.c that doesn't
|
||||
dnl compile.
|
||||
dnl bison is only needed for the maintainer (who touches plural.y). But in
|
||||
dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
|
||||
dnl the rule in general Makefile. Now, some people carelessly touch the
|
||||
dnl files or have a broken "make" program, hence the plural.c rule will
|
||||
dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
|
||||
dnl present or too old.
|
||||
AC_CHECK_PROGS([INTLBISON], [bison])
|
||||
if test -z "$INTLBISON"; then
|
||||
ac_verc_fail=yes
|
||||
else
|
||||
dnl Found it, now check the version.
|
||||
AC_MSG_CHECKING([version of bison])
|
||||
changequote(<<,>>)dnl
|
||||
ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
|
||||
case $ac_prog_version in
|
||||
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
|
||||
1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
|
||||
changequote([,])dnl
|
||||
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
|
||||
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
|
||||
esac
|
||||
AC_MSG_RESULT([$ac_prog_version])
|
||||
fi
|
||||
if test $ac_verc_fail = yes; then
|
||||
INTLBISON=:
|
||||
fi
|
||||
|
||||
dnl These rules are solely for the distribution goal. While doing this
|
||||
dnl we only have to keep exactly one list of the available catalogs
|
||||
dnl in configure.in.
|
||||
for lang in $ALL_LINGUAS; do
|
||||
GMOFILES="$GMOFILES $lang.gmo"
|
||||
POFILES="$POFILES $lang.po"
|
||||
done
|
||||
|
||||
dnl Make all variables we use known to autoconf.
|
||||
AC_SUBST(BUILD_INCLUDED_LIBINTL)
|
||||
AC_SUBST(USE_INCLUDED_LIBINTL)
|
||||
AC_SUBST(CATALOGS)
|
||||
AC_SUBST(CATOBJEXT)
|
||||
AC_SUBST(GMOFILES)
|
||||
AC_SUBST(INTLLIBS)
|
||||
AC_SUBST(INTLOBJS)
|
||||
AC_SUBST(POFILES)
|
||||
AC_SUBST(POSUB)
|
||||
|
||||
dnl For backward compatibility. Some configure.ins may be using this.
|
||||
nls_cv_header_intl=
|
||||
@@ -291,80 +254,270 @@ changequote([,])dnl
|
||||
dnl For backward compatibility. Some Makefiles may be using this.
|
||||
GENCAT=gencat
|
||||
AC_SUBST(GENCAT)
|
||||
|
||||
dnl Enable libtool support if the surrounding package wishes it.
|
||||
INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
|
||||
AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
|
||||
])
|
||||
|
||||
dnl Usage: Just like AM_WITH_NLS, which see.
|
||||
AC_DEFUN([AM_GNU_GETTEXT],
|
||||
[AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
||||
AC_REQUIRE([AC_PROG_CC])dnl
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||
AC_REQUIRE([AC_PROG_RANLIB])dnl
|
||||
AC_REQUIRE([AC_ISC_POSIX])dnl
|
||||
AC_REQUIRE([AC_HEADER_STDC])dnl
|
||||
AC_REQUIRE([AC_C_CONST])dnl
|
||||
AC_REQUIRE([AC_C_INLINE])dnl
|
||||
AC_REQUIRE([AC_TYPE_OFF_T])dnl
|
||||
AC_REQUIRE([AC_TYPE_SIZE_T])dnl
|
||||
AC_REQUIRE([AC_FUNC_ALLOCA])dnl
|
||||
AC_REQUIRE([AC_FUNC_MMAP])dnl
|
||||
AC_REQUIRE([jm_GLIBC21])dnl
|
||||
dnl For backward compatibility. Some Makefiles may be using this.
|
||||
INTLLIBS="$LIBINTL"
|
||||
AC_SUBST(INTLLIBS)
|
||||
|
||||
AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
|
||||
dnl Make all documented variables known to autoconf.
|
||||
AC_SUBST(LIBINTL)
|
||||
AC_SUBST(LTLIBINTL)
|
||||
AC_SUBST(POSUB)
|
||||
])
|
||||
|
||||
|
||||
dnl Checks for all prerequisites of the po subdirectory,
|
||||
dnl except for USE_NLS.
|
||||
AC_DEFUN([AM_PO_SUBDIRS],
|
||||
[
|
||||
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
||||
AC_REQUIRE([AC_PROG_INSTALL])dnl
|
||||
AC_REQUIRE([AM_MKINSTALLDIRS])dnl
|
||||
|
||||
dnl Perform the following tests also if --disable-nls has been given,
|
||||
dnl because they are needed for "make dist" to work.
|
||||
|
||||
dnl Search for GNU msgfmt in the PATH.
|
||||
dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
|
||||
dnl The second test excludes FreeBSD msgfmt.
|
||||
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
|
||||
[$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
|
||||
(if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
|
||||
:)
|
||||
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
|
||||
|
||||
dnl Search for GNU xgettext 0.11 or newer in the PATH.
|
||||
dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
|
||||
dnl The second test excludes FreeBSD xgettext.
|
||||
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
|
||||
[$ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
|
||||
(if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
|
||||
:)
|
||||
dnl Remove leftover from FreeBSD xgettext call.
|
||||
rm -f messages.po
|
||||
|
||||
dnl Search for GNU msgmerge 0.11 or newer in the PATH.
|
||||
AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
|
||||
[$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
|
||||
|
||||
dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
|
||||
dnl Test whether we really found GNU msgfmt.
|
||||
if test "$GMSGFMT" != ":"; then
|
||||
dnl If it is no GNU msgfmt we define it as : so that the
|
||||
dnl Makefiles still can work.
|
||||
if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
|
||||
(if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
|
||||
: ;
|
||||
else
|
||||
GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
|
||||
AC_MSG_RESULT(
|
||||
[found $GMSGFMT program is not GNU msgfmt; ignore it])
|
||||
GMSGFMT=":"
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
|
||||
dnl Test whether we really found GNU xgettext.
|
||||
if test "$XGETTEXT" != ":"; then
|
||||
dnl If it is no GNU xgettext we define it as : so that the
|
||||
dnl Makefiles still can work.
|
||||
if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 &&
|
||||
(if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
|
||||
: ;
|
||||
else
|
||||
AC_MSG_RESULT(
|
||||
[found xgettext program is not GNU xgettext; ignore it])
|
||||
XGETTEXT=":"
|
||||
fi
|
||||
dnl Remove leftover from FreeBSD xgettext call.
|
||||
rm -f messages.po
|
||||
fi
|
||||
|
||||
AC_OUTPUT_COMMANDS([
|
||||
for ac_file in $CONFIG_FILES; do
|
||||
# Support "outfile[:infile[:infile...]]"
|
||||
case "$ac_file" in
|
||||
*:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
|
||||
esac
|
||||
# PO directories have a Makefile.in generated from Makefile.in.in.
|
||||
case "$ac_file" in */Makefile.in)
|
||||
# Adjust a relative srcdir.
|
||||
ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
|
||||
ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
|
||||
ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
|
||||
# In autoconf-2.13 it is called $ac_given_srcdir.
|
||||
# In autoconf-2.50 it is called $srcdir.
|
||||
test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
|
||||
case "$ac_given_srcdir" in
|
||||
.) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
|
||||
/*) top_srcdir="$ac_given_srcdir" ;;
|
||||
*) top_srcdir="$ac_dots$ac_given_srcdir" ;;
|
||||
esac
|
||||
if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
|
||||
rm -f "$ac_dir/POTFILES"
|
||||
test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
|
||||
cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
|
||||
# ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend
|
||||
# on $ac_dir but don't depend on user-specified configuration
|
||||
# parameters.
|
||||
if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
|
||||
# The LINGUAS file contains the set of available languages.
|
||||
if test -n "$ALL_LINGUAS"; then
|
||||
test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
|
||||
fi
|
||||
ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
|
||||
# Hide the ALL_LINGUAS assigment from automake.
|
||||
eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
|
||||
fi
|
||||
case "$ac_given_srcdir" in
|
||||
.) srcdirpre= ;;
|
||||
*) srcdirpre='$(srcdir)/' ;;
|
||||
esac
|
||||
POFILES=
|
||||
GMOFILES=
|
||||
UPDATEPOFILES=
|
||||
DUMMYPOFILES=
|
||||
for lang in $ALL_LINGUAS; do
|
||||
POFILES="$POFILES $srcdirpre$lang.po"
|
||||
GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
|
||||
UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
|
||||
DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
|
||||
done
|
||||
# CATALOGS depends on both $ac_dir and the user's LINGUAS
|
||||
# environment variable.
|
||||
INST_LINGUAS=
|
||||
if test -n "$ALL_LINGUAS"; then
|
||||
for presentlang in $ALL_LINGUAS; do
|
||||
useit=no
|
||||
if test "%UNSET%" != "$LINGUAS"; then
|
||||
desiredlanguages="$LINGUAS"
|
||||
else
|
||||
desiredlanguages="$ALL_LINGUAS"
|
||||
fi
|
||||
for desiredlang in $desiredlanguages; do
|
||||
# Use the presentlang catalog if desiredlang is
|
||||
# a. equal to presentlang, or
|
||||
# b. a variant of presentlang (because in this case,
|
||||
# presentlang can be used as a fallback for messages
|
||||
# which are not translated in the desiredlang catalog).
|
||||
case "$desiredlang" in
|
||||
"$presentlang"*) useit=yes;;
|
||||
esac
|
||||
done
|
||||
if test $useit = yes; then
|
||||
INST_LINGUAS="$INST_LINGUAS $presentlang"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
CATALOGS=
|
||||
if test -n "$INST_LINGUAS"; then
|
||||
for lang in $INST_LINGUAS; do
|
||||
CATALOGS="$CATALOGS $lang.gmo"
|
||||
done
|
||||
fi
|
||||
test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
|
||||
sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
|
||||
for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
|
||||
if test -f "$f"; then
|
||||
case "$f" in
|
||||
*.orig | *.bak | *~) ;;
|
||||
*) cat "$f" >> "$ac_dir/Makefile" ;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done],
|
||||
[# Capture the value of obsolete $ALL_LINGUAS because we need it to compute
|
||||
# POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
|
||||
# from automake.
|
||||
eval 'ALL_LINGUAS''="$ALL_LINGUAS"'
|
||||
# Capture the value of LINGUAS because we need it to compute CATALOGS.
|
||||
LINGUAS="${LINGUAS-%UNSET%}"
|
||||
])
|
||||
])
|
||||
|
||||
|
||||
dnl Checks for all prerequisites of the intl subdirectory,
|
||||
dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
|
||||
dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
|
||||
AC_DEFUN([AM_INTL_SUBDIR],
|
||||
[
|
||||
AC_REQUIRE([AC_PROG_INSTALL])dnl
|
||||
AC_REQUIRE([AM_MKINSTALLDIRS])dnl
|
||||
AC_REQUIRE([AC_PROG_CC])dnl
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||
AC_REQUIRE([AC_PROG_RANLIB])dnl
|
||||
AC_REQUIRE([AC_ISC_POSIX])dnl
|
||||
AC_REQUIRE([AC_HEADER_STDC])dnl
|
||||
AC_REQUIRE([AC_C_CONST])dnl
|
||||
AC_REQUIRE([AC_C_INLINE])dnl
|
||||
AC_REQUIRE([AC_TYPE_OFF_T])dnl
|
||||
AC_REQUIRE([AC_TYPE_SIZE_T])dnl
|
||||
AC_REQUIRE([AC_FUNC_ALLOCA])dnl
|
||||
AC_REQUIRE([AC_FUNC_MMAP])dnl
|
||||
AC_REQUIRE([jm_GLIBC21])dnl
|
||||
|
||||
AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
|
||||
stdlib.h string.h unistd.h sys/param.h])
|
||||
AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getcwd getegid geteuid \
|
||||
getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \
|
||||
strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
|
||||
AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \
|
||||
geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \
|
||||
strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
|
||||
|
||||
AM_ICONV
|
||||
AM_LANGINFO_CODESET
|
||||
AM_LC_MESSAGES
|
||||
AM_WITH_NLS([$1],[$2],[$3])
|
||||
AM_ICONV
|
||||
AM_LANGINFO_CODESET
|
||||
AM_LC_MESSAGES
|
||||
|
||||
if test "x$CATOBJEXT" != "x"; then
|
||||
if test "x$ALL_LINGUAS" = "x"; then
|
||||
LINGUAS=
|
||||
else
|
||||
AC_MSG_CHECKING(for catalogs to be installed)
|
||||
NEW_LINGUAS=
|
||||
for presentlang in $ALL_LINGUAS; do
|
||||
useit=no
|
||||
for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do
|
||||
# Use the presentlang catalog if desiredlang is
|
||||
# a. equal to presentlang, or
|
||||
# b. a variant of presentlang (because in this case,
|
||||
# presentlang can be used as a fallback for messages
|
||||
# which are not translated in the desiredlang catalog).
|
||||
case "$desiredlang" in
|
||||
"$presentlang"*) useit=yes;;
|
||||
esac
|
||||
done
|
||||
if test $useit = yes; then
|
||||
NEW_LINGUAS="$NEW_LINGUAS $presentlang"
|
||||
fi
|
||||
done
|
||||
LINGUAS=$NEW_LINGUAS
|
||||
AC_MSG_RESULT($LINGUAS)
|
||||
fi
|
||||
dnl intl/plural.c is generated from intl/plural.y. It requires bison,
|
||||
dnl because plural.y uses bison specific features. It requires at least
|
||||
dnl bison-1.26 because earlier versions generate a plural.c that doesn't
|
||||
dnl compile.
|
||||
dnl bison is only needed for the maintainer (who touches plural.y). But in
|
||||
dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
|
||||
dnl the rule in general Makefile. Now, some people carelessly touch the
|
||||
dnl files or have a broken "make" program, hence the plural.c rule will
|
||||
dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
|
||||
dnl present or too old.
|
||||
AC_CHECK_PROGS([INTLBISON], [bison])
|
||||
if test -z "$INTLBISON"; then
|
||||
ac_verc_fail=yes
|
||||
else
|
||||
dnl Found it, now check the version.
|
||||
AC_MSG_CHECKING([version of bison])
|
||||
changequote(<<,>>)dnl
|
||||
ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
|
||||
case $ac_prog_version in
|
||||
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
|
||||
1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
|
||||
changequote([,])dnl
|
||||
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
|
||||
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
|
||||
esac
|
||||
AC_MSG_RESULT([$ac_prog_version])
|
||||
fi
|
||||
if test $ac_verc_fail = yes; then
|
||||
INTLBISON=:
|
||||
fi
|
||||
])
|
||||
|
||||
dnl Construct list of names of catalog files to be constructed.
|
||||
if test -n "$LINGUAS"; then
|
||||
for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
|
||||
dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
|
||||
dnl Try to locate is.
|
||||
MKINSTALLDIRS=
|
||||
if test -n "$ac_aux_dir"; then
|
||||
MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
|
||||
fi
|
||||
if test -z "$MKINSTALLDIRS"; then
|
||||
MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
|
||||
fi
|
||||
AC_SUBST(MKINSTALLDIRS)
|
||||
|
||||
dnl Enable libtool support if the surrounding package wishes it.
|
||||
INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], [])
|
||||
AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
|
||||
])
|
||||
AC_DEFUN([AM_MKINSTALLDIRS],
|
||||
[
|
||||
dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
|
||||
dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
|
||||
dnl Try to locate is.
|
||||
MKINSTALLDIRS=
|
||||
if test -n "$ac_aux_dir"; then
|
||||
MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
|
||||
fi
|
||||
if test -z "$MKINSTALLDIRS"; then
|
||||
MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
|
||||
fi
|
||||
AC_SUBST(MKINSTALLDIRS)
|
||||
])
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
#serial 2
|
||||
# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40)
|
||||
dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
|
||||
dnl This file is free software, distributed under the terms of the GNU
|
||||
dnl General Public License. As a special exception to the GNU General
|
||||
dnl Public License, this file may be distributed as part of a program
|
||||
dnl that contains a configuration script generated by Autoconf, under
|
||||
dnl the same distribution terms as the rest of that program.
|
||||
|
||||
# Test for the GNU C Library, version 2.1 or newer.
|
||||
# From Bruno Haible.
|
||||
|
||||
57
m4/iconv.m4
57
m4/iconv.m4
@@ -1,19 +1,32 @@
|
||||
#serial AM2
|
||||
# iconv.m4 serial AM3 (gettext-0.11)
|
||||
dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
|
||||
dnl This file is free software, distributed under the terms of the GNU
|
||||
dnl General Public License. As a special exception to the GNU General
|
||||
dnl Public License, this file may be distributed as part of a program
|
||||
dnl that contains a configuration script generated by Autoconf, under
|
||||
dnl the same distribution terms as the rest of that program.
|
||||
|
||||
dnl From Bruno Haible.
|
||||
|
||||
AC_DEFUN([AM_ICONV],
|
||||
AC_DEFUN([AM_ICONV_LINK],
|
||||
[
|
||||
dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
|
||||
dnl those with the standalone portable GNU libiconv installed).
|
||||
|
||||
AC_ARG_WITH([libiconv-prefix],
|
||||
[ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
|
||||
for dir in `echo "$withval" | tr : ' '`; do
|
||||
if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
|
||||
if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
|
||||
done
|
||||
])
|
||||
dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
|
||||
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
|
||||
AC_REQUIRE([AC_LIB_RPATH])
|
||||
|
||||
dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
|
||||
dnl accordingly.
|
||||
AC_LIB_LINKFLAGS_BODY([iconv])
|
||||
|
||||
dnl Add $INCICONV to CPPFLAGS before performing the following checks,
|
||||
dnl because if the user has installed libiconv and not disabled its use
|
||||
dnl via --without-libiconv-prefix, he wants to use it. The first
|
||||
dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
|
||||
am_save_CPPFLAGS="$CPPFLAGS"
|
||||
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
|
||||
|
||||
AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
|
||||
am_cv_func_iconv="no, consider installing GNU libiconv"
|
||||
@@ -26,7 +39,7 @@ AC_DEFUN([AM_ICONV],
|
||||
am_cv_func_iconv=yes)
|
||||
if test "$am_cv_func_iconv" != yes; then
|
||||
am_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS -liconv"
|
||||
LIBS="$LIBS $LIBICONV"
|
||||
AC_TRY_LINK([#include <stdlib.h>
|
||||
#include <iconv.h>],
|
||||
[iconv_t cd = iconv_open("","");
|
||||
@@ -39,6 +52,25 @@ AC_DEFUN([AM_ICONV],
|
||||
])
|
||||
if test "$am_cv_func_iconv" = yes; then
|
||||
AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
|
||||
fi
|
||||
if test "$am_cv_lib_iconv" = yes; then
|
||||
AC_MSG_CHECKING([how to link with libiconv])
|
||||
AC_MSG_RESULT([$LIBICONV])
|
||||
else
|
||||
dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
|
||||
dnl either.
|
||||
CPPFLAGS="$am_save_CPPFLAGS"
|
||||
LIBICONV=
|
||||
LTLIBICONV=
|
||||
fi
|
||||
AC_SUBST(LIBICONV)
|
||||
AC_SUBST(LTLIBICONV)
|
||||
])
|
||||
|
||||
AC_DEFUN([AM_ICONV],
|
||||
[
|
||||
AC_REQUIRE([AM_ICONV_LINK])
|
||||
if test "$am_cv_func_iconv" = yes; then
|
||||
AC_MSG_CHECKING([for iconv declaration])
|
||||
AC_CACHE_VAL(am_cv_proto_iconv, [
|
||||
AC_TRY_COMPILE([
|
||||
@@ -61,9 +93,4 @@ size_t iconv();
|
||||
AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
|
||||
[Define as const if the declaration of iconv() needs const.])
|
||||
fi
|
||||
LIBICONV=
|
||||
if test "$am_cv_lib_iconv" = yes; then
|
||||
LIBICONV="-liconv"
|
||||
fi
|
||||
AC_SUBST(LIBICONV)
|
||||
])
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
#serial 1
|
||||
# isc-posix.m4 serial 1 (gettext-0.10.40)
|
||||
dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
|
||||
dnl This file is free software, distributed under the terms of the GNU
|
||||
dnl General Public License. As a special exception to the GNU General
|
||||
dnl Public License, this file may be distributed as part of a program
|
||||
dnl that contains a configuration script generated by Autoconf, under
|
||||
dnl the same distribution terms as the rest of that program.
|
||||
|
||||
# This test replaces the one in autoconf.
|
||||
# Currently this macro should have the same name as the autoconf macro
|
||||
# because gettext's gettext.m4 (distributed in the automake package)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
#serial 41 -*- autoconf -*-
|
||||
#serial 45 -*- autoconf -*-
|
||||
|
||||
dnl Misc type-related macros for fileutils, sh-utils, textutils.
|
||||
|
||||
AC_DEFUN([jm_MACROS],
|
||||
[
|
||||
AC_PREREQ(2.52f)
|
||||
AC_PREREQ(2.52g)
|
||||
|
||||
GNU_PACKAGE="GNU $PACKAGE"
|
||||
AC_DEFINE_UNQUOTED(GNU_PACKAGE, "$GNU_PACKAGE",
|
||||
@@ -35,6 +35,7 @@ AC_DEFUN([jm_MACROS],
|
||||
AC_REQUIRE([jm_PREREQ])
|
||||
|
||||
AC_REQUIRE([UTILS_FUNC_DIRFD])
|
||||
AC_REQUIRE([AC_FUNC_ACL])
|
||||
AC_REQUIRE([jm_FUNC_LCHOWN])
|
||||
AC_REQUIRE([fetish_FUNC_RMDIR_NOTEMPTY])
|
||||
AC_REQUIRE([jm_FUNC_CHOWN])
|
||||
@@ -64,6 +65,7 @@ AC_DEFUN([jm_MACROS],
|
||||
AC_REQUIRE([jm_FUNC_GETGROUPS])
|
||||
test -n "$GETGROUPS_LIB" && LIBS="$GETGROUPS_LIB $LIBS"
|
||||
|
||||
AC_REQUIRE([AC_FUNC_FSEEKO])
|
||||
AC_REQUIRE([AC_FUNC_VPRINTF])
|
||||
AC_REQUIRE([AC_FUNC_ALLOCA])
|
||||
AC_FUNC_GETLOADAVG([lib])
|
||||
@@ -74,7 +76,7 @@ AC_DEFUN([jm_MACROS],
|
||||
AC_REPLACE_FUNCS(strcasecmp strncasecmp)
|
||||
AC_REPLACE_FUNCS(dup2)
|
||||
AC_REPLACE_FUNCS(gethostname getusershell)
|
||||
AC_REPLACE_FUNCS(stime strcspn stpcpy strstr strtol strtoul)
|
||||
AC_REPLACE_FUNCS(strcspn stpcpy strstr strtol strtoul)
|
||||
AC_REPLACE_FUNCS(strpbrk)
|
||||
AC_REPLACE_FUNCS(euidaccess memcmp rmdir rpmatch strndup strverscmp)
|
||||
AC_REPLACE_FUNCS(atexit)
|
||||
@@ -111,7 +113,7 @@ AC_DEFUN([jm_MACROS],
|
||||
AC_SEARCH_LIBS(clock_gettime, [rt posix4],
|
||||
[LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
|
||||
AC_SUBST(LIB_CLOCK_GETTIME)
|
||||
AC_CHECK_FUNCS(clock_gettime)
|
||||
AC_CHECK_FUNCS(clock_gettime clock_settime)
|
||||
LIBS=$fetish_saved_libs
|
||||
AC_CHECK_FUNCS(gettimeofday)
|
||||
AC_FUNC_GETTIMEOFDAY_CLOBBER
|
||||
@@ -120,7 +122,6 @@ AC_DEFUN([jm_MACROS],
|
||||
AC_REQUIRE([jm_FUNC_UTIME])
|
||||
|
||||
AC_CHECK_FUNCS( \
|
||||
acl \
|
||||
bcopy \
|
||||
canonicalize_file_name \
|
||||
endgrent \
|
||||
@@ -134,6 +135,7 @@ AC_DEFUN([jm_MACROS],
|
||||
getmntinfo \
|
||||
hasmntopt \
|
||||
isascii \
|
||||
iswspace \
|
||||
lchown \
|
||||
listmntent \
|
||||
localeconv \
|
||||
@@ -158,6 +160,7 @@ AC_DEFUN([jm_MACROS],
|
||||
AC_FUNC_OBSTACK
|
||||
|
||||
AC_FUNC_STRTOD
|
||||
AC_FUNC_STRNLEN
|
||||
|
||||
# See if linking `seq' requires -lm.
|
||||
# It does on nearly every system. The single exception (so far) is
|
||||
@@ -187,7 +190,7 @@ AC_DEFUN([jm_MACROS],
|
||||
jm_FSTYPENAME
|
||||
jm_FILE_SYSTEM_USAGE([space=yes], [space=no])
|
||||
if test $list_mounted_fs = yes && test $space = yes; then
|
||||
DF_PROG="df"
|
||||
DF_PROG=df
|
||||
AC_LIBOBJ(fsusage)
|
||||
AC_LIBOBJ(mountlist)
|
||||
fi
|
||||
@@ -215,7 +218,6 @@ AC_DEFUN([jm_CHECK_ALL_HEADERS],
|
||||
stddef.h \
|
||||
stdint.h \
|
||||
string.h \
|
||||
sys/acl.h \
|
||||
sys/filsys.h \
|
||||
sys/fs/s5param.h \
|
||||
sys/fs_types.h \
|
||||
|
||||
@@ -1,16 +1,24 @@
|
||||
# Check whether LC_MESSAGES is available in <locale.h>.
|
||||
# Ulrich Drepper <drepper@cygnus.com>, 1995.
|
||||
#
|
||||
# This file can be copied and used freely without restrictions. It can
|
||||
# be used in projects which are not available under the GNU General Public
|
||||
# License or the GNU Library General Public License but which still want
|
||||
# to provide support for the GNU gettext functionality.
|
||||
# Please note that the actual code of the GNU gettext library is covered
|
||||
# by the GNU Library General Public License, and the rest of the GNU
|
||||
# gettext package package is covered by the GNU General Public License.
|
||||
# They are *not* in the public domain.
|
||||
# lcmessage.m4 serial 2 (gettext-0.10.40)
|
||||
dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
|
||||
dnl This file is free software, distributed under the terms of the GNU
|
||||
dnl General Public License. As a special exception to the GNU General
|
||||
dnl Public License, this file may be distributed as part of a program
|
||||
dnl that contains a configuration script generated by Autoconf, under
|
||||
dnl the same distribution terms as the rest of that program.
|
||||
dnl
|
||||
dnl This file can can be used in projects which are not available under
|
||||
dnl the GNU General Public License or the GNU Library General Public
|
||||
dnl License but which still want to provide support for the GNU gettext
|
||||
dnl functionality.
|
||||
dnl Please note that the actual code of the GNU gettext library is covered
|
||||
dnl by the GNU Library General Public License, and the rest of the GNU
|
||||
dnl gettext package package is covered by the GNU General Public License.
|
||||
dnl They are *not* in the public domain.
|
||||
|
||||
# serial 2
|
||||
dnl Authors:
|
||||
dnl Ulrich Drepper <drepper@cygnus.com>, 1995.
|
||||
|
||||
# Check whether LC_MESSAGES is available in <locale.h>.
|
||||
|
||||
AC_DEFUN([AM_LC_MESSAGES],
|
||||
[if test $ac_cv_header_locale_h = yes; then
|
||||
|
||||
97
m4/lib-ld.m4
Normal file
97
m4/lib-ld.m4
Normal file
@@ -0,0 +1,97 @@
|
||||
# lib-ld.m4 serial 1 (gettext-0.11)
|
||||
dnl Copyright (C) 1996-2002 Free Software Foundation, Inc.
|
||||
dnl This file is free software, distributed under the terms of the GNU
|
||||
dnl General Public License. As a special exception to the GNU General
|
||||
dnl Public License, this file may be distributed as part of a program
|
||||
dnl that contains a configuration script generated by Autoconf, under
|
||||
dnl the same distribution terms as the rest of that program.
|
||||
|
||||
dnl Subroutines of libtool.m4,
|
||||
dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
|
||||
dnl with libtool.m4.
|
||||
|
||||
dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
|
||||
AC_DEFUN([AC_LIB_PROG_LD_GNU],
|
||||
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
|
||||
[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
|
||||
if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
|
||||
acl_cv_prog_gnu_ld=yes
|
||||
else
|
||||
acl_cv_prog_gnu_ld=no
|
||||
fi])
|
||||
with_gnu_ld=$acl_cv_prog_gnu_ld
|
||||
])
|
||||
|
||||
dnl From libtool-1.4. Sets the variable LD.
|
||||
AC_DEFUN([AC_LIB_PROG_LD],
|
||||
[AC_ARG_WITH(gnu-ld,
|
||||
[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
|
||||
test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
|
||||
AC_REQUIRE([AC_PROG_CC])dnl
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||
ac_prog=ld
|
||||
if test "$GCC" = yes; then
|
||||
# Check if gcc -print-prog-name=ld gives a path.
|
||||
AC_MSG_CHECKING([for ld used by GCC])
|
||||
case $host in
|
||||
*-*-mingw*)
|
||||
# gcc leaves a trailing carriage return which upsets mingw
|
||||
ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
|
||||
*)
|
||||
ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
|
||||
esac
|
||||
case $ac_prog in
|
||||
# Accept absolute paths.
|
||||
[[\\/]* | [A-Za-z]:[\\/]*)]
|
||||
[re_direlt='/[^/][^/]*/\.\./']
|
||||
# Canonicalize the path of ld
|
||||
ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
|
||||
while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
|
||||
ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
|
||||
done
|
||||
test -z "$LD" && LD="$ac_prog"
|
||||
;;
|
||||
"")
|
||||
# If it fails, then pretend we aren't using GCC.
|
||||
ac_prog=ld
|
||||
;;
|
||||
*)
|
||||
# If it is relative, then search for the first ld in PATH.
|
||||
with_gnu_ld=unknown
|
||||
;;
|
||||
esac
|
||||
elif test "$with_gnu_ld" = yes; then
|
||||
AC_MSG_CHECKING([for GNU ld])
|
||||
else
|
||||
AC_MSG_CHECKING([for non-GNU ld])
|
||||
fi
|
||||
AC_CACHE_VAL(acl_cv_path_LD,
|
||||
[if test -z "$LD"; then
|
||||
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
|
||||
for ac_dir in $PATH; do
|
||||
test -z "$ac_dir" && ac_dir=.
|
||||
if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
|
||||
acl_cv_path_LD="$ac_dir/$ac_prog"
|
||||
# Check to see if the program is GNU ld. I'd rather use --version,
|
||||
# but apparently some GNU ld's only accept -v.
|
||||
# Break only if it was the GNU/non-GNU ld that we prefer.
|
||||
if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
|
||||
test "$with_gnu_ld" != no && break
|
||||
else
|
||||
test "$with_gnu_ld" != yes && break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
IFS="$ac_save_ifs"
|
||||
else
|
||||
acl_cv_path_LD="$LD" # Let the user override the test with a path.
|
||||
fi])
|
||||
LD="$acl_cv_path_LD"
|
||||
if test -n "$LD"; then
|
||||
AC_MSG_RESULT($LD)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
|
||||
AC_LIB_PROG_LD_GNU
|
||||
])
|
||||
521
m4/lib-link.m4
Normal file
521
m4/lib-link.m4
Normal file
@@ -0,0 +1,521 @@
|
||||
# lib-link.m4 serial 1 (gettext-0.11)
|
||||
dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
|
||||
dnl This file is free software, distributed under the terms of the GNU
|
||||
dnl General Public License. As a special exception to the GNU General
|
||||
dnl Public License, this file may be distributed as part of a program
|
||||
dnl that contains a configuration script generated by Autoconf, under
|
||||
dnl the same distribution terms as the rest of that program.
|
||||
|
||||
dnl From Bruno Haible.
|
||||
|
||||
dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
|
||||
dnl the libraries corresponding to explicit and implicit dependencies.
|
||||
dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
|
||||
dnl augments the CPPFLAGS variable.
|
||||
AC_DEFUN([AC_LIB_LINKFLAGS],
|
||||
[
|
||||
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
|
||||
AC_REQUIRE([AC_LIB_RPATH])
|
||||
define([Name],[translit([$1],[./-], [___])])
|
||||
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
|
||||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
|
||||
AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
|
||||
AC_LIB_LINKFLAGS_BODY([$1], [$2])
|
||||
ac_cv_lib[]Name[]_libs="$LIB[]NAME"
|
||||
ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
|
||||
ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
|
||||
])
|
||||
LIB[]NAME="$ac_cv_lib[]Name[]_libs"
|
||||
LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
|
||||
INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
|
||||
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
|
||||
AC_SUBST([LIB]NAME)
|
||||
AC_SUBST([LTLIB]NAME)
|
||||
dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
|
||||
dnl results of this search when this library appears as a dependency.
|
||||
HAVE_LIB[]NAME=yes
|
||||
undefine([Name])
|
||||
undefine([NAME])
|
||||
])
|
||||
|
||||
dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
|
||||
dnl searches for libname and the libraries corresponding to explicit and
|
||||
dnl implicit dependencies, together with the specified include files and
|
||||
dnl the ability to compile and link the specified testcode. If found, it
|
||||
dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
|
||||
dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
|
||||
dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
|
||||
dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
|
||||
AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
|
||||
[
|
||||
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
|
||||
AC_REQUIRE([AC_LIB_RPATH])
|
||||
define([Name],[translit([$1],[./-], [___])])
|
||||
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
|
||||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
|
||||
|
||||
dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
|
||||
dnl accordingly.
|
||||
AC_LIB_LINKFLAGS_BODY([$1], [$2])
|
||||
|
||||
dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
|
||||
dnl because if the user has installed lib[]Name and not disabled its use
|
||||
dnl via --without-lib[]Name-prefix, he wants to use it.
|
||||
ac_save_CPPFLAGS="$CPPFLAGS"
|
||||
AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
|
||||
|
||||
AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
|
||||
ac_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS $LIB[]NAME"
|
||||
AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
|
||||
LIBS="$ac_save_LIBS"
|
||||
])
|
||||
if test "$ac_cv_lib[]Name" = yes; then
|
||||
HAVE_LIB[]NAME=yes
|
||||
AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
|
||||
AC_MSG_CHECKING([how to link with lib[]$1])
|
||||
AC_MSG_RESULT([$LIB[]NAME])
|
||||
else
|
||||
HAVE_LIB[]NAME=no
|
||||
dnl If $LIB[]NAME didn't lead to a usable library, we don't need
|
||||
dnl $INC[]NAME either.
|
||||
CPPFLAGS="$ac_save_CPPFLAGS"
|
||||
LIB[]NAME=
|
||||
LTLIB[]NAME=
|
||||
fi
|
||||
AC_SUBST([HAVE_LIB]NAME)
|
||||
AC_SUBST([LIB]NAME)
|
||||
AC_SUBST([LTLIB]NAME)
|
||||
undefine([Name])
|
||||
undefine([NAME])
|
||||
])
|
||||
|
||||
dnl Determine the platform dependent parameters needed to use rpath:
|
||||
dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
|
||||
dnl hardcode_direct, hardcode_minus_L,
|
||||
dnl sys_lib_search_path_spec, sys_lib_dlsearch_path_spec.
|
||||
AC_DEFUN([AC_LIB_RPATH],
|
||||
[
|
||||
AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
|
||||
AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
|
||||
AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
|
||||
AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
|
||||
AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
|
||||
CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
|
||||
${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
|
||||
. ./conftest.sh
|
||||
rm -f ./conftest.sh
|
||||
acl_cv_rpath=done
|
||||
])
|
||||
wl="$acl_cv_wl"
|
||||
libext="$acl_cv_libext"
|
||||
shlibext="$acl_cv_shlibext"
|
||||
hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
|
||||
hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
|
||||
hardcode_direct="$acl_cv_hardcode_direct"
|
||||
hardcode_minus_L="$acl_cv_hardcode_minus_L"
|
||||
sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec"
|
||||
sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec"
|
||||
])
|
||||
|
||||
dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
|
||||
dnl the libraries corresponding to explicit and implicit dependencies.
|
||||
dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
|
||||
AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
|
||||
[
|
||||
define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
|
||||
[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
|
||||
dnl By default, look in $includedir and $libdir.
|
||||
use_additional=yes
|
||||
AC_LIB_WITH_FINAL_PREFIX([
|
||||
eval additional_includedir=\"$includedir\"
|
||||
eval additional_libdir=\"$libdir\"
|
||||
])
|
||||
AC_ARG_WITH([lib$1-prefix],
|
||||
[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
|
||||
--without-lib$1-prefix don't search for lib$1 in includedir and libdir],
|
||||
[
|
||||
if test "X$withval" = "Xno"; then
|
||||
use_additional=no
|
||||
else
|
||||
if test "X$withval" = "X"; then
|
||||
AC_LIB_WITH_FINAL_PREFIX([
|
||||
eval additional_includedir=\"$includedir\"
|
||||
eval additional_libdir=\"$libdir\"
|
||||
])
|
||||
else
|
||||
additional_includedir="$withval/include"
|
||||
additional_libdir="$withval/lib"
|
||||
fi
|
||||
fi
|
||||
])
|
||||
dnl Search the library and its dependencies in $additional_libdir and
|
||||
dnl $LDFLAGS. Using breadth-first-seach.
|
||||
LIB[]NAME=
|
||||
LTLIB[]NAME=
|
||||
INC[]NAME=
|
||||
rpathdirs=
|
||||
ltrpathdirs=
|
||||
names_already_handled=
|
||||
names_next_round='$1 $2'
|
||||
while test -n "$names_next_round"; do
|
||||
names_this_round="$names_next_round"
|
||||
names_next_round=
|
||||
for name in $names_this_round; do
|
||||
already_handled=
|
||||
for n in $names_already_handled; do
|
||||
if test "$n" = "$name"; then
|
||||
already_handled=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$already_handled"; then
|
||||
names_already_handled="$names_already_handled $name"
|
||||
dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
|
||||
dnl or AC_LIB_HAVE_LINKFLAGS call.
|
||||
uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
|
||||
eval value=\"\$HAVE_LIB$uppername\"
|
||||
if test -n "$value"; then
|
||||
if test "$value" = yes; then
|
||||
eval value=\"\$LIB$uppername\"
|
||||
test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
|
||||
eval value=\"\$LTLIB$uppername\"
|
||||
test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
|
||||
else
|
||||
dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
|
||||
dnl that this library doesn't exist. So just drop it.
|
||||
:
|
||||
fi
|
||||
else
|
||||
dnl Search the library lib$name in $additional_libdir and $LDFLAGS
|
||||
dnl and the already constructed $LIBNAME/$LTLIBNAME.
|
||||
found_dir=
|
||||
found_la=
|
||||
found_so=
|
||||
found_a=
|
||||
if test $use_additional = yes; then
|
||||
if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
|
||||
found_dir="$additional_libdir"
|
||||
found_so="$additional_libdir/lib$name.$shlibext"
|
||||
if test -f "$additional_libdir/lib$name.la"; then
|
||||
found_la="$additional_libdir/lib$name.la"
|
||||
fi
|
||||
else
|
||||
if test -f "$additional_libdir/lib$name.$libext"; then
|
||||
found_dir="$additional_libdir"
|
||||
found_a="$additional_libdir/lib$name.$libext"
|
||||
if test -f "$additional_libdir/lib$name.la"; then
|
||||
found_la="$additional_libdir/lib$name.la"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test "X$found_dir" = "X"; then
|
||||
for x in $LDFLAGS $LTLIB[]NAME; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
case "$x" in
|
||||
-L*)
|
||||
dir=`echo "X$x" | sed -e 's/^X-L//'`
|
||||
if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
|
||||
found_dir="$dir"
|
||||
found_so="$dir/lib$name.$shlibext"
|
||||
if test -f "$dir/lib$name.la"; then
|
||||
found_la="$dir/lib$name.la"
|
||||
fi
|
||||
else
|
||||
if test -f "$dir/lib$name.$libext"; then
|
||||
found_dir="$dir"
|
||||
found_a="$dir/lib$name.$libext"
|
||||
if test -f "$dir/lib$name.la"; then
|
||||
found_la="$dir/lib$name.la"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if test "X$found_dir" != "X"; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if test "X$found_dir" != "X"; then
|
||||
dnl Found the library.
|
||||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
|
||||
if test "X$found_so" != "X"; then
|
||||
dnl Linking with a shared library. We attempt to hardcode its
|
||||
dnl directory into the executable's runpath, unless it's the
|
||||
dnl standard /usr/lib.
|
||||
if test "X$found_dir" = "X/usr/lib"; then
|
||||
dnl No hardcoding is needed.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
|
||||
else
|
||||
dnl Use an explicit option to hardcode DIR into the resulting
|
||||
dnl binary.
|
||||
dnl Potentially add DIR to ltrpathdirs.
|
||||
dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
|
||||
haveit=
|
||||
for x in $ltrpathdirs; do
|
||||
if test "X$x" = "X$found_dir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
ltrpathdirs="$ltrpathdirs $found_dir"
|
||||
fi
|
||||
dnl The hardcoding into $LIBNAME is system dependent.
|
||||
if test "$hardcode_direct" = yes; then
|
||||
dnl Using DIR/libNAME.so during linking hardcodes DIR into the
|
||||
dnl resulting binary.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
|
||||
else
|
||||
if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
|
||||
dnl Use an explicit option to hardcode DIR into the resulting
|
||||
dnl binary.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
|
||||
dnl Potentially add DIR to rpathdirs.
|
||||
dnl The rpathdirs will be appended to $LIBNAME at the end.
|
||||
haveit=
|
||||
for x in $rpathdirs; do
|
||||
if test "X$x" = "X$found_dir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
rpathdirs="$rpathdirs $found_dir"
|
||||
fi
|
||||
else
|
||||
dnl Rely on "-L$found_dir".
|
||||
dnl But don't add it if it's already contained in the LDFLAGS
|
||||
dnl or the already constructed $LIBNAME
|
||||
haveit=
|
||||
for x in $LDFLAGS $LIB[]NAME; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X-L$found_dir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
|
||||
fi
|
||||
if test "$hardcode_minus_L" != no; then
|
||||
dnl FIXME: Not sure whether we should use
|
||||
dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
|
||||
dnl here.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
|
||||
else
|
||||
dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
|
||||
dnl here, because this doesn't fit in flags passed to the
|
||||
dnl compiler. So give up. No hardcoding. This affects only
|
||||
dnl very old systems.
|
||||
dnl FIXME: Not sure whether we should use
|
||||
dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
|
||||
dnl here.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if test "X$found_a" != "X"; then
|
||||
dnl Linking with a static library.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
|
||||
else
|
||||
dnl We shouldn't come here, but anyway it's good to have a
|
||||
dnl fallback.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
|
||||
fi
|
||||
fi
|
||||
dnl Assume the include files are nearby.
|
||||
additional_includedir=
|
||||
case "$found_dir" in
|
||||
*/lib | */lib/)
|
||||
basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
|
||||
additional_includedir="$basedir/include"
|
||||
;;
|
||||
esac
|
||||
if test "X$additional_includedir" != "X"; then
|
||||
dnl Potentially add $additional_includedir to $INCNAME.
|
||||
dnl But don't add it
|
||||
dnl 1. if it's the standard /usr/include,
|
||||
dnl 2. if it's /usr/local/include and we are using GCC on Linux,
|
||||
dnl 3. if it's already present in $CPPFLAGS or the already
|
||||
dnl constructed $INCNAME,
|
||||
dnl 4. if it doesn't exist as a directory.
|
||||
if test "X$additional_includedir" != "X/usr/include"; then
|
||||
haveit=
|
||||
if test "X$additional_includedir" = "X/usr/local/include"; then
|
||||
if test -n "$GCC"; then
|
||||
case $host_os in
|
||||
linux*) haveit=yes;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
if test -z "$haveit"; then
|
||||
for x in $CPPFLAGS $INC[]NAME; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X-I$additional_includedir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
if test -d "$additional_includedir"; then
|
||||
dnl Really add $additional_includedir to $INCNAME.
|
||||
INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
dnl Look for dependencies.
|
||||
if test -n "$found_la"; then
|
||||
dnl Read the .la file. It defines the variables
|
||||
dnl dlname, library_names, old_library, dependency_libs, current,
|
||||
dnl age, revision, installed, dlopen, dlpreopen, libdir.
|
||||
save_libdir="$libdir"
|
||||
case "$found_la" in
|
||||
*/* | *\\*) . "$found_la" ;;
|
||||
*) . "./$found_la" ;;
|
||||
esac
|
||||
libdir="$save_libdir"
|
||||
dnl We use only dependency_libs.
|
||||
for dep in $dependency_libs; do
|
||||
case "$dep" in
|
||||
-L*)
|
||||
additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
|
||||
dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
|
||||
dnl But don't add it
|
||||
dnl 1. if it's the standard /usr/lib,
|
||||
dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
|
||||
dnl 3. if it's already present in $LDFLAGS or the already
|
||||
dnl constructed $LIBNAME,
|
||||
dnl 4. if it doesn't exist as a directory.
|
||||
if test "X$additional_libdir" != "X/usr/lib"; then
|
||||
haveit=
|
||||
if test "X$additional_libdir" = "X/usr/local/lib"; then
|
||||
if test -n "$GCC"; then
|
||||
case $host_os in
|
||||
linux*) haveit=yes;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
if test -z "$haveit"; then
|
||||
haveit=
|
||||
for x in $LDFLAGS $LIB[]NAME; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X-L$additional_libdir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
if test -d "$additional_libdir"; then
|
||||
dnl Really add $additional_libdir to $LIBNAME.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
|
||||
fi
|
||||
fi
|
||||
haveit=
|
||||
for x in $LDFLAGS $LTLIB[]NAME; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X-L$additional_libdir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
if test -d "$additional_libdir"; then
|
||||
dnl Really add $additional_libdir to $LTLIBNAME.
|
||||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
-l*)
|
||||
dnl Handle this in the next round.
|
||||
names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
|
||||
;;
|
||||
*.la)
|
||||
dnl Handle this in the next round. Throw away the .la's
|
||||
dnl directory; it is already contained in a preceding -L
|
||||
dnl option.
|
||||
names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
|
||||
;;
|
||||
*)
|
||||
dnl Most likely an immediate library name.
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
|
||||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
else
|
||||
dnl Didn't find the library; assume it is in the system directories
|
||||
dnl known to the linker and runtime loader. (All the system
|
||||
dnl directories known to the linker should also be known to the
|
||||
dnl runtime loader, otherwise the system is severely misconfigured.)
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
|
||||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done
|
||||
if test "X$rpathdirs" != "X"; then
|
||||
if test -n "$hardcode_libdir_separator"; then
|
||||
dnl Weird platform: only the last -rpath option counts, the user must
|
||||
dnl pass all path elements in one option. We can arrange that for a
|
||||
dnl single library, but not when more than one $LIBNAMEs are used.
|
||||
alldirs=
|
||||
for found_dir in $rpathdirs; do
|
||||
alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
|
||||
done
|
||||
dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
|
||||
acl_save_libdir="$libdir"
|
||||
libdir="$alldirs"
|
||||
eval flag=\"$hardcode_libdir_flag_spec\"
|
||||
libdir="$acl_save_libdir"
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
|
||||
else
|
||||
dnl The -rpath options are cumulative.
|
||||
for found_dir in $rpathdirs; do
|
||||
acl_save_libdir="$libdir"
|
||||
libdir="$found_dir"
|
||||
eval flag=\"$hardcode_libdir_flag_spec\"
|
||||
libdir="$acl_save_libdir"
|
||||
LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
if test "X$ltrpathdirs" != "X"; then
|
||||
dnl When using libtool, the option that works for both libraries and
|
||||
dnl executables is -R. The -R options are cumulative.
|
||||
for found_dir in $ltrpathdirs; do
|
||||
LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
|
||||
done
|
||||
fi
|
||||
])
|
||||
|
||||
dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
|
||||
dnl unless already present in VAR.
|
||||
dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
|
||||
dnl contains two or three consecutive elements that belong together.
|
||||
AC_DEFUN([AC_LIB_APPENDTOVAR],
|
||||
[
|
||||
for element in [$2]; do
|
||||
haveit=
|
||||
for x in $[$1]; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X$element"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
[$1]="${[$1]}${[$1]:+ }$element"
|
||||
fi
|
||||
done
|
||||
])
|
||||
148
m4/lib-prefix.m4
Normal file
148
m4/lib-prefix.m4
Normal file
@@ -0,0 +1,148 @@
|
||||
# lib-prefix.m4 serial 1 (gettext-0.11)
|
||||
dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
|
||||
dnl This file is free software, distributed under the terms of the GNU
|
||||
dnl General Public License. As a special exception to the GNU General
|
||||
dnl Public License, this file may be distributed as part of a program
|
||||
dnl that contains a configuration script generated by Autoconf, under
|
||||
dnl the same distribution terms as the rest of that program.
|
||||
|
||||
dnl From Bruno Haible.
|
||||
|
||||
dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
|
||||
dnl to access previously installed libraries. The basic assumption is that
|
||||
dnl a user will want packages to use other packages he previously installed
|
||||
dnl with the same --prefix option.
|
||||
dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
|
||||
dnl libraries, but is otherwise very convenient.
|
||||
AC_DEFUN([AC_LIB_PREFIX],
|
||||
[
|
||||
AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
|
||||
dnl By default, look in $includedir and $libdir.
|
||||
use_additional=yes
|
||||
AC_LIB_WITH_FINAL_PREFIX([
|
||||
eval additional_includedir=\"$includedir\"
|
||||
eval additional_libdir=\"$libdir\"
|
||||
])
|
||||
AC_ARG_WITH([lib-prefix],
|
||||
[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
|
||||
--without-lib-prefix don't search for libraries in includedir and libdir],
|
||||
[
|
||||
if test "X$withval" = "Xno"; then
|
||||
use_additional=no
|
||||
else
|
||||
if test "X$withval" = "X"; then
|
||||
AC_LIB_WITH_FINAL_PREFIX([
|
||||
eval additional_includedir=\"$includedir\"
|
||||
eval additional_libdir=\"$libdir\"
|
||||
])
|
||||
else
|
||||
additional_includedir="$withval/include"
|
||||
additional_libdir="$withval/lib"
|
||||
fi
|
||||
fi
|
||||
])
|
||||
if test $use_additional = yes; then
|
||||
dnl Potentially add $additional_includedir to $CPPFLAGS.
|
||||
dnl But don't add it
|
||||
dnl 1. if it's the standard /usr/include,
|
||||
dnl 2. if it's already present in $CPPFLAGS,
|
||||
dnl 3. if it's /usr/local/include and we are using GCC on Linux,
|
||||
dnl 4. if it doesn't exist as a directory.
|
||||
if test "X$additional_includedir" != "X/usr/include"; then
|
||||
haveit=
|
||||
for x in $CPPFLAGS; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X-I$additional_includedir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
if test "X$additional_includedir" = "X/usr/local/include"; then
|
||||
if test -n "$GCC"; then
|
||||
case $host_os in
|
||||
linux*) haveit=yes;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
if test -z "$haveit"; then
|
||||
if test -d "$additional_includedir"; then
|
||||
dnl Really add $additional_includedir to $CPPFLAGS.
|
||||
CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
dnl Potentially add $additional_libdir to $LDFLAGS.
|
||||
dnl But don't add it
|
||||
dnl 1. if it's the standard /usr/lib,
|
||||
dnl 2. if it's already present in $LDFLAGS,
|
||||
dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
|
||||
dnl 4. if it doesn't exist as a directory.
|
||||
if test "X$additional_libdir" != "X/usr/lib"; then
|
||||
haveit=
|
||||
for x in $LDFLAGS; do
|
||||
AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
|
||||
if test "X$x" = "X-L$additional_libdir"; then
|
||||
haveit=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$haveit"; then
|
||||
if test "X$additional_libdir" = "X/usr/local/lib"; then
|
||||
if test -n "$GCC"; then
|
||||
case $host_os in
|
||||
linux*) haveit=yes;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
if test -z "$haveit"; then
|
||||
if test -d "$additional_libdir"; then
|
||||
dnl Really add $additional_libdir to $LDFLAGS.
|
||||
LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
|
||||
dnl acl_final_exec_prefix, containing the values to which $prefix and
|
||||
dnl $exec_prefix will expand at the end of the configure script.
|
||||
AC_DEFUN([AC_LIB_PREPARE_PREFIX],
|
||||
[
|
||||
dnl Unfortunately, prefix and exec_prefix get only finally determined
|
||||
dnl at the end of configure.
|
||||
if test "X$prefix" = "XNONE"; then
|
||||
acl_final_prefix="$ac_default_prefix"
|
||||
else
|
||||
acl_final_prefix="$prefix"
|
||||
fi
|
||||
if test "X$exec_prefix" = "XNONE"; then
|
||||
acl_final_exec_prefix='${prefix}'
|
||||
else
|
||||
acl_final_exec_prefix="$exec_prefix"
|
||||
fi
|
||||
acl_save_prefix="$prefix"
|
||||
prefix="$acl_final_prefix"
|
||||
eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
|
||||
prefix="$acl_save_prefix"
|
||||
])
|
||||
|
||||
dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
|
||||
dnl variables prefix and exec_prefix bound to the values they will have
|
||||
dnl at the end of the configure script.
|
||||
AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
|
||||
[
|
||||
acl_save_prefix="$prefix"
|
||||
prefix="$acl_final_prefix"
|
||||
acl_save_exec_prefix="$exec_prefix"
|
||||
exec_prefix="$acl_final_exec_prefix"
|
||||
$1
|
||||
exec_prefix="$acl_save_exec_prefix"
|
||||
prefix="$acl_save_prefix"
|
||||
])
|
||||
@@ -16,6 +16,7 @@ AC_DEFUN([jm_PREREQ],
|
||||
jm_PREREQ_MBSWIDTH
|
||||
jm_PREREQ_MEMCHR
|
||||
jm_PREREQ_PHYSMEM
|
||||
jm_PREREQ_POSIXVER
|
||||
jm_PREREQ_QUOTEARG
|
||||
jm_PREREQ_READUTMP
|
||||
jm_PREREQ_REGEX
|
||||
@@ -91,6 +92,12 @@ AC_DEFUN([jm_PREREQ_PHYSMEM],
|
||||
AC_CHECK_FUNCS(pstat_getstatic pstat_getdynamic)
|
||||
])
|
||||
|
||||
AC_DEFUN([jm_PREREQ_POSIXVER],
|
||||
[
|
||||
AC_CHECK_HEADERS(unistd.h)
|
||||
AC_CHECK_DECLS([getenv])
|
||||
])
|
||||
|
||||
AC_DEFUN([jm_PREREQ_QUOTEARG],
|
||||
[
|
||||
AC_CHECK_FUNCS(isascii iswprint)
|
||||
|
||||
@@ -1,16 +1,24 @@
|
||||
# Search path for a program which passes the given test.
|
||||
# Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||
#
|
||||
# This file can be copied and used freely without restrictions. It can
|
||||
# be used in projects which are not available under the GNU General Public
|
||||
# License or the GNU Library General Public License but which still want
|
||||
# to provide support for the GNU gettext functionality.
|
||||
# Please note that the actual code of the GNU gettext library is covered
|
||||
# by the GNU Library General Public License, and the rest of the GNU
|
||||
# gettext package package is covered by the GNU General Public License.
|
||||
# They are *not* in the public domain.
|
||||
# progtest.m4 serial 2 (gettext-0.10.40)
|
||||
dnl Copyright (C) 1996-2002 Free Software Foundation, Inc.
|
||||
dnl This file is free software, distributed under the terms of the GNU
|
||||
dnl General Public License. As a special exception to the GNU General
|
||||
dnl Public License, this file may be distributed as part of a program
|
||||
dnl that contains a configuration script generated by Autoconf, under
|
||||
dnl the same distribution terms as the rest of that program.
|
||||
dnl
|
||||
dnl This file can can be used in projects which are not available under
|
||||
dnl the GNU General Public License or the GNU Library General Public
|
||||
dnl License but which still want to provide support for the GNU gettext
|
||||
dnl functionality.
|
||||
dnl Please note that the actual code of the GNU gettext library is covered
|
||||
dnl by the GNU Library General Public License, and the rest of the GNU
|
||||
dnl gettext package package is covered by the GNU General Public License.
|
||||
dnl They are *not* in the public domain.
|
||||
|
||||
# serial 2
|
||||
dnl Authors:
|
||||
dnl Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||
|
||||
# Search path for a program which passes the given test.
|
||||
|
||||
dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
|
||||
dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
|
||||
|
||||
@@ -1,3 +1,392 @@
|
||||
2002-03-10 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Version 4.1.7.
|
||||
|
||||
* src/ln.c (main): Change wording in diagnostic.
|
||||
* src/cp.c (do_copy): Likewise.
|
||||
* src/install.c (strip): Likewise.
|
||||
Suggestions from Santiago Vila.
|
||||
|
||||
* Use autoconf-2.53. Regenerate dependent files.
|
||||
|
||||
* Makefile.maint (GZIP, BZIP2): Remove definitions.
|
||||
($(my_distdir).tar.bz2): Remove rule. Now, it's built by `make dist'.
|
||||
|
||||
* configure.ac (AM_INIT_AUTOMAKE): Specify the required version
|
||||
of automake (1.6), and options (gnits dist-bzip2), rather than...
|
||||
* Makefile.am (AUTOMAKE_OPTIONS): ...here. Remove definition.
|
||||
|
||||
* src/copy.c (copy_reg): Don't exit upon finding a replaced file.
|
||||
Instead, just skip it like the diagnostic says.
|
||||
Reported by Paul Eggert.
|
||||
|
||||
2002-03-09 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/copy.c (copy_reg): Use a more concise diagnostic for
|
||||
reporting replaced files. This avoids a bug in the code,
|
||||
which mishandled ino_t wider than long.
|
||||
* src/remove.c (remove_dir): Likewise, twice.
|
||||
|
||||
2002-03-09 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (EXTRA_DIST): Remove config/config.rpath,
|
||||
now that automake knows about it.
|
||||
|
||||
2002-03-08 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
Don't allow a malicious user to trick another user's rm process into
|
||||
removing unintended files. In one scenario, if root is removing a
|
||||
hierarchy that is writable by the malicious user, that user may trick
|
||||
root into removing all of `/'. Reported by Wojciech Purczynski.
|
||||
|
||||
* src/remove.c (remove_dir): After chdir `..', call lstat to get the
|
||||
dev/inode of "." and fail if they aren't the same as the old numbers.
|
||||
(remove_cwd_entries): New parameter, `cwd_dev_ino'.
|
||||
(remove_dir): Likewise.
|
||||
(rm): Likewise.
|
||||
Adjust all callers.
|
||||
* src/mv.c (do_move): The first time we resort to copy/remove,
|
||||
call lstat `.' to get the device/inode numbers now required for rm.
|
||||
* src/rm.c (main): Call lstat `.' to get the device/inode numbers
|
||||
now required for rm.
|
||||
* src/remove.h (struct dev_ino): Declare new type.
|
||||
(rm): Add a parameter to the prototype.
|
||||
|
||||
2002-03-06 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Use automake-1.6. Regenerate dependent files.
|
||||
|
||||
2002-03-05 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (EXTRA_DIST): Add config/config.rpath.
|
||||
|
||||
2002-03-04 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.maint (tgz-size): Also handle a suffix of `K', since
|
||||
the sizes in the output of `du -h' now look like `29K'
|
||||
|
||||
2002-03-03 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Version 4.1.6.
|
||||
|
||||
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.
|
||||
|
||||
* src/cp.c (COPY_CONTENTS_OPTION): New enum value.
|
||||
(long_opts): Add --copy-contents.
|
||||
(usage): Describe new behavior. Sort options.
|
||||
(main): Implement new behavior. Remove diagnostics for -a and -r;
|
||||
no longer needed.
|
||||
* src/copy.c (copy_internal): Remove -r warning; no longer needed.
|
||||
|
||||
* NEWS: Document this.
|
||||
|
||||
2002-03-02 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/copy.c (copy_internal): For each symlink copied by cp -r,
|
||||
issue a warning that `cp -r' is not portable.
|
||||
|
||||
* src/cp.c (main): Revert change of 2001-12-29. With this change,
|
||||
cp -r once again preserves symlinks.
|
||||
(usage): Document the original (now-restored) behavior.
|
||||
* tests/cp/r-vs-symlink: Reflect changed semantics of cp's -r option.
|
||||
|
||||
* src/cp.c (main): Warn when -r is specified before --archive (-a).
|
||||
* src/cp.c (main): Fail when -r is specified after --archive (-a)
|
||||
on the command line.
|
||||
|
||||
* src/copy.c (copy_reg): Detect abuse of a race condition
|
||||
whereby an unprivileged user could gain read access to otherwise-
|
||||
inaccessible files when root uses cp or mv to copy a hierarchy
|
||||
belonging to that user.
|
||||
|
||||
2002-02-27 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/ls.c (decode_switches, usage): Add --time-style=+FORMAT.
|
||||
* doc/coreutils.texi (Formatting file timestamps): Document it.
|
||||
|
||||
2002-02-25 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
Add ACL support to 'ls' for HP-UX and Unixware, and try to
|
||||
establish a framework for adding it for other hosts.
|
||||
This builds on a suggestion of Andreas Gruenbacher.
|
||||
|
||||
* lib/Makefile.am (libfetish_a_SOURCES): Add acl.h, acl.c.
|
||||
* lib/acl.h, lib/acl.c, m4/acl.m4: New files.
|
||||
* m4/jm-macros.m4 (jm_MACROS): Require AC_FUNC_ACL.
|
||||
Do not check for acl or sys/acl.h, as AC_FUNC_ACL does that now.
|
||||
* src/ls.c: Include "acl.h" rather than <sys/acl.h>.
|
||||
(USE_ACL): Remove; replaced by HAVE_ACL everywhere.
|
||||
(gobble_file): Use file_has_acl rather than doing it ourselves.
|
||||
|
||||
2002-02-20 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/touch.c: Include posixver.h.
|
||||
(usage): Document only the intersection of the old and new behaviors,
|
||||
to encourage portability.
|
||||
(main): Use `posix2_version ()' in place of POSIX2_VERSION.
|
||||
|
||||
2002-02-17 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* ABOUT-NLS, intl/*: Update to Gettext 0.11.
|
||||
* INSTALL: Update to Autoconf 2.52h.
|
||||
|
||||
* src/Makefile.am (datadir): Use `share' in place of @DATADIRNAME@,
|
||||
per Gettext-0.11.
|
||||
(LDADD): Use @LIBINTL@ instead of @INTLLIBS@, per Gettext-0.11.
|
||||
|
||||
* configure.ac (AC_CONFIG_AUX_DIR): New macro invocation.
|
||||
(ALL_LINGUAS): Remove: now in po/LINGUAS as per Gettext 0.11.
|
||||
|
||||
* config: New subdirectory, containing the following files from .:
|
||||
config.guess, config.sub, depcomp, missing, install-sh, mkinstalldirs.
|
||||
Move the following files here from doc: texinfo.tex, mdate-sh.
|
||||
|
||||
2002-02-16 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* tests/ls/infloop: Use `head -n 7', not `head -7'.
|
||||
* tests/rm/hash: Likewise.
|
||||
|
||||
2002-02-10 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* configure.in (ALL_LINGUAS): Add Hungarian (hu).
|
||||
|
||||
2002-02-02 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/shred.c: (VERBOSE_UPDATE): Update every 5 seconds, not every 10.
|
||||
(wipename): Quote file names only when necessary.
|
||||
(main): Copy quoted string into malloc'd storage so it doesn't
|
||||
get clobbered when using -u and --verbose.
|
||||
|
||||
Minor clean-up.
|
||||
* src/shred.c:
|
||||
Use `NULL' rather than `(time_t *) 0'.
|
||||
(dopass): Use STREQ in place of strcmp.
|
||||
Add parentheses around use of nested ternary operator.
|
||||
|
||||
2002-01-15 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/shred.c (VERBOSE_UPDATE): Now counts seconds, not bytes.
|
||||
|
||||
(dopass): If verbose, output a line every VERBOSE_UPDATE seconds,
|
||||
and suppress duplicate output lines. Output a percentage as well
|
||||
as a count of bytes.
|
||||
|
||||
Also, fix comment/code typo regarding how many bytes have been
|
||||
written; this typo was harmless before, but is no longer harmless with
|
||||
the above change in effect.
|
||||
|
||||
2002-02-02 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/remove.c (rm): Add a comment.
|
||||
|
||||
2002-01-28 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (AUTOMAKE_OPTIONS): Require automake-1.5d.
|
||||
* configure.ac (AM_INIT_AUTOMAKE): Use zero-arg form of this macro.
|
||||
|
||||
2002-01-21 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* po/POTFILES.in: Add lib/xmemcoll.c
|
||||
|
||||
* src/chown-core.c: Don't include "xalloc.h", as system.h already
|
||||
does that via sys2.h.
|
||||
* src/ls.c: Likewise.
|
||||
* src/shred.c: Likewise.
|
||||
|
||||
2002-01-20 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/ls.c: Avoid undefined behavior when strcoll fails,
|
||||
by resorting the directory with strcmp instead.
|
||||
|
||||
Include <setjmp.h>.
|
||||
Include "quote.h".
|
||||
(compare_atime, rev_cmp_atime, compare_ctime, rev_cmp_ctime,
|
||||
compare_mtime, rev_cmp_mtime, compare_size, rev_comp_size,
|
||||
compare_name, rev_cmp_name, compare_extension, rev_cmp_extension,
|
||||
compare_version, rev_compare_version): Move before use, so that
|
||||
we can remove the forward declaration. Reimplement in terms of
|
||||
the new functions described below, using xstrcoll instead of strcoll.
|
||||
(failed_strcoll): New var.
|
||||
(xstrcoll): New function.
|
||||
(V): New type.
|
||||
(cmp_ctime, compstr_ctime, rev_str_ctime): New functions.
|
||||
(cmp_mtime, compstr_mtime, rev_str_mtime): Likewise.
|
||||
(cmp_atime, compstr_atime, rev_str_atime): Likewise.
|
||||
(cmp_size, compstr_size, rev_str_size): Likewise.
|
||||
(cmp_version): Likewise.
|
||||
(cmp_name, compstr_name, rev_str_name): Likewise.
|
||||
(cmp_extension, compstr_extension, rev_str_extension): Likewise.
|
||||
(sort_files): Use prototype for internal function var.
|
||||
If the strcoll-based comparison fails, fall back on a strcmp-based one.
|
||||
|
||||
2002-01-19 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
Ensure that the two version numbers in configure.ac remain in sync.
|
||||
* Makefile.maint (local-check): Depend on ac-check.
|
||||
(ac_p_pkg, AC_INIT_PKG): Define.
|
||||
(ac_p_ver, AC_INIT_VER): Define.
|
||||
(ac-check): New rule.
|
||||
|
||||
2002-01-19 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* configure.ac: Remove code that set LIBOBJS in support of ansi2knr.
|
||||
The latest version of autoconf objected to it, and besides, I don't
|
||||
care too much about K&R support these days.
|
||||
|
||||
2002-01-14 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/touch.c (main): Issue a warning for obsolete usage, unless
|
||||
POSIXLY_CORRECT.
|
||||
|
||||
2002-01-14 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
Add support for POSIX 1003.1-2001, which requires removal for
|
||||
support of the obsolete `touch [-acm] MMDDhhmm[YY] FILE...' syntax.
|
||||
|
||||
* NEWS: Document this.
|
||||
* src/touch.c (usage, main): Implement this.
|
||||
|
||||
2002-01-12 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
Avoid giving a misleading diagnostic in some unusual cases.
|
||||
Instead, give one that makes sense.
|
||||
|
||||
* src/copy.c (copy_reg): Don't treat errno==ENOENT as a special case.
|
||||
(same_file_ok): Detect a case that would have lead to the errno==ENOENT
|
||||
condition above (and a misleading diagnostic), and return 0 so we give
|
||||
a diagnostic about the source and destination being the same file.
|
||||
(copy_internal): Use an explicit test for errno==EXDEV to detect
|
||||
that rename has failed because source and destination are on
|
||||
different devices. This reverts part of a change from 1997-12-13,
|
||||
and is to avoid letting a race condition evoke a bogus diagnostic.
|
||||
Note that while POSIX has encouraged the errno==EXDEV test for
|
||||
years, it was inadequate back in 1997. I'm hoping that many
|
||||
more systems have conforming support these days.
|
||||
Reported by Michael Gaughen <mgaughen@polyserve.com>
|
||||
|
||||
* src/shred.c (usage): Also mention Ext3.
|
||||
Suggestion from Göran Uddeborg.
|
||||
|
||||
2002-01-06 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
* src/ls.c (long_time_format): Extend translator comments.
|
||||
|
||||
2002-01-05 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Version 4.1.5.
|
||||
|
||||
2001-12-29 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/cp.c (main): With -r, always dereference symlinks.
|
||||
Reported by Christian Harkort. Patch by Chris J. Bednar.
|
||||
|
||||
* tests/cp/r-vs-symlink: New file to test for the above fix.
|
||||
* tests/cp/Makefile.am (TESTS): Add r-vs-symlink.
|
||||
|
||||
2001-12-21 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/shred.c [!HAVE_CONFIG_H]: Remove cpp block that duplicated
|
||||
code in lib/ in order to facilitate compiling this program without
|
||||
config.h.
|
||||
|
||||
2001-12-19 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/shred.c: Add FSF copyright notice.
|
||||
|
||||
2001-12-18 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
Use notation compatible with SI and with IEC 60027-2.
|
||||
For example, --block-size=1MB now means --block-size=1000000,
|
||||
whereas --block-size=1MiB now means --block-size=1048576.
|
||||
A trailing `B' now means decimal, not binary; this is a silent change.
|
||||
-H or --si now outputs the trailing 'B', for consistency with this.
|
||||
Programs now output trailing 'K' (not 'k') to mean 1024.
|
||||
New df, du short option -B is short for --block-size.
|
||||
You can omit an integer `1' before a block size suffix,
|
||||
e.g. `df -BG' is equivalent to `df -B 1G' and to `df --block-size=1G'.
|
||||
|
||||
* NEWS, doc/coreutils.texi: Document this. Remove documentation
|
||||
for obsolescent constructs MD, --kilobytes, -m or --megabytes.
|
||||
|
||||
* src/dd.c (usage, parse_integer): Prefer K to k for 1024.
|
||||
* src/shred.c (usage, main): Likewise.
|
||||
|
||||
* src/shred.c (xstrtoumax): 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'.
|
||||
|
||||
* src/dd.c (usage): MD -> MB for decimal.
|
||||
|
||||
* src/df.c (BLOCK_SIZE_OPTION): Remove; no longer needed now that
|
||||
we have 'B'.
|
||||
(long_options, usage, main): Add -B.
|
||||
(usage): Deprecate --kilobytes, -m, --megabytes.
|
||||
Document size suffixes.
|
||||
* src/du.c: Likewise.
|
||||
* src/ls.c (usage): Deprecate --kilobytes. Document size suffixes.
|
||||
|
||||
* src/df.c (print_header, show_dev): Enlarge column widths for
|
||||
trailing "B".
|
||||
|
||||
2001-12-17 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.maint (real_dir): Remove unused variable.
|
||||
(url_dir_list): Don't set define it here, but...
|
||||
* Makefile.cfg (url_dir_list): ...define it here instead.
|
||||
(hosts, a_host, b_host): Remove now-unused variables.
|
||||
(alpha_subdir, a_url_dir, b_url_dir): Remove now-unused variables.
|
||||
|
||||
2001-12-15 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Version 4.1.4.
|
||||
|
||||
* tests/touch/fail-diag: Also accept SunOS4's `Not owner' diagnostic.
|
||||
Reported by Volker Borchert.
|
||||
|
||||
* tests/help-version: Fail also if ./$i --version fails.
|
||||
Run each --help and --version test with a few different settings
|
||||
of LC_MESSAGES. Prompted by a report from Nelson Beebe.
|
||||
|
||||
2001-12-11 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
Include the word `fail' in some diagnostics to make it clearer
|
||||
that they indicate a failure.
|
||||
* src/chgrp.c (main): s/getting attributes/failed to get attributes/.
|
||||
* src/chmod.c (change_file_mode, main): Likewise.
|
||||
* src/chown-core.c (change_file_owner): Likewise.
|
||||
* src/chown.c (main): Likewise.
|
||||
* src/cp.c (re_protect): Likewise.
|
||||
* src/touch.c (touch, main):Likewise.
|
||||
Suggestion from Karl Berry.
|
||||
|
||||
2001-12-10 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/dd.c (buggy_lseek_support): Remove function.
|
||||
(skip_via_lseek) [__linux__]: New function.
|
||||
(skip): Use skip_via_lseek, not buggy_lseek_support.
|
||||
Based on an outline from Paul Eggert.
|
||||
|
||||
2001-12-09 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* configure.in (ALL_LINGUAS): Add Estonian (et).
|
||||
|
||||
2001-12-08 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.cfg (wget_files): Remove ansi2knr.c, since it's
|
||||
no longer available at that location.
|
||||
|
||||
2001-12-04 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* tests/chgrp/basic: Don't use diff's -u option. It's not portable.
|
||||
Besides, with GNU diff one can use the DIFF_OPTIONS envvar.
|
||||
* tests/ls/no-arg: Likewise.
|
||||
* tests/ls/recursive: Likewise.
|
||||
* tests/ls/rt-1: Likewise.
|
||||
|
||||
2001-12-02 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Version 4.1.3.
|
||||
|
||||
@@ -1,3 +1,34 @@
|
||||
[4.1.7]
|
||||
* rm: close a hole that would allow a running rm process to be subverted
|
||||
[4.1.6]
|
||||
* New cp option: --copy-contents.
|
||||
* cp -r is now equivalent to cp -R. Use cp -R -L --copy-contents to get the
|
||||
traditional (and rarely desirable) cp -r behavior.
|
||||
* ls now accepts --time-style=+FORMAT, where +FORMAT works like date's format
|
||||
* The obsolete usage `touch [-acm] MMDDhhmm[YY] FILE...' is no longer
|
||||
supported on systems conforming to POSIX 1003.1-2001. Use touch -t instead.
|
||||
* cp and inter-partition mv no longer give a misleading diagnostic in some
|
||||
unusual cases
|
||||
[4.1.5]
|
||||
* cp -r no longer preserves symlinks
|
||||
* The block size notation is now compatible with SI and with IEC 60027-2.
|
||||
For example, --block-size=1MB now means --block-size=1000000,
|
||||
whereas --block-size=1MiB now means --block-size=1048576.
|
||||
A missing `B' (e.g. `1M') has the same meaning as before.
|
||||
A trailing `B' now means decimal, not binary; this is a silent change.
|
||||
The nonstandard `D' suffix (e.g. `1MD') is now obsolescent.
|
||||
* -H or --si now outputs the trailing 'B', for consistency with the above.
|
||||
* Programs now output trailing 'K' (not 'k') to mean 1024, as per IEC 60027-2.
|
||||
* New df, du short option -B is short for --block-size.
|
||||
* You can omit an integer `1' before a block size suffix,
|
||||
e.g. `df -BG' is equivalent to `df -B 1G' and to `df --block-size=1G'.
|
||||
* The following options are now obsolescent, as their names are
|
||||
incompatible with IEC 60027-2:
|
||||
df, du: -m or --megabytes (use -BM or --block-size=1M)
|
||||
df, du, ls: --kilobytes (use --block-size=1K)
|
||||
[4.1.4]
|
||||
* df --local no longer lists smbfs file systems whose name starts with //
|
||||
* dd now detects the Linux/tape/lseek bug at run time and warns about it.
|
||||
[4.1.3]
|
||||
* ls -R once again outputs a blank line between per-directory groups of files.
|
||||
This was broken by the cycle-detection change in 4.1.1.
|
||||
|
||||
@@ -1,7 +1,192 @@
|
||||
2001-11-25 Jim Meyering <meyering@lucent.com>
|
||||
2002-03-10 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Version 2.0.12.
|
||||
|
||||
* configure.ac (AM_INIT_AUTOMAKE): Specify the required version
|
||||
of automake (1.6), and options (gnits dist-bzip2), rather than...
|
||||
* Makefile.am (AUTOMAKE_OPTIONS): ...here. Remove definition.
|
||||
|
||||
2002-03-09 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (EXTRA_DIST): Remove config/config.rpath,
|
||||
now that automake knows about it.
|
||||
|
||||
2002-03-05 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (EXTRA_DIST): Add config/config.rpath.
|
||||
|
||||
2002-03-02 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* tests/nice: Export _POSIX2_VERSION=199209, so we can continue
|
||||
to exercise the now-obsolete options.
|
||||
|
||||
* Makefile.maint (strftime-check): Add `N'.
|
||||
|
||||
2002-02-27 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* doc/coreutils.texi (Time directives): Add %N for nanoseconds.
|
||||
This documents the recent change to 'ls'. But for this to
|
||||
be accurate we also have to update 'date', as follows:
|
||||
|
||||
* src/Makefile.am (date_LDADD): New macro.
|
||||
|
||||
* src/date.c: Include timespec.h.
|
||||
(strftime, time, stime): Remove declarations; no longer needed.
|
||||
(usage): Document %N.
|
||||
(main): Use gettime rather than time to get the time of day,
|
||||
so that we can get fractional times.
|
||||
Similarly for settime and stime, so that we can set fractional times
|
||||
(though this currently is not available to the user since we don't
|
||||
parse fractional times; add FIXMES for that).
|
||||
Check for gettime failures; e.g. this can occur if it
|
||||
is past 2038 and we are a 32-bit app running on a 64-bit OS.
|
||||
Get fractional part of file time stamps.
|
||||
Do not falsely report failures just because time_t happens to be -1
|
||||
(e.g. a file time stamp 1 second before the epoch).
|
||||
(show_date): 2nd arg is now struct timespec, not time_t.
|
||||
All uses changed. Use nstrftime rather than strftime, so that
|
||||
we can format fractional seconds.
|
||||
|
||||
2002-02-24 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/nice.c: Include posixver.h.
|
||||
* src/date.c: Likewise.
|
||||
|
||||
2002-02-17 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* ABOUT-NLS, intl/*: Update to Gettext 0.11.
|
||||
* INSTALL: Update to Autoconf 2.52h.
|
||||
|
||||
* src/Makefile.am (datadir): Use `share' in place of @DATADIRNAME@,
|
||||
per Gettext-0.11.
|
||||
(LDADD): Use @LIBINTL@ instead of @INTLLIBS@, per Gettext-0.11.
|
||||
|
||||
* configure.ac (AC_CONFIG_AUX_DIR): New macro invocation.
|
||||
(ALL_LINGUAS): Remove: now in po/LINGUAS as per Gettext 0.11.
|
||||
|
||||
* config: New subdirectory, containing the following files from .:
|
||||
config.guess, config.sub, depcomp, missing, install-sh, mkinstalldirs.
|
||||
Move the following files here from doc: texinfo.tex, mdate-sh.
|
||||
|
||||
2002-02-15 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
Add support for _POSIX2_VERSION, which lets you pick which POSIX
|
||||
version you want the utilities to conform to. Remove warnings about
|
||||
failure to conform to a future POSIX version.
|
||||
|
||||
* src/date.c (ISO_8601_OPTION): Remove; no longer needed.
|
||||
All uses changed to back to the corresponding short options.
|
||||
(short_options): Remove; no longer needed.
|
||||
(COMMON_SHORT_OPTIONS): New macro.
|
||||
|
||||
* src/date.c (usage): Document only the intersection of the
|
||||
old and new behaviors, to encourage portability.
|
||||
(main): Parse options using POSIX 1003.1-2001 rules if
|
||||
conforming to that standard. Do not warn of obsolete options.
|
||||
* src/nice.c (usage, main): Likewise.
|
||||
|
||||
2002-02-11 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/nice.c (main): Output warnings only if OBSOLETE_OPTION_WARNINGS.
|
||||
|
||||
2002-02-11 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/date.c (usage): Describe %F, %g, %G, %P, and %R.
|
||||
Tweak the description of %p.
|
||||
|
||||
* tests/stty/basic-1: Use `tail -n +2', rather than `tail +2'.
|
||||
|
||||
2002-02-03 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
Add more support for POSIX 1003.1-2001, which requires removal
|
||||
for support of obsolete "-DIGITS" option syntax in nice, and
|
||||
which prohibits options with optional arguments like date's
|
||||
-I option.
|
||||
|
||||
* NEWS, coreutils.texi: Document this.
|
||||
|
||||
* src/date.c (ISO_8601_OPTION): New enum value.
|
||||
(long_options): Use it.
|
||||
(short_options): New constant.
|
||||
|
||||
* src/date.c (usage): Document the change.
|
||||
* src/nice.c (usage): Likewise.
|
||||
|
||||
* src/date.c (main): Conform to POSIX 1003.1-2001 if
|
||||
POSIX2_VERSION says to, otherwise warn of obsolete usage if
|
||||
OBSOLETE_OPTION_WARNINGS is nonzero and if not POSIXLY_CORRECT.
|
||||
* src/nice.c (main): Likewise.
|
||||
|
||||
2002-02-02 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
* printf.c (print_esc): Call print_unicode_char with exit_on_error =
|
||||
false.
|
||||
|
||||
2002-01-28 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (AUTOMAKE_OPTIONS): Require automake-1.5d.
|
||||
* configure.ac (AM_INIT_AUTOMAKE): Use zero-arg form of this macro.
|
||||
|
||||
2002-01-22 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* po/POTFILES.in: Add lib/xmemcoll.c and src/sys2.h.
|
||||
|
||||
2002-01-21 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.maint (strftime-check): New rule.
|
||||
(local-check): Convert this target to a list. Update uses.
|
||||
Mark them as .PHONY.
|
||||
(header-check): New rule.
|
||||
(local-check): Add header-check.
|
||||
|
||||
* src/dirname.c: Don't include "xalloc.h", as system.h already
|
||||
does that via sys2.h.
|
||||
* src/expr.c: Likewise.
|
||||
|
||||
2002-01-19 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* configure.ac: Remove code that set LIBOBJS in support of ansi2knr.
|
||||
The latest version of autoconf objected to it, and besides, I don't
|
||||
care too much about K&R support these days.
|
||||
|
||||
2002-01-14 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/date.c, src/logname.c, src/pathchk.c: Comment fixes
|
||||
to bring us up to date with respect to POSIX 1003.1-2001.
|
||||
In particular, POSIX.2 is now obsolete.
|
||||
|
||||
2001-12-28 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* configure.ac (ALL_LINGUAS): Add Catalan (ca).
|
||||
|
||||
2001-12-17 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.maint (real_dir): Remove unused variable.
|
||||
(url_dir_list): Don't set define it here, but...
|
||||
* Makefile.cfg (url_dir_list): ...define it here instead.
|
||||
(hosts, a_host, b_host): Remove now-unused variables.
|
||||
(alpha_subdir, a_url_dir, b_url_dir): Remove now-unused variables.
|
||||
|
||||
2001-12-15 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/basename.c, src/chroot.c, src/date.c, src/dirname.c, src/echo.c,
|
||||
* src/env.c, src/expr.c, src/factor.c, src/hostid.c, src/hostname.c,
|
||||
* src/id.c, src/kill.c, src/logname.c, src/nice.c, src/pathchk.c,
|
||||
* src/pinky.c, src/printenv.c, src/printf.c, src/pwd.c, src/seq.c,
|
||||
* src/sleep.c, src/stty.c, src/su.c, src/tee.c, src/test.c, src/true.c,
|
||||
* src/tty.c, src/uname.c, src/uptime.c, src/users.c, src/who.c,
|
||||
* src/whoami.c, src/yes.c (usage): Use fputs, not printf.
|
||||
Split --help output into smaller pieces.
|
||||
Use new macros, HELP_OPTION_DESCRIPTION and VERSION_OPTION_DESCRIPTION
|
||||
instead of hard-coding --help and --version descriptions.
|
||||
|
||||
2001-12-08 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.cfg (wget_files): Remove ansi2knr.c, since it's
|
||||
no longer available at that location.
|
||||
|
||||
2001-11-25 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* basename.c, dirname.c, expr.c, factor.c, hostname.c (usage):
|
||||
* logname.c, printenv.c, printf.c, pwd.c, sleep.c, test.c (usage):
|
||||
* true.c, whoami.c, yes.c (usage):
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
Changes in release 2.1
|
||||
[2.0.12]
|
||||
* The following changes apply on systems conforming to POSIX 1003.1-2001,
|
||||
and are required by the new POSIX standard:
|
||||
- `date -I' is no longer supported. Instead, use `date --iso-8601'.
|
||||
- `nice -NUM' is no longer supported. Instead, use `nice -n NUM'.
|
||||
* 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.
|
||||
|
||||
@@ -1,3 +1,414 @@
|
||||
2002-03-10 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Version 2.0.22.
|
||||
|
||||
* configure.ac (AM_INIT_AUTOMAKE): Specify the required version
|
||||
of automake (1.6), and options (gnits dist-bzip2), rather than...
|
||||
* Makefile.am (AUTOMAKE_OPTIONS): ...here. Remove definition.
|
||||
|
||||
2002-03-09 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (EXTRA_DIST): Remove config/config.rpath,
|
||||
now that automake knows about it.
|
||||
|
||||
2002-03-05 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.am (EXTRA_DIST): Add config/config.rpath.
|
||||
|
||||
2002-02-23 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/cat.c (simple_cat, cat, main): Used char * rather than
|
||||
unsigned char *, to avoid some technical violations of the C
|
||||
standard, and to avoid the need for casts. I guess the
|
||||
unsigned char * was probably there for improved performance
|
||||
with ancient compilers, but the code wasn't using the
|
||||
unsignedness any more.
|
||||
Reported by Nelson H. F. Beebe.
|
||||
|
||||
(cat): int -> size_t for full_write arg. This doesn't
|
||||
fix any bugs since the buffer size is small, but it makes
|
||||
the code a bit clearer.
|
||||
|
||||
2002-02-18 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Version 2.0.21.
|
||||
|
||||
* tests/tail/Test.pm: For tests matching /^(obs|err-[134])/,
|
||||
put _POSIX2_VERSION=199209 in the environment, so the tests succeed
|
||||
even when the environment would have contained _POSIX2_VERSION=200112.
|
||||
* tests/uniq/Test.pm (test_vector): Rename tests of obsolete usage
|
||||
to have prefix of `obs'. Adjust environment for those tests as above.
|
||||
|
||||
* tests/mk-script: When getting input via a pipe, apply the
|
||||
environment settings to the command in question, not to `cat'.
|
||||
No longer allow more than one element in the $Test::env or
|
||||
$Test::env_default arrays. No caller used that feature.
|
||||
|
||||
2002-02-17 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* tests/head/Test.pm: Accept pre-POSIX 1003.1-2001 options.
|
||||
* tests/pr/Test.pm: Likewise.
|
||||
* tests/sort/Test.pm: Likewise.
|
||||
|
||||
* Makefile.cfg (wget_files): Reflect new location of these files.
|
||||
|
||||
2002-02-16 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* ABOUT-NLS, intl/*: Update to Gettext 0.11.
|
||||
* INSTALL: Update to Autoconf 2.52h.
|
||||
|
||||
* src/Makefile.am (datadir): Use `share' in place of @DATADIRNAME@,
|
||||
per Gettext-0.11.
|
||||
(LDADD): Use @LIBINTL@ instead of @INTLLIBS@, per Gettext-0.11.
|
||||
|
||||
* configure.ac (AC_CONFIG_AUX_DIR): New macro invocation.
|
||||
(ALL_LINGUAS): Remove: now in po/LINGUAS as per Gettext 0.11.
|
||||
|
||||
* config: New subdirectory, containing the following files from .:
|
||||
config.guess, config.sub, depcomp, missing, install-sh, mkinstalldirs.
|
||||
Move the following files here from doc: texinfo.tex, mdate-sh.
|
||||
|
||||
2002-02-15 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
Add support for _POSIX2_VERSION, which lets you pick which POSIX
|
||||
version you want the utilities to conform to. Remove warnings about
|
||||
failure to conform to a future POSIX version.
|
||||
|
||||
* NEWS, doc/coreutils.texi: Document _POSIX2_VERSION.
|
||||
* doc/coreutils.texi (Standards Conformance): New section.
|
||||
|
||||
* src/expand.c: Include posixver.h.
|
||||
(usage): Document only the intersection of the old and new behaviors,
|
||||
to encourage portability.
|
||||
* src/fold.c: Likewise.
|
||||
* src/head.c: Likewise.
|
||||
* src/od.c: Likewise.
|
||||
* src/pr.c: Likewise.
|
||||
* src/sort.c: Likewise.
|
||||
* src/split.c: Likewise.
|
||||
* src/uniq.c: Likewise.
|
||||
* src/tail.c: Likewise.
|
||||
* src/unexpand.c: Likewise.
|
||||
|
||||
* src/expand.c (shortopts): Remove; no longer needed.
|
||||
* src/od.c (short_options): Likewise.
|
||||
* src/pr.c (short_options): Likewise.
|
||||
* src/sort.c (short_options): Likewise.
|
||||
* src/split.c (shortopts): Likewise.
|
||||
* src/uniq.c (shortopts): Likewise.
|
||||
* src/unexpand.c (shortopts): Likewise.
|
||||
|
||||
* src/od.c (COMMON_SHORT_OPTIONS): New macro.
|
||||
* src/pr.c (COMMON_SHORT_OPTIONS): Likewise.
|
||||
* src/sort.c (COMMON_SHORT_OPTIONS): Likewise.
|
||||
|
||||
* src/expand.c (main): Revert to previous behavior, except report
|
||||
an error and exit if the obsolete syntax is used and if conforming
|
||||
to the new standard.
|
||||
* src/fold.c (main): Likewise.
|
||||
* src/head.c (main): Likewise.
|
||||
* src/split.c (main): Likewise.
|
||||
* src/uniq.c (main): Likewise.
|
||||
* src/tail.c (main, parse_obsolescent_option): Likewise.
|
||||
* src/unexpand.c (main): Likewise.
|
||||
|
||||
* src/od.c (STRINGS_OPTION, WIDTH_OPTION): Remove; no longer needed.
|
||||
All uses changed back to the corresponding short options.
|
||||
* src/pr.c (SEP_STRING_OPTION): Likewise.
|
||||
|
||||
* src/od.c (main): Parse options using POSIX 1003.1-2001 rules if
|
||||
conforming to that standard. Do not warn of obsolete options.
|
||||
* src/pr.c (main): Likewise.
|
||||
* src/sort.c (main): Likewise.
|
||||
|
||||
* src/system.h (_POSIX2_VERSION, POSIX2_VERSION): Remove definitions.
|
||||
(OPTARG_POSIX, OBSOLETE_OPTION_WARNINGS): Likewise.
|
||||
|
||||
2002-02-16 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* tests/misc/split-a: New test for change of 2002-02-05.
|
||||
* tests/misc/Makefile.am (TESTS): Add split-a.
|
||||
|
||||
2002-02-12 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/split.c (DEFAULT_SUFFIX_LENGTH): Define constant.
|
||||
(suffix_length): Use it here.
|
||||
(usage): Use it here.
|
||||
|
||||
2002-02-05 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
Change 'split' to conform to POSIX. It now accepts an -a or
|
||||
--suffix-length option, and refuses to generate more files
|
||||
than there are suffixes.
|
||||
|
||||
* NEWS, doc/coreutils.texi: Document this.
|
||||
* src/split.c: Include "dirname.h".
|
||||
(outbase): Now a global var.
|
||||
(outfile_end): Remove.
|
||||
(suffix_length): New var.
|
||||
(shortopts, longopts, main): Add -a or --suffix-length.
|
||||
(next_file_name): Implement -a. Do not extend the suffix length.
|
||||
Check for file names that are too long.
|
||||
(main): Move outfile initialization to next_file_name.
|
||||
|
||||
* src/split.c (shortopts): Remove -v (a typo).
|
||||
|
||||
2002-02-11 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* tests/misc/head-pos: New file/test for the change of 2002-02-08.
|
||||
* tests/misc/Makefile.am (TESTS): Add head-pos.
|
||||
|
||||
* src/tr.c (unquote): Make comment a little clearer.
|
||||
|
||||
2002-02-08 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/head.c (head_lines): If we have read too much data, try
|
||||
to seek back to the position we would have gotten to had we
|
||||
been reading one byte at a time. POSIX currently doesn't
|
||||
require this, but it's easy to do and some software relies on it.
|
||||
|
||||
2002-02-02 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/uniq.c (main): Prepend `warning: ' to the diagnostic, so it's
|
||||
consistent with all of the other `... is obsolete...' diagnostics.
|
||||
|
||||
2002-01-31 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
Add more support for POSIX 1003.1-2001, which requires removal for
|
||||
support of obsolete "-N" option syntax in expand, head, fold,
|
||||
split, tail, unexpand, uniq, and which prohibits options with
|
||||
optional arguments in od and pr.
|
||||
|
||||
* NEWS: Document this.
|
||||
* doc/coreutils.texi: Likewise.
|
||||
* src/expand.c (usage): Likewise.
|
||||
* src/fold.c (usage): Likewise.
|
||||
* src/head.c (usage): Likewise.
|
||||
* src/od.c (usage): Likewise.
|
||||
* src/pr.c (usage): Likewise.
|
||||
* src/split.c (usage): Likewise.
|
||||
* src/unexpand.c (usage): Likewise.
|
||||
* src/uniq.c (usage): Likewise.
|
||||
|
||||
* NEWS: Improve doc for previous fix in this area.
|
||||
|
||||
* src/expand.c (shortopts): New constant.
|
||||
* src/od.c (short_options): Likewise.
|
||||
* src/pr.c (short_options): Likewise.
|
||||
* src/sort.c (short_options): Likewise.
|
||||
* src/split.c (shortopts): Likewise.
|
||||
* src/unexpand.c (shortopts): Likewise.
|
||||
* src/uniq.c (shortopts): Likewise.
|
||||
|
||||
* src/expand.c (main): Check for obsolete options.
|
||||
* src/fold.c (main): Likewise.
|
||||
* src/head.c (main): Likewise.
|
||||
* src/od.c (main): Likewise.
|
||||
* src/pr.c (main): Likewise.
|
||||
* src/sort.c (main): Likewise.
|
||||
* src/split.c (main): Likewise.
|
||||
* src/tail.c (parse_obsolescent_option, main): Likewise.
|
||||
* src/unexpand.c (main): Likewise.
|
||||
* src/uniq.c (main): Likewise.
|
||||
|
||||
* src/head.c (header_mode_option): New constant.
|
||||
|
||||
* src/od.c: New enum for long options.
|
||||
|
||||
* src/pr.c (SEP_STRING_OPTION): New enum value.
|
||||
(long_options): Use it.
|
||||
|
||||
* src/split.c (main): Use -1, not EOF, for getopt_long.
|
||||
|
||||
* src/system.h (OPTARG_POSIX, OBSOLETE_OPTION_WARNINGS): New macros.
|
||||
|
||||
* src/fold.c (main): Fix bug: -- -N was treated as -N --.
|
||||
|
||||
2002-02-01 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/tail.c (start_lines): Handle the case in which bytes_read is zero.
|
||||
|
||||
2002-01-28 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.maint (ac-check): Remove, now that we no longer have
|
||||
to duplicate that information.
|
||||
(local-check): Remove ac-check.
|
||||
|
||||
* Makefile.am (AUTOMAKE_OPTIONS): Require automake-1.5d.
|
||||
|
||||
* configure.ac (AM_INIT_AUTOMAKE): Use zero-arg form of this macro.
|
||||
(ALL_LINGUAS): Add the bokmål dialect of Norwegian (nb).
|
||||
|
||||
2002-01-27 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
tail -n +2 would perform an extra read after encountering EOF
|
||||
* src/tail.c (start_lines): Detect EOF, inform caller.
|
||||
(tail_lines): Upon EOF in start_lines, return immediately.
|
||||
|
||||
2002-01-22 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Version 2.0.20.
|
||||
|
||||
2002-01-22 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/od.c (skip): Remove redundant check for overflow.
|
||||
fseeko's seek argument is already known to be in range,
|
||||
since it is less than the file size.
|
||||
|
||||
2002-01-22 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* po/POTFILES.in: Add lib/xmemcoll.c.
|
||||
|
||||
2002-01-22 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/tac.c (save_stdin): Report proper errno value after
|
||||
fwrite failures. Do not bother to rewind the temp file, as
|
||||
it'll be read backwards anyway.
|
||||
|
||||
2002-01-22 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/ptx.c (swallow_file_in_memory): Work even if `open' returns 0.
|
||||
Check for `close' error.
|
||||
|
||||
2002-01-22 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
Port to glibc 2.2.5, whose mmap stdio positions the underlying
|
||||
file descriptor at a nonzero offset after an fopen.
|
||||
|
||||
* m4/jm-macros.m4 (jm_MACROS): Require AC_FUNC_FSEEKO.
|
||||
* src/od.c (skip): Use fseeko rather than lseek.
|
||||
(Also, check for overflow when converting uintmax_t to off_t.)
|
||||
* src/sys2.h (EOVERFLOW, fseeko): New macros.
|
||||
|
||||
2001-01-21 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/comm.c: Include xmemcoll.h, not memcoll.h.
|
||||
Use xmemcoll instead of memcoll.
|
||||
* src/join.c: Likewise.
|
||||
* src/sort.c: Likewise.
|
||||
|
||||
* src/sort.c (die): Do not invoke cleanup; atexit does this now.
|
||||
(main): Use atexit to invoke cleanup on exit.
|
||||
Set xmemcoll_exit_failure to SORT_FAILURE.
|
||||
|
||||
2002-01-20 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/comm.c (compare_files): Don't assume that the difference
|
||||
between two size_t values can be stored in an int; this doesn't
|
||||
work, for example, on 64-bit Solaris.
|
||||
* src/sort.c (CMP_WITH_IGNORE): Likewise.
|
||||
* src/join.c (keycmp): Likewise. Also, fix the type of two locals
|
||||
to be size_t instead of int.
|
||||
|
||||
2002-01-20 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/csplit.c: Don't include "xalloc.h", as system.h already
|
||||
does that via sys2.h.
|
||||
* src/sort.c: Likewise.
|
||||
|
||||
2002-01-19 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* configure.ac: Remove code that set LIBOBJS in support of ansi2knr.
|
||||
The latest version of autoconf objected to it, and besides, I don't
|
||||
care too much about K&R support these days.
|
||||
|
||||
2002-01-18 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
Fix tr so it no longer gets a failed assertion for [::] or [==].
|
||||
|
||||
* src/tr.c (xmemdup): Rename from `substr' and rewrite to
|
||||
take only pointer/length parameters.
|
||||
(build_spec_list): Update sole caller.
|
||||
Properly diagnose the invalid specs [::] and [==].
|
||||
Pawel Prokop reported that `tr '[::]' x' elicits a failed assertion.
|
||||
* tests/tr/Test.pm: Add tests for the above fix.
|
||||
|
||||
2002-01-14 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/sort.c (main): Issue a warning for obsolete usage, unless
|
||||
POSIXLY_CORRECT.
|
||||
* src/tail.c (parse_obsolescent_option): Likewise.
|
||||
* src/uniq.c (main): Likewise.
|
||||
|
||||
2002-01-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.
|
||||
|
||||
* NEWS: Document this.
|
||||
|
||||
* src/sort.c (usage, main): Implement this.
|
||||
* src/tail.c (usage, parse_obsolescent_option): Likewise.
|
||||
* src/uniq.c (usage, main): Likewise.
|
||||
* src/system.h (_POSIX2_VERSION, POSIX2_VERSION): New macros.
|
||||
|
||||
* src/sys2.h (ISDIGIT, S_ISVTX, S_IXUGO): Comment fix.
|
||||
|
||||
2002-01-14 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* tests/misc/sort: New test, for just-fixed bug.
|
||||
* tests/misc/Makefile.am (TESTS): Add sort.
|
||||
(TESTS_ENVIRONMENT): Add PROG=$$tst. This is a gross kludge
|
||||
that depends on the name of an automake-generated local variable.
|
||||
|
||||
2002-01-13 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/sort.c (mergefps): Fix bug when eliminating empty files.
|
||||
Bug reported by James Hutt.
|
||||
|
||||
2002-01-13 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* tests/help-version: Tweak to work with the programs in diffutils.
|
||||
|
||||
2002-01-09 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* configure.in (ALL_LINGUAS): Add Turkish (tr).
|
||||
|
||||
2001-12-18 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/sort.c (usage, specify_sort_size): Accept 'K' (which is
|
||||
now preferred, as it connotes 1024) as well as 'k'.
|
||||
* NEWS: Document this change.
|
||||
|
||||
2001-12-17 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/uniq.c (usage): Remove stray `)' in --help output.
|
||||
Reported by Padraig Brady.
|
||||
|
||||
* Makefile.maint (real_dir): Remove unused variable.
|
||||
(url_dir_list): Don't set define it here, but...
|
||||
* Makefile.cfg (url_dir_list): ...define it here instead.
|
||||
(hosts, a_host, b_host): Remove now-unused variables.
|
||||
(alpha_subdir, a_url_dir, b_url_dir): Remove now-unused variables.
|
||||
|
||||
2001-12-12 Bruno Haible <bruno@clisp.org>
|
||||
Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* src/wc.c (wc): Use ISSPACE and iswspace in addition to hard-coding
|
||||
the ASCII space character.
|
||||
|
||||
2001-12-08 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Version 2.0.19.
|
||||
|
||||
* Makefile.cfg (wget_files): Remove ansi2knr.c, since it's
|
||||
no longer available at that location.
|
||||
|
||||
2001-12-03 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* src/od.c, src/tail.c, src/tr.c (usage): I will not split translatable
|
||||
strings in the middle of a sentence. I will not split translatable
|
||||
strings in the middle of a sentence. I will not split translatable
|
||||
strings in the middle of a sentence. ...
|
||||
* src/join.c (usage): Merge lone "\n" into adjacent string.
|
||||
* src/md5sum.c (usage): Likewise.
|
||||
* src/paste.c (usage): Likewise.
|
||||
Reported by Karl Eichwalder.
|
||||
|
||||
2001-12-02 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Makefile.maint (emit-upload-commands): Fix typo: s/distdir/PACKAGE/.
|
||||
|
||||
2001-12-01 Jim Meyering <meyering@lucent.com>
|
||||
|
||||
* Version 2.0.18.
|
||||
@@ -5879,7 +6290,7 @@ Sat Sep 23 15:43:46 1995 Jim Meyering (meyering@comco.com)
|
||||
* Makefile.in (DISTFILES): Add README.alpha.
|
||||
|
||||
* lib/Makfile.in (GETOPT, MEMCHR, REGEX): New variables.
|
||||
(OBJECTS): Use them instead of hardcoding object file names.
|
||||
(OBJECTS): Use them instead of hard-coding object file names.
|
||||
Suggested by Ulrich Drepper.
|
||||
|
||||
* md5sum.c (md5_check): Distinguish between open/read failure
|
||||
|
||||
@@ -1,4 +1,43 @@
|
||||
Changes in release 2.1
|
||||
[2.0.21]
|
||||
* split accepts new option -a or --suffix-length.
|
||||
* split no longer generates longer suffixes than requested; instead, it reports
|
||||
an error when suffixes are exhausted. POSIX requires this behavior.
|
||||
* The _POSIX2_VERSION environment variable lets you select which version
|
||||
of POSIX the utilities should conform to. Its default value is system
|
||||
dependent. Set _POSIX2_VERSION=199209 to cause the utilities to support
|
||||
obsolete usage like "sort +1".
|
||||
* The following obsolete usages are no longer supported when conforming
|
||||
to POSIX 1003.1-2001, which prohibits most digit-string options:
|
||||
expand -N (instead, use expand -t N)
|
||||
head -N (instead, use head -c N or head -n N)
|
||||
fold -N (instead, use fold -w N)
|
||||
split -N (instead, use split -l N)
|
||||
tail -N (instead, use tail -c N or tail -n N)
|
||||
unexpand -N (instead, use unexpand --first-only -t N)
|
||||
uniq -N (instead, use uniq -f N)
|
||||
The following obsolete usages (options without arguments) are no
|
||||
longer supported when conforming to POSIX 1003.1-2001, which
|
||||
prohibits most options with optional arguments:
|
||||
od -s (instead, use od --strings)
|
||||
od -w (instead, use od --width)
|
||||
pr -S (instead, use pr --sep-string)
|
||||
[2.0.20]
|
||||
* tr no longer gets failed a assertion for [==] or [::]
|
||||
* The following obsolete usages are no longer supported when conforming
|
||||
to POSIX 1003.1-2001, which prohibits most options with leading "+":
|
||||
sort +POS1 -POS2 (instead, use sort -k)
|
||||
tail +N (instead, use tail -c +N or tail -n +N)
|
||||
uniq +N (instead, use uniq -s N)
|
||||
* Warnings are issued for obsolete usages on older hosts,
|
||||
unless POSIXLY_CORRECT is set in the environment.
|
||||
* sort -m no longer segfaults when given an empty file
|
||||
* sort -S now accepts 'K' as a synonym for 'k'.
|
||||
* wc recognizes all locale-defined white-space characters, not just those
|
||||
in the "C" locale.
|
||||
[2.0.19]
|
||||
* portability tweak to make lib/regex.c compile
|
||||
* split translatable strings only in the middle of sentences
|
||||
[2.0.18]
|
||||
* sort could segfault on systems without a working mkstemp function and
|
||||
with a gettimeofday function that clobbers the static buffer that
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Makefile for program source directory in GNU NLS utilities package.
|
||||
# Copyright (C) 1995-1997, 2000, 2001 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
|
||||
# Makefile for PO directory in any package using GNU gettext.
|
||||
# Copyright (C) 1995-1997, 2000-2002 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
|
||||
#
|
||||
# This file can be copied and used freely without restrictions. It can
|
||||
# be used in projects which are not available under the GNU General Public
|
||||
@@ -11,10 +11,6 @@
|
||||
PACKAGE = @PACKAGE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
# These two variables depend on the location of this directory.
|
||||
subdir = po
|
||||
top_builddir = ..
|
||||
|
||||
SHELL = /bin/sh
|
||||
@SET_MAKE@
|
||||
|
||||
@@ -37,29 +33,48 @@ GMSGFMT = @GMSGFMT@
|
||||
MSGFMT = @MSGFMT@
|
||||
XGETTEXT = @XGETTEXT@
|
||||
MSGMERGE = msgmerge
|
||||
MSGMERGE_UPDATE = @MSGMERGE@ --update
|
||||
MSGINIT = msginit
|
||||
MSGCONV = msgconv
|
||||
MSGFILTER = msgfilter
|
||||
|
||||
POFILES = @POFILES@
|
||||
GMOFILES = @GMOFILES@
|
||||
DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
|
||||
$(POFILES) $(GMOFILES)
|
||||
UPDATEPOFILES = @UPDATEPOFILES@
|
||||
DUMMYPOFILES = @DUMMYPOFILES@
|
||||
DISTFILES.common = Makefile.in.in Makevars remove-potcdate.sin \
|
||||
$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
|
||||
DISTFILES = $(DISTFILES.common) POTFILES.in $(DOMAIN).pot \
|
||||
$(POFILES) $(GMOFILES) \
|
||||
$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
|
||||
|
||||
POTFILES = \
|
||||
|
||||
CATALOGS = @CATALOGS@
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .po .pox .gmo .mo
|
||||
# Makevars gets inserted here. (Don't remove this line!)
|
||||
|
||||
.po.pox:
|
||||
$(MAKE) $(PACKAGE).pot
|
||||
$(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update
|
||||
|
||||
.po.mo:
|
||||
$(MSGFMT) -c -o $@ $<
|
||||
$(MSGFMT) -c -o t-$@ $<
|
||||
mv t-$@ $@
|
||||
|
||||
gmsgfmt_cmd = \
|
||||
rm -f $${lang}.gmo \
|
||||
&& $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po \
|
||||
&& mv t-$${lang}.gmo $${lang}.gmo
|
||||
|
||||
.po.gmo:
|
||||
file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
|
||||
&& rm -f $$file && $(GMSGFMT) -c --statistics -o $$file $<
|
||||
@lang=`echo $* | sed -e 's,.*/,,'`; \
|
||||
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
||||
echo "$(gmsgfmt_cmd)"; \
|
||||
cd $(srcdir) && $(gmsgfmt_cmd)
|
||||
|
||||
.sin.sed:
|
||||
sed -e '/^#/d' $< > t-$@
|
||||
mv t-$@ $@
|
||||
|
||||
|
||||
all: all-@USE_NLS@
|
||||
@@ -67,17 +82,38 @@ all: all-@USE_NLS@
|
||||
all-yes: $(CATALOGS)
|
||||
all-no:
|
||||
|
||||
# Note: Target 'all' must not depend on target '$(srcdir)/$(PACKAGE).pot',
|
||||
# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
|
||||
# otherwise packages like GCC can not be built if only parts of the source
|
||||
# have been downloaded.
|
||||
|
||||
$(srcdir)/$(PACKAGE).pot: $(POTFILES) $(srcdir)/POTFILES.in
|
||||
$(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
|
||||
--add-comments --keyword=_ --keyword=N_ \
|
||||
$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
|
||||
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
|
||||
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
|
||||
--files-from=$(srcdir)/POTFILES.in \
|
||||
&& test ! -f $(PACKAGE).po \
|
||||
|| ( rm -f $(srcdir)/$(PACKAGE).pot \
|
||||
&& mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot )
|
||||
--copyright-holder='$(COPYRIGHT_HOLDER)'
|
||||
test ! -f $(DOMAIN).po || { \
|
||||
if test -f $(srcdir)/$(DOMAIN).pot; then \
|
||||
sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
|
||||
sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
|
||||
if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
|
||||
rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
|
||||
else \
|
||||
rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
|
||||
mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
|
||||
fi; \
|
||||
else \
|
||||
mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
|
||||
fi; \
|
||||
}
|
||||
|
||||
$(srcdir)/$(DOMAIN).pot:
|
||||
$(MAKE) $(DOMAIN).pot-update
|
||||
|
||||
$(POFILES): $(srcdir)/$(DOMAIN).pot
|
||||
@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
|
||||
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
||||
echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
|
||||
cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
|
||||
|
||||
|
||||
install: install-exec install-data
|
||||
@@ -85,8 +121,10 @@ install-exec:
|
||||
install-data: install-data-@USE_NLS@
|
||||
if test "$(PACKAGE)" = "gettext"; then \
|
||||
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
|
||||
$(INSTALL_DATA) $(srcdir)/Makefile.in.in \
|
||||
$(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
|
||||
for file in $(DISTFILES.common); do \
|
||||
$(INSTALL_DATA) $(srcdir)/$$file \
|
||||
$(DESTDIR)$(gettextsrcdir)/$$file; \
|
||||
done; \
|
||||
else \
|
||||
: ; \
|
||||
fi
|
||||
@@ -96,17 +134,84 @@ install-data-yes: all
|
||||
@catalogs='$(CATALOGS)'; \
|
||||
for cat in $$catalogs; do \
|
||||
cat=`basename $$cat`; \
|
||||
lang=`echo $$cat | sed 's/\.gmo$$//'`; \
|
||||
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
||||
dir=$(localedir)/$$lang/LC_MESSAGES; \
|
||||
$(mkinstalldirs) $(DESTDIR)$$dir; \
|
||||
if test -r $$cat; then \
|
||||
$(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
|
||||
echo "installing $$cat as $(DESTDIR)$$dir/$(PACKAGE).mo"; \
|
||||
else \
|
||||
$(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
|
||||
echo "installing $(srcdir)/$$cat as" \
|
||||
"$(DESTDIR)$$dir/$(PACKAGE).mo"; \
|
||||
fi; \
|
||||
if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
|
||||
$(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
|
||||
echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
|
||||
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
|
||||
if test -n "$$lc"; then \
|
||||
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
|
||||
link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
|
||||
mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
||||
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
||||
(cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
|
||||
for file in *; do \
|
||||
if test -f $$file; then \
|
||||
ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
|
||||
fi; \
|
||||
done); \
|
||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
||||
else \
|
||||
if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
|
||||
:; \
|
||||
else \
|
||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
||||
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
||||
fi; \
|
||||
fi; \
|
||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
|
||||
ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
|
||||
ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
|
||||
cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
|
||||
echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
|
||||
fi; \
|
||||
done; \
|
||||
done
|
||||
|
||||
install-strip: install
|
||||
|
||||
installdirs: installdirs-exec installdirs-data
|
||||
installdirs-exec:
|
||||
installdirs-data: installdirs-data-@USE_NLS@
|
||||
if test "$(PACKAGE)" = "gettext"; then \
|
||||
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
|
||||
else \
|
||||
: ; \
|
||||
fi
|
||||
installdirs-data-no:
|
||||
installdirs-data-yes:
|
||||
$(mkinstalldirs) $(DESTDIR)$(datadir)
|
||||
@catalogs='$(CATALOGS)'; \
|
||||
for cat in $$catalogs; do \
|
||||
cat=`basename $$cat`; \
|
||||
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
||||
dir=$(localedir)/$$lang/LC_MESSAGES; \
|
||||
$(mkinstalldirs) $(DESTDIR)$$dir; \
|
||||
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
|
||||
if test -n "$$lc"; then \
|
||||
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
|
||||
link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
|
||||
mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
||||
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
||||
(cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
|
||||
for file in *; do \
|
||||
if test -f $$file; then \
|
||||
ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
|
||||
fi; \
|
||||
done); \
|
||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
|
||||
else \
|
||||
if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
|
||||
:; \
|
||||
else \
|
||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
||||
mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
|
||||
fi; \
|
||||
fi; \
|
||||
fi; \
|
||||
done; \
|
||||
done
|
||||
|
||||
# Define this as empty until I found a useful application.
|
||||
@@ -116,7 +221,9 @@ uninstall: uninstall-exec uninstall-data
|
||||
uninstall-exec:
|
||||
uninstall-data: uninstall-data-@USE_NLS@
|
||||
if test "$(PACKAGE)" = "gettext"; then \
|
||||
rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
|
||||
for file in $(DISTFILES.common); do \
|
||||
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
|
||||
done; \
|
||||
else \
|
||||
: ; \
|
||||
fi
|
||||
@@ -125,8 +232,10 @@ uninstall-data-yes:
|
||||
catalogs='$(CATALOGS)'; \
|
||||
for cat in $$catalogs; do \
|
||||
cat=`basename $$cat`; \
|
||||
lang=`echo $$cat | sed 's/\.gmo$$//'`; \
|
||||
rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \
|
||||
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
||||
for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
|
||||
rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
|
||||
done; \
|
||||
done
|
||||
|
||||
check: all
|
||||
@@ -134,7 +243,8 @@ check: all
|
||||
dvi info tags TAGS ID:
|
||||
|
||||
mostlyclean:
|
||||
rm -f core core.* *.pox $(PACKAGE).po *.new.po
|
||||
rm -f remove-potcdate.sed
|
||||
rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
|
||||
rm -fr *.o
|
||||
|
||||
clean: mostlyclean
|
||||
@@ -154,29 +264,49 @@ dist distdir:
|
||||
# This is a separate target because 'update-po' must be executed before.
|
||||
dist2: $(DISTFILES)
|
||||
dists="$(DISTFILES)"; \
|
||||
if test -f $(srcdir)/ChangeLog; then dists="$$dists ChangeLog"; fi; \
|
||||
if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
|
||||
for file in $$dists; do \
|
||||
if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
|
||||
cp -p $$dir/$$file $(distdir); \
|
||||
if test -f $$file; then \
|
||||
cp -p $$file $(distdir); \
|
||||
else \
|
||||
cp -p $(srcdir)/$$file $(distdir); \
|
||||
fi; \
|
||||
done
|
||||
|
||||
update-po: Makefile
|
||||
$(MAKE) $(PACKAGE).pot
|
||||
if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \
|
||||
cd $(srcdir); \
|
||||
catalogs='$(GMOFILES)'; \
|
||||
for cat in $$catalogs; do \
|
||||
cat=`basename $$cat`; \
|
||||
lang=`echo $$cat | sed 's/\.gmo$$//'`; \
|
||||
echo "$$lang:"; \
|
||||
if $(MSGMERGE) $$lang.po $(PACKAGE).pot -o $$lang.new.po; then \
|
||||
mv -f $$lang.new.po $$lang.po; \
|
||||
else \
|
||||
echo "msgmerge for $$cat failed!"; \
|
||||
rm -f $$lang.new.po; \
|
||||
fi; \
|
||||
done
|
||||
$(MAKE) $(DOMAIN).pot-update
|
||||
$(MAKE) $(UPDATEPOFILES)
|
||||
$(MAKE) update-gmo
|
||||
|
||||
# General rule for updating PO files.
|
||||
|
||||
.nop.po-update:
|
||||
@lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
|
||||
if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \
|
||||
tmpdir=`pwd`; \
|
||||
echo "$$lang:"; \
|
||||
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
||||
echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
|
||||
cd $(srcdir); \
|
||||
if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
|
||||
if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
|
||||
rm -f $$tmpdir/$$lang.new.po; \
|
||||
else \
|
||||
if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
|
||||
:; \
|
||||
else \
|
||||
echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
fi; \
|
||||
else \
|
||||
echo "msgmerge for $$lang.po failed!" 1>&2; \
|
||||
rm -f $$tmpdir/$$lang.new.po; \
|
||||
fi
|
||||
|
||||
$(DUMMYPOFILES):
|
||||
|
||||
update-gmo: Makefile $(GMOFILES)
|
||||
@:
|
||||
|
||||
@@ -185,6 +315,8 @@ Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in
|
||||
&& CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
|
||||
$(SHELL) ./config.status
|
||||
|
||||
force:
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make not to export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
||||
42
po/Rules-quot
Normal file
42
po/Rules-quot
Normal file
@@ -0,0 +1,42 @@
|
||||
# Special Makefile rules for English message catalogs with quotation marks.
|
||||
|
||||
DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
|
||||
|
||||
.SUFFIXES: .insert-header .po-update-en
|
||||
|
||||
en@quot.po-update: en@quot.po-update-en
|
||||
en@boldquot.po-update: en@boldquot.po-update-en
|
||||
|
||||
.insert-header.po-update-en:
|
||||
@lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
|
||||
if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
|
||||
tmpdir=`pwd`; \
|
||||
echo "$$lang:"; \
|
||||
ll=`echo $$lang | sed -e 's/@.*//'`; \
|
||||
LC_ALL=C; export LC_ALL; \
|
||||
cd $(srcdir); \
|
||||
if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
|
||||
if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
|
||||
rm -f $$tmpdir/$$lang.new.po; \
|
||||
else \
|
||||
if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
|
||||
:; \
|
||||
else \
|
||||
echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
fi; \
|
||||
else \
|
||||
echo "creation of $$lang.po failed!" 1>&2; \
|
||||
rm -f $$tmpdir/$$lang.new.po; \
|
||||
fi
|
||||
|
||||
en@quot.insert-header: insert-header.sin
|
||||
sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header
|
||||
|
||||
en@boldquot.insert-header: insert-header.sin
|
||||
sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header
|
||||
|
||||
mostlyclean: mostlyclean-quot
|
||||
mostlyclean-quot:
|
||||
rm -f *.insert-header
|
||||
10
po/boldquot.sed
Normal file
10
po/boldquot.sed
Normal file
@@ -0,0 +1,10 @@
|
||||
s/"\([^"]*\)"/“\1”/g
|
||||
s/`\([^`']*\)'/‘\1’/g
|
||||
s/ '\([^`']*\)' / ‘\1’ /g
|
||||
s/ '\([^`']*\)'$/ ‘\1’/g
|
||||
s/^'\([^`']*\)' /‘\1’ /g
|
||||
s/“”/""/g
|
||||
s/“/“[1m/g
|
||||
s/”/[0m”/g
|
||||
s/‘/‘[1m/g
|
||||
s/’/[0m’/g
|
||||
25
po/en@boldquot.header
Normal file
25
po/en@boldquot.header
Normal file
@@ -0,0 +1,25 @@
|
||||
# All this catalog "translates" are quotation characters.
|
||||
# The msgids must be ASCII and therefore cannot contain real quotation
|
||||
# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
|
||||
# and double quote (0x22). These substitutes look strange; see
|
||||
# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
|
||||
#
|
||||
# This catalog translates grave accent (0x60) and apostrophe (0x27) to
|
||||
# left single quotation mark (U+2018) and right single quotation mark (U+2019).
|
||||
# It also translates pairs of apostrophe (0x27) to
|
||||
# left single quotation mark (U+2018) and right single quotation mark (U+2019)
|
||||
# and pairs of quotation mark (0x22) to
|
||||
# left double quotation mark (U+201C) and right double quotation mark (U+201D).
|
||||
#
|
||||
# When output to an UTF-8 terminal, the quotation characters appear perfectly.
|
||||
# When output to an ISO-8859-1 terminal, the single quotation marks are
|
||||
# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
|
||||
# grave/acute accent (by libiconv), and the double quotation marks are
|
||||
# transliterated to 0x22.
|
||||
# When output to an ASCII terminal, the single quotation marks are
|
||||
# transliterated to apostrophes, and the double quotation marks are
|
||||
# transliterated to 0x22.
|
||||
#
|
||||
# This catalog furthermore displays the text between the quotation marks in
|
||||
# bold face, assuming the VT100/XTerm escape sequences.
|
||||
#
|
||||
22
po/en@quot.header
Normal file
22
po/en@quot.header
Normal file
@@ -0,0 +1,22 @@
|
||||
# All this catalog "translates" are quotation characters.
|
||||
# The msgids must be ASCII and therefore cannot contain real quotation
|
||||
# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
|
||||
# and double quote (0x22). These substitutes look strange; see
|
||||
# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
|
||||
#
|
||||
# This catalog translates grave accent (0x60) and apostrophe (0x27) to
|
||||
# left single quotation mark (U+2018) and right single quotation mark (U+2019).
|
||||
# It also translates pairs of apostrophe (0x27) to
|
||||
# left single quotation mark (U+2018) and right single quotation mark (U+2019)
|
||||
# and pairs of quotation mark (0x22) to
|
||||
# left double quotation mark (U+201C) and right double quotation mark (U+201D).
|
||||
#
|
||||
# When output to an UTF-8 terminal, the quotation characters appear perfectly.
|
||||
# When output to an ISO-8859-1 terminal, the single quotation marks are
|
||||
# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
|
||||
# grave/acute accent (by libiconv), and the double quotation marks are
|
||||
# transliterated to 0x22.
|
||||
# When output to an ASCII terminal, the single quotation marks are
|
||||
# transliterated to apostrophes, and the double quotation marks are
|
||||
# transliterated to 0x22.
|
||||
#
|
||||
23
po/insert-header.sin
Normal file
23
po/insert-header.sin
Normal file
@@ -0,0 +1,23 @@
|
||||
# Sed script that inserts the file called HEADER before the header entry.
|
||||
#
|
||||
# At each occurrence of a line starting with "msgid ", we execute the following
|
||||
# commands. At the first occurrence, insert the file. At the following
|
||||
# occurrences, do nothing. The distinction between the first and the following
|
||||
# occurrences is achieved by looking at the hold space.
|
||||
/^msgid /{
|
||||
x
|
||||
# Test if the hold space is empty.
|
||||
s/m/m/
|
||||
ta
|
||||
# Yes it was empty. First occurrence. Read the file.
|
||||
r HEADER
|
||||
# Output the file's contents by reading the next line. But don't lose the
|
||||
# current line while doing this.
|
||||
g
|
||||
N
|
||||
bb
|
||||
:a
|
||||
# The hold space was nonempty. Following occurrences. Do nothing.
|
||||
x
|
||||
:b
|
||||
}
|
||||
6
po/quot.sed
Normal file
6
po/quot.sed
Normal file
@@ -0,0 +1,6 @@
|
||||
s/"\([^"]*\)"/“\1”/g
|
||||
s/`\([^`']*\)'/‘\1’/g
|
||||
s/ '\([^`']*\)' / ‘\1’ /g
|
||||
s/ '\([^`']*\)'$/ ‘\1’/g
|
||||
s/^'\([^`']*\)' /‘\1’ /g
|
||||
s/“”/""/g
|
||||
19
po/remove-potcdate.sin
Normal file
19
po/remove-potcdate.sin
Normal file
@@ -0,0 +1,19 @@
|
||||
# Sed script that remove the POT-Creation-Date line in the header entry
|
||||
# from a POT file.
|
||||
#
|
||||
# The distinction between the first and the following occurrences of the
|
||||
# pattern is achieved by looking at the hold space.
|
||||
/^"POT-Creation-Date: .*"$/{
|
||||
x
|
||||
# Test if the hold space is empty.
|
||||
s/P/P/
|
||||
ta
|
||||
# Yes it was empty. First occurrence. Remove the line.
|
||||
g
|
||||
d
|
||||
bb
|
||||
:a
|
||||
# The hold space was nonempty. Following occurrences. Do nothing.
|
||||
x
|
||||
:b
|
||||
}
|
||||
@@ -56,13 +56,13 @@ Usage: %s NAME [SUFFIX]\n\
|
||||
or: %s OPTION\n\
|
||||
"),
|
||||
program_name, program_name);
|
||||
printf (_("\
|
||||
fputs (_("\
|
||||
Print NAME with any leading directory components removed.\n\
|
||||
If specified, also remove a trailing SUFFIX.\n\
|
||||
\n\
|
||||
--help display this help and exit\n\
|
||||
--version output version information and exit\n\
|
||||
"));
|
||||
"), stdout);
|
||||
fputs (HELP_OPTION_DESCRIPTION, stdout);
|
||||
fputs (VERSION_OPTION_DESCRIPTION, stdout);
|
||||
puts (_("\nReport bugs to <bug-sh-utils@gnu.org>."));
|
||||
}
|
||||
exit (status);
|
||||
|
||||
34
src/cat.c
34
src/cat.c
@@ -1,5 +1,5 @@
|
||||
/* cat -- concatenate files and print on the standard output.
|
||||
Copyright (C) 88, 90, 91, 1995-2001 Free Software Foundation, Inc.
|
||||
Copyright (C) 88, 90, 91, 1995-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
|
||||
@@ -152,7 +152,7 @@ next_line_num (void)
|
||||
static void
|
||||
simple_cat (
|
||||
/* Pointer to the buffer, used by reads and writes. */
|
||||
unsigned char *buf,
|
||||
char *buf,
|
||||
|
||||
/* Number of characters preferably read or written by each read and write
|
||||
call. */
|
||||
@@ -196,13 +196,13 @@ simple_cat (
|
||||
static void
|
||||
cat (
|
||||
/* Pointer to the beginning of the input buffer. */
|
||||
unsigned char *inbuf,
|
||||
char *inbuf,
|
||||
|
||||
/* Number of characters read in each read call. */
|
||||
int insize,
|
||||
|
||||
/* Pointer to the beginning of the output buffer. */
|
||||
unsigned char *outbuf,
|
||||
char *outbuf,
|
||||
|
||||
/* Number of characters written by each write call. */
|
||||
int outsize,
|
||||
@@ -219,14 +219,14 @@ cat (
|
||||
unsigned char ch;
|
||||
|
||||
/* Pointer to the next character in the input buffer. */
|
||||
unsigned char *bpin;
|
||||
char *bpin;
|
||||
|
||||
/* Pointer to the first non-valid byte in the input buffer, i.e. the
|
||||
current end of the buffer. */
|
||||
unsigned char *eob;
|
||||
char *eob;
|
||||
|
||||
/* Pointer to the position where the next character shall be written. */
|
||||
unsigned char *bpout;
|
||||
char *bpout;
|
||||
|
||||
/* Number of characters read by the last read call. */
|
||||
ssize_t n_read;
|
||||
@@ -260,7 +260,7 @@ cat (
|
||||
|
||||
if (bpout - outbuf >= outsize)
|
||||
{
|
||||
unsigned char *wp = outbuf;
|
||||
char *wp = outbuf;
|
||||
do
|
||||
{
|
||||
if (full_write (STDOUT_FILENO, wp, outsize) != outsize)
|
||||
@@ -314,7 +314,7 @@ cat (
|
||||
if (n_to_read == 0)
|
||||
#endif
|
||||
{
|
||||
int n_write = bpout - outbuf;
|
||||
size_t n_write = bpout - outbuf;
|
||||
|
||||
if (full_write (STDOUT_FILENO, outbuf, n_write) != n_write)
|
||||
error (EXIT_FAILURE, errno, _("write error"));
|
||||
@@ -375,8 +375,7 @@ cat (
|
||||
if (numbers && numbers_at_empty_lines)
|
||||
{
|
||||
next_line_num ();
|
||||
bpout = (unsigned char *) stpcpy ((char *) bpout,
|
||||
line_num_print);
|
||||
bpout = stpcpy (bpout, line_num_print);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -398,7 +397,7 @@ cat (
|
||||
if (newlines >= 0 && numbers)
|
||||
{
|
||||
next_line_num ();
|
||||
bpout = (unsigned char *) stpcpy ((char *) bpout, line_num_print);
|
||||
bpout = stpcpy (bpout, line_num_print);
|
||||
}
|
||||
|
||||
/* Here CH cannot contain a newline character. */
|
||||
@@ -493,10 +492,10 @@ main (int argc, char **argv)
|
||||
int insize;
|
||||
|
||||
/* Pointer to the input buffer. */
|
||||
unsigned char *inbuf;
|
||||
char *inbuf;
|
||||
|
||||
/* Pointer to the output buffer. */
|
||||
unsigned char *outbuf;
|
||||
char *outbuf;
|
||||
|
||||
int c;
|
||||
|
||||
@@ -788,13 +787,13 @@ main (int argc, char **argv)
|
||||
if (options == 0)
|
||||
{
|
||||
insize = max (insize, outsize);
|
||||
inbuf = (unsigned char *) xmalloc (insize);
|
||||
inbuf = xmalloc (insize);
|
||||
|
||||
simple_cat (inbuf, insize);
|
||||
}
|
||||
else
|
||||
{
|
||||
inbuf = (unsigned char *) xmalloc (insize + 1);
|
||||
inbuf = xmalloc (insize + 1);
|
||||
|
||||
/* Why are (OUTSIZE - 1 + INSIZE * 4 + LINE_COUNTER_BUF_LEN)
|
||||
bytes allocated for the output buffer?
|
||||
@@ -813,8 +812,7 @@ main (int argc, char **argv)
|
||||
A line number requires seldom more than LINE_COUNTER_BUF_LEN
|
||||
positions. */
|
||||
|
||||
outbuf = (unsigned char *) xmalloc (outsize - 1 + insize * 4
|
||||
+ LINE_COUNTER_BUF_LEN);
|
||||
outbuf = xmalloc (outsize - 1 + insize * 4 + LINE_COUNTER_BUF_LEN);
|
||||
|
||||
cat (inbuf, insize, outbuf, outsize, quote,
|
||||
output_tabs, numbers, numbers_at_empty_lines, mark_line_ends,
|
||||
|
||||
@@ -215,7 +215,8 @@ main (int argc, char **argv)
|
||||
{
|
||||
struct stat ref_stats;
|
||||
if (stat (reference_file, &ref_stats))
|
||||
error (1, errno, _("getting attributes of %s"), quote (reference_file));
|
||||
error (1, errno, _("failed to get attributes of %s"),
|
||||
quote (reference_file));
|
||||
|
||||
chopt.group_name = gid_to_name (ref_stats.st_gid);
|
||||
gid = ref_stats.st_gid;
|
||||
|
||||
@@ -155,7 +155,7 @@ change_file_mode (const char *file, const struct mode_change *changes,
|
||||
if (deref_symlink ? stat (file, &file_stats) : lstat (file, &file_stats))
|
||||
{
|
||||
if (force_silent == 0)
|
||||
error (0, errno, _("getting attributes of %s"), quote (file));
|
||||
error (0, errno, _("failed to get attributes of %s"), quote (file));
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -362,7 +362,8 @@ main (int argc, char **argv)
|
||||
else if (changes == MODE_MEMORY_EXHAUSTED)
|
||||
xalloc_die ();
|
||||
else if (changes == MODE_BAD_REFERENCE)
|
||||
error (1, errno, _("getting attributes of %s"), quote (reference_file));
|
||||
error (1, errno, _("failed to get attributes of %s"),
|
||||
quote (reference_file));
|
||||
|
||||
for (; optind < argc; ++optind)
|
||||
errors |= change_file_mode (argv[optind], changes, 1);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* chown-core.c -- core functions for changing ownership.
|
||||
Copyright (C) 2000 Free Software Foundation.
|
||||
Copyright (C) 2000, 2002 Free Software Foundation.
|
||||
|
||||
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
|
||||
@@ -29,7 +29,6 @@
|
||||
#include "quote.h"
|
||||
#include "savedir.h"
|
||||
#include "chown-core.h"
|
||||
#include "xalloc.h"
|
||||
|
||||
/* The number of decimal digits required to represent the largest value of
|
||||
type `unsigned int'. This is enough for an 8-byte unsigned int type. */
|
||||
@@ -233,7 +232,7 @@ change_file_owner (int cmdline_arg, const char *file, uid_t uid, gid_t gid,
|
||||
if (lstat (file, &file_stats))
|
||||
{
|
||||
if (chopt->force_silent == 0)
|
||||
error (0, errno, _("getting attributes of %s"), quote (file));
|
||||
error (0, errno, _("failed to get attributes of %s"), quote (file));
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -245,7 +244,7 @@ change_file_owner (int cmdline_arg, const char *file, uid_t uid, gid_t gid,
|
||||
&& stat (file, &file_stats))
|
||||
{
|
||||
if (chopt->force_silent == 0)
|
||||
error (0, errno, _("getting attributes of %s"), quote (file));
|
||||
error (0, errno, _("failed to get attributes of %s"), quote (file));
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -217,7 +217,8 @@ main (int argc, char **argv)
|
||||
struct stat ref_stats;
|
||||
|
||||
if (stat (reference_file, &ref_stats))
|
||||
error (1, errno, _("getting attributes of %s"), quote (reference_file));
|
||||
error (1, errno, _("failed to get attributes of %s"),
|
||||
quote (reference_file));
|
||||
|
||||
uid = ref_stats.st_uid;
|
||||
gid = ref_stats.st_gid;
|
||||
|
||||
12
src/chroot.c
12
src/chroot.c
@@ -1,5 +1,5 @@
|
||||
/* chroot -- run command or shell with special root directory
|
||||
Copyright (C) 95, 96, 1997, 1999, 2000 Free Software Foundation, Inc.
|
||||
Copyright (C) 95, 96, 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
|
||||
@@ -46,14 +46,16 @@ usage (int status)
|
||||
Usage: %s NEWROOT [COMMAND...]\n\
|
||||
or: %s OPTION\n\
|
||||
"), program_name, program_name);
|
||||
printf (_("\
|
||||
fputs (_("\
|
||||
Run COMMAND with root directory set to NEWROOT.\n\
|
||||
\n\
|
||||
--help display this help and exit\n\
|
||||
--version output version information and exit\n\
|
||||
"), stdout);
|
||||
fputs (HELP_OPTION_DESCRIPTION, stdout);
|
||||
fputs (VERSION_OPTION_DESCRIPTION, stdout);
|
||||
fputs (_("\
|
||||
\n\
|
||||
If no command is given, run ``${SHELL} -i'' (default: /bin/sh).\n\
|
||||
"));
|
||||
"), stdout);
|
||||
puts (_("\nReport bugs to <bug-sh-utils@gnu.org>."));
|
||||
}
|
||||
exit (status);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* cksum -- calculate and print POSIX.2 checksums and sizes of files
|
||||
Copyright (C) 92, 1995-2001 Free Software Foundation, Inc.
|
||||
/* cksum -- calculate and print POSIX checksums and sizes of files
|
||||
Copyright (C) 92, 1995-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
|
||||
|
||||
12
src/comm.c
12
src/comm.c
@@ -1,5 +1,5 @@
|
||||
/* comm -- compare two sorted files line by line.
|
||||
Copyright (C) 86, 90, 91, 1995-2001 Free Software Foundation, Inc.
|
||||
Copyright (C) 86, 90, 91, 1995-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
|
||||
@@ -27,7 +27,7 @@
|
||||
#include "linebuffer.h"
|
||||
#include "error.h"
|
||||
#include "hard-locale.h"
|
||||
#include "memcoll.h"
|
||||
#include "xmemcoll.h"
|
||||
|
||||
/* The official name of this program (e.g., no `g' prefix). */
|
||||
#define PROGRAM_NAME "comm"
|
||||
@@ -178,15 +178,17 @@ compare_files (char **infiles)
|
||||
{
|
||||
#ifdef ENABLE_NLS
|
||||
if (hard_LC_COLLATE)
|
||||
order = memcoll (thisline[0]->buffer, thisline[0]->length - 1,
|
||||
thisline[1]->buffer, thisline[1]->length - 1);
|
||||
order = xmemcoll (thisline[0]->buffer, thisline[0]->length - 1,
|
||||
thisline[1]->buffer, thisline[1]->length - 1);
|
||||
else
|
||||
#endif
|
||||
{
|
||||
size_t len = min (thisline[0]->length, thisline[1]->length) - 1;
|
||||
order = memcmp (thisline[0]->buffer, thisline[1]->buffer, len);
|
||||
if (order == 0)
|
||||
order = thisline[0]->length - thisline[1]->length;
|
||||
order = (thisline[0]->length < thisline[1]->length
|
||||
? -1
|
||||
: thisline[0]->length != thisline[1]->length);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user