mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-08-13 12:45:14 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6a4ca91b73 | ||
|
|
f02ecea550 | ||
|
|
5bc2230d3c | ||
|
|
a0a0185e9a | ||
|
|
679eba1067 | ||
|
|
0e96bb2121 | ||
|
|
3c9127d55c | ||
|
|
67d5db69e7 | ||
|
|
a15f4278a3 | ||
|
|
f3b206a9a6 | ||
|
|
b12d2b3054 | ||
|
|
f4b4269b3b | ||
|
|
2185ba74ba | ||
|
|
ec178c6427 | ||
|
|
70bcf94ae8 | ||
|
|
41ee433e39 | ||
|
|
9bd1a920de | ||
|
|
334414e7f8 | ||
|
|
7bbd91208c | ||
|
|
078493afa4 | ||
|
|
897c1dd9a9 | ||
|
|
a6624adaee | ||
|
|
8afe2396ab | ||
|
|
d7be63a140 | ||
|
|
b8fae6b493 | ||
|
|
0d240c12ba | ||
|
|
eda67e575d | ||
|
|
b286091ee2 | ||
|
|
83eda11059 | ||
|
|
d0f19d6f43 | ||
|
|
f443a1eb89 | ||
|
|
4eeb7bc9a2 | ||
|
|
5d08b24fba | ||
|
|
3af141b0e3 | ||
|
|
bae3c8d209 | ||
|
|
6f8dd2075e | ||
|
|
5327d634b3 | ||
|
|
3491db2e44 | ||
|
|
9fef6a2a0b | ||
|
|
fe24ffa45a | ||
|
|
28f490e38d | ||
|
|
48dccdf81a | ||
|
|
039e51a37c | ||
|
|
20b9de21c7 | ||
|
|
26ae304aa6 | ||
|
|
2d0bf7bdd5 | ||
|
|
e1fe241dc8 | ||
|
|
e334b4a99b | ||
|
|
1bb14a172a | ||
|
|
cc20bc3166 | ||
|
|
9cbe3c4878 | ||
|
|
d961d172be | ||
|
|
dbbe1eb433 | ||
|
|
0e25677ee2 | ||
|
|
e89a22bfab | ||
|
|
f5c0dc4880 | ||
|
|
7307a21a45 | ||
|
|
63f7fb275a | ||
|
|
4f55c2577d | ||
|
|
62a21d52ce | ||
|
|
27fb1c24b7 | ||
|
|
281a98c77a | ||
|
|
83ce390155 | ||
|
|
c96ef8e0b9 | ||
|
|
501cc96c68 | ||
|
|
a69417c066 | ||
|
|
d138fdbf19 | ||
|
|
9326268a46 | ||
|
|
88964d04d9 | ||
|
|
e803581008 | ||
|
|
015af8c168 | ||
|
|
3a48f72d7e | ||
|
|
3e0f96bc08 | ||
|
|
ef1a77c2c9 | ||
|
|
2842171a4c | ||
|
|
64fa1ea1b8 | ||
|
|
7700a71572 | ||
|
|
7baed3bf89 | ||
|
|
1710ea3d30 | ||
|
|
12de352a6f | ||
|
|
6fc75bfd3a | ||
|
|
96df91407c | ||
|
|
b30efba0d0 | ||
|
|
fd2d280114 | ||
|
|
68e202f30f | ||
|
|
d7848b138c | ||
|
|
40c6b975e9 | ||
|
|
a5fb3dead0 | ||
|
|
ac5ff6a908 | ||
|
|
0b1cb33137 | ||
|
|
9f3c97f74f | ||
|
|
a99566be67 | ||
|
|
ca66b45a86 | ||
|
|
55601256c2 | ||
|
|
43cc2463d2 | ||
|
|
25a46077de | ||
|
|
62d3162c4c | ||
|
|
3f2f7848cc | ||
|
|
c4267a3d35 | ||
|
|
ae774286e8 | ||
|
|
43f8a3245a | ||
|
|
a22d7bd8d6 | ||
|
|
f36280e16e | ||
|
|
38612b10a3 | ||
|
|
ffc03584ad | ||
|
|
dd3c3f3006 | ||
|
|
f1d93aa21c | ||
|
|
a4f0747a2a | ||
|
|
ca69f83c53 | ||
|
|
b06c1dfb75 | ||
|
|
7525f95ed5 | ||
|
|
1daed0de8a | ||
|
|
32e175835b | ||
|
|
ea04a14c5c | ||
|
|
d6b12c2d8b | ||
|
|
f4ffa313a2 | ||
|
|
1214dfb03b | ||
|
|
55b4181996 | ||
|
|
12a04365ce | ||
|
|
6929a4a0e8 | ||
|
|
07cccc8bc6 | ||
|
|
36791b5576 | ||
|
|
dba44a1367 | ||
|
|
d4593e87be | ||
|
|
6b1ec1fb33 | ||
|
|
bfb74f79b8 | ||
|
|
c520f816b1 | ||
|
|
cc6ed5f7f1 | ||
|
|
ac28f67c0b | ||
|
|
f30e1ab65c | ||
|
|
52e9776027 | ||
|
|
21292982fe | ||
|
|
9f0938ad32 | ||
|
|
cb948818d0 | ||
|
|
c0760f18e0 | ||
|
|
c884affb0b | ||
|
|
f7e7f57941 | ||
|
|
d1210d1d6e | ||
|
|
d5c2eff246 | ||
|
|
b59b91bb6e | ||
|
|
63e75f2e38 | ||
|
|
69dc1147ba | ||
|
|
3d9d5d34ff | ||
|
|
701d80ffa0 | ||
|
|
88f06d2beb | ||
|
|
daa938e7f0 | ||
|
|
ed45e93ed8 | ||
|
|
74d757ab92 | ||
|
|
4be25f1591 | ||
|
|
b7008317cf | ||
|
|
3f66ed1c8b | ||
|
|
58dce15432 | ||
|
|
e6970f2ed0 | ||
|
|
b9866ce4da | ||
|
|
b32ba448c8 | ||
|
|
5844cd0cfa | ||
|
|
0fc1a97d9f | ||
|
|
84b6f48351 | ||
|
|
b6a70d99a6 | ||
|
|
66d35de779 | ||
|
|
5e5b240715 | ||
|
|
aaf7be2c4b | ||
|
|
0ea80316a9 | ||
|
|
09b2117db7 | ||
|
|
78fc5ce865 | ||
|
|
766ffc1523 | ||
|
|
06a2f464b1 | ||
|
|
15ab9127f5 | ||
|
|
32f18df511 | ||
|
|
19f8d30b9c | ||
|
|
7b106ce5f0 | ||
|
|
b5c15946a1 | ||
|
|
980929ba0b | ||
|
|
4c3791f08d | ||
|
|
a8355549a5 | ||
|
|
2883204382 | ||
|
|
825b9e4ef4 | ||
|
|
57339f0421 | ||
|
|
963c0cf62f | ||
|
|
6a1e01f060 | ||
|
|
4cecb5a248 | ||
|
|
76c97f6a39 | ||
|
|
e4ef7aa1c9 | ||
|
|
3557477440 | ||
|
|
4b412c9eca | ||
|
|
fa7f94f217 | ||
|
|
d854cc9e5a | ||
|
|
2dfb4daf9b | ||
|
|
cc904af579 | ||
|
|
716c50b877 | ||
|
|
9f41bcaae8 | ||
|
|
1ccbf4bb8b | ||
|
|
a69f6fa569 | ||
|
|
3757d84e90 | ||
|
|
cac4f75e15 | ||
|
|
fc7ddd2818 | ||
|
|
0ffdf37212 | ||
|
|
9e55edfc29 | ||
|
|
d39a6b7ca9 | ||
|
|
d287d66a69 | ||
|
|
ea451a17d7 | ||
|
|
24b1e65f04 | ||
|
|
7ad28769d6 | ||
|
|
57d4ee2b82 | ||
|
|
d8a9ec00b8 | ||
|
|
872e1b86c4 | ||
|
|
ad4c2c7a57 | ||
|
|
0785dec2c8 | ||
|
|
e1828f4f07 | ||
|
|
a816bf3eac | ||
|
|
2ce6476804 | ||
|
|
457b6d1e72 | ||
|
|
79ebbdb36a | ||
|
|
0aa2ac9063 | ||
|
|
e7d79012ae | ||
|
|
eb4a4d73bc | ||
|
|
dee96b5a07 | ||
|
|
4bfeeafb00 | ||
|
|
c18cf8cb26 | ||
|
|
54b982ae70 | ||
|
|
cf2e198269 | ||
|
|
af4483a0ab | ||
|
|
674fd9acbc | ||
|
|
6fedd4d1d6 | ||
|
|
abe1baa044 | ||
|
|
33285af04d | ||
|
|
cd7f95831e | ||
|
|
1b9a8440cd | ||
|
|
aead559e00 | ||
|
|
92b69b7f09 | ||
|
|
6e303f08d6 | ||
|
|
3dfc01e247 | ||
|
|
1503820f54 | ||
|
|
bc9bb28004 | ||
|
|
16c4a35041 | ||
|
|
f0451dba71 | ||
|
|
a9f37dee0c | ||
|
|
4b0979fcf3 | ||
|
|
cc35239e1b | ||
|
|
2e2cbb3fad | ||
|
|
adb4edee47 | ||
|
|
65490badba | ||
|
|
8b044b8540 | ||
|
|
0704bc9b8e | ||
|
|
2b7c2ef124 | ||
|
|
48e38d301e | ||
|
|
560757768c | ||
|
|
238b8134ec | ||
|
|
483642486d | ||
|
|
146ad4c8d0 | ||
|
|
f2a4c94506 | ||
|
|
65fae038b9 | ||
|
|
e1cb5fb523 | ||
|
|
64fabbb49f | ||
|
|
3b2925a060 | ||
|
|
83bcf86639 | ||
|
|
8639df64a6 | ||
|
|
377bd7c9a2 | ||
|
|
b4a7a230f1 | ||
|
|
c1586e58fe | ||
|
|
50766eee39 | ||
|
|
dc3b81cd67 | ||
|
|
c555896775 | ||
|
|
35f61cb998 | ||
|
|
9291f914de | ||
|
|
ff1581dddb | ||
|
|
4b9170b2c0 | ||
|
|
523a9eafdc | ||
|
|
bcdf932ed9 | ||
|
|
e2aabb3dc6 | ||
|
|
e8ebe4b0c7 | ||
|
|
9043475828 | ||
|
|
d80a86e0b5 | ||
|
|
cfc3acf242 | ||
|
|
93337ac41c | ||
|
|
0d7803637b | ||
|
|
a62c863ec3 | ||
|
|
1e883de90c | ||
|
|
efcff8cd5c | ||
|
|
3e85a00236 | ||
|
|
f85c981ac1 | ||
|
|
5cb10dae3c | ||
|
|
26e1ca45ba | ||
|
|
8888e43b2c | ||
|
|
d9ca2df2aa | ||
|
|
e8def3ff6e | ||
|
|
76e734e5ed | ||
|
|
b8b4a730a0 | ||
|
|
b9d2d2a881 | ||
|
|
78986eff74 | ||
|
|
1393a78454 | ||
|
|
de11686376 | ||
|
|
badfc69c26 | ||
|
|
fb28699f95 | ||
|
|
6b307af66c | ||
|
|
dad56b10d3 | ||
|
|
5f1ff7cd74 | ||
|
|
b6cac93afa | ||
|
|
86d5a1ed5c | ||
|
|
97e9ee3ad5 | ||
|
|
d81e5db73f | ||
|
|
029806c785 | ||
|
|
a2874a4e5d | ||
|
|
d54387b4bc | ||
|
|
a4c22fa4bf | ||
|
|
0d214b93b0 | ||
|
|
3c5d71ca8b | ||
|
|
d61c57b70c | ||
|
|
ea57e0a3c4 | ||
|
|
57c429f305 | ||
|
|
239e5c1a9a | ||
|
|
ae9b5e5a4f | ||
|
|
7ae1c5929e | ||
|
|
1d708336d4 | ||
|
|
705131d1de | ||
|
|
5c2a5a8970 | ||
|
|
6b784f8552 | ||
|
|
32a1edfccd |
@@ -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
|
example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
|
||||||
country code serves to distinguish the dialects.
|
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
|
Not all programs have translations for all languages. By default, an
|
||||||
English message is shown in place of a nonexistent translation. If you
|
English message is shown in place of a nonexistent translation. If you
|
||||||
understand other languages, you can set up a priority list of languages.
|
understand other languages, you can set up a priority list of languages.
|
||||||
@@ -164,128 +171,193 @@ Available Packages
|
|||||||
==================
|
==================
|
||||||
|
|
||||||
Languages are not equally supported in all packages. The following
|
Languages are not equally supported in all packages. The following
|
||||||
matrix shows the current state of internationalization, as of September
|
matrix shows the current state of internationalization, as of March
|
||||||
2001. The matrix shows, in regard of each package, for which languages
|
2002. The matrix shows, in regard of each package, for which languages
|
||||||
PO files have been submitted to translation coordination, with a
|
PO files have been submitted to translation coordination, with a
|
||||||
translation percentage of at least 50%.
|
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
|
Ready PO files bg ca cs da de el en eo es et fi fr
|
||||||
+----------------------------------------------------+
|
+-------------------------------------+
|
||||||
a2ps | [] [] [] |
|
a2ps | [] [] [] [] |
|
||||||
bash | [] [] [] [] |
|
bash | [] [] [] [] |
|
||||||
bfd | |
|
bfd | [] [] |
|
||||||
binutils | [] |
|
binutils | [] [] |
|
||||||
bison | [] [] [] [] [] |
|
bison | [] [] [] |
|
||||||
clisp | [] [] [] [] |
|
clisp | [] [] [] [] |
|
||||||
cpio | [] [] [] [] [] |
|
cpio | [] [] [] [] |
|
||||||
diffutils | [] [] [] [] [] [] [] |
|
diffutils | [] [] [] [] [] [] |
|
||||||
enscript | [] [] |
|
enscript | [] [] |
|
||||||
error | [] [] |
|
error | [] [] |
|
||||||
fetchmail | |
|
fetchmail | () [] [] [] () |
|
||||||
fileutils | [] [] [] [] [] [] [] [] |
|
fileutils | [] [] [] [] [] |
|
||||||
findutils | [] [] [] [] [] [] [] [] |
|
findutils | [] [] [] [] [] |
|
||||||
flex | [] [] [] |
|
flex | [] [] [] [] |
|
||||||
freetype | |
|
gas | [] [] |
|
||||||
gas | |
|
gawk | [] [] |
|
||||||
gawk | [] [] |
|
gcal | [] [] |
|
||||||
gcal | |
|
gcc | [] [] |
|
||||||
gcc | |
|
gettext | [] [] [] [] [] |
|
||||||
gettext | [] [] [] [] [] [] [] [] [] [] |
|
gnupg | [] [] [] [] [] [] |
|
||||||
gnupg | [] [] [] [] [] [] [] |
|
gprof | [] [] |
|
||||||
gprof | |
|
grep | [] [] [] [] [] [] |
|
||||||
grep | [] [] [] [] [] [] [] [] |
|
hello | [] [] [] [] [] [] [] [] |
|
||||||
hello | [] [] [] [] [] [] [] [] [] [] [] |
|
id-utils | [] [] [] |
|
||||||
id-utils | [] [] [] |
|
indent | [] [] [] [] [] |
|
||||||
indent | [] [] [] [] [] |
|
jpilot | () [] [] [] |
|
||||||
jpilot | [] |
|
jwhois | [] [] |
|
||||||
kbd | |
|
kbd | [] [] |
|
||||||
ld | [] |
|
ld | [] [] |
|
||||||
libc | [] [] [] [] [] [] [] [] |
|
libc | [] [] [] [] [] [] [] |
|
||||||
lilypond | [] |
|
lilypond | [] [] |
|
||||||
lynx | [] [] [] [] |
|
lynx | [] [] [] [] |
|
||||||
m4 | [] [] [] [] [] [] [] [] |
|
m4 | [] [] [] [] [] |
|
||||||
make | [] [] [] [] [] [] |
|
make | [] [] [] [] |
|
||||||
mysecretdiary | [] |
|
mysecretdiary | [] [] |
|
||||||
nano | [] [] [] |
|
nano | [] () [] [] [] [] |
|
||||||
opcodes | |
|
nano_1_0 | [] () [] [] [] [] |
|
||||||
parted | [] [] [] |
|
opcodes | [] [] [] |
|
||||||
ptx | [] [] [] [] [] [] [] |
|
parted | [] [] [] [] |
|
||||||
python | |
|
ptx | [] [] [] [] [] |
|
||||||
recode | [] [] [] [] [] [] [] [] [] |
|
python | |
|
||||||
sed | [] [] [] [] [] [] [] [] [] [] [] [] |
|
recode | [] [] [] [] [] [] |
|
||||||
sh-utils | [] [] [] [] [] [] [] [] [] [] |
|
sed | [] [] [] [] [] [] [] [] |
|
||||||
sharutils | [] [] [] [] [] [] [] [] |
|
sh-utils | [] [] [] [] [] [] [] [] |
|
||||||
sketch | |
|
sharutils | [] [] [] [] [] [] |
|
||||||
soundtracker | [] [] [] |
|
sketch | () [] () |
|
||||||
sp | |
|
soundtracker | [] [] [] |
|
||||||
tar | [] [] [] [] [] [] [] [] |
|
sp | |
|
||||||
texinfo | [] [] [] [] [] [] |
|
tar | [] [] [] [] [] [] |
|
||||||
textutils | [] [] [] [] [] [] [] [] |
|
texinfo | [] [] [] [] [] |
|
||||||
util-linux | [] [] |
|
textutils | [] [] [] [] [] |
|
||||||
wdiff | [] [] [] |
|
util-linux | [] [] [] [] |
|
||||||
wget | [] [] [] [] [] [] [] [] [] [] |
|
vorbis-tools | |
|
||||||
+----------------------------------------------------+
|
wdiff | [] [] [] [] [] |
|
||||||
bg cs da de el en eo es et fi fr gl he hr id it ja
|
wget | [] [] [] [] [] [] [] [] |
|
||||||
0 14 24 32 11 1 8 23 13 1 33 22 4 0 7 9 18
|
+-------------------------------------+
|
||||||
|
bg ca cs da de el en eo es et fi fr
|
||||||
|
1 12 11 31 36 9 1 8 39 15 1 50
|
||||||
|
|
||||||
ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh
|
gl he hr hu id it ja ko lv nb nl nn
|
||||||
+----------------------------------------------------+
|
+-------------------------------------+
|
||||||
a2ps | [] [] [] | 6
|
a2ps | () () [] |
|
||||||
bash | | 4
|
bash | |
|
||||||
bfd | | 0
|
bfd | [] |
|
||||||
binutils | | 1
|
binutils | [] |
|
||||||
bison | [] | 6
|
bison | [] [] |
|
||||||
clisp | [] | 5
|
clisp | [] |
|
||||||
cpio | [] [] [] [] [] | 10
|
cpio | [] [] [] |
|
||||||
diffutils | [] [] [] [] | 11
|
diffutils | [] [] [] |
|
||||||
enscript | [] [] [] | 5
|
enscript | [] |
|
||||||
error | [] [] | 4
|
error | [] |
|
||||||
fetchmail | | 0
|
fetchmail | |
|
||||||
fileutils | [] [] [] [] [] [] [] [] [] | 17
|
fileutils | [] [] [] |
|
||||||
findutils | [] [] [] [] [] [] [] [] | 16
|
findutils | [] [] [] [] [] [] |
|
||||||
flex | [] [] [] | 6
|
flex | [] |
|
||||||
freetype | | 0
|
gas | |
|
||||||
gas | | 0
|
gawk | [] |
|
||||||
gawk | [] | 3
|
gcal | |
|
||||||
gcal | | 0
|
gcc | |
|
||||||
gcc | | 0
|
gettext | [] |
|
||||||
gettext | [] [] [] [] [] [] [] [] | 18
|
gnupg | [] [] [] |
|
||||||
gnupg | [] [] [] | 10
|
gprof | |
|
||||||
gprof | | 0
|
grep | [] |
|
||||||
grep | [] [] [] [] | 12
|
hello | [] [] [] [] [] [] [] [] [] [] |
|
||||||
hello | [] [] [] [] [] [] [] [] [] [] [] | 22
|
id-utils | [] |
|
||||||
id-utils | [] [] [] | 6
|
indent | [] [] [] |
|
||||||
indent | [] [] [] [] [] [] [] | 12
|
jpilot | () () |
|
||||||
jpilot | | 1
|
jwhois | |
|
||||||
kbd | [] | 1
|
kbd | |
|
||||||
ld | | 1
|
ld | |
|
||||||
libc | [] [] [] [] [] [] [] [] | 16
|
libc | [] [] [] [] |
|
||||||
lilypond | [] [] | 3
|
lilypond | [] [] |
|
||||||
lynx | [] [] [] [] | 8
|
lynx | [] [] |
|
||||||
m4 | [] [] [] [] | 12
|
m4 | [] [] [] [] |
|
||||||
make | [] [] [] [] [] [] | 12
|
make | [] [] [] [] |
|
||||||
mysecretdiary | | 1
|
mysecretdiary | |
|
||||||
nano | [] | 4
|
nano | [] [] [] () [] () [] |
|
||||||
opcodes | [] | 1
|
nano_1_0 | [] [] [] () [] () [] |
|
||||||
parted | [] [] | 5
|
opcodes | [] |
|
||||||
ptx | [] [] [] [] [] [] [] [] | 15
|
parted | [] [] [] |
|
||||||
python | | 0
|
ptx | [] [] [] [] |
|
||||||
recode | [] [] [] [] | 13
|
python | |
|
||||||
sed | [] [] [] [] [] [] [] | 19
|
recode | [] [] [] |
|
||||||
sh-utils | [] [] [] [] [] [] [] [] [] [] [] | 21
|
sed | [] [] [] [] [] [] [] |
|
||||||
sharutils | [] [] [] | 11
|
sh-utils | [] [] [] [] [] |
|
||||||
sketch | | 0
|
sharutils | [] [] [] |
|
||||||
soundtracker | | 3
|
sketch | () |
|
||||||
sp | | 0
|
soundtracker | [] |
|
||||||
tar | [] [] [] [] [] [] [] | 15
|
sp | |
|
||||||
texinfo | [] | 7
|
tar | [] [] [] |
|
||||||
textutils | [] [] [] [] [] [] [] [] | 16
|
texinfo | [] [] |
|
||||||
util-linux | [] [] | 4
|
textutils | [] [] |
|
||||||
wdiff | [] [] [] [] | 7
|
util-linux | () [] |
|
||||||
wget | [] [] [] [] [] [] [] | 17
|
vorbis-tools | |
|
||||||
+----------------------------------------------------+
|
wdiff | |
|
||||||
33 teams ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh
|
wget | [] [] [] [] [] |
|
||||||
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
|
||||||
|
19 7 0 4 6 11 22 9 1 8 19 4
|
||||||
|
|
||||||
|
no pl pt pt_BR ru sk sl sv tr uk zh_TW
|
||||||
|
+----------------------------------------+
|
||||||
|
a2ps | () () () [] [] [] () | 8
|
||||||
|
bash | | 4
|
||||||
|
bfd | [] [] | 5
|
||||||
|
binutils | [] | 4
|
||||||
|
bison | [] [] [] | 8
|
||||||
|
clisp | | 5
|
||||||
|
cpio | [] [] [] [] | 11
|
||||||
|
diffutils | [] [] [] [] [] | 14
|
||||||
|
enscript | [] [] [] | 6
|
||||||
|
error | [] [] [] | 6
|
||||||
|
fetchmail | () () [] | 4
|
||||||
|
fileutils | [] [] [] [] | 12
|
||||||
|
findutils | [] [] [] [] [] [] [] | 18
|
||||||
|
flex | [] [] [] | 8
|
||||||
|
gas | [] | 3
|
||||||
|
gawk | [] [] | 5
|
||||||
|
gcal | [] [] | 4
|
||||||
|
gcc | [] | 3
|
||||||
|
gettext | [] [] [] [] | 10
|
||||||
|
gnupg | [] [] [] | 12
|
||||||
|
gprof | [] [] | 4
|
||||||
|
grep | [] [] [] | 10
|
||||||
|
hello | [] [] [] [] [] [] [] | 25
|
||||||
|
id-utils | [] [] | 6
|
||||||
|
indent | [] [] [] [] | 12
|
||||||
|
jpilot | () () | 3
|
||||||
|
jwhois | () () [] | 3
|
||||||
|
kbd | [] [] | 4
|
||||||
|
ld | [] [] | 4
|
||||||
|
libc | [] [] [] [] [] [] | 17
|
||||||
|
lilypond | [] | 5
|
||||||
|
lynx | [] [] [] | 9
|
||||||
|
m4 | [] [] [] | 12
|
||||||
|
make | [] [] [] [] | 12
|
||||||
|
mysecretdiary | [] [] | 4
|
||||||
|
nano | () [] [] [] [] | 14
|
||||||
|
nano_1_0 | () [] [] [] | 13
|
||||||
|
opcodes | [] [] | 6
|
||||||
|
parted | [] [] [] | 10
|
||||||
|
ptx | [] [] [] [] [] [] | 15
|
||||||
|
python | | 0
|
||||||
|
recode | [] [] [] [] | 13
|
||||||
|
sed | [] [] [] [] [] [] | 21
|
||||||
|
sh-utils | [] [] [] [] [] [] [] [] [] | 22
|
||||||
|
sharutils | [] [] [] | 12
|
||||||
|
sketch | [] () | 3
|
||||||
|
soundtracker | [] | 5
|
||||||
|
sp | | 0
|
||||||
|
tar | [] [] [] [] [] [] [] | 16
|
||||||
|
texinfo | [] [] [] | 10
|
||||||
|
textutils | [] [] [] [] | 11
|
||||||
|
util-linux | [] [] [] | 8
|
||||||
|
vorbis-tools | [] | 1
|
||||||
|
wdiff | [] [] [] [] | 9
|
||||||
|
wget | [] [] [] [] [] [] [] | 20
|
||||||
|
+----------------------------------------+
|
||||||
|
35 teams no pl pt pt_BR ru sk sl sv tr uk zh_TW
|
||||||
|
55 domains 5 13 2 12 25 11 11 41 34 4 7 489
|
||||||
|
|
||||||
Some counters in the preceding matrix are higher than the number of
|
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
|
visible blocks let us expect. This is because a few extra PO files are
|
||||||
@@ -298,9 +370,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
|
lag between the mere existence a PO file and its wide availability in a
|
||||||
distribution.
|
distribution.
|
||||||
|
|
||||||
If September 2001 seems to be old, you may fetch a more recent copy
|
If March 2002 seems to be old, you may fetch a more recent copy of
|
||||||
of this `ABOUT-NLS' file on most GNU archive sites. The most
|
this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
|
||||||
up-to-date matrix with full percentage details can be found at
|
matrix with full percentage details can be found at
|
||||||
`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
|
`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
|
||||||
|
|
||||||
Using `gettext' in new packages
|
Using `gettext' in new packages
|
||||||
|
|||||||
+17
-2
@@ -1,11 +1,26 @@
|
|||||||
|
## 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
|
||||||
|
|
||||||
## Process this file with automake to produce Makefile.in -*-Makefile-*-
|
## Process this file with automake to produce Makefile.in -*-Makefile-*-
|
||||||
AUTOMAKE_OPTIONS = 1.5 check-news readme-alpha dist-bzip2
|
AUTOMAKE_OPTIONS = 1.6 check-news readme-alpha dist-bzip2
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
SUBDIRS = config intl po lib src doc m4 tests
|
SUBDIRS = config intl po lib src doc m4 tests
|
||||||
|
|
||||||
EXTRA_DIST = REFERENCES configure.bat OChangeLog Makefile.maint GNUmakefile
|
EXTRA_DIST = config/config.rpath REFERENCES configure.bat OChangeLog Makefile.maint GNUmakefile
|
||||||
|
|
||||||
DISTCLEANFILES = intl/libintl.h
|
DISTCLEANFILES = intl/libintl.h
|
||||||
|
|
||||||
|
|||||||
+60
-38
@@ -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@
|
# @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.
|
# Free Software Foundation, Inc.
|
||||||
# This Makefile.in is free software; the Free Software Foundation
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
@@ -13,7 +13,6 @@
|
|||||||
# PARTICULAR PURPOSE.
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
@SET_MAKE@
|
@SET_MAKE@
|
||||||
|
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
|
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
@@ -48,6 +47,8 @@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
|||||||
INSTALL = @INSTALL@
|
INSTALL = @INSTALL@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
INSTALL_HEADER = $(INSTALL_DATA)
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
transform = @program_transform_name@
|
transform = @program_transform_name@
|
||||||
@@ -67,7 +68,6 @@ AMTAR = @AMTAR@
|
|||||||
AUTOM4TE = @AUTOM4TE@
|
AUTOM4TE = @AUTOM4TE@
|
||||||
AWK = @AWK@
|
AWK = @AWK@
|
||||||
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
||||||
CATALOGS = @CATALOGS@
|
|
||||||
CATOBJEXT = @CATOBJEXT@
|
CATOBJEXT = @CATOBJEXT@
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CPP = @CPP@
|
CPP = @CPP@
|
||||||
@@ -76,38 +76,42 @@ DEPDIR = @DEPDIR@
|
|||||||
GCC = @GCC@
|
GCC = @GCC@
|
||||||
GENCAT = @GENCAT@
|
GENCAT = @GENCAT@
|
||||||
GLIBC21 = @GLIBC21@
|
GLIBC21 = @GLIBC21@
|
||||||
GMOFILES = @GMOFILES@
|
|
||||||
GMSGFMT = @GMSGFMT@
|
GMSGFMT = @GMSGFMT@
|
||||||
|
HAVE_LIB = @HAVE_LIB@
|
||||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
INSTOBJEXT = @INSTOBJEXT@
|
INSTOBJEXT = @INSTOBJEXT@
|
||||||
INTLBISON = @INTLBISON@
|
INTLBISON = @INTLBISON@
|
||||||
INTLLIBS = @INTLLIBS@
|
INTLLIBS = @INTLLIBS@
|
||||||
INTLOBJS = @INTLOBJS@
|
INTLOBJS = @INTLOBJS@
|
||||||
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
||||||
|
LIB = @LIB@
|
||||||
LIBICONV = @LIBICONV@
|
LIBICONV = @LIBICONV@
|
||||||
LIBOBJS = @LIBOBJS@
|
LIBINTL = @LIBINTL@
|
||||||
|
LTLIB = @LTLIB@
|
||||||
|
LTLIBICONV = @LTLIBICONV@
|
||||||
|
LTLIBINTL = @LTLIBINTL@
|
||||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||||
MSGFMT = @MSGFMT@
|
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
POFILES = @POFILES@
|
|
||||||
POSUB = @POSUB@
|
POSUB = @POSUB@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
|
STRIP = @STRIP@
|
||||||
U = @U@
|
U = @U@
|
||||||
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
|
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
|
||||||
USE_NLS = @USE_NLS@
|
USE_NLS = @USE_NLS@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
WARNING_CFLAGS = @WARNING_CFLAGS@
|
WARNING_CFLAGS = @WARNING_CFLAGS@
|
||||||
|
WERROR_CFLAGS = @WERROR_CFLAGS@
|
||||||
am__include = @am__include@
|
am__include = @am__include@
|
||||||
am__quote = @am__quote@
|
am__quote = @am__quote@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
|
|
||||||
AUTOMAKE_OPTIONS = 1.5 check-news readme-alpha dist-bzip2
|
AUTOMAKE_OPTIONS = 1.6 check-news readme-alpha dist-bzip2
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
SUBDIRS = config intl po lib src doc m4 tests
|
SUBDIRS = config intl po lib src doc m4 tests
|
||||||
|
|
||||||
EXTRA_DIST = REFERENCES configure.bat OChangeLog Makefile.maint GNUmakefile
|
EXTRA_DIST = config/config.rpath REFERENCES configure.bat OChangeLog Makefile.maint GNUmakefile
|
||||||
|
|
||||||
DISTCLEANFILES = intl/libintl.h
|
DISTCLEANFILES = intl/libintl.h
|
||||||
|
|
||||||
@@ -149,14 +153,14 @@ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
|||||||
cd $(top_srcdir) && \
|
cd $(top_srcdir) && \
|
||||||
$(AUTOMAKE) --gnu Makefile
|
$(AUTOMAKE) --gnu Makefile
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
cd $(top_builddir) && $(SHELL) ./config.status $@
|
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
|
||||||
|
|
||||||
$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
$(SHELL) ./config.status --recheck
|
$(SHELL) ./config.status --recheck
|
||||||
$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
|
$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
|
||||||
cd $(srcdir) && $(AUTOCONF)
|
cd $(srcdir) && $(AUTOCONF)
|
||||||
|
|
||||||
$(ACLOCAL_M4): configure.in m4/c-bs-a.m4 m4/codeset.m4 m4/dmalloc.m4 m4/error.m4 m4/gettext.m4 m4/glibc21.m4 m4/iconv.m4 m4/isc-posix.m4 m4/lcmessage.m4 m4/malloc.m4 m4/mbrtowc.m4 m4/mbstate_t.m4 m4/prereq.m4 m4/progtest.m4 m4/realloc.m4 m4/strerror_r.m4 m4/warning.m4
|
$(ACLOCAL_M4): configure.in m4/c-bs-a.m4 m4/codeset.m4 m4/dmalloc.m4 m4/error.m4 m4/gettext.m4 m4/glibc21.m4 m4/iconv.m4 m4/isc-posix.m4 m4/lcmessage.m4 m4/lib-ld.m4 m4/lib-link.m4 m4/lib-prefix.m4 m4/malloc.m4 m4/mbrtowc.m4 m4/mbstate_t.m4 m4/prereq.m4 m4/progtest.m4 m4/realloc.m4 m4/strerror_r.m4 m4/warning.m4
|
||||||
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||||
|
|
||||||
config.h: stamp-h1
|
config.h: stamp-h1
|
||||||
@@ -234,16 +238,19 @@ tags-recursive:
|
|||||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||||
done
|
done
|
||||||
|
|
||||||
|
ETAGS = etags
|
||||||
|
ETAGSFLAGS =
|
||||||
|
|
||||||
tags: TAGS
|
tags: TAGS
|
||||||
|
|
||||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||||
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
unique=`for i in $$list; do \
|
unique=`for i in $$list; do \
|
||||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
done | \
|
done | \
|
||||||
$(AWK) ' { files[$$0] = 1; } \
|
$(AWK) ' { files[$$0] = 1; } \
|
||||||
END { for (i in files) print i; }'`; \
|
END { for (i in files) print i; }'`; \
|
||||||
mkid -fID $$unique $(LISP)
|
mkid -fID $$unique
|
||||||
|
|
||||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.hin $(TAGS_DEPENDENCIES) \
|
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.hin $(TAGS_DEPENDENCIES) \
|
||||||
$(TAGS_FILES) $(LISP)
|
$(TAGS_FILES) $(LISP)
|
||||||
@@ -254,14 +261,15 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.hin $(TAGS_DEPENDENCIES) \
|
|||||||
test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
|
test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
|
||||||
fi; \
|
fi; \
|
||||||
done; \
|
done; \
|
||||||
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
|
list='$(SOURCES) $(HEADERS) config.hin $(LISP) $(TAGS_FILES)'; \
|
||||||
unique=`for i in $$list; do \
|
unique=`for i in $$list; do \
|
||||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
done | \
|
done | \
|
||||||
$(AWK) ' { files[$$0] = 1; } \
|
$(AWK) ' { files[$$0] = 1; } \
|
||||||
END { for (i in files) print i; }'`; \
|
END { for (i in files) print i; }'`; \
|
||||||
test -z "$(ETAGS_ARGS)config.hin$$unique$(LISP)$$tags" \
|
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|
||||||
|| etags $(ETAGS_ARGS) $$tags config.hin $$unique $(LISP)
|
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$tags $$unique
|
||||||
|
|
||||||
GTAGS:
|
GTAGS:
|
||||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||||
@@ -270,14 +278,18 @@ GTAGS:
|
|||||||
|
|
||||||
distclean-tags:
|
distclean-tags:
|
||||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
|
||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
top_distdir = .
|
top_distdir = .
|
||||||
# Avoid unsightly `./'.
|
|
||||||
distdir = $(PACKAGE)-$(VERSION)
|
distdir = $(PACKAGE)-$(VERSION)
|
||||||
|
|
||||||
|
am__remove_distdir = \
|
||||||
|
{ test ! -d $(distdir) \
|
||||||
|
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||||
|
&& rm -fr $(distdir); }; }
|
||||||
|
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
|
distcleancheck_listfiles = find . -type f -print
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
@if sed 15q $(srcdir)/NEWS | fgrep -e "$(VERSION)" >/dev/null; \
|
@if sed 15q $(srcdir)/NEWS | fgrep -e "$(VERSION)" >/dev/null; \
|
||||||
@@ -285,17 +297,20 @@ distdir: $(DISTFILES)
|
|||||||
echo "NEWS not updated; not releasing" 1>&2; \
|
echo "NEWS not updated; not releasing" 1>&2; \
|
||||||
exit 1; \
|
exit 1; \
|
||||||
fi
|
fi
|
||||||
-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
|
$(am__remove_distdir)
|
||||||
mkdir $(distdir)
|
mkdir $(distdir)
|
||||||
$(mkinstalldirs) $(distdir)/intl $(distdir)/po $(distdir)/tests
|
$(mkinstalldirs) $(distdir)/config $(distdir)/intl $(distdir)/po $(distdir)/tests
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
if test -f $$file; then d=.; else d=$(srcdir); fi; \
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||||
$(mkinstalldirs) "$(distdir)/$$dir"; \
|
dir="/$$dir"; \
|
||||||
|
$(mkinstalldirs) "$(distdir)$$dir"; \
|
||||||
|
else \
|
||||||
|
dir=''; \
|
||||||
fi; \
|
fi; \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
cp -pR $$d/$$file $(distdir) \
|
cp -pR $$d/$$file $(distdir)$$dir \
|
||||||
|| exit 1; \
|
|| exit 1; \
|
||||||
else \
|
else \
|
||||||
test -f $(distdir)/$$file \
|
test -f $(distdir)/$$file \
|
||||||
@@ -303,7 +318,7 @@ distdir: $(DISTFILES)
|
|||||||
|| exit 1; \
|
|| exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
done
|
done
|
||||||
for subdir in $(SUBDIRS); do \
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
if test "$$subdir" = .; then :; else \
|
if test "$$subdir" = .; then :; else \
|
||||||
test -d $(distdir)/$$subdir \
|
test -d $(distdir)/$$subdir \
|
||||||
|| mkdir $(distdir)/$$subdir \
|
|| mkdir $(distdir)/$$subdir \
|
||||||
@@ -323,22 +338,22 @@ distdir: $(DISTFILES)
|
|||||||
|| chmod -R a+r $(distdir)
|
|| chmod -R a+r $(distdir)
|
||||||
dist-gzip: distdir
|
dist-gzip: distdir
|
||||||
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||||
-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
|
$(am__remove_distdir)
|
||||||
|
|
||||||
dist-bzip2: distdir
|
dist-bzip2: distdir
|
||||||
$(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
|
$(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||||
-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
|
$(am__remove_distdir)
|
||||||
|
|
||||||
dist dist-all: distdir
|
dist dist-all: distdir
|
||||||
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||||
$(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
|
$(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||||
-chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
|
$(am__remove_distdir)
|
||||||
|
|
||||||
# This target untars the dist file and tries a VPATH configuration. Then
|
# This target untars the dist file and tries a VPATH configuration. Then
|
||||||
# it guarantees that the distribution is self-contained by making another
|
# it guarantees that the distribution is self-contained by making another
|
||||||
# tarfile.
|
# tarfile.
|
||||||
distcheck: dist
|
distcheck: dist
|
||||||
-chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
|
$(am__remove_distdir)
|
||||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
|
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
|
||||||
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||||
mkdir $(distdir)/=build
|
mkdir $(distdir)/=build
|
||||||
@@ -348,6 +363,7 @@ distcheck: dist
|
|||||||
&& cd $(distdir)/=build \
|
&& cd $(distdir)/=build \
|
||||||
&& ../configure --srcdir=.. --prefix=$$dc_install_base \
|
&& ../configure --srcdir=.. --prefix=$$dc_install_base \
|
||||||
--with-included-gettext \
|
--with-included-gettext \
|
||||||
|
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||||
@@ -359,15 +375,20 @@ distcheck: dist
|
|||||||
find $$dc_install_base -type f -print ; \
|
find $$dc_install_base -type f -print ; \
|
||||||
exit 1; } >&2 ) \
|
exit 1; } >&2 ) \
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
|
&& $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
|
||||||
&& $(MAKE) $(AM_MAKEFLAGS) distclean \
|
|
||||||
&& rm -f $(distdir).tar.gz \
|
&& rm -f $(distdir).tar.gz \
|
||||||
&& (test `find . -type f -print | wc -l` -eq 0 \
|
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
||||||
|| { echo "ERROR: files left after distclean:" ; \
|
$(am__remove_distdir)
|
||||||
find . -type f -print ; \
|
|
||||||
exit 1; } >&2 )
|
|
||||||
-chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
|
|
||||||
@echo "$(distdir).tar.gz is ready for distribution" | \
|
@echo "$(distdir).tar.gz is ready for distribution" | \
|
||||||
sed 'h;s/./=/g;p;x;p;x'
|
sed 'h;s/./=/g;p;x;p;x'
|
||||||
|
distcleancheck: distclean
|
||||||
|
if test '$(srcdir)' = . ; then \
|
||||||
|
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||||
|
exit 1 ; \
|
||||||
|
fi
|
||||||
|
test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||||
|
|| { echo "ERROR: files left after distclean:" ; \
|
||||||
|
$(distcleancheck_listfiles) ; \
|
||||||
|
exit 1; } >&2
|
||||||
check-am: all-am
|
check-am: all-am
|
||||||
check: check-recursive
|
check: check-recursive
|
||||||
all-am: Makefile config.h
|
all-am: Makefile config.h
|
||||||
@@ -385,6 +406,7 @@ install-am: all-am
|
|||||||
installcheck: installcheck-recursive
|
installcheck: installcheck-recursive
|
||||||
install-strip:
|
install-strip:
|
||||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
INSTALL_STRIP_FLAG=-s \
|
||||||
`test -z '$(STRIP)' || \
|
`test -z '$(STRIP)' || \
|
||||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||||
mostlyclean-generic:
|
mostlyclean-generic:
|
||||||
@@ -439,9 +461,9 @@ uninstall-info: uninstall-info-recursive
|
|||||||
.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
|
.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
|
||||||
clean-generic clean-recursive dist dist-all dist-bzip2 \
|
clean-generic clean-recursive dist dist-all dist-bzip2 \
|
||||||
dist-gzip distcheck distclean distclean-generic distclean-hdr \
|
dist-gzip distcheck distclean distclean-generic distclean-hdr \
|
||||||
distclean-recursive distclean-tags distdir dvi dvi-am \
|
distclean-recursive distclean-tags distcleancheck distdir dvi \
|
||||||
dvi-recursive info info-am info-recursive install install-am \
|
dvi-am dvi-recursive info info-am info-recursive install \
|
||||||
install-data install-data-am install-data-recursive \
|
install-am install-data install-data-am install-data-recursive \
|
||||||
install-exec install-exec-am install-exec-recursive \
|
install-exec install-exec-am install-exec-recursive \
|
||||||
install-info install-info-am install-info-recursive install-man \
|
install-info install-info-am install-info-recursive install-man \
|
||||||
install-recursive install-strip installcheck installcheck-am \
|
install-recursive install-strip installcheck installcheck-am \
|
||||||
|
|||||||
@@ -1,7 +1,145 @@
|
|||||||
Bison News
|
Bison News
|
||||||
----------
|
----------
|
||||||
|
|
||||||
Changes in version 1.30:
|
Changes in version 1.35, 2002-03-25:
|
||||||
|
|
||||||
|
* C Skeleton
|
||||||
|
Some projects use Bison's C parser with C++ compilers, and define
|
||||||
|
YYSTYPE as a class. The recent adjustment of C parsers for data
|
||||||
|
alignment and 64 bit architectures made this impossible.
|
||||||
|
|
||||||
|
Because for the time being no real solution for C++ parser
|
||||||
|
generation exists, kludges were implemented in the parser to
|
||||||
|
maintain this use. In the future, when Bison has C++ parsers, this
|
||||||
|
kludge will be disabled.
|
||||||
|
|
||||||
|
This kludge also addresses some C++ problems when the stack was
|
||||||
|
extended.
|
||||||
|
|
||||||
|
|
||||||
|
Changes in version 1.34, 2002-03-12:
|
||||||
|
|
||||||
|
* File name clashes are detected
|
||||||
|
$ bison foo.y -d -o foo.x
|
||||||
|
fatal error: header and parser would both be named `foo.x'
|
||||||
|
|
||||||
|
* A missing `;' at the end of a rule triggers a warning
|
||||||
|
In accordance with POSIX, and in agreement with other
|
||||||
|
Yacc implementations, Bison will mandate this semicolon in the near
|
||||||
|
future. This eases the implementation of a Bison parser of Bison
|
||||||
|
grammars by making this grammar LALR(1) instead of LR(2). To
|
||||||
|
facilitate the transition, this release introduces a warning.
|
||||||
|
|
||||||
|
* Revert the C++ namespace changes introduced in 1.31, as they caused too
|
||||||
|
many portability hassles.
|
||||||
|
|
||||||
|
* DJGPP support added.
|
||||||
|
|
||||||
|
* Fix test suite portability problems.
|
||||||
|
|
||||||
|
Changes in version 1.33, 2002-02-07:
|
||||||
|
|
||||||
|
* Fix C++ issues
|
||||||
|
Groff could not be compiled for the definition of size_t was lacking
|
||||||
|
under some conditions.
|
||||||
|
|
||||||
|
* Catch invalid @n
|
||||||
|
As is done with $n.
|
||||||
|
|
||||||
|
Changes in version 1.32, 2002-01-23:
|
||||||
|
|
||||||
|
* Fix Yacc output file names
|
||||||
|
|
||||||
|
* Portability fixes
|
||||||
|
|
||||||
|
* Italian, Dutch translations
|
||||||
|
|
||||||
|
Changes in version 1.31, 2002-01-14:
|
||||||
|
|
||||||
|
* Many Bug Fixes
|
||||||
|
|
||||||
|
* GNU Gettext and %expect
|
||||||
|
GNU Gettext asserts 10 s/r conflicts, but there are 7. Now that
|
||||||
|
Bison dies on incorrect %expectations, we fear there will be
|
||||||
|
too many bug reports for Gettext, so _for the time being_, %expect
|
||||||
|
does not trigger an error when the input file is named `plural.y'.
|
||||||
|
|
||||||
|
* Use of alloca in parsers
|
||||||
|
If YYSTACK_USE_ALLOCA is defined to 0, then the parsers will use
|
||||||
|
malloc exclusively. Since 1.29, but was not NEWS'ed.
|
||||||
|
|
||||||
|
alloca is used only when compiled with GCC, to avoid portability
|
||||||
|
problems as on AIX.
|
||||||
|
|
||||||
|
* When the generated parser lacks debugging code, YYDEBUG is now 0
|
||||||
|
(as POSIX requires) instead of being undefined.
|
||||||
|
|
||||||
|
* User Actions
|
||||||
|
Bison has always permitted actions such as { $$ = $1 }: it adds the
|
||||||
|
ending semicolon. Now if in Yacc compatibility mode, the semicolon
|
||||||
|
is no longer output: one has to write { $$ = $1; }.
|
||||||
|
|
||||||
|
* Better C++ compliance
|
||||||
|
The output parsers try to respect C++ namespaces.
|
||||||
|
[This turned out to be a failed experiment, and it was reverted later.]
|
||||||
|
|
||||||
|
* Reduced Grammars
|
||||||
|
Fixed bugs when reporting useless nonterminals.
|
||||||
|
|
||||||
|
* 64 bit hosts
|
||||||
|
The parsers work properly on 64 bit hosts.
|
||||||
|
|
||||||
|
* Error messages
|
||||||
|
Some calls to strerror resulted in scrambled or missing error messages.
|
||||||
|
|
||||||
|
* %expect
|
||||||
|
When the number of shift/reduce conflicts is correct, don't issue
|
||||||
|
any warning.
|
||||||
|
|
||||||
|
* The verbose report includes the rule line numbers.
|
||||||
|
|
||||||
|
* Rule line numbers are fixed in traces.
|
||||||
|
|
||||||
|
* Swedish translation
|
||||||
|
|
||||||
|
* Parse errors
|
||||||
|
Verbose parse error messages from the parsers are better looking.
|
||||||
|
Before: parse error: unexpected `'/'', expecting `"number"' or `'-'' or `'(''
|
||||||
|
Now: parse error: unexpected '/', expecting "number" or '-' or '('
|
||||||
|
|
||||||
|
* Fixed parser memory leaks.
|
||||||
|
When the generated parser was using malloc to extend its stacks, the
|
||||||
|
previous allocations were not freed.
|
||||||
|
|
||||||
|
* Fixed verbose output file.
|
||||||
|
Some newlines were missing.
|
||||||
|
Some conflicts in state descriptions were missing.
|
||||||
|
|
||||||
|
* Fixed conflict report.
|
||||||
|
Option -v was needed to get the result.
|
||||||
|
|
||||||
|
* %expect
|
||||||
|
Was not used.
|
||||||
|
Mismatches are errors, not warnings.
|
||||||
|
|
||||||
|
* Fixed incorrect processing of some invalid input.
|
||||||
|
|
||||||
|
* Fixed CPP guards: 9foo.h uses BISON_9FOO_H instead of 9FOO_H.
|
||||||
|
|
||||||
|
* Fixed some typos in the documentation.
|
||||||
|
|
||||||
|
* %token MY_EOF 0 is supported.
|
||||||
|
Before, MY_EOF was silently renumbered as 257.
|
||||||
|
|
||||||
|
* doc/refcard.tex is updated.
|
||||||
|
|
||||||
|
* %output, %file-prefix, %name-prefix.
|
||||||
|
New.
|
||||||
|
|
||||||
|
* --output
|
||||||
|
New, aliasing `--output-file'.
|
||||||
|
|
||||||
|
Changes in version 1.30, 2001-10-26:
|
||||||
|
|
||||||
* `--defines' and `--graph' have now an optionnal argument which is the
|
* `--defines' and `--graph' have now an optionnal argument which is the
|
||||||
output file name. `-d' and `-g' do not change, they do not take any
|
output file name. `-d' and `-g' do not change, they do not take any
|
||||||
@@ -10,11 +148,9 @@ Changes in version 1.30:
|
|||||||
* `%source_extension' and `%header_extension' are removed, failed
|
* `%source_extension' and `%header_extension' are removed, failed
|
||||||
experiment.
|
experiment.
|
||||||
|
|
||||||
* The test suite is more portable.
|
* Portability fixes.
|
||||||
|
|
||||||
* Better portability.
|
Changes in version 1.29, 2001-09-07:
|
||||||
|
|
||||||
Changes in version 1.29:
|
|
||||||
|
|
||||||
* The output file does not define const, as this caused problems when used
|
* The output file does not define const, as this caused problems when used
|
||||||
with common autoconfiguration schemes. If you still use ancient compilers
|
with common autoconfiguration schemes. If you still use ancient compilers
|
||||||
@@ -45,8 +181,11 @@ Changes in version 1.29:
|
|||||||
* New directives.
|
* New directives.
|
||||||
`%yacc', `%fixed_output_files', `%defines', `%no_parser', `%verbose',
|
`%yacc', `%fixed_output_files', `%defines', `%no_parser', `%verbose',
|
||||||
`%debug', `%source_extension' and `%header_extension'.
|
`%debug', `%source_extension' and `%header_extension'.
|
||||||
|
|
||||||
|
* @$
|
||||||
|
Automatic location tracking.
|
||||||
|
|
||||||
Changes in version 1.28:
|
Changes in version 1.28, 1999-07-06:
|
||||||
|
|
||||||
* Should compile better now with K&R compilers.
|
* Should compile better now with K&R compilers.
|
||||||
|
|
||||||
@@ -78,7 +217,7 @@ Changes in version 1.26:
|
|||||||
* Generated parsers should now work even on operating systems which do
|
* Generated parsers should now work even on operating systems which do
|
||||||
not provide alloca().
|
not provide alloca().
|
||||||
|
|
||||||
Changes in version 1.25:
|
Changes in version 1.25, 1995-10-16:
|
||||||
|
|
||||||
* Errors in the input grammar are not fatal; Bison keeps reading
|
* Errors in the input grammar are not fatal; Bison keeps reading
|
||||||
the grammar file, and reports all the errors found in it.
|
the grammar file, and reports all the errors found in it.
|
||||||
@@ -119,3 +258,7 @@ Changes in version 1.22:
|
|||||||
Changes in version 1.20:
|
Changes in version 1.20:
|
||||||
|
|
||||||
Output file does not redefine const for C++.
|
Output file does not redefine const for C++.
|
||||||
|
|
||||||
|
Local Variables:
|
||||||
|
mode: outline
|
||||||
|
End:
|
||||||
|
|||||||
@@ -2,27 +2,46 @@ Bison was originally written by Robert Corbett. It would not be what
|
|||||||
it is today without the invaluable help of these people:
|
it is today without the invaluable help of these people:
|
||||||
|
|
||||||
Airy Andre [email protected]
|
Airy Andre [email protected]
|
||||||
Akim Demaille akim@epita.fr
|
Akim Demaille akim@freefriends.org
|
||||||
Albert Chin-A-Young [email protected]
|
Albert Chin-A-Young [email protected]
|
||||||
Alexander Belopolsky [email protected]
|
Alexander Belopolsky [email protected]
|
||||||
|
Andreas Schwab [email protected]
|
||||||
|
Arnold Robbins [email protected]
|
||||||
|
Bruce Lilly [email protected]
|
||||||
|
Cris van Pelt [email protected]
|
||||||
Daniel Hagerty [email protected]
|
Daniel Hagerty [email protected]
|
||||||
David J. MacKenzie [email protected]
|
David J. MacKenzie [email protected]
|
||||||
|
Dick Streefland [email protected]
|
||||||
|
Enrico Scholz [email protected]
|
||||||
|
Evgeny Stambulchik [email protected]
|
||||||
Fabrice Bauzac [email protected]
|
Fabrice Bauzac [email protected]
|
||||||
|
Florian Krohm [email protected]
|
||||||
|
H. Merijn Brand [email protected]
|
||||||
Hans Aberg [email protected]
|
Hans Aberg [email protected]
|
||||||
Jesse Thilo [email protected]
|
Jesse Thilo [email protected]
|
||||||
Jim Meyering [email protected]
|
Jim Meyering [email protected]
|
||||||
Juan Manuel Guerrero [email protected]
|
Juan Manuel Guerrero [email protected]
|
||||||
|
Kees Zeelenberg [email protected]
|
||||||
Keith Browne [email protected]
|
Keith Browne [email protected]
|
||||||
Laurent Mascherpa [email protected]
|
Laurent Mascherpa [email protected]
|
||||||
Marc Autret [email protected]
|
Marc Autret [email protected]
|
||||||
|
Mike Castle [email protected]
|
||||||
Neil Booth [email protected]
|
Neil Booth [email protected]
|
||||||
|
Nelson H. F. Beebe [email protected]
|
||||||
Noah Friedman [email protected]
|
Noah Friedman [email protected]
|
||||||
Pascal Bart [email protected]
|
Pascal Bart [email protected]
|
||||||
Paul Eggert [email protected]
|
Paul Eggert [email protected]
|
||||||
|
Per Allansson [email protected]
|
||||||
|
Peter Hámorský [email protected]
|
||||||
Piotr Gackiewicz [email protected]
|
Piotr Gackiewicz [email protected]
|
||||||
Richard Stallman [email protected]
|
Richard Stallman [email protected]
|
||||||
Robert Anisko [email protected]
|
Robert Anisko [email protected]
|
||||||
Shura [email protected]
|
Shura [email protected]
|
||||||
|
Tom Lane [email protected]
|
||||||
|
Tom Tromey [email protected]
|
||||||
|
Wayne Green [email protected]
|
||||||
|
Wolfram Wagner [email protected]
|
||||||
|
Wwp [email protected]
|
||||||
|
|
||||||
Many people are not named here because we lost track of them. We
|
Many people are not named here because we lost track of them. We
|
||||||
thank them! Please, help us keeping this list up to date.
|
thank them! Please, help us keeping this list up to date.
|
||||||
|
|||||||
Vendored
+1514
-406
File diff suppressed because it is too large
Load Diff
+99
-71
@@ -5,39 +5,49 @@
|
|||||||
*/
|
*/
|
||||||
#undef CRAY_STACKSEG_END
|
#undef CRAY_STACKSEG_END
|
||||||
|
|
||||||
/* Define if using `alloca.c'. */
|
/* Define to 1 if using `alloca.c'. */
|
||||||
#undef C_ALLOCA
|
#undef C_ALLOCA
|
||||||
|
|
||||||
/* Define to 1 if translation of program messages to the user's native
|
/* Define to 1 if translation of program messages to the user's native
|
||||||
language is requested. */
|
language is requested. */
|
||||||
#undef ENABLE_NLS
|
#undef ENABLE_NLS
|
||||||
|
|
||||||
/* Define if you have `alloca', as a function or macro. */
|
/* Define to 1 if you have `alloca', as a function or macro. */
|
||||||
#undef HAVE_ALLOCA
|
#undef HAVE_ALLOCA
|
||||||
|
|
||||||
/* Define if you have <alloca.h> and it should be used (not on Ultrix). */
|
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
|
||||||
|
*/
|
||||||
#undef HAVE_ALLOCA_H
|
#undef HAVE_ALLOCA_H
|
||||||
|
|
||||||
/* Define if you have the <argz.h> header file. */
|
/* Define to 1 if you have the <argz.h> header file. */
|
||||||
#undef HAVE_ARGZ_H
|
#undef HAVE_ARGZ_H
|
||||||
|
|
||||||
/* Define if you have the <ctype.h> header file. */
|
/* Define to 1 if you have the <ctype.h> header file. */
|
||||||
#undef HAVE_CTYPE_H
|
#undef HAVE_CTYPE_H
|
||||||
|
|
||||||
/* Define if backslash-a works in C strings. */
|
/* Define if backslash-a works in C strings. */
|
||||||
#undef HAVE_C_BACKSLASH_A
|
#undef HAVE_C_BACKSLASH_A
|
||||||
|
|
||||||
/* Define if you have the `dcgettext' function. */
|
/* Define if the GNU dcgettext() function is already present or preinstalled.
|
||||||
|
*/
|
||||||
#undef HAVE_DCGETTEXT
|
#undef HAVE_DCGETTEXT
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `memchr', and to 0 if you don't.
|
/* Define to 1 if you have the declaration of `memchr', and to 0 if you don't.
|
||||||
*/
|
*/
|
||||||
#undef HAVE_DECL_MEMCHR
|
#undef HAVE_DECL_MEMCHR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `memrchr', and to 0 if you
|
||||||
|
don't. */
|
||||||
|
#undef HAVE_DECL_MEMRCHR
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `stpcpy', and to 0 if you don't.
|
/* Define to 1 if you have the declaration of `stpcpy', and to 0 if you don't.
|
||||||
*/
|
*/
|
||||||
#undef HAVE_DECL_STPCPY
|
#undef HAVE_DECL_STPCPY
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `strchr', and to 0 if you don't.
|
||||||
|
*/
|
||||||
|
#undef HAVE_DECL_STRCHR
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `strerror', and to 0 if you
|
/* Define to 1 if you have the declaration of `strerror', and to 0 if you
|
||||||
don't. */
|
don't. */
|
||||||
#undef HAVE_DECL_STRERROR
|
#undef HAVE_DECL_STRERROR
|
||||||
@@ -46,60 +56,63 @@
|
|||||||
don't. */
|
don't. */
|
||||||
#undef HAVE_DECL_STRERROR_R
|
#undef HAVE_DECL_STRERROR_R
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `strndup', and to 0 if you
|
|
||||||
don't. */
|
|
||||||
#undef HAVE_DECL_STRNDUP
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
|
/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
|
||||||
don't. */
|
don't. */
|
||||||
#undef HAVE_DECL_STRNLEN
|
#undef HAVE_DECL_STRNLEN
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `strspn', and to 0 if you don't.
|
||||||
|
*/
|
||||||
|
#undef HAVE_DECL_STRSPN
|
||||||
|
|
||||||
/* Define if the malloc check has been performed. */
|
/* Define if the malloc check has been performed. */
|
||||||
#undef HAVE_DONE_WORKING_MALLOC_CHECK
|
#undef HAVE_DONE_WORKING_MALLOC_CHECK
|
||||||
|
|
||||||
/* Define if the realloc check has been performed. */
|
/* Define if the realloc check has been performed. */
|
||||||
#undef HAVE_DONE_WORKING_REALLOC_CHECK
|
#undef HAVE_DONE_WORKING_REALLOC_CHECK
|
||||||
|
|
||||||
/* Define if you have the `doprnt' function. */
|
/* Define to 1 if you have the `doprnt' function. */
|
||||||
#undef HAVE_DOPRNT
|
#undef HAVE_DOPRNT
|
||||||
|
|
||||||
/* Define if you have the `feof_unlocked' function. */
|
/* Define to 1 if you have the `feof_unlocked' function. */
|
||||||
#undef HAVE_FEOF_UNLOCKED
|
#undef HAVE_FEOF_UNLOCKED
|
||||||
|
|
||||||
/* Define if you have the `fgets_unlocked' function. */
|
/* Define to 1 if you have the `fgets_unlocked' function. */
|
||||||
#undef HAVE_FGETS_UNLOCKED
|
#undef HAVE_FGETS_UNLOCKED
|
||||||
|
|
||||||
/* Define if you have the `getcwd' function. */
|
/* Define to 1 if you have the `getcwd' function. */
|
||||||
#undef HAVE_GETCWD
|
#undef HAVE_GETCWD
|
||||||
|
|
||||||
/* Define if you have the `getegid' function. */
|
/* Define to 1 if you have the `getc_unlocked' function. */
|
||||||
|
#undef HAVE_GETC_UNLOCKED
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `getegid' function. */
|
||||||
#undef HAVE_GETEGID
|
#undef HAVE_GETEGID
|
||||||
|
|
||||||
/* Define if you have the `geteuid' function. */
|
/* Define to 1 if you have the `geteuid' function. */
|
||||||
#undef HAVE_GETEUID
|
#undef HAVE_GETEUID
|
||||||
|
|
||||||
/* Define if you have the `getgid' function. */
|
/* Define to 1 if you have the `getgid' function. */
|
||||||
#undef HAVE_GETGID
|
#undef HAVE_GETGID
|
||||||
|
|
||||||
/* Define if you have the `getpagesize' function. */
|
/* Define to 1 if you have the `getpagesize' function. */
|
||||||
#undef HAVE_GETPAGESIZE
|
#undef HAVE_GETPAGESIZE
|
||||||
|
|
||||||
/* Define if the GNU gettext() function is already present or preinstalled. */
|
/* Define if the GNU gettext() function is already present or preinstalled. */
|
||||||
#undef HAVE_GETTEXT
|
#undef HAVE_GETTEXT
|
||||||
|
|
||||||
/* Define if you have the `getuid' function. */
|
/* Define to 1 if you have the `getuid' function. */
|
||||||
#undef HAVE_GETUID
|
#undef HAVE_GETUID
|
||||||
|
|
||||||
/* Define if you have the iconv() function. */
|
/* Define if you have the iconv() function. */
|
||||||
#undef HAVE_ICONV
|
#undef HAVE_ICONV
|
||||||
|
|
||||||
/* Define if you have the <inttypes.h> header file. */
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
#undef HAVE_INTTYPES_H
|
#undef HAVE_INTTYPES_H
|
||||||
|
|
||||||
/* Define if you have the `isascii' function. */
|
/* Define to 1 if you have the `isascii' function. */
|
||||||
#undef HAVE_ISASCII
|
#undef HAVE_ISASCII
|
||||||
|
|
||||||
/* Define if you have the `iswprint' function. */
|
/* Define to 1 if you have the `iswprint' function. */
|
||||||
#undef HAVE_ISWPRINT
|
#undef HAVE_ISWPRINT
|
||||||
|
|
||||||
/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
|
/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
|
||||||
@@ -108,127 +121,127 @@
|
|||||||
/* Define if your <locale.h> file defines LC_MESSAGES. */
|
/* Define if your <locale.h> file defines LC_MESSAGES. */
|
||||||
#undef HAVE_LC_MESSAGES
|
#undef HAVE_LC_MESSAGES
|
||||||
|
|
||||||
/* Define if you have the <limits.h> header file. */
|
/* Define to 1 if you have the <limits.h> header file. */
|
||||||
#undef HAVE_LIMITS_H
|
#undef HAVE_LIMITS_H
|
||||||
|
|
||||||
/* Define if you have the <locale.h> header file. */
|
/* Define to 1 if you have the <locale.h> header file. */
|
||||||
#undef HAVE_LOCALE_H
|
#undef HAVE_LOCALE_H
|
||||||
|
|
||||||
/* Define if you have the <malloc.h> header file. */
|
/* Define to 1 if you have the <malloc.h> header file. */
|
||||||
#undef HAVE_MALLOC_H
|
#undef HAVE_MALLOC_H
|
||||||
|
|
||||||
/* Define to 1 if mbrtowc and mbstate_t are properly declared. */
|
/* Define to 1 if mbrtowc and mbstate_t are properly declared. */
|
||||||
#undef HAVE_MBRTOWC
|
#undef HAVE_MBRTOWC
|
||||||
|
|
||||||
/* Define if you have the `mbsinit' function. */
|
/* Define to 1 if you have the `mbsinit' function. */
|
||||||
#undef HAVE_MBSINIT
|
#undef HAVE_MBSINIT
|
||||||
|
|
||||||
/* Define if you have the `memchr' function. */
|
/* Define to 1 if you have the `memchr' function. */
|
||||||
#undef HAVE_MEMCHR
|
#undef HAVE_MEMCHR
|
||||||
|
|
||||||
/* Define if you have the <memory.h> header file. */
|
/* Define to 1 if you have the <memory.h> header file. */
|
||||||
#undef HAVE_MEMORY_H
|
#undef HAVE_MEMORY_H
|
||||||
|
|
||||||
/* Define if you have the `mempcpy' function. */
|
/* Define to 1 if you have the `mempcpy' function. */
|
||||||
#undef HAVE_MEMPCPY
|
#undef HAVE_MEMPCPY
|
||||||
|
|
||||||
/* Define if you have the `mkstemp' function. */
|
/* Define to 1 if you have the `memrchr' function. */
|
||||||
|
#undef HAVE_MEMRCHR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `mkstemp' function. */
|
||||||
#undef HAVE_MKSTEMP
|
#undef HAVE_MKSTEMP
|
||||||
|
|
||||||
/* Define if you have a working `mmap' system call. */
|
/* Define to 1 if you have a working `mmap' system call. */
|
||||||
#undef HAVE_MMAP
|
#undef HAVE_MMAP
|
||||||
|
|
||||||
/* Define if you have the `munmap' function. */
|
/* Define to 1 if you have the `munmap' function. */
|
||||||
#undef HAVE_MUNMAP
|
#undef HAVE_MUNMAP
|
||||||
|
|
||||||
/* Define if you have the <nl_types.h> header file. */
|
/* Define to 1 if you have the <nl_types.h> header file. */
|
||||||
#undef HAVE_NL_TYPES_H
|
#undef HAVE_NL_TYPES_H
|
||||||
|
|
||||||
/* Define if you have the `putenv' function. */
|
/* Define to 1 if libc includes obstacks. */
|
||||||
|
#undef HAVE_OBSTACK
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `putenv' function. */
|
||||||
#undef HAVE_PUTENV
|
#undef HAVE_PUTENV
|
||||||
|
|
||||||
/* Define if you have the `setenv' function. */
|
/* Define to 1 if you have the `setenv' function. */
|
||||||
#undef HAVE_SETENV
|
#undef HAVE_SETENV
|
||||||
|
|
||||||
/* Define if you have the `setlocale' function. */
|
/* Define to 1 if you have the `setlocale' function. */
|
||||||
#undef HAVE_SETLOCALE
|
#undef HAVE_SETLOCALE
|
||||||
|
|
||||||
/* Define if you have the <stddef.h> header file. */
|
/* Define to 1 if you have the <stddef.h> header file. */
|
||||||
#undef HAVE_STDDEF_H
|
#undef HAVE_STDDEF_H
|
||||||
|
|
||||||
/* Define if you have the <stdint.h> header file. */
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
#undef HAVE_STDINT_H
|
#undef HAVE_STDINT_H
|
||||||
|
|
||||||
/* Define if you have the <stdlib.h> header file. */
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||||
#undef HAVE_STDLIB_H
|
#undef HAVE_STDLIB_H
|
||||||
|
|
||||||
/* Define if you have the `stpcpy' function. */
|
/* Define to 1 if you have the `stpcpy' function. */
|
||||||
#undef HAVE_STPCPY
|
#undef HAVE_STPCPY
|
||||||
|
|
||||||
/* Define if you have the `strcasecmp' function. */
|
/* Define to 1 if you have the `strcasecmp' function. */
|
||||||
#undef HAVE_STRCASECMP
|
#undef HAVE_STRCASECMP
|
||||||
|
|
||||||
/* Define if you have the `strchr' function. */
|
/* Define to 1 if you have the `strchr' function. */
|
||||||
#undef HAVE_STRCHR
|
#undef HAVE_STRCHR
|
||||||
|
|
||||||
/* Define if you have the `strdup' function. */
|
/* Define to 1 if you have the `strdup' function. */
|
||||||
#undef HAVE_STRDUP
|
#undef HAVE_STRDUP
|
||||||
|
|
||||||
/* Define if you have the `strerror' function. */
|
/* Define to 1 if you have the `strerror' function. */
|
||||||
#undef HAVE_STRERROR
|
#undef HAVE_STRERROR
|
||||||
|
|
||||||
/* Define if you have the `strerror_r' function. */
|
/* Define to 1 if you have the `strerror_r' function. */
|
||||||
#undef HAVE_STRERROR_R
|
#undef HAVE_STRERROR_R
|
||||||
|
|
||||||
/* Define if you have the <strings.h> header file. */
|
/* Define to 1 if you have the <strings.h> header file. */
|
||||||
#undef HAVE_STRINGS_H
|
#undef HAVE_STRINGS_H
|
||||||
|
|
||||||
/* Define if you have the <string.h> header file. */
|
/* Define to 1 if you have the <string.h> header file. */
|
||||||
#undef HAVE_STRING_H
|
#undef HAVE_STRING_H
|
||||||
|
|
||||||
/* Define if you have the `strndup' function. */
|
/* Define to 1 if you have the `strspn' function. */
|
||||||
#undef HAVE_STRNDUP
|
|
||||||
|
|
||||||
/* Define if you have the `strnlen' function. */
|
|
||||||
#undef HAVE_STRNLEN
|
|
||||||
|
|
||||||
/* Define if you have the `strspn' function. */
|
|
||||||
#undef HAVE_STRSPN
|
#undef HAVE_STRSPN
|
||||||
|
|
||||||
/* Define if you have the `strtoul' function. */
|
/* Define to 1 if you have the `strtoul' function. */
|
||||||
#undef HAVE_STRTOUL
|
#undef HAVE_STRTOUL
|
||||||
|
|
||||||
/* Define if you have the <sys/param.h> header file. */
|
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||||
#undef HAVE_SYS_PARAM_H
|
#undef HAVE_SYS_PARAM_H
|
||||||
|
|
||||||
/* Define if you have the <sys/stat.h> header file. */
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||||
#undef HAVE_SYS_STAT_H
|
#undef HAVE_SYS_STAT_H
|
||||||
|
|
||||||
/* Define if you have the <sys/types.h> header file. */
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||||
#undef HAVE_SYS_TYPES_H
|
#undef HAVE_SYS_TYPES_H
|
||||||
|
|
||||||
/* Define if you have the `tsearch' function. */
|
/* Define to 1 if you have the `tsearch' function. */
|
||||||
#undef HAVE_TSEARCH
|
#undef HAVE_TSEARCH
|
||||||
|
|
||||||
/* Define if you have the <unistd.h> header file. */
|
/* Define to 1 if you have the <unistd.h> header file. */
|
||||||
#undef HAVE_UNISTD_H
|
#undef HAVE_UNISTD_H
|
||||||
|
|
||||||
/* Define if you have the `vprintf' function. */
|
/* Define to 1 if you have the `vprintf' function. */
|
||||||
#undef HAVE_VPRINTF
|
#undef HAVE_VPRINTF
|
||||||
|
|
||||||
/* Define if you have the <wchar.h> header file. */
|
/* Define to 1 if you have the <wchar.h> header file. */
|
||||||
#undef HAVE_WCHAR_H
|
#undef HAVE_WCHAR_H
|
||||||
|
|
||||||
/* Define if you have the <wctype.h> header file. */
|
/* Define to 1 if you have the <wctype.h> header file. */
|
||||||
#undef HAVE_WCTYPE_H
|
#undef HAVE_WCTYPE_H
|
||||||
|
|
||||||
/* Define if you have the `__argz_count' function. */
|
/* Define to 1 if you have the `__argz_count' function. */
|
||||||
#undef HAVE___ARGZ_COUNT
|
#undef HAVE___ARGZ_COUNT
|
||||||
|
|
||||||
/* Define if you have the `__argz_next' function. */
|
/* Define to 1 if you have the `__argz_next' function. */
|
||||||
#undef HAVE___ARGZ_NEXT
|
#undef HAVE___ARGZ_NEXT
|
||||||
|
|
||||||
/* Define if you have the `__argz_stringify' function. */
|
/* Define to 1 if you have the `__argz_stringify' function. */
|
||||||
#undef HAVE___ARGZ_STRINGIFY
|
#undef HAVE___ARGZ_STRINGIFY
|
||||||
|
|
||||||
/* Define as const if the declaration of iconv() needs const. */
|
/* Define as const if the declaration of iconv() needs const. */
|
||||||
@@ -237,6 +250,21 @@
|
|||||||
/* Name of package */
|
/* Name of package */
|
||||||
#undef PACKAGE
|
#undef PACKAGE
|
||||||
|
|
||||||
|
/* Define to the address where bug reports for this package should be sent. */
|
||||||
|
#undef PACKAGE_BUGREPORT
|
||||||
|
|
||||||
|
/* Define to the full name of this package. */
|
||||||
|
#undef PACKAGE_NAME
|
||||||
|
|
||||||
|
/* Define to the full name and version of this package. */
|
||||||
|
#undef PACKAGE_STRING
|
||||||
|
|
||||||
|
/* Define to the one symbol short name of this package. */
|
||||||
|
#undef PACKAGE_TARNAME
|
||||||
|
|
||||||
|
/* Define to the version of this package. */
|
||||||
|
#undef PACKAGE_VERSION
|
||||||
|
|
||||||
/* Define if compiler has function prototypes */
|
/* Define if compiler has function prototypes */
|
||||||
#undef PROTOTYPES
|
#undef PROTOTYPES
|
||||||
|
|
||||||
@@ -248,7 +276,7 @@
|
|||||||
STACK_DIRECTION = 0 => direction of growth unknown */
|
STACK_DIRECTION = 0 => direction of growth unknown */
|
||||||
#undef STACK_DIRECTION
|
#undef STACK_DIRECTION
|
||||||
|
|
||||||
/* Define if you have the ANSI C header files. */
|
/* Define to 1 if you have the ANSI C header files. */
|
||||||
#undef STDC_HEADERS
|
#undef STDC_HEADERS
|
||||||
|
|
||||||
/* Define to 1 if strerror_r returns char *. */
|
/* Define to 1 if strerror_r returns char *. */
|
||||||
@@ -263,14 +291,14 @@
|
|||||||
/* Define to 1 for GNU C library extensions. */
|
/* Define to 1 for GNU C library extensions. */
|
||||||
#undef _GNU_SOURCE
|
#undef _GNU_SOURCE
|
||||||
|
|
||||||
/* Define if on MINIX. */
|
/* Define to 1 if on MINIX. */
|
||||||
#undef _MINIX
|
#undef _MINIX
|
||||||
|
|
||||||
/* Define if the system does not provide POSIX.1 features except with this
|
/* Define to 2 if the system does not provide POSIX.1 features except with
|
||||||
defined. */
|
this defined. */
|
||||||
#undef _POSIX_1_SOURCE
|
#undef _POSIX_1_SOURCE
|
||||||
|
|
||||||
/* Define if you need to in order for `stat' and other things to work. */
|
/* Define to 1 if you need to in order for `stat' and other things to work. */
|
||||||
#undef _POSIX_SOURCE
|
#undef _POSIX_SOURCE
|
||||||
|
|
||||||
/* Define to empty if `const' does not conform to ANSI C. */
|
/* Define to empty if `const' does not conform to ANSI C. */
|
||||||
|
|||||||
+23
-16
@@ -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@
|
# @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.
|
# Free Software Foundation, Inc.
|
||||||
# This Makefile.in is free software; the Free Software Foundation
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
@@ -13,7 +13,6 @@
|
|||||||
# PARTICULAR PURPOSE.
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
@SET_MAKE@
|
@SET_MAKE@
|
||||||
|
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
|
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
@@ -48,6 +47,8 @@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
|||||||
INSTALL = @INSTALL@
|
INSTALL = @INSTALL@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
INSTALL_HEADER = $(INSTALL_DATA)
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
transform = @program_transform_name@
|
transform = @program_transform_name@
|
||||||
@@ -67,7 +68,6 @@ AMTAR = @AMTAR@
|
|||||||
AUTOM4TE = @AUTOM4TE@
|
AUTOM4TE = @AUTOM4TE@
|
||||||
AWK = @AWK@
|
AWK = @AWK@
|
||||||
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
||||||
CATALOGS = @CATALOGS@
|
|
||||||
CATOBJEXT = @CATOBJEXT@
|
CATOBJEXT = @CATOBJEXT@
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CPP = @CPP@
|
CPP = @CPP@
|
||||||
@@ -76,39 +76,43 @@ DEPDIR = @DEPDIR@
|
|||||||
GCC = @GCC@
|
GCC = @GCC@
|
||||||
GENCAT = @GENCAT@
|
GENCAT = @GENCAT@
|
||||||
GLIBC21 = @GLIBC21@
|
GLIBC21 = @GLIBC21@
|
||||||
GMOFILES = @GMOFILES@
|
|
||||||
GMSGFMT = @GMSGFMT@
|
GMSGFMT = @GMSGFMT@
|
||||||
|
HAVE_LIB = @HAVE_LIB@
|
||||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
INSTOBJEXT = @INSTOBJEXT@
|
INSTOBJEXT = @INSTOBJEXT@
|
||||||
INTLBISON = @INTLBISON@
|
INTLBISON = @INTLBISON@
|
||||||
INTLLIBS = @INTLLIBS@
|
INTLLIBS = @INTLLIBS@
|
||||||
INTLOBJS = @INTLOBJS@
|
INTLOBJS = @INTLOBJS@
|
||||||
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
||||||
|
LIB = @LIB@
|
||||||
LIBICONV = @LIBICONV@
|
LIBICONV = @LIBICONV@
|
||||||
LIBOBJS = @LIBOBJS@
|
LIBINTL = @LIBINTL@
|
||||||
|
LTLIB = @LTLIB@
|
||||||
|
LTLIBICONV = @LTLIBICONV@
|
||||||
|
LTLIBINTL = @LTLIBINTL@
|
||||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||||
MSGFMT = @MSGFMT@
|
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
POFILES = @POFILES@
|
|
||||||
POSUB = @POSUB@
|
POSUB = @POSUB@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
|
STRIP = @STRIP@
|
||||||
U = @U@
|
U = @U@
|
||||||
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
|
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
|
||||||
USE_NLS = @USE_NLS@
|
USE_NLS = @USE_NLS@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
WARNING_CFLAGS = @WARNING_CFLAGS@
|
WARNING_CFLAGS = @WARNING_CFLAGS@
|
||||||
|
WERROR_CFLAGS = @WERROR_CFLAGS@
|
||||||
am__include = @am__include@
|
am__include = @am__include@
|
||||||
am__quote = @am__quote@
|
am__quote = @am__quote@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
|
|
||||||
EXTRA_DIST = move-if-change prev-version.txt
|
EXTRA_DIST = move-if-change prev-version.txt
|
||||||
subdir = config
|
subdir = config
|
||||||
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
|
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
|
||||||
CONFIG_HEADER = $(top_builddir)/config.h
|
CONFIG_HEADER = $(top_builddir)/config.h
|
||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES =
|
||||||
DIST_SOURCES =
|
DIST_SOURCES =
|
||||||
DIST_COMMON = Makefile.am Makefile.in config.guess config.sub depcomp \
|
DIST_COMMON = Makefile.am Makefile.in config.guess config.rpath \
|
||||||
install-sh mdate-sh missing mkinstalldirs texinfo.tex
|
config.sub depcomp install-sh mdate-sh missing mkinstalldirs \
|
||||||
|
texinfo.tex
|
||||||
all: all-am
|
all: all-am
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
@@ -116,12 +120,11 @@ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
|||||||
cd $(top_srcdir) && \
|
cd $(top_srcdir) && \
|
||||||
$(AUTOMAKE) --gnu config/Makefile
|
$(AUTOMAKE) --gnu config/Makefile
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
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:
|
uninstall-info-am:
|
||||||
tags: TAGS
|
tags: TAGS
|
||||||
TAGS:
|
TAGS:
|
||||||
|
|
||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
top_distdir = ..
|
top_distdir = ..
|
||||||
@@ -129,13 +132,16 @@ distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
|
|||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
if test -f $$file; then d=.; else d=$(srcdir); fi; \
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||||
$(mkinstalldirs) "$(distdir)/$$dir"; \
|
dir="/$$dir"; \
|
||||||
|
$(mkinstalldirs) "$(distdir)$$dir"; \
|
||||||
|
else \
|
||||||
|
dir=''; \
|
||||||
fi; \
|
fi; \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
cp -pR $$d/$$file $(distdir) \
|
cp -pR $$d/$$file $(distdir)$$dir \
|
||||||
|| exit 1; \
|
|| exit 1; \
|
||||||
else \
|
else \
|
||||||
test -f $(distdir)/$$file \
|
test -f $(distdir)/$$file \
|
||||||
@@ -160,6 +166,7 @@ install-am: all-am
|
|||||||
installcheck: installcheck-am
|
installcheck: installcheck-am
|
||||||
install-strip:
|
install-strip:
|
||||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
INSTALL_STRIP_FLAG=-s \
|
||||||
`test -z '$(STRIP)' || \
|
`test -z '$(STRIP)' || \
|
||||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||||
mostlyclean-generic:
|
mostlyclean-generic:
|
||||||
|
|||||||
Vendored
+75
-62
@@ -1,9 +1,9 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Attempt to guess a canonical system name.
|
# Attempt to guess a canonical system name.
|
||||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||||
# Free Software Foundation, Inc.
|
# 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||||
|
|
||||||
timestamp='2001-10-05'
|
timestamp='2002-03-20'
|
||||||
|
|
||||||
# This file is free software; you can redistribute it and/or modify it
|
# This file is free software; you can redistribute it and/or modify it
|
||||||
# under the terms of the GNU General Public License as published by
|
# under the terms of the GNU General Public License as published by
|
||||||
@@ -24,7 +24,7 @@ timestamp='2001-10-05'
|
|||||||
# configuration script generated by Autoconf, you may include it under
|
# configuration script generated by Autoconf, you may include it under
|
||||||
# the same distribution terms that you use for the rest of that program.
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
# Originally written by Per Bothner <bothner@cygnus.com>.
|
# Originally written by Per Bothner <per@bothner.com>.
|
||||||
# Please send patches to <[email protected]>. Submit a context
|
# Please send patches to <[email protected]>. Submit a context
|
||||||
# diff and a properly formatted ChangeLog entry.
|
# diff and a properly formatted ChangeLog entry.
|
||||||
#
|
#
|
||||||
@@ -98,7 +98,7 @@ trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
|
|||||||
|
|
||||||
set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in
|
set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in
|
||||||
,,) echo "int dummy(){}" > $dummy.c ;
|
,,) echo "int dummy(){}" > $dummy.c ;
|
||||||
for c in cc gcc c89 ; do
|
for c in cc gcc c89 c99 ; do
|
||||||
($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ;
|
($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ;
|
||||||
if test $? = 0 ; then
|
if test $? = 0 ; then
|
||||||
CC_FOR_BUILD="$c"; break ;
|
CC_FOR_BUILD="$c"; break ;
|
||||||
@@ -135,23 +135,22 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|||||||
# object file format. This provides both forward
|
# object file format. This provides both forward
|
||||||
# compatibility and a consistent mechanism for selecting the
|
# compatibility and a consistent mechanism for selecting the
|
||||||
# object file format.
|
# object file format.
|
||||||
# Determine the machine/vendor (is the vendor relevant).
|
#
|
||||||
case "${UNAME_MACHINE}" in
|
# Note: NetBSD doesn't particularly care about the vendor
|
||||||
amiga) machine=m68k-unknown ;;
|
# portion of the name. We always set it to "unknown".
|
||||||
arm32) machine=arm-unknown ;;
|
sysctl="sysctl -n hw.machine_arch"
|
||||||
atari*) machine=m68k-atari ;;
|
UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
|
||||||
sun3*) machine=m68k-sun ;;
|
/usr/sbin/$sysctl 2>/dev/null || echo unknown)`
|
||||||
mac68k) machine=m68k-apple ;;
|
case "${UNAME_MACHINE_ARCH}" in
|
||||||
macppc) machine=powerpc-apple ;;
|
arm*) machine=arm-unknown ;;
|
||||||
hp3[0-9][05]) machine=m68k-hp ;;
|
sh3el) machine=shl-unknown ;;
|
||||||
ibmrt|romp-ibm) machine=romp-ibm ;;
|
sh3eb) machine=sh-unknown ;;
|
||||||
sparc*) machine=`uname -p`-unknown ;;
|
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
|
||||||
*) machine=${UNAME_MACHINE}-unknown ;;
|
|
||||||
esac
|
esac
|
||||||
# The Operating System including object format, if it has switched
|
# The Operating System including object format, if it has switched
|
||||||
# to ELF recently, or will in the future.
|
# to ELF recently, or will in the future.
|
||||||
case "${UNAME_MACHINE}" in
|
case "${UNAME_MACHINE_ARCH}" in
|
||||||
i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
|
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
|
||||||
eval $set_cc_for_build
|
eval $set_cc_for_build
|
||||||
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||||
| grep __ELF__ >/dev/null
|
| grep __ELF__ >/dev/null
|
||||||
@@ -291,6 +290,9 @@ EOF
|
|||||||
*:[Aa]miga[Oo][Ss]:*:*)
|
*:[Aa]miga[Oo][Ss]:*:*)
|
||||||
echo ${UNAME_MACHINE}-unknown-amigaos
|
echo ${UNAME_MACHINE}-unknown-amigaos
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
|
*:[Mm]orph[Oo][Ss]:*:*)
|
||||||
|
echo ${UNAME_MACHINE}-unknown-morphos
|
||||||
|
exit 0 ;;
|
||||||
*:OS/390:*:*)
|
*:OS/390:*:*)
|
||||||
echo i370-ibm-openedition
|
echo i370-ibm-openedition
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
@@ -339,7 +341,7 @@ EOF
|
|||||||
echo m68k-sun-sunos${UNAME_RELEASE}
|
echo m68k-sun-sunos${UNAME_RELEASE}
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
sun*:*:4.2BSD:*)
|
sun*:*:4.2BSD:*)
|
||||||
UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
|
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
|
||||||
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
|
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
|
||||||
case "`/bin/arch`" in
|
case "`/bin/arch`" in
|
||||||
sun3)
|
sun3)
|
||||||
@@ -508,7 +510,7 @@ EOF
|
|||||||
fi
|
fi
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
*:AIX:*:[45])
|
*:AIX:*:[45])
|
||||||
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
|
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
|
||||||
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
|
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
|
||||||
IBM_ARCH=rs6000
|
IBM_ARCH=rs6000
|
||||||
else
|
else
|
||||||
@@ -682,9 +684,6 @@ EOF
|
|||||||
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
|
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
|
||||||
echo c4-convex-bsd
|
echo c4-convex-bsd
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
CRAY*X-MP:*:*:*)
|
|
||||||
echo xmp-cray-unicos
|
|
||||||
exit 0 ;;
|
|
||||||
CRAY*Y-MP:*:*:*)
|
CRAY*Y-MP:*:*:*)
|
||||||
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
@@ -706,9 +705,6 @@ EOF
|
|||||||
CRAY*SV1:*:*:*)
|
CRAY*SV1:*:*:*)
|
||||||
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
CRAY-2:*:*:*)
|
|
||||||
echo cray2-cray-unicos
|
|
||||||
exit 0 ;;
|
|
||||||
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
|
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
|
||||||
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
||||||
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
||||||
@@ -736,6 +732,9 @@ EOF
|
|||||||
i*:PW*:*)
|
i*:PW*:*)
|
||||||
echo ${UNAME_MACHINE}-pc-pw32
|
echo ${UNAME_MACHINE}-pc-pw32
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
|
x86:Interix*:3*)
|
||||||
|
echo i386-pc-interix3
|
||||||
|
exit 0 ;;
|
||||||
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
|
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
|
||||||
# How do we know it's Interix rather than the generic POSIX subsystem?
|
# How do we know it's Interix rather than the generic POSIX subsystem?
|
||||||
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
|
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
|
||||||
@@ -761,16 +760,30 @@ EOF
|
|||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
ia64:Linux:*:*)
|
ia64:Linux:*:*)
|
||||||
echo ${UNAME_MACHINE}-unknown-linux
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
m68*:Linux:*:*)
|
m68*:Linux:*:*)
|
||||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
mips:Linux:*:*)
|
mips:Linux:*:*)
|
||||||
case `sed -n '/^byte/s/^.*: \(.*\) endian/\1/p' < /proc/cpuinfo` in
|
eval $set_cc_for_build
|
||||||
big) echo mips-unknown-linux-gnu && exit 0 ;;
|
sed 's/^ //' << EOF >$dummy.c
|
||||||
little) echo mipsel-unknown-linux-gnu && exit 0 ;;
|
#undef CPU
|
||||||
esac
|
#undef mips
|
||||||
|
#undef mipsel
|
||||||
|
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
||||||
|
CPU=mipsel
|
||||||
|
#else
|
||||||
|
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
||||||
|
CPU=mips
|
||||||
|
#else
|
||||||
|
CPU=
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
EOF
|
||||||
|
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
|
||||||
|
rm -f $dummy.c
|
||||||
|
test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
|
||||||
;;
|
;;
|
||||||
ppc:Linux:*:*)
|
ppc:Linux:*:*)
|
||||||
echo powerpc-unknown-linux-gnu
|
echo powerpc-unknown-linux-gnu
|
||||||
@@ -819,7 +832,8 @@ EOF
|
|||||||
# The BFD linker knows what the default object file format is, so
|
# The BFD linker knows what the default object file format is, so
|
||||||
# first see if it will tell us. cd to the root directory to prevent
|
# first see if it will tell us. cd to the root directory to prevent
|
||||||
# problems with other programs or directories called `ld' in the path.
|
# problems with other programs or directories called `ld' in the path.
|
||||||
ld_supported_targets=`cd /; ld --help 2>&1 \
|
# Set LC_ALL=C to ensure ld outputs messages in English.
|
||||||
|
ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
|
||||||
| sed -ne '/supported targets:/!d
|
| sed -ne '/supported targets:/!d
|
||||||
s/[ ][ ]*/ /g
|
s/[ ][ ]*/ /g
|
||||||
s/.*supported targets: *//
|
s/.*supported targets: *//
|
||||||
@@ -843,32 +857,29 @@ EOF
|
|||||||
esac
|
esac
|
||||||
# Determine whether the default compiler is a.out or elf
|
# Determine whether the default compiler is a.out or elf
|
||||||
eval $set_cc_for_build
|
eval $set_cc_for_build
|
||||||
cat >$dummy.c <<EOF
|
sed 's/^ //' << EOF >$dummy.c
|
||||||
#include <features.h>
|
#include <features.h>
|
||||||
#ifdef __cplusplus
|
#ifdef __ELF__
|
||||||
#include <stdio.h> /* for printf() prototype */
|
# ifdef __GLIBC__
|
||||||
int main (int argc, char *argv[]) {
|
# if __GLIBC__ >= 2
|
||||||
#else
|
LIBC=gnu
|
||||||
int main (argc, argv) int argc; char *argv[]; {
|
# else
|
||||||
#endif
|
LIBC=gnulibc1
|
||||||
#ifdef __ELF__
|
# endif
|
||||||
# ifdef __GLIBC__
|
# else
|
||||||
# if __GLIBC__ >= 2
|
LIBC=gnulibc1
|
||||||
printf ("%s-pc-linux-gnu\n", argv[1]);
|
# endif
|
||||||
# else
|
#else
|
||||||
printf ("%s-pc-linux-gnulibc1\n", argv[1]);
|
#ifdef __INTEL_COMPILER
|
||||||
# endif
|
LIBC=gnu
|
||||||
# else
|
#else
|
||||||
printf ("%s-pc-linux-gnulibc1\n", argv[1]);
|
LIBC=gnuaout
|
||||||
# endif
|
#endif
|
||||||
#else
|
#endif
|
||||||
printf ("%s-pc-linux-gnuaout\n", argv[1]);
|
|
||||||
#endif
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
EOF
|
EOF
|
||||||
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
|
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
|
||||||
rm -f $dummy.c $dummy
|
rm -f $dummy.c
|
||||||
|
test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
|
||||||
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
|
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
|
||||||
;;
|
;;
|
||||||
i*86:DYNIX/ptx:4*:*)
|
i*86:DYNIX/ptx:4*:*)
|
||||||
@@ -947,7 +958,7 @@ EOF
|
|||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
M68*:*:R3V[567]*:*)
|
M68*:*:R3V[567]*:*)
|
||||||
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
|
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
|
||||||
3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
|
3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
|
||||||
OS_REL=''
|
OS_REL=''
|
||||||
test -r /etc/.relid \
|
test -r /etc/.relid \
|
||||||
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
|
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
|
||||||
@@ -1048,15 +1059,17 @@ EOF
|
|||||||
echo `uname -p`-apple-darwin${UNAME_RELEASE}
|
echo `uname -p`-apple-darwin${UNAME_RELEASE}
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
*:procnto*:*:* | *:QNX:[0123456789]*:*)
|
*:procnto*:*:* | *:QNX:[0123456789]*:*)
|
||||||
if test "${UNAME_MACHINE}" = "x86pc"; then
|
UNAME_PROCESSOR=`uname -p`
|
||||||
|
if test "$UNAME_PROCESSOR" = "x86"; then
|
||||||
|
UNAME_PROCESSOR=i386
|
||||||
UNAME_MACHINE=pc
|
UNAME_MACHINE=pc
|
||||||
fi
|
fi
|
||||||
echo `uname -p`-${UNAME_MACHINE}-nto-qnx
|
echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
*:QNX:*:4*)
|
*:QNX:*:4*)
|
||||||
echo i386-pc-qnx
|
echo i386-pc-qnx
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
NSR-[KW]:NONSTOP_KERNEL:*:*)
|
NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*)
|
||||||
echo nsr-tandem-nsk${UNAME_RELEASE}
|
echo nsr-tandem-nsk${UNAME_RELEASE}
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
*:NonStop-UX:*:*)
|
*:NonStop-UX:*:*)
|
||||||
|
|||||||
Vendored
+85
-55
@@ -1,9 +1,9 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Configuration validation subroutine script.
|
# Configuration validation subroutine script.
|
||||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||||
# Free Software Foundation, Inc.
|
# 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||||
|
|
||||||
timestamp='2001-10-05'
|
timestamp='2002-03-07'
|
||||||
|
|
||||||
# This file is (in principle) common to ALL GNU software.
|
# This file is (in principle) common to ALL GNU software.
|
||||||
# The presence of a machine in this file suggests that SOME GNU software
|
# The presence of a machine in this file suggests that SOME GNU software
|
||||||
@@ -118,7 +118,7 @@ esac
|
|||||||
# Here we must recognize all the valid KERNEL-OS combinations.
|
# Here we must recognize all the valid KERNEL-OS combinations.
|
||||||
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
||||||
case $maybe_os in
|
case $maybe_os in
|
||||||
nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-*)
|
nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
|
||||||
os=-$maybe_os
|
os=-$maybe_os
|
||||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
||||||
;;
|
;;
|
||||||
@@ -227,6 +227,7 @@ case $basic_machine in
|
|||||||
1750a | 580 \
|
1750a | 580 \
|
||||||
| a29k \
|
| a29k \
|
||||||
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
|
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
|
||||||
|
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
|
||||||
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
|
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
|
||||||
| c4x | clipper \
|
| c4x | clipper \
|
||||||
| d10v | d30v | dsp16xx \
|
| d10v | d30v | dsp16xx \
|
||||||
@@ -234,25 +235,24 @@ case $basic_machine in
|
|||||||
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
||||||
| i370 | i860 | i960 | ia64 \
|
| i370 | i860 | i960 | ia64 \
|
||||||
| m32r | m68000 | m68k | m88k | mcore \
|
| m32r | m68000 | m68k | m88k | mcore \
|
||||||
| mips16 | mips64 | mips64el | mips64orion | mips64orionel \
|
| mips | mips16 | mips64 | mips64el | mips64orion | mips64orionel \
|
||||||
| mips64vr4100 | mips64vr4100el | mips64vr4300 \
|
| mips64vr4100 | mips64vr4100el | mips64vr4300 \
|
||||||
| mips64vr4300el | mips64vr5000 | mips64vr5000el \
|
| mips64vr4300el | mips64vr5000 | mips64vr5000el \
|
||||||
| mipsbe | mipseb | mipsel | mipsle | mipstx39 | mipstx39el \
|
| mipsbe | mipseb | mipsel | mipsle | mipstx39 | mipstx39el \
|
||||||
| mipsisa32 \
|
| mipsisa32 | mipsisa64 \
|
||||||
| mn10200 | mn10300 \
|
| mn10200 | mn10300 \
|
||||||
| ns16k | ns32k \
|
| ns16k | ns32k \
|
||||||
| openrisc \
|
| openrisc | or32 \
|
||||||
| pdp10 | pdp11 | pj | pjl \
|
| pdp10 | pdp11 | pj | pjl \
|
||||||
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
|
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
|
||||||
| pyramid \
|
| pyramid \
|
||||||
| s390 | s390x \
|
| sh | sh[34] | sh[34]eb | shbe | shle | sh64 \
|
||||||
| sh | sh[34] | sh[34]eb | shbe | shle \
|
| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
|
||||||
| sparc | sparc64 | sparclet | sparclite | sparcv9 | sparcv9b \
|
| strongarm \
|
||||||
| stormy16 | strongarm \
|
|
||||||
| tahoe | thumb | tic80 | tron \
|
| tahoe | thumb | tic80 | tron \
|
||||||
| v850 \
|
| v850 | v850e \
|
||||||
| we32k \
|
| we32k \
|
||||||
| x86 | xscale \
|
| x86 | xscale | xstormy16 | xtensa \
|
||||||
| z8k)
|
| z8k)
|
||||||
basic_machine=$basic_machine-unknown
|
basic_machine=$basic_machine-unknown
|
||||||
;;
|
;;
|
||||||
@@ -279,12 +279,13 @@ case $basic_machine in
|
|||||||
580-* \
|
580-* \
|
||||||
| a29k-* \
|
| a29k-* \
|
||||||
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
|
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
|
||||||
| alphapca5[67]-* | arc-* \
|
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
|
||||||
|
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
||||||
| arm-* | armbe-* | armle-* | armv*-* \
|
| arm-* | armbe-* | armle-* | armv*-* \
|
||||||
| avr-* \
|
| avr-* \
|
||||||
| bs2000-* \
|
| bs2000-* \
|
||||||
| c[123]* | c30-* | [cjt]90-* | c54x-* \
|
| c[123]* | c30-* | [cjt]90-* | c54x-* \
|
||||||
| clipper-* | cray2-* | cydra-* \
|
| clipper-* | cydra-* \
|
||||||
| d10v-* | d30v-* \
|
| d10v-* | d30v-* \
|
||||||
| elxsi-* \
|
| elxsi-* \
|
||||||
| f30[01]-* | f700-* | fr30-* | fx80-* \
|
| f30[01]-* | f700-* | fr30-* | fx80-* \
|
||||||
@@ -292,7 +293,7 @@ case $basic_machine in
|
|||||||
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
||||||
| i*86-* | i860-* | i960-* | ia64-* \
|
| i*86-* | i860-* | i960-* | ia64-* \
|
||||||
| m32r-* \
|
| m32r-* \
|
||||||
| m68000-* | m680[01234]0-* | m68360-* | m683?2-* | m68k-* \
|
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
||||||
| m88110-* | m88k-* | mcore-* \
|
| m88110-* | m88k-* | mcore-* \
|
||||||
| mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \
|
| mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \
|
||||||
| mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \
|
| mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \
|
||||||
@@ -304,14 +305,14 @@ case $basic_machine in
|
|||||||
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
|
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
|
||||||
| pyramid-* \
|
| pyramid-* \
|
||||||
| romp-* | rs6000-* \
|
| romp-* | rs6000-* \
|
||||||
| s390-* | s390x-* \
|
| sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* | sh64-* \
|
||||||
| sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* \
|
| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
|
||||||
| sparc-* | sparc64-* | sparc86x-* | sparclite-* \
|
| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
|
||||||
| sparcv9-* | sparcv9b-* | stormy16-* | strongarm-* | sv1-* \
|
| tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
|
||||||
| t3e-* | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
|
| v850-* | v850e-* | vax-* \
|
||||||
| v850-* | vax-* \
|
|
||||||
| we32k-* \
|
| we32k-* \
|
||||||
| x86-* | x86_64-* | xmp-* | xps100-* | xscale-* \
|
| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
|
||||||
|
| xtensa-* \
|
||||||
| ymp-* \
|
| ymp-* \
|
||||||
| z8k-*)
|
| z8k-*)
|
||||||
;;
|
;;
|
||||||
@@ -376,6 +377,10 @@ case $basic_machine in
|
|||||||
basic_machine=ns32k-sequent
|
basic_machine=ns32k-sequent
|
||||||
os=-dynix
|
os=-dynix
|
||||||
;;
|
;;
|
||||||
|
c90)
|
||||||
|
basic_machine=c90-cray
|
||||||
|
os=-unicos
|
||||||
|
;;
|
||||||
convex-c1)
|
convex-c1)
|
||||||
basic_machine=c1-convex
|
basic_machine=c1-convex
|
||||||
os=-bsd
|
os=-bsd
|
||||||
@@ -396,16 +401,8 @@ case $basic_machine in
|
|||||||
basic_machine=c38-convex
|
basic_machine=c38-convex
|
||||||
os=-bsd
|
os=-bsd
|
||||||
;;
|
;;
|
||||||
cray | ymp)
|
cray | j90)
|
||||||
basic_machine=ymp-cray
|
basic_machine=j90-cray
|
||||||
os=-unicos
|
|
||||||
;;
|
|
||||||
cray2)
|
|
||||||
basic_machine=cray2-cray
|
|
||||||
os=-unicos
|
|
||||||
;;
|
|
||||||
[cjt]90)
|
|
||||||
basic_machine=${basic_machine}-cray
|
|
||||||
os=-unicos
|
os=-unicos
|
||||||
;;
|
;;
|
||||||
crds | unos)
|
crds | unos)
|
||||||
@@ -420,6 +417,14 @@ case $basic_machine in
|
|||||||
decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
|
decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
|
||||||
basic_machine=mips-dec
|
basic_machine=mips-dec
|
||||||
;;
|
;;
|
||||||
|
decsystem10* | dec10*)
|
||||||
|
basic_machine=pdp10-dec
|
||||||
|
os=-tops10
|
||||||
|
;;
|
||||||
|
decsystem20* | dec20*)
|
||||||
|
basic_machine=pdp10-dec
|
||||||
|
os=-tops20
|
||||||
|
;;
|
||||||
delta | 3300 | motorola-3300 | motorola-delta \
|
delta | 3300 | motorola-3300 | motorola-delta \
|
||||||
| 3300-motorola | delta-motorola)
|
| 3300-motorola | delta-motorola)
|
||||||
basic_machine=m68k-motorola
|
basic_machine=m68k-motorola
|
||||||
@@ -600,14 +605,6 @@ case $basic_machine in
|
|||||||
basic_machine=m68k-atari
|
basic_machine=m68k-atari
|
||||||
os=-mint
|
os=-mint
|
||||||
;;
|
;;
|
||||||
mipsel*-linux*)
|
|
||||||
basic_machine=mipsel-unknown
|
|
||||||
os=-linux-gnu
|
|
||||||
;;
|
|
||||||
mips*-linux*)
|
|
||||||
basic_machine=mips-unknown
|
|
||||||
os=-linux-gnu
|
|
||||||
;;
|
|
||||||
mips3*-*)
|
mips3*-*)
|
||||||
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
|
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
|
||||||
;;
|
;;
|
||||||
@@ -622,6 +619,10 @@ case $basic_machine in
|
|||||||
basic_machine=m68k-rom68k
|
basic_machine=m68k-rom68k
|
||||||
os=-coff
|
os=-coff
|
||||||
;;
|
;;
|
||||||
|
morphos)
|
||||||
|
basic_machine=powerpc-unknown
|
||||||
|
os=-morphos
|
||||||
|
;;
|
||||||
msdos)
|
msdos)
|
||||||
basic_machine=i386-pc
|
basic_machine=i386-pc
|
||||||
os=-msdos
|
os=-msdos
|
||||||
@@ -701,6 +702,10 @@ case $basic_machine in
|
|||||||
basic_machine=hppa1.1-oki
|
basic_machine=hppa1.1-oki
|
||||||
os=-proelf
|
os=-proelf
|
||||||
;;
|
;;
|
||||||
|
or32 | or32-*)
|
||||||
|
basic_machine=or32-unknown
|
||||||
|
os=-coff
|
||||||
|
;;
|
||||||
OSE68000 | ose68000)
|
OSE68000 | ose68000)
|
||||||
basic_machine=m68000-ericsson
|
basic_machine=m68000-ericsson
|
||||||
os=-ose
|
os=-ose
|
||||||
@@ -786,6 +791,12 @@ case $basic_machine in
|
|||||||
rtpc | rtpc-*)
|
rtpc | rtpc-*)
|
||||||
basic_machine=romp-ibm
|
basic_machine=romp-ibm
|
||||||
;;
|
;;
|
||||||
|
s390 | s390-*)
|
||||||
|
basic_machine=s390-ibm
|
||||||
|
;;
|
||||||
|
s390x | s390x-*)
|
||||||
|
basic_machine=s390x-ibm
|
||||||
|
;;
|
||||||
sa29200)
|
sa29200)
|
||||||
basic_machine=a29k-amd
|
basic_machine=a29k-amd
|
||||||
os=-udi
|
os=-udi
|
||||||
@@ -855,7 +866,7 @@ case $basic_machine in
|
|||||||
sun386 | sun386i | roadrunner)
|
sun386 | sun386i | roadrunner)
|
||||||
basic_machine=i386-sun
|
basic_machine=i386-sun
|
||||||
;;
|
;;
|
||||||
sv1)
|
sv1)
|
||||||
basic_machine=sv1-cray
|
basic_machine=sv1-cray
|
||||||
os=-unicos
|
os=-unicos
|
||||||
;;
|
;;
|
||||||
@@ -863,8 +874,16 @@ case $basic_machine in
|
|||||||
basic_machine=i386-sequent
|
basic_machine=i386-sequent
|
||||||
os=-dynix
|
os=-dynix
|
||||||
;;
|
;;
|
||||||
|
t3d)
|
||||||
|
basic_machine=alpha-cray
|
||||||
|
os=-unicos
|
||||||
|
;;
|
||||||
t3e)
|
t3e)
|
||||||
basic_machine=t3e-cray
|
basic_machine=alphaev5-cray
|
||||||
|
os=-unicos
|
||||||
|
;;
|
||||||
|
t90)
|
||||||
|
basic_machine=t90-cray
|
||||||
os=-unicos
|
os=-unicos
|
||||||
;;
|
;;
|
||||||
tic54x | c54x*)
|
tic54x | c54x*)
|
||||||
@@ -877,6 +896,10 @@ case $basic_machine in
|
|||||||
tx39el)
|
tx39el)
|
||||||
basic_machine=mipstx39el-unknown
|
basic_machine=mipstx39el-unknown
|
||||||
;;
|
;;
|
||||||
|
toad1)
|
||||||
|
basic_machine=pdp10-xkl
|
||||||
|
os=-tops20
|
||||||
|
;;
|
||||||
tower | tower-32)
|
tower | tower-32)
|
||||||
basic_machine=m68k-ncr
|
basic_machine=m68k-ncr
|
||||||
;;
|
;;
|
||||||
@@ -927,13 +950,13 @@ case $basic_machine in
|
|||||||
basic_machine=i386-pc
|
basic_machine=i386-pc
|
||||||
os=-windows32-msvcrt
|
os=-windows32-msvcrt
|
||||||
;;
|
;;
|
||||||
xmp)
|
|
||||||
basic_machine=xmp-cray
|
|
||||||
os=-unicos
|
|
||||||
;;
|
|
||||||
xps | xps100)
|
xps | xps100)
|
||||||
basic_machine=xps100-honeywell
|
basic_machine=xps100-honeywell
|
||||||
;;
|
;;
|
||||||
|
ymp)
|
||||||
|
basic_machine=ymp-cray
|
||||||
|
os=-unicos
|
||||||
|
;;
|
||||||
z8k-*-coff)
|
z8k-*-coff)
|
||||||
basic_machine=z8k-unknown
|
basic_machine=z8k-unknown
|
||||||
os=-sim
|
os=-sim
|
||||||
@@ -954,13 +977,6 @@ case $basic_machine in
|
|||||||
op60c)
|
op60c)
|
||||||
basic_machine=hppa1.1-oki
|
basic_machine=hppa1.1-oki
|
||||||
;;
|
;;
|
||||||
mips)
|
|
||||||
if [ x$os = x-linux-gnu ]; then
|
|
||||||
basic_machine=mips-unknown
|
|
||||||
else
|
|
||||||
basic_machine=mips-mips
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
romp)
|
romp)
|
||||||
basic_machine=romp-ibm
|
basic_machine=romp-ibm
|
||||||
;;
|
;;
|
||||||
@@ -983,6 +999,9 @@ case $basic_machine in
|
|||||||
sh3 | sh4 | sh3eb | sh4eb)
|
sh3 | sh4 | sh3eb | sh4eb)
|
||||||
basic_machine=sh-unknown
|
basic_machine=sh-unknown
|
||||||
;;
|
;;
|
||||||
|
sh64)
|
||||||
|
basic_machine=sh64-unknown
|
||||||
|
;;
|
||||||
sparc | sparcv9 | sparcv9b)
|
sparc | sparcv9 | sparcv9b)
|
||||||
basic_machine=sparc-sun
|
basic_machine=sparc-sun
|
||||||
;;
|
;;
|
||||||
@@ -1070,7 +1089,8 @@ case $os in
|
|||||||
| -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
|
| -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
|
||||||
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
|
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
|
||||||
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
|
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
|
||||||
| -os2* | -vos*)
|
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
|
||||||
|
| -morphos* | -superux* | -rtmk* | -rtmk-nova*)
|
||||||
# Remember, each alternative MUST END IN *, to match a version number.
|
# Remember, each alternative MUST END IN *, to match a version number.
|
||||||
;;
|
;;
|
||||||
-qnx*)
|
-qnx*)
|
||||||
@@ -1122,12 +1142,18 @@ case $os in
|
|||||||
-acis*)
|
-acis*)
|
||||||
os=-aos
|
os=-aos
|
||||||
;;
|
;;
|
||||||
|
-atheos*)
|
||||||
|
os=-atheos
|
||||||
|
;;
|
||||||
-386bsd)
|
-386bsd)
|
||||||
os=-bsd
|
os=-bsd
|
||||||
;;
|
;;
|
||||||
-ctix* | -uts*)
|
-ctix* | -uts*)
|
||||||
os=-sysv
|
os=-sysv
|
||||||
;;
|
;;
|
||||||
|
-nova*)
|
||||||
|
os=-rtmk-nova
|
||||||
|
;;
|
||||||
-ns2 )
|
-ns2 )
|
||||||
os=-nextstep2
|
os=-nextstep2
|
||||||
;;
|
;;
|
||||||
@@ -1202,6 +1228,7 @@ case $basic_machine in
|
|||||||
arm*-semi)
|
arm*-semi)
|
||||||
os=-aout
|
os=-aout
|
||||||
;;
|
;;
|
||||||
|
# This must come before the *-dec entry.
|
||||||
pdp10-*)
|
pdp10-*)
|
||||||
os=-tops20
|
os=-tops20
|
||||||
;;
|
;;
|
||||||
@@ -1232,6 +1259,9 @@ case $basic_machine in
|
|||||||
mips*-*)
|
mips*-*)
|
||||||
os=-elf
|
os=-elf
|
||||||
;;
|
;;
|
||||||
|
or32-*)
|
||||||
|
os=-coff
|
||||||
|
;;
|
||||||
*-tti) # must be before sparc entry or we get the wrong os.
|
*-tti) # must be before sparc entry or we get the wrong os.
|
||||||
os=-sysv3
|
os=-sysv3
|
||||||
;;
|
;;
|
||||||
|
|||||||
+29
-4
@@ -31,7 +31,16 @@ if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
|||||||
fi
|
fi
|
||||||
# `libtool' can also be set to `yes' or `no'.
|
# `libtool' can also be set to `yes' or `no'.
|
||||||
|
|
||||||
depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`}
|
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/'`}
|
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||||
|
|
||||||
rm -f "$tmpdepfile"
|
rm -f "$tmpdepfile"
|
||||||
@@ -204,8 +213,9 @@ tru64)
|
|||||||
# dependencies in `foo.d' instead, so we check for that too.
|
# dependencies in `foo.d' instead, so we check for that too.
|
||||||
# Subdirectories are respected.
|
# Subdirectories are respected.
|
||||||
|
|
||||||
tmpdepfile1="$object.d"
|
base=`echo "$object" | sed -e 's/\.o$/.d/' -e 's/\.lo$/.d/'`
|
||||||
tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'`
|
tmpdepfile1="$base.o.d"
|
||||||
|
tmpdepfile2="$base.d"
|
||||||
if test "$libtool" = yes; then
|
if test "$libtool" = yes; then
|
||||||
"$@" -Wc,-MD
|
"$@" -Wc,-MD
|
||||||
else
|
else
|
||||||
@@ -314,7 +324,7 @@ makedepend)
|
|||||||
if test "$stat" != 0; then exit $stat; fi
|
if test "$stat" != 0; then exit $stat; fi
|
||||||
rm -f "$depfile"
|
rm -f "$depfile"
|
||||||
cat < "$tmpdepfile" > "$depfile"
|
cat < "$tmpdepfile" > "$depfile"
|
||||||
tail +3 "$tmpdepfile" | tr ' ' '
|
sed '1,2d' "$tmpdepfile" | tr ' ' '
|
||||||
' | \
|
' | \
|
||||||
## Some versions of the HPUX 10.20 sed can't process this invocation
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
## correctly. Breaking it into two sed invocations is a workaround.
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
@@ -382,6 +392,21 @@ msvisualcpp)
|
|||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
esac
|
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 |
|
"$@" -E |
|
||||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
|
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
|
||||||
) &
|
) &
|
||||||
|
|||||||
+17
-17
@@ -109,7 +109,7 @@ then
|
|||||||
echo "install: no input file specified"
|
echo "install: no input file specified"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
true
|
:
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ x"$dir_arg" != x ]; then
|
if [ x"$dir_arg" != x ]; then
|
||||||
@@ -120,7 +120,7 @@ if [ x"$dir_arg" != x ]; then
|
|||||||
instcmd=:
|
instcmd=:
|
||||||
chmodcmd=""
|
chmodcmd=""
|
||||||
else
|
else
|
||||||
instcmd=mkdir
|
instcmd=$mkdirprog
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
|
||||||
@@ -130,7 +130,7 @@ else
|
|||||||
|
|
||||||
if [ -f $src -o -d $src ]
|
if [ -f $src -o -d $src ]
|
||||||
then
|
then
|
||||||
true
|
:
|
||||||
else
|
else
|
||||||
echo "install: $src does not exist"
|
echo "install: $src does not exist"
|
||||||
exit 1
|
exit 1
|
||||||
@@ -141,7 +141,7 @@ else
|
|||||||
echo "install: no destination specified"
|
echo "install: no destination specified"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
true
|
:
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If destination is a directory, append the input filename; if your system
|
# If destination is a directory, append the input filename; if your system
|
||||||
@@ -151,7 +151,7 @@ else
|
|||||||
then
|
then
|
||||||
dst="$dst"/`basename $src`
|
dst="$dst"/`basename $src`
|
||||||
else
|
else
|
||||||
true
|
:
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -163,8 +163,8 @@ dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
|||||||
|
|
||||||
# Skip lots of stat calls in the usual case.
|
# Skip lots of stat calls in the usual case.
|
||||||
if [ ! -d "$dstdir" ]; then
|
if [ ! -d "$dstdir" ]; then
|
||||||
defaultIFS='
|
defaultIFS='
|
||||||
'
|
'
|
||||||
IFS="${IFS-${defaultIFS}}"
|
IFS="${IFS-${defaultIFS}}"
|
||||||
|
|
||||||
oIFS="${IFS}"
|
oIFS="${IFS}"
|
||||||
@@ -183,7 +183,7 @@ while [ $# -ne 0 ] ; do
|
|||||||
then
|
then
|
||||||
$mkdirprog "${pathcomp}"
|
$mkdirprog "${pathcomp}"
|
||||||
else
|
else
|
||||||
true
|
:
|
||||||
fi
|
fi
|
||||||
|
|
||||||
pathcomp="${pathcomp}/"
|
pathcomp="${pathcomp}/"
|
||||||
@@ -194,10 +194,10 @@ if [ x"$dir_arg" != x ]
|
|||||||
then
|
then
|
||||||
$doit $instcmd $dst &&
|
$doit $instcmd $dst &&
|
||||||
|
|
||||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
|
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi &&
|
||||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
|
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi &&
|
||||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
|
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi &&
|
||||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
|
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi
|
||||||
else
|
else
|
||||||
|
|
||||||
# If we're going to rename the final executable, determine the name now.
|
# If we're going to rename the final executable, determine the name now.
|
||||||
@@ -216,7 +216,7 @@ else
|
|||||||
then
|
then
|
||||||
dstfile=`basename $dst`
|
dstfile=`basename $dst`
|
||||||
else
|
else
|
||||||
true
|
:
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Make a temp file name in the proper directory.
|
# Make a temp file name in the proper directory.
|
||||||
@@ -235,10 +235,10 @@ else
|
|||||||
# ignore errors from any of these, just make sure not to ignore
|
# ignore errors from any of these, just make sure not to ignore
|
||||||
# errors from the above "$doit $instcmd $src $dsttmp" command.
|
# errors from the above "$doit $instcmd $src $dsttmp" command.
|
||||||
|
|
||||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
|
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi &&
|
||||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
|
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi &&
|
||||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
|
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi &&
|
||||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
|
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi &&
|
||||||
|
|
||||||
# Now rename the file to the real destination.
|
# Now rename the file to the real destination.
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -87,7 +87,7 @@ Supported PROGRAM values:
|
|||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
|
|
||||||
aclocal)
|
aclocal*)
|
||||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||||
# We have it, but it failed.
|
# We have it, but it failed.
|
||||||
exit 1
|
exit 1
|
||||||
@@ -139,7 +139,7 @@ WARNING: \`$1' is missing on your system. You should only need it if
|
|||||||
touch $touch_files
|
touch $touch_files
|
||||||
;;
|
;;
|
||||||
|
|
||||||
automake)
|
automake*)
|
||||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||||
# We have it, but it failed.
|
# We have it, but it failed.
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
1.28
|
1.34
|
||||||
|
|||||||
+288
-225
@@ -3,10 +3,10 @@
|
|||||||
% Load plain if necessary, i.e., if running under initex.
|
% Load plain if necessary, i.e., if running under initex.
|
||||||
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
|
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
|
||||||
%
|
%
|
||||||
\def\texinfoversion{2001-07-25.07}
|
\def\texinfoversion{2002-03-13.06}
|
||||||
%
|
%
|
||||||
% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
|
% 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
|
% 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
|
% 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
|
% Please try the latest version of texinfo.tex before submitting bug
|
||||||
% reports; you can get the latest version from:
|
% reports; you can get the latest version from:
|
||||||
% ftp://ftp.gnu.org/gnu/texinfo.tex
|
% ftp://ftp.gnu.org/gnu/texinfo.tex
|
||||||
% (and all GNU mirrors, see http://www.gnu.org/order/ftp.html)
|
% (and all GNU mirrors, see http://www.gnu.org/order/ftp.html)
|
||||||
% ftp://texinfo.org/tex/texinfo.tex
|
% ftp://texinfo.org/texinfo/texinfo.tex
|
||||||
% ftp://us.ctan.org/macros/texinfo/texinfo.tex
|
% ftp://tug.org/tex/texinfo.tex
|
||||||
% (and all CTAN mirrors, finger [email protected] for a list).
|
% (and all CTAN mirrors, see http://www.ctan.org),
|
||||||
% /home/gd/gnu/doc/texinfo.tex on the GNU machines.
|
% and /home/gd/gnu/doc/texinfo.tex on the GNU machines.
|
||||||
|
%
|
||||||
% The texinfo.tex in any given Texinfo distribution could well be out
|
% The texinfo.tex in any given Texinfo distribution could well be out
|
||||||
% of date, so if that's what you're using, please check.
|
% 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 [email protected]. Please include including a
|
% Send bug reports to [email protected]. Please include including a
|
||||||
% complete document in each bug report with which we can reproduce the
|
% complete document in each bug report with which we can reproduce the
|
||||||
@@ -51,12 +54,12 @@
|
|||||||
% tex foo.texi
|
% tex foo.texi
|
||||||
% tex foo.texi
|
% tex foo.texi
|
||||||
% dvips foo.dvi -o # or whatever, to process the dvi file; this makes foo.ps.
|
% 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
|
% Sometimes one run after texindex suffices, and sometimes you need more
|
||||||
% than two; texi2dvi does it as many times as necessary.
|
% than two; texi2dvi does it as many times as necessary.
|
||||||
%
|
%
|
||||||
% It is possible to adapt texinfo.tex for other languages. You can get
|
% 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]:}
|
\message{Loading texinfo [version \texinfoversion]:}
|
||||||
|
|
||||||
@@ -833,18 +836,43 @@ where each line of input produces a line of output.}
|
|||||||
%
|
%
|
||||||
\def\asis#1{#1}
|
\def\asis#1{#1}
|
||||||
|
|
||||||
% @math means output in math mode.
|
% @math outputs its argument in math mode.
|
||||||
% We don't use $'s directly in the definition of \math because control
|
% We don't use $'s directly in the definition of \math because we need
|
||||||
% sequences like \math are expanded when the toc file is written. Then,
|
% to set catcodes according to plain TeX first, to allow for subscripts,
|
||||||
% we read the toc file back, the $'s will be normal characters (as they
|
% superscripts, special math chars, etc.
|
||||||
% should be, according to the definition of Texinfo). So we must use a
|
%
|
||||||
% control sequence to switch into and out of math mode.
|
% @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
|
\let\implicitmath = $%$ font-lock fix
|
||||||
% seems unlikely it will ever be needed there.
|
|
||||||
%
|
%
|
||||||
\let\implicitmath = $
|
% One complication: _ usually means subscripts, but it could also mean
|
||||||
\def\math#1{\implicitmath #1\implicitmath}
|
% 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}%
|
||||||
|
}}
|
||||||
|
%
|
||||||
|
% Another complication: we want \\ (and @\) to output a \ character.
|
||||||
|
% FYI, plain.tex uses \\ as a temporary control sequence (why?), but
|
||||||
|
% this is not advertised and we don't care. Texinfo does not
|
||||||
|
% otherwise define @\.
|
||||||
|
%
|
||||||
|
% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\.
|
||||||
|
\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
|
||||||
|
%
|
||||||
|
\def\math{%
|
||||||
|
\tex
|
||||||
|
\mathcode`\_="8000 \mathunderscore
|
||||||
|
\let\\ = \mathbackslash
|
||||||
|
\implicitmath\finishmath}
|
||||||
|
\def\finishmath#1{#1\implicitmath\Etex}
|
||||||
|
|
||||||
% @bullet and @minus need the same treatment as @math, just above.
|
% @bullet and @minus need the same treatment as @math, just above.
|
||||||
\def\bullet{\implicitmath\ptexbullet\implicitmath}
|
\def\bullet{\implicitmath\ptexbullet\implicitmath}
|
||||||
@@ -927,10 +955,12 @@ where each line of input produces a line of output.}
|
|||||||
\def\dopdfimage#1#2#3{%
|
\def\dopdfimage#1#2#3{%
|
||||||
\def\imagewidth{#2}%
|
\def\imagewidth{#2}%
|
||||||
\def\imageheight{#3}%
|
\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
|
\ifnum\pdftexversion < 14
|
||||||
\pdfimage
|
\immediate\pdfimage
|
||||||
\else
|
\else
|
||||||
\pdfximage
|
\immediate\pdfximage
|
||||||
\fi
|
\fi
|
||||||
\ifx\empty\imagewidth\else width \imagewidth \fi
|
\ifx\empty\imagewidth\else width \imagewidth \fi
|
||||||
\ifx\empty\imageheight\else height \imageheight \fi
|
\ifx\empty\imageheight\else height \imageheight \fi
|
||||||
@@ -943,7 +973,7 @@ where each line of input produces a line of output.}
|
|||||||
\pdfrefximage \pdflastximage
|
\pdfrefximage \pdflastximage
|
||||||
\fi}
|
\fi}
|
||||||
\def\pdfmkdest#1{{\normalturnoffactive \pdfdest name{#1} xyz}}
|
\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?
|
\let\linkcolor = \Blue % was Cyan, but that seems light?
|
||||||
\def\endlink{\Black\pdfendlink}
|
\def\endlink{\Black\pdfendlink}
|
||||||
% Adding outlines to PDF; macros for calculating structure of outlines
|
% Adding outlines to PDF; macros for calculating structure of outlines
|
||||||
@@ -955,7 +985,7 @@ where each line of input produces a line of output.}
|
|||||||
\expandafter\xdef\csname#1\endcsname{\the\tempnum}}
|
\expandafter\xdef\csname#1\endcsname{\the\tempnum}}
|
||||||
\def\pdfmakeoutlines{{%
|
\def\pdfmakeoutlines{{%
|
||||||
\openin 1 \jobname.toc
|
\openin 1 \jobname.toc
|
||||||
\ifeof 1\else\bgroup
|
\ifeof 1\else\begingroup
|
||||||
\closein 1
|
\closein 1
|
||||||
\indexnofonts
|
\indexnofonts
|
||||||
\def\tt{}
|
\def\tt{}
|
||||||
@@ -965,32 +995,34 @@ where each line of input produces a line of output.}
|
|||||||
\edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
|
\edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
|
||||||
%
|
%
|
||||||
\def\chapentry ##1##2##3{}
|
\def\chapentry ##1##2##3{}
|
||||||
|
\let\appendixentry = \chapentry
|
||||||
\def\unnumbchapentry ##1##2{}
|
\def\unnumbchapentry ##1##2{}
|
||||||
\def\secentry ##1##2##3##4{\advancenumber{chap##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\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\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
|
\input \jobname.toc
|
||||||
\def\chapentry ##1##2##3{%
|
\def\chapentry ##1##2##3{%
|
||||||
\pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}}
|
\pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}}
|
||||||
|
\let\appendixentry = \chapentry
|
||||||
\def\unnumbchapentry ##1##2{%
|
\def\unnumbchapentry ##1##2{%
|
||||||
\pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
|
\pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
|
||||||
\def\secentry ##1##2##3##4{%
|
\def\secentry ##1##2##3##4{%
|
||||||
\pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}}
|
\pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}}
|
||||||
\def\unnumbsecentry ##1##2{%
|
\def\unnumbsecentry ##1##2##3{%
|
||||||
\pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
|
\pdfoutline goto name{\pdfmkpgn{##3}}{##1}}
|
||||||
\def\subsecentry ##1##2##3##4##5{%
|
\def\subsecentry ##1##2##3##4##5{%
|
||||||
\pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}}
|
\pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}}
|
||||||
\def\unnumbsubsecentry ##1##2{%
|
\def\unnumbsubsecentry ##1##2##3##4{%
|
||||||
\pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
|
\pdfoutline goto name{\pdfmkpgn{##4}}{##1}}
|
||||||
\def\subsubsecentry ##1##2##3##4##5##6{%
|
\def\subsubsecentry ##1##2##3##4##5##6{%
|
||||||
\pdfoutline goto name{\pdfmkpgn{##6}}{##1}}
|
\pdfoutline goto name{\pdfmkpgn{##6}}{##1}}
|
||||||
\def\unnumbsubsubsecentry ##1##2{%
|
\def\unnumbsubsubsecentry ##1##2##3##4##5{%
|
||||||
\pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
|
\pdfoutline goto name{\pdfmkpgn{##5}}{##1}}
|
||||||
\input \jobname.toc
|
\input \jobname.toc
|
||||||
\egroup\fi
|
\endgroup\fi
|
||||||
}}
|
}}
|
||||||
\def\makelinks #1,{%
|
\def\makelinks #1,{%
|
||||||
\def\params{#1}\def\E{END}%
|
\def\params{#1}\def\E{END}%
|
||||||
@@ -1107,9 +1139,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
|
% Set the font macro #1 to the font named #2, adding on the
|
||||||
% specified font prefix (normally `cm').
|
% specified font prefix (normally `cm').
|
||||||
% #3 is the font's design size, #4 is a scale factor
|
% #3 is the font's design size, #4 is a scale factor
|
||||||
@@ -1138,13 +1167,16 @@ where each line of input produces a line of output.}
|
|||||||
\def\scshape{csc}
|
\def\scshape{csc}
|
||||||
\def\scbshape{csc}
|
\def\scbshape{csc}
|
||||||
|
|
||||||
|
\newcount\mainmagstep
|
||||||
\ifx\bigger\relax
|
\ifx\bigger\relax
|
||||||
\let\mainmagstep=\magstep1
|
% not really supported.
|
||||||
\setfont\textrm\rmshape{12}{1000}
|
\let\mainmagstep=\magstep1
|
||||||
\setfont\texttt\ttshape{12}{1000}
|
\setfont\textrm\rmshape{12}{1000}
|
||||||
|
\setfont\texttt\ttshape{12}{1000}
|
||||||
\else
|
\else
|
||||||
\setfont\textrm\rmshape{10}{\mainmagstep}
|
\mainmagstep=\magstephalf
|
||||||
\setfont\texttt\ttshape{10}{\mainmagstep}
|
\setfont\textrm\rmshape{10}{\mainmagstep}
|
||||||
|
\setfont\texttt\ttshape{10}{\mainmagstep}
|
||||||
\fi
|
\fi
|
||||||
% Instead of cmb10, you many want to use cmbx10.
|
% Instead of cmb10, you many want to use cmbx10.
|
||||||
% cmbx10 is a prettier font on its own, but cmb10
|
% cmbx10 is a prettier font on its own, but cmb10
|
||||||
@@ -1224,20 +1256,6 @@ where each line of input produces a line of output.}
|
|||||||
\font\seci=cmmi12 scaled \magstep1
|
\font\seci=cmmi12 scaled \magstep1
|
||||||
\font\secsy=cmsy10 scaled \magstep2
|
\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).
|
% Subsection fonts (13.15pt).
|
||||||
\setfont\ssecrm\rmbshape{12}{\magstephalf}
|
\setfont\ssecrm\rmbshape{12}{\magstephalf}
|
||||||
\setfont\ssecit\itbshape{10}{1315}
|
\setfont\ssecit\itbshape{10}{1315}
|
||||||
@@ -1254,17 +1272,16 @@ where each line of input produces a line of output.}
|
|||||||
|
|
||||||
% In order for the font changes to affect most math symbols and letters,
|
% In order for the font changes to affect most math symbols and letters,
|
||||||
% we have to define the \textfont of the standard families. Since
|
% we have to define the \textfont of the standard families. Since
|
||||||
% texinfo doesn't allow for producing subscripts and superscripts, we
|
% texinfo doesn't allow for producing subscripts and superscripts except
|
||||||
% don't bother to reset \scriptfont and \scriptscriptfont (which would
|
% in the main text, we don't bother to reset \scriptfont and
|
||||||
% also require loading a lot more fonts).
|
% \scriptscriptfont (which would also require loading a lot more fonts).
|
||||||
%
|
%
|
||||||
\def\resetmathfonts{%
|
\def\resetmathfonts{%
|
||||||
\textfont0 = \tenrm \textfont1 = \teni \textfont2 = \tensy
|
\textfont0=\tenrm \textfont1=\teni \textfont2=\tensy
|
||||||
\textfont\itfam = \tenit \textfont\slfam = \tensl \textfont\bffam = \tenbf
|
\textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf
|
||||||
\textfont\ttfam = \tentt \textfont\sffam = \tensf
|
\textfont\ttfam=\tentt \textfont\sffam=\tensf
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
% The font-changing commands redefine the meanings of \tenSTYLE, instead
|
% The font-changing commands redefine the meanings of \tenSTYLE, instead
|
||||||
% of just \STYLE. We do this so that font changes will continue to work
|
% 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
|
% in math mode, where it is the current \fam that is relevant in most
|
||||||
@@ -1425,11 +1442,19 @@ where each line of input produces a line of output.}
|
|||||||
|
|
||||||
\def\realdash{-}
|
\def\realdash{-}
|
||||||
\def\codedash{-\discretionary{}{}{}}
|
\def\codedash{-\discretionary{}{}{}}
|
||||||
\def\codeunder{\ifusingtt{\normalunderscore\discretionary{}{}{}}{\_}}
|
\def\codeunder{%
|
||||||
|
% this is all so @math{@code{var_name}+1} can work. In math mode, _
|
||||||
|
% is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.)
|
||||||
|
% will therefore expand the active definition of _, which is us
|
||||||
|
% (inside @code that is), therefore an endless loop.
|
||||||
|
\ifusingtt{\ifmmode
|
||||||
|
\mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_.
|
||||||
|
\else\normalunderscore \fi
|
||||||
|
\discretionary{}{}{}}%
|
||||||
|
{\_}%
|
||||||
|
}
|
||||||
\def\codex #1{\tclose{#1}\endgroup}
|
\def\codex #1{\tclose{#1}\endgroup}
|
||||||
|
|
||||||
%\let\exp=\tclose %Was temporary
|
|
||||||
|
|
||||||
% @kbd is like @code, except that if the argument is just one @key command,
|
% @kbd is like @code, except that if the argument is just one @key command,
|
||||||
% then @kbd has no effect.
|
% then @kbd has no effect.
|
||||||
|
|
||||||
@@ -1631,8 +1656,6 @@ where each line of input produces a line of output.}
|
|||||||
\global\let\contents = \relax
|
\global\let\contents = \relax
|
||||||
\global\let\shortcontents = \relax
|
\global\let\shortcontents = \relax
|
||||||
\fi
|
\fi
|
||||||
%
|
|
||||||
\ifpdf \pdfmakepagedesttrue \fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
\def\finishtitlepage{%
|
\def\finishtitlepage{%
|
||||||
@@ -2753,9 +2776,23 @@ width0pt\relax} \fi
|
|||||||
\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
|
\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
|
||||||
\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
|
\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\indexdummies{%
|
||||||
\def\ { }%
|
\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.
|
% Take care of the plain tex accent commands.
|
||||||
|
\def\,##1{\realbackslash ,{##1}}%
|
||||||
\def\"{\realbackslash "}%
|
\def\"{\realbackslash "}%
|
||||||
\def\`{\realbackslash `}%
|
\def\`{\realbackslash `}%
|
||||||
\def\'{\realbackslash '}%
|
\def\'{\realbackslash '}%
|
||||||
@@ -2768,69 +2805,66 @@ width0pt\relax} \fi
|
|||||||
\def\u{\realbackslash u}%
|
\def\u{\realbackslash u}%
|
||||||
\def\v{\realbackslash v}%
|
\def\v{\realbackslash v}%
|
||||||
\def\H{\realbackslash H}%
|
\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\dotless##1{\realbackslash dotless {##1}}%
|
||||||
\def\samp##1{\realbackslash samp {##1}}%
|
% Take care of the plain tex special European modified letters.
|
||||||
\def\,##1{\realbackslash ,{##1}}%
|
\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\t##1{\realbackslash t {##1}}%
|
||||||
\def\r##1{\realbackslash r {##1}}%
|
\def\r##1{\realbackslash r {##1}}%
|
||||||
\def\i##1{\realbackslash i {##1}}%
|
%
|
||||||
\def\b##1{\realbackslash b {##1}}%
|
\def\TeX{\realbackslash TeX}%
|
||||||
\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\acronym##1{\realbackslash acronym {##1}}%
|
\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
|
% Handle some cases of @value -- where the variable name does not
|
||||||
% contain - or _, and the value does not contain any
|
% contain - or _, and the value does not contain any
|
||||||
@@ -2844,7 +2878,7 @@ width0pt\relax} \fi
|
|||||||
|
|
||||||
% If an index command is used in an @example environment, any spaces
|
% If an index command is used in an @example environment, any spaces
|
||||||
% therein should become regular spaces in the raw index file, not the
|
% therein should become regular spaces in the raw index file, not the
|
||||||
% expansion of \tie (\\leavevmode \penalty \@M \ ).
|
% expansion of \tie (\leavevmode \penalty \@M \ ).
|
||||||
{\obeyspaces
|
{\obeyspaces
|
||||||
\gdef\unsepspaces{\obeyspaces\let =\space}}
|
\gdef\unsepspaces{\obeyspaces\let =\space}}
|
||||||
|
|
||||||
@@ -2855,7 +2889,10 @@ width0pt\relax} \fi
|
|||||||
\def\indexdummydots{...}
|
\def\indexdummydots{...}
|
||||||
|
|
||||||
\def\indexnofonts{%
|
\def\indexnofonts{%
|
||||||
% Just ignore accents.
|
\def\@{@}%
|
||||||
|
% how to handle braces?
|
||||||
|
\def\_{\normalunderscore}%
|
||||||
|
%
|
||||||
\let\,=\indexdummyfont
|
\let\,=\indexdummyfont
|
||||||
\let\"=\indexdummyfont
|
\let\"=\indexdummyfont
|
||||||
\let\`=\indexdummyfont
|
\let\`=\indexdummyfont
|
||||||
@@ -2871,45 +2908,49 @@ width0pt\relax} \fi
|
|||||||
\let\H=\indexdummyfont
|
\let\H=\indexdummyfont
|
||||||
\let\dotless=\indexdummyfont
|
\let\dotless=\indexdummyfont
|
||||||
% Take care of the plain tex special European modified letters.
|
% 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\AA{AA}%
|
||||||
\def\o{o}%
|
\def\AE{AE}%
|
||||||
\def\O{O}%
|
|
||||||
\def\l{l}%
|
|
||||||
\def\L{L}%
|
\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}%
|
\def\ss{ss}%
|
||||||
\let\w=\indexdummyfont
|
%
|
||||||
\let\t=\indexdummyfont
|
% Don't no-op \tt, since it isn't a user-level command
|
||||||
\let\r=\indexdummyfont
|
% and is used in the definitions of the active chars like <, >, |, etc.
|
||||||
\let\i=\indexdummyfont
|
% Likewise with the other plain tex font commands.
|
||||||
\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 <, >, |...
|
|
||||||
%\let\tt=\indexdummyfont
|
%\let\tt=\indexdummyfont
|
||||||
\let\tclose=\indexdummyfont
|
%
|
||||||
\let\code=\indexdummyfont
|
\let\b=\indexdummyfont
|
||||||
\let\url=\indexdummyfont
|
\let\i=\indexdummyfont
|
||||||
\let\uref=\indexdummyfont
|
\let\r=\indexdummyfont
|
||||||
\let\env=\indexdummyfont
|
\let\sc=\indexdummyfont
|
||||||
|
\let\t=\indexdummyfont
|
||||||
|
%
|
||||||
|
\let\TeX=\indexdummytex
|
||||||
\let\acronym=\indexdummyfont
|
\let\acronym=\indexdummyfont
|
||||||
|
\let\cite=\indexdummyfont
|
||||||
|
\let\code=\indexdummyfont
|
||||||
\let\command=\indexdummyfont
|
\let\command=\indexdummyfont
|
||||||
\let\option=\indexdummyfont
|
\let\dfn=\indexdummyfont
|
||||||
|
\let\dots=\indexdummydots
|
||||||
|
\let\emph=\indexdummyfont
|
||||||
|
\let\env=\indexdummyfont
|
||||||
\let\file=\indexdummyfont
|
\let\file=\indexdummyfont
|
||||||
\let\samp=\indexdummyfont
|
|
||||||
\let\kbd=\indexdummyfont
|
\let\kbd=\indexdummyfont
|
||||||
\let\key=\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\var=\indexdummyfont
|
||||||
\let\TeX=\indexdummytex
|
\let\w=\indexdummyfont
|
||||||
\let\dots=\indexdummydots
|
|
||||||
\def\@{@}%
|
|
||||||
}
|
}
|
||||||
|
|
||||||
% To define \realbackslash, we must make \ not be an escape.
|
% To define \realbackslash, we must make \ not be an escape.
|
||||||
@@ -3511,8 +3552,8 @@ width0pt\relax} \fi
|
|||||||
\gdef\thischaptername{#1}%
|
\gdef\thischaptername{#1}%
|
||||||
\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}%
|
\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}%
|
||||||
\toks0 = {#1}%
|
\toks0 = {#1}%
|
||||||
\edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}%
|
\edef\temp{\noexpand\writetocentry{\realbackslash appendixentry{\the\toks0}%
|
||||||
{\putwordAppendix{} \appendixletter}}}%
|
{\appendixletter}}}%
|
||||||
\temp
|
\temp
|
||||||
\appendixnoderef
|
\appendixnoderef
|
||||||
\global\let\section = \appendixsec
|
\global\let\section = \appendixsec
|
||||||
@@ -3589,7 +3630,8 @@ width0pt\relax} \fi
|
|||||||
\def\unnumberedseczzz #1{%
|
\def\unnumberedseczzz #1{%
|
||||||
\plainsecheading {#1}\gdef\thissection{#1}%
|
\plainsecheading {#1}\gdef\thissection{#1}%
|
||||||
\toks0 = {#1}%
|
\toks0 = {#1}%
|
||||||
\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry{\the\toks0}}}%
|
\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry%
|
||||||
|
{\the\toks0}{\the\chapno}}}%
|
||||||
\temp
|
\temp
|
||||||
\unnumbnoderef
|
\unnumbnoderef
|
||||||
\nobreak
|
\nobreak
|
||||||
@@ -3628,7 +3670,7 @@ width0pt\relax} \fi
|
|||||||
\plainsubsecheading {#1}\gdef\thissection{#1}%
|
\plainsubsecheading {#1}\gdef\thissection{#1}%
|
||||||
\toks0 = {#1}%
|
\toks0 = {#1}%
|
||||||
\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry%
|
\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry%
|
||||||
{\the\toks0}}}%
|
{\the\toks0}{\the\chapno}{\the\secno}}}%
|
||||||
\temp
|
\temp
|
||||||
\unnumbnoderef
|
\unnumbnoderef
|
||||||
\nobreak
|
\nobreak
|
||||||
@@ -3669,7 +3711,7 @@ width0pt\relax} \fi
|
|||||||
\plainsubsubsecheading {#1}\gdef\thissection{#1}%
|
\plainsubsubsecheading {#1}\gdef\thissection{#1}%
|
||||||
\toks0 = {#1}%
|
\toks0 = {#1}%
|
||||||
\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry%
|
\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry%
|
||||||
{\the\toks0}}}%
|
{\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}}}%
|
||||||
\temp
|
\temp
|
||||||
\unnumbnoderef
|
\unnumbnoderef
|
||||||
\nobreak
|
\nobreak
|
||||||
@@ -3881,7 +3923,7 @@ width0pt\relax} \fi
|
|||||||
% argument, which will end up as the last argument to the \...entry macro.
|
% argument, which will end up as the last argument to the \...entry macro.
|
||||||
%
|
%
|
||||||
% We open the .toc file here instead of at @setfilename or any other
|
% We open the .toc file here instead of at @setfilename or any other
|
||||||
% given time so that @contents can be put in the document anywhere.
|
% fixed time so that @contents can be put in the document anywhere.
|
||||||
%
|
%
|
||||||
\newif\iftocfileopened
|
\newif\iftocfileopened
|
||||||
\def\writetocentry#1{%
|
\def\writetocentry#1{%
|
||||||
@@ -3890,6 +3932,14 @@ width0pt\relax} \fi
|
|||||||
\global\tocfileopenedtrue
|
\global\tocfileopenedtrue
|
||||||
\fi
|
\fi
|
||||||
\iflinks \write\tocfile{#1{\folio}}\fi
|
\iflinks \write\tocfile{#1{\folio}}\fi
|
||||||
|
%
|
||||||
|
% Tell \shipout to create a page destination if we're doing pdf, which
|
||||||
|
% will be the target of the links in the table of contents. We can't
|
||||||
|
% just do it on every page because the title pages are numbered 1 and
|
||||||
|
% 2 (the page numbers aren't printed), and so are the first two pages
|
||||||
|
% of the document. Thus, we'd have two destinations named `1', and
|
||||||
|
% two named `2'.
|
||||||
|
\ifpdf \pdfmakepagedesttrue \fi
|
||||||
}
|
}
|
||||||
|
|
||||||
\newskip\contentsrightmargin \contentsrightmargin=1in
|
\newskip\contentsrightmargin \contentsrightmargin=1in
|
||||||
@@ -3945,6 +3995,7 @@ width0pt\relax} \fi
|
|||||||
\startcontents{\putwordShortTOC}%
|
\startcontents{\putwordShortTOC}%
|
||||||
%
|
%
|
||||||
\let\chapentry = \shortchapentry
|
\let\chapentry = \shortchapentry
|
||||||
|
\let\appendixentry = \shortappendixentry
|
||||||
\let\unnumbchapentry = \shortunnumberedentry
|
\let\unnumbchapentry = \shortunnumberedentry
|
||||||
% We want a true roman here for the page numbers.
|
% We want a true roman here for the page numbers.
|
||||||
\secfonts
|
\secfonts
|
||||||
@@ -3953,11 +4004,11 @@ width0pt\relax} \fi
|
|||||||
\hyphenpenalty = 10000
|
\hyphenpenalty = 10000
|
||||||
\advance\baselineskip by 1pt % Open it up a little.
|
\advance\baselineskip by 1pt % Open it up a little.
|
||||||
\def\secentry ##1##2##3##4{}
|
\def\secentry ##1##2##3##4{}
|
||||||
\def\unnumbsecentry ##1##2{}
|
\def\unnumbsecentry ##1##2##3{}
|
||||||
\def\subsecentry ##1##2##3##4##5{}
|
\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\subsubsecentry ##1##2##3##4##5##6{}
|
||||||
\def\unnumbsubsubsecentry ##1##2{}
|
\def\unnumbsubsubsecentry ##1##2##3##4##5{}
|
||||||
\openin 1 \jobname.toc
|
\openin 1 \jobname.toc
|
||||||
\ifeof 1 \else
|
\ifeof 1 \else
|
||||||
\closein 1
|
\closein 1
|
||||||
@@ -3980,16 +4031,23 @@ width0pt\relax} \fi
|
|||||||
% The last argument is the page number.
|
% The last argument is the page number.
|
||||||
% The arguments in between are the chapter number, section 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}}
|
\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{%
|
\def\shortchapentry#1#2#3{%
|
||||||
\tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#3\egroup}%
|
\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.
|
% 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
|
% We could simplify the code here by writing out an \appendixentry
|
||||||
% command in the toc file for appendices, instead of using \chapentry
|
% command in the toc file for appendices, instead of using \chapentry
|
||||||
% for both, but it doesn't seem worth it.
|
% for both, but it doesn't seem worth it.
|
||||||
@@ -3997,38 +4055,31 @@ width0pt\relax} \fi
|
|||||||
\newdimen\shortappendixwidth
|
\newdimen\shortappendixwidth
|
||||||
%
|
%
|
||||||
\def\shortchaplabel#1{%
|
\def\shortchaplabel#1{%
|
||||||
% Compute width of word "Appendix", may change with language.
|
% This space should be enough, since a single number is .5em, and the
|
||||||
\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
|
|
||||||
% widest letter (M) is 1em, at least in the Computer Modern fonts.
|
% 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
|
% (This space doesn't include the extra space that gets added after
|
||||||
% the label; that gets put in by \shortchapentry above.)
|
% the label; that gets put in by \shortchapentry above.)
|
||||||
\advance\dimen0 by 1.1em
|
\dimen0 = 1em
|
||||||
\hbox to \dimen0{#1\hfil}%
|
\hbox to \dimen0{#1\hss}%
|
||||||
}
|
}
|
||||||
|
|
||||||
|
% Unnumbered chapters.
|
||||||
\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}}
|
\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}}
|
||||||
\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno\bgroup#2\egroup}}
|
\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno\bgroup#2\egroup}}
|
||||||
|
|
||||||
% Sections.
|
% Sections.
|
||||||
\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}}
|
\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.
|
% Subsections.
|
||||||
\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}}
|
\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.
|
% And subsubsections.
|
||||||
\def\subsubsecentry#1#2#3#4#5#6{%
|
\def\subsubsecentry#1#2#3#4#5#6{%
|
||||||
\dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#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.
|
% This parameter controls the indentation of the various levels.
|
||||||
\newdimen\tocindent \tocindent = 3pc
|
\newdimen\tocindent \tocindent = 3pc
|
||||||
@@ -4069,7 +4120,7 @@ width0pt\relax} \fi
|
|||||||
\def\tocentry#1#2{\begingroup
|
\def\tocentry#1#2{\begingroup
|
||||||
\vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks
|
\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
|
% 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.
|
% have to do the usual translation tricks.
|
||||||
\entry{#1}{#2}%
|
\entry{#1}{#2}%
|
||||||
\endgroup}
|
\endgroup}
|
||||||
@@ -4898,7 +4949,7 @@ width0pt\relax} \fi
|
|||||||
% #1 is the data type, #2 the name, #3 the args.
|
% #1 is the data type, #2 the name, #3 the args.
|
||||||
\def\deftypefunheaderx #1#2 #3\relax{%
|
\def\deftypefunheaderx #1#2 #3\relax{%
|
||||||
\doind {fn}{\code{#2}}% Make entry in function index
|
\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 %
|
\deftypefunargs {#3}\endgroup %
|
||||||
\catcode 61=\other % Turn off change made in \defparsebody
|
\catcode 61=\other % Turn off change made in \defparsebody
|
||||||
}
|
}
|
||||||
@@ -4907,9 +4958,9 @@ width0pt\relax} \fi
|
|||||||
|
|
||||||
\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader}
|
\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.
|
% 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.
|
% #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}
|
\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax}
|
||||||
@@ -4919,7 +4970,7 @@ width0pt\relax} \fi
|
|||||||
\begingroup
|
\begingroup
|
||||||
\normalparens % notably, turn off `&' magic, which prevents
|
\normalparens % notably, turn off `&' magic, which prevents
|
||||||
% at least some C++ text from working
|
% at least some C++ text from working
|
||||||
\defname {\defheaderxcond#2\relax$$$#3}{#1}%
|
\defname {\defheaderxcond#2\relax$.$#3}{#1}%
|
||||||
\deftypefunargs {#4}\endgroup %
|
\deftypefunargs {#4}\endgroup %
|
||||||
\catcode 61=\other % Turn off change made in \defparsebody
|
\catcode 61=\other % Turn off change made in \defparsebody
|
||||||
}
|
}
|
||||||
@@ -4965,7 +5016,7 @@ width0pt\relax} \fi
|
|||||||
\def\deftypeopheader#1#2#3#4{%
|
\def\deftypeopheader#1#2#3#4{%
|
||||||
\dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
|
\dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
|
||||||
\begingroup
|
\begingroup
|
||||||
\defname{\defheaderxcond#2\relax$$$#3}
|
\defname{\defheaderxcond#2\relax$.$#3}
|
||||||
{\deftypeopcategory\ \putwordon\ \code{#1}}%
|
{\deftypeopcategory\ \putwordon\ \code{#1}}%
|
||||||
\deftypefunargs{#4}%
|
\deftypefunargs{#4}%
|
||||||
\endgroup
|
\endgroup
|
||||||
@@ -4980,7 +5031,7 @@ width0pt\relax} \fi
|
|||||||
\def\deftypemethodheader#1#2#3#4{%
|
\def\deftypemethodheader#1#2#3#4{%
|
||||||
\dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
|
\dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
|
||||||
\begingroup
|
\begingroup
|
||||||
\defname{\defheaderxcond#2\relax$$$#3}{\putwordMethodon\ \code{#1}}%
|
\defname{\defheaderxcond#2\relax$.$#3}{\putwordMethodon\ \code{#1}}%
|
||||||
\deftypefunargs{#4}%
|
\deftypefunargs{#4}%
|
||||||
\endgroup
|
\endgroup
|
||||||
}
|
}
|
||||||
@@ -4994,7 +5045,7 @@ width0pt\relax} \fi
|
|||||||
\def\deftypeivarheader#1#2#3{%
|
\def\deftypeivarheader#1#2#3{%
|
||||||
\dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}}% entry in variable index
|
\dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}}% entry in variable index
|
||||||
\begingroup
|
\begingroup
|
||||||
\defname{\defheaderxcond#2\relax$$$#3}
|
\defname{\defheaderxcond#2\relax$.$#3}
|
||||||
{\putwordInstanceVariableof\ \code{#1}}%
|
{\putwordInstanceVariableof\ \code{#1}}%
|
||||||
\defvarargs{#3}%
|
\defvarargs{#3}%
|
||||||
\endgroup
|
\endgroup
|
||||||
@@ -5077,7 +5128,7 @@ width0pt\relax} \fi
|
|||||||
% is actually part of the data type, which should not be put into the index.
|
% is actually part of the data type, which should not be put into the index.
|
||||||
\def\deftypevarheader #1#2{%
|
\def\deftypevarheader #1#2{%
|
||||||
\dovarind#2 \relax% Make entry in variables index
|
\dovarind#2 \relax% Make entry in variables index
|
||||||
\begingroup\defname {\defheaderxcond#1\relax$$$#2}{\putwordDeftypevar}%
|
\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypevar}%
|
||||||
\interlinepenalty=10000
|
\interlinepenalty=10000
|
||||||
\endgraf\nobreak\vskip -\parskip\nobreak
|
\endgraf\nobreak\vskip -\parskip\nobreak
|
||||||
\endgroup}
|
\endgroup}
|
||||||
@@ -5088,7 +5139,7 @@ width0pt\relax} \fi
|
|||||||
\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader}
|
\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader}
|
||||||
|
|
||||||
\def\deftypevrheader #1#2#3{\dovarind#3 \relax%
|
\def\deftypevrheader #1#2#3{\dovarind#3 \relax%
|
||||||
\begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1}
|
\begingroup\defname {\defheaderxcond#2\relax$.$#3}{#1}
|
||||||
\interlinepenalty=10000
|
\interlinepenalty=10000
|
||||||
\endgraf\nobreak\vskip -\parskip\nobreak
|
\endgraf\nobreak\vskip -\parskip\nobreak
|
||||||
\endgroup}
|
\endgroup}
|
||||||
@@ -5248,7 +5299,7 @@ width0pt\relax} \fi
|
|||||||
\message{Warning: redefining \the\macname}%
|
\message{Warning: redefining \the\macname}%
|
||||||
\else
|
\else
|
||||||
\expandafter\ifx\csname \the\macname\endcsname \relax
|
\expandafter\ifx\csname \the\macname\endcsname \relax
|
||||||
\else \errmessage{The name \the\macname\space is reserved}\fi
|
\else \errmessage{Macro name \the\macname\space already defined}\fi
|
||||||
\global\cslet{macsave.\the\macname}{\the\macname}%
|
\global\cslet{macsave.\the\macname}{\the\macname}%
|
||||||
\global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
|
\global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
|
||||||
% Add the macroname to \macrolist
|
% Add the macroname to \macrolist
|
||||||
@@ -5799,8 +5850,15 @@ width0pt\relax} \fi
|
|||||||
%
|
%
|
||||||
\smallfonts \rm
|
\smallfonts \rm
|
||||||
%
|
%
|
||||||
% Hang the footnote text off the number.
|
% Because we use hanging indentation in footnotes, a @noindent appears
|
||||||
\hang
|
% 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}%
|
\textindent{\thisfootno}%
|
||||||
%
|
%
|
||||||
% Don't crash into the line above the footnote text. Since this
|
% Don't crash into the line above the footnote text. Since this
|
||||||
@@ -5881,7 +5939,7 @@ width0pt\relax} \fi
|
|||||||
\global\warnednoepsftrue
|
\global\warnednoepsftrue
|
||||||
\fi
|
\fi
|
||||||
\else
|
\else
|
||||||
\imagexxx #1,,,\finish
|
\imagexxx #1,,,,,\finish
|
||||||
\fi
|
\fi
|
||||||
}
|
}
|
||||||
%
|
%
|
||||||
@@ -5891,33 +5949,34 @@ width0pt\relax} \fi
|
|||||||
% #4 is (ignored optional) html alt text.
|
% #4 is (ignored optional) html alt text.
|
||||||
% #5 is (ignored optional) extension.
|
% #5 is (ignored optional) extension.
|
||||||
% #6 is just the usual extra ignored arg for parsing this stuff.
|
% #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
|
\ifpdf
|
||||||
\centerline{\dopdfimage{#1}{#2}{#3}}%
|
\dopdfimage{#1}{#2}{#3}%
|
||||||
\else
|
\else
|
||||||
% \epsfbox itself resets \epsf?size at each figure.
|
% \epsfbox itself resets \epsf?size at each figure.
|
||||||
\setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
|
\setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
|
||||||
\setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
|
\setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
|
||||||
\begingroup
|
\epsfbox{#1.eps}%
|
||||||
\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
|
|
||||||
\fi
|
\fi
|
||||||
}
|
%
|
||||||
|
\ifimagevmode \hss \egroup \bigbreak \fi % space after the image
|
||||||
|
\endgroup}
|
||||||
|
|
||||||
|
|
||||||
\message{localization,}
|
\message{localization,}
|
||||||
@@ -6087,6 +6146,10 @@ should work if nowhere else does.}
|
|||||||
%
|
%
|
||||||
\afourpaper
|
\afourpaper
|
||||||
\internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}%
|
\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.
|
% Use @afourwide to print on European A4 paper in wide format.
|
||||||
@@ -6136,7 +6199,7 @@ should work if nowhere else does.}
|
|||||||
\def\normalless{<}
|
\def\normalless{<}
|
||||||
\def\normalgreater{>}
|
\def\normalgreater{>}
|
||||||
\def\normalplus{+}
|
\def\normalplus{+}
|
||||||
\def\normaldollar{$}
|
\def\normaldollar{$}%$ font-lock fix
|
||||||
|
|
||||||
% This macro is used to make a character print one way in ttfont
|
% 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,
|
% where it can probably just be output, and another way in other fonts,
|
||||||
@@ -6185,7 +6248,7 @@ should work if nowhere else does.}
|
|||||||
\catcode`\+=\active
|
\catcode`\+=\active
|
||||||
\def+{{\tt \char 43}}
|
\def+{{\tt \char 43}}
|
||||||
\catcode`\$=\active
|
\catcode`\$=\active
|
||||||
\def${\ifusingit{{\sl\$}}\normaldollar}
|
\def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
|
||||||
%\catcode 27=\active
|
%\catcode 27=\active
|
||||||
%\def^^[{$\diamondsuit$}
|
%\def^^[{$\diamondsuit$}
|
||||||
|
|
||||||
@@ -6230,7 +6293,7 @@ should work if nowhere else does.}
|
|||||||
@let<=@normalless
|
@let<=@normalless
|
||||||
@let>=@normalgreater
|
@let>=@normalgreater
|
||||||
@let+=@normalplus
|
@let+=@normalplus
|
||||||
@let$=@normaldollar}
|
@let$=@normaldollar}%$ font-lock fix
|
||||||
|
|
||||||
@def@normalturnoffactive{@let"=@normaldoublequote
|
@def@normalturnoffactive{@let"=@normaldoublequote
|
||||||
@let\=@normalbackslash
|
@let\=@normalbackslash
|
||||||
@@ -6241,7 +6304,7 @@ should work if nowhere else does.}
|
|||||||
@let<=@normalless
|
@let<=@normalless
|
||||||
@let>=@normalgreater
|
@let>=@normalgreater
|
||||||
@let+=@normalplus
|
@let+=@normalplus
|
||||||
@let$=@normaldollar}
|
@let$=@normaldollar}%$ font-lock fix
|
||||||
|
|
||||||
% Make _ and + \other characters, temporarily.
|
% Make _ and + \other characters, temporarily.
|
||||||
% This is canceled by @fixbackslash.
|
% This is canceled by @fixbackslash.
|
||||||
|
|||||||
+19
-12
@@ -1,5 +1,7 @@
|
|||||||
# Configure template for GNU Bison. -*-Autoconf-*-
|
# Configure template for GNU Bison. -*-Autoconf-*-
|
||||||
#
|
#
|
||||||
|
# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation; either version 2 of the License, or
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
@@ -16,17 +18,18 @@
|
|||||||
# 02111-1307 USA
|
# 02111-1307 USA
|
||||||
|
|
||||||
# We need a recent Autoconf to run a recent Autotest.
|
# We need a recent Autoconf to run a recent Autotest.
|
||||||
AC_PREREQ(2.52e)
|
AC_PREREQ(2.53)
|
||||||
|
|
||||||
AC_INIT([GNU Bison], [1.30], [[email protected]])
|
AC_INIT([GNU Bison], [1.35], [[email protected]])
|
||||||
AC_CONFIG_AUX_DIR(config)
|
AC_CONFIG_AUX_DIR(config)
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE([bison], [1.30])
|
AM_INIT_AUTOMAKE
|
||||||
AM_CONFIG_HEADER(config.h:config.hin)
|
AM_CONFIG_HEADER(config.h:config.hin)
|
||||||
|
|
||||||
# Initialize the test suite.
|
# Initialize the test suite.
|
||||||
AC_CONFIG_TESTDIR(tests)
|
AC_CONFIG_TESTDIR(tests)
|
||||||
AC_CONFIG_FILES([tests/bison], [chmod +x tests/bison])
|
AC_CONFIG_FILES([tests/bison], [chmod +x tests/bison])
|
||||||
|
AC_CONFIG_FILES([tests/Makefile tests/atlocal])
|
||||||
# Needed by tests/atlocal.in.
|
# Needed by tests/atlocal.in.
|
||||||
AC_SUBST([GCC])
|
AC_SUBST([GCC])
|
||||||
|
|
||||||
@@ -46,6 +49,9 @@ AC_ARG_ENABLE(gcc-warnings,
|
|||||||
esac],
|
esac],
|
||||||
[enableval=no])
|
[enableval=no])
|
||||||
if test "${enableval}" = yes; then
|
if test "${enableval}" = yes; then
|
||||||
|
BISON_WARNING(-Werror)
|
||||||
|
AC_SUBST([WERROR_CFLAGS], [$WARNING_CFLAGS])
|
||||||
|
WARNING_CFLAGS=
|
||||||
BISON_WARNING(-Wall)
|
BISON_WARNING(-Wall)
|
||||||
BISON_WARNING(-W)
|
BISON_WARNING(-W)
|
||||||
BISON_WARNING(-Wbad-function-cast)
|
BISON_WARNING(-Wbad-function-cast)
|
||||||
@@ -58,7 +64,6 @@ if test "${enableval}" = yes; then
|
|||||||
BISON_WARNING(-Wshadow)
|
BISON_WARNING(-Wshadow)
|
||||||
BISON_WARNING(-Wstrict-prototypes)
|
BISON_WARNING(-Wstrict-prototypes)
|
||||||
BISON_WARNING(-Wwrite-strings)
|
BISON_WARNING(-Wwrite-strings)
|
||||||
CFLAGS="$CFLAGS $WARNING_CFLAGS"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Checks for libraries.
|
# Checks for libraries.
|
||||||
@@ -79,26 +84,28 @@ AM_C_PROTOTYPES
|
|||||||
|
|
||||||
# Checks for library functions.
|
# Checks for library functions.
|
||||||
AC_FUNC_ALLOCA
|
AC_FUNC_ALLOCA
|
||||||
|
AC_FUNC_OBSTACK
|
||||||
|
AC_FUNC_ERROR_AT_LINE
|
||||||
|
AC_FUNC_STRNLEN
|
||||||
AC_CHECK_FUNCS(mkstemp setlocale)
|
AC_CHECK_FUNCS(mkstemp setlocale)
|
||||||
AC_CHECK_DECLS([stpcpy, strndup, strnlen, memchr])
|
AC_CHECK_DECLS([stpcpy, strchr, strspn, strnlen, memchr, memrchr])
|
||||||
AC_REPLACE_FUNCS(stpcpy strndup strnlen strspn memchr)
|
AC_REPLACE_FUNCS(stpcpy strchr strspn memchr memrchr)
|
||||||
jm_FUNC_MALLOC
|
jm_FUNC_MALLOC
|
||||||
jm_FUNC_REALLOC
|
jm_FUNC_REALLOC
|
||||||
jm_PREREQ_QUOTEARG
|
jm_PREREQ_QUOTEARG
|
||||||
jm_PREREQ_ERROR
|
jm_PREREQ_ERROR
|
||||||
AM_WITH_DMALLOC
|
AM_WITH_DMALLOC
|
||||||
|
|
||||||
ALL_LINGUAS="de es et fr ja nl tr ru"
|
ALL_LINGUAS="de es et fr it ja nl ru sv tr"
|
||||||
AM_GNU_GETTEXT
|
AM_GNU_GETTEXT(, need-ngettext)
|
||||||
|
|
||||||
# This is necessary so that .o files in LIBOBJS are also built via
|
# This is necessary so that .o files in LIBOBJS are also built via
|
||||||
# the ANSI2KNR-filtering rules.
|
# the ANSI2KNR-filtering rules.
|
||||||
LIBOBJS=`echo $LIBOBJS|sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
|
LIB@&t@OBJS=`echo $LIB@&t@OBJS|sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'`
|
||||||
AC_SUBST(LIBOBJS)
|
AC_SUBST(LIB@&t@OBJS)
|
||||||
|
|
||||||
AC_OUTPUT([Makefile
|
AC_OUTPUT([Makefile
|
||||||
config/Makefile
|
config/Makefile
|
||||||
intl/Makefile po/Makefile.in
|
intl/Makefile po/Makefile.in
|
||||||
lib/Makefile src/Makefile doc/Makefile
|
lib/Makefile src/Makefile doc/Makefile
|
||||||
m4/Makefile
|
m4/Makefile])
|
||||||
tests/Makefile])
|
|
||||||
|
|||||||
+4
-8
@@ -1,16 +1,12 @@
|
|||||||
Makefile
|
Makefile Makefile.in
|
||||||
bison.aux
|
*.aux *.dvi *.log *.info* *.pdf *.ps
|
||||||
|
stamp-*
|
||||||
|
auto
|
||||||
bison.cp
|
bison.cp
|
||||||
bison.cps
|
bison.cps
|
||||||
bison.dvi
|
|
||||||
bison.fn
|
bison.fn
|
||||||
bison.ky
|
bison.ky
|
||||||
bison.log
|
|
||||||
bison.pg
|
bison.pg
|
||||||
bison.ps
|
|
||||||
bison.toc
|
bison.toc
|
||||||
bison.tp
|
bison.tp
|
||||||
bison.vr
|
bison.vr
|
||||||
refcard.dvi
|
|
||||||
refcard.log
|
|
||||||
refcard.ps
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
## Process this file with automake to produce Makefile.in -*-Makefile-*-
|
## Process this file with automake to produce Makefile.in -*-Makefile-*-
|
||||||
AUTOMAKE_OPTIONS = 1.4
|
|
||||||
|
|
||||||
info_TEXINFOS = bison.texinfo
|
info_TEXINFOS = bison.texinfo
|
||||||
man_MANS = bison.1
|
man_MANS = bison.1
|
||||||
|
|||||||
-403
@@ -1,403 +0,0 @@
|
|||||||
# Makefile.in generated by automake 1.5a from Makefile.am.
|
|
||||||
# @configure_input@
|
|
||||||
|
|
||||||
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
|
|
||||||
# Free Software Foundation, Inc.
|
|
||||||
# This Makefile.in is free software; the Free Software Foundation
|
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
|
||||||
# with or without modifications, as long as this notice is preserved.
|
|
||||||
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
|
||||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
||||||
# PARTICULAR PURPOSE.
|
|
||||||
|
|
||||||
@SET_MAKE@
|
|
||||||
|
|
||||||
SHELL = @SHELL@
|
|
||||||
|
|
||||||
srcdir = @srcdir@
|
|
||||||
top_srcdir = @top_srcdir@
|
|
||||||
VPATH = @srcdir@
|
|
||||||
prefix = @prefix@
|
|
||||||
exec_prefix = @exec_prefix@
|
|
||||||
|
|
||||||
bindir = @bindir@
|
|
||||||
sbindir = @sbindir@
|
|
||||||
libexecdir = @libexecdir@
|
|
||||||
datadir = @datadir@
|
|
||||||
sysconfdir = @sysconfdir@
|
|
||||||
sharedstatedir = @sharedstatedir@
|
|
||||||
localstatedir = @localstatedir@
|
|
||||||
libdir = @libdir@
|
|
||||||
infodir = @infodir@
|
|
||||||
mandir = @mandir@
|
|
||||||
includedir = @includedir@
|
|
||||||
oldincludedir = /usr/include
|
|
||||||
pkgdatadir = $(datadir)/@PACKAGE@
|
|
||||||
pkglibdir = $(libdir)/@PACKAGE@
|
|
||||||
pkgincludedir = $(includedir)/@PACKAGE@
|
|
||||||
top_builddir = ..
|
|
||||||
|
|
||||||
ACLOCAL = @ACLOCAL@
|
|
||||||
AUTOCONF = @AUTOCONF@
|
|
||||||
AUTOMAKE = @AUTOMAKE@
|
|
||||||
AUTOHEADER = @AUTOHEADER@
|
|
||||||
|
|
||||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
|
||||||
INSTALL = @INSTALL@
|
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
|
||||||
INSTALL_HEADER = $(INSTALL_DATA)
|
|
||||||
transform = @program_transform_name@
|
|
||||||
NORMAL_INSTALL = :
|
|
||||||
PRE_INSTALL = :
|
|
||||||
POST_INSTALL = :
|
|
||||||
NORMAL_UNINSTALL = :
|
|
||||||
PRE_UNINSTALL = :
|
|
||||||
POST_UNINSTALL = :
|
|
||||||
host_alias = @host_alias@
|
|
||||||
host_triplet = @host@
|
|
||||||
|
|
||||||
EXEEXT = @EXEEXT@
|
|
||||||
OBJEXT = @OBJEXT@
|
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
|
||||||
AMTAR = @AMTAR@
|
|
||||||
AUTOM4TE = @AUTOM4TE@
|
|
||||||
AWK = @AWK@
|
|
||||||
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
|
||||||
CATALOGS = @CATALOGS@
|
|
||||||
CATOBJEXT = @CATOBJEXT@
|
|
||||||
CC = @CC@
|
|
||||||
CPP = @CPP@
|
|
||||||
DATADIRNAME = @DATADIRNAME@
|
|
||||||
DEPDIR = @DEPDIR@
|
|
||||||
GCC = @GCC@
|
|
||||||
GENCAT = @GENCAT@
|
|
||||||
GLIBC21 = @GLIBC21@
|
|
||||||
GMOFILES = @GMOFILES@
|
|
||||||
GMSGFMT = @GMSGFMT@
|
|
||||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
|
||||||
INSTOBJEXT = @INSTOBJEXT@
|
|
||||||
INTLBISON = @INTLBISON@
|
|
||||||
INTLLIBS = @INTLLIBS@
|
|
||||||
INTLOBJS = @INTLOBJS@
|
|
||||||
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
|
||||||
LIBICONV = @LIBICONV@
|
|
||||||
LIBOBJS = @LIBOBJS@
|
|
||||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
|
||||||
MSGFMT = @MSGFMT@
|
|
||||||
PACKAGE = @PACKAGE@
|
|
||||||
POFILES = @POFILES@
|
|
||||||
POSUB = @POSUB@
|
|
||||||
RANLIB = @RANLIB@
|
|
||||||
U = @U@
|
|
||||||
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
|
|
||||||
USE_NLS = @USE_NLS@
|
|
||||||
VERSION = @VERSION@
|
|
||||||
WARNING_CFLAGS = @WARNING_CFLAGS@
|
|
||||||
am__include = @am__include@
|
|
||||||
am__quote = @am__quote@
|
|
||||||
install_sh = @install_sh@
|
|
||||||
|
|
||||||
AUTOMAKE_OPTIONS = 1.4
|
|
||||||
|
|
||||||
info_TEXINFOS = bison.texinfo
|
|
||||||
man_MANS = bison.1
|
|
||||||
bison_TEXINFOS = gpl.texi fdl.texi
|
|
||||||
|
|
||||||
EXTRA_DIST = FAQ bison.1 bison.rnh refcard.tex
|
|
||||||
|
|
||||||
CLEANFILES = refcard.dvi refcard.log refcard.ps
|
|
||||||
subdir = doc
|
|
||||||
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 = bison.info
|
|
||||||
DVIS = bison.dvi
|
|
||||||
TEXINFOS = bison.texinfo
|
|
||||||
|
|
||||||
NROFF = nroff
|
|
||||||
MANS = $(man_MANS)
|
|
||||||
DIST_COMMON = $(bison_TEXINFOS) Makefile.am Makefile.in stamp-vti \
|
|
||||||
version.texi
|
|
||||||
all: all-am
|
|
||||||
|
|
||||||
.SUFFIXES:
|
|
||||||
.SUFFIXES: .dvi .info .ps .texinfo
|
|
||||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
|
||||||
cd $(top_srcdir) && \
|
|
||||||
$(AUTOMAKE) --gnu doc/Makefile
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
|
||||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
|
|
||||||
|
|
||||||
$(srcdir)/version.texi: $(srcdir)/stamp-vti
|
|
||||||
@:
|
|
||||||
$(srcdir)/stamp-vti: bison.texinfo $(top_srcdir)/configure.in
|
|
||||||
@(set `$(SHELL) $(top_srcdir)/config/mdate-sh $(srcdir)/bison.texinfo`; \
|
|
||||||
echo "@set UPDATED $$1 $$2 $$3"; \
|
|
||||||
echo "@set UPDATED-MONTH $$2 $$3"; \
|
|
||||||
echo "@set EDITION $(VERSION)"; \
|
|
||||||
echo "@set VERSION $(VERSION)") > vti.tmp
|
|
||||||
@cmp -s vti.tmp $(srcdir)/version.texi \
|
|
||||||
|| (echo "Updating $(srcdir)/version.texi"; \
|
|
||||||
cp vti.tmp $(srcdir)/version.texi)
|
|
||||||
-@rm -f vti.tmp
|
|
||||||
@cp $(srcdir)/version.texi $@
|
|
||||||
|
|
||||||
mostlyclean-vti:
|
|
||||||
-rm -f vti.tmp
|
|
||||||
|
|
||||||
maintainer-clean-vti:
|
|
||||||
-rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
|
|
||||||
|
|
||||||
bison.info: bison.texinfo $(srcdir)/version.texi $(bison_TEXINFOS)
|
|
||||||
bison.dvi: bison.texinfo $(srcdir)/version.texi $(bison_TEXINFOS)
|
|
||||||
|
|
||||||
.texinfo.info:
|
|
||||||
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
|
|
||||||
cd $(srcdir) \
|
|
||||||
&& $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
|
|
||||||
`echo $< | sed 's,.*/,,'`
|
|
||||||
|
|
||||||
.texinfo.dvi:
|
|
||||||
TEXINPUTS="$(top_srcdir)/config$(PATH_SEPARATOR)$$TEXINPUTS" \
|
|
||||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
|
||||||
$(TEXI2DVI) $<
|
|
||||||
|
|
||||||
.texinfo:
|
|
||||||
@cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
|
|
||||||
cd $(srcdir) \
|
|
||||||
&& $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \
|
|
||||||
`echo $< | sed 's,.*/,,'`
|
|
||||||
|
|
||||||
MAKEINFO = @MAKEINFO@
|
|
||||||
TEXI2DVI = texi2dvi
|
|
||||||
DVIPS = dvips
|
|
||||||
.dvi.ps:
|
|
||||||
$(DVIPS) $< -o $@
|
|
||||||
|
|
||||||
uninstall-info-am:
|
|
||||||
$(PRE_UNINSTALL)
|
|
||||||
@if (install-info --version && \
|
|
||||||
install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \
|
|
||||||
list='$(INFO_DEPS)'; \
|
|
||||||
for file in $$list; do \
|
|
||||||
echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file"; \
|
|
||||||
install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file; \
|
|
||||||
done; \
|
|
||||||
else :; fi
|
|
||||||
@$(NORMAL_UNINSTALL)
|
|
||||||
@list='$(INFO_DEPS)'; \
|
|
||||||
for file in $$list; do \
|
|
||||||
(if cd $(DESTDIR)$(infodir); then \
|
|
||||||
echo " rm -f $$file $$file-[0-9] $$file-[0-9][0-9])"; \
|
|
||||||
rm -f $$file $$file-[0-9] $$file-[0-9][0-9]; \
|
|
||||||
else :; fi); \
|
|
||||||
done
|
|
||||||
|
|
||||||
dist-info: $(INFO_DEPS)
|
|
||||||
list='$(INFO_DEPS)'; \
|
|
||||||
for base in $$list; do \
|
|
||||||
d=$(srcdir); \
|
|
||||||
for file in $$d/$$base*; do \
|
|
||||||
relfile=`expr "$$file" : "$$d/\(.*\)"`; \
|
|
||||||
test -f $(distdir)/$$relfile || \
|
|
||||||
cp -p $$file $(distdir)/$$relfile; \
|
|
||||||
done; \
|
|
||||||
done
|
|
||||||
|
|
||||||
mostlyclean-aminfo:
|
|
||||||
-rm -f bison.aux bison.cp bison.cps bison.dvi bison.fn bison.ky bison.log \
|
|
||||||
bison.pg bison.ps bison.toc bison.tp bison.vr
|
|
||||||
|
|
||||||
maintainer-clean-aminfo:
|
|
||||||
cd $(srcdir) && \
|
|
||||||
for i in $(INFO_DEPS); do \
|
|
||||||
rm -f $$i; \
|
|
||||||
if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
|
|
||||||
rm -f $$i-[0-9]*; \
|
|
||||||
fi; \
|
|
||||||
done
|
|
||||||
|
|
||||||
man1dir = $(mandir)/man1
|
|
||||||
install-man1: $(man1_MANS) $(man_MANS)
|
|
||||||
@$(NORMAL_INSTALL)
|
|
||||||
$(mkinstalldirs) $(DESTDIR)$(man1dir)
|
|
||||||
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
|
|
||||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
|
||||||
for i in $$l2; do \
|
|
||||||
case "$$i" in \
|
|
||||||
*.1*) list="$$list $$i" ;; \
|
|
||||||
esac; \
|
|
||||||
done; \
|
|
||||||
for i in $$list; do \
|
|
||||||
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
|
|
||||||
else file=$$i; fi; \
|
|
||||||
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
|
||||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
|
||||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
|
||||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
|
||||||
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
|
|
||||||
$(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
|
|
||||||
done
|
|
||||||
uninstall-man1:
|
|
||||||
@$(NORMAL_UNINSTALL)
|
|
||||||
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
|
|
||||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
|
||||||
for i in $$l2; do \
|
|
||||||
case "$$i" in \
|
|
||||||
*.1*) list="$$list $$i" ;; \
|
|
||||||
esac; \
|
|
||||||
done; \
|
|
||||||
for i in $$list; do \
|
|
||||||
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
|
||||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
|
||||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
|
||||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
|
||||||
echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
|
|
||||||
rm -f $(DESTDIR)$(man1dir)/$$inst; \
|
|
||||||
done
|
|
||||||
tags: TAGS
|
|
||||||
TAGS:
|
|
||||||
|
|
||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|
||||||
|
|
||||||
top_distdir = ..
|
|
||||||
distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
|
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
|
||||||
@for file in $(DISTFILES); do \
|
|
||||||
if test -f $$file; then d=.; else d=$(srcdir); fi; \
|
|
||||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
|
||||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
|
||||||
$(mkinstalldirs) "$(distdir)/$$dir"; \
|
|
||||||
fi; \
|
|
||||||
if test -d $$d/$$file; then \
|
|
||||||
cp -pR $$d/$$file $(distdir) \
|
|
||||||
|| exit 1; \
|
|
||||||
else \
|
|
||||||
test -f $(distdir)/$$file \
|
|
||||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
|
||||||
|| exit 1; \
|
|
||||||
fi; \
|
|
||||||
done
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) \
|
|
||||||
top_distdir="${top_distdir}" distdir="$(distdir)" \
|
|
||||||
dist-info
|
|
||||||
check-am: all-am
|
|
||||||
check: check-am
|
|
||||||
all-am: Makefile $(INFO_DEPS) $(MANS)
|
|
||||||
|
|
||||||
installdirs:
|
|
||||||
$(mkinstalldirs) $(DESTDIR)$(infodir) $(DESTDIR)$(man1dir)
|
|
||||||
|
|
||||||
install: install-am
|
|
||||||
install-exec: install-exec-am
|
|
||||||
install-data: install-data-am
|
|
||||||
uninstall: uninstall-am
|
|
||||||
|
|
||||||
install-am: all-am
|
|
||||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
|
||||||
|
|
||||||
installcheck: installcheck-am
|
|
||||||
install-strip:
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
|
||||||
`test -z '$(STRIP)' || \
|
|
||||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
|
||||||
mostlyclean-generic:
|
|
||||||
|
|
||||||
clean-generic:
|
|
||||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
|
||||||
|
|
||||||
distclean-generic:
|
|
||||||
-rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
|
|
||||||
|
|
||||||
maintainer-clean-generic:
|
|
||||||
@echo "This command is intended for maintainers to use"
|
|
||||||
@echo "it deletes files that may require special tools to rebuild."
|
|
||||||
clean: clean-am
|
|
||||||
|
|
||||||
clean-am: clean-generic mostlyclean-am
|
|
||||||
|
|
||||||
distclean: distclean-am
|
|
||||||
|
|
||||||
distclean-am: clean-am distclean-generic
|
|
||||||
|
|
||||||
dvi: dvi-am
|
|
||||||
|
|
||||||
dvi-am: $(DVIS)
|
|
||||||
|
|
||||||
info: info-am
|
|
||||||
|
|
||||||
info-am: $(INFO_DEPS)
|
|
||||||
|
|
||||||
install-data-am: install-info-am install-man
|
|
||||||
|
|
||||||
install-exec-am:
|
|
||||||
|
|
||||||
install-info: install-info-am
|
|
||||||
|
|
||||||
install-info-am: $(INFO_DEPS)
|
|
||||||
@$(NORMAL_INSTALL)
|
|
||||||
$(mkinstalldirs) $(DESTDIR)$(infodir)
|
|
||||||
@list='$(INFO_DEPS)'; \
|
|
||||||
for file in $$list; do \
|
|
||||||
d=$(srcdir); \
|
|
||||||
for ifile in echo $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9]; do \
|
|
||||||
if test -f $$ifile; then \
|
|
||||||
relfile=`expr "$$ifile" : "$$d/\(.*\)"`; \
|
|
||||||
echo " $(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile"; \
|
|
||||||
$(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile; \
|
|
||||||
else : ; fi; \
|
|
||||||
done; \
|
|
||||||
done
|
|
||||||
@$(POST_INSTALL)
|
|
||||||
@if (install-info --version && \
|
|
||||||
install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \
|
|
||||||
list='$(INFO_DEPS)'; \
|
|
||||||
for file in $$list; do \
|
|
||||||
echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
|
|
||||||
install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
|
|
||||||
done; \
|
|
||||||
else : ; fi
|
|
||||||
install-man: install-man1
|
|
||||||
|
|
||||||
installcheck-am:
|
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-am
|
|
||||||
|
|
||||||
maintainer-clean-am: distclean-am maintainer-clean-aminfo \
|
|
||||||
maintainer-clean-generic maintainer-clean-vti
|
|
||||||
|
|
||||||
mostlyclean: mostlyclean-am
|
|
||||||
|
|
||||||
mostlyclean-am: mostlyclean-aminfo mostlyclean-generic mostlyclean-vti
|
|
||||||
|
|
||||||
uninstall-am: uninstall-info-am uninstall-man
|
|
||||||
|
|
||||||
uninstall-man: uninstall-man1
|
|
||||||
|
|
||||||
.PHONY: all all-am check check-am clean clean-generic dist-info \
|
|
||||||
distclean distclean-generic distdir dvi dvi-am info info-am \
|
|
||||||
install install-am install-data install-data-am install-exec \
|
|
||||||
install-exec-am install-info install-info-am install-man \
|
|
||||||
install-man1 install-strip installcheck installcheck-am \
|
|
||||||
installdirs maintainer-clean maintainer-clean-aminfo \
|
|
||||||
maintainer-clean-generic maintainer-clean-vti mostlyclean \
|
|
||||||
mostlyclean-aminfo mostlyclean-generic mostlyclean-vti \
|
|
||||||
uninstall uninstall-am uninstall-info-am uninstall-man \
|
|
||||||
uninstall-man1
|
|
||||||
|
|
||||||
|
|
||||||
refcard.dvi: refcard.tex
|
|
||||||
tex refcard.tex
|
|
||||||
|
|
||||||
refcard.ps: refcard.dvi
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
|
||||||
.NOEXPORT:
|
|
||||||
+2
-2
@@ -262,9 +262,9 @@ and so on.
|
|||||||
.ns
|
.ns
|
||||||
.TP
|
.TP
|
||||||
.B \-\-debug
|
.B \-\-debug
|
||||||
Output a definition of the macro
|
In the parser file, define the macro
|
||||||
.B YYDEBUG
|
.B YYDEBUG
|
||||||
into the parser file,
|
to 1 if it is not already defined,
|
||||||
so that the debugging facilities are compiled.
|
so that the debugging facilities are compiled.
|
||||||
.TP
|
.TP
|
||||||
.B \-v
|
.B \-v
|
||||||
|
|||||||
-145
@@ -1,145 +0,0 @@
|
|||||||
Ceci est le fichier Info bison.info, produit par Makeinfo version 4.0b
|
|
||||||
à partir bison.texinfo.
|
|
||||||
|
|
||||||
START-INFO-DIR-ENTRY
|
|
||||||
* bison: (bison). GNU Project parser generator (yacc replacement).
|
|
||||||
END-INFO-DIR-ENTRY
|
|
||||||
|
|
||||||
This file documents the Bison parser generator.
|
|
||||||
|
|
||||||
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1998, 1999,
|
|
||||||
2000, 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
Permission is granted to make and distribute verbatim copies of this
|
|
||||||
manual provided the copyright notice and this permission notice are
|
|
||||||
preserved on all copies.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute modified versions of
|
|
||||||
this manual under the conditions for verbatim copying, provided also
|
|
||||||
that the sections entitled "GNU General Public License" and "Conditions
|
|
||||||
for Using Bison" are included exactly as in the original, and provided
|
|
||||||
that the entire resulting derived work is distributed under the terms
|
|
||||||
of a permission notice identical to this one.
|
|
||||||
|
|
||||||
Permission is granted to copy and distribute translations of this
|
|
||||||
manual into another language, under the above conditions for modified
|
|
||||||
versions, except that the sections entitled "GNU General Public
|
|
||||||
License", "Conditions for Using Bison" and this permission notice may be
|
|
||||||
included in translations approved by the Free Software Foundation
|
|
||||||
instead of in the original English.
|
|
||||||
|
|
||||||
|
|
||||||
Indirect:
|
|
||||||
bison.info-1: 1313
|
|
||||||
bison.info-2: 50689
|
|
||||||
bison.info-3: 100579
|
|
||||||
bison.info-4: 150129
|
|
||||||
bison.info-5: 197906
|
|
||||||
|
|
||||||
Tag Table:
|
|
||||||
(Indirect)
|
|
||||||
Node: Top1313
|
|
||||||
Node: Introduction8968
|
|
||||||
Node: Conditions10242
|
|
||||||
Node: Copying11706
|
|
||||||
Node: Concepts30909
|
|
||||||
Node: Language and Grammar31988
|
|
||||||
Node: Grammar in Bison37004
|
|
||||||
Node: Semantic Values38928
|
|
||||||
Node: Semantic Actions41029
|
|
||||||
Node: Locations Overview42218
|
|
||||||
Node: Bison Parser43665
|
|
||||||
Node: Stages45977
|
|
||||||
Node: Grammar Layout47260
|
|
||||||
Node: Examples48517
|
|
||||||
Node: RPN Calc49715
|
|
||||||
Node: Rpcalc Decls50689
|
|
||||||
Node: Rpcalc Rules52276
|
|
||||||
Node: Rpcalc Input54076
|
|
||||||
Node: Rpcalc Line55537
|
|
||||||
Node: Rpcalc Expr56652
|
|
||||||
Node: Rpcalc Lexer58597
|
|
||||||
Node: Rpcalc Main61169
|
|
||||||
Node: Rpcalc Error61567
|
|
||||||
Node: Rpcalc Gen62575
|
|
||||||
Node: Rpcalc Compile63724
|
|
||||||
Node: Infix Calc64599
|
|
||||||
Node: Simple Error Recovery67306
|
|
||||||
Node: Location Tracking Calc69195
|
|
||||||
Node: Ltcalc Decls69925
|
|
||||||
Node: Ltcalc Rules70834
|
|
||||||
Node: Ltcalc Lexer72895
|
|
||||||
Node: Multi-function Calc75233
|
|
||||||
Node: Mfcalc Decl76800
|
|
||||||
Node: Mfcalc Rules78823
|
|
||||||
Node: Mfcalc Symtab80203
|
|
||||||
Node: Exercises86576
|
|
||||||
Node: Grammar File87082
|
|
||||||
Node: Grammar Outline87930
|
|
||||||
Node: C Declarations88664
|
|
||||||
Node: Bison Declarations89244
|
|
||||||
Node: Grammar Rules89656
|
|
||||||
Node: C Code90116
|
|
||||||
Node: Symbols91046
|
|
||||||
Node: Rules96127
|
|
||||||
Node: Recursion97766
|
|
||||||
Node: Semantics99485
|
|
||||||
Node: Value Type100579
|
|
||||||
Node: Multiple Types101251
|
|
||||||
Node: Actions102268
|
|
||||||
Node: Action Types105053
|
|
||||||
Node: Mid-Rule Actions106356
|
|
||||||
Node: Locations111926
|
|
||||||
Node: Location Type112574
|
|
||||||
Node: Actions and Locations113132
|
|
||||||
Node: Location Default Action115288
|
|
||||||
Node: Declarations116751
|
|
||||||
Node: Token Decl118070
|
|
||||||
Node: Precedence Decl120083
|
|
||||||
Node: Union Decl121634
|
|
||||||
Node: Type Decl122478
|
|
||||||
Node: Expect Decl123384
|
|
||||||
Node: Start Decl124930
|
|
||||||
Node: Pure Decl125308
|
|
||||||
Node: Decl Summary126985
|
|
||||||
Node: Multiple Parsers132368
|
|
||||||
Node: Interface133862
|
|
||||||
Node: Parser Function134734
|
|
||||||
Node: Lexical135569
|
|
||||||
Node: Calling Convention136975
|
|
||||||
Node: Token Values139746
|
|
||||||
Node: Token Positions140895
|
|
||||||
Node: Pure Calling141780
|
|
||||||
Node: Error Reporting144712
|
|
||||||
Node: Action Features146834
|
|
||||||
Node: Algorithm150129
|
|
||||||
Node: Look-Ahead152422
|
|
||||||
Node: Shift/Reduce154554
|
|
||||||
Node: Precedence157466
|
|
||||||
Node: Why Precedence158117
|
|
||||||
Node: Using Precedence159982
|
|
||||||
Node: Precedence Examples160950
|
|
||||||
Node: How Precedence161651
|
|
||||||
Node: Contextual Precedence162800
|
|
||||||
Node: Parser States164591
|
|
||||||
Node: Reduce/Reduce165834
|
|
||||||
Node: Mystery Conflicts169395
|
|
||||||
Node: Stack Overflow172781
|
|
||||||
Node: Error Recovery174154
|
|
||||||
Node: Context Dependency179290
|
|
||||||
Node: Semantic Tokens180138
|
|
||||||
Node: Lexical Tie-ins183155
|
|
||||||
Node: Tie-in Recovery184703
|
|
||||||
Node: Debugging186875
|
|
||||||
Node: Invocation190176
|
|
||||||
Node: Bison Options191428
|
|
||||||
Node: Environment Variables195396
|
|
||||||
Node: Option Cross Key196244
|
|
||||||
Node: VMS Invocation197122
|
|
||||||
Node: Table of Symbols197906
|
|
||||||
Node: Glossary205545
|
|
||||||
Node: Copying This Manual211849
|
|
||||||
Node: GNU Free Documentation License212058
|
|
||||||
Node: Index231923
|
|
||||||
|
|
||||||
End Tag Table
|
|
||||||
-1076
File diff suppressed because it is too large
Load Diff
-1427
File diff suppressed because it is too large
Load Diff
-1317
File diff suppressed because it is too large
Load Diff
-1261
File diff suppressed because it is too large
Load Diff
-1036
File diff suppressed because it is too large
Load Diff
+2
-1
@@ -56,7 +56,8 @@ foo_tab.c.
|
|||||||
.indent -1
|
.indent -1
|
||||||
2 /DEBUG
|
2 /DEBUG
|
||||||
.skip
|
.skip
|
||||||
Output a definition of the macro YYDEBUG into the parser file,
|
In the parser file,
|
||||||
|
define the macro YYDEBUG to 1 if it is not already defined,
|
||||||
so that the debugging facilities are compiled.
|
so that the debugging facilities are compiled.
|
||||||
.skip
|
.skip
|
||||||
.indent -1
|
.indent -1
|
||||||
|
|||||||
+294
-198
@@ -304,6 +304,8 @@ Invoking Bison
|
|||||||
* Bison Options:: All the options described in detail,
|
* Bison Options:: All the options described in detail,
|
||||||
in alphabetical order by short options.
|
in alphabetical order by short options.
|
||||||
* Option Cross Key:: Alphabetical list of long options.
|
* Option Cross Key:: Alphabetical list of long options.
|
||||||
|
* Extension Limitations Under DOS:: Bison output files extension differences
|
||||||
|
depending on the DOS/Windows file system flavour used.
|
||||||
* VMS Invocation:: Bison command syntax on VMS.
|
* VMS Invocation:: Bison command syntax on VMS.
|
||||||
|
|
||||||
Copying This Manual
|
Copying This Manual
|
||||||
@@ -447,16 +449,26 @@ lexicography, not grammar.)
|
|||||||
|
|
||||||
Here is a simple C function subdivided into tokens:
|
Here is a simple C function subdivided into tokens:
|
||||||
|
|
||||||
|
@ifinfo
|
||||||
@example
|
@example
|
||||||
int /* @r{keyword `int'} */
|
int /* @r{keyword `int'} */
|
||||||
square (x) /* @r{identifier, open-paren,} */
|
square (int x) /* @r{identifier, open-paren, identifier,}
|
||||||
/* @r{identifier, close-paren} */
|
@r{identifier, close-paren} */
|
||||||
int x; /* @r{keyword `int', identifier, semicolon} */
|
|
||||||
@{ /* @r{open-brace} */
|
@{ /* @r{open-brace} */
|
||||||
return x * x; /* @r{keyword `return', identifier,} */
|
return x * x; /* @r{keyword `return', identifier, asterisk,
|
||||||
/* @r{asterisk, identifier, semicolon} */
|
identifier, semicolon} */
|
||||||
@} /* @r{close-brace} */
|
@} /* @r{close-brace} */
|
||||||
@end example
|
@end example
|
||||||
|
@end ifinfo
|
||||||
|
@ifnotinfo
|
||||||
|
@example
|
||||||
|
int /* @r{keyword `int'} */
|
||||||
|
square (int x) /* @r{identifier, open-paren, identifier, identifier, close-paren} */
|
||||||
|
@{ /* @r{open-brace} */
|
||||||
|
return x * x; /* @r{keyword `return', identifier, asterisk, identifier, semicolon} */
|
||||||
|
@} /* @r{close-brace} */
|
||||||
|
@end example
|
||||||
|
@end ifnotinfo
|
||||||
|
|
||||||
The syntactic groupings of C include the expression, the statement, the
|
The syntactic groupings of C include the expression, the statement, the
|
||||||
declaration, and the function definition. These are represented in the
|
declaration, and the function definition. These are represented in the
|
||||||
@@ -683,7 +695,7 @@ arrange for it to call @code{yyparse} or the parser will never run.
|
|||||||
@xref{Interface, ,Parser C-Language Interface}.
|
@xref{Interface, ,Parser C-Language Interface}.
|
||||||
|
|
||||||
Aside from the token type names and the symbols in the actions you
|
Aside from the token type names and the symbols in the actions you
|
||||||
write, all variable and function names used in the Bison parser file
|
write, all symbols defined in the Bison parser file itself
|
||||||
begin with @samp{yy} or @samp{YY}. This includes interface functions
|
begin with @samp{yy} or @samp{YY}. This includes interface functions
|
||||||
such as the lexical analyzer function @code{yylex}, the error reporting
|
such as the lexical analyzer function @code{yylex}, the error reporting
|
||||||
function @code{yyerror} and the parser function @code{yyparse} itself.
|
function @code{yyerror} and the parser function @code{yyparse} itself.
|
||||||
@@ -692,6 +704,14 @@ Therefore, you should avoid using C identifiers starting with @samp{yy}
|
|||||||
or @samp{YY} in the Bison grammar file except for the ones defined in
|
or @samp{YY} in the Bison grammar file except for the ones defined in
|
||||||
this manual.
|
this manual.
|
||||||
|
|
||||||
|
In some cases the Bison parser file includes system headers, and in
|
||||||
|
those cases your code should respect the identifiers reserved by those
|
||||||
|
headers. On some non-@sc{gnu} hosts, @code{<alloca.h>},
|
||||||
|
@code{<stddef.h>}, and @code{<stdlib.h>} are included as needed to
|
||||||
|
declare memory allocators and related types.
|
||||||
|
Other system headers may be included if you define @code{YYDEBUG} to a
|
||||||
|
nonzero value (@pxref{Debugging, ,Debugging Your Parser}).
|
||||||
|
|
||||||
@node Stages
|
@node Stages
|
||||||
@section Stages in Using Bison
|
@section Stages in Using Bison
|
||||||
@cindex stages in using Bison
|
@cindex stages in using Bison
|
||||||
@@ -855,11 +875,12 @@ The C declarations section (@pxref{C Declarations, ,The C Declarations Section})
|
|||||||
preprocessor directives.
|
preprocessor directives.
|
||||||
|
|
||||||
The @code{#define} directive defines the macro @code{YYSTYPE}, thus
|
The @code{#define} directive defines the macro @code{YYSTYPE}, thus
|
||||||
specifying the C data type for semantic values of both tokens and groupings
|
specifying the C data type for semantic values of both tokens and
|
||||||
(@pxref{Value Type, ,Data Types of Semantic Values}). The Bison parser will use whatever type
|
groupings (@pxref{Value Type, ,Data Types of Semantic Values}). The
|
||||||
@code{YYSTYPE} is defined as; if you don't define it, @code{int} is the
|
Bison parser will use whatever type @code{YYSTYPE} is defined as; if you
|
||||||
default. Because we specify @code{double}, each token and each expression
|
don't define it, @code{int} is the default. Because we specify
|
||||||
has an associated value, which is a floating point number.
|
@code{double}, each token and each expression has an associated value,
|
||||||
|
which is a floating point number.
|
||||||
|
|
||||||
The @code{#include} directive is used to declare the exponentiation
|
The @code{#include} directive is used to declare the exponentiation
|
||||||
function @code{pow}.
|
function @code{pow}.
|
||||||
@@ -1066,10 +1087,11 @@ token type is an identifier, that identifier is defined by Bison as a C
|
|||||||
macro whose definition is the appropriate number. In this example,
|
macro whose definition is the appropriate number. In this example,
|
||||||
therefore, @code{NUM} becomes a macro for @code{yylex} to use.
|
therefore, @code{NUM} becomes a macro for @code{yylex} to use.
|
||||||
|
|
||||||
The semantic value of the token (if it has one) is stored into the global
|
The semantic value of the token (if it has one) is stored into the
|
||||||
variable @code{yylval}, which is where the Bison parser will look for it.
|
global variable @code{yylval}, which is where the Bison parser will look
|
||||||
(The C data type of @code{yylval} is @code{YYSTYPE}, which was defined
|
for it. (The C data type of @code{yylval} is @code{YYSTYPE}, which was
|
||||||
at the beginning of the grammar; @pxref{Rpcalc Decls, ,Declarations for @code{rpcalc}}.)
|
defined at the beginning of the grammar; @pxref{Rpcalc Decls,
|
||||||
|
,Declarations for @code{rpcalc}}.)
|
||||||
|
|
||||||
A token type code of zero is returned if the end-of-file is encountered.
|
A token type code of zero is returned if the end-of-file is encountered.
|
||||||
(Bison recognizes any nonpositive value as indicating the end of the
|
(Bison recognizes any nonpositive value as indicating the end of the
|
||||||
@@ -1202,19 +1224,19 @@ Here is how to compile and run the parser file:
|
|||||||
@example
|
@example
|
||||||
@group
|
@group
|
||||||
# @r{List files in current directory.}
|
# @r{List files in current directory.}
|
||||||
% ls
|
$ @kbd{ls}
|
||||||
rpcalc.tab.c rpcalc.y
|
rpcalc.tab.c rpcalc.y
|
||||||
@end group
|
@end group
|
||||||
|
|
||||||
@group
|
@group
|
||||||
# @r{Compile the Bison parser.}
|
# @r{Compile the Bison parser.}
|
||||||
# @r{@samp{-lm} tells compiler to search math library for @code{pow}.}
|
# @r{@samp{-lm} tells compiler to search math library for @code{pow}.}
|
||||||
% cc rpcalc.tab.c -lm -o rpcalc
|
$ @kbd{cc rpcalc.tab.c -lm -o rpcalc}
|
||||||
@end group
|
@end group
|
||||||
|
|
||||||
@group
|
@group
|
||||||
# @r{List files again.}
|
# @r{List files again.}
|
||||||
% ls
|
$ @kbd{ls}
|
||||||
rpcalc rpcalc.tab.c rpcalc.y
|
rpcalc rpcalc.tab.c rpcalc.y
|
||||||
@end group
|
@end group
|
||||||
@end example
|
@end example
|
||||||
@@ -1223,19 +1245,19 @@ The file @file{rpcalc} now contains the executable code. Here is an
|
|||||||
example session using @code{rpcalc}.
|
example session using @code{rpcalc}.
|
||||||
|
|
||||||
@example
|
@example
|
||||||
% rpcalc
|
$ @kbd{rpcalc}
|
||||||
4 9 +
|
@kbd{4 9 +}
|
||||||
13
|
13
|
||||||
3 7 + 3 4 5 *+-
|
@kbd{3 7 + 3 4 5 *+-}
|
||||||
-13
|
-13
|
||||||
3 7 + 3 4 5 * + - n @r{Note the unary minus, @samp{n}}
|
@kbd{3 7 + 3 4 5 * + - n} @r{Note the unary minus, @samp{n}}
|
||||||
13
|
13
|
||||||
5 6 / 4 n +
|
@kbd{5 6 / 4 n +}
|
||||||
-3.166666667
|
-3.166666667
|
||||||
3 4 ^ @r{Exponentiation}
|
@kbd{3 4 ^} @r{Exponentiation}
|
||||||
81
|
81
|
||||||
^D @r{End-of-file indicator}
|
@kbd{^D} @r{End-of-file indicator}
|
||||||
%
|
$
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@node Infix Calc
|
@node Infix Calc
|
||||||
@@ -1315,12 +1337,12 @@ Here is a sample run of @file{calc.y}:
|
|||||||
|
|
||||||
@need 500
|
@need 500
|
||||||
@example
|
@example
|
||||||
% calc
|
$ @kbd{calc}
|
||||||
4 + 4.5 - (34/(8*3+-3))
|
@kbd{4 + 4.5 - (34/(8*3+-3))}
|
||||||
6.880952381
|
6.880952381
|
||||||
-56 + 2
|
@kbd{-56 + 2}
|
||||||
-54
|
-54
|
||||||
3 ^ 2
|
@kbd{3 ^ 2}
|
||||||
9
|
9
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@@ -1372,13 +1394,11 @@ Bison programs.
|
|||||||
@cindex @code{ltcalc}
|
@cindex @code{ltcalc}
|
||||||
@cindex calculator, location tracking
|
@cindex calculator, location tracking
|
||||||
|
|
||||||
This example extends the infix notation calculator with location tracking.
|
This example extends the infix notation calculator with location
|
||||||
This feature will be used to improve error reporting, and provide better
|
tracking. This feature will be used to improve the error messages. For
|
||||||
error messages.
|
the sake of clarity, this example is a simple integer calculator, since
|
||||||
|
most of the work needed to use locations will be done in the lexical
|
||||||
For the sake of clarity, we will switch for this example to an integer
|
analyser.
|
||||||
calculator, since most of the work needed to use locations will be done
|
|
||||||
in the lexical analyser.
|
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* Decls: Ltcalc Decls. Bison and C declarations for ltcalc.
|
* Decls: Ltcalc Decls. Bison and C declarations for ltcalc.
|
||||||
@@ -1389,8 +1409,8 @@ in the lexical analyser.
|
|||||||
@node Ltcalc Decls
|
@node Ltcalc Decls
|
||||||
@subsection Declarations for @code{ltcalc}
|
@subsection Declarations for @code{ltcalc}
|
||||||
|
|
||||||
The C and Bison declarations for the location tracking calculator are the same
|
The C and Bison declarations for the location tracking calculator are
|
||||||
as the declarations for the infix notation calculator.
|
the same as the declarations for the infix notation calculator.
|
||||||
|
|
||||||
@example
|
@example
|
||||||
/* Location tracking calculator. */
|
/* Location tracking calculator. */
|
||||||
@@ -1411,22 +1431,24 @@ as the declarations for the infix notation calculator.
|
|||||||
%% /* Grammar follows */
|
%% /* Grammar follows */
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
In the code above, there are no declarations specific to locations. Defining
|
@noindent
|
||||||
a data type for storing locations is not needed: we will use the type provided
|
Note there are no declarations specific to locations. Defining a data
|
||||||
by default (@pxref{Location Type, ,Data Types of Locations}), which is a four
|
type for storing locations is not needed: we will use the type provided
|
||||||
member structure with the following integer fields: @code{first_line},
|
by default (@pxref{Location Type, ,Data Types of Locations}), which is a
|
||||||
@code{first_column}, @code{last_line} and @code{last_column}.
|
four member structure with the following integer fields:
|
||||||
|
@code{first_line}, @code{first_column}, @code{last_line} and
|
||||||
|
@code{last_column}.
|
||||||
|
|
||||||
@node Ltcalc Rules
|
@node Ltcalc Rules
|
||||||
@subsection Grammar Rules for @code{ltcalc}
|
@subsection Grammar Rules for @code{ltcalc}
|
||||||
|
|
||||||
Whether you choose to handle locations or not has no effect on the syntax of
|
Whether handling locations or not has no effect on the syntax of your
|
||||||
your language. Therefore, grammar rules for this example will be very close to
|
language. Therefore, grammar rules for this example will be very close
|
||||||
those of the previous example: we will only modify them to benefit from the new
|
to those of the previous example: we will only modify them to benefit
|
||||||
informations we will have.
|
from the new information.
|
||||||
|
|
||||||
Here, we will use locations to report divisions by zero, and locate the wrong
|
Here, we will use locations to report divisions by zero, and locate the
|
||||||
expressions or subexpressions.
|
wrong expressions or subexpressions.
|
||||||
|
|
||||||
@example
|
@example
|
||||||
@group
|
@group
|
||||||
@@ -1447,17 +1469,17 @@ exp : NUM @{ $$ = $1; @}
|
|||||||
| exp '-' exp @{ $$ = $1 - $3; @}
|
| exp '-' exp @{ $$ = $1 - $3; @}
|
||||||
| exp '*' exp @{ $$ = $1 * $3; @}
|
| exp '*' exp @{ $$ = $1 * $3; @}
|
||||||
@end group
|
@end group
|
||||||
| exp '/' exp
|
|
||||||
@group
|
@group
|
||||||
|
| exp '/' exp
|
||||||
@{
|
@{
|
||||||
if ($3)
|
if ($3)
|
||||||
$$ = $1 / $3;
|
$$ = $1 / $3;
|
||||||
else
|
else
|
||||||
@{
|
@{
|
||||||
$$ = 1;
|
$$ = 1;
|
||||||
printf("Division by zero, l%d,c%d-l%d,c%d",
|
fprintf (stderr, "%d.%d-%d.%d: division by zero",
|
||||||
@@3.first_line, @@3.first_column,
|
@@3.first_line, @@3.first_column,
|
||||||
@@3.last_line, @@3.last_column);
|
@@3.last_line, @@3.last_column);
|
||||||
@}
|
@}
|
||||||
@}
|
@}
|
||||||
@end group
|
@end group
|
||||||
@@ -1472,25 +1494,24 @@ This code shows how to reach locations inside of semantic actions, by
|
|||||||
using the pseudo-variables @code{@@@var{n}} for rule components, and the
|
using the pseudo-variables @code{@@@var{n}} for rule components, and the
|
||||||
pseudo-variable @code{@@$} for groupings.
|
pseudo-variable @code{@@$} for groupings.
|
||||||
|
|
||||||
In this example, we never assign a value to @code{@@$}, because the
|
We don't need to assign a value to @code{@@$}: the output parser does it
|
||||||
output parser can do this automatically. By default, before executing
|
automatically. By default, before executing the C code of each action,
|
||||||
the C code of each action, @code{@@$} is set to range from the beginning
|
@code{@@$} is set to range from the beginning of @code{@@1} to the end
|
||||||
of @code{@@1} to the end of @code{@@@var{n}}, for a rule with @var{n}
|
of @code{@@@var{n}}, for a rule with @var{n} components. This behavior
|
||||||
components.
|
can be redefined (@pxref{Location Default Action, , Default Action for
|
||||||
|
Locations}), and for very specific rules, @code{@@$} can be computed by
|
||||||
Of course, this behavior can be redefined (@pxref{Location Default
|
hand.
|
||||||
Action, , Default Action for Locations}), and for very specific rules,
|
|
||||||
@code{@@$} can be computed by hand.
|
|
||||||
|
|
||||||
@node Ltcalc Lexer
|
@node Ltcalc Lexer
|
||||||
@subsection The @code{ltcalc} Lexical Analyzer.
|
@subsection The @code{ltcalc} Lexical Analyzer.
|
||||||
|
|
||||||
Until now, we relied on Bison's defaults to enable location tracking. The next
|
Until now, we relied on Bison's defaults to enable location
|
||||||
step is to rewrite the lexical analyser, and make it able to feed the parser
|
tracking. The next step is to rewrite the lexical analyser, and make it
|
||||||
with locations of tokens, as he already does for semantic values.
|
able to feed the parser with the token locations, as it already does for
|
||||||
|
semantic values.
|
||||||
|
|
||||||
To do so, we must take into account every single character of the input text,
|
To this end, we must take into account every single character of the
|
||||||
to avoid the computed locations of being fuzzy or wrong:
|
input text, to avoid the computed locations of being fuzzy or wrong:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
@group
|
@group
|
||||||
@@ -1540,17 +1561,18 @@ yylex (void)
|
|||||||
@}
|
@}
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
Basically, the lexical analyzer does the same processing as before: it skips
|
Basically, the lexical analyzer performs the same processing as before:
|
||||||
blanks and tabs, and reads numbers or single-character tokens. In addition
|
it skips blanks and tabs, and reads numbers or single-character tokens.
|
||||||
to this, it updates the @code{yylloc} global variable (of type @code{YYLTYPE}),
|
In addition, it updates @code{yylloc}, the global variable (of type
|
||||||
where the location of tokens is stored.
|
@code{YYLTYPE}) containing the token's location.
|
||||||
|
|
||||||
Now, each time this function returns a token, the parser has it's number as
|
Now, each time this function returns a token, the parser has its number
|
||||||
well as it's semantic value, and it's position in the text. The last needed
|
as well as its semantic value, and its location in the text. The last
|
||||||
change is to initialize @code{yylloc}, for example in the controlling
|
needed change is to initialize @code{yylloc}, for example in the
|
||||||
function:
|
controlling function:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
|
@group
|
||||||
int
|
int
|
||||||
main (void)
|
main (void)
|
||||||
@{
|
@{
|
||||||
@@ -1558,11 +1580,12 @@ main (void)
|
|||||||
yylloc.first_column = yylloc.last_column = 0;
|
yylloc.first_column = yylloc.last_column = 0;
|
||||||
return yyparse ();
|
return yyparse ();
|
||||||
@}
|
@}
|
||||||
|
@end group
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
Remember that computing locations is not a matter of syntax. Every character
|
Remember that computing locations is not a matter of syntax. Every
|
||||||
must be associated to a location update, whether it is in valid input, in
|
character must be associated to a location update, whether it is in
|
||||||
comments, in literal strings, and so on...
|
valid input, in comments, in literal strings, and so on.
|
||||||
|
|
||||||
@node Multi-function Calc
|
@node Multi-function Calc
|
||||||
@section Multi-Function Calculator: @code{mfcalc}
|
@section Multi-Function Calculator: @code{mfcalc}
|
||||||
@@ -1592,20 +1615,20 @@ to create named variables, store values in them, and use them later.
|
|||||||
Here is a sample session with the multi-function calculator:
|
Here is a sample session with the multi-function calculator:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
% mfcalc
|
$ @kbd{mfcalc}
|
||||||
pi = 3.141592653589
|
@kbd{pi = 3.141592653589}
|
||||||
3.1415926536
|
3.1415926536
|
||||||
sin(pi)
|
@kbd{sin(pi)}
|
||||||
0.0000000000
|
0.0000000000
|
||||||
alpha = beta1 = 2.3
|
@kbd{alpha = beta1 = 2.3}
|
||||||
2.3000000000
|
2.3000000000
|
||||||
alpha
|
@kbd{alpha}
|
||||||
2.3000000000
|
2.3000000000
|
||||||
ln(alpha)
|
@kbd{ln(alpha)}
|
||||||
0.8329091229
|
0.8329091229
|
||||||
exp(ln(beta1))
|
@kbd{exp(ln(beta1))}
|
||||||
2.3000000000
|
2.3000000000
|
||||||
%
|
$
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
Note that multiple assignment and nested function calls are permitted.
|
Note that multiple assignment and nested function calls are permitted.
|
||||||
@@ -2374,7 +2397,8 @@ the numbers associated with @var{x} and @var{y}.
|
|||||||
|
|
||||||
In a simple program it may be sufficient to use the same data type for
|
In a simple program it may be sufficient to use the same data type for
|
||||||
the semantic values of all language constructs. This was true in the
|
the semantic values of all language constructs. This was true in the
|
||||||
RPN and infix calculator examples (@pxref{RPN Calc, ,Reverse Polish Notation Calculator}).
|
RPN and infix calculator examples (@pxref{RPN Calc, ,Reverse Polish
|
||||||
|
Notation Calculator}).
|
||||||
|
|
||||||
Bison's default is to use type @code{int} for all semantic values. To
|
Bison's default is to use type @code{int} for all semantic values. To
|
||||||
specify some other type, define @code{YYSTYPE} as a macro, like this:
|
specify some other type, define @code{YYSTYPE} as a macro, like this:
|
||||||
@@ -3067,11 +3091,11 @@ terminal symbol. All kinds of token declarations allow
|
|||||||
@findex %expect
|
@findex %expect
|
||||||
|
|
||||||
Bison normally warns if there are any conflicts in the grammar
|
Bison normally warns if there are any conflicts in the grammar
|
||||||
(@pxref{Shift/Reduce, ,Shift/Reduce Conflicts}), but most real grammars have harmless shift/reduce
|
(@pxref{Shift/Reduce, ,Shift/Reduce Conflicts}), but most real grammars
|
||||||
conflicts which are resolved in a predictable way and would be difficult to
|
have harmless shift/reduce conflicts which are resolved in a predictable
|
||||||
eliminate. It is desirable to suppress the warning about these conflicts
|
way and would be difficult to eliminate. It is desirable to suppress
|
||||||
unless the number of conflicts changes. You can do this with the
|
the warning about these conflicts unless the number of conflicts
|
||||||
@code{%expect} declaration.
|
changes. You can do this with the @code{%expect} declaration.
|
||||||
|
|
||||||
The declaration looks like this:
|
The declaration looks like this:
|
||||||
|
|
||||||
@@ -3079,10 +3103,11 @@ The declaration looks like this:
|
|||||||
%expect @var{n}
|
%expect @var{n}
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
Here @var{n} is a decimal integer. The declaration says there should be no
|
Here @var{n} is a decimal integer. The declaration says there should be
|
||||||
warning if there are @var{n} shift/reduce conflicts and no reduce/reduce
|
no warning if there are @var{n} shift/reduce conflicts and no
|
||||||
conflicts. The usual warning is given if there are either more or fewer
|
reduce/reduce conflicts. An error, instead of the usual warning, is
|
||||||
conflicts, or if there are any reduce/reduce conflicts.
|
given if there are either more or fewer conflicts, or if there are any
|
||||||
|
reduce/reduce conflicts.
|
||||||
|
|
||||||
In general, using @code{%expect} involves these steps:
|
In general, using @code{%expect} involves these steps:
|
||||||
|
|
||||||
@@ -3167,7 +3192,7 @@ valid grammar.
|
|||||||
@cindex declaration summary
|
@cindex declaration summary
|
||||||
@cindex summary, Bison declaration
|
@cindex summary, Bison declaration
|
||||||
|
|
||||||
Here is a summary of all Bison declarations:
|
Here is a summary of the declarations used to define a grammar:
|
||||||
|
|
||||||
@table @code
|
@table @code
|
||||||
@item %union
|
@item %union
|
||||||
@@ -3202,44 +3227,18 @@ Start-Symbol}).
|
|||||||
@item %expect
|
@item %expect
|
||||||
Declare the expected number of shift-reduce conflicts
|
Declare the expected number of shift-reduce conflicts
|
||||||
(@pxref{Expect Decl, ,Suppressing Conflict Warnings}).
|
(@pxref{Expect Decl, ,Suppressing Conflict Warnings}).
|
||||||
|
@end table
|
||||||
|
|
||||||
@item %yacc
|
@sp 1
|
||||||
@itemx %fixed_output_files
|
@noindent
|
||||||
Pretend the option @option{--yacc} was given, i.e., imitate Yacc,
|
In order to change the behavior of @command{bison}, use the following
|
||||||
including its naming conventions. @xref{Bison Options}, for more.
|
directives:
|
||||||
|
|
||||||
@item %locations
|
|
||||||
Generate the code processing the locations (@pxref{Action Features,
|
|
||||||
,Special Features for Use in Actions}). This mode is enabled as soon as
|
|
||||||
the grammar uses the special @samp{@@@var{n}} tokens, but if your
|
|
||||||
grammar does not use it, using @samp{%locations} allows for more
|
|
||||||
accurate parse error messages.
|
|
||||||
|
|
||||||
@item %pure_parser
|
|
||||||
Request a pure (reentrant) parser program (@pxref{Pure Decl, ,A Pure
|
|
||||||
(Reentrant) Parser}).
|
|
||||||
|
|
||||||
@item %no_parser
|
|
||||||
Do not include any C code in the parser file; generate tables only. The
|
|
||||||
parser file contains just @code{#define} directives and static variable
|
|
||||||
declarations.
|
|
||||||
|
|
||||||
This option also tells Bison to write the C code for the grammar actions
|
|
||||||
into a file named @file{@var{filename}.act}, in the form of a
|
|
||||||
brace-surrounded body fit for a @code{switch} statement.
|
|
||||||
|
|
||||||
@item %no_lines
|
|
||||||
Don't generate any @code{#line} preprocessor commands in the parser
|
|
||||||
file. Ordinarily Bison writes these commands in the parser file so that
|
|
||||||
the C compiler and debuggers will associate errors and object code with
|
|
||||||
your source file (the grammar file). This directive causes them to
|
|
||||||
associate errors with the parser file, treating it an independent source
|
|
||||||
file in its own right.
|
|
||||||
|
|
||||||
|
@table @code
|
||||||
@item %debug
|
@item %debug
|
||||||
Output a definition of the macro @code{YYDEBUG} into the parser file, so
|
In the parser file, define the macro @code{YYDEBUG} to 1 if it is not
|
||||||
that the debugging facilities are compiled. @xref{Debugging, ,Debugging
|
already defined, so that the debugging facilities are compiled.
|
||||||
Your Parser}.
|
@xref{Debugging, ,Debugging Your Parser}.
|
||||||
|
|
||||||
@item %defines
|
@item %defines
|
||||||
Write an extra output file containing macro definitions for the token
|
Write an extra output file containing macro definitions for the token
|
||||||
@@ -3254,35 +3253,64 @@ This output file is essential if you wish to put the definition of
|
|||||||
be able to refer to token type codes and the variable
|
be able to refer to token type codes and the variable
|
||||||
@code{yylval}. @xref{Token Values, ,Semantic Values of Tokens}.@refill
|
@code{yylval}. @xref{Token Values, ,Semantic Values of Tokens}.@refill
|
||||||
|
|
||||||
|
@item %file-prefix="@var{prefix}"
|
||||||
|
Specify a prefix to use for all Bison output file names. The names are
|
||||||
|
chosen as if the input file were named @file{@var{prefix}.y}.
|
||||||
|
|
||||||
|
@c @item %header_extension
|
||||||
|
@c Specify the extension of the parser header file generated when
|
||||||
|
@c @code{%define} or @samp{-d} are used.
|
||||||
|
@c
|
||||||
|
@c For example, a grammar file named @file{foo.ypp} and containing a
|
||||||
|
@c @code{%header_extension .hh} directive will produce a header file
|
||||||
|
@c named @file{foo.tab.hh}
|
||||||
|
|
||||||
|
@item %locations
|
||||||
|
Generate the code processing the locations (@pxref{Action Features,
|
||||||
|
,Special Features for Use in Actions}). This mode is enabled as soon as
|
||||||
|
the grammar uses the special @samp{@@@var{n}} tokens, but if your
|
||||||
|
grammar does not use it, using @samp{%locations} allows for more
|
||||||
|
accurate parse error messages.
|
||||||
|
|
||||||
|
@item %name-prefix="@var{prefix}"
|
||||||
|
Rename the external symbols used in the parser so that they start with
|
||||||
|
@var{prefix} instead of @samp{yy}. The precise list of symbols renamed
|
||||||
|
is @code{yyparse}, @code{yylex}, @code{yyerror}, @code{yynerrs},
|
||||||
|
@code{yylval}, @code{yychar} and @code{yydebug}. For example, if you
|
||||||
|
use @samp{%name-prefix="c_"}, the names become @code{c_parse},
|
||||||
|
@code{c_lex}, and so on. @xref{Multiple Parsers, ,Multiple Parsers in
|
||||||
|
the Same Program}.
|
||||||
|
|
||||||
|
@item %no-parser
|
||||||
|
Do not include any C code in the parser file; generate tables only. The
|
||||||
|
parser file contains just @code{#define} directives and static variable
|
||||||
|
declarations.
|
||||||
|
|
||||||
|
This option also tells Bison to write the C code for the grammar actions
|
||||||
|
into a file named @file{@var{filename}.act}, in the form of a
|
||||||
|
brace-surrounded body fit for a @code{switch} statement.
|
||||||
|
|
||||||
|
@item %no-lines
|
||||||
|
Don't generate any @code{#line} preprocessor commands in the parser
|
||||||
|
file. Ordinarily Bison writes these commands in the parser file so that
|
||||||
|
the C compiler and debuggers will associate errors and object code with
|
||||||
|
your source file (the grammar file). This directive causes them to
|
||||||
|
associate errors with the parser file, treating it an independent source
|
||||||
|
file in its own right.
|
||||||
|
|
||||||
|
@item %output="@var{filename}"
|
||||||
|
Specify the @var{filename} for the parser file.
|
||||||
|
|
||||||
|
@item %pure-parser
|
||||||
|
Request a pure (reentrant) parser program (@pxref{Pure Decl, ,A Pure
|
||||||
|
(Reentrant) Parser}).
|
||||||
|
|
||||||
@c @item %source_extension
|
@c @item %source_extension
|
||||||
@c Specify the extension of the parser output file.
|
@c Specify the extension of the parser output file.
|
||||||
@c
|
@c
|
||||||
@c For example, a grammar file named @file{foo.yy} and containing a
|
@c For example, a grammar file named @file{foo.yy} and containing a
|
||||||
@c @code{%source_extension .cpp} directive will produce a parser file
|
@c @code{%source_extension .cpp} directive will produce a parser file
|
||||||
@c named @file{foo.tab.cpp}
|
@c named @file{foo.tab.cpp}
|
||||||
@c
|
|
||||||
@c @item %header_extension
|
|
||||||
@c Specify the extension of the parser header file generated when
|
|
||||||
@c @code{%define} or @samp{-d} are used.
|
|
||||||
@c
|
|
||||||
@c For example, a garmmar file named @file{foo.ypp} and containing a
|
|
||||||
@c @code{%header_extension .hh} directive will produce a header file
|
|
||||||
@c named @file{foo.tab.hh}
|
|
||||||
|
|
||||||
@item %verbose
|
|
||||||
Write an extra output file containing verbose descriptions of the
|
|
||||||
parser states and what is done for each type of look-ahead token in
|
|
||||||
that state.
|
|
||||||
|
|
||||||
This file also describes all the conflicts, both those resolved by
|
|
||||||
operator precedence and the unresolved ones.
|
|
||||||
|
|
||||||
The file's name is made by removing @samp{.tab.c} or @samp{.c} from
|
|
||||||
the parser output file name, and adding @samp{.output} instead.@refill
|
|
||||||
|
|
||||||
Therefore, if the input file is @file{foo.y}, then the parser file is
|
|
||||||
called @file{foo.tab.c} by default. As a consequence, the verbose
|
|
||||||
output file is called @file{foo.output}.@refill
|
|
||||||
|
|
||||||
@item %token_table
|
@item %token_table
|
||||||
Generate an array of token names in the parser file. The name of the
|
Generate an array of token names in the parser file. The name of the
|
||||||
@@ -3316,8 +3344,31 @@ The number of grammar rules,
|
|||||||
@item YYNSTATES
|
@item YYNSTATES
|
||||||
The number of parser states (@pxref{Parser States}).
|
The number of parser states (@pxref{Parser States}).
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@item %verbose
|
||||||
|
Write an extra output file containing verbose descriptions of the
|
||||||
|
parser states and what is done for each type of look-ahead token in
|
||||||
|
that state.
|
||||||
|
|
||||||
|
This file also describes all the conflicts, both those resolved by
|
||||||
|
operator precedence and the unresolved ones.
|
||||||
|
|
||||||
|
The file's name is made by removing @samp{.tab.c} or @samp{.c} from
|
||||||
|
the parser output file name, and adding @samp{.output} instead.@refill
|
||||||
|
|
||||||
|
Therefore, if the input file is @file{foo.y}, then the parser file is
|
||||||
|
called @file{foo.tab.c} by default. As a consequence, the verbose
|
||||||
|
output file is called @file{foo.output}.@refill
|
||||||
|
|
||||||
|
@item %yacc
|
||||||
|
@itemx %fixed-output-files
|
||||||
|
Pretend the option @option{--yacc} was given, i.e., imitate Yacc,
|
||||||
|
including its naming conventions. @xref{Bison Options}, for more.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@node Multiple Parsers
|
@node Multiple Parsers
|
||||||
@section Multiple Parsers in the Same Program
|
@section Multiple Parsers in the Same Program
|
||||||
|
|
||||||
@@ -4875,15 +4926,21 @@ If a Bison grammar compiles properly but doesn't do what you want when it
|
|||||||
runs, the @code{yydebug} parser-trace feature can help you figure out why.
|
runs, the @code{yydebug} parser-trace feature can help you figure out why.
|
||||||
|
|
||||||
To enable compilation of trace facilities, you must define the macro
|
To enable compilation of trace facilities, you must define the macro
|
||||||
@code{YYDEBUG} when you compile the parser. You could use
|
@code{YYDEBUG} to a nonzero value when you compile the parser. You
|
||||||
@samp{-DYYDEBUG=1} as a compiler option or you could put @samp{#define
|
could use @samp{-DYYDEBUG=1} as a compiler option or you could put
|
||||||
YYDEBUG 1} in the C declarations section of the grammar file
|
@samp{#define YYDEBUG 1} in the C declarations section of the grammar
|
||||||
(@pxref{C Declarations, ,The C Declarations Section}). Alternatively, use the @samp{-t} option when
|
file (@pxref{C Declarations, ,The C Declarations Section}).
|
||||||
you run Bison (@pxref{Invocation, ,Invoking Bison}). We always define @code{YYDEBUG} so that
|
Alternatively, use the @samp{-t} option when you run Bison
|
||||||
debugging is always possible.
|
(@pxref{Invocation, ,Invoking Bison}) or the @code{%debug} declaration
|
||||||
|
(@pxref{Decl Summary, ,Bison Declaration Summary}). We suggest that
|
||||||
|
you always define @code{YYDEBUG} so that debugging is always possible.
|
||||||
|
|
||||||
The trace facility uses @code{stderr}, so you must add @w{@code{#include
|
The trace facility outputs messages with macro calls of the form
|
||||||
<stdio.h>}} to the C declarations section unless it is already there.
|
@code{YYFPRINTF (stderr, @var{format}, @var{args})} where
|
||||||
|
@var{format} and @var{args} are the usual @code{printf} format and
|
||||||
|
arguments. If you define @code{YYDEBUG} to a nonzero value but do not
|
||||||
|
define @code{YYFPRINTF}, @code{<stdio.h>} is automatically included
|
||||||
|
and @code{YYPRINTF} is defined to @code{fprintf}.
|
||||||
|
|
||||||
Once you have compiled the program with trace facilities, the way to
|
Once you have compiled the program with trace facilities, the way to
|
||||||
request a trace is to store a nonzero value in the variable @code{yydebug}.
|
request a trace is to store a nonzero value in the variable @code{yydebug}.
|
||||||
@@ -4962,7 +5019,7 @@ Here @var{infile} is the grammar file name, which usually ends in
|
|||||||
@samp{.y}. The parser file's name is made by replacing the @samp{.y}
|
@samp{.y}. The parser file's name is made by replacing the @samp{.y}
|
||||||
with @samp{.tab.c}. Thus, the @samp{bison foo.y} filename yields
|
with @samp{.tab.c}. Thus, the @samp{bison foo.y} filename yields
|
||||||
@file{foo.tab.c}, and the @samp{bison hack/foo.y} filename yields
|
@file{foo.tab.c}, and the @samp{bison hack/foo.y} filename yields
|
||||||
@file{hack/foo.tab.c}. It's is also possible, in case you are writting
|
@file{hack/foo.tab.c}. It's is also possible, in case you are writing
|
||||||
C++ code instead of C in your grammar file, to name it @file{foo.ypp}
|
C++ code instead of C in your grammar file, to name it @file{foo.ypp}
|
||||||
or @file{foo.y++}. Then, the output files will take an extention like
|
or @file{foo.y++}. Then, the output files will take an extention like
|
||||||
the given one as input (repectively @file{foo.tab.cpp} and @file{foo.tab.c++}).
|
the given one as input (repectively @file{foo.tab.cpp} and @file{foo.tab.c++}).
|
||||||
@@ -4989,6 +5046,8 @@ will produce @file{output.c++} and @file{outfile.h++}.
|
|||||||
in alphabetical order by short options.
|
in alphabetical order by short options.
|
||||||
* Environment Variables:: Variables which affect Bison execution.
|
* Environment Variables:: Variables which affect Bison execution.
|
||||||
* Option Cross Key:: Alphabetical list of long options.
|
* Option Cross Key:: Alphabetical list of long options.
|
||||||
|
* Extension Limitations Under DOS:: Bison output files extension differences
|
||||||
|
depending on the DOS/Windows file system flavour used.
|
||||||
* VMS Invocation:: Bison command syntax on VMS.
|
* VMS Invocation:: Bison command syntax on VMS.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@@ -5044,24 +5103,17 @@ you are developing Bison.
|
|||||||
|
|
||||||
@item -t
|
@item -t
|
||||||
@itemx --debug
|
@itemx --debug
|
||||||
Output a definition of the macro @code{YYDEBUG} into the parser file, so
|
In the parser file, define the macro @code{YYDEBUG} to 1 if it is not
|
||||||
that the debugging facilities are compiled. @xref{Debugging, ,Debugging
|
already defined, so that the debugging facilities are compiled.
|
||||||
Your Parser}.
|
@xref{Debugging, ,Debugging Your Parser}.
|
||||||
|
|
||||||
@item --locations
|
@item --locations
|
||||||
Pretend that @code{%locactions} was specified. @xref{Decl Summary}.
|
Pretend that @code{%locations} was specified. @xref{Decl Summary}.
|
||||||
|
|
||||||
@item -p @var{prefix}
|
@item -p @var{prefix}
|
||||||
@itemx --name-prefix=@var{prefix}
|
@itemx --name-prefix=@var{prefix}
|
||||||
Rename the external symbols used in the parser so that they start with
|
Pretend that @code{%name-prefix="@var{prefix}"} was specified.
|
||||||
@var{prefix} instead of @samp{yy}. The precise list of symbols renamed
|
@xref{Decl Summary}.
|
||||||
is @code{yyparse}, @code{yylex}, @code{yyerror}, @code{yynerrs},
|
|
||||||
@code{yylval}, @code{yychar} and @code{yydebug}.
|
|
||||||
|
|
||||||
For example, if you use @samp{-p c}, the names become @code{cparse},
|
|
||||||
@code{clex}, and so on.
|
|
||||||
|
|
||||||
@xref{Multiple Parsers, ,Multiple Parsers in the Same Program}.
|
|
||||||
|
|
||||||
@item -l
|
@item -l
|
||||||
@itemx --no-lines
|
@itemx --no-lines
|
||||||
@@ -5073,11 +5125,11 @@ parser file, treating it as an independent source file in its own right.
|
|||||||
|
|
||||||
@item -n
|
@item -n
|
||||||
@itemx --no-parser
|
@itemx --no-parser
|
||||||
Pretend that @code{%no_parser} was specified. @xref{Decl Summary}.
|
Pretend that @code{%no-parser} was specified. @xref{Decl Summary}.
|
||||||
|
|
||||||
@item -k
|
@item -k
|
||||||
@itemx --token-table
|
@itemx --token-table
|
||||||
Pretend that @code{%token_table} was specified. @xref{Decl Summary}.
|
Pretend that @code{%token-table} was specified. @xref{Decl Summary}.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
@@ -5085,33 +5137,32 @@ Adjust the output:
|
|||||||
|
|
||||||
@table @option
|
@table @option
|
||||||
@item -d
|
@item -d
|
||||||
Pretend that @code{%verbose} was specified, i.e., write an extra output
|
@itemx --defines
|
||||||
|
Pretend that @code{%defines} was specified, i.e., write an extra output
|
||||||
file containing macro definitions for the token type names defined in
|
file containing macro definitions for the token type names defined in
|
||||||
the grammar and the semantic value type @code{YYSTYPE}, as well as a few
|
the grammar and the semantic value type @code{YYSTYPE}, as well as a few
|
||||||
@code{extern} variable declarations. @xref{Decl Summary}.
|
@code{extern} variable declarations. @xref{Decl Summary}.
|
||||||
|
|
||||||
@item --defines=@var{defines-file}
|
@item --defines=@var{defines-file}
|
||||||
The behaviour of @var{--defines} is the same than @samp{-d}. The only
|
Same as above, but save in the file @var{defines-file}.
|
||||||
difference is that it has an optionnal argument which is the name of
|
|
||||||
the output filename.
|
|
||||||
|
|
||||||
@item -b @var{file-prefix}
|
@item -b @var{file-prefix}
|
||||||
@itemx --file-prefix=@var{prefix}
|
@itemx --file-prefix=@var{prefix}
|
||||||
Specify a prefix to use for all Bison output file names. The names are
|
Pretend that @code{%verbose} was specified, i.e, specify prefix to use
|
||||||
chosen as if the input file were named @file{@var{prefix}.c}.
|
for all Bison output file names. @xref{Decl Summary}.
|
||||||
|
|
||||||
@item -v
|
@item -v
|
||||||
@itemx --verbose
|
@itemx --verbose
|
||||||
Pretend that @code{%verbose} was specified, i.e, write an extra output
|
Pretend that @code{%verbose} was specified, i.e, write an extra output
|
||||||
file containing verbose descriptions of the grammar and
|
file containing verbose descriptions of the grammar and
|
||||||
parser. @xref{Decl Summary}, for more.
|
parser. @xref{Decl Summary}.
|
||||||
|
|
||||||
@item -o @var{outfile}
|
@item -o @var{filename}
|
||||||
@itemx --output-file=@var{outfile}
|
@itemx --output=@var{filename}
|
||||||
Specify the name @var{outfile} for the parser file.
|
Specify the @var{filename} for the parser file.
|
||||||
|
|
||||||
The other output files' names are constructed from @var{outfile}
|
The other output files' names are constructed from @var{filename} as
|
||||||
as described under the @samp{-v} and @samp{-d} options.
|
described under the @samp{-v} and @samp{-d} options.
|
||||||
|
|
||||||
@item -g
|
@item -g
|
||||||
Output a VCG definition of the LALR(1) grammar automaton computed by
|
Output a VCG definition of the LALR(1) grammar automaton computed by
|
||||||
@@ -5119,7 +5170,7 @@ Bison. If the grammar file is @file{foo.y}, the VCG output file will
|
|||||||
be @file{foo.vcg}.
|
be @file{foo.vcg}.
|
||||||
|
|
||||||
@item --graph=@var{graph-file}
|
@item --graph=@var{graph-file}
|
||||||
The behaviour of @var{--graph} is the same than @samp{-g}. The only
|
The behaviour of @var{--graph} is the same than @samp{-g}. The only
|
||||||
difference is that it has an optionnal argument which is the name of
|
difference is that it has an optionnal argument which is the name of
|
||||||
the output graph filename.
|
the output graph filename.
|
||||||
@end table
|
@end table
|
||||||
@@ -5168,7 +5219,7 @@ the corresponding short option.
|
|||||||
\line{ --name-prefix \leaderfill -p}
|
\line{ --name-prefix \leaderfill -p}
|
||||||
\line{ --no-lines \leaderfill -l}
|
\line{ --no-lines \leaderfill -l}
|
||||||
\line{ --no-parser \leaderfill -n}
|
\line{ --no-parser \leaderfill -n}
|
||||||
\line{ --output-file \leaderfill -o}
|
\line{ --output \leaderfill -o}
|
||||||
\line{ --token-table \leaderfill -k}
|
\line{ --token-table \leaderfill -k}
|
||||||
\line{ --verbose \leaderfill -v}
|
\line{ --verbose \leaderfill -v}
|
||||||
\line{ --version \leaderfill -V}
|
\line{ --version \leaderfill -V}
|
||||||
@@ -5187,13 +5238,47 @@ the corresponding short option.
|
|||||||
--name-prefix=@var{prefix} -p @var{name-prefix}
|
--name-prefix=@var{prefix} -p @var{name-prefix}
|
||||||
--no-lines -l
|
--no-lines -l
|
||||||
--no-parser -n
|
--no-parser -n
|
||||||
--output-file=@var{outfile} -o @var{outfile}
|
--output=@var{outfile} -o @var{outfile}
|
||||||
--token-table -k
|
--token-table -k
|
||||||
--verbose -v
|
--verbose -v
|
||||||
--version -V
|
--version -V
|
||||||
@end example
|
@end example
|
||||||
@end ifinfo
|
@end ifinfo
|
||||||
|
|
||||||
|
@node Extension Limitations Under DOS
|
||||||
|
@section Extension Limitations under DOS
|
||||||
|
@cindex extension limitations under DOS
|
||||||
|
@cindex DOS
|
||||||
|
|
||||||
|
On DOS/Windows 9X systems the file name extensions of the output files,
|
||||||
|
like @file{.tab.c}, that may be used depend on the file system in use.
|
||||||
|
The plain DOS file system has limited file name length, does not allow
|
||||||
|
the use of a set of certain illicit characters and does not allow more
|
||||||
|
than a single dot in the file name.
|
||||||
|
|
||||||
|
The DJGPP port of @code{bison} will detect at runtime if (LFN) long file
|
||||||
|
name support is available or not. LFN support will be available in a
|
||||||
|
DOS session under Windows 9X and successors. Windows NT 4.0 needs a
|
||||||
|
special LFN driver (@file{ntlfn08b.zip}) or later available at any
|
||||||
|
simtelnet mirror in the /v2misc dir) for proper LFN support in a DOS
|
||||||
|
session. If LFN support is available the DJGPP port of @code{bison}
|
||||||
|
will use the standard POSIX file name extensions of the output files.
|
||||||
|
If LFN support is not available, then the DJGPP port of @code{bison}
|
||||||
|
will use DOS specific file name extensions.
|
||||||
|
|
||||||
|
@noindent This table summarizes the used extensions:
|
||||||
|
|
||||||
|
@multitable @columnfractions 0.1 0.45 0.45
|
||||||
|
@item @tab LFN extension (Win9X) @tab SFN extension (plain DOS)
|
||||||
|
@item @tab @file{.tab.c} @tab @file{_tab.c}
|
||||||
|
@item @tab @file{.tab.h} @tab @file{_tab.h}
|
||||||
|
@item @tab @file{.tab.cpp} @tab @file{_tab.cpp}
|
||||||
|
@item @tab @file{.tab.hpp} @tab @file{_tab.hpp}
|
||||||
|
@item @tab @file{.output} @tab @file{.out}
|
||||||
|
@item @tab @file{.stype.h} @tab @file{.sth}
|
||||||
|
@item @tab @file{.guard.c} @tab @file{.guc}
|
||||||
|
@end multitable
|
||||||
|
|
||||||
@node VMS Invocation
|
@node VMS Invocation
|
||||||
@section Invoking Bison under VMS
|
@section Invoking Bison under VMS
|
||||||
@cindex invoking Bison under VMS
|
@cindex invoking Bison under VMS
|
||||||
@@ -5361,6 +5446,10 @@ Equip the parser for debugging. @xref{Decl Summary}.
|
|||||||
Bison declaration to create a header file meant for the scanner.
|
Bison declaration to create a header file meant for the scanner.
|
||||||
@xref{Decl Summary}.
|
@xref{Decl Summary}.
|
||||||
|
|
||||||
|
@item %file-prefix="@var{prefix}"
|
||||||
|
Bison declaration to set tge prefix of the output files. @xref{Decl
|
||||||
|
Summary}.
|
||||||
|
|
||||||
@c @item %source_extension
|
@c @item %source_extension
|
||||||
@c Bison declaration to specify the generated parser output file extension.
|
@c Bison declaration to specify the generated parser output file extension.
|
||||||
@c @xref{Decl Summary}.
|
@c @xref{Decl Summary}.
|
||||||
@@ -5373,7 +5462,10 @@ Bison declaration to create a header file meant for the scanner.
|
|||||||
Bison declaration to assign left associativity to token(s).
|
Bison declaration to assign left associativity to token(s).
|
||||||
@xref{Precedence Decl, ,Operator Precedence}.
|
@xref{Precedence Decl, ,Operator Precedence}.
|
||||||
|
|
||||||
@item %no_lines
|
@item %name-prefix="@var{prefix}"
|
||||||
|
Bison declaration to rename the external symbols. @xref{Decl Summary}.
|
||||||
|
|
||||||
|
@item %no-lines
|
||||||
Bison declaration to avoid generating @code{#line} directives in the
|
Bison declaration to avoid generating @code{#line} directives in the
|
||||||
parser file. @xref{Decl Summary}.
|
parser file. @xref{Decl Summary}.
|
||||||
|
|
||||||
@@ -5381,11 +5473,15 @@ parser file. @xref{Decl Summary}.
|
|||||||
Bison declaration to assign non-associativity to token(s).
|
Bison declaration to assign non-associativity to token(s).
|
||||||
@xref{Precedence Decl, ,Operator Precedence}.
|
@xref{Precedence Decl, ,Operator Precedence}.
|
||||||
|
|
||||||
|
@item %output="@var{filename}"
|
||||||
|
Bison declaration to set the name of the parser file. @xref{Decl
|
||||||
|
Summary}.
|
||||||
|
|
||||||
@item %prec
|
@item %prec
|
||||||
Bison declaration to assign a precedence to a specific rule.
|
Bison declaration to assign a precedence to a specific rule.
|
||||||
@xref{Contextual Precedence, ,Context-Dependent Precedence}.
|
@xref{Contextual Precedence, ,Context-Dependent Precedence}.
|
||||||
|
|
||||||
@item %pure_parser
|
@item %pure-parser
|
||||||
Bison declaration to request a pure (reentrant) parser.
|
Bison declaration to request a pure (reentrant) parser.
|
||||||
@xref{Pure Decl, ,A Pure (Reentrant) Parser}.
|
@xref{Pure Decl, ,A Pure (Reentrant) Parser}.
|
||||||
|
|
||||||
@@ -5400,7 +5496,7 @@ Bison declaration to specify the start symbol. @xref{Start Decl, ,The Start-Sym
|
|||||||
Bison declaration to declare token(s) without specifying precedence.
|
Bison declaration to declare token(s) without specifying precedence.
|
||||||
@xref{Token Decl, ,Token Type Names}.
|
@xref{Token Decl, ,Token Type Names}.
|
||||||
|
|
||||||
@item %token_table
|
@item %token-table
|
||||||
Bison declaration to include a token name table in the parser file.
|
Bison declaration to include a token name table in the parser file.
|
||||||
@xref{Decl Summary}.
|
@xref{Decl Summary}.
|
||||||
|
|
||||||
|
|||||||
+44
-38
@@ -6,7 +6,7 @@
|
|||||||
% This file can be printed with 1 or 2 columns per page (see below).
|
% This file can be printed with 1 or 2 columns per page (see below).
|
||||||
% Specify how many you want here. Nothing else needs to be changed
|
% Specify how many you want here. Nothing else needs to be changed
|
||||||
% unless you are maintaining the documentation.
|
% unless you are maintaining the documentation.
|
||||||
% For printing reference cards to use in books, specify one column
|
% For printing reference cards to use in books, specify one column
|
||||||
% per page and reduce to 80%.
|
% per page and reduce to 80%.
|
||||||
% Note that if columnsperpage is set to 2, there will be a few overfull
|
% Note that if columnsperpage is set to 2, there will be a few overfull
|
||||||
% boxes, but they are not serious. Just uncomment \finalout.
|
% boxes, but they are not serious. Just uncomment \finalout.
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
\def\finalout{\overfullrule=0pt}
|
\def\finalout{\overfullrule=0pt}
|
||||||
%\finalout
|
%\finalout
|
||||||
|
|
||||||
% Copyright (c) 1998 Free Software Foundation, Inc.
|
% Copyright (c) 1998, 2001 Free Software Foundation, Inc.
|
||||||
%
|
%
|
||||||
% This file is part of Bison.
|
% This file is part of Bison.
|
||||||
%
|
%
|
||||||
@@ -51,11 +51,11 @@
|
|||||||
% Which mode to use is controlled by setting \columnsperpage above.
|
% Which mode to use is controlled by setting \columnsperpage above.
|
||||||
%
|
%
|
||||||
% Authors:
|
% Authors:
|
||||||
% Brendan Kehoe
|
% Brendan Kehoe
|
||||||
% UUCP: widener!brendan
|
% UUCP: widener!brendan
|
||||||
% Internet: [email protected]
|
% Internet: [email protected]
|
||||||
%
|
%
|
||||||
% Gavin Nicol
|
% Gavin Nicol
|
||||||
% Internet: [email protected]
|
% Internet: [email protected]
|
||||||
%
|
%
|
||||||
% This refcard format was created by Steve Gildea.
|
% This refcard format was created by Steve Gildea.
|
||||||
@@ -66,12 +66,12 @@
|
|||||||
% We only change the following to change the version numbers and
|
% We only change the following to change the version numbers and
|
||||||
% such.
|
% such.
|
||||||
|
|
||||||
\def\bisonversion{1.20} % the bison version
|
\def\bisonversion{1.31} % the bison version
|
||||||
|
|
||||||
\def\refcardversion{0.4a} % reference card version
|
\def\refcardversion{0.5} % reference card version
|
||||||
\def\month{August} % month
|
\def\month{November} % month
|
||||||
\def\year{1998} % year
|
\def\year{2001} % year
|
||||||
\def\version{\month\ \year, Bison Refcard Version \refcardversion}
|
\def\version{\month\ \year, Bison Refcard Version \refcardversion}
|
||||||
|
|
||||||
% for copyright notices
|
% for copyright notices
|
||||||
\def\small{\smallfont\textfont2=\smallsy\baselineskip=.8\baselineskip}
|
\def\small{\smallfont\textfont2=\smallsy\baselineskip=.8\baselineskip}
|
||||||
@@ -90,7 +90,7 @@
|
|||||||
|
|
||||||
Permission is granted to make and distribute copies of this card
|
Permission is granted to make and distribute copies of this card
|
||||||
provided the copyright notice and this permission notice
|
provided the copyright notice and this permission notice
|
||||||
are preserved on all copies.
|
are preserved on all copies.
|
||||||
\vskip .2\baselineskip
|
\vskip .2\baselineskip
|
||||||
For information, write to the:
|
For information, write to the:
|
||||||
\vskip .2\baselineskip
|
\vskip .2\baselineskip
|
||||||
@@ -115,7 +115,7 @@ For information, write to the:
|
|||||||
|
|
||||||
Permission is granted to make and distribute copies of this card
|
Permission is granted to make and distribute copies of this card
|
||||||
provided the copyright notice and this permission notice
|
provided the copyright notice and this permission notice
|
||||||
are preserved on all copies.
|
are preserved on all copies.
|
||||||
\vskip .2\baselineskip
|
\vskip .2\baselineskip
|
||||||
For information, write to the:
|
For information, write to the:
|
||||||
\vskip .2\baselineskip
|
\vskip .2\baselineskip
|
||||||
@@ -136,7 +136,7 @@ For information, write to the:
|
|||||||
|
|
||||||
\def\ncolumns{\the\columnsperpage}
|
\def\ncolumns{\the\columnsperpage}
|
||||||
|
|
||||||
\message{[\ncolumns\space
|
\message{[\ncolumns\space
|
||||||
column\if 1\ncolumns\else s\fi\space per page]}
|
column\if 1\ncolumns\else s\fi\space per page]}
|
||||||
|
|
||||||
\def\scaledmag#1{ scaled \magstep #1}
|
\def\scaledmag#1{ scaled \magstep #1}
|
||||||
@@ -227,7 +227,7 @@ For information, write to the:
|
|||||||
\def\bye{\par\vfill\supereject
|
\def\bye{\par\vfill\supereject
|
||||||
\if a\abc \else\null\vfill\eject\fi
|
\if a\abc \else\null\vfill\eject\fi
|
||||||
\if a\abc \else\null\vfill\eject\fi
|
\if a\abc \else\null\vfill\eject\fi
|
||||||
\end}
|
\end}
|
||||||
\fi
|
\fi
|
||||||
|
|
||||||
% we won't be using math mode much, so redefine some of the characters
|
% we won't be using math mode much, so redefine some of the characters
|
||||||
@@ -316,41 +316,44 @@ Options can be used as: \kbd{bison {\it options} {\it filename}}
|
|||||||
\section{Command Line Options}
|
\section{Command Line Options}
|
||||||
%*****************************
|
%*****************************
|
||||||
|
|
||||||
|
\key{Display usage information.} {-h}
|
||||||
|
\key{Display version information.} {-V}
|
||||||
\key{Generate token and {\tt YYSTYPE} definitions.} {-d}
|
\key{Generate token and {\tt YYSTYPE} definitions.} {-d}
|
||||||
|
\key{Prepend a prefix to external symbols.} {-p {\it prefix}}
|
||||||
\key{Don't put {\tt \#line} directives in the parser.} {-l}
|
\key{Don't put {\tt \#line} directives in the parser.} {-l}
|
||||||
\key{Specify the output file.} {-o {\it filename}}
|
\key{Specify the output file.} {-o {\it filename}}
|
||||||
\key{Debug or {\it trace} mode.} {-t}
|
\key{Debug or {\it trace} mode.} {-t}
|
||||||
\key{Verbose description of the parser.} {-v}
|
\key{Verbose description of the parser.} {-v}
|
||||||
\key{Emulate {\tt yacc} (generate {\tt y.tab.*} files).} {-y}
|
\key{Emulate {\tt yacc} (generate {\tt y.tab.*} files).} {-y}
|
||||||
|
|
||||||
\vskip .10truein
|
\vskip .10truein
|
||||||
{\bf Note:} The token and {\tt YYSTYPE} definitions are generated
|
{\bf Note:} The token and {\tt YYSTYPE} definitions are generated
|
||||||
to a file called {\tt y.tab.h} if the {\tt -y} option is used,
|
to a file called {\tt y.tab.h} if the {\tt -y} option is used,
|
||||||
otherwise it will have the format {\tt {\it name}.tab.h}, where
|
otherwise it will have the format {\tt {\it name}.tab.h}, where
|
||||||
{\it name} is the leading part of the parser definition filename.
|
{\it name} is the leading part of the parser definition filename.
|
||||||
|
|
||||||
\section{Definitions}
|
\section{Definitions}
|
||||||
%********************
|
%********************
|
||||||
|
|
||||||
\key{Declare a terminal symbol.}{\%token <{\it t\/}>
|
\key{Declare a terminal symbol.}{\%token <{\it t\/}>
|
||||||
{\it n}}
|
{\it n}}
|
||||||
|
|
||||||
\key{Declare a terminal symbol, and define its association.}
|
\key{Declare a terminal symbol, and define its association.}
|
||||||
{{\it association} <{\it t\/}> {\it n}}
|
{{\it association} <{\it t\/}> {\it n}}
|
||||||
|
|
||||||
\vskip .2\baselineskip
|
\vskip .2\baselineskip
|
||||||
\key{Generate a reentrant (pure) parser.}
|
\key{Generate a reentrant (pure) parser.}
|
||||||
{\%pure_parser}
|
{\%pure_parser}
|
||||||
|
|
||||||
\key{Define the union of all data types used in the parser.}
|
\key{Define the union of all data types used in the parser.}
|
||||||
{\%union\{{\it field list}\} }
|
{\%union\{{\it field list}\} }
|
||||||
|
|
||||||
\vskip .2\baselineskip
|
\vskip .2\baselineskip
|
||||||
\key{Tell {\tt bison} where to start parsing.}
|
\key{Tell {\tt bison} where to start parsing.}
|
||||||
{\%start {\it m}}
|
{\%start {\it m}}
|
||||||
|
|
||||||
\key{Tell {\tt bison} the data type of symbols.}
|
\key{Tell {\tt bison} the data type of symbols.}
|
||||||
{\%type <{\it t\/}> {\it s1}\dots{\it sn}}
|
{\%type <{\it t\/}> {\it s1}\dots{\it sn}}
|
||||||
|
|
||||||
\vskip .10truein
|
\vskip .10truein
|
||||||
|
|
||||||
@@ -362,8 +365,8 @@ definition, {\it n} is a {\it terminal} symbol name, {\it m} is a
|
|||||||
\vskip .10truein
|
\vskip .10truein
|
||||||
|
|
||||||
The {\tt <{\it t\/}>} after {\tt \%token, \%left, \%right} and {\tt
|
The {\tt <{\it t\/}>} after {\tt \%token, \%left, \%right} and {\tt
|
||||||
\%nonassoc} is optional. Additionally, precedence may be overridden with
|
\%nonassoc} is optional. Additionally, precedence may be overridden
|
||||||
embedded {\tt \%prec} commands.
|
in the rules with {\tt \%prec} commands.
|
||||||
|
|
||||||
\section{Parser Definition Files}
|
\section{Parser Definition Files}
|
||||||
%*********************************
|
%*********************************
|
||||||
@@ -379,7 +382,7 @@ The general form for a parser definition is:
|
|||||||
|
|
||||||
\%\%
|
\%\%
|
||||||
|
|
||||||
Rule definition 1
|
Rule definition 1
|
||||||
\vdots
|
\vdots
|
||||||
Rule definition {\it n}
|
Rule definition {\it n}
|
||||||
|
|
||||||
@@ -397,8 +400,9 @@ The general form for a parser definition is:
|
|||||||
|
|
||||||
Rules take the form:
|
Rules take the form:
|
||||||
|
|
||||||
|
\vskip -\baselineskip
|
||||||
\beginexample
|
\beginexample
|
||||||
non-terminal : {\it statement} 1
|
non-terminal : {\it statement} 1
|
||||||
| {\it statement} 2
|
| {\it statement} 2
|
||||||
\vdots
|
\vdots
|
||||||
| {\it statement n}
|
| {\it statement n}
|
||||||
@@ -406,12 +410,12 @@ Rules take the form:
|
|||||||
\endexample
|
\endexample
|
||||||
|
|
||||||
Where {\it statements} can be either empty, or contain
|
Where {\it statements} can be either empty, or contain
|
||||||
a mixture of C code (enclosed in {\tt \{...\}}), and the
|
a mixture of C code (enclosed in {\tt \{...\}}), and the
|
||||||
symbols that make up the non-terminal. For example:
|
symbols that make up the non-terminal. For example:
|
||||||
|
|
||||||
\vskip -\baselineskip
|
\vskip -\baselineskip
|
||||||
\beginexample
|
\beginexample
|
||||||
expression : number '$+$' number \{ \$\$ $=$ \$1 $+$ \$3 \}
|
expression : number '$+$' number \{ \$\$ $=$ \$1 $+$ \$3 \}
|
||||||
| number '$-$' number \{ \$\$ $=$ \$1 $-$ \$3 \}
|
| number '$-$' number \{ \$\$ $=$ \$1 $-$ \$3 \}
|
||||||
| number '$/$' number \{ \$\$ $=$ \$1 $/$ \$3 \}
|
| number '$/$' number \{ \$\$ $=$ \$1 $/$ \$3 \}
|
||||||
| number '$*$' number \{ \$\$ $=$ \$1 $*$ \$3 \}
|
| number '$*$' number \{ \$\$ $=$ \$1 $*$ \$3 \}
|
||||||
@@ -428,7 +432,7 @@ For altering the precedence of a symbol use:
|
|||||||
For example:
|
For example:
|
||||||
\vskip -\baselineskip
|
\vskip -\baselineskip
|
||||||
\beginexample
|
\beginexample
|
||||||
foo : gnu bar gnu \%prec bar
|
foo : gnu bar gnu \%prec bar
|
||||||
;
|
;
|
||||||
\endexample
|
\endexample
|
||||||
|
|
||||||
@@ -438,16 +442,18 @@ For example:
|
|||||||
\key{Recognize an error \& continue parsing.}{error}
|
\key{Recognize an error \& continue parsing.}{error}
|
||||||
\key{Access data associated with a symbol.} {\$\$, \$0\dots\${\it n}}
|
\key{Access data associated with a symbol.} {\$\$, \$0\dots\${\it n}}
|
||||||
\key{Access a field of the data union.} {\$\$.{\it t},
|
\key{Access a field of the data union.} {\$\$.{\it t},
|
||||||
\$0.{\it t}\dots\${\it n}.{\it t}}
|
\$0.{\it t}\dots\${\it n}.{\it t}}
|
||||||
\key{Access data's line position.} {@{\it n}.{\it line\_spec}}
|
\key{Access symbol's location.} {@\$, @0\dots@{\it n}}
|
||||||
\key{Access data's column position.} {@{\it n}.{\it column\_spec}}
|
\key{Access data's line location.} {@{\it x}.{\it line\_spec}}
|
||||||
|
\key{Access data's column location.} {@{\it x}.{\it column\_spec}}
|
||||||
|
|
||||||
|
|
||||||
\vskip .10truein
|
\vskip .10truein
|
||||||
|
%
|
||||||
Where {\it t} is a type defined in the {\tt \%union}, {\it n} is a
|
Where {\it t} is a type defined in the {\tt \%union}, {\it n} is a
|
||||||
number, {\it line\_spec} one of {\tt first_line} and {\tt last_line},
|
number, {\it x} is a number or \$, {\it line\_spec} one of {\tt
|
||||||
and {\it column\_spec} is specified as either {\tt first_column} or {\tt
|
first_line} and {\tt last_line}, and {\it column\_spec} is specified
|
||||||
last_column}.
|
as either {\tt first_column} or {\tt last_column}.
|
||||||
|
|
||||||
\section {Variables and Types}
|
\section {Variables and Types}
|
||||||
%*****************************
|
%*****************************
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
@set UPDATED 20 September 2001
|
|
||||||
@set UPDATED-MONTH September 2001
|
|
||||||
@set EDITION 1.30
|
|
||||||
@set VERSION 1.30
|
|
||||||
+4
-4
@@ -1,4 +1,4 @@
|
|||||||
@set UPDATED 20 September 2001
|
@set UPDATED 25 February 2002
|
||||||
@set UPDATED-MONTH September 2001
|
@set UPDATED-MONTH February 2002
|
||||||
@set EDITION 1.30
|
@set EDITION 1.35
|
||||||
@set VERSION 1.30
|
@set VERSION 1.35
|
||||||
|
|||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
2001-09-13 GNU <bug-gnu-utils@gnu.org>
|
2002-03-12 GNU <bug-gnu-gettext@gnu.org>
|
||||||
|
|
||||||
* Version 0.10.40 released.
|
* Version 0.11.1 released.
|
||||||
|
|
||||||
|
|||||||
+42
-18
@@ -1,5 +1,5 @@
|
|||||||
# Makefile for directory with message catalog handling in GNU NLS Utilities.
|
# Makefile for directory with message catalog handling in GNU NLS Utilities.
|
||||||
# Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
|
# Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc.
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify it
|
# 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
|
# under the terms of the GNU Library General Public License as published
|
||||||
@@ -52,39 +52,40 @@ YACC = @INTLBISON@ -y -d
|
|||||||
YFLAGS = --name-prefix=__gettext
|
YFLAGS = --name-prefix=__gettext
|
||||||
|
|
||||||
DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
|
DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
|
||||||
-DLIBDIR=\"$(libdir)\" @DEFS@
|
-DLIBDIR=\"$(libdir)\" -DIN_LIBINTL @DEFS@
|
||||||
CPPFLAGS = @CPPFLAGS@
|
CPPFLAGS = @CPPFLAGS@
|
||||||
CFLAGS = @CFLAGS@
|
CFLAGS = @CFLAGS@
|
||||||
LDFLAGS = @LDFLAGS@
|
LDFLAGS = @LDFLAGS@
|
||||||
|
|
||||||
COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
|
COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
|
||||||
|
|
||||||
HEADERS = $(COMHDRS) libgnuintl.h libgettext.h loadinfo.h
|
HEADERS = $(COMHDRS) libgnuintl.h loadinfo.h
|
||||||
COMHDRS = gettext.h gettextP.h hash-string.h
|
COMHDRS = gmo.h gettextP.h hash-string.h plural-exp.h eval-plural.h os2compat.h
|
||||||
SOURCES = $(COMSRCS) intl-compat.c
|
SOURCES = $(COMSRCS) intl-compat.c
|
||||||
COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \
|
COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \
|
||||||
finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \
|
finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \
|
||||||
explodename.c dcigettext.c dcngettext.c dngettext.c ngettext.c plural.y \
|
explodename.c dcigettext.c dcngettext.c dngettext.c ngettext.c plural.y \
|
||||||
localcharset.c
|
plural-exp.c localcharset.c localename.c osdep.c os2compat.c
|
||||||
OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \
|
OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \
|
||||||
finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \
|
finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \
|
||||||
explodename.$lo dcigettext.$lo dcngettext.$lo dngettext.$lo ngettext.$lo \
|
explodename.$lo dcigettext.$lo dcngettext.$lo dngettext.$lo ngettext.$lo \
|
||||||
plural.$lo localcharset.$lo
|
plural.$lo plural-exp.$lo localcharset.$lo localename.$lo osdep.$lo
|
||||||
GETTOBJS = intl-compat.$lo
|
GETTOBJS = intl-compat.$lo
|
||||||
DISTFILES.common = Makefile.in \
|
DISTFILES.common = Makefile.in \
|
||||||
config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES)
|
config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES)
|
||||||
DISTFILES.generated = plural.c
|
DISTFILES.generated = plural.c
|
||||||
DISTFILES.normal = VERSION
|
DISTFILES.normal = VERSION
|
||||||
DISTFILES.gettext = COPYING.LIB-2 COPYING.LIB-2.1 libintl.glibc
|
DISTFILES.gettext = COPYING.LIB-2.0 COPYING.LIB-2.1 libintl.glibc
|
||||||
DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c
|
DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c \
|
||||||
|
COPYING.LIB-2 gettext.h libgettext.h plural-eval.c
|
||||||
|
|
||||||
# Libtool's library version information for libintl.
|
# Libtool's library version information for libintl.
|
||||||
# Before making a gettext release, the gettext maintainer must change this
|
# Before making a gettext release, the gettext maintainer must change this
|
||||||
# according to the libtool documentation, section "Library interface versions".
|
# according to the libtool documentation, section "Library interface versions".
|
||||||
# Maintainers of other packages that include the intl directory must *not*
|
# Maintainers of other packages that include the intl directory must *not*
|
||||||
# change these values.
|
# change these values.
|
||||||
LTV_CURRENT=1
|
LTV_CURRENT=2
|
||||||
LTV_REVISION=1
|
LTV_REVISION=0
|
||||||
LTV_AGE=0
|
LTV_AGE=0
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
@@ -118,7 +119,7 @@ libintl.a libgnuintl.a: $(OBJECTS)
|
|||||||
libintl.la libgnuintl.la: $(OBJECTS)
|
libintl.la libgnuintl.la: $(OBJECTS)
|
||||||
$(LIBTOOL) --mode=link \
|
$(LIBTOOL) --mode=link \
|
||||||
$(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \
|
$(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \
|
||||||
$(OBJECTS) @LIBICONV@ \
|
$(OBJECTS) @LTLIBICONV@ -lc \
|
||||||
-version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
|
-version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
|
||||||
-rpath $(libdir) \
|
-rpath $(libdir) \
|
||||||
-no-undefined
|
-no-undefined
|
||||||
@@ -152,7 +153,7 @@ install-exec: all
|
|||||||
: ; \
|
: ; \
|
||||||
fi
|
fi
|
||||||
if test '@USE_INCLUDED_LIBINTL@' = yes; then \
|
if test '@USE_INCLUDED_LIBINTL@' = yes; then \
|
||||||
$(mkinstalldirs) $(DESTDIR)$(libdir); \
|
test @GLIBC21@ != no || $(mkinstalldirs) $(DESTDIR)$(libdir); \
|
||||||
temp=$(DESTDIR)$(libdir)/t-charset.alias; \
|
temp=$(DESTDIR)$(libdir)/t-charset.alias; \
|
||||||
dest=$(DESTDIR)$(libdir)/charset.alias; \
|
dest=$(DESTDIR)$(libdir)/charset.alias; \
|
||||||
if test -f $(DESTDIR)$(libdir)/charset.alias; then \
|
if test -f $(DESTDIR)$(libdir)/charset.alias; then \
|
||||||
@@ -185,7 +186,7 @@ install-data: all
|
|||||||
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
|
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
|
||||||
$(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \
|
$(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \
|
||||||
$(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \
|
$(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \
|
||||||
dists="COPYING.LIB-2 COPYING.LIB-2.1 $(DISTFILES.common)"; \
|
dists="COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common)"; \
|
||||||
for file in $$dists; do \
|
for file in $$dists; do \
|
||||||
$(INSTALL_DATA) $(srcdir)/$$file \
|
$(INSTALL_DATA) $(srcdir)/$$file \
|
||||||
$(DESTDIR)$(gettextsrcdir)/$$file; \
|
$(DESTDIR)$(gettextsrcdir)/$$file; \
|
||||||
@@ -205,6 +206,27 @@ install-data: all
|
|||||||
: ; \
|
: ; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
install-strip: install
|
||||||
|
|
||||||
|
installdirs:
|
||||||
|
if test "$(PACKAGE)" = "gettext" \
|
||||||
|
&& test '@INTLOBJS@' = '$(GETTOBJS)'; then \
|
||||||
|
$(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
|
||||||
|
else \
|
||||||
|
: ; \
|
||||||
|
fi
|
||||||
|
if test '@USE_INCLUDED_LIBINTL@' = yes; then \
|
||||||
|
test @GLIBC21@ != no || $(mkinstalldirs) $(DESTDIR)$(libdir); \
|
||||||
|
$(mkinstalldirs) $(DESTDIR)$(localedir); \
|
||||||
|
else \
|
||||||
|
: ; \
|
||||||
|
fi
|
||||||
|
if test "$(PACKAGE)" = "gettext"; then \
|
||||||
|
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
|
||||||
|
else \
|
||||||
|
: ; \
|
||||||
|
fi
|
||||||
|
|
||||||
# Define this as empty until I found a useful application.
|
# Define this as empty until I found a useful application.
|
||||||
installcheck:
|
installcheck:
|
||||||
|
|
||||||
@@ -244,7 +266,7 @@ uninstall:
|
|||||||
: ; \
|
: ; \
|
||||||
fi
|
fi
|
||||||
if test "$(PACKAGE)" = "gettext"; then \
|
if test "$(PACKAGE)" = "gettext"; then \
|
||||||
for file in VERSION ChangeLog COPYING.LIB-2 COPYING.LIB-2.1 $(DISTFILES.common) $(DISTFILES.generated); do \
|
for file in VERSION ChangeLog COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common) $(DISTFILES.generated); do \
|
||||||
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
|
rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
|
||||||
done; \
|
done; \
|
||||||
else \
|
else \
|
||||||
@@ -254,8 +276,11 @@ uninstall:
|
|||||||
info dvi:
|
info dvi:
|
||||||
|
|
||||||
$(OBJECTS): ../config.h libgnuintl.h
|
$(OBJECTS): ../config.h libgnuintl.h
|
||||||
bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h
|
bindtextdom.$lo dcgettext.$lo dcigettext.$lo dcngettext.$lo dgettext.$lo dngettext.$lo finddomain.$lo gettext.$lo intl-compat.$lo loadmsgcat.$lo localealias.$lo ngettext.$lo textdomain.$lo: gettextP.h gmo.h loadinfo.h
|
||||||
dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h
|
dcigettext.$lo: hash-string.h
|
||||||
|
explodename.$lo l10nflist.$lo: loadinfo.h
|
||||||
|
dcigettext.$lo loadmsgcat.$lo plural.$lo plural-exp.$lo: plural-exp.h
|
||||||
|
dcigettext.$lo: eval-plural.h
|
||||||
|
|
||||||
tags: TAGS
|
tags: TAGS
|
||||||
|
|
||||||
@@ -300,8 +325,7 @@ dist distdir: Makefile
|
|||||||
$(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \
|
$(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \
|
||||||
for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \
|
for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \
|
||||||
if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
|
if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
|
||||||
ln $$dir/$$file $(distdir) 2> /dev/null \
|
cp -p $$dir/$$file $(distdir); \
|
||||||
|| cp -p $$dir/$$file $(distdir); \
|
|
||||||
done
|
done
|
||||||
|
|
||||||
Makefile: Makefile.in ../config.status
|
Makefile: Makefile.in ../config.status
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
GNU gettext library from gettext-0.10.40
|
GNU gettext library from gettext-0.11.1
|
||||||
|
|||||||
+1
-1
@@ -85,7 +85,7 @@ __libc_rwlock_define (extern, _nl_state_lock)
|
|||||||
static void set_binding_values PARAMS ((const char *domainname,
|
static void set_binding_values PARAMS ((const char *domainname,
|
||||||
const char **dirnamep,
|
const char **dirnamep,
|
||||||
const char **codesetp));
|
const char **codesetp));
|
||||||
|
|
||||||
/* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP
|
/* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP
|
||||||
to be used for the DOMAINNAME message catalog.
|
to be used for the DOMAINNAME message catalog.
|
||||||
If *DIRNAMEP or *CODESETP is NULL, the corresponding attribute is not
|
If *DIRNAMEP or *CODESETP is NULL, the corresponding attribute is not
|
||||||
|
|||||||
+20
-4
@@ -1,7 +1,7 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Output a system dependent table of character encoding aliases.
|
# 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
|
# 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
|
# 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 "sun_eu_greek ?" # what is this?
|
||||||
echo "UTF-8 UTF-8"
|
echo "UTF-8 UTF-8"
|
||||||
;;
|
;;
|
||||||
freebsd*)
|
freebsd* | os2*)
|
||||||
# FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
|
# FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
|
||||||
# localcharset.c falls back to using the full locale name
|
# localcharset.c falls back to using the full locale name
|
||||||
# from the environment variables.
|
# 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 "C ASCII"
|
||||||
echo "US-ASCII ASCII"
|
echo "US-ASCII ASCII"
|
||||||
for l in la_LN lt_LN; do
|
for l in la_LN lt_LN; do
|
||||||
@@ -270,6 +272,20 @@ case "$os" in
|
|||||||
echo "ja_JP.Shift_JIS SHIFT_JIS"
|
echo "ja_JP.Shift_JIS SHIFT_JIS"
|
||||||
echo "ko_KR.EUC EUC-KR"
|
echo "ko_KR.EUC EUC-KR"
|
||||||
;;
|
;;
|
||||||
|
netbsd*)
|
||||||
|
echo "646 ASCII"
|
||||||
|
echo "ISO8859-1 ISO-8859-1"
|
||||||
|
echo "ISO8859-2 ISO-8859-2"
|
||||||
|
echo "ISO8859-4 ISO-8859-4"
|
||||||
|
echo "ISO8859-5 ISO-8859-5"
|
||||||
|
echo "ISO8859-15 ISO-8859-15"
|
||||||
|
echo "eucCN GB2312"
|
||||||
|
echo "eucJP EUC-JP"
|
||||||
|
echo "eucKR EUC-KR"
|
||||||
|
echo "eucTW EUC-TW"
|
||||||
|
echo "BIG5 BIG5"
|
||||||
|
echo "SJIS SHIFT_JIS"
|
||||||
|
;;
|
||||||
beos*)
|
beos*)
|
||||||
# BeOS has a single locale, and it has UTF-8 encoding.
|
# BeOS has a single locale, and it has UTF-8 encoding.
|
||||||
echo "* UTF-8"
|
echo "* UTF-8"
|
||||||
@@ -394,8 +410,8 @@ case "$os" in
|
|||||||
echo "bg_BG CP866" # not CP855 ??
|
echo "bg_BG CP866" # not CP855 ??
|
||||||
echo "mk CP866" # not CP855 ??
|
echo "mk CP866" # not CP855 ??
|
||||||
echo "mk_MK CP866" # not CP855 ??
|
echo "mk_MK CP866" # not CP855 ??
|
||||||
echo "ru KOI8-R" # not CP866 ??
|
echo "ru CP866"
|
||||||
echo "ru_RU KOI8-R" # not CP866 ??
|
echo "ru_RU CP866"
|
||||||
# ISO-8859-6 languages
|
# ISO-8859-6 languages
|
||||||
echo "ar CP864"
|
echo "ar CP864"
|
||||||
echo "ar_AE CP864"
|
echo "ar_AE CP864"
|
||||||
|
|||||||
+26
-118
@@ -1,5 +1,5 @@
|
|||||||
/* Implementation of the internal dcigettext function.
|
/* Implementation of the internal dcigettext function.
|
||||||
Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
|
Copyright (C) 1995-1999, 2000-2002 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it
|
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
|
under the terms of the GNU Library General Public License as published
|
||||||
@@ -56,13 +56,7 @@ extern int errno;
|
|||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#if !HAVE_STRCHR && !defined _LIBC
|
|
||||||
# ifndef strchr
|
|
||||||
# define strchr index
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined HAVE_UNISTD_H || defined _LIBC
|
#if defined HAVE_UNISTD_H || defined _LIBC
|
||||||
# include <unistd.h>
|
# include <unistd.h>
|
||||||
@@ -75,6 +69,7 @@ extern int errno;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "gettextP.h"
|
#include "gettextP.h"
|
||||||
|
#include "plural-exp.h"
|
||||||
#ifdef _LIBC
|
#ifdef _LIBC
|
||||||
# include <libintl.h>
|
# include <libintl.h>
|
||||||
#else
|
#else
|
||||||
@@ -198,16 +193,6 @@ static void *mempcpy PARAMS ((void *dest, const void *src, size_t n));
|
|||||||
# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL)
|
# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* XPG3 defines the result of `setlocale (category, NULL)' as:
|
|
||||||
``Directs `setlocale()' to query `category' and return the current
|
|
||||||
setting of `local'.''
|
|
||||||
However it does not specify the exact format. Neither do SUSV2 and
|
|
||||||
ISO C 99. So we can use this feature only on selected systems (e.g.
|
|
||||||
those using GNU C Library). */
|
|
||||||
#if defined _LIBC || (defined __GNU_LIBRARY__ && __GNU_LIBRARY__ >= 2)
|
|
||||||
# define HAVE_LOCALE_NULL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* This is the type used for the search tree where known translations
|
/* This is the type used for the search tree where known translations
|
||||||
are stored. */
|
are stored. */
|
||||||
struct known_translation_t
|
struct known_translation_t
|
||||||
@@ -280,7 +265,11 @@ const char _nl_default_default_domain[] = "messages";
|
|||||||
const char *_nl_current_default_domain = _nl_default_default_domain;
|
const char *_nl_current_default_domain = _nl_default_default_domain;
|
||||||
|
|
||||||
/* Contains the default location of the message catalogs. */
|
/* Contains the default location of the message catalogs. */
|
||||||
|
#if defined __EMX__
|
||||||
|
extern const char _nl_default_dirname[];
|
||||||
|
#else
|
||||||
const char _nl_default_dirname[] = LOCALEDIR;
|
const char _nl_default_dirname[] = LOCALEDIR;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* List with bindings of specific domains created by bindtextdomain()
|
/* List with bindings of specific domains created by bindtextdomain()
|
||||||
calls. */
|
calls. */
|
||||||
@@ -292,9 +281,6 @@ static char *plural_lookup PARAMS ((struct loaded_l10nfile *domain,
|
|||||||
const char *translation,
|
const char *translation,
|
||||||
size_t translation_len))
|
size_t translation_len))
|
||||||
internal_function;
|
internal_function;
|
||||||
static unsigned long int plural_eval PARAMS ((struct expression *pexp,
|
|
||||||
unsigned long int n))
|
|
||||||
internal_function;
|
|
||||||
static const char *category_to_name PARAMS ((int category)) internal_function;
|
static const char *category_to_name PARAMS ((int category)) internal_function;
|
||||||
static const char *guess_category_value PARAMS ((int category,
|
static const char *guess_category_value PARAMS ((int category,
|
||||||
const char *categoryname))
|
const char *categoryname))
|
||||||
@@ -395,6 +381,9 @@ static int enable_secure;
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Get the function to evaluate the plural expression. */
|
||||||
|
#include "eval-plural.h"
|
||||||
|
|
||||||
/* Look up MSGID in the DOMAINNAME message catalog for the current
|
/* Look up MSGID in the DOMAINNAME message catalog for the current
|
||||||
CATEGORY locale and, if PLURAL is nonzero, search over string
|
CATEGORY locale and, if PLURAL is nonzero, search over string
|
||||||
depending on the plural form determined by N. */
|
depending on the plural form determined by N. */
|
||||||
@@ -438,6 +427,12 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
|
|||||||
if (domainname == NULL)
|
if (domainname == NULL)
|
||||||
domainname = _nl_current_default_domain;
|
domainname = _nl_current_default_domain;
|
||||||
|
|
||||||
|
/* OS/2 specific: backward compatibility with older libintl versions */
|
||||||
|
#ifdef LC_MESSAGES_COMPAT
|
||||||
|
if (category == LC_MESSAGES_COMPAT)
|
||||||
|
category = LC_MESSAGES;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined HAVE_TSEARCH || defined _LIBC
|
#if defined HAVE_TSEARCH || defined _LIBC
|
||||||
msgid_len = strlen (msgid1) + 1;
|
msgid_len = strlen (msgid1) + 1;
|
||||||
|
|
||||||
@@ -1005,87 +1000,6 @@ plural_lookup (domain, n, translation, translation_len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Function to evaluate the plural expression and return an index value. */
|
|
||||||
static unsigned long int
|
|
||||||
internal_function
|
|
||||||
plural_eval (pexp, n)
|
|
||||||
struct expression *pexp;
|
|
||||||
unsigned long int n;
|
|
||||||
{
|
|
||||||
switch (pexp->nargs)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
switch (pexp->operation)
|
|
||||||
{
|
|
||||||
case var:
|
|
||||||
return n;
|
|
||||||
case num:
|
|
||||||
return pexp->val.num;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
/* NOTREACHED */
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
/* pexp->operation must be lnot. */
|
|
||||||
unsigned long int arg = plural_eval (pexp->val.args[0], n);
|
|
||||||
return ! arg;
|
|
||||||
}
|
|
||||||
case 2:
|
|
||||||
{
|
|
||||||
unsigned long int leftarg = plural_eval (pexp->val.args[0], n);
|
|
||||||
if (pexp->operation == lor)
|
|
||||||
return leftarg || plural_eval (pexp->val.args[1], n);
|
|
||||||
else if (pexp->operation == land)
|
|
||||||
return leftarg && plural_eval (pexp->val.args[1], n);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
unsigned long int rightarg = plural_eval (pexp->val.args[1], n);
|
|
||||||
|
|
||||||
switch (pexp->operation)
|
|
||||||
{
|
|
||||||
case mult:
|
|
||||||
return leftarg * rightarg;
|
|
||||||
case divide:
|
|
||||||
return leftarg / rightarg;
|
|
||||||
case module:
|
|
||||||
return leftarg % rightarg;
|
|
||||||
case plus:
|
|
||||||
return leftarg + rightarg;
|
|
||||||
case minus:
|
|
||||||
return leftarg - rightarg;
|
|
||||||
case less_than:
|
|
||||||
return leftarg < rightarg;
|
|
||||||
case greater_than:
|
|
||||||
return leftarg > rightarg;
|
|
||||||
case less_or_equal:
|
|
||||||
return leftarg <= rightarg;
|
|
||||||
case greater_or_equal:
|
|
||||||
return leftarg >= rightarg;
|
|
||||||
case equal:
|
|
||||||
return leftarg == rightarg;
|
|
||||||
case not_equal:
|
|
||||||
return leftarg != rightarg;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* NOTREACHED */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 3:
|
|
||||||
{
|
|
||||||
/* pexp->operation must be qmop. */
|
|
||||||
unsigned long int boolarg = plural_eval (pexp->val.args[0], n);
|
|
||||||
return plural_eval (pexp->val.args[boolarg ? 1 : 2], n);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* NOTREACHED */
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Return string representation of locale CATEGORY. */
|
/* Return string representation of locale CATEGORY. */
|
||||||
static const char *
|
static const char *
|
||||||
internal_function
|
internal_function
|
||||||
@@ -1166,27 +1080,21 @@ guess_category_value (category, categoryname)
|
|||||||
/* We have to proceed with the POSIX methods of looking to `LC_ALL',
|
/* We have to proceed with the POSIX methods of looking to `LC_ALL',
|
||||||
`LC_xxx', and `LANG'. On some systems this can be done by the
|
`LC_xxx', and `LANG'. On some systems this can be done by the
|
||||||
`setlocale' function itself. */
|
`setlocale' function itself. */
|
||||||
#if defined _LIBC || (defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL)
|
#ifdef _LIBC
|
||||||
retval = setlocale (category, NULL);
|
retval = setlocale (category, NULL);
|
||||||
#else
|
#else
|
||||||
/* Setting of LC_ALL overwrites all other. */
|
retval = _nl_locale_name (category, categoryname);
|
||||||
retval = getenv ("LC_ALL");
|
|
||||||
if (retval == NULL || retval[0] == '\0')
|
|
||||||
{
|
|
||||||
/* Next comes the name of the desired category. */
|
|
||||||
retval = getenv (categoryname);
|
|
||||||
if (retval == NULL || retval[0] == '\0')
|
|
||||||
{
|
|
||||||
/* Last possibility is the LANG environment variable. */
|
|
||||||
retval = getenv ("LANG");
|
|
||||||
if (retval == NULL || retval[0] == '\0')
|
|
||||||
/* We use C as the default domain. POSIX says this is
|
|
||||||
implementation defined. */
|
|
||||||
return "C";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Ignore LANGUAGE if the locale is set to "C" because
|
||||||
|
1. "C" locale usually uses the ASCII encoding, and most international
|
||||||
|
messages use non-ASCII characters. These characters get displayed
|
||||||
|
as question marks (if using glibc's iconv()) or as invalid 8-bit
|
||||||
|
characters (because other iconv()s refuse to convert most non-ASCII
|
||||||
|
characters to ASCII). In any case, the output is ugly.
|
||||||
|
2. The precise output of some programs in the "C" locale is specified
|
||||||
|
by POSIX and should not depend on environment variables like
|
||||||
|
"LANGUAGE". We allow such programs to use gettext(). */
|
||||||
return language != NULL && strcmp (retval, "C") != 0 ? language : retval;
|
return language != NULL && strcmp (retval, "C") != 0 ? language : retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
-102
@@ -1,102 +0,0 @@
|
|||||||
/* Description of GNU message catalog format: general file layout.
|
|
||||||
Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it
|
|
||||||
under the terms of the GNU 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 _GETTEXT_H
|
|
||||||
#define _GETTEXT_H 1
|
|
||||||
|
|
||||||
#if HAVE_LIMITS_H || _LIBC
|
|
||||||
# include <limits.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* @@ end of prolog @@ */
|
|
||||||
|
|
||||||
/* The magic number of the GNU message catalog format. */
|
|
||||||
#define _MAGIC 0x950412de
|
|
||||||
#define _MAGIC_SWAPPED 0xde120495
|
|
||||||
|
|
||||||
/* Revision number of the currently used .mo (binary) file format. */
|
|
||||||
#define MO_REVISION_NUMBER 0
|
|
||||||
|
|
||||||
/* The following contortions are an attempt to use the C preprocessor
|
|
||||||
to determine an unsigned integral type that is 32 bits wide. An
|
|
||||||
alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
|
|
||||||
as of version autoconf-2.13, the AC_CHECK_SIZEOF macro doesn't work
|
|
||||||
when cross-compiling. */
|
|
||||||
|
|
||||||
#if __STDC__
|
|
||||||
# define UINT_MAX_32_BITS 4294967295U
|
|
||||||
#else
|
|
||||||
# define UINT_MAX_32_BITS 0xFFFFFFFF
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* If UINT_MAX isn't defined, assume it's a 32-bit type.
|
|
||||||
This should be valid for all systems GNU cares about because
|
|
||||||
that doesn't include 16-bit systems, and only modern systems
|
|
||||||
(that certainly have <limits.h>) have 64+-bit integral types. */
|
|
||||||
|
|
||||||
#ifndef UINT_MAX
|
|
||||||
# define UINT_MAX UINT_MAX_32_BITS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if UINT_MAX == UINT_MAX_32_BITS
|
|
||||||
typedef unsigned nls_uint32;
|
|
||||||
#else
|
|
||||||
# if USHRT_MAX == UINT_MAX_32_BITS
|
|
||||||
typedef unsigned short nls_uint32;
|
|
||||||
# else
|
|
||||||
# if ULONG_MAX == UINT_MAX_32_BITS
|
|
||||||
typedef unsigned long nls_uint32;
|
|
||||||
# else
|
|
||||||
/* The following line is intended to throw an error. Using #error is
|
|
||||||
not portable enough. */
|
|
||||||
"Cannot determine unsigned 32-bit data type."
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Header for binary .mo file format. */
|
|
||||||
struct mo_file_header
|
|
||||||
{
|
|
||||||
/* The magic number. */
|
|
||||||
nls_uint32 magic;
|
|
||||||
/* The revision number of the file format. */
|
|
||||||
nls_uint32 revision;
|
|
||||||
/* The number of strings pairs. */
|
|
||||||
nls_uint32 nstrings;
|
|
||||||
/* Offset of table with start offsets of original strings. */
|
|
||||||
nls_uint32 orig_tab_offset;
|
|
||||||
/* Offset of table with start offsets of translation strings. */
|
|
||||||
nls_uint32 trans_tab_offset;
|
|
||||||
/* Size of hashing table. */
|
|
||||||
nls_uint32 hash_tab_size;
|
|
||||||
/* Offset of first hashing entry. */
|
|
||||||
nls_uint32 hash_tab_offset;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct string_desc
|
|
||||||
{
|
|
||||||
/* Length of addressed string. */
|
|
||||||
nls_uint32 length;
|
|
||||||
/* Offset of string in file. */
|
|
||||||
nls_uint32 offset;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* @@ begin of epilog @@ */
|
|
||||||
|
|
||||||
#endif /* gettext.h */
|
|
||||||
+6
-57
@@ -32,12 +32,12 @@
|
|||||||
|
|
||||||
#include "loadinfo.h"
|
#include "loadinfo.h"
|
||||||
|
|
||||||
#include "gettext.h" /* Get nls_uint32. */
|
#include "gmo.h" /* Get nls_uint32. */
|
||||||
|
|
||||||
/* @@ end of prolog @@ */
|
/* @@ end of prolog @@ */
|
||||||
|
|
||||||
#ifndef PARAMS
|
#ifndef PARAMS
|
||||||
# if __STDC__
|
# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES
|
||||||
# define PARAMS(args) args
|
# define PARAMS(args) args
|
||||||
# else
|
# else
|
||||||
# define PARAMS(args) ()
|
# define PARAMS(args) ()
|
||||||
@@ -72,51 +72,6 @@ SWAP (i)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* This is the representation of the expressions to determine the
|
|
||||||
plural form. */
|
|
||||||
struct expression
|
|
||||||
{
|
|
||||||
int nargs; /* Number of arguments. */
|
|
||||||
enum operator
|
|
||||||
{
|
|
||||||
/* Without arguments: */
|
|
||||||
var, /* The variable "n". */
|
|
||||||
num, /* Decimal number. */
|
|
||||||
/* Unary operators: */
|
|
||||||
lnot, /* Logical NOT. */
|
|
||||||
/* Binary operators: */
|
|
||||||
mult, /* Multiplication. */
|
|
||||||
divide, /* Division. */
|
|
||||||
module, /* Module operation. */
|
|
||||||
plus, /* Addition. */
|
|
||||||
minus, /* Subtraction. */
|
|
||||||
less_than, /* Comparison. */
|
|
||||||
greater_than, /* Comparison. */
|
|
||||||
less_or_equal, /* Comparison. */
|
|
||||||
greater_or_equal, /* Comparison. */
|
|
||||||
equal, /* Comparision for equality. */
|
|
||||||
not_equal, /* Comparision for inequality. */
|
|
||||||
land, /* Logical AND. */
|
|
||||||
lor, /* Logical OR. */
|
|
||||||
/* Ternary operators: */
|
|
||||||
qmop /* Question mark operator. */
|
|
||||||
} operation;
|
|
||||||
union
|
|
||||||
{
|
|
||||||
unsigned long int num; /* Number value for `num'. */
|
|
||||||
struct expression *args[3]; /* Up to three arguments. */
|
|
||||||
} val;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* This is the data structure to pass information to the parser and get
|
|
||||||
the result in a thread-safe way. */
|
|
||||||
struct parse_args
|
|
||||||
{
|
|
||||||
const char *cp;
|
|
||||||
struct expression *res;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/* The representation of an opened message catalog. */
|
/* The representation of an opened message catalog. */
|
||||||
struct loaded_domain
|
struct loaded_domain
|
||||||
{
|
{
|
||||||
@@ -167,6 +122,10 @@ struct binding
|
|||||||
This variable is part of the external ABI of the GNU libintl. */
|
This variable is part of the external ABI of the GNU libintl. */
|
||||||
extern int _nl_msg_cat_cntr;
|
extern int _nl_msg_cat_cntr;
|
||||||
|
|
||||||
|
#ifndef _LIBC
|
||||||
|
const char *_nl_locale_name PARAMS ((int category, const char *categoryname));
|
||||||
|
#endif
|
||||||
|
|
||||||
struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
|
struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
|
||||||
char *__locale,
|
char *__locale,
|
||||||
const char *__domainname,
|
const char *__domainname,
|
||||||
@@ -237,16 +196,6 @@ extern char *bind_textdomain_codeset__ PARAMS ((const char *__domainname,
|
|||||||
const char *__codeset));
|
const char *__codeset));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _LIBC
|
|
||||||
extern void __gettext_free_exp PARAMS ((struct expression *exp))
|
|
||||||
internal_function;
|
|
||||||
extern int __gettextparse PARAMS ((void *arg));
|
|
||||||
#else
|
|
||||||
extern void gettext_free_exp__ PARAMS ((struct expression *exp))
|
|
||||||
internal_function;
|
|
||||||
extern int gettextparse__ PARAMS ((void *arg));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* @@ begin of epilog @@ */
|
/* @@ begin of epilog @@ */
|
||||||
|
|
||||||
#endif /* gettextP.h */
|
#endif /* gettextP.h */
|
||||||
|
|||||||
+1
-1
@@ -19,7 +19,7 @@
|
|||||||
/* @@ end of prolog @@ */
|
/* @@ end of prolog @@ */
|
||||||
|
|
||||||
#ifndef PARAMS
|
#ifndef PARAMS
|
||||||
# if __STDC__
|
# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES
|
||||||
# define PARAMS(Args) Args
|
# define PARAMS(Args) Args
|
||||||
# else
|
# else
|
||||||
# define PARAMS(Args) ()
|
# define PARAMS(Args) ()
|
||||||
|
|||||||
+5
-10
@@ -28,11 +28,6 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#if !HAVE_STRCHR && !defined _LIBC
|
|
||||||
# ifndef strchr
|
|
||||||
# define strchr index
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined _LIBC || defined HAVE_ARGZ_H
|
#if defined _LIBC || defined HAVE_ARGZ_H
|
||||||
# include <argz.h>
|
# include <argz.h>
|
||||||
@@ -356,11 +351,11 @@ _nl_normalize_codeset (codeset, name_len)
|
|||||||
size_t cnt;
|
size_t cnt;
|
||||||
|
|
||||||
for (cnt = 0; cnt < name_len; ++cnt)
|
for (cnt = 0; cnt < name_len; ++cnt)
|
||||||
if (isalnum (codeset[cnt]))
|
if (isalnum ((unsigned char) codeset[cnt]))
|
||||||
{
|
{
|
||||||
++len;
|
++len;
|
||||||
|
|
||||||
if (isalpha (codeset[cnt]))
|
if (isalpha ((unsigned char) codeset[cnt]))
|
||||||
only_digit = 0;
|
only_digit = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -374,9 +369,9 @@ _nl_normalize_codeset (codeset, name_len)
|
|||||||
wp = retval;
|
wp = retval;
|
||||||
|
|
||||||
for (cnt = 0; cnt < name_len; ++cnt)
|
for (cnt = 0; cnt < name_len; ++cnt)
|
||||||
if (isalpha (codeset[cnt]))
|
if (isalpha ((unsigned char) codeset[cnt]))
|
||||||
*wp++ = tolower (codeset[cnt]);
|
*wp++ = tolower ((unsigned char) codeset[cnt]);
|
||||||
else if (isdigit (codeset[cnt]))
|
else if (isdigit ((unsigned char) codeset[cnt]))
|
||||||
*wp++ = codeset[cnt];
|
*wp++ = codeset[cnt];
|
||||||
|
|
||||||
*wp = '\0';
|
*wp = '\0';
|
||||||
|
|||||||
+29
-20
@@ -42,11 +42,13 @@
|
|||||||
# define gettext gettext
|
# define gettext gettext
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef PARAMS
|
/* Use _INTL_PARAMS, not PARAMS, in order to avoid clashes with identifiers
|
||||||
# if __STDC__ || defined __cplusplus
|
used by programs. Similarly, test __PROTOTYPES, not PROTOTYPES. */
|
||||||
# define PARAMS(args) args
|
#ifndef _INTL_PARAMS
|
||||||
|
# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES
|
||||||
|
# define _INTL_PARAMS(args) args
|
||||||
# else
|
# else
|
||||||
# define PARAMS(args) ()
|
# define _INTL_PARAMS(args) ()
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -57,49 +59,56 @@ extern "C" {
|
|||||||
/* Look up MSGID in the current default message catalog for the current
|
/* Look up MSGID in the current default message catalog for the current
|
||||||
LC_MESSAGES locale. If not found, returns MSGID itself (the default
|
LC_MESSAGES locale. If not found, returns MSGID itself (the default
|
||||||
text). */
|
text). */
|
||||||
extern char *gettext PARAMS ((const char *__msgid));
|
extern char *gettext _INTL_PARAMS ((const char *__msgid));
|
||||||
|
|
||||||
/* Look up MSGID in the DOMAINNAME message catalog for the current
|
/* Look up MSGID in the DOMAINNAME message catalog for the current
|
||||||
LC_MESSAGES locale. */
|
LC_MESSAGES locale. */
|
||||||
extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid));
|
extern char *dgettext _INTL_PARAMS ((const char *__domainname,
|
||||||
|
const char *__msgid));
|
||||||
|
|
||||||
/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
|
/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
|
||||||
locale. */
|
locale. */
|
||||||
extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid,
|
extern char *dcgettext _INTL_PARAMS ((const char *__domainname,
|
||||||
int __category));
|
const char *__msgid,
|
||||||
|
int __category));
|
||||||
|
|
||||||
|
|
||||||
/* Similar to `gettext' but select the plural form corresponding to the
|
/* Similar to `gettext' but select the plural form corresponding to the
|
||||||
number N. */
|
number N. */
|
||||||
extern char *ngettext PARAMS ((const char *__msgid1, const char *__msgid2,
|
extern char *ngettext _INTL_PARAMS ((const char *__msgid1,
|
||||||
unsigned long int __n));
|
const char *__msgid2,
|
||||||
|
unsigned long int __n));
|
||||||
|
|
||||||
/* Similar to `dgettext' but select the plural form corresponding to the
|
/* Similar to `dgettext' but select the plural form corresponding to the
|
||||||
number N. */
|
number N. */
|
||||||
extern char *dngettext PARAMS ((const char *__domainname, const char *__msgid1,
|
extern char *dngettext _INTL_PARAMS ((const char *__domainname,
|
||||||
const char *__msgid2, unsigned long int __n));
|
const char *__msgid1,
|
||||||
|
const char *__msgid2,
|
||||||
|
unsigned long int __n));
|
||||||
|
|
||||||
/* Similar to `dcgettext' but select the plural form corresponding to the
|
/* Similar to `dcgettext' but select the plural form corresponding to the
|
||||||
number N. */
|
number N. */
|
||||||
extern char *dcngettext PARAMS ((const char *__domainname, const char *__msgid1,
|
extern char *dcngettext _INTL_PARAMS ((const char *__domainname,
|
||||||
const char *__msgid2, unsigned long int __n,
|
const char *__msgid1,
|
||||||
int __category));
|
const char *__msgid2,
|
||||||
|
unsigned long int __n,
|
||||||
|
int __category));
|
||||||
|
|
||||||
|
|
||||||
/* Set the current default message catalog to DOMAINNAME.
|
/* Set the current default message catalog to DOMAINNAME.
|
||||||
If DOMAINNAME is null, return the current default.
|
If DOMAINNAME is null, return the current default.
|
||||||
If DOMAINNAME is "", reset to the default of "messages". */
|
If DOMAINNAME is "", reset to the default of "messages". */
|
||||||
extern char *textdomain PARAMS ((const char *__domainname));
|
extern char *textdomain _INTL_PARAMS ((const char *__domainname));
|
||||||
|
|
||||||
/* Specify that the DOMAINNAME message catalog will be found
|
/* Specify that the DOMAINNAME message catalog will be found
|
||||||
in DIRNAME rather than in the system locale data base. */
|
in DIRNAME rather than in the system locale data base. */
|
||||||
extern char *bindtextdomain PARAMS ((const char *__domainname,
|
extern char *bindtextdomain _INTL_PARAMS ((const char *__domainname,
|
||||||
const char *__dirname));
|
const char *__dirname));
|
||||||
|
|
||||||
/* Specify the character encoding in which the messages from the
|
/* Specify the character encoding in which the messages from the
|
||||||
DOMAINNAME message catalog will be returned. */
|
DOMAINNAME message catalog will be returned. */
|
||||||
extern char *bind_textdomain_codeset PARAMS ((const char *__domainname,
|
extern char *bind_textdomain_codeset _INTL_PARAMS ((const char *__domainname,
|
||||||
const char *__codeset));
|
const char *__codeset));
|
||||||
|
|
||||||
|
|
||||||
/* Optimized version of the functions above. */
|
/* Optimized version of the functions above. */
|
||||||
|
|||||||
+13
-1
@@ -20,8 +20,20 @@
|
|||||||
#ifndef _LOADINFO_H
|
#ifndef _LOADINFO_H
|
||||||
#define _LOADINFO_H 1
|
#define _LOADINFO_H 1
|
||||||
|
|
||||||
|
/* Declarations of locale dependent catalog lookup functions.
|
||||||
|
Implemented in
|
||||||
|
|
||||||
|
localealias.c Possibly replace a locale name by another.
|
||||||
|
explodename.c Split a locale name into its various fields.
|
||||||
|
l10nflist.c Generate a list of filenames of possible message catalogs.
|
||||||
|
finddomain.c Find and open the relevant message catalogs.
|
||||||
|
|
||||||
|
The main function _nl_find_domain() in finddomain.c is declared
|
||||||
|
in gettextP.h.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef PARAMS
|
#ifndef PARAMS
|
||||||
# if __STDC__
|
# if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES
|
||||||
# define PARAMS(args) args
|
# define PARAMS(args) args
|
||||||
# else
|
# else
|
||||||
# define PARAMS(args) ()
|
# define PARAMS(args) ()
|
||||||
|
|||||||
+11
-133
@@ -71,8 +71,9 @@ char *alloca ();
|
|||||||
# undef HAVE_MMAP
|
# undef HAVE_MMAP
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "gettext.h"
|
#include "gmo.h"
|
||||||
#include "gettextP.h"
|
#include "gettextP.h"
|
||||||
|
#include "plural-exp.h"
|
||||||
|
|
||||||
#ifdef _LIBC
|
#ifdef _LIBC
|
||||||
# include "../locale/localeinfo.h"
|
# include "../locale/localeinfo.h"
|
||||||
@@ -91,16 +92,6 @@ char *alloca ();
|
|||||||
# define munmap __munmap
|
# define munmap __munmap
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Names for the libintl functions are a problem. They must not clash
|
|
||||||
with existing names and they should follow ANSI C. But this source
|
|
||||||
code is also used in GNU C Library where the names have a __
|
|
||||||
prefix. So we have to make a difference here. */
|
|
||||||
#ifdef _LIBC
|
|
||||||
# define PLURAL_PARSE __gettextparse
|
|
||||||
#else
|
|
||||||
# define PLURAL_PARSE gettextparse__
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* For those losing systems which don't have `alloca' we have to add
|
/* For those losing systems which don't have `alloca' we have to add
|
||||||
some additional code emulating it. */
|
some additional code emulating it. */
|
||||||
#ifdef HAVE_ALLOCA
|
#ifdef HAVE_ALLOCA
|
||||||
@@ -132,73 +123,6 @@ char *alloca ();
|
|||||||
cached by one of GCC's features. */
|
cached by one of GCC's features. */
|
||||||
int _nl_msg_cat_cntr;
|
int _nl_msg_cat_cntr;
|
||||||
|
|
||||||
#if (defined __GNUC__ && !defined __APPLE_CC__) \
|
|
||||||
|| (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
|
|
||||||
|
|
||||||
/* These structs are the constant expression for the germanic plural
|
|
||||||
form determination. It represents the expression "n != 1". */
|
|
||||||
static const struct expression plvar =
|
|
||||||
{
|
|
||||||
.nargs = 0,
|
|
||||||
.operation = var,
|
|
||||||
};
|
|
||||||
static const struct expression plone =
|
|
||||||
{
|
|
||||||
.nargs = 0,
|
|
||||||
.operation = num,
|
|
||||||
.val =
|
|
||||||
{
|
|
||||||
.num = 1
|
|
||||||
}
|
|
||||||
};
|
|
||||||
static struct expression germanic_plural =
|
|
||||||
{
|
|
||||||
.nargs = 2,
|
|
||||||
.operation = not_equal,
|
|
||||||
.val =
|
|
||||||
{
|
|
||||||
.args =
|
|
||||||
{
|
|
||||||
[0] = (struct expression *) &plvar,
|
|
||||||
[1] = (struct expression *) &plone
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
# define INIT_GERMANIC_PLURAL()
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
/* For compilers without support for ISO C 99 struct/union initializers:
|
|
||||||
Initialization at run-time. */
|
|
||||||
|
|
||||||
static struct expression plvar;
|
|
||||||
static struct expression plone;
|
|
||||||
static struct expression germanic_plural;
|
|
||||||
|
|
||||||
static void
|
|
||||||
init_germanic_plural ()
|
|
||||||
{
|
|
||||||
if (plone.val.num == 0)
|
|
||||||
{
|
|
||||||
plvar.nargs = 0;
|
|
||||||
plvar.operation = var;
|
|
||||||
|
|
||||||
plone.nargs = 0;
|
|
||||||
plone.operation = num;
|
|
||||||
plone.val.num = 1;
|
|
||||||
|
|
||||||
germanic_plural.nargs = 2;
|
|
||||||
germanic_plural.operation = not_equal;
|
|
||||||
germanic_plural.val.args[0] = &plvar;
|
|
||||||
germanic_plural.val.args[1] = &plone;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# define INIT_GERMANIC_PLURAL() init_germanic_plural ()
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* Initialize the codeset dependent parts of an opened message catalog.
|
/* Initialize the codeset dependent parts of an opened message catalog.
|
||||||
Return the header entry. */
|
Return the header entry. */
|
||||||
@@ -271,7 +195,7 @@ _nl_init_domain_conv (domain_file, domain, domainbinding)
|
|||||||
outcharset = (*_nl_current[LC_CTYPE])->values[_NL_ITEM_INDEX (CODESET)].string;
|
outcharset = (*_nl_current[LC_CTYPE])->values[_NL_ITEM_INDEX (CODESET)].string;
|
||||||
# else
|
# else
|
||||||
# if HAVE_ICONV
|
# if HAVE_ICONV
|
||||||
extern const char *locale_charset (void);
|
extern const char *locale_charset PARAMS ((void));
|
||||||
outcharset = locale_charset ();
|
outcharset = locale_charset ();
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
@@ -288,8 +212,10 @@ _nl_init_domain_conv (domain_file, domain, domainbinding)
|
|||||||
domain->conv = (__gconv_t) -1;
|
domain->conv = (__gconv_t) -1;
|
||||||
# else
|
# else
|
||||||
# if HAVE_ICONV
|
# if HAVE_ICONV
|
||||||
/* When using GNU libiconv, we want to use transliteration. */
|
/* When using GNU libc >= 2.2 or GNU libiconv >= 1.5,
|
||||||
# if _LIBICONV_VERSION >= 0x0105
|
we want to use transliteration. */
|
||||||
|
# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 \
|
||||||
|
|| _LIBICONV_VERSION >= 0x0105
|
||||||
len = strlen (outcharset);
|
len = strlen (outcharset);
|
||||||
{
|
{
|
||||||
char *tmp = (char *) alloca (len + 10 + 1);
|
char *tmp = (char *) alloca (len + 10 + 1);
|
||||||
@@ -299,7 +225,8 @@ _nl_init_domain_conv (domain_file, domain, domainbinding)
|
|||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
domain->conv = iconv_open (outcharset, charset);
|
domain->conv = iconv_open (outcharset, charset);
|
||||||
# if _LIBICONV_VERSION >= 0x0105
|
# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 \
|
||||||
|
|| _LIBICONV_VERSION >= 0x0105
|
||||||
freea (outcharset);
|
freea (outcharset);
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
@@ -491,56 +418,7 @@ _nl_load_domain (domain_file, domainbinding)
|
|||||||
nullentry = _nl_init_domain_conv (domain_file, domain, domainbinding);
|
nullentry = _nl_init_domain_conv (domain_file, domain, domainbinding);
|
||||||
|
|
||||||
/* Also look for a plural specification. */
|
/* Also look for a plural specification. */
|
||||||
if (nullentry != NULL)
|
EXTRACT_PLURAL_EXPRESSION (nullentry, &domain->plural, &domain->nplurals);
|
||||||
{
|
|
||||||
const char *plural;
|
|
||||||
const char *nplurals;
|
|
||||||
|
|
||||||
plural = strstr (nullentry, "plural=");
|
|
||||||
nplurals = strstr (nullentry, "nplurals=");
|
|
||||||
if (plural == NULL || nplurals == NULL)
|
|
||||||
goto no_plural;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* First get the number. */
|
|
||||||
char *endp;
|
|
||||||
unsigned long int n;
|
|
||||||
struct parse_args args;
|
|
||||||
|
|
||||||
nplurals += 9;
|
|
||||||
while (*nplurals != '\0' && isspace (*nplurals))
|
|
||||||
++nplurals;
|
|
||||||
#if defined HAVE_STRTOUL || defined _LIBC
|
|
||||||
n = strtoul (nplurals, &endp, 10);
|
|
||||||
#else
|
|
||||||
for (endp = nplurals, n = 0; *endp >= '0' && *endp <= '9'; endp++)
|
|
||||||
n = n * 10 + (*endp - '0');
|
|
||||||
#endif
|
|
||||||
domain->nplurals = n;
|
|
||||||
if (nplurals == endp)
|
|
||||||
goto no_plural;
|
|
||||||
|
|
||||||
/* Due to the restrictions bison imposes onto the interface of the
|
|
||||||
scanner function we have to put the input string and the result
|
|
||||||
passed up from the parser into the same structure which address
|
|
||||||
is passed down to the parser. */
|
|
||||||
plural += 7;
|
|
||||||
args.cp = plural;
|
|
||||||
if (PLURAL_PARSE (&args) != 0)
|
|
||||||
goto no_plural;
|
|
||||||
domain->plural = args.res;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* By default we are using the Germanic form: singular form only
|
|
||||||
for `one', the plural form otherwise. Yes, this is also what
|
|
||||||
English is using since English is a Germanic language. */
|
|
||||||
no_plural:
|
|
||||||
INIT_GERMANIC_PLURAL ();
|
|
||||||
domain->plural = &germanic_plural;
|
|
||||||
domain->nplurals = 2;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -550,7 +428,7 @@ internal_function
|
|||||||
_nl_unload_domain (domain)
|
_nl_unload_domain (domain)
|
||||||
struct loaded_domain *domain;
|
struct loaded_domain *domain;
|
||||||
{
|
{
|
||||||
if (domain->plural != &germanic_plural)
|
if (domain->plural != &__gettext_germanic_plural)
|
||||||
__gettext_free_exp (domain->plural);
|
__gettext_free_exp (domain->plural);
|
||||||
|
|
||||||
_nl_free_domain_conv (domain);
|
_nl_free_domain_conv (domain);
|
||||||
|
|||||||
+84
-10
@@ -1,6 +1,6 @@
|
|||||||
/* Determine a canonical name for the current locale's character encoding.
|
/* 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
|
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
|
under the terms of the GNU Library General Public License as published
|
||||||
@@ -42,7 +42,12 @@
|
|||||||
# define WIN32
|
# define WIN32
|
||||||
#endif
|
#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
|
# if HAVE_LANGINFO_CODESET
|
||||||
# include <langinfo.h>
|
# include <langinfo.h>
|
||||||
# else
|
# else
|
||||||
@@ -50,10 +55,19 @@
|
|||||||
# include <locale.h>
|
# include <locale.h>
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
#else /* WIN32 */
|
#elif defined WIN32
|
||||||
# define WIN32_LEAN_AND_MEAN
|
# define WIN32_LEAN_AND_MEAN
|
||||||
# include <windows.h>
|
# include <windows.h>
|
||||||
#endif
|
#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
|
#ifndef DIRECTORY_SEPARATOR
|
||||||
# define DIRECTORY_SEPARATOR '/'
|
# define DIRECTORY_SEPARATOR '/'
|
||||||
@@ -63,6 +77,11 @@
|
|||||||
# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
|
# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_GETC_UNLOCKED
|
||||||
|
# undef getc
|
||||||
|
# define getc getc_unlocked
|
||||||
|
#endif
|
||||||
|
|
||||||
/* The following static variable is declared 'volatile' to avoid a
|
/* The following static variable is declared 'volatile' to avoid a
|
||||||
possible multithread problem in the function get_charset_aliases. If we
|
possible multithread problem in the function get_charset_aliases. If we
|
||||||
are running in a threaded environment, and if two threads initialize
|
are running in a threaded environment, and if two threads initialize
|
||||||
@@ -86,7 +105,7 @@ get_charset_aliases ()
|
|||||||
cp = charset_aliases;
|
cp = charset_aliases;
|
||||||
if (cp == NULL)
|
if (cp == NULL)
|
||||||
{
|
{
|
||||||
#ifndef WIN32
|
#if !defined WIN32
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
const char *dir = LIBDIR;
|
const char *dir = LIBDIR;
|
||||||
const char *base = "charset.alias";
|
const char *base = "charset.alias";
|
||||||
@@ -138,19 +157,19 @@ get_charset_aliases ()
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
ungetc (c, fp);
|
ungetc (c, fp);
|
||||||
if (fscanf(fp, "%50s %50s", buf1, buf2) < 2)
|
if (fscanf (fp, "%50s %50s", buf1, buf2) < 2)
|
||||||
break;
|
break;
|
||||||
l1 = strlen (buf1);
|
l1 = strlen (buf1);
|
||||||
l2 = strlen (buf2);
|
l2 = strlen (buf2);
|
||||||
if (res_size == 0)
|
if (res_size == 0)
|
||||||
{
|
{
|
||||||
res_size = l1 + 1 + l2 + 1;
|
res_size = l1 + 1 + l2 + 1;
|
||||||
res_ptr = malloc (res_size + 1);
|
res_ptr = (char *) malloc (res_size + 1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
res_size += l1 + 1 + l2 + 1;
|
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)
|
if (res_ptr == NULL)
|
||||||
{
|
{
|
||||||
@@ -174,14 +193,16 @@ get_charset_aliases ()
|
|||||||
if (file_name != NULL)
|
if (file_name != NULL)
|
||||||
free (file_name);
|
free (file_name);
|
||||||
|
|
||||||
#else /* WIN32 */
|
#else
|
||||||
|
|
||||||
/* To avoid the troubles of installing a separate file in the same
|
/* To avoid the troubles of installing a separate file in the same
|
||||||
directory as the DLL and of retrieving the DLL's directory at
|
directory as the DLL and of retrieving the DLL's directory at
|
||||||
runtime, simply inline the aliases here. */
|
runtime, simply inline the aliases here. */
|
||||||
|
|
||||||
|
# if defined WIN32
|
||||||
cp = "CP936" "\0" "GBK" "\0"
|
cp = "CP936" "\0" "GBK" "\0"
|
||||||
"CP1361" "\0" "JOHAB" "\0";
|
"CP1361" "\0" "JOHAB" "\0";
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
charset_aliases = cp;
|
charset_aliases = cp;
|
||||||
@@ -205,7 +226,7 @@ locale_charset ()
|
|||||||
const char *codeset;
|
const char *codeset;
|
||||||
const char *aliases;
|
const char *aliases;
|
||||||
|
|
||||||
#ifndef WIN32
|
#if !(defined WIN32 || defined OS2)
|
||||||
|
|
||||||
# if HAVE_LANGINFO_CODESET
|
# if HAVE_LANGINFO_CODESET
|
||||||
|
|
||||||
@@ -242,7 +263,7 @@ locale_charset ()
|
|||||||
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#else /* WIN32 */
|
#elif defined WIN32
|
||||||
|
|
||||||
static char buf[2 + 10 + 1];
|
static char buf[2 + 10 + 1];
|
||||||
|
|
||||||
@@ -250,6 +271,59 @@ locale_charset ()
|
|||||||
sprintf (buf, "CP%u", GetACP ());
|
sprintf (buf, "CP%u", GetACP ());
|
||||||
codeset = buf;
|
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
|
#endif
|
||||||
|
|
||||||
if (codeset == NULL)
|
if (codeset == NULL)
|
||||||
|
|||||||
+29
-14
@@ -29,6 +29,9 @@
|
|||||||
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#if defined _LIBC || defined HAVE___FSETLOCKING
|
||||||
|
# include <stdio_ext.h>
|
||||||
|
#endif
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
@@ -49,13 +52,7 @@ char *alloca ();
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#if !HAVE_STRCHR && !defined _LIBC
|
|
||||||
# ifndef strchr
|
|
||||||
# define strchr index
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "gettextP.h"
|
#include "gettextP.h"
|
||||||
|
|
||||||
@@ -71,6 +68,7 @@ char *alloca ();
|
|||||||
# define mempcpy __mempcpy
|
# define mempcpy __mempcpy
|
||||||
# endif
|
# endif
|
||||||
# define HAVE_MEMPCPY 1
|
# define HAVE_MEMPCPY 1
|
||||||
|
# define HAVE___FSETLOCKING 1
|
||||||
|
|
||||||
/* We need locking here since we can be called from different places. */
|
/* We need locking here since we can be called from different places. */
|
||||||
# include <bits/libc-lock.h>
|
# include <bits/libc-lock.h>
|
||||||
@@ -82,6 +80,15 @@ __libc_lock_define_initialized (static, lock);
|
|||||||
# define internal_function
|
# define internal_function
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Some optimizations for glibc. */
|
||||||
|
#ifdef _LIBC
|
||||||
|
# define FEOF(fp) feof_unlocked (fp)
|
||||||
|
# define FGETS(buf, n, fp) fgets_unlocked (buf, n, fp)
|
||||||
|
#else
|
||||||
|
# define FEOF(fp) feof (fp)
|
||||||
|
# define FGETS(buf, n, fp) fgets (buf, n, fp)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* For those losing systems which don't have `alloca' we have to add
|
/* For those losing systems which don't have `alloca' we have to add
|
||||||
some additional code emulating it. */
|
some additional code emulating it. */
|
||||||
#ifdef HAVE_ALLOCA
|
#ifdef HAVE_ALLOCA
|
||||||
@@ -128,7 +135,7 @@ const char *
|
|||||||
_nl_expand_alias (name)
|
_nl_expand_alias (name)
|
||||||
const char *name;
|
const char *name;
|
||||||
{
|
{
|
||||||
static const char *locale_alias_path = LOCALE_ALIAS_PATH;
|
static const char *locale_alias_path;
|
||||||
struct alias_map *retval;
|
struct alias_map *retval;
|
||||||
const char *result = NULL;
|
const char *result = NULL;
|
||||||
size_t added;
|
size_t added;
|
||||||
@@ -137,6 +144,9 @@ _nl_expand_alias (name)
|
|||||||
__libc_lock_lock (lock);
|
__libc_lock_lock (lock);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (locale_alias_path == NULL)
|
||||||
|
locale_alias_path = LOCALE_ALIAS_PATH;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
struct alias_map item;
|
struct alias_map item;
|
||||||
@@ -212,8 +222,13 @@ read_alias_file (fname, fname_len)
|
|||||||
if (fp == NULL)
|
if (fp == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
#ifdef HAVE___FSETLOCKING
|
||||||
|
/* No threads present. */
|
||||||
|
__fsetlocking (fp, FSETLOCKING_BYCALLER);
|
||||||
|
#endif
|
||||||
|
|
||||||
added = 0;
|
added = 0;
|
||||||
while (!feof (fp))
|
while (!FEOF (fp))
|
||||||
{
|
{
|
||||||
/* It is a reasonable approach to use a fix buffer here because
|
/* It is a reasonable approach to use a fix buffer here because
|
||||||
a) we are only interested in the first two fields
|
a) we are only interested in the first two fields
|
||||||
@@ -225,7 +240,7 @@ read_alias_file (fname, fname_len)
|
|||||||
char *value;
|
char *value;
|
||||||
char *cp;
|
char *cp;
|
||||||
|
|
||||||
if (fgets (buf, sizeof buf, fp) == NULL)
|
if (FGETS (buf, sizeof buf, fp) == NULL)
|
||||||
/* EOF reached. */
|
/* EOF reached. */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -235,7 +250,7 @@ read_alias_file (fname, fname_len)
|
|||||||
{
|
{
|
||||||
char altbuf[BUFSIZ];
|
char altbuf[BUFSIZ];
|
||||||
do
|
do
|
||||||
if (fgets (altbuf, sizeof altbuf, fp) == NULL)
|
if (FGETS (altbuf, sizeof altbuf, fp) == NULL)
|
||||||
/* Make sure the inner loop will be left. The outer loop
|
/* Make sure the inner loop will be left. The outer loop
|
||||||
will exit at the `feof' test. */
|
will exit at the `feof' test. */
|
||||||
break;
|
break;
|
||||||
@@ -244,21 +259,21 @@ read_alias_file (fname, fname_len)
|
|||||||
|
|
||||||
cp = buf;
|
cp = buf;
|
||||||
/* Ignore leading white space. */
|
/* Ignore leading white space. */
|
||||||
while (isspace (cp[0]))
|
while (isspace ((unsigned char) cp[0]))
|
||||||
++cp;
|
++cp;
|
||||||
|
|
||||||
/* A leading '#' signals a comment line. */
|
/* A leading '#' signals a comment line. */
|
||||||
if (cp[0] != '\0' && cp[0] != '#')
|
if (cp[0] != '\0' && cp[0] != '#')
|
||||||
{
|
{
|
||||||
alias = cp++;
|
alias = cp++;
|
||||||
while (cp[0] != '\0' && !isspace (cp[0]))
|
while (cp[0] != '\0' && !isspace ((unsigned char) cp[0]))
|
||||||
++cp;
|
++cp;
|
||||||
/* Terminate alias name. */
|
/* Terminate alias name. */
|
||||||
if (cp[0] != '\0')
|
if (cp[0] != '\0')
|
||||||
*cp++ = '\0';
|
*cp++ = '\0';
|
||||||
|
|
||||||
/* Now look for the beginning of the value. */
|
/* Now look for the beginning of the value. */
|
||||||
while (isspace (cp[0]))
|
while (isspace ((unsigned char) cp[0]))
|
||||||
++cp;
|
++cp;
|
||||||
|
|
||||||
if (cp[0] != '\0')
|
if (cp[0] != '\0')
|
||||||
@@ -267,7 +282,7 @@ read_alias_file (fname, fname_len)
|
|||||||
size_t value_len;
|
size_t value_len;
|
||||||
|
|
||||||
value = cp++;
|
value = cp++;
|
||||||
while (cp[0] != '\0' && !isspace (cp[0]))
|
while (cp[0] != '\0' && !isspace ((unsigned char) cp[0]))
|
||||||
++cp;
|
++cp;
|
||||||
/* Terminate value. */
|
/* Terminate value. */
|
||||||
if (cp[0] == '\n')
|
if (cp[0] == '\n')
|
||||||
|
|||||||
+26
-30
@@ -50,30 +50,26 @@
|
|||||||
# include <config.h>
|
# include <config.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include "gettextP.h"
|
#include "plural-exp.h"
|
||||||
|
|
||||||
/* Names for the libintl functions are a problem. They must not clash
|
/* The main function generated by the parser is called __gettextparse,
|
||||||
with existing names and they should follow ANSI C. But this source
|
but we want it to be called PLURAL_PARSE. */
|
||||||
code is also used in GNU C Library where the names have a __
|
#ifndef _LIBC
|
||||||
prefix. So we have to make a difference here. */
|
# define __gettextparse PLURAL_PARSE
|
||||||
#ifdef _LIBC
|
|
||||||
# define FREE_EXPRESSION __gettext_free_exp
|
|
||||||
#else
|
|
||||||
# define FREE_EXPRESSION gettext_free_exp__
|
|
||||||
# define __gettextparse gettextparse__
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define YYLEX_PARAM &((struct parse_args *) arg)->cp
|
#define YYLEX_PARAM &((struct parse_args *) arg)->cp
|
||||||
#define YYPARSE_PARAM arg
|
#define YYPARSE_PARAM arg
|
||||||
|
|
||||||
#line 53 "plural.y"
|
#line 49 "plural.y"
|
||||||
typedef union {
|
typedef union {
|
||||||
unsigned long int num;
|
unsigned long int num;
|
||||||
enum operator op;
|
enum operator op;
|
||||||
struct expression *exp;
|
struct expression *exp;
|
||||||
} YYSTYPE;
|
} YYSTYPE;
|
||||||
#line 59 "plural.y"
|
#line 55 "plural.y"
|
||||||
|
|
||||||
/* Prototypes for local functions. */
|
/* Prototypes for local functions. */
|
||||||
static struct expression *new_exp PARAMS ((int nargs, enum operator op,
|
static struct expression *new_exp PARAMS ((int nargs, enum operator op,
|
||||||
@@ -235,8 +231,8 @@ static const short yyrhs[] = { 17,
|
|||||||
|
|
||||||
#if YYDEBUG != 0
|
#if YYDEBUG != 0
|
||||||
static const short yyrline[] = { 0,
|
static const short yyrline[] = { 0,
|
||||||
178, 186, 190, 194, 198, 202, 206, 210, 214, 218,
|
174, 182, 186, 190, 194, 198, 202, 206, 210, 214,
|
||||||
222, 227
|
218, 223
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -303,7 +299,7 @@ static const short yycheck[] = { 1,
|
|||||||
#define YYPURE 1
|
#define YYPURE 1
|
||||||
|
|
||||||
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
|
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
|
||||||
#line 3 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple"
|
#line 3 "/usr/local/share/bison.simple"
|
||||||
/* This file comes from bison-1.28. */
|
/* This file comes from bison-1.28. */
|
||||||
|
|
||||||
/* Skeleton output parser for bison,
|
/* Skeleton output parser for bison,
|
||||||
@@ -517,7 +513,7 @@ __yy_memcpy (char *to, char *from, unsigned int count)
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#line 217 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple"
|
#line 217 "/usr/local/share/bison.simple"
|
||||||
|
|
||||||
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
|
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
|
||||||
into yyparse. The argument should have type void *.
|
into yyparse. The argument should have type void *.
|
||||||
@@ -846,7 +842,7 @@ yyreduce:
|
|||||||
switch (yyn) {
|
switch (yyn) {
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
#line 179 "plural.y"
|
#line 175 "plural.y"
|
||||||
{
|
{
|
||||||
if (yyvsp[0].exp == NULL)
|
if (yyvsp[0].exp == NULL)
|
||||||
YYABORT;
|
YYABORT;
|
||||||
@@ -854,75 +850,75 @@ case 1:
|
|||||||
;
|
;
|
||||||
break;}
|
break;}
|
||||||
case 2:
|
case 2:
|
||||||
#line 187 "plural.y"
|
#line 183 "plural.y"
|
||||||
{
|
{
|
||||||
yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp);
|
yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp);
|
||||||
;
|
;
|
||||||
break;}
|
break;}
|
||||||
case 3:
|
case 3:
|
||||||
#line 191 "plural.y"
|
#line 187 "plural.y"
|
||||||
{
|
{
|
||||||
yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp);
|
yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp);
|
||||||
;
|
;
|
||||||
break;}
|
break;}
|
||||||
case 4:
|
case 4:
|
||||||
#line 195 "plural.y"
|
#line 191 "plural.y"
|
||||||
{
|
{
|
||||||
yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp);
|
yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp);
|
||||||
;
|
;
|
||||||
break;}
|
break;}
|
||||||
case 5:
|
case 5:
|
||||||
#line 199 "plural.y"
|
#line 195 "plural.y"
|
||||||
{
|
{
|
||||||
yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
|
yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
|
||||||
;
|
;
|
||||||
break;}
|
break;}
|
||||||
case 6:
|
case 6:
|
||||||
#line 203 "plural.y"
|
#line 199 "plural.y"
|
||||||
{
|
{
|
||||||
yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
|
yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
|
||||||
;
|
;
|
||||||
break;}
|
break;}
|
||||||
case 7:
|
case 7:
|
||||||
#line 207 "plural.y"
|
#line 203 "plural.y"
|
||||||
{
|
{
|
||||||
yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
|
yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
|
||||||
;
|
;
|
||||||
break;}
|
break;}
|
||||||
case 8:
|
case 8:
|
||||||
#line 211 "plural.y"
|
#line 207 "plural.y"
|
||||||
{
|
{
|
||||||
yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
|
yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
|
||||||
;
|
;
|
||||||
break;}
|
break;}
|
||||||
case 9:
|
case 9:
|
||||||
#line 215 "plural.y"
|
#line 211 "plural.y"
|
||||||
{
|
{
|
||||||
yyval.exp = new_exp_1 (lnot, yyvsp[0].exp);
|
yyval.exp = new_exp_1 (lnot, yyvsp[0].exp);
|
||||||
;
|
;
|
||||||
break;}
|
break;}
|
||||||
case 10:
|
case 10:
|
||||||
#line 219 "plural.y"
|
#line 215 "plural.y"
|
||||||
{
|
{
|
||||||
yyval.exp = new_exp_0 (var);
|
yyval.exp = new_exp_0 (var);
|
||||||
;
|
;
|
||||||
break;}
|
break;}
|
||||||
case 11:
|
case 11:
|
||||||
#line 223 "plural.y"
|
#line 219 "plural.y"
|
||||||
{
|
{
|
||||||
if ((yyval.exp = new_exp_0 (num)) != NULL)
|
if ((yyval.exp = new_exp_0 (num)) != NULL)
|
||||||
yyval.exp->val.num = yyvsp[0].num;
|
yyval.exp->val.num = yyvsp[0].num;
|
||||||
;
|
;
|
||||||
break;}
|
break;}
|
||||||
case 12:
|
case 12:
|
||||||
#line 228 "plural.y"
|
#line 224 "plural.y"
|
||||||
{
|
{
|
||||||
yyval.exp = yyvsp[-1].exp;
|
yyval.exp = yyvsp[-1].exp;
|
||||||
;
|
;
|
||||||
break;}
|
break;}
|
||||||
}
|
}
|
||||||
/* the action file gets copied in in place of this dollarsign */
|
/* the action file gets copied in in place of this dollarsign */
|
||||||
#line 543 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple"
|
#line 543 "/usr/local/share/bison.simple"
|
||||||
|
|
||||||
yyvsp -= yylen;
|
yyvsp -= yylen;
|
||||||
yyssp -= yylen;
|
yyssp -= yylen;
|
||||||
@@ -1142,7 +1138,7 @@ yyerrhandle:
|
|||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
#line 233 "plural.y"
|
#line 229 "plural.y"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
+7
-11
@@ -30,25 +30,21 @@
|
|||||||
# include <config.h>
|
# include <config.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include "gettextP.h"
|
#include "plural-exp.h"
|
||||||
|
|
||||||
/* Names for the libintl functions are a problem. They must not clash
|
/* The main function generated by the parser is called __gettextparse,
|
||||||
with existing names and they should follow ANSI C. But this source
|
but we want it to be called PLURAL_PARSE. */
|
||||||
code is also used in GNU C Library where the names have a __
|
#ifndef _LIBC
|
||||||
prefix. So we have to make a difference here. */
|
# define __gettextparse PLURAL_PARSE
|
||||||
#ifdef _LIBC
|
|
||||||
# define FREE_EXPRESSION __gettext_free_exp
|
|
||||||
#else
|
|
||||||
# define FREE_EXPRESSION gettext_free_exp__
|
|
||||||
# define __gettextparse gettextparse__
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define YYLEX_PARAM &((struct parse_args *) arg)->cp
|
#define YYLEX_PARAM &((struct parse_args *) arg)->cp
|
||||||
#define YYPARSE_PARAM arg
|
#define YYPARSE_PARAM arg
|
||||||
%}
|
%}
|
||||||
%pure_parser
|
%pure_parser
|
||||||
%expect 10
|
%expect 7
|
||||||
|
|
||||||
%union {
|
%union {
|
||||||
unsigned long int num;
|
unsigned long int num;
|
||||||
|
|||||||
+24
-8
@@ -1,22 +1,38 @@
|
|||||||
## Process this file with automake to produce Makefile.in -*-Makefile-*-
|
## Copyright 2001, 2002 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
## This program is free software; you can redistribute it and/or modify
|
||||||
|
## it under the terms of the GNU General Public License as published by
|
||||||
|
## the Free Software Foundation; either version 2 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
|
||||||
|
|
||||||
AUTOMAKE_OPTIONS = ansi2knr
|
AUTOMAKE_OPTIONS = ansi2knr
|
||||||
|
|
||||||
|
CFLAGS = @CFLAGS@ $(WARNING_CFLAGS)
|
||||||
|
|
||||||
noinst_LIBRARIES = libbison.a
|
noinst_LIBRARIES = libbison.a
|
||||||
|
|
||||||
INCLUDES = -I.. -I$(srcdir) -I../intl
|
INCLUDES = -I.. -I$(srcdir) -I../intl
|
||||||
|
|
||||||
# Heck, we are still using an old version of Automake which does not
|
# Heck, we are still using an old version of Automake which does not
|
||||||
# understand LIBOBJ additions using $objext...
|
# understand inner AC_LIBOBJ (i.e., from Autoconf itself, not from
|
||||||
|
# configure.in).
|
||||||
EXTRA_DIST = malloc.c realloc.c
|
EXTRA_DIST = malloc.c realloc.c strnlen.c
|
||||||
|
|
||||||
libbison_a_SOURCES = \
|
libbison_a_SOURCES = \
|
||||||
error.c error.h \
|
basename.c dirname.h dirname.c \
|
||||||
getopt.h getopt.c getopt1.c \
|
getopt.h getopt.c getopt1.c \
|
||||||
obstack.h obstack.c \
|
|
||||||
quote.h quote.c quotearg.h quotearg.c \
|
quote.h quote.c quotearg.h quotearg.c \
|
||||||
xalloc.h xmalloc.c xstrdup.c
|
xalloc.h xmalloc.c xstrdup.c xstrndup.c gettext.h
|
||||||
|
|
||||||
libbison_a_LIBADD = @LIBOBJS@
|
libbison_a_LIBADD = @LIBOBJS@ @ALLOCA@
|
||||||
libbison_a_DEPENDENCIES = $(libbison_a_LIBADD)
|
libbison_a_DEPENDENCIES = $(libbison_a_LIBADD)
|
||||||
|
|||||||
+101
-74
@@ -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@
|
# @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.
|
# Free Software Foundation, Inc.
|
||||||
# This Makefile.in is free software; the Free Software Foundation
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
@@ -13,7 +13,6 @@
|
|||||||
# PARTICULAR PURPOSE.
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
@SET_MAKE@
|
@SET_MAKE@
|
||||||
|
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
|
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
@@ -48,6 +47,8 @@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
|||||||
INSTALL = @INSTALL@
|
INSTALL = @INSTALL@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
INSTALL_HEADER = $(INSTALL_DATA)
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
transform = @program_transform_name@
|
transform = @program_transform_name@
|
||||||
@@ -67,7 +68,6 @@ AMTAR = @AMTAR@
|
|||||||
AUTOM4TE = @AUTOM4TE@
|
AUTOM4TE = @AUTOM4TE@
|
||||||
AWK = @AWK@
|
AWK = @AWK@
|
||||||
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
||||||
CATALOGS = @CATALOGS@
|
|
||||||
CATOBJEXT = @CATOBJEXT@
|
CATOBJEXT = @CATOBJEXT@
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CPP = @CPP@
|
CPP = @CPP@
|
||||||
@@ -76,51 +76,56 @@ DEPDIR = @DEPDIR@
|
|||||||
GCC = @GCC@
|
GCC = @GCC@
|
||||||
GENCAT = @GENCAT@
|
GENCAT = @GENCAT@
|
||||||
GLIBC21 = @GLIBC21@
|
GLIBC21 = @GLIBC21@
|
||||||
GMOFILES = @GMOFILES@
|
|
||||||
GMSGFMT = @GMSGFMT@
|
GMSGFMT = @GMSGFMT@
|
||||||
|
HAVE_LIB = @HAVE_LIB@
|
||||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
INSTOBJEXT = @INSTOBJEXT@
|
INSTOBJEXT = @INSTOBJEXT@
|
||||||
INTLBISON = @INTLBISON@
|
INTLBISON = @INTLBISON@
|
||||||
INTLLIBS = @INTLLIBS@
|
INTLLIBS = @INTLLIBS@
|
||||||
INTLOBJS = @INTLOBJS@
|
INTLOBJS = @INTLOBJS@
|
||||||
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
||||||
|
LIB = @LIB@
|
||||||
LIBICONV = @LIBICONV@
|
LIBICONV = @LIBICONV@
|
||||||
LIBOBJS = @LIBOBJS@
|
LIBINTL = @LIBINTL@
|
||||||
|
LTLIB = @LTLIB@
|
||||||
|
LTLIBICONV = @LTLIBICONV@
|
||||||
|
LTLIBINTL = @LTLIBINTL@
|
||||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||||
MSGFMT = @MSGFMT@
|
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
POFILES = @POFILES@
|
|
||||||
POSUB = @POSUB@
|
POSUB = @POSUB@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
|
STRIP = @STRIP@
|
||||||
U = @U@
|
U = @U@
|
||||||
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
|
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
|
||||||
USE_NLS = @USE_NLS@
|
USE_NLS = @USE_NLS@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
WARNING_CFLAGS = @WARNING_CFLAGS@
|
WARNING_CFLAGS = @WARNING_CFLAGS@
|
||||||
|
WERROR_CFLAGS = @WERROR_CFLAGS@
|
||||||
am__include = @am__include@
|
am__include = @am__include@
|
||||||
am__quote = @am__quote@
|
am__quote = @am__quote@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
|
|
||||||
AUTOMAKE_OPTIONS = ansi2knr
|
AUTOMAKE_OPTIONS = ansi2knr
|
||||||
|
|
||||||
|
CFLAGS = @CFLAGS@ $(WARNING_CFLAGS)
|
||||||
|
|
||||||
noinst_LIBRARIES = libbison.a
|
noinst_LIBRARIES = libbison.a
|
||||||
|
|
||||||
INCLUDES = -I.. -I$(srcdir) -I../intl
|
INCLUDES = -I.. -I$(srcdir) -I../intl
|
||||||
|
|
||||||
|
|
||||||
# Heck, we are still using an old version of Automake which does not
|
# Heck, we are still using an old version of Automake which does not
|
||||||
# understand LIBOBJ additions using $objext...
|
# understand inner AC_LIBOBJ (i.e., from Autoconf itself, not from
|
||||||
EXTRA_DIST = malloc.c realloc.c
|
# configure.in).
|
||||||
|
EXTRA_DIST = malloc.c realloc.c strnlen.c
|
||||||
|
|
||||||
libbison_a_SOURCES = \
|
libbison_a_SOURCES = \
|
||||||
error.c error.h \
|
basename.c dirname.h dirname.c \
|
||||||
getopt.h getopt.c getopt1.c \
|
getopt.h getopt.c getopt1.c \
|
||||||
obstack.h obstack.c \
|
|
||||||
quote.h quote.c quotearg.h quotearg.c \
|
quote.h quote.c quotearg.h quotearg.c \
|
||||||
xalloc.h xmalloc.c xstrdup.c
|
xalloc.h xmalloc.c xstrdup.c xstrndup.c gettext.h
|
||||||
|
|
||||||
|
|
||||||
libbison_a_LIBADD = @LIBOBJS@
|
libbison_a_LIBADD = @LIBOBJS@ @ALLOCA@
|
||||||
libbison_a_DEPENDENCIES = $(libbison_a_LIBADD)
|
libbison_a_DEPENDENCIES = $(libbison_a_LIBADD)
|
||||||
subdir = lib
|
subdir = lib
|
||||||
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
|
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
|
||||||
@@ -129,9 +134,10 @@ CONFIG_CLEAN_FILES =
|
|||||||
LIBRARIES = $(noinst_LIBRARIES)
|
LIBRARIES = $(noinst_LIBRARIES)
|
||||||
|
|
||||||
libbison_a_AR = $(AR) cru
|
libbison_a_AR = $(AR) cru
|
||||||
am_libbison_a_OBJECTS = error$U.$(OBJEXT) getopt$U.$(OBJEXT) \
|
am_libbison_a_OBJECTS = basename$U.$(OBJEXT) dirname$U.$(OBJEXT) \
|
||||||
getopt1$U.$(OBJEXT) obstack$U.$(OBJEXT) quote$U.$(OBJEXT) \
|
getopt$U.$(OBJEXT) getopt1$U.$(OBJEXT) quote$U.$(OBJEXT) \
|
||||||
quotearg$U.$(OBJEXT) xmalloc$U.$(OBJEXT) xstrdup$U.$(OBJEXT)
|
quotearg$U.$(OBJEXT) xmalloc$U.$(OBJEXT) xstrdup$U.$(OBJEXT) \
|
||||||
|
xstrndup$U.$(OBJEXT)
|
||||||
libbison_a_OBJECTS = $(am_libbison_a_OBJECTS)
|
libbison_a_OBJECTS = $(am_libbison_a_OBJECTS)
|
||||||
|
|
||||||
DEFS = @DEFS@
|
DEFS = @DEFS@
|
||||||
@@ -140,22 +146,25 @@ CPPFLAGS = @CPPFLAGS@
|
|||||||
LDFLAGS = @LDFLAGS@
|
LDFLAGS = @LDFLAGS@
|
||||||
LIBS = @LIBS@
|
LIBS = @LIBS@
|
||||||
depcomp = $(SHELL) $(top_srcdir)/config/depcomp
|
depcomp = $(SHELL) $(top_srcdir)/config/depcomp
|
||||||
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/error$U.Po $(DEPDIR)/getopt$U.Po \
|
am__depfiles_maybe = depfiles
|
||||||
@AMDEP_TRUE@ $(DEPDIR)/getopt1$U.Po $(DEPDIR)/malloc.Po \
|
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/alloca.Po $(DEPDIR)/error.Po \
|
||||||
@AMDEP_TRUE@ $(DEPDIR)/memchr.Po $(DEPDIR)/obstack$U.Po \
|
@AMDEP_TRUE@ $(DEPDIR)/malloc.Po $(DEPDIR)/memchr.Po \
|
||||||
@AMDEP_TRUE@ $(DEPDIR)/quote$U.Po $(DEPDIR)/quotearg$U.Po \
|
@AMDEP_TRUE@ $(DEPDIR)/memrchr.Po $(DEPDIR)/obstack.Po \
|
||||||
@AMDEP_TRUE@ $(DEPDIR)/realloc.Po $(DEPDIR)/stpcpy.Po \
|
@AMDEP_TRUE@ $(DEPDIR)/realloc.Po $(DEPDIR)/stpcpy.Po \
|
||||||
@AMDEP_TRUE@ $(DEPDIR)/strndup.Po $(DEPDIR)/strnlen.Po \
|
@AMDEP_TRUE@ $(DEPDIR)/strchr.Po $(DEPDIR)/strspn.Po \
|
||||||
@AMDEP_TRUE@ $(DEPDIR)/strspn.Po $(DEPDIR)/xmalloc$U.Po \
|
@AMDEP_TRUE@ ./$(DEPDIR)/basename$U.Po ./$(DEPDIR)/dirname$U.Po \
|
||||||
@AMDEP_TRUE@ $(DEPDIR)/xstrdup$U.Po
|
@AMDEP_TRUE@ ./$(DEPDIR)/getopt$U.Po ./$(DEPDIR)/getopt1$U.Po \
|
||||||
|
@AMDEP_TRUE@ ./$(DEPDIR)/quote$U.Po ./$(DEPDIR)/quotearg$U.Po \
|
||||||
|
@AMDEP_TRUE@ ./$(DEPDIR)/xmalloc$U.Po ./$(DEPDIR)/xstrdup$U.Po \
|
||||||
|
@AMDEP_TRUE@ ./$(DEPDIR)/xstrndup$U.Po
|
||||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||||
CCLD = $(CC)
|
CCLD = $(CC)
|
||||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||||
CFLAGS = @CFLAGS@
|
|
||||||
DIST_SOURCES = $(libbison_a_SOURCES)
|
DIST_SOURCES = $(libbison_a_SOURCES)
|
||||||
DIST_COMMON = Makefile.am Makefile.in ansi2knr.1 ansi2knr.c malloc.c \
|
DIST_COMMON = Makefile.am Makefile.in alloca.c ansi2knr.1 ansi2knr.c \
|
||||||
memchr.c realloc.c stpcpy.c strndup.c strnlen.c strspn.c
|
error.c error.h malloc.c memchr.c memrchr.c obstack.c obstack.h \
|
||||||
|
realloc.c stpcpy.c strchr.c strspn.c
|
||||||
SOURCES = $(libbison_a_SOURCES)
|
SOURCES = $(libbison_a_SOURCES)
|
||||||
|
|
||||||
all: all-am
|
all: all-am
|
||||||
@@ -166,7 +175,7 @@ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
|||||||
cd $(top_srcdir) && \
|
cd $(top_srcdir) && \
|
||||||
$(AUTOMAKE) --gnu lib/Makefile
|
$(AUTOMAKE) --gnu lib/Makefile
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
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)
|
||||||
|
|
||||||
AR = ar
|
AR = ar
|
||||||
|
|
||||||
@@ -194,24 +203,28 @@ clean-krextra:
|
|||||||
mostlyclean-kr:
|
mostlyclean-kr:
|
||||||
-test "$U" = "" || rm -f *_.c
|
-test "$U" = "" || rm -f *_.c
|
||||||
|
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/error$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/alloca.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getopt$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/error.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getopt1$U.Po@am__quote@
|
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/malloc.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/malloc.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/memchr.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/memchr.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/obstack$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/memrchr.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/quote$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/obstack.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/quotearg$U.Po@am__quote@
|
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/realloc.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/realloc.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/stpcpy.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/stpcpy.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strndup.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strchr.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strnlen.Po@am__quote@
|
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strspn.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strspn.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/xmalloc$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/xstrdup$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname$U.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt$U.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1$U.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quote$U.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quotearg$U.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc$U.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrdup$U.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrndup$U.Po@am__quote@
|
||||||
|
|
||||||
distclean-depend:
|
distclean-depend:
|
||||||
-rm -rf $(DEPDIR)
|
-rm -rf $(DEPDIR) ./$(DEPDIR)
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
@@ -225,68 +238,79 @@ distclean-depend:
|
|||||||
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
$(COMPILE) -c `cygpath -w $<`
|
$(COMPILE) -c `cygpath -w $<`
|
||||||
CCDEPMODE = @CCDEPMODE@
|
CCDEPMODE = @CCDEPMODE@
|
||||||
alloca_.c: alloca.c $(ANSI2KNR)
|
alloca_.c: lib/alloca.c $(ANSI2KNR)
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/alloca.c; then echo $(srcdir)/alloca.c; else echo alloca.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > alloca_.c || rm -f alloca_.c
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/alloca.c; then echo $(srcdir)/lib/alloca.c; else echo lib/alloca.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > alloca_.c || rm -f alloca_.c
|
||||||
error_.c: error.c $(ANSI2KNR)
|
basename_.c: basename.c $(ANSI2KNR)
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/error.c; then echo $(srcdir)/error.c; else echo error.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > error_.c || rm -f error_.c
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/basename.c; then echo $(srcdir)/basename.c; else echo basename.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > basename_.c || rm -f basename_.c
|
||||||
|
dirname_.c: dirname.c $(ANSI2KNR)
|
||||||
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/dirname.c; then echo $(srcdir)/dirname.c; else echo dirname.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > dirname_.c || rm -f dirname_.c
|
||||||
|
error_.c: lib/error.c $(ANSI2KNR)
|
||||||
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/error.c; then echo $(srcdir)/lib/error.c; else echo lib/error.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > error_.c || rm -f error_.c
|
||||||
getopt_.c: getopt.c $(ANSI2KNR)
|
getopt_.c: getopt.c $(ANSI2KNR)
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt.c; then echo $(srcdir)/getopt.c; else echo getopt.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getopt_.c || rm -f getopt_.c
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt.c; then echo $(srcdir)/getopt.c; else echo getopt.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getopt_.c || rm -f getopt_.c
|
||||||
getopt1_.c: getopt1.c $(ANSI2KNR)
|
getopt1_.c: getopt1.c $(ANSI2KNR)
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt1.c; then echo $(srcdir)/getopt1.c; else echo getopt1.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getopt1_.c || rm -f getopt1_.c
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt1.c; then echo $(srcdir)/getopt1.c; else echo getopt1.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > getopt1_.c || rm -f getopt1_.c
|
||||||
malloc_.c: malloc.c $(ANSI2KNR)
|
malloc_.c: lib/malloc.c $(ANSI2KNR)
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/malloc.c; then echo $(srcdir)/malloc.c; else echo malloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > malloc_.c || rm -f malloc_.c
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/malloc.c; then echo $(srcdir)/lib/malloc.c; else echo lib/malloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > malloc_.c || rm -f malloc_.c
|
||||||
memchr_.c: memchr.c $(ANSI2KNR)
|
memchr_.c: lib/memchr.c $(ANSI2KNR)
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memchr.c; then echo $(srcdir)/memchr.c; else echo memchr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memchr_.c || rm -f memchr_.c
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/memchr.c; then echo $(srcdir)/lib/memchr.c; else echo lib/memchr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memchr_.c || rm -f memchr_.c
|
||||||
obstack_.c: obstack.c $(ANSI2KNR)
|
memrchr_.c: lib/memrchr.c $(ANSI2KNR)
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/obstack.c; then echo $(srcdir)/obstack.c; else echo obstack.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > obstack_.c || rm -f obstack_.c
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/memrchr.c; then echo $(srcdir)/lib/memrchr.c; else echo lib/memrchr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > memrchr_.c || rm -f memrchr_.c
|
||||||
|
obstack_.c: lib/obstack.c $(ANSI2KNR)
|
||||||
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/obstack.c; then echo $(srcdir)/lib/obstack.c; else echo lib/obstack.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > obstack_.c || rm -f obstack_.c
|
||||||
quote_.c: quote.c $(ANSI2KNR)
|
quote_.c: quote.c $(ANSI2KNR)
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/quote.c; then echo $(srcdir)/quote.c; else echo quote.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > quote_.c || rm -f quote_.c
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/quote.c; then echo $(srcdir)/quote.c; else echo quote.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > quote_.c || rm -f quote_.c
|
||||||
quotearg_.c: quotearg.c $(ANSI2KNR)
|
quotearg_.c: quotearg.c $(ANSI2KNR)
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/quotearg.c; then echo $(srcdir)/quotearg.c; else echo quotearg.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > quotearg_.c || rm -f quotearg_.c
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/quotearg.c; then echo $(srcdir)/quotearg.c; else echo quotearg.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > quotearg_.c || rm -f quotearg_.c
|
||||||
realloc_.c: realloc.c $(ANSI2KNR)
|
realloc_.c: lib/realloc.c $(ANSI2KNR)
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/realloc.c; then echo $(srcdir)/realloc.c; else echo realloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > realloc_.c || rm -f realloc_.c
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/realloc.c; then echo $(srcdir)/lib/realloc.c; else echo lib/realloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > realloc_.c || rm -f realloc_.c
|
||||||
stpcpy_.c: stpcpy.c $(ANSI2KNR)
|
stpcpy_.c: lib/stpcpy.c $(ANSI2KNR)
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stpcpy.c; then echo $(srcdir)/stpcpy.c; else echo stpcpy.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > stpcpy_.c || rm -f stpcpy_.c
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/stpcpy.c; then echo $(srcdir)/lib/stpcpy.c; else echo lib/stpcpy.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > stpcpy_.c || rm -f stpcpy_.c
|
||||||
strndup_.c: strndup.c $(ANSI2KNR)
|
strchr_.c: lib/strchr.c $(ANSI2KNR)
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strndup.c; then echo $(srcdir)/strndup.c; else echo strndup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strndup_.c || rm -f strndup_.c
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/strchr.c; then echo $(srcdir)/lib/strchr.c; else echo lib/strchr.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strchr_.c || rm -f strchr_.c
|
||||||
strnlen_.c: strnlen.c $(ANSI2KNR)
|
strspn_.c: lib/strspn.c $(ANSI2KNR)
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strnlen.c; then echo $(srcdir)/strnlen.c; else echo strnlen.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strnlen_.c || rm -f strnlen_.c
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lib/strspn.c; then echo $(srcdir)/lib/strspn.c; else echo lib/strspn.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strspn_.c || rm -f strspn_.c
|
||||||
strspn_.c: strspn.c $(ANSI2KNR)
|
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strspn.c; then echo $(srcdir)/strspn.c; else echo strspn.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > strspn_.c || rm -f strspn_.c
|
|
||||||
xmalloc_.c: xmalloc.c $(ANSI2KNR)
|
xmalloc_.c: xmalloc.c $(ANSI2KNR)
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xmalloc.c; then echo $(srcdir)/xmalloc.c; else echo xmalloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xmalloc_.c || rm -f xmalloc_.c
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xmalloc.c; then echo $(srcdir)/xmalloc.c; else echo xmalloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xmalloc_.c || rm -f xmalloc_.c
|
||||||
xstrdup_.c: xstrdup.c $(ANSI2KNR)
|
xstrdup_.c: xstrdup.c $(ANSI2KNR)
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrdup.c; then echo $(srcdir)/xstrdup.c; else echo xstrdup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrdup_.c || rm -f xstrdup_.c
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrdup.c; then echo $(srcdir)/xstrdup.c; else echo xstrdup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrdup_.c || rm -f xstrdup_.c
|
||||||
alloca_.$(OBJEXT) error_.$(OBJEXT) getopt_.$(OBJEXT) getopt1_.$(OBJEXT) \
|
xstrndup_.c: xstrndup.c $(ANSI2KNR)
|
||||||
malloc_.$(OBJEXT) memchr_.$(OBJEXT) obstack_.$(OBJEXT) quote_.$(OBJEXT) \
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrndup.c; then echo $(srcdir)/xstrndup.c; else echo xstrndup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > xstrndup_.c || rm -f xstrndup_.c
|
||||||
quotearg_.$(OBJEXT) realloc_.$(OBJEXT) stpcpy_.$(OBJEXT) \
|
alloca_.$(OBJEXT) basename_.$(OBJEXT) dirname_.$(OBJEXT) \
|
||||||
strndup_.$(OBJEXT) strnlen_.$(OBJEXT) strspn_.$(OBJEXT) \
|
error_.$(OBJEXT) getopt_.$(OBJEXT) getopt1_.$(OBJEXT) malloc_.$(OBJEXT) \
|
||||||
xmalloc_.$(OBJEXT) xstrdup_.$(OBJEXT) : $(ANSI2KNR)
|
memchr_.$(OBJEXT) memrchr_.$(OBJEXT) obstack_.$(OBJEXT) \
|
||||||
|
quote_.$(OBJEXT) quotearg_.$(OBJEXT) realloc_.$(OBJEXT) \
|
||||||
|
stpcpy_.$(OBJEXT) strchr_.$(OBJEXT) strspn_.$(OBJEXT) \
|
||||||
|
xmalloc_.$(OBJEXT) xstrdup_.$(OBJEXT) xstrndup_.$(OBJEXT) : $(ANSI2KNR)
|
||||||
uninstall-info-am:
|
uninstall-info-am:
|
||||||
|
|
||||||
|
ETAGS = etags
|
||||||
|
ETAGSFLAGS =
|
||||||
|
|
||||||
tags: TAGS
|
tags: TAGS
|
||||||
|
|
||||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||||
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
unique=`for i in $$list; do \
|
unique=`for i in $$list; do \
|
||||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
done | \
|
done | \
|
||||||
$(AWK) ' { files[$$0] = 1; } \
|
$(AWK) ' { files[$$0] = 1; } \
|
||||||
END { for (i in files) print i; }'`; \
|
END { for (i in files) print i; }'`; \
|
||||||
mkid -fID $$unique $(LISP)
|
mkid -fID $$unique
|
||||||
|
|
||||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||||
$(TAGS_FILES) $(LISP)
|
$(TAGS_FILES) $(LISP)
|
||||||
tags=; \
|
tags=; \
|
||||||
here=`pwd`; \
|
here=`pwd`; \
|
||||||
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
unique=`for i in $$list; do \
|
unique=`for i in $$list; do \
|
||||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
done | \
|
done | \
|
||||||
$(AWK) ' { files[$$0] = 1; } \
|
$(AWK) ' { files[$$0] = 1; } \
|
||||||
END { for (i in files) print i; }'`; \
|
END { for (i in files) print i; }'`; \
|
||||||
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|
||||||
|| etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
|
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$tags $$unique
|
||||||
|
|
||||||
GTAGS:
|
GTAGS:
|
||||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||||
@@ -295,7 +319,6 @@ GTAGS:
|
|||||||
|
|
||||||
distclean-tags:
|
distclean-tags:
|
||||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
|
||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
top_distdir = ..
|
top_distdir = ..
|
||||||
@@ -303,13 +326,16 @@ distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
|
|||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
if test -f $$file; then d=.; else d=$(srcdir); fi; \
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||||
$(mkinstalldirs) "$(distdir)/$$dir"; \
|
dir="/$$dir"; \
|
||||||
|
$(mkinstalldirs) "$(distdir)$$dir"; \
|
||||||
|
else \
|
||||||
|
dir=''; \
|
||||||
fi; \
|
fi; \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
cp -pR $$d/$$file $(distdir) \
|
cp -pR $$d/$$file $(distdir)$$dir \
|
||||||
|| exit 1; \
|
|| exit 1; \
|
||||||
else \
|
else \
|
||||||
test -f $(distdir)/$$file \
|
test -f $(distdir)/$$file \
|
||||||
@@ -334,6 +360,7 @@ install-am: all-am
|
|||||||
installcheck: installcheck-am
|
installcheck: installcheck-am
|
||||||
install-strip:
|
install-strip:
|
||||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
INSTALL_STRIP_FLAG=-s \
|
||||||
`test -z '$(STRIP)' || \
|
`test -z '$(STRIP)' || \
|
||||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||||
mostlyclean-generic:
|
mostlyclean-generic:
|
||||||
|
|||||||
+66
-66
@@ -22,18 +22,18 @@
|
|||||||
your main control loop, etc. to force garbage collection. */
|
your main control loop, etc. to force garbage collection. */
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
#include <config.h>
|
# include <config.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_STRING_H
|
#if HAVE_STRING_H
|
||||||
#include <string.h>
|
# include <string.h>
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_STDLIB_H
|
#if HAVE_STDLIB_H
|
||||||
#include <stdlib.h>
|
# include <stdlib.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef emacs
|
#ifdef emacs
|
||||||
#include "blockinput.h"
|
# include "blockinput.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* If compiling with GCC 2, this file's not needed. */
|
/* If compiling with GCC 2, this file's not needed. */
|
||||||
@@ -41,41 +41,41 @@
|
|||||||
|
|
||||||
/* If someone has defined alloca as a macro,
|
/* If someone has defined alloca as a macro,
|
||||||
there must be some other way alloca is supposed to work. */
|
there must be some other way alloca is supposed to work. */
|
||||||
#ifndef alloca
|
# ifndef alloca
|
||||||
|
|
||||||
#ifdef emacs
|
# ifdef emacs
|
||||||
#ifdef static
|
# ifdef static
|
||||||
/* actually, only want this if static is defined as ""
|
/* actually, only want this if static is defined as ""
|
||||||
-- this is for usg, in which emacs must undefine static
|
-- this is for usg, in which emacs must undefine static
|
||||||
in order to make unexec workable
|
in order to make unexec workable
|
||||||
*/
|
*/
|
||||||
#ifndef STACK_DIRECTION
|
# ifndef STACK_DIRECTION
|
||||||
you
|
you
|
||||||
lose
|
lose
|
||||||
-- must know STACK_DIRECTION at compile-time
|
-- must know STACK_DIRECTION at compile-time
|
||||||
#endif /* STACK_DIRECTION undefined */
|
# endif /* STACK_DIRECTION undefined */
|
||||||
#endif /* static */
|
# endif /* static */
|
||||||
#endif /* emacs */
|
# endif /* emacs */
|
||||||
|
|
||||||
/* If your stack is a linked list of frames, you have to
|
/* If your stack is a linked list of frames, you have to
|
||||||
provide an "address metric" ADDRESS_FUNCTION macro. */
|
provide an "address metric" ADDRESS_FUNCTION macro. */
|
||||||
|
|
||||||
#if defined (CRAY) && defined (CRAY_STACKSEG_END)
|
# if defined (CRAY) && defined (CRAY_STACKSEG_END)
|
||||||
long i00afunc ();
|
long i00afunc ();
|
||||||
#define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg))
|
# define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg))
|
||||||
#else
|
# else
|
||||||
#define ADDRESS_FUNCTION(arg) &(arg)
|
# define ADDRESS_FUNCTION(arg) &(arg)
|
||||||
#endif
|
# endif
|
||||||
|
|
||||||
#if __STDC__
|
# if __STDC__
|
||||||
typedef void *pointer;
|
typedef void *pointer;
|
||||||
#else
|
# else
|
||||||
typedef char *pointer;
|
typedef char *pointer;
|
||||||
#endif
|
# endif
|
||||||
|
|
||||||
#ifndef NULL
|
# ifndef NULL
|
||||||
#define NULL 0
|
# define NULL 0
|
||||||
#endif
|
# endif
|
||||||
|
|
||||||
/* Different portions of Emacs need to call different versions of
|
/* Different portions of Emacs need to call different versions of
|
||||||
malloc. The Emacs executable needs alloca to call xmalloc, because
|
malloc. The Emacs executable needs alloca to call xmalloc, because
|
||||||
@@ -83,13 +83,14 @@ typedef char *pointer;
|
|||||||
hand, the utilities in lib-src need alloca to call malloc; some of
|
hand, the utilities in lib-src need alloca to call malloc; some of
|
||||||
them are very simple, and don't have an xmalloc routine.
|
them are very simple, and don't have an xmalloc routine.
|
||||||
|
|
||||||
Non-Emacs programs expect this to call use xmalloc.
|
Non-Emacs programs expect this to call xmalloc.
|
||||||
|
|
||||||
Callers below should use malloc. */
|
Callers below should use malloc. */
|
||||||
|
|
||||||
#ifndef emacs
|
# ifndef emacs
|
||||||
#define malloc xmalloc
|
# undef malloc
|
||||||
#endif
|
# define malloc xmalloc
|
||||||
|
# endif
|
||||||
extern pointer malloc ();
|
extern pointer malloc ();
|
||||||
|
|
||||||
/* Define STACK_DIRECTION if you know the direction of stack
|
/* Define STACK_DIRECTION if you know the direction of stack
|
||||||
@@ -100,18 +101,18 @@ extern pointer malloc ();
|
|||||||
STACK_DIRECTION < 0 => grows toward lower addresses
|
STACK_DIRECTION < 0 => grows toward lower addresses
|
||||||
STACK_DIRECTION = 0 => direction of growth unknown */
|
STACK_DIRECTION = 0 => direction of growth unknown */
|
||||||
|
|
||||||
#ifndef STACK_DIRECTION
|
# ifndef STACK_DIRECTION
|
||||||
#define STACK_DIRECTION 0 /* Direction unknown. */
|
# define STACK_DIRECTION 0 /* Direction unknown. */
|
||||||
#endif
|
# endif
|
||||||
|
|
||||||
#if STACK_DIRECTION != 0
|
# if STACK_DIRECTION != 0
|
||||||
|
|
||||||
#define STACK_DIR STACK_DIRECTION /* Known at compile-time. */
|
# define STACK_DIR STACK_DIRECTION /* Known at compile-time. */
|
||||||
|
|
||||||
#else /* STACK_DIRECTION == 0; need run-time code. */
|
# else /* STACK_DIRECTION == 0; need run-time code. */
|
||||||
|
|
||||||
static int stack_dir; /* 1 or -1 once known. */
|
static int stack_dir; /* 1 or -1 once known. */
|
||||||
#define STACK_DIR stack_dir
|
# define STACK_DIR stack_dir
|
||||||
|
|
||||||
static void
|
static void
|
||||||
find_stack_direction ()
|
find_stack_direction ()
|
||||||
@@ -135,7 +136,7 @@ find_stack_direction ()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* STACK_DIRECTION == 0 */
|
# endif /* STACK_DIRECTION == 0 */
|
||||||
|
|
||||||
/* An "alloca header" is used to:
|
/* An "alloca header" is used to:
|
||||||
(a) chain together all alloca'ed blocks;
|
(a) chain together all alloca'ed blocks;
|
||||||
@@ -144,9 +145,9 @@ find_stack_direction ()
|
|||||||
It is very important that sizeof(header) agree with malloc
|
It is very important that sizeof(header) agree with malloc
|
||||||
alignment chunk size. The following default should work okay. */
|
alignment chunk size. The following default should work okay. */
|
||||||
|
|
||||||
#ifndef ALIGN_SIZE
|
# ifndef ALIGN_SIZE
|
||||||
#define ALIGN_SIZE sizeof(double)
|
# define ALIGN_SIZE sizeof(double)
|
||||||
#endif
|
# endif
|
||||||
|
|
||||||
typedef union hdr
|
typedef union hdr
|
||||||
{
|
{
|
||||||
@@ -168,16 +169,15 @@ static header *last_alloca_header = NULL; /* -> last alloca header. */
|
|||||||
implementations of C, for example under Gould's UTX/32. */
|
implementations of C, for example under Gould's UTX/32. */
|
||||||
|
|
||||||
pointer
|
pointer
|
||||||
alloca (size)
|
alloca (size_t size)
|
||||||
unsigned size;
|
|
||||||
{
|
{
|
||||||
auto char probe; /* Probes stack depth: */
|
auto char probe; /* Probes stack depth: */
|
||||||
register char *depth = ADDRESS_FUNCTION (probe);
|
register char *depth = ADDRESS_FUNCTION (probe);
|
||||||
|
|
||||||
#if STACK_DIRECTION == 0
|
# if STACK_DIRECTION == 0
|
||||||
if (STACK_DIR == 0) /* Unknown growth direction. */
|
if (STACK_DIR == 0) /* Unknown growth direction. */
|
||||||
find_stack_direction ();
|
find_stack_direction ();
|
||||||
#endif
|
# endif
|
||||||
|
|
||||||
/* Reclaim garbage, defined as all alloca'd storage that
|
/* Reclaim garbage, defined as all alloca'd storage that
|
||||||
was allocated from deeper in the stack than currently. */
|
was allocated from deeper in the stack than currently. */
|
||||||
@@ -185,9 +185,9 @@ alloca (size)
|
|||||||
{
|
{
|
||||||
register header *hp; /* Traverses linked list. */
|
register header *hp; /* Traverses linked list. */
|
||||||
|
|
||||||
#ifdef emacs
|
# ifdef emacs
|
||||||
BLOCK_INPUT;
|
BLOCK_INPUT;
|
||||||
#endif
|
# endif
|
||||||
|
|
||||||
for (hp = last_alloca_header; hp != NULL;)
|
for (hp = last_alloca_header; hp != NULL;)
|
||||||
if ((STACK_DIR > 0 && hp->h.deep > depth)
|
if ((STACK_DIR > 0 && hp->h.deep > depth)
|
||||||
@@ -204,9 +204,9 @@ alloca (size)
|
|||||||
|
|
||||||
last_alloca_header = hp; /* -> last valid storage. */
|
last_alloca_header = hp; /* -> last valid storage. */
|
||||||
|
|
||||||
#ifdef emacs
|
# ifdef emacs
|
||||||
UNBLOCK_INPUT;
|
UNBLOCK_INPUT;
|
||||||
#endif
|
# endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (size == 0)
|
if (size == 0)
|
||||||
@@ -232,15 +232,15 @@ alloca (size)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined (CRAY) && defined (CRAY_STACKSEG_END)
|
# if defined (CRAY) && defined (CRAY_STACKSEG_END)
|
||||||
|
|
||||||
#ifdef DEBUG_I00AFUNC
|
# ifdef DEBUG_I00AFUNC
|
||||||
#include <stdio.h>
|
# include <stdio.h>
|
||||||
#endif
|
# endif
|
||||||
|
|
||||||
#ifndef CRAY_STACK
|
# ifndef CRAY_STACK
|
||||||
#define CRAY_STACK
|
# define CRAY_STACK
|
||||||
#ifndef CRAY2
|
# ifndef CRAY2
|
||||||
/* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */
|
/* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */
|
||||||
struct stack_control_header
|
struct stack_control_header
|
||||||
{
|
{
|
||||||
@@ -292,7 +292,7 @@ struct stack_segment_linkage
|
|||||||
long sss7;
|
long sss7;
|
||||||
};
|
};
|
||||||
|
|
||||||
#else /* CRAY2 */
|
# else /* CRAY2 */
|
||||||
/* The following structure defines the vector of words
|
/* The following structure defines the vector of words
|
||||||
returned by the STKSTAT library routine. */
|
returned by the STKSTAT library routine. */
|
||||||
struct stk_stat
|
struct stk_stat
|
||||||
@@ -345,10 +345,10 @@ struct stk_trailer
|
|||||||
long unknown14;
|
long unknown14;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* CRAY2 */
|
# endif /* CRAY2 */
|
||||||
#endif /* not CRAY_STACK */
|
# endif /* not CRAY_STACK */
|
||||||
|
|
||||||
#ifdef CRAY2
|
# ifdef CRAY2
|
||||||
/* Determine a "stack measure" for an arbitrary ADDRESS.
|
/* Determine a "stack measure" for an arbitrary ADDRESS.
|
||||||
I doubt that "lint" will like this much. */
|
I doubt that "lint" will like this much. */
|
||||||
|
|
||||||
@@ -419,7 +419,7 @@ i00afunc (long *address)
|
|||||||
return (result);
|
return (result);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else /* not CRAY2 */
|
# else /* not CRAY2 */
|
||||||
/* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP.
|
/* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP.
|
||||||
Determine the number of the cell within the stack,
|
Determine the number of the cell within the stack,
|
||||||
given the address of the cell. The purpose of this
|
given the address of the cell. The purpose of this
|
||||||
@@ -464,9 +464,9 @@ i00afunc (long address)
|
|||||||
|
|
||||||
while (!(this_segment <= address && address <= stkl))
|
while (!(this_segment <= address && address <= stkl))
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_I00AFUNC
|
# ifdef DEBUG_I00AFUNC
|
||||||
fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl);
|
fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl);
|
||||||
#endif
|
# endif
|
||||||
if (pseg == 0)
|
if (pseg == 0)
|
||||||
break;
|
break;
|
||||||
stkl = stkl - pseg;
|
stkl = stkl - pseg;
|
||||||
@@ -485,9 +485,9 @@ i00afunc (long address)
|
|||||||
|
|
||||||
while (pseg != 0)
|
while (pseg != 0)
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_I00AFUNC
|
# ifdef DEBUG_I00AFUNC
|
||||||
fprintf (stderr, "%011o %011o\n", pseg, size);
|
fprintf (stderr, "%011o %011o\n", pseg, size);
|
||||||
#endif
|
# endif
|
||||||
stkl = stkl - pseg;
|
stkl = stkl - pseg;
|
||||||
ssptr = (struct stack_segment_linkage *) stkl;
|
ssptr = (struct stack_segment_linkage *) stkl;
|
||||||
size = ssptr->sssize;
|
size = ssptr->sssize;
|
||||||
@@ -497,8 +497,8 @@ i00afunc (long address)
|
|||||||
return (result);
|
return (result);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* not CRAY2 */
|
# endif /* not CRAY2 */
|
||||||
#endif /* CRAY */
|
# endif /* CRAY */
|
||||||
|
|
||||||
#endif /* no alloca */
|
# endif /* no alloca */
|
||||||
#endif /* not GCC version 2 */
|
#endif /* not GCC version 2 */
|
||||||
|
|||||||
@@ -0,0 +1,71 @@
|
|||||||
|
/* basename.c -- return the last element in a path
|
||||||
|
Copyright (C) 1990, 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
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software Foundation,
|
||||||
|
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
|
#if HAVE_CONFIG_H
|
||||||
|
# include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
|
#ifndef FILESYSTEM_PREFIX_LEN
|
||||||
|
# define FILESYSTEM_PREFIX_LEN(Filename) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PARAMS
|
||||||
|
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
|
||||||
|
# define PARAMS(Args) Args
|
||||||
|
# else
|
||||||
|
# define PARAMS(Args) ()
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ISSLASH
|
||||||
|
# define ISSLASH(C) ((C) == '/')
|
||||||
|
#endif
|
||||||
|
|
||||||
|
char *base_name PARAMS ((char const *name));
|
||||||
|
|
||||||
|
/* In general, we can't use the builtin `basename' function if available,
|
||||||
|
since it has different meanings in different environments.
|
||||||
|
In some environments the builtin `basename' modifies its argument.
|
||||||
|
If NAME is all slashes, be sure to return `/'. */
|
||||||
|
|
||||||
|
char *
|
||||||
|
base_name (char const *name)
|
||||||
|
{
|
||||||
|
char const *base = name += FILESYSTEM_PREFIX_LEN (name);
|
||||||
|
int all_slashes = 1;
|
||||||
|
char const *p;
|
||||||
|
|
||||||
|
for (p = name; *p; p++)
|
||||||
|
{
|
||||||
|
if (ISSLASH (*p))
|
||||||
|
base = p + 1;
|
||||||
|
else
|
||||||
|
all_slashes = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If NAME is all slashes, arrange to return `/'. */
|
||||||
|
if (*base == '\0' && ISSLASH (*name) && all_slashes)
|
||||||
|
--base;
|
||||||
|
|
||||||
|
/* Make sure the last byte is not a slash. */
|
||||||
|
assert (all_slashes || !ISSLASH (*(p - 1)));
|
||||||
|
|
||||||
|
return (char *) base;
|
||||||
|
}
|
||||||
+189
@@ -0,0 +1,189 @@
|
|||||||
|
/* dirname.c -- return all but the last element in a path
|
||||||
|
Copyright (C) 1990, 1998, 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. */
|
||||||
|
|
||||||
|
#if HAVE_CONFIG_H
|
||||||
|
# include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef STDC_HEADERS
|
||||||
|
# include <stdlib.h>
|
||||||
|
#else
|
||||||
|
char *malloc ();
|
||||||
|
#endif
|
||||||
|
#if defined STDC_HEADERS || defined HAVE_STRING_H
|
||||||
|
# include <string.h>
|
||||||
|
#else
|
||||||
|
# include <strings.h>
|
||||||
|
# ifndef strrchr
|
||||||
|
# define strrchr rindex
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
|
#ifndef HAVE_DECL_MEMRCHR
|
||||||
|
"this configure-time declaration test was not run"
|
||||||
|
#endif
|
||||||
|
#if !HAVE_DECL_MEMRCHR
|
||||||
|
void *memrchr ();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "dirname.h"
|
||||||
|
|
||||||
|
#ifndef FILESYSTEM_PREFIX_LEN
|
||||||
|
# define FILESYSTEM_PREFIX_LEN(Filename) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ISSLASH
|
||||||
|
# define ISSLASH(C) ((C) == '/')
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BACKSLASH_IS_PATH_SEPARATOR ISSLASH ('\\')
|
||||||
|
|
||||||
|
/* Return the length of `dirname (PATH)' and set *RESULT to point
|
||||||
|
to PATH or to `"."', as appropriate. Works properly even if
|
||||||
|
there are trailing slashes (by effectively ignoring them).
|
||||||
|
WARNING: This function doesn't work for cwd-relative names like
|
||||||
|
`a:foo' that are specified with a drive-letter prefix. That case
|
||||||
|
is handled in the caller. */
|
||||||
|
static size_t
|
||||||
|
dir_name_r (char const *path, char const **result)
|
||||||
|
{
|
||||||
|
char const *slash;
|
||||||
|
size_t length; /* Length of result, not including NUL. */
|
||||||
|
|
||||||
|
slash = strrchr (path, '/');
|
||||||
|
if (BACKSLASH_IS_PATH_SEPARATOR)
|
||||||
|
{
|
||||||
|
char const *b = strrchr (path, '\\');
|
||||||
|
if (b && slash < b)
|
||||||
|
slash = b;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If the last byte of PATH is a slash, decrement SLASH until it's
|
||||||
|
pointing at the leftmost in a sequence of trailing slashes. */
|
||||||
|
if (slash && slash[1] == 0)
|
||||||
|
{
|
||||||
|
while (path < slash && ISSLASH (slash[-1]))
|
||||||
|
{
|
||||||
|
--slash;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (path < slash)
|
||||||
|
{
|
||||||
|
size_t len = slash - path;
|
||||||
|
slash = memrchr (path, '/', len);
|
||||||
|
if (BACKSLASH_IS_PATH_SEPARATOR)
|
||||||
|
{
|
||||||
|
char const *b = memrchr (path, '\\', len);
|
||||||
|
if (b && slash < b)
|
||||||
|
slash = b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (slash == 0)
|
||||||
|
{
|
||||||
|
/* File is in the current directory. */
|
||||||
|
|
||||||
|
length = FILESYSTEM_PREFIX_LEN (path);
|
||||||
|
|
||||||
|
if (length == 0)
|
||||||
|
{
|
||||||
|
path = ".";
|
||||||
|
length = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Remove any trailing slashes from the result. If we have a
|
||||||
|
canonicalized "d:/path", leave alone the root case "d:/". */
|
||||||
|
char const *lim = path + FILESYSTEM_PREFIX_LEN (path);
|
||||||
|
|
||||||
|
while (lim < slash && ISSLASH (*slash))
|
||||||
|
--slash;
|
||||||
|
|
||||||
|
length = slash - path + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
*result = path;
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Return the leading directories part of PATH,
|
||||||
|
allocated with malloc. If out of memory, return 0.
|
||||||
|
Works properly even if there are trailing slashes
|
||||||
|
(by effectively ignoring them). */
|
||||||
|
|
||||||
|
char *
|
||||||
|
dir_name (char const *path)
|
||||||
|
{
|
||||||
|
char const *result;
|
||||||
|
size_t length = dir_name_r (path, &result);
|
||||||
|
int append_dot = (length && length == FILESYSTEM_PREFIX_LEN (newpath));
|
||||||
|
char *newpath = (char *) malloc (length + append_dot + 1);
|
||||||
|
if (newpath == 0)
|
||||||
|
return 0;
|
||||||
|
strncpy (newpath, result, length);
|
||||||
|
/* If PATH is "d:foo", return "d:.", the CWD on drive d: */
|
||||||
|
if (append_dot)
|
||||||
|
newpath[length++] = '.';
|
||||||
|
newpath[length] = 0;
|
||||||
|
return newpath;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef TEST_DIRNAME
|
||||||
|
/*
|
||||||
|
|
||||||
|
Run the test like this (expect no output):
|
||||||
|
gcc -DHAVE_CONFIG_H -DTEST_DIRNAME -I.. -O -Wall memrchr.c dirname.c
|
||||||
|
sed -n '/^BEGIN-DATA$/,/^END-DATA$/p' dirname.c|grep -v DATA|./a.out
|
||||||
|
|
||||||
|
BEGIN-DATA
|
||||||
|
foo//// .
|
||||||
|
bar/foo//// bar
|
||||||
|
foo/ .
|
||||||
|
/ /
|
||||||
|
. .
|
||||||
|
a .
|
||||||
|
END-DATA
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
# define MAX_BUFF_LEN 1024
|
||||||
|
# include <stdio.h>
|
||||||
|
# include <stdlib.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
char buff[MAX_BUFF_LEN + 1];
|
||||||
|
|
||||||
|
buff[MAX_BUFF_LEN] = 0;
|
||||||
|
while (fgets (buff, MAX_BUFF_LEN, stdin) && buff[0])
|
||||||
|
{
|
||||||
|
char path[MAX_BUFF_LEN];
|
||||||
|
char expected_result[MAX_BUFF_LEN];
|
||||||
|
char const *result;
|
||||||
|
sscanf (buff, "%s %s", path, expected_result);
|
||||||
|
result = dir_name (path);
|
||||||
|
if (strcmp (result, expected_result))
|
||||||
|
printf ("%s: got %s, expected %s\n", path, result, expected_result);
|
||||||
|
}
|
||||||
|
exit (0);
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/* Copyright (C) 1998 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software Foundation,
|
||||||
|
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
|
#ifndef DIRNAME_H_
|
||||||
|
# define DIRNAME_H_ 1
|
||||||
|
|
||||||
|
# ifndef PARAMS
|
||||||
|
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
|
||||||
|
# define PARAMS(Args) Args
|
||||||
|
# else
|
||||||
|
# define PARAMS(Args) ()
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
char *
|
||||||
|
dir_name PARAMS ((const char *path));
|
||||||
|
|
||||||
|
#endif /* not DIRNAME_H_ */
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
/* Convenience header for conditional use of GNU <libintl.h>.
|
||||||
|
Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU Library General Public License as published
|
||||||
|
by the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||||
|
USA. */
|
||||||
|
|
||||||
|
#ifndef _LIBGETTEXT_H
|
||||||
|
#define _LIBGETTEXT_H 1
|
||||||
|
|
||||||
|
/* NLS can be disabled through the configure --disable-nls option. */
|
||||||
|
#if ENABLE_NLS
|
||||||
|
|
||||||
|
/* Get declarations of GNU message catalog functions. */
|
||||||
|
# include <libintl.h>
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
/* Disabled NLS.
|
||||||
|
The casts to 'const char *' serve the purpose of producing warnings
|
||||||
|
for invalid uses of the value returned from these functions.
|
||||||
|
On pre-ANSI systems without 'const', the config.h file is supposed to
|
||||||
|
contain "#define const". */
|
||||||
|
# define gettext(Msgid) ((const char *) (Msgid))
|
||||||
|
# define dgettext(Domainname, Msgid) ((const char *) (Msgid))
|
||||||
|
# define dcgettext(Domainname, Msgid, Category) ((const char *) (Msgid))
|
||||||
|
# define ngettext(Msgid1, Msgid2, N) \
|
||||||
|
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
|
||||||
|
# define dngettext(Domainname, Msgid1, Msgid2, N) \
|
||||||
|
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
|
||||||
|
# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
|
||||||
|
((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
|
||||||
|
# define textdomain(Domainname) ((const char *) (Domainname))
|
||||||
|
# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
|
||||||
|
# define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset))
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* A pseudo function call that serves as a marker for the automated
|
||||||
|
extraction of messages, but does not call gettext(). The run-time
|
||||||
|
translation is done at a different place in the code.
|
||||||
|
The argument, String, should be a literal string. Concatenated strings
|
||||||
|
and other string expressions won't work.
|
||||||
|
The macro's expansion is not parenthesized, so that it is suitable as
|
||||||
|
initializer for static 'char[]' or 'const char[]' variables. */
|
||||||
|
#define gettext_noop(String) String
|
||||||
|
|
||||||
|
#endif /* _LIBGETTEXT_H */
|
||||||
+209
@@ -0,0 +1,209 @@
|
|||||||
|
/* memrchr -- find the last occurrence of a byte in a memory block
|
||||||
|
Copyright (C) 1991, 93, 96, 97, 99, 2000 Free Software Foundation, Inc.
|
||||||
|
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
|
||||||
|
with help from Dan Sahlin (dan@sics.se) and
|
||||||
|
commentary by Jim Blandy (jimb@ai.mit.edu);
|
||||||
|
adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu),
|
||||||
|
and implemented by Roland McGrath (roland@ai.mit.edu).
|
||||||
|
|
||||||
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Library General Public License as
|
||||||
|
published by the Free Software Foundation; either version 2 of the
|
||||||
|
License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||||
|
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#undef __ptr_t
|
||||||
|
#if defined (__cplusplus) || (defined (__STDC__) && __STDC__)
|
||||||
|
# define __ptr_t void *
|
||||||
|
#else /* Not C++ or ANSI C. */
|
||||||
|
# define __ptr_t char *
|
||||||
|
#endif /* C++ or ANSI C. */
|
||||||
|
|
||||||
|
#if defined (_LIBC)
|
||||||
|
# include <string.h>
|
||||||
|
# include <memcopy.h>
|
||||||
|
#else
|
||||||
|
# define reg_char char
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined (HAVE_LIMITS_H) || defined (_LIBC)
|
||||||
|
# include <limits.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define LONG_MAX_32_BITS 2147483647
|
||||||
|
|
||||||
|
#ifndef LONG_MAX
|
||||||
|
# define LONG_MAX LONG_MAX_32_BITS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
#undef __memrchr
|
||||||
|
#undef memrchr
|
||||||
|
|
||||||
|
#ifndef weak_alias
|
||||||
|
# define __memrchr memrchr
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Search no more than N bytes of S for C. */
|
||||||
|
__ptr_t
|
||||||
|
__memrchr (s, c_in, n)
|
||||||
|
const __ptr_t s;
|
||||||
|
int c_in;
|
||||||
|
size_t n;
|
||||||
|
{
|
||||||
|
const unsigned char *char_ptr;
|
||||||
|
const unsigned long int *longword_ptr;
|
||||||
|
unsigned long int longword, magic_bits, charmask;
|
||||||
|
unsigned reg_char c;
|
||||||
|
|
||||||
|
c = (unsigned char) c_in;
|
||||||
|
|
||||||
|
/* Handle the last few characters by reading one character at a time.
|
||||||
|
Do this until CHAR_PTR is aligned on a longword boundary. */
|
||||||
|
for (char_ptr = (const unsigned char *) s + n;
|
||||||
|
n > 0 && ((unsigned long int) char_ptr
|
||||||
|
& (sizeof (longword) - 1)) != 0;
|
||||||
|
--n)
|
||||||
|
if (*--char_ptr == c)
|
||||||
|
return (__ptr_t) char_ptr;
|
||||||
|
|
||||||
|
/* All these elucidatory comments refer to 4-byte longwords,
|
||||||
|
but the theory applies equally well to 8-byte longwords. */
|
||||||
|
|
||||||
|
longword_ptr = (unsigned long int *) char_ptr;
|
||||||
|
|
||||||
|
/* Bits 31, 24, 16, and 8 of this number are zero. Call these bits
|
||||||
|
the "holes." Note that there is a hole just to the left of
|
||||||
|
each byte, with an extra at the end:
|
||||||
|
|
||||||
|
bits: 01111110 11111110 11111110 11111111
|
||||||
|
bytes: AAAAAAAA BBBBBBBB CCCCCCCC DDDDDDDD
|
||||||
|
|
||||||
|
The 1-bits make sure that carries propagate to the next 0-bit.
|
||||||
|
The 0-bits provide holes for carries to fall into. */
|
||||||
|
|
||||||
|
if (sizeof (longword) != 4 && sizeof (longword) != 8)
|
||||||
|
abort ();
|
||||||
|
|
||||||
|
#if LONG_MAX <= LONG_MAX_32_BITS
|
||||||
|
magic_bits = 0x7efefeff;
|
||||||
|
#else
|
||||||
|
magic_bits = ((unsigned long int) 0x7efefefe << 32) | 0xfefefeff;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Set up a longword, each of whose bytes is C. */
|
||||||
|
charmask = c | (c << 8);
|
||||||
|
charmask |= charmask << 16;
|
||||||
|
#if LONG_MAX > LONG_MAX_32_BITS
|
||||||
|
charmask |= charmask << 32;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Instead of the traditional loop which tests each character,
|
||||||
|
we will test a longword at a time. The tricky part is testing
|
||||||
|
if *any of the four* bytes in the longword in question are zero. */
|
||||||
|
while (n >= sizeof (longword))
|
||||||
|
{
|
||||||
|
/* We tentatively exit the loop if adding MAGIC_BITS to
|
||||||
|
LONGWORD fails to change any of the hole bits of LONGWORD.
|
||||||
|
|
||||||
|
1) Is this safe? Will it catch all the zero bytes?
|
||||||
|
Suppose there is a byte with all zeros. Any carry bits
|
||||||
|
propagating from its left will fall into the hole at its
|
||||||
|
least significant bit and stop. Since there will be no
|
||||||
|
carry from its most significant bit, the LSB of the
|
||||||
|
byte to the left will be unchanged, and the zero will be
|
||||||
|
detected.
|
||||||
|
|
||||||
|
2) Is this worthwhile? Will it ignore everything except
|
||||||
|
zero bytes? Suppose every byte of LONGWORD has a bit set
|
||||||
|
somewhere. There will be a carry into bit 8. If bit 8
|
||||||
|
is set, this will carry into bit 16. If bit 8 is clear,
|
||||||
|
one of bits 9-15 must be set, so there will be a carry
|
||||||
|
into bit 16. Similarly, there will be a carry into bit
|
||||||
|
24. If one of bits 24-30 is set, there will be a carry
|
||||||
|
into bit 31, so all of the hole bits will be changed.
|
||||||
|
|
||||||
|
The one misfire occurs when bits 24-30 are clear and bit
|
||||||
|
31 is set; in this case, the hole at bit 31 is not
|
||||||
|
changed. If we had access to the processor carry flag,
|
||||||
|
we could close this loophole by putting the fourth hole
|
||||||
|
at bit 32!
|
||||||
|
|
||||||
|
So it ignores everything except 128's, when they're aligned
|
||||||
|
properly.
|
||||||
|
|
||||||
|
3) But wait! Aren't we looking for C, not zero?
|
||||||
|
Good point. So what we do is XOR LONGWORD with a longword,
|
||||||
|
each of whose bytes is C. This turns each byte that is C
|
||||||
|
into a zero. */
|
||||||
|
|
||||||
|
longword = *--longword_ptr ^ charmask;
|
||||||
|
|
||||||
|
/* Add MAGIC_BITS to LONGWORD. */
|
||||||
|
if ((((longword + magic_bits)
|
||||||
|
|
||||||
|
/* Set those bits that were unchanged by the addition. */
|
||||||
|
^ ~longword)
|
||||||
|
|
||||||
|
/* Look at only the hole bits. If any of the hole bits
|
||||||
|
are unchanged, most likely one of the bytes was a
|
||||||
|
zero. */
|
||||||
|
& ~magic_bits) != 0)
|
||||||
|
{
|
||||||
|
/* Which of the bytes was C? If none of them were, it was
|
||||||
|
a misfire; continue the search. */
|
||||||
|
|
||||||
|
const unsigned char *cp = (const unsigned char *) longword_ptr;
|
||||||
|
|
||||||
|
#if LONG_MAX > 2147483647
|
||||||
|
if (cp[7] == c)
|
||||||
|
return (__ptr_t) &cp[7];
|
||||||
|
if (cp[6] == c)
|
||||||
|
return (__ptr_t) &cp[6];
|
||||||
|
if (cp[5] == c)
|
||||||
|
return (__ptr_t) &cp[5];
|
||||||
|
if (cp[4] == c)
|
||||||
|
return (__ptr_t) &cp[4];
|
||||||
|
#endif
|
||||||
|
if (cp[3] == c)
|
||||||
|
return (__ptr_t) &cp[3];
|
||||||
|
if (cp[2] == c)
|
||||||
|
return (__ptr_t) &cp[2];
|
||||||
|
if (cp[1] == c)
|
||||||
|
return (__ptr_t) &cp[1];
|
||||||
|
if (cp[0] == c)
|
||||||
|
return (__ptr_t) cp;
|
||||||
|
}
|
||||||
|
|
||||||
|
n -= sizeof (longword);
|
||||||
|
}
|
||||||
|
|
||||||
|
char_ptr = (const unsigned char *) longword_ptr;
|
||||||
|
|
||||||
|
while (n-- > 0)
|
||||||
|
{
|
||||||
|
if (*--char_ptr == c)
|
||||||
|
return (__ptr_t) char_ptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#ifdef weak_alias
|
||||||
|
weak_alias (__memrchr, memrchr)
|
||||||
|
#endif
|
||||||
+19
-2
@@ -1,3 +1,20 @@
|
|||||||
|
/* quote.c - quote arguments for output
|
||||||
|
Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
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 <[email protected]> */
|
/* Written by Paul Eggert <[email protected]> */
|
||||||
|
|
||||||
#if HAVE_CONFIG_H
|
#if HAVE_CONFIG_H
|
||||||
@@ -8,8 +25,8 @@
|
|||||||
# include <stddef.h> /* For the definition of size_t on windows w/MSVC. */
|
# include <stddef.h> /* For the definition of size_t on windows w/MSVC. */
|
||||||
#endif
|
#endif
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <quotearg.h>
|
#include "quotearg.h"
|
||||||
#include <quote.h>
|
#include "quote.h"
|
||||||
|
|
||||||
/* Return an unambiguous printable representated, allocated in slot N,
|
/* Return an unambiguous printable representated, allocated in slot N,
|
||||||
for NAME, suitable for diagnostics. */
|
for NAME, suitable for diagnostics. */
|
||||||
|
|||||||
+17
-1
@@ -1,4 +1,20 @@
|
|||||||
/* prototypes for quote.c */
|
/* quote.h - prototypes for quote.c
|
||||||
|
Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software Foundation,
|
||||||
|
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
|
|
||||||
#ifndef PARAMS
|
#ifndef PARAMS
|
||||||
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
|
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
|
||||||
|
|||||||
+25
-12
@@ -25,8 +25,8 @@
|
|||||||
# include <stddef.h> /* For the definition of size_t on windows w/MSVC. */
|
# include <stddef.h> /* For the definition of size_t on windows w/MSVC. */
|
||||||
#endif
|
#endif
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <quotearg.h>
|
#include "quotearg.h"
|
||||||
#include <xalloc.h>
|
#include "xalloc.h"
|
||||||
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
@@ -44,9 +44,15 @@
|
|||||||
#ifndef CHAR_BIT
|
#ifndef CHAR_BIT
|
||||||
# define CHAR_BIT 8
|
# define CHAR_BIT 8
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef SIZE_MAX
|
||||||
|
# define SIZE_MAX ((size_t) -1)
|
||||||
|
#endif
|
||||||
#ifndef UCHAR_MAX
|
#ifndef UCHAR_MAX
|
||||||
# define UCHAR_MAX ((unsigned char) -1)
|
# define UCHAR_MAX ((unsigned char) -1)
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef UINT_MAX
|
||||||
|
# define UINT_MAX ((unsigned int) -1)
|
||||||
|
#endif
|
||||||
|
|
||||||
#if HAVE_C_BACKSLASH_A
|
#if HAVE_C_BACKSLASH_A
|
||||||
# define ALERT_CHAR '\a'
|
# define ALERT_CHAR '\a'
|
||||||
@@ -539,6 +545,7 @@ quotearg_n_options (int n, char const *arg,
|
|||||||
one small component of a "memory exhausted" message in slot 0. */
|
one small component of a "memory exhausted" message in slot 0. */
|
||||||
static char slot0[256];
|
static char slot0[256];
|
||||||
static unsigned int nslots = 1;
|
static unsigned int nslots = 1;
|
||||||
|
unsigned int n0 = n;
|
||||||
struct slotvec
|
struct slotvec
|
||||||
{
|
{
|
||||||
size_t size;
|
size_t size;
|
||||||
@@ -547,20 +554,26 @@ quotearg_n_options (int n, char const *arg,
|
|||||||
static struct slotvec slotvec0 = {sizeof slot0, slot0};
|
static struct slotvec slotvec0 = {sizeof slot0, slot0};
|
||||||
static struct slotvec *slotvec = &slotvec0;
|
static struct slotvec *slotvec = &slotvec0;
|
||||||
|
|
||||||
if (nslots <= n)
|
if (n < 0)
|
||||||
|
abort ();
|
||||||
|
|
||||||
|
if (nslots <= n0)
|
||||||
{
|
{
|
||||||
int n1 = n + 1;
|
unsigned int n1 = n0 + 1;
|
||||||
size_t s = n1 * sizeof (struct slotvec);
|
size_t s = n1 * sizeof *slotvec;
|
||||||
if (! (0 < n1 && n1 == s / sizeof (struct slotvec)))
|
|
||||||
abort ();
|
if (SIZE_MAX / UINT_MAX <= sizeof *slotvec
|
||||||
|
&& n1 != s / sizeof *slotvec)
|
||||||
|
xalloc_die ();
|
||||||
|
|
||||||
if (slotvec == &slotvec0)
|
if (slotvec == &slotvec0)
|
||||||
{
|
{
|
||||||
slotvec = (struct slotvec *) xmalloc (sizeof (struct slotvec));
|
slotvec = (struct slotvec *) xmalloc (sizeof *slotvec);
|
||||||
*slotvec = slotvec0;
|
*slotvec = slotvec0;
|
||||||
}
|
}
|
||||||
slotvec = (struct slotvec *) xrealloc (slotvec, s);
|
slotvec = (struct slotvec *) xrealloc (slotvec, s);
|
||||||
memset (slotvec + nslots, 0, (n1 - nslots) * sizeof (struct slotvec));
|
memset (slotvec + nslots, 0, (n1 - nslots) * sizeof *slotvec);
|
||||||
nslots = n;
|
nslots = n1;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -580,7 +593,7 @@ quotearg_n_options (int n, char const *arg,
|
|||||||
}
|
}
|
||||||
|
|
||||||
char *
|
char *
|
||||||
quotearg_n (unsigned int n, char const *arg)
|
quotearg_n (int n, char const *arg)
|
||||||
{
|
{
|
||||||
return quotearg_n_options (n, arg, &default_quoting_options);
|
return quotearg_n_options (n, arg, &default_quoting_options);
|
||||||
}
|
}
|
||||||
@@ -592,7 +605,7 @@ quotearg (char const *arg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
char *
|
char *
|
||||||
quotearg_n_style (unsigned int n, enum quoting_style s, char const *arg)
|
quotearg_n_style (int n, enum quoting_style s, char const *arg)
|
||||||
{
|
{
|
||||||
struct quoting_options o;
|
struct quoting_options o;
|
||||||
o.style = s;
|
o.style = s;
|
||||||
|
|||||||
+2
-3
@@ -89,7 +89,7 @@ size_t quotearg_buffer PARAMS ((char *buffer, size_t buffersize,
|
|||||||
The returned value points to static storage that can be
|
The returned value points to static storage that can be
|
||||||
reused by the next call to this function with the same value of N.
|
reused by the next call to this function with the same value of N.
|
||||||
N must be nonnegative. */
|
N must be nonnegative. */
|
||||||
char *quotearg_n PARAMS ((unsigned int n, char const *arg));
|
char *quotearg_n PARAMS ((int n, char const *arg));
|
||||||
|
|
||||||
/* Equivalent to quotearg_n (0, ARG). */
|
/* Equivalent to quotearg_n (0, ARG). */
|
||||||
char *quotearg PARAMS ((char const *arg));
|
char *quotearg PARAMS ((char const *arg));
|
||||||
@@ -97,8 +97,7 @@ char *quotearg PARAMS ((char const *arg));
|
|||||||
/* Use style S and storage slot N to return a quoted version of the string ARG.
|
/* Use style S and storage slot N to return a quoted version of the string ARG.
|
||||||
This is like quotearg_n (N, ARG), except that it uses S with no other
|
This is like quotearg_n (N, ARG), except that it uses S with no other
|
||||||
options to specify the quoting method. */
|
options to specify the quoting method. */
|
||||||
char *quotearg_n_style PARAMS ((unsigned int n, enum quoting_style s,
|
char *quotearg_n_style PARAMS ((int n, enum quoting_style s, char const *arg));
|
||||||
char const *arg));
|
|
||||||
|
|
||||||
/* Equivalent to quotearg_n_style (0, S, ARG). */
|
/* Equivalent to quotearg_n_style (0, S, ARG). */
|
||||||
char *quotearg_style PARAMS ((enum quoting_style s, char const *arg));
|
char *quotearg_style PARAMS ((enum quoting_style s, char const *arg));
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
/* Copyright (C) 2001 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Library 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
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with this program; see the file COPYING.LIB. If not,
|
||||||
|
write to the Free Software Foundation, Inc., 59 Temple Place -
|
||||||
|
Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
|
#if HAVE_CONFIG_H
|
||||||
|
# include <config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if HAVE_STRING_H
|
||||||
|
# include <string.h>
|
||||||
|
#else
|
||||||
|
# include <strings.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
char *
|
||||||
|
strchr (const char *s, int c)
|
||||||
|
{
|
||||||
|
return index (s, c);
|
||||||
|
}
|
||||||
+2
-10
@@ -1,5 +1,5 @@
|
|||||||
/* xstrdup.c -- copy a string with out of memory checking
|
/* xstrdup.c -- copy a string with out of memory checking
|
||||||
Copyright (C) 1990, 1996, 1998 Free Software Foundation, Inc.
|
Copyright (C) 1990, 1996, 1998, 2001 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -19,14 +19,6 @@
|
|||||||
# include <config.h>
|
# include <config.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef PARAMS
|
|
||||||
# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
|
|
||||||
# define PARAMS(Args) Args
|
|
||||||
# else
|
|
||||||
# define PARAMS(Args) ()
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if STDC_HEADERS || HAVE_STRING_H
|
#if STDC_HEADERS || HAVE_STRING_H
|
||||||
# include <string.h>
|
# include <string.h>
|
||||||
#else
|
#else
|
||||||
@@ -35,7 +27,7 @@
|
|||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
char *xmalloc PARAMS ((size_t n));
|
#include "xalloc.h"
|
||||||
|
|
||||||
/* Return a newly allocated copy of STRING. */
|
/* Return a newly allocated copy of STRING. */
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
/* Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
|
/* Copyright (C) 2001 Free Software Foundation, Inc.
|
||||||
|
|
||||||
NOTE: The canonical source of this file is maintained with the GNU C Library.
|
|
||||||
Bugs can be reported to bug-glibc@prep.ai.mit.edu.
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it
|
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
|
under the terms of the GNU General Public License as published by the
|
||||||
@@ -17,20 +14,20 @@
|
|||||||
along with this program; if not, write to the Free Software Foundation,
|
along with this program; if not, write to the Free Software Foundation,
|
||||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#if HAVE_CONFIG_H
|
||||||
# include "config.h"
|
# include <config.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdio.h>
|
#if STDC_HEADERS || HAVE_STRING_H
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#if defined _LIBC || defined STDC_HEADERS
|
|
||||||
# include <stdlib.h>
|
|
||||||
# include <string.h>
|
# include <string.h>
|
||||||
#else
|
#else
|
||||||
char *malloc ();
|
# include <strings.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
#include "xalloc.h"
|
||||||
|
|
||||||
#ifndef HAVE_DECL_STRNLEN
|
#ifndef HAVE_DECL_STRNLEN
|
||||||
"this configure-time declaration test was not run"
|
"this configure-time declaration test was not run"
|
||||||
#endif
|
#endif
|
||||||
@@ -38,18 +35,13 @@ char *malloc ();
|
|||||||
size_t strnlen ();
|
size_t strnlen ();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#undef __strndup
|
char *xstrndup (const char *s, size_t n);
|
||||||
#undef strndup
|
|
||||||
|
|
||||||
#ifndef weak_alias
|
|
||||||
# define __strndup strndup
|
|
||||||
#endif
|
|
||||||
|
|
||||||
char *
|
char *
|
||||||
__strndup (const char *s, size_t n)
|
xstrndup (const char *s, size_t n)
|
||||||
{
|
{
|
||||||
size_t len = strnlen (s, n);
|
size_t len = strnlen (s, n);
|
||||||
char *new = malloc (len + 1);
|
char *new = xmalloc (len + 1);
|
||||||
|
|
||||||
if (new == NULL)
|
if (new == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -57,6 +49,3 @@ __strndup (const char *s, size_t n)
|
|||||||
new[len] = '\0';
|
new[len] = '\0';
|
||||||
return (char *) memcpy (new, s, len);
|
return (char *) memcpy (new, s, len);
|
||||||
}
|
}
|
||||||
#ifdef weak_alias
|
|
||||||
weak_alias (__strndup, strndup)
|
|
||||||
#endif
|
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
## Process this file with automake to produce Makefile.in -*-Makefile-*-
|
## Process this file with automake to produce Makefile.in -*-Makefile-*-
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = lib-ld.m4 lib-link.m4 lib-prefix.m4 \
|
||||||
c-bs-a.m4 \
|
c-bs-a.m4 \
|
||||||
codeset.m4 \
|
codeset.m4 \
|
||||||
dmalloc.m4 \
|
dmalloc.m4 \
|
||||||
|
|||||||
+21
-15
@@ -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@
|
# @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.
|
# Free Software Foundation, Inc.
|
||||||
# This Makefile.in is free software; the Free Software Foundation
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
@@ -13,7 +13,6 @@
|
|||||||
# PARTICULAR PURPOSE.
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
@SET_MAKE@
|
@SET_MAKE@
|
||||||
|
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
|
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
@@ -48,6 +47,8 @@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
|||||||
INSTALL = @INSTALL@
|
INSTALL = @INSTALL@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
INSTALL_HEADER = $(INSTALL_DATA)
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
transform = @program_transform_name@
|
transform = @program_transform_name@
|
||||||
@@ -67,7 +68,6 @@ AMTAR = @AMTAR@
|
|||||||
AUTOM4TE = @AUTOM4TE@
|
AUTOM4TE = @AUTOM4TE@
|
||||||
AWK = @AWK@
|
AWK = @AWK@
|
||||||
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
||||||
CATALOGS = @CATALOGS@
|
|
||||||
CATOBJEXT = @CATOBJEXT@
|
CATOBJEXT = @CATOBJEXT@
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CPP = @CPP@
|
CPP = @CPP@
|
||||||
@@ -76,32 +76,35 @@ DEPDIR = @DEPDIR@
|
|||||||
GCC = @GCC@
|
GCC = @GCC@
|
||||||
GENCAT = @GENCAT@
|
GENCAT = @GENCAT@
|
||||||
GLIBC21 = @GLIBC21@
|
GLIBC21 = @GLIBC21@
|
||||||
GMOFILES = @GMOFILES@
|
|
||||||
GMSGFMT = @GMSGFMT@
|
GMSGFMT = @GMSGFMT@
|
||||||
|
HAVE_LIB = @HAVE_LIB@
|
||||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
INSTOBJEXT = @INSTOBJEXT@
|
INSTOBJEXT = @INSTOBJEXT@
|
||||||
INTLBISON = @INTLBISON@
|
INTLBISON = @INTLBISON@
|
||||||
INTLLIBS = @INTLLIBS@
|
INTLLIBS = @INTLLIBS@
|
||||||
INTLOBJS = @INTLOBJS@
|
INTLOBJS = @INTLOBJS@
|
||||||
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
||||||
|
LIB = @LIB@
|
||||||
LIBICONV = @LIBICONV@
|
LIBICONV = @LIBICONV@
|
||||||
LIBOBJS = @LIBOBJS@
|
LIBINTL = @LIBINTL@
|
||||||
|
LTLIB = @LTLIB@
|
||||||
|
LTLIBICONV = @LTLIBICONV@
|
||||||
|
LTLIBINTL = @LTLIBINTL@
|
||||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||||
MSGFMT = @MSGFMT@
|
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
POFILES = @POFILES@
|
|
||||||
POSUB = @POSUB@
|
POSUB = @POSUB@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
|
STRIP = @STRIP@
|
||||||
U = @U@
|
U = @U@
|
||||||
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
|
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
|
||||||
USE_NLS = @USE_NLS@
|
USE_NLS = @USE_NLS@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
WARNING_CFLAGS = @WARNING_CFLAGS@
|
WARNING_CFLAGS = @WARNING_CFLAGS@
|
||||||
|
WERROR_CFLAGS = @WERROR_CFLAGS@
|
||||||
am__include = @am__include@
|
am__include = @am__include@
|
||||||
am__quote = @am__quote@
|
am__quote = @am__quote@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
|
EXTRA_DIST = lib-ld.m4 lib-link.m4 lib-prefix.m4 \
|
||||||
EXTRA_DIST = \
|
|
||||||
c-bs-a.m4 \
|
c-bs-a.m4 \
|
||||||
codeset.m4 \
|
codeset.m4 \
|
||||||
dmalloc.m4 \
|
dmalloc.m4 \
|
||||||
@@ -133,12 +136,11 @@ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
|||||||
cd $(top_srcdir) && \
|
cd $(top_srcdir) && \
|
||||||
$(AUTOMAKE) --gnu m4/Makefile
|
$(AUTOMAKE) --gnu m4/Makefile
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
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:
|
uninstall-info-am:
|
||||||
tags: TAGS
|
tags: TAGS
|
||||||
TAGS:
|
TAGS:
|
||||||
|
|
||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
top_distdir = ..
|
top_distdir = ..
|
||||||
@@ -146,13 +148,16 @@ distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
|
|||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
if test -f $$file; then d=.; else d=$(srcdir); fi; \
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||||
$(mkinstalldirs) "$(distdir)/$$dir"; \
|
dir="/$$dir"; \
|
||||||
|
$(mkinstalldirs) "$(distdir)$$dir"; \
|
||||||
|
else \
|
||||||
|
dir=''; \
|
||||||
fi; \
|
fi; \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
cp -pR $$d/$$file $(distdir) \
|
cp -pR $$d/$$file $(distdir)$$dir \
|
||||||
|| exit 1; \
|
|| exit 1; \
|
||||||
else \
|
else \
|
||||||
test -f $(distdir)/$$file \
|
test -f $(distdir)/$$file \
|
||||||
@@ -177,6 +182,7 @@ install-am: all-am
|
|||||||
installcheck: installcheck-am
|
installcheck: installcheck-am
|
||||||
install-strip:
|
install-strip:
|
||||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
INSTALL_STRIP_FLAG=-s \
|
||||||
`test -z '$(STRIP)' || \
|
`test -z '$(STRIP)' || \
|
||||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||||
mostlyclean-generic:
|
mostlyclean-generic:
|
||||||
|
|||||||
+7
-1
@@ -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.
|
dnl From Bruno Haible.
|
||||||
|
|
||||||
|
|||||||
+446
-275
@@ -1,27 +1,40 @@
|
|||||||
# Macro to add for using GNU gettext.
|
# gettext.m4 serial 13 (gettext-0.11.1)
|
||||||
# Ulrich Drepper <[email protected]>, 1995.
|
dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
|
||||||
#
|
dnl This file is free software, distributed under the terms of the GNU
|
||||||
# This file can be copied and used freely without restrictions. It can
|
dnl General Public License. As a special exception to the GNU General
|
||||||
# be used in projects which are not available under the GNU General Public
|
dnl Public License, this file may be distributed as part of a program
|
||||||
# License or the GNU Library General Public License but which still want
|
dnl that contains a configuration script generated by Autoconf, under
|
||||||
# to provide support for the GNU gettext functionality.
|
dnl the same distribution terms as the rest of that program.
|
||||||
# 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 This file can can be used in projects which are not available under
|
||||||
# gettext package package is covered by the GNU General Public License.
|
dnl the GNU General Public License or the GNU Library General Public
|
||||||
# They are *not* in the public domain.
|
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 <[email protected]>, 1995-2000.
|
||||||
|
dnl Bruno Haible <[email protected]>, 2000-2002.
|
||||||
|
|
||||||
dnl Usage: AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR]).
|
dnl Macro to add for using GNU gettext.
|
||||||
dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library
|
|
||||||
|
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 $(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 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 $(top_builddir)/intl/libintl.a will be created.
|
||||||
dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
|
dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
|
||||||
dnl implementations (in libc or libintl) without the ngettext() function
|
dnl implementations (in libc or libintl) without the ngettext() function
|
||||||
dnl will be ignored.
|
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 the value `$(top_builddir)/intl/' is used.
|
||||||
dnl
|
dnl
|
||||||
dnl The result of the configuration is one of three cases:
|
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 3) No internationalization, always use English msgid.
|
||||||
dnl Catalog format: none
|
dnl Catalog format: none
|
||||||
dnl Catalog extension: 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 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 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 but we keep it in order not to force irrelevant filename changes on the
|
||||||
dnl maintainers.
|
dnl maintainers.
|
||||||
dnl
|
dnl
|
||||||
AC_DEFUN([AM_WITH_NLS],
|
AC_DEFUN([AM_GNU_GETTEXT],
|
||||||
[AC_MSG_CHECKING([whether NLS is requested])
|
[
|
||||||
dnl Default is enabled NLS
|
dnl Argument checking.
|
||||||
AC_ARG_ENABLE(nls,
|
ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
|
||||||
[ --disable-nls do not use Native Language Support],
|
[errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
|
||||||
USE_NLS=$enableval, USE_NLS=yes)
|
])])])])])
|
||||||
AC_MSG_RESULT($USE_NLS)
|
ifelse([$2], [], , [ifelse([$2], [need-ngettext], ,
|
||||||
AC_SUBST(USE_NLS)
|
[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
|
BUILD_INCLUDED_LIBINTL=no
|
||||||
USE_INCLUDED_LIBINTL=no
|
USE_INCLUDED_LIBINTL=no
|
||||||
INTLLIBS=
|
])
|
||||||
|
LIBINTL=
|
||||||
|
LTLIBINTL=
|
||||||
|
POSUB=
|
||||||
|
|
||||||
dnl If we use NLS figure out what method
|
dnl If we use NLS figure out what method
|
||||||
if test "$USE_NLS" = "yes"; then
|
if test "$USE_NLS" = "yes"; then
|
||||||
AC_DEFINE(ENABLE_NLS, 1,
|
gt_use_preinstalled_gnugettext=no
|
||||||
[Define to 1 if translation of program messages to the user's native language
|
ifelse(gt_included_intl, yes, [
|
||||||
is requested.])
|
|
||||||
AC_MSG_CHECKING([whether included gettext is requested])
|
AC_MSG_CHECKING([whether included gettext is requested])
|
||||||
AC_ARG_WITH(included-gettext,
|
AC_ARG_WITH(included-gettext,
|
||||||
[ --with-included-gettext use the GNU gettext library included here],
|
[ --with-included-gettext use the GNU gettext library included here],
|
||||||
@@ -67,214 +104,158 @@ AC_DEFUN([AM_WITH_NLS],
|
|||||||
|
|
||||||
nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
|
nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
|
||||||
if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
|
if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
|
||||||
|
])
|
||||||
dnl User does not insist on using GNU NLS library. Figure out what
|
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 use. If GNU gettext is available we use this. Else we have
|
||||||
dnl to fall back to GNU NLS library.
|
dnl to fall back to GNU NLS library.
|
||||||
CATOBJEXT=NONE
|
|
||||||
|
|
||||||
dnl Add a version number to the cache macros.
|
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_api_version], ifelse([$2], [need-ngettext], 2, 1))
|
||||||
define(gt_cv_func_gnugettext_libintl, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libintl])
|
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_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
|
[AC_TRY_LINK([#include <libintl.h>
|
||||||
[AC_TRY_LINK([#include <libintl.h>
|
extern int _nl_msg_cat_cntr;
|
||||||
extern int _nl_msg_cat_cntr;],
|
extern int *_nl_domain_bindings;],
|
||||||
[bindtextdomain ("", "");
|
[bindtextdomain ("", "");
|
||||||
return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
|
return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
|
||||||
gt_cv_func_gnugettext_libc=yes,
|
gt_cv_func_gnugettext_libc=yes,
|
||||||
gt_cv_func_gnugettext_libc=no)])
|
gt_cv_func_gnugettext_libc=no)])
|
||||||
|
|
||||||
if test "$gt_cv_func_gnugettext_libc" != "yes"; then
|
if test "$gt_cv_func_gnugettext_libc" != "yes"; then
|
||||||
AC_CACHE_CHECK([for GNU gettext in libintl],
|
dnl Sometimes libintl requires libiconv, so first search for libiconv.
|
||||||
gt_cv_func_gnugettext_libintl,
|
ifelse(gt_included_intl, yes, , [
|
||||||
[gt_save_LIBS="$LIBS"
|
AM_ICONV_LINK
|
||||||
LIBS="$LIBS -lintl $LIBICONV"
|
])
|
||||||
AC_TRY_LINK([#include <libintl.h>
|
dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
|
||||||
extern int _nl_msg_cat_cntr;],
|
dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
|
||||||
[bindtextdomain ("", "");
|
dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
|
||||||
return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
|
dnl even if libiconv doesn't exist.
|
||||||
gt_cv_func_gnugettext_libintl=yes,
|
AC_LIB_LINKFLAGS_BODY([intl])
|
||||||
gt_cv_func_gnugettext_libintl=no)
|
AC_CACHE_CHECK([for GNU gettext in libintl],
|
||||||
LIBS="$gt_save_LIBS"])
|
gt_cv_func_gnugettext_libintl,
|
||||||
fi
|
[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;
|
||||||
|
extern int *_nl_domain_bindings;
|
||||||
|
extern
|
||||||
|
#ifdef __cplusplus
|
||||||
|
"C"
|
||||||
|
#endif
|
||||||
|
const char *_nl_expand_alias ();],
|
||||||
|
[bindtextdomain ("", "");
|
||||||
|
return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings + *_nl_expand_alias (0)],
|
||||||
|
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;
|
||||||
|
extern int *_nl_domain_bindings;
|
||||||
|
extern
|
||||||
|
#ifdef __cplusplus
|
||||||
|
"C"
|
||||||
|
#endif
|
||||||
|
const char *_nl_expand_alias ();],
|
||||||
|
[bindtextdomain ("", "");
|
||||||
|
return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings + *_nl_expand_alias (0)],
|
||||||
|
[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 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 use it. But if this macro is used in GNU gettext, and GNU
|
||||||
dnl gettext is already preinstalled in libintl, we update this
|
dnl gettext is already preinstalled in libintl, we update this
|
||||||
dnl libintl. (Cf. the install rule in intl/Makefile.in.)
|
dnl libintl. (Cf. the install rule in intl/Makefile.in.)
|
||||||
if test "$gt_cv_func_gnugettext_libc" = "yes" \
|
if test "$gt_cv_func_gnugettext_libc" = "yes" \
|
||||||
|| { test "$gt_cv_func_gnugettext_libintl" = "yes" \
|
|| { test "$gt_cv_func_gnugettext_libintl" = "yes" \
|
||||||
&& test "$PACKAGE" != gettext; }; then
|
&& test "$PACKAGE" != gettext; }; then
|
||||||
AC_DEFINE(HAVE_GETTEXT, 1,
|
gt_use_preinstalled_gnugettext=yes
|
||||||
[Define if the GNU gettext() function is already present or preinstalled.])
|
else
|
||||||
|
dnl Reset the values set by searching for libintl.
|
||||||
|
LIBINTL=
|
||||||
|
LTLIBINTL=
|
||||||
|
INCINTL=
|
||||||
|
fi
|
||||||
|
|
||||||
if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
|
ifelse(gt_included_intl, yes, [
|
||||||
dnl If iconv() is in a separate libiconv library, then anyone
|
if test "$gt_use_preinstalled_gnugettext" != "yes"; then
|
||||||
dnl linking with libintl{.a,.so} also needs to link with
|
dnl GNU gettext is not found in the C library.
|
||||||
dnl libiconv.
|
dnl Fall back on included GNU gettext library.
|
||||||
INTLLIBS="-lintl $LIBICONV"
|
nls_cv_use_gnu_gettext=yes
|
||||||
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
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$nls_cv_use_gnu_gettext" = "yes"; then
|
if test "$nls_cv_use_gnu_gettext" = "yes"; then
|
||||||
dnl Mark actions used to generate GNU NLS library.
|
dnl Mark actions used to generate GNU NLS library.
|
||||||
INTLOBJS="\$(GETTOBJS)"
|
INTLOBJS="\$(GETTOBJS)"
|
||||||
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
|
BUILD_INCLUDED_LIBINTL=yes
|
||||||
[$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
|
USE_INCLUDED_LIBINTL=yes
|
||||||
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
|
LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
|
||||||
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
|
LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
|
||||||
[$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
|
LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
|
||||||
AC_SUBST(MSGFMT)
|
fi
|
||||||
BUILD_INCLUDED_LIBINTL=yes
|
|
||||||
USE_INCLUDED_LIBINTL=yes
|
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
|
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
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
|
if test "$gt_use_preinstalled_gnugettext" = "yes" \
|
||||||
dnl Test whether we really found GNU msgfmt.
|
|| test "$nls_cv_use_gnu_gettext" = "yes"; then
|
||||||
if test "$GMSGFMT" != ":"; then
|
AC_DEFINE(ENABLE_NLS, 1,
|
||||||
dnl If it is no GNU msgfmt we define it as : so that the
|
[Define to 1 if translation of program messages to the user's native language
|
||||||
dnl Makefiles still can work.
|
is requested.])
|
||||||
if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then
|
else
|
||||||
: ;
|
USE_NLS=no
|
||||||
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
|
|
||||||
fi
|
fi
|
||||||
AC_OUTPUT_COMMANDS(
|
fi
|
||||||
[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])
|
|
||||||
|
|
||||||
|
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 If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
|
||||||
dnl to 'yes' because some of the testsuite requires it.
|
dnl to 'yes' because some of the testsuite requires it.
|
||||||
if test "$PACKAGE" = gettext; then
|
if test "$PACKAGE" = gettext; then
|
||||||
BUILD_INCLUDED_LIBINTL=yes
|
BUILD_INCLUDED_LIBINTL=yes
|
||||||
fi
|
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.
|
dnl Make all variables we use known to autoconf.
|
||||||
AC_SUBST(BUILD_INCLUDED_LIBINTL)
|
AC_SUBST(BUILD_INCLUDED_LIBINTL)
|
||||||
AC_SUBST(USE_INCLUDED_LIBINTL)
|
AC_SUBST(USE_INCLUDED_LIBINTL)
|
||||||
AC_SUBST(CATALOGS)
|
|
||||||
AC_SUBST(CATOBJEXT)
|
AC_SUBST(CATOBJEXT)
|
||||||
AC_SUBST(GMOFILES)
|
|
||||||
AC_SUBST(INTLLIBS)
|
|
||||||
AC_SUBST(INTLOBJS)
|
AC_SUBST(INTLOBJS)
|
||||||
AC_SUBST(POFILES)
|
|
||||||
AC_SUBST(POSUB)
|
|
||||||
|
|
||||||
dnl For backward compatibility. Some configure.ins may be using this.
|
dnl For backward compatibility. Some configure.ins may be using this.
|
||||||
nls_cv_header_intl=
|
nls_cv_header_intl=
|
||||||
@@ -291,80 +272,270 @@ changequote([,])dnl
|
|||||||
dnl For backward compatibility. Some Makefiles may be using this.
|
dnl For backward compatibility. Some Makefiles may be using this.
|
||||||
GENCAT=gencat
|
GENCAT=gencat
|
||||||
AC_SUBST(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.
|
dnl For backward compatibility. Some Makefiles may be using this.
|
||||||
AC_DEFUN([AM_GNU_GETTEXT],
|
INTLLIBS="$LIBINTL"
|
||||||
[AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
AC_SUBST(INTLLIBS)
|
||||||
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 \
|
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])
|
stdlib.h string.h unistd.h sys/param.h])
|
||||||
AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getcwd getegid geteuid \
|
AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \
|
||||||
getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \
|
geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \
|
||||||
strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
|
strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
|
||||||
|
|
||||||
AM_ICONV
|
AM_ICONV
|
||||||
AM_LANGINFO_CODESET
|
AM_LANGINFO_CODESET
|
||||||
AM_LC_MESSAGES
|
AM_LC_MESSAGES
|
||||||
AM_WITH_NLS([$1],[$2],[$3])
|
|
||||||
|
|
||||||
if test "x$CATOBJEXT" != "x"; then
|
dnl intl/plural.c is generated from intl/plural.y. It requires bison,
|
||||||
if test "x$ALL_LINGUAS" = "x"; then
|
dnl because plural.y uses bison specific features. It requires at least
|
||||||
LINGUAS=
|
dnl bison-1.26 because earlier versions generate a plural.c that doesn't
|
||||||
else
|
dnl compile.
|
||||||
AC_MSG_CHECKING(for catalogs to be installed)
|
dnl bison is only needed for the maintainer (who touches plural.y). But in
|
||||||
NEW_LINGUAS=
|
dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
|
||||||
for presentlang in $ALL_LINGUAS; do
|
dnl the rule in general Makefile. Now, some people carelessly touch the
|
||||||
useit=no
|
dnl files or have a broken "make" program, hence the plural.c rule will
|
||||||
for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do
|
dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
|
||||||
# Use the presentlang catalog if desiredlang is
|
dnl present or too old.
|
||||||
# a. equal to presentlang, or
|
AC_CHECK_PROGS([INTLBISON], [bison])
|
||||||
# b. a variant of presentlang (because in this case,
|
if test -z "$INTLBISON"; then
|
||||||
# presentlang can be used as a fallback for messages
|
ac_verc_fail=yes
|
||||||
# which are not translated in the desiredlang catalog).
|
else
|
||||||
case "$desiredlang" in
|
dnl Found it, now check the version.
|
||||||
"$presentlang"*) useit=yes;;
|
AC_MSG_CHECKING([version of bison])
|
||||||
esac
|
changequote(<<,>>)dnl
|
||||||
done
|
ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
|
||||||
if test $useit = yes; then
|
case $ac_prog_version in
|
||||||
NEW_LINGUAS="$NEW_LINGUAS $presentlang"
|
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
|
||||||
fi
|
1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
|
||||||
done
|
changequote([,])dnl
|
||||||
LINGUAS=$NEW_LINGUAS
|
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
|
||||||
AC_MSG_RESULT($LINGUAS)
|
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
|
||||||
fi
|
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
|
AC_DEFUN([AM_MKINSTALLDIRS],
|
||||||
dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
|
[
|
||||||
dnl Try to locate is.
|
dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
|
||||||
MKINSTALLDIRS=
|
dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
|
||||||
if test -n "$ac_aux_dir"; then
|
dnl Try to locate is.
|
||||||
MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
|
MKINSTALLDIRS=
|
||||||
fi
|
if test -n "$ac_aux_dir"; then
|
||||||
if test -z "$MKINSTALLDIRS"; then
|
MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
|
||||||
MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
|
fi
|
||||||
fi
|
if test -z "$MKINSTALLDIRS"; then
|
||||||
AC_SUBST(MKINSTALLDIRS)
|
MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
|
||||||
|
fi
|
||||||
dnl Enable libtool support if the surrounding package wishes it.
|
AC_SUBST(MKINSTALLDIRS)
|
||||||
INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], [])
|
])
|
||||||
AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
|
|
||||||
])
|
|
||||||
|
|||||||
+7
-1
@@ -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.
|
# Test for the GNU C Library, version 2.1 or newer.
|
||||||
# From Bruno Haible.
|
# From Bruno Haible.
|
||||||
|
|||||||
+42
-15
@@ -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.
|
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 Some systems have iconv in libc, some have it in libiconv (OSF/1 and
|
||||||
dnl those with the standalone portable GNU libiconv installed).
|
dnl those with the standalone portable GNU libiconv installed).
|
||||||
|
|
||||||
AC_ARG_WITH([libiconv-prefix],
|
dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
|
||||||
[ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
|
AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
|
||||||
for dir in `echo "$withval" | tr : ' '`; do
|
AC_REQUIRE([AC_LIB_RPATH])
|
||||||
if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
|
|
||||||
if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
|
dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
|
||||||
done
|
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, [
|
AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
|
||||||
am_cv_func_iconv="no, consider installing GNU libiconv"
|
am_cv_func_iconv="no, consider installing GNU libiconv"
|
||||||
@@ -26,7 +39,7 @@ AC_DEFUN([AM_ICONV],
|
|||||||
am_cv_func_iconv=yes)
|
am_cv_func_iconv=yes)
|
||||||
if test "$am_cv_func_iconv" != yes; then
|
if test "$am_cv_func_iconv" != yes; then
|
||||||
am_save_LIBS="$LIBS"
|
am_save_LIBS="$LIBS"
|
||||||
LIBS="$LIBS -liconv"
|
LIBS="$LIBS $LIBICONV"
|
||||||
AC_TRY_LINK([#include <stdlib.h>
|
AC_TRY_LINK([#include <stdlib.h>
|
||||||
#include <iconv.h>],
|
#include <iconv.h>],
|
||||||
[iconv_t cd = iconv_open("","");
|
[iconv_t cd = iconv_open("","");
|
||||||
@@ -39,6 +52,25 @@ AC_DEFUN([AM_ICONV],
|
|||||||
])
|
])
|
||||||
if test "$am_cv_func_iconv" = yes; then
|
if test "$am_cv_func_iconv" = yes; then
|
||||||
AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
|
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_MSG_CHECKING([for iconv declaration])
|
||||||
AC_CACHE_VAL(am_cv_proto_iconv, [
|
AC_CACHE_VAL(am_cv_proto_iconv, [
|
||||||
AC_TRY_COMPILE([
|
AC_TRY_COMPILE([
|
||||||
@@ -61,9 +93,4 @@ size_t iconv();
|
|||||||
AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
|
AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
|
||||||
[Define as const if the declaration of iconv() needs const.])
|
[Define as const if the declaration of iconv() needs const.])
|
||||||
fi
|
fi
|
||||||
LIBICONV=
|
|
||||||
if test "$am_cv_lib_iconv" = yes; then
|
|
||||||
LIBICONV="-liconv"
|
|
||||||
fi
|
|
||||||
AC_SUBST(LIBICONV)
|
|
||||||
])
|
])
|
||||||
|
|||||||
+8
-1
@@ -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.
|
# This test replaces the one in autoconf.
|
||||||
# Currently this macro should have the same name as the autoconf macro
|
# Currently this macro should have the same name as the autoconf macro
|
||||||
# because gettext's gettext.m4 (distributed in the automake package)
|
# because gettext's gettext.m4 (distributed in the automake package)
|
||||||
|
|||||||
+20
-12
@@ -1,16 +1,24 @@
|
|||||||
# Check whether LC_MESSAGES is available in <locale.h>.
|
# lcmessage.m4 serial 2 (gettext-0.10.40)
|
||||||
# Ulrich Drepper <[email protected]>, 1995.
|
dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
|
||||||
#
|
dnl This file is free software, distributed under the terms of the GNU
|
||||||
# This file can be copied and used freely without restrictions. It can
|
dnl General Public License. As a special exception to the GNU General
|
||||||
# be used in projects which are not available under the GNU General Public
|
dnl Public License, this file may be distributed as part of a program
|
||||||
# License or the GNU Library General Public License but which still want
|
dnl that contains a configuration script generated by Autoconf, under
|
||||||
# to provide support for the GNU gettext functionality.
|
dnl the same distribution terms as the rest of that program.
|
||||||
# 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 This file can can be used in projects which are not available under
|
||||||
# gettext package package is covered by the GNU General Public License.
|
dnl the GNU General Public License or the GNU Library General Public
|
||||||
# They are *not* in the public domain.
|
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 <[email protected]>, 1995.
|
||||||
|
|
||||||
|
# Check whether LC_MESSAGES is available in <locale.h>.
|
||||||
|
|
||||||
AC_DEFUN([AM_LC_MESSAGES],
|
AC_DEFUN([AM_LC_MESSAGES],
|
||||||
[if test $ac_cv_header_locale_h = yes; then
|
[if test $ac_cv_header_locale_h = yes; then
|
||||||
|
|||||||
+20
-12
@@ -1,16 +1,24 @@
|
|||||||
# Search path for a program which passes the given test.
|
# progtest.m4 serial 2 (gettext-0.10.40)
|
||||||
# Ulrich Drepper <[email protected]>, 1996.
|
dnl Copyright (C) 1996-2002 Free Software Foundation, Inc.
|
||||||
#
|
dnl This file is free software, distributed under the terms of the GNU
|
||||||
# This file can be copied and used freely without restrictions. It can
|
dnl General Public License. As a special exception to the GNU General
|
||||||
# be used in projects which are not available under the GNU General Public
|
dnl Public License, this file may be distributed as part of a program
|
||||||
# License or the GNU Library General Public License but which still want
|
dnl that contains a configuration script generated by Autoconf, under
|
||||||
# to provide support for the GNU gettext functionality.
|
dnl the same distribution terms as the rest of that program.
|
||||||
# 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 This file can can be used in projects which are not available under
|
||||||
# gettext package package is covered by the GNU General Public License.
|
dnl the GNU General Public License or the GNU Library General Public
|
||||||
# They are *not* in the public domain.
|
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 <[email protected]>, 1996.
|
||||||
|
|
||||||
|
# Search path for a program which passes the given test.
|
||||||
|
|
||||||
dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
|
dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
|
||||||
dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
|
dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
|
||||||
|
|||||||
+1
-2
@@ -1,6 +1,5 @@
|
|||||||
ChangeLog
|
ChangeLog
|
||||||
Makefile
|
Makefile Makefile.in
|
||||||
Makefile.in
|
|
||||||
POTFILES
|
POTFILES
|
||||||
bison.pot
|
bison.pot
|
||||||
stamp-cat-id
|
stamp-cat-id
|
||||||
|
|||||||
+1
-10
@@ -1,16 +1,7 @@
|
|||||||
2001-10-10 gettextize <[email protected]>
|
2002-01-21 gettextize <[email protected]>
|
||||||
|
|
||||||
* Makefile.in.in: Upgrade to gettext-0.10.40.
|
* Makefile.in.in: Upgrade to gettext-0.10.40.
|
||||||
|
|
||||||
2001-10-10 gettextize <[email protected]>
|
|
||||||
|
|
||||||
* Makefile.in.in: Upgrade to gettext-0.10.40.
|
|
||||||
|
|
||||||
2001-10-09 gettextize <[email protected]>
|
|
||||||
|
|
||||||
* Makefile.in.in: Upgrade to gettext-0.10.40.
|
|
||||||
* cat-id-tbl.c: Remove file.
|
|
||||||
|
|
||||||
2001-09-27 gettextize <[email protected]>
|
2001-09-27 gettextize <[email protected]>
|
||||||
|
|
||||||
* Makefile.in.in: Upgrade to gettext-0.10.40.
|
* Makefile.in.in: Upgrade to gettext-0.10.40.
|
||||||
|
|||||||
+197
-76
@@ -1,18 +1,16 @@
|
|||||||
# Makefile for program source directory in GNU NLS utilities package.
|
# Makefile for PO directory in any package using GNU gettext.
|
||||||
# Copyright (C) 1995-1997, 2000, 2001 by Ulrich Drepper <[email protected]>
|
# Copyright (C) 1995-1997, 2000-2002 by Ulrich Drepper <[email protected]>
|
||||||
#
|
#
|
||||||
# This file file be copied and used freely without restrictions. It can
|
# 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
|
# be used in projects which are not available under the GNU General Public
|
||||||
# but which still want to provide support for the GNU gettext functionality.
|
# License but which still want to provide support for the GNU gettext
|
||||||
# Please note that the actual code is *not* freely available.
|
# functionality.
|
||||||
|
# Please note that the actual code of GNU gettext is covered by the GNU
|
||||||
|
# General Public License and is *not* in the public domain.
|
||||||
|
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
|
|
||||||
# These two variables depend on the location of this directory.
|
|
||||||
subdir = po
|
|
||||||
top_builddir = ..
|
|
||||||
|
|
||||||
SHELL = /bin/sh
|
SHELL = /bin/sh
|
||||||
@SET_MAKE@
|
@SET_MAKE@
|
||||||
|
|
||||||
@@ -31,45 +29,47 @@ INSTALL_DATA = @INSTALL_DATA@
|
|||||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||||
mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
|
mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
|
||||||
|
|
||||||
CC = @CC@
|
|
||||||
GMSGFMT = @GMSGFMT@
|
GMSGFMT = @GMSGFMT@
|
||||||
MSGFMT = @MSGFMT@
|
MSGFMT = @MSGFMT@
|
||||||
XGETTEXT = @XGETTEXT@
|
XGETTEXT = @XGETTEXT@
|
||||||
MSGMERGE = msgmerge
|
MSGMERGE = msgmerge
|
||||||
|
MSGMERGE_UPDATE = @MSGMERGE@ --update
|
||||||
DEFS = @DEFS@
|
MSGINIT = msginit
|
||||||
CFLAGS = @CFLAGS@
|
MSGCONV = msgconv
|
||||||
CPPFLAGS = @CPPFLAGS@
|
MSGFILTER = msgfilter
|
||||||
|
|
||||||
INCLUDES = -I.. -I$(top_srcdir)/intl
|
|
||||||
|
|
||||||
COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
|
|
||||||
|
|
||||||
POFILES = @POFILES@
|
POFILES = @POFILES@
|
||||||
GMOFILES = @GMOFILES@
|
GMOFILES = @GMOFILES@
|
||||||
DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
|
UPDATEPOFILES = @UPDATEPOFILES@
|
||||||
$(POFILES) $(GMOFILES)
|
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 = \
|
POTFILES = \
|
||||||
|
|
||||||
CATALOGS = @CATALOGS@
|
CATALOGS = @CATALOGS@
|
||||||
|
|
||||||
|
# Makevars gets inserted here. (Don't remove this line!)
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
.SUFFIXES: .c .o .po .pox .gmo .mo
|
.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update
|
||||||
|
|
||||||
.c.o:
|
|
||||||
$(COMPILE) $<
|
|
||||||
|
|
||||||
.po.pox:
|
|
||||||
$(MAKE) $(PACKAGE).pot
|
|
||||||
$(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
|
|
||||||
|
|
||||||
.po.mo:
|
.po.mo:
|
||||||
$(MSGFMT) -o $@ $<
|
@echo "$(MSGFMT) -c -o $@ $<"; \
|
||||||
|
$(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
|
||||||
|
|
||||||
.po.gmo:
|
.po.gmo:
|
||||||
file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
|
@lang=`echo $* | sed -e 's,.*/,,'`; \
|
||||||
&& rm -f $$file && $(GMSGFMT) --statistics -o $$file $<
|
test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
|
||||||
|
echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
|
||||||
|
cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
|
||||||
|
|
||||||
|
.sin.sed:
|
||||||
|
sed -e '/^#/d' $< > t-$@
|
||||||
|
mv t-$@ $@
|
||||||
|
|
||||||
|
|
||||||
all: all-@USE_NLS@
|
all: all-@USE_NLS@
|
||||||
@@ -77,17 +77,38 @@ all: all-@USE_NLS@
|
|||||||
all-yes: $(CATALOGS)
|
all-yes: $(CATALOGS)
|
||||||
all-no:
|
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
|
# otherwise packages like GCC can not be built if only parts of the source
|
||||||
# have been downloaded.
|
# have been downloaded.
|
||||||
|
|
||||||
$(srcdir)/$(PACKAGE).pot: $(POTFILES) $(srcdir)/POTFILES.in
|
$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
|
||||||
$(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
|
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
|
||||||
--add-comments --keyword=_ --keyword=N_ \
|
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
|
||||||
--files-from=$(srcdir)/POTFILES.in \
|
--files-from=$(srcdir)/POTFILES.in \
|
||||||
&& test ! -f $(PACKAGE).po \
|
--copyright-holder='$(COPYRIGHT_HOLDER)'
|
||||||
|| ( rm -f $(srcdir)/$(PACKAGE).pot \
|
test ! -f $(DOMAIN).po || { \
|
||||||
&& mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot )
|
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
|
install: install-exec install-data
|
||||||
@@ -95,8 +116,10 @@ install-exec:
|
|||||||
install-data: install-data-@USE_NLS@
|
install-data: install-data-@USE_NLS@
|
||||||
if test "$(PACKAGE)" = "gettext"; then \
|
if test "$(PACKAGE)" = "gettext"; then \
|
||||||
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
|
$(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
|
||||||
$(INSTALL_DATA) $(srcdir)/Makefile.in.in \
|
for file in $(DISTFILES.common); do \
|
||||||
$(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
|
$(INSTALL_DATA) $(srcdir)/$$file \
|
||||||
|
$(DESTDIR)$(gettextsrcdir)/$$file; \
|
||||||
|
done; \
|
||||||
else \
|
else \
|
||||||
: ; \
|
: ; \
|
||||||
fi
|
fi
|
||||||
@@ -106,41 +129,117 @@ install-data-yes: all
|
|||||||
@catalogs='$(CATALOGS)'; \
|
@catalogs='$(CATALOGS)'; \
|
||||||
for cat in $$catalogs; do \
|
for cat in $$catalogs; do \
|
||||||
cat=`basename $$cat`; \
|
cat=`basename $$cat`; \
|
||||||
lang=`echo $$cat | sed 's/\.gmo$$//'`; \
|
lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
|
||||||
dir=$(localedir)/$$lang/LC_MESSAGES; \
|
dir=$(localedir)/$$lang/LC_MESSAGES; \
|
||||||
$(mkinstalldirs) $(DESTDIR)$$dir; \
|
$(mkinstalldirs) $(DESTDIR)$$dir; \
|
||||||
if test -r $$cat; then \
|
if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
|
||||||
$(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
|
$(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
|
||||||
echo "installing $$cat as $(DESTDIR)$$dir/$(PACKAGE).mo"; \
|
echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
|
||||||
else \
|
for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
|
||||||
$(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
|
if test -n "$$lc"; then \
|
||||||
echo "installing $(srcdir)/$$cat as" \
|
if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
|
||||||
"$(DESTDIR)$$dir/$(PACKAGE).mo"; \
|
link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
|
||||||
fi; \
|
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
|
done
|
||||||
|
|
||||||
# Define this as empty until I found a useful application.
|
# Define this as empty until I found a useful application.
|
||||||
installcheck:
|
installcheck:
|
||||||
|
|
||||||
uninstall:
|
uninstall: uninstall-exec uninstall-data
|
||||||
catalogs='$(CATALOGS)'; \
|
uninstall-exec:
|
||||||
for cat in $$catalogs; do \
|
uninstall-data: uninstall-data-@USE_NLS@
|
||||||
cat=`basename $$cat`; \
|
|
||||||
lang=`echo $$cat | sed 's/\.gmo$$//'`; \
|
|
||||||
rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \
|
|
||||||
done
|
|
||||||
if test "$(PACKAGE)" = "gettext"; then \
|
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 \
|
else \
|
||||||
: ; \
|
: ; \
|
||||||
fi
|
fi
|
||||||
|
uninstall-data-no:
|
||||||
|
uninstall-data-yes:
|
||||||
|
catalogs='$(CATALOGS)'; \
|
||||||
|
for cat in $$catalogs; do \
|
||||||
|
cat=`basename $$cat`; \
|
||||||
|
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
|
check: all
|
||||||
|
|
||||||
dvi info tags TAGS ID:
|
dvi info tags TAGS ID:
|
||||||
|
|
||||||
mostlyclean:
|
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
|
rm -fr *.o
|
||||||
|
|
||||||
clean: mostlyclean
|
clean: mostlyclean
|
||||||
@@ -160,29 +259,49 @@ dist distdir:
|
|||||||
# This is a separate target because 'update-po' must be executed before.
|
# This is a separate target because 'update-po' must be executed before.
|
||||||
dist2: $(DISTFILES)
|
dist2: $(DISTFILES)
|
||||||
dists="$(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 \
|
for file in $$dists; do \
|
||||||
if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
|
if test -f $$file; then \
|
||||||
cp -p $$dir/$$file $(distdir); \
|
cp -p $$file $(distdir); \
|
||||||
|
else \
|
||||||
|
cp -p $(srcdir)/$$file $(distdir); \
|
||||||
|
fi; \
|
||||||
done
|
done
|
||||||
|
|
||||||
update-po: Makefile
|
update-po: Makefile
|
||||||
$(MAKE) $(PACKAGE).pot
|
$(MAKE) $(DOMAIN).pot-update
|
||||||
if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \
|
$(MAKE) $(UPDATEPOFILES)
|
||||||
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) update-gmo
|
$(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)
|
update-gmo: Makefile $(GMOFILES)
|
||||||
@:
|
@:
|
||||||
|
|
||||||
@@ -191,6 +310,8 @@ Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in
|
|||||||
&& CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
|
&& CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
|
||||||
$(SHELL) ./config.status
|
$(SHELL) ./config.status
|
||||||
|
|
||||||
|
force:
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make not to export all variables.
|
# 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.
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
.NOEXPORT:
|
.NOEXPORT:
|
||||||
|
|||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
# Makefile variables for PO directory in any package using GNU gettext.
|
||||||
|
|
||||||
|
# Usually the message domain is the same as the package name.
|
||||||
|
DOMAIN = $(PACKAGE)
|
||||||
|
|
||||||
|
# These two variables depend on the location of this directory.
|
||||||
|
subdir = po
|
||||||
|
top_builddir = ..
|
||||||
|
|
||||||
|
# These options get passed to xgettext.
|
||||||
|
XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
|
||||||
|
|
||||||
|
# This is the copyright holder that gets inserted into the header of the
|
||||||
|
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
|
||||||
|
# package. (Note that the msgstr strings, extracted from the package's
|
||||||
|
# sources, belong to the copyright holder of the package.) Translators are
|
||||||
|
# expected to transfer the copyright for their translations to this person
|
||||||
|
# or entity, or to disclaim their copyright. The empty string stands for
|
||||||
|
# the public domain; in this case the translators are expected to disclaim
|
||||||
|
# their copyright.
|
||||||
|
COPYRIGHT_HOLDER = Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# This is the list of locale categories, beyond LC_MESSAGES, for which the
|
||||||
|
# message catalogs shall be used. It is usually empty.
|
||||||
|
EXTRA_LOCALE_CATEGORIES =
|
||||||
@@ -1,13 +1,10 @@
|
|||||||
src/LR0.c
|
src/LR0.c
|
||||||
src/complain.c
|
src/complain.c
|
||||||
src/conflicts.c
|
src/conflicts.c
|
||||||
src/derives.c
|
|
||||||
src/files.c
|
src/files.c
|
||||||
src/getargs.c
|
src/getargs.c
|
||||||
src/lalr.c
|
src/lalr.c
|
||||||
src/lex.c
|
src/lex.c
|
||||||
src/main.c
|
|
||||||
src/nullable.c
|
|
||||||
src/output.c
|
src/output.c
|
||||||
src/print.c
|
src/print.c
|
||||||
src/print_graph.c
|
src/print_graph.c
|
||||||
|
|||||||
@@ -4,21 +4,22 @@
|
|||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: bison 1.29f\n"
|
"Project-Id-Version: bison 1.33b\n"
|
||||||
"POT-Creation-Date: 2001-10-26 14:37+0200\n"
|
"POT-Creation-Date: 2002-03-20 09:33+0100\n"
|
||||||
"PO-Revision-Date: 2001-10-19 17:53+02:00\n"
|
"PO-Revision-Date: 2002-03-05 16:27+0200\n"
|
||||||
"Last-Translator: Toomas Soome <[email protected]>\n"
|
"Last-Translator: Toomas Soome <[email protected]>\n"
|
||||||
"Language-Team: Estonian <[email protected]>\n"
|
"Language-Team: Estonian <[email protected]>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=ISO-8859-15\n"
|
"Content-Type: text/plain; charset=ISO-8859-15\n"
|
||||||
"Content-Transfer-Encoding: 8-bit\n"
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: src/LR0.c:207
|
#: src/LR0.c:189
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "too many states (max %d)"
|
msgid "too many states (max %d)"
|
||||||
msgstr "liiga palju olekuid (maks %d)"
|
msgstr "liiga palju olekuid (maks %d)"
|
||||||
|
|
||||||
#: lib/error.c:128 lib/error.c:156 src/complain.c:96
|
#: src/complain.c:99 lib/error.c:128 lib/error.c:156
|
||||||
msgid "Unknown system error"
|
msgid "Unknown system error"
|
||||||
msgstr "Tundmatu süsteemi viga"
|
msgstr "Tundmatu süsteemi viga"
|
||||||
|
|
||||||
@@ -26,81 +27,82 @@ msgstr "Tundmatu s
|
|||||||
msgid "warning: "
|
msgid "warning: "
|
||||||
msgstr "hoiatus: "
|
msgstr "hoiatus: "
|
||||||
|
|
||||||
#: src/complain.c:238 src/complain.c:279
|
#: src/complain.c:238
|
||||||
msgid "fatal error: "
|
msgid "fatal error: "
|
||||||
msgstr "fataalne viga: "
|
msgstr "fataalne viga: "
|
||||||
|
|
||||||
#: src/conflicts.c:48
|
#: src/conflicts.c:44
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Conflict in state %d between rule %d and token %s resolved as %s.\n"
|
msgid "Conflict in state %d between rule %d and token %s resolved as %s.\n"
|
||||||
msgstr "Konflikt olekus %d reegli %d ja märgi %s vahel lahendatud, kui %s.\n"
|
msgstr "Konflikt olekus %d reegli %d ja märgi %s vahel lahendatud, kui %s.\n"
|
||||||
|
|
||||||
#: src/conflicts.c:114 src/conflicts.c:137
|
#: src/conflicts.c:94 src/conflicts.c:119
|
||||||
msgid "reduce"
|
msgid "reduce"
|
||||||
msgstr "redutseerimine"
|
msgstr "redutseerimine"
|
||||||
|
|
||||||
#: src/conflicts.c:120 src/conflicts.c:133
|
#: src/conflicts.c:101 src/conflicts.c:115
|
||||||
msgid "shift"
|
msgid "shift"
|
||||||
msgstr "nihutamine"
|
msgstr "nihutamine"
|
||||||
|
|
||||||
#: src/conflicts.c:141
|
#: src/conflicts.c:123
|
||||||
msgid "an error"
|
msgid "an error"
|
||||||
msgstr "viga"
|
msgstr "viga"
|
||||||
|
|
||||||
#: src/conflicts.c:421
|
#: src/conflicts.c:302
|
||||||
msgid " 1 shift/reduce conflict"
|
|
||||||
msgstr " 1 nihutamine/redutseerimine konflikt"
|
|
||||||
|
|
||||||
#: src/conflicts.c:426
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid " %d shift/reduce conflicts"
|
msgid "%d shift/reduce conflict"
|
||||||
msgstr " %d nihutamine/redutseerimine konflikti"
|
msgid_plural "%d shift/reduce conflicts"
|
||||||
|
msgstr[0] "%d nihutamine/redutseerimine konflikt"
|
||||||
|
msgstr[1] "%d nihutamine/redutseerimine konflikti"
|
||||||
|
|
||||||
#: src/conflicts.c:432
|
#: src/conflicts.c:309
|
||||||
msgid " and"
|
msgid "and"
|
||||||
msgstr " ja"
|
msgstr "ja"
|
||||||
|
|
||||||
#: src/conflicts.c:438
|
#: src/conflicts.c:315
|
||||||
msgid " 1 reduce/reduce conflict"
|
|
||||||
msgstr " 1 redutseerimine/redutseerimine konflikt"
|
|
||||||
|
|
||||||
#: src/conflicts.c:443
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid " %d reduce/reduce conflicts"
|
msgid "%d reduce/reduce conflict"
|
||||||
msgstr " %d redutseerimine/redutseerimine konflikti"
|
msgid_plural "%d reduce/reduce conflicts"
|
||||||
|
msgstr[0] "%d redutseerimine/redutseerimine konflikt"
|
||||||
|
msgstr[1] "%d redutseerimine/redutseerimine konflikti"
|
||||||
|
|
||||||
#: src/conflicts.c:480
|
#: src/conflicts.c:340
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "State %d contains"
|
msgid "State %d contains "
|
||||||
msgstr "Olek %d sisaldab"
|
msgstr "Olek %d sisaldab "
|
||||||
|
|
||||||
#. If invoked with `--yacc', use the output format specified by
|
#: src/conflicts.c:387
|
||||||
#. POSIX.
|
|
||||||
#: src/conflicts.c:491
|
|
||||||
msgid "conflicts: "
|
msgid "conflicts: "
|
||||||
msgstr "konfliktid: "
|
msgstr "konfliktid: "
|
||||||
|
|
||||||
#: src/conflicts.c:493
|
#: src/conflicts.c:389
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid " %d shift/reduce"
|
msgid " %d shift/reduce"
|
||||||
msgstr " %d nihutamine/redutseerimine"
|
msgstr " %d nihutamine/redutseerimine"
|
||||||
|
|
||||||
#: src/conflicts.c:497
|
#: src/conflicts.c:393
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid " %d reduce/reduce"
|
msgid " %d reduce/reduce"
|
||||||
msgstr " %d redutseerimine/redutseerimine"
|
msgstr " %d redutseerimine/redutseerimine"
|
||||||
|
|
||||||
#: src/conflicts.c:502
|
#: src/conflicts.c:398 src/reduce.c:508
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s contains"
|
msgid "%s contains "
|
||||||
msgstr "%s sisaldab"
|
msgstr "%s sisaldab "
|
||||||
|
|
||||||
#: src/conflicts.c:588 src/conflicts.c:709
|
#: src/conflicts.c:412
|
||||||
|
#, c-format
|
||||||
|
msgid "expected %d shift/reduce conflict\n"
|
||||||
|
msgid_plural "expected %d shift/reduce conflicts\n"
|
||||||
|
msgstr[0] "eeldasime %d nihutamine/redutseerimine konflikti\n"
|
||||||
|
msgstr[1] "eeldasime %d nihutamine/redutseerimine konflikti\n"
|
||||||
|
|
||||||
|
#: src/conflicts.c:463 src/conflicts.c:540
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid " %-4s\t[reduce using rule %d (%s)]\n"
|
msgid " %-4s\t[reduce using rule %d (%s)]\n"
|
||||||
msgstr " %-4s\t[redutseerin, kasutades reeglit %d (%s)]\n"
|
msgstr " %-4s\t[redutseerin, kasutades reeglit %d (%s)]\n"
|
||||||
|
|
||||||
#: src/conflicts.c:600 src/print.c:171
|
#: src/conflicts.c:467 src/print.c:154
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
" $default\treduce using rule %d (%s)\n"
|
" $default\treduce using rule %d (%s)\n"
|
||||||
@@ -109,46 +111,35 @@ msgstr ""
|
|||||||
" $default\tredutseerin kasutades reeglit %d (%s)\n"
|
" $default\tredutseerin kasutades reeglit %d (%s)\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
|
||||||
#: src/conflicts.c:689 src/conflicts.c:703
|
#: src/conflicts.c:521 src/conflicts.c:534
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid " %-4s\treduce using rule %d (%s)\n"
|
msgid " %-4s\treduce using rule %d (%s)\n"
|
||||||
msgstr " %-4s\tredutseerin kasutades reeglit %d (%s)\n"
|
msgstr " %-4s\tredutseerin kasutades reeglit %d (%s)\n"
|
||||||
|
|
||||||
#: src/conflicts.c:730
|
#: src/conflicts.c:550
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid " $default\treduce using rule %d (%s)\n"
|
msgid " $default\treduce using rule %d (%s)\n"
|
||||||
msgstr " $default\tredutseerin kasutades reeglit %d (%s)\n"
|
msgstr " $default\tredutseerin kasutades reeglit %d (%s)\n"
|
||||||
|
|
||||||
#: src/derives.c:43
|
#: src/files.c:151
|
||||||
msgid "DERIVES"
|
|
||||||
msgstr "DERIVES"
|
|
||||||
|
|
||||||
#: src/derives.c:48
|
|
||||||
#, c-format
|
|
||||||
msgid "%s derives"
|
|
||||||
msgstr "%s derives"
|
|
||||||
|
|
||||||
#: src/files.c:133
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot open file `%s'"
|
msgid "cannot open file `%s'"
|
||||||
msgstr "faili `%s' ei saa avada"
|
msgstr "faili `%s' ei saa avada"
|
||||||
|
|
||||||
#: src/files.c:152
|
#: src/files.c:170
|
||||||
msgid "cannot close file"
|
msgid "cannot close file"
|
||||||
msgstr "faili ei õnnestu sulgeda"
|
msgstr "faili ei õnnestu sulgeda"
|
||||||
|
|
||||||
#. Some efforts were made to ease the translators' task, please
|
#: src/getargs.c:84
|
||||||
#. continue.
|
|
||||||
#: src/getargs.c:83
|
|
||||||
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
||||||
msgstr "GNU bison genereerib parsereid LALR(1) grammatikatele.\n"
|
msgstr "GNU bison genereerib parsereid LALR(1) grammatikatele.\n"
|
||||||
|
|
||||||
#: src/getargs.c:87
|
#: src/getargs.c:88
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Usage: %s [OPTION]... FILE\n"
|
msgid "Usage: %s [OPTION]... FILE\n"
|
||||||
msgstr "Kasuta: %s [VÕTI]...FAIL\n"
|
msgstr "Kasuta: %s [VÕTI]...FAIL\n"
|
||||||
|
|
||||||
#: src/getargs.c:91
|
#: src/getargs.c:92
|
||||||
msgid ""
|
msgid ""
|
||||||
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
||||||
"for the equivalent short option also. Similarly for optional arguments.\n"
|
"for the equivalent short option also. Similarly for optional arguments.\n"
|
||||||
@@ -156,7 +147,7 @@ msgstr ""
|
|||||||
"Kui pikk võti näitab, et argument on kohustuslik, siis on see kohustuslik \n"
|
"Kui pikk võti näitab, et argument on kohustuslik, siis on see kohustuslik \n"
|
||||||
"ka lühikese võtme korral. Sama ka vabalt valitavate võtmete korral.\n"
|
"ka lühikese võtme korral. Sama ka vabalt valitavate võtmete korral.\n"
|
||||||
|
|
||||||
#: src/getargs.c:97
|
#: src/getargs.c:98
|
||||||
msgid ""
|
msgid ""
|
||||||
"Operation modes:\n"
|
"Operation modes:\n"
|
||||||
" -h, --help display this help and exit\n"
|
" -h, --help display this help and exit\n"
|
||||||
@@ -168,7 +159,7 @@ msgstr ""
|
|||||||
" -V, --version esita versiooniinfo ja lõpeta töö\n"
|
" -V, --version esita versiooniinfo ja lõpeta töö\n"
|
||||||
" -y, --yacc emuleeri POSIX yacc\n"
|
" -y, --yacc emuleeri POSIX yacc\n"
|
||||||
|
|
||||||
#: src/getargs.c:104
|
#: src/getargs.c:105
|
||||||
msgid ""
|
msgid ""
|
||||||
"Parser:\n"
|
"Parser:\n"
|
||||||
" -S, --skeleton=FILE specify the skeleton to use\n"
|
" -S, --skeleton=FILE specify the skeleton to use\n"
|
||||||
@@ -188,14 +179,14 @@ msgstr ""
|
|||||||
" -n, --no-parser genereeri ainult tabelid\n"
|
" -n, --no-parser genereeri ainult tabelid\n"
|
||||||
" -k, --token-table lisa ka sümbolite nimede tabel\n"
|
" -k, --token-table lisa ka sümbolite nimede tabel\n"
|
||||||
|
|
||||||
#: src/getargs.c:116
|
#: src/getargs.c:117
|
||||||
msgid ""
|
msgid ""
|
||||||
"Output:\n"
|
"Output:\n"
|
||||||
" -d, --defines also produce a header file\n"
|
" -d, --defines also produce a header file\n"
|
||||||
" -v, --verbose also produce an explanation of the automaton\n"
|
" -v, --verbose also produce an explanation of the automaton\n"
|
||||||
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
|
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
|
||||||
" -o, --output-file=FILE leave output to FILE\n"
|
" -o, --output=FILE leave output to FILE\n"
|
||||||
" -g, --graph also produce a VCG graph description of the "
|
" -g, --graph also produce a VCG description of the "
|
||||||
"automaton\n"
|
"automaton\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Väljund:\n"
|
"Väljund:\n"
|
||||||
@@ -205,25 +196,24 @@ msgstr ""
|
|||||||
" -o, --output-file=FAIL jäta väljund FAILi\n"
|
" -o, --output-file=FAIL jäta väljund FAILi\n"
|
||||||
" -g, --graph loo automaadi kirjeldus VCG graafina\n"
|
" -g, --graph loo automaadi kirjeldus VCG graafina\n"
|
||||||
|
|
||||||
#: src/getargs.c:126
|
#: src/getargs.c:127
|
||||||
msgid "Report bugs to <[email protected]>.\n"
|
msgid "Report bugs to <[email protected]>.\n"
|
||||||
msgstr "Teatage palun vigadest aadressil <[email protected]>.\n"
|
msgstr "Teatage palun vigadest aadressil <[email protected]>.\n"
|
||||||
|
|
||||||
#. Some efforts were made to ease the translators' task, please
|
#: src/getargs.c:141
|
||||||
#. continue.
|
|
||||||
#: src/getargs.c:140
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "bison (GNU Bison) %s"
|
msgid "bison (GNU Bison) %s"
|
||||||
msgstr "bison (GNU Bison) %s"
|
msgstr "bison (GNU Bison) %s"
|
||||||
|
|
||||||
#: src/getargs.c:145
|
#: src/getargs.c:146
|
||||||
msgid ""
|
msgid ""
|
||||||
"Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.\n"
|
"Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002\n"
|
||||||
|
"Free Software Foundation, Inc.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Autoriõigus 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, "
|
"Autoriõigus 1984, 1986, 1989, 1992, 2000, 2001, 2002\n"
|
||||||
"Inc.\n"
|
"Free Software Foundation, Inc.\n"
|
||||||
|
|
||||||
#: src/getargs.c:149
|
#: src/getargs.c:151
|
||||||
msgid ""
|
msgid ""
|
||||||
"This is free software; see the source for copying conditions. There is NO\n"
|
"This is free software; see the source for copying conditions. There is NO\n"
|
||||||
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
||||||
@@ -231,479 +221,449 @@ msgstr ""
|
|||||||
"See on vaba tarkvara; kopeerimistingimused leiate lähtetekstidest. Garantii\n"
|
"See on vaba tarkvara; kopeerimistingimused leiate lähtetekstidest. Garantii\n"
|
||||||
"PUUDUB; ka müügiks või mingil eesmärgil kasutamiseks.\n"
|
"PUUDUB; ka müügiks või mingil eesmärgil kasutamiseks.\n"
|
||||||
|
|
||||||
#: src/getargs.c:214 src/lex.c:650
|
#: src/getargs.c:230 src/lex.c:705
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "`%s' is no longer supported"
|
msgid "`%s' is no longer supported"
|
||||||
msgstr "`%s' ei ole enam toetatud"
|
msgstr "`%s' ei ole enam toetatud"
|
||||||
|
|
||||||
#: src/getargs.c:238
|
#: src/getargs.c:254
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Try `%s --help' for more information.\n"
|
msgid "Try `%s --help' for more information.\n"
|
||||||
msgstr "Lisainfo saamiseks proovige `%s --help'.\n"
|
msgstr "Lisainfo saamiseks proovige `%s --help'.\n"
|
||||||
|
|
||||||
#: src/getargs.c:245
|
#: src/getargs.c:261
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: no grammar file given\n"
|
msgid "%s: no grammar file given\n"
|
||||||
msgstr "%s: puudub grammatikafail\n"
|
msgstr "%s: puudub grammatikafail\n"
|
||||||
|
|
||||||
#: src/getargs.c:249
|
#: src/getargs.c:265
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: extra arguments ignored after `%s'\n"
|
msgid "%s: extra arguments ignored after `%s'\n"
|
||||||
msgstr "%s: ignoreerin lisaargumente peale `%s'\n"
|
msgstr "%s: ignoreerin lisaargumente peale `%s'\n"
|
||||||
|
|
||||||
#: src/lalr.c:311
|
#: src/lalr.c:256
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "too many gotos (max %d)"
|
msgid "too many gotos (max %d)"
|
||||||
msgstr "liiga palju gotosid (maks %d)"
|
msgstr "liiga palju gotosid (maks %d)"
|
||||||
|
|
||||||
#: src/lex.c:78
|
#: src/lex.c:76
|
||||||
msgid "unexpected `/' found and ignored"
|
msgid "unexpected `/' found and ignored"
|
||||||
msgstr "leidsin ja ignoreerin ootamatu `/'"
|
msgstr "leidsin ja ignoreerin ootamatu `/'"
|
||||||
|
|
||||||
#: src/lex.c:107 src/reader.c:269
|
#: src/lex.c:105 src/reader.c:280
|
||||||
msgid "unterminated comment"
|
msgid "unterminated comment"
|
||||||
msgstr "lõpetamata kommentaar"
|
msgstr "lõpetamata kommentaar"
|
||||||
|
|
||||||
#: src/lex.c:139
|
#: src/lex.c:137
|
||||||
msgid "unexpected end of file"
|
msgid "unexpected end of file"
|
||||||
msgstr "ootamatu faililõpp"
|
msgstr "ootamatu faililõpp"
|
||||||
|
|
||||||
#: src/lex.c:168
|
#: src/lex.c:166
|
||||||
msgid "unescaped newline in constant"
|
msgid "unescaped newline in constant"
|
||||||
msgstr "paojadata reavahetus konstandis"
|
msgstr "paojadata reavahetus konstandis"
|
||||||
|
|
||||||
#: src/lex.c:210
|
#: src/lex.c:208
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "octal value outside range 0...255: `\\%o'"
|
msgid "octal value outside range 0...255: `\\%o'"
|
||||||
msgstr "kaheksandväärtus väljaspool piire 0...255: `\\%o'"
|
msgstr "kaheksandväärtus väljaspool piire 0...255: `\\%o'"
|
||||||
|
|
||||||
#: src/lex.c:235
|
#: src/lex.c:233
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "hexadecimal value above 255: `\\x%x'"
|
msgid "hexadecimal value above 255: `\\x%x'"
|
||||||
msgstr "kuueteistkümnendväärtus suurem, kui above 255: `\\x%x'"
|
msgstr "kuueteistkümnendväärtus suurem, kui above 255: `\\x%x'"
|
||||||
|
|
||||||
#: src/lex.c:247
|
#: src/lex.c:245
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unknown escape sequence: `\\' followed by `%s'"
|
msgid "unknown escape sequence: `\\' followed by `%s'"
|
||||||
msgstr "tundmatu paojada: `\\' järgneb `%s'"
|
msgstr "tundmatu paojada: `\\' järgneb `%s'"
|
||||||
|
|
||||||
#: src/lex.c:343
|
#: src/lex.c:342
|
||||||
msgid "unterminated type name at end of file"
|
msgid "unterminated type name at end of file"
|
||||||
msgstr "lõpetamata tüübinimi faili lõpus"
|
msgstr "lõpetamata tüübinimi faili lõpus"
|
||||||
|
|
||||||
#: src/lex.c:346
|
#: src/lex.c:345
|
||||||
msgid "unterminated type name"
|
msgid "unterminated type name"
|
||||||
msgstr "lõpetamata tüübinimi"
|
msgstr "lõpetamata tüübinimi"
|
||||||
|
|
||||||
#: src/lex.c:437
|
#: src/lex.c:438
|
||||||
msgid "use \"...\" for multi-character literal tokens"
|
msgid "use \"...\" for multi-character literal tokens"
|
||||||
msgstr "kasuta mitmesümboliliste literaalidega \"...\" konstruktsiooni"
|
msgstr "kasuta mitmesümboliliste literaalidega \"...\" konstruktsiooni"
|
||||||
|
|
||||||
#: src/main.c:125
|
#: src/lex.c:678
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: internal error: %s\n"
|
msgid "`%s' supports no argument: %s"
|
||||||
msgstr "%s: sisemine viga: %s\n"
|
msgstr "`%s' ei toeta argumente: %s"
|
||||||
|
|
||||||
#: src/nullable.c:51
|
#: src/lex.c:694
|
||||||
msgid "Entering set_nullable"
|
#, c-format
|
||||||
msgstr "Entering set_nullable"
|
msgid "`%s' requires an argument"
|
||||||
|
msgstr "võti `%s' nõuab argumenti"
|
||||||
|
|
||||||
#: src/output.c:986
|
#: src/output.c:951
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "maximum table size (%d) exceeded"
|
msgid "maximum table size (%d) exceeded"
|
||||||
msgstr "ületati maksimaalset tabelisuurust (%d)"
|
msgstr "ületati maksimaalset tabelisuurust (%d)"
|
||||||
|
|
||||||
#: src/print.c:37
|
#: src/print.c:39
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid " type %d is %s\n"
|
msgid " type %d is %s\n"
|
||||||
msgstr " tüüp %d on %s\n"
|
msgstr " tüüp %d on %s\n"
|
||||||
|
|
||||||
#: src/print.c:85
|
#: src/print.c:88
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid " (rule %d)"
|
msgid " (rule %d)"
|
||||||
msgstr " (reegel %d)"
|
msgstr " (reegel %d)"
|
||||||
|
|
||||||
#: src/print.c:111
|
#: src/print.c:108
|
||||||
msgid " $default\taccept\n"
|
msgid " $default\taccept\n"
|
||||||
msgstr " $default\taktsepteerin\n"
|
msgstr " $default\taktsepteerin\n"
|
||||||
|
|
||||||
#: src/print.c:113
|
#: src/print.c:110
|
||||||
msgid " NO ACTIONS\n"
|
msgid " NO ACTIONS\n"
|
||||||
msgstr " TEGEVUSI POLE\n"
|
msgstr " TEGEVUSI POLE\n"
|
||||||
|
|
||||||
#: src/print.c:132
|
#: src/print.c:124
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid " $ \tgo to state %d\n"
|
msgid " $ \tgo to state %d\n"
|
||||||
msgstr " $ \tliigu olekule %d\n"
|
msgstr " $ \tliigu olekule %d\n"
|
||||||
|
|
||||||
#: src/print.c:135
|
#: src/print.c:127
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid " %-4s\tshift, and go to state %d\n"
|
msgid " %-4s\tshift, and go to state %d\n"
|
||||||
msgstr " %-4s\tnihuta ja liigu olekule %d\n"
|
msgstr " %-4s\tnihuta ja liigu olekule %d\n"
|
||||||
|
|
||||||
#: src/print.c:159
|
#: src/print.c:142
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid " %-4s\terror (nonassociative)\n"
|
msgid " %-4s\terror (nonassociative)\n"
|
||||||
msgstr " %-4s\tviga (mitteassotsiatiivne)\n"
|
msgstr " %-4s\tviga (mitteassotsiatiivne)\n"
|
||||||
|
|
||||||
#: src/print.c:187
|
#: src/print.c:169
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid " %-4s\tgo to state %d\n"
|
msgid " %-4s\tgo to state %d\n"
|
||||||
msgstr " %-4s\tliigu olekule %d\n"
|
msgstr " %-4s\tliigu olekule %d\n"
|
||||||
|
|
||||||
#: src/print.c:199
|
#: src/print.c:180
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "state %d"
|
msgid "state %d"
|
||||||
msgstr "olek %d"
|
msgstr "olek %d"
|
||||||
|
|
||||||
#. rule # : LHS -> RHS
|
#: src/print.c:211
|
||||||
#: src/print.c:229
|
|
||||||
msgid "Grammar"
|
msgid "Grammar"
|
||||||
msgstr "Grammatika"
|
msgstr "Grammatika"
|
||||||
|
|
||||||
#: src/print.c:234
|
#: src/print.c:212
|
||||||
#, c-format
|
msgid "Number, Line, Rule"
|
||||||
msgid "rule %-4d %s ->"
|
msgstr "Number, rida, reegel"
|
||||||
msgstr "reegel %-4d %s ->"
|
|
||||||
|
|
||||||
#: src/print.c:240
|
#: src/print.c:217
|
||||||
|
#, c-format
|
||||||
|
msgid " %3d %3d %s ->"
|
||||||
|
msgstr " %3d %3d %s ->"
|
||||||
|
|
||||||
|
#: src/print.c:224
|
||||||
msgid "empty"
|
msgid "empty"
|
||||||
msgstr "tühi"
|
msgstr "tühi"
|
||||||
|
|
||||||
#. TERMINAL (type #) : rule #s terminal is on RHS
|
#: src/print.c:231
|
||||||
#: src/print.c:244
|
|
||||||
msgid "Terminals, with rules where they appear"
|
msgid "Terminals, with rules where they appear"
|
||||||
msgstr "Terminalid, koos reeglitega, kus nad ilmuvad"
|
msgstr "Terminalid, koos reeglitega, kus nad ilmuvad"
|
||||||
|
|
||||||
#: src/print.c:268
|
#: src/print.c:256
|
||||||
msgid "Nonterminals, with rules where they appear"
|
msgid "Nonterminals, with rules where they appear"
|
||||||
msgstr "Mitteterminalid, koos reeglitega, kus nad ilmuvad"
|
msgstr "Mitteterminalid, koos reeglitega, kus nad ilmuvad"
|
||||||
|
|
||||||
#: src/print.c:294
|
#: src/print.c:282
|
||||||
msgid " on left:"
|
msgid " on left:"
|
||||||
msgstr " vasakul:"
|
msgstr " vasakul:"
|
||||||
|
|
||||||
#: src/print.c:309
|
#: src/print.c:297
|
||||||
msgid " on right:"
|
msgid " on right:"
|
||||||
msgstr " paremal:"
|
msgstr " paremal:"
|
||||||
|
|
||||||
#: src/print_graph.c:174
|
#: src/print_graph.c:146
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%-4s\terror (nonassociative)"
|
msgid "%-4s\terror (nonassociative)"
|
||||||
msgstr "%-4s\tviga (mitteassotsiatiivne)"
|
msgstr "%-4s\tviga (mitteassotsiatiivne)"
|
||||||
|
|
||||||
#: src/print_graph.c:187
|
#: src/print_graph.c:161
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "$default\treduce using rule %d (%s)"
|
msgid "$default\treduce using rule %d (%s)"
|
||||||
msgstr "$default\tredutseerin kasutades reeglit %d (%s)"
|
msgstr "$default\tredutseerin kasutades reeglit %d (%s)"
|
||||||
|
|
||||||
#: src/reader.c:78
|
#: src/reader.c:89
|
||||||
msgid " Skipping to next \\n"
|
msgid " Skipping to next \\n"
|
||||||
msgstr " Liigun järgmisele \\n"
|
msgstr " Liigun järgmisele \\n"
|
||||||
|
|
||||||
#: src/reader.c:80
|
#: src/reader.c:91
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid " Skipping to next %c"
|
msgid " Skipping to next %c"
|
||||||
msgstr " Liigun järgmisele %c"
|
msgstr " Liigun järgmisele %c"
|
||||||
|
|
||||||
#: src/reader.c:131 src/reader.c:143
|
#: src/reader.c:142 src/reader.c:154
|
||||||
msgid "invalid $ value"
|
msgid "invalid $ value"
|
||||||
msgstr "vigane $ väärtus"
|
msgstr "vigane $ väärtus"
|
||||||
|
|
||||||
#: src/reader.c:169 src/reader.c:184
|
#: src/reader.c:180 src/reader.c:195
|
||||||
msgid "unterminated string at end of file"
|
msgid "unterminated string at end of file"
|
||||||
msgstr "lõpetamata sõne faili lõpus"
|
msgstr "lõpetamata sõne faili lõpus"
|
||||||
|
|
||||||
#: src/reader.c:172
|
#: src/reader.c:183
|
||||||
msgid "unterminated string"
|
msgid "unterminated string"
|
||||||
msgstr "lõpetamata sõne"
|
msgstr "lõpetamata sõne"
|
||||||
|
|
||||||
#: src/reader.c:325 src/reader.c:389
|
#: src/reader.c:339
|
||||||
|
msgid "invalid @ value"
|
||||||
|
msgstr "vigane @ väärtus"
|
||||||
|
|
||||||
|
#: src/reader.c:352 src/reader.c:416
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s is invalid"
|
msgid "%s is invalid"
|
||||||
msgstr "%s on vigane"
|
msgstr "%s on vigane"
|
||||||
|
|
||||||
#: src/reader.c:365
|
#: src/reader.c:392
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "$$ of `%s' has no declared type"
|
msgid "$$ of `%s' has no declared type"
|
||||||
msgstr "`%s' $$ ei oma deklareeritud tüüpi"
|
msgstr "`%s' $$ ei oma deklareeritud tüüpi"
|
||||||
|
|
||||||
#: src/reader.c:382
|
#: src/reader.c:409
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "$%d of `%s' has no declared type"
|
msgid "$%d of `%s' has no declared type"
|
||||||
msgstr "$%d `%s' ei oma deklareeritud tüüpi"
|
msgstr "$%d `%s' ei oma deklareeritud tüüpi"
|
||||||
|
|
||||||
#: src/reader.c:436
|
#: src/reader.c:463
|
||||||
msgid "unterminated `%{' definition"
|
msgid "unterminated `%{' definition"
|
||||||
msgstr "lõpetamata `%{' definitsioon"
|
msgstr "lõpetamata `%{' definitsioon"
|
||||||
|
|
||||||
#: src/reader.c:481 src/reader.c:595 src/reader.c:645
|
#: src/reader.c:508 src/reader.c:623 src/reader.c:673
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Premature EOF after %s"
|
msgid "Premature EOF after %s"
|
||||||
msgstr "Enneaegne EOF peale %s"
|
msgstr "Enneaegne EOF peale %s"
|
||||||
|
|
||||||
#: src/reader.c:498
|
#: src/reader.c:525
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "symbol `%s' used more than once as a literal string"
|
msgid "symbol `%s' used more than once as a literal string"
|
||||||
msgstr "sümbolit `%s' on kasutatud enam kui kord literaal sõnena"
|
msgstr "sümbolit `%s' on kasutatud enam kui kord literaal sõnena"
|
||||||
|
|
||||||
#: src/reader.c:501
|
#: src/reader.c:528
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "symbol `%s' given more than one literal string"
|
msgid "symbol `%s' given more than one literal string"
|
||||||
msgstr "sümbolile `%s' on antud enam kui üks literaal sõne"
|
msgstr "sümbolile `%s' on antud enam kui üks literaal sõne"
|
||||||
|
|
||||||
#: src/reader.c:522 src/reader.c:664
|
#: src/reader.c:549 src/reader.c:692
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "symbol %s redefined"
|
msgid "symbol %s redefined"
|
||||||
msgstr "sümbol %s on uuesti defineeritud"
|
msgstr "sümbol %s on uuesti defineeritud"
|
||||||
|
|
||||||
#: src/reader.c:532 src/reader.c:610 src/reader.c:671 src/reader.c:1285
|
#: src/reader.c:559 src/reader.c:638 src/reader.c:699 src/reader.c:1315
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "type redeclaration for %s"
|
msgid "type redeclaration for %s"
|
||||||
msgstr "%s tüübi uuesti deklareerimine"
|
msgstr "%s tüübi uuesti deklareerimine"
|
||||||
|
|
||||||
#: src/reader.c:541
|
#: src/reader.c:568
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "`%s' is invalid in %s"
|
msgid "`%s' is invalid in %s"
|
||||||
msgstr "`%s' ei ole %s sees lubatud"
|
msgstr "`%s' ei ole %s sees lubatud"
|
||||||
|
|
||||||
#: src/reader.c:558 src/reader.c:717
|
#: src/reader.c:586 src/reader.c:752
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "multiple %s declarations"
|
msgid "multiple %s declarations"
|
||||||
msgstr "korduvad %s deklaratsioonid"
|
msgstr "korduvad %s deklaratsioonid"
|
||||||
|
|
||||||
#: src/reader.c:560 src/reader.c:897 src/reader.c:922 src/reader.c:1263
|
#: src/reader.c:588 src/reader.c:931 src/reader.c:956 src/reader.c:1293
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid %s declaration"
|
msgid "invalid %s declaration"
|
||||||
msgstr "vigane %s deklaratsioon"
|
msgstr "vigane %s deklaratsioon"
|
||||||
|
|
||||||
#: src/reader.c:580
|
#: src/reader.c:608
|
||||||
msgid "%type declaration has no <typename>"
|
msgid "%type declaration has no <typename>"
|
||||||
msgstr "%type deklaratsioonis puudub <tüübinimi>"
|
msgstr "%type deklaratsioonis puudub <tüübinimi>"
|
||||||
|
|
||||||
#: src/reader.c:615
|
#: src/reader.c:643
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid %%type declaration due to item: %s"
|
msgid "invalid %%type declaration due to item: %s"
|
||||||
msgstr "vigane %%type deklaratsioon, element: %s"
|
msgstr "vigane %%type deklaratsioon, element: %s"
|
||||||
|
|
||||||
#: src/reader.c:660
|
#: src/reader.c:688
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "redefining precedence of %s"
|
msgid "redefining precedence of %s"
|
||||||
msgstr "%s prioriteedi uus definitsioon"
|
msgstr "%s prioriteedi uus definitsioon"
|
||||||
|
|
||||||
#: src/reader.c:683
|
#: src/reader.c:711
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid text (%s) - number should be after identifier"
|
msgid "invalid text (%s) - number should be after identifier"
|
||||||
msgstr "vigane tekst (%s) - number peab olema peale identifikaatorit"
|
msgstr "vigane tekst (%s) - number peab olema peale identifikaatorit"
|
||||||
|
|
||||||
#: src/reader.c:693
|
#: src/reader.c:721
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unexpected item: %s"
|
msgid "unexpected item: %s"
|
||||||
msgstr "ootamatu element: %s"
|
msgstr "ootamatu element: %s"
|
||||||
|
|
||||||
#: src/reader.c:760 src/reader.c:1089 src/reader.c:1160
|
#: src/reader.c:795 src/reader.c:1127 src/reader.c:1204
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unmatched %s"
|
msgid "unmatched %s"
|
||||||
msgstr "puudub %s"
|
msgstr "puudub %s"
|
||||||
|
|
||||||
#: src/reader.c:792
|
#: src/reader.c:827
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "argument of %%expect is not an integer"
|
msgid "argument of %%expect is not an integer"
|
||||||
msgstr "%%expect argument ei ole täisarv"
|
msgstr "%%expect argument ei ole täisarv"
|
||||||
|
|
||||||
#: src/reader.c:838
|
#: src/reader.c:873
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unrecognized item %s, expected an identifier"
|
msgid "unrecognized item %s, expected an identifier"
|
||||||
msgstr "tundmatu element %s, eeldasin identifikaatorit"
|
msgstr "tundmatu element %s, eeldasin identifikaatorit"
|
||||||
|
|
||||||
#: src/reader.c:862
|
#: src/reader.c:895
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "expected string constant instead of %s"
|
msgid "expected string constant instead of %s"
|
||||||
msgstr "eeldasin %s asemel sõnekonstanti"
|
msgstr "eeldasin %s asemel sõnekonstanti"
|
||||||
|
|
||||||
#: src/reader.c:1005
|
#: src/reader.c:1043
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unrecognized: %s"
|
msgid "unrecognized: %s"
|
||||||
msgstr "tundmatu: %s"
|
msgstr "tundmatu: %s"
|
||||||
|
|
||||||
#: src/reader.c:1010
|
#: src/reader.c:1048
|
||||||
msgid "no input grammar"
|
msgid "no input grammar"
|
||||||
msgstr "sisendgrammatikat pole"
|
msgstr "sisendgrammatikat pole"
|
||||||
|
|
||||||
#: src/reader.c:1015
|
#: src/reader.c:1053
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unknown character: %s"
|
msgid "unknown character: %s"
|
||||||
msgstr "tundmatu sümbol: %s"
|
msgstr "tundmatu sümbol: %s"
|
||||||
|
|
||||||
#: src/reader.c:1183
|
#: src/reader.c:1227
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unterminated %guard clause"
|
msgid "unterminated %guard clause"
|
||||||
msgstr "lõpetamata %guard klausel"
|
msgstr "lõpetamata %guard klausel"
|
||||||
|
|
||||||
#: src/reader.c:1350
|
#: src/reader.c:1380
|
||||||
msgid "ill-formed rule: initial symbol not followed by colon"
|
msgid "ill-formed rule: initial symbol not followed by colon"
|
||||||
msgstr "vigaselt formeeritud reegel: algsümbolile ei järgne koolonit"
|
msgstr "vigaselt formeeritud reegel: algsümbolile ei järgne koolonit"
|
||||||
|
|
||||||
#: src/reader.c:1357
|
#: src/reader.c:1387
|
||||||
msgid "grammar starts with vertical bar"
|
msgid "grammar starts with vertical bar"
|
||||||
msgstr "grammatika algab püstkriipsuga"
|
msgstr "grammatika algab püstkriipsuga"
|
||||||
|
|
||||||
#: src/reader.c:1388
|
#: src/reader.c:1415
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "rule given for %s, which is a token"
|
msgid "rule given for %s, which is a token"
|
||||||
msgstr "%s jaoks on antud reegel, aga see on märk"
|
msgstr "%s jaoks on antud reegel, aga see on märk"
|
||||||
|
|
||||||
#: src/reader.c:1490
|
#: src/reader.c:1445 src/reader.c:1557
|
||||||
|
msgid "previous rule lacks an ending `;'"
|
||||||
|
msgstr "eelmisel reeglil puudub lõpetav `;'"
|
||||||
|
|
||||||
|
#: src/reader.c:1518
|
||||||
msgid "two @prec's in a row"
|
msgid "two @prec's in a row"
|
||||||
msgstr "kaks @prec ühel real"
|
msgstr "kaks @prec ühel real"
|
||||||
|
|
||||||
#: src/reader.c:1498
|
#: src/reader.c:1526
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%%guard present but %%semantic_parser not specified"
|
msgid "%%guard present but %%semantic_parser not specified"
|
||||||
msgstr "%%guard on määratud, aga %%semantic_parser ei ole"
|
msgstr "%%guard on määratud, aga %%semantic_parser ei ole"
|
||||||
|
|
||||||
#: src/reader.c:1507
|
#: src/reader.c:1535
|
||||||
msgid "two actions at end of one rule"
|
msgid "two actions at end of one rule"
|
||||||
msgstr "kaks tegevust ühe reegli lõpus"
|
msgstr "kaks tegevust ühe reegli lõpus"
|
||||||
|
|
||||||
#: src/reader.c:1521
|
#: src/reader.c:1549
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "type clash (`%s' `%s') on default action"
|
msgid "type clash (`%s' `%s') on default action"
|
||||||
msgstr "vaikimisi tegevuse tüübikonflikt (`%s' `%s')"
|
msgstr "vaikimisi tegevuse tüübikonflikt (`%s' `%s')"
|
||||||
|
|
||||||
#: src/reader.c:1527
|
#: src/reader.c:1555
|
||||||
msgid "empty rule for typed nonterminal, and no action"
|
msgid "empty rule for typed nonterminal, and no action"
|
||||||
msgstr "tüübiga mitteterminalil on tühi reegel ja puudub tegevus"
|
msgstr "tüübiga mitteterminalil on tühi reegel ja puudub tegevus"
|
||||||
|
|
||||||
#: src/reader.c:1571
|
#: src/reader.c:1601
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid input: %s"
|
msgid "invalid input: %s"
|
||||||
msgstr "vigane sisend: %s"
|
msgstr "vigane sisend: %s"
|
||||||
|
|
||||||
#: src/reader.c:1579
|
#: src/reader.c:1609
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
||||||
msgstr "liiga palju sümboleid (märgid ja mitteterminalid); maksimaalne on %d"
|
msgstr "liiga palju sümboleid (märgid ja mitteterminalid); maksimaalne on %d"
|
||||||
|
|
||||||
#: src/reader.c:1582
|
#: src/reader.c:1612
|
||||||
msgid "no rules in the input grammar"
|
msgid "no rules in the input grammar"
|
||||||
msgstr "sisendgrammatikas pole reegleid"
|
msgstr "sisendgrammatikas pole reegleid"
|
||||||
|
|
||||||
#: src/reader.c:1606
|
#: src/reader.c:1640
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "symbol %s is used, but is not defined as a token and has no rules"
|
msgid "symbol %s is used, but is not defined as a token and has no rules"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"kasutatakse sümbolit %s, mis ei ole defineeritud märgina ja millel puuduvad "
|
"kasutatakse sümbolit %s, mis ei ole defineeritud märgina ja millel puuduvad "
|
||||||
"reeglid"
|
"reeglid"
|
||||||
|
|
||||||
#: src/reader.c:1712
|
#: src/reader.c:1775
|
||||||
#, c-format
|
|
||||||
msgid "conflicting precedences for %s and %s"
|
|
||||||
msgstr "%s ja %s omavad konfliktseid prioriteete"
|
|
||||||
|
|
||||||
#: src/reader.c:1724
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting assoc values for %s and %s"
|
|
||||||
msgstr "%s ja %s omavad konfliktseid assotsiatiivseid väärtuseid"
|
|
||||||
|
|
||||||
#: src/reader.c:1770
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "tokens %s and %s both assigned number %d"
|
msgid "tokens %s and %s both assigned number %d"
|
||||||
msgstr "märkidele %s ja %s on mõlemale omistatud number %d"
|
msgstr "märkidele %s ja %s on mõlemale omistatud number %d"
|
||||||
|
|
||||||
#: src/reader.c:1782
|
#: src/reader.c:1828
|
||||||
|
#, c-format
|
||||||
|
msgid "conflicting precedences for %s and %s"
|
||||||
|
msgstr "%s ja %s omavad konfliktseid prioriteete"
|
||||||
|
|
||||||
|
#: src/reader.c:1840
|
||||||
|
#, c-format
|
||||||
|
msgid "conflicting assoc values for %s and %s"
|
||||||
|
msgstr "%s ja %s omavad konfliktseid assotsiatiivseid väärtuseid"
|
||||||
|
|
||||||
|
#: src/reader.c:1879
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "the start symbol %s is undefined"
|
msgid "the start symbol %s is undefined"
|
||||||
msgstr "stardisümbol %s ei ole defineeritud"
|
msgstr "stardisümbol %s ei ole defineeritud"
|
||||||
|
|
||||||
#: src/reader.c:1784
|
#: src/reader.c:1881
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "the start symbol %s is a token"
|
msgid "the start symbol %s is a token"
|
||||||
msgstr "stardisümbol %s on märk"
|
msgstr "stardisümbol %s on märk"
|
||||||
|
|
||||||
#: src/reduce.c:401
|
#: src/reduce.c:409
|
||||||
msgid "Useless nonterminals:"
|
msgid "Useless nonterminals:"
|
||||||
msgstr "Kasutamata mitteterminalid:"
|
msgstr "Kasutamata mitteterminalid:"
|
||||||
|
|
||||||
#: src/reduce.c:416
|
#: src/reduce.c:422
|
||||||
msgid "Terminals which are not used:"
|
msgid "Terminals which are not used:"
|
||||||
msgstr "Terminalid, mida ei kasutatud:"
|
msgstr "Terminalid, mida ei kasutatud:"
|
||||||
|
|
||||||
#: src/reduce.c:427
|
#: src/reduce.c:433
|
||||||
msgid "Useless rules:"
|
msgid "Useless rules:"
|
||||||
msgstr "Kasutamata reeglid:"
|
msgstr "Kasutamata reeglid:"
|
||||||
|
|
||||||
#: src/reduce.c:456
|
#: src/reduce.c:503
|
||||||
msgid ""
|
|
||||||
"Variables\n"
|
|
||||||
"---------\n"
|
|
||||||
"\n"
|
|
||||||
msgstr ""
|
|
||||||
"Muutujad\n"
|
|
||||||
"--------\n"
|
|
||||||
"\n"
|
|
||||||
|
|
||||||
#: src/reduce.c:458
|
|
||||||
msgid "Value Sprec Sassoc Tag\n"
|
|
||||||
msgstr "Value Sprec Sassoc Tag\n"
|
|
||||||
|
|
||||||
#: src/reduce.c:463
|
|
||||||
msgid ""
|
|
||||||
"Rules\n"
|
|
||||||
"-----\n"
|
|
||||||
"\n"
|
|
||||||
msgstr ""
|
|
||||||
"Reeglid\n"
|
|
||||||
"-------\n"
|
|
||||||
"\n"
|
|
||||||
|
|
||||||
#: src/reduce.c:474
|
|
||||||
msgid ""
|
|
||||||
"Rules interpreted\n"
|
|
||||||
"-----------------\n"
|
|
||||||
"\n"
|
|
||||||
msgstr ""
|
|
||||||
"Interpreteeritud reeglid\n"
|
|
||||||
"------------------------\n"
|
|
||||||
"\n"
|
|
||||||
|
|
||||||
#: src/reduce.c:491
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d rules never reduced\n"
|
msgid "%d rule never reduced\n"
|
||||||
msgstr "%d reeglit ei redutseeritud\n"
|
msgid_plural "%d rules never reduced\n"
|
||||||
|
msgstr[0] "%d reegel ei redutseeru\n"
|
||||||
|
msgstr[1] "%d reeglit ei redutseeru\n"
|
||||||
|
|
||||||
#: src/reduce.c:493
|
#: src/reduce.c:511
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s contains "
|
msgid "%d useless nonterminal"
|
||||||
msgstr "%s sisaldab "
|
msgid_plural "%d useless nonterminals"
|
||||||
|
msgstr[0] "%d kasutamata mitteterminal"
|
||||||
|
msgstr[1] "%d kasutamata mitteterminali"
|
||||||
|
|
||||||
#: src/reduce.c:497
|
#: src/reduce.c:517
|
||||||
#, c-format
|
|
||||||
msgid "%d useless nonterminal%s"
|
|
||||||
msgstr "%d kasutamata mitteterminali%s"
|
|
||||||
|
|
||||||
#: src/reduce.c:502
|
|
||||||
msgid " and "
|
msgid " and "
|
||||||
msgstr " ja "
|
msgstr " ja "
|
||||||
|
|
||||||
#: src/reduce.c:506
|
#: src/reduce.c:520
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%d useless rule%s"
|
msgid "%d useless rule"
|
||||||
msgstr "%d kasutamata reeglit%s"
|
msgid_plural "%d useless rules"
|
||||||
|
msgstr[0] "%d kasutamata reegel"
|
||||||
|
msgstr[1] "%d kasutamata reeglit"
|
||||||
|
|
||||||
#: src/reduce.c:539
|
#: src/reduce.c:551
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Start symbol %s does not derive any sentence"
|
msgid "Start symbol %s does not derive any sentence"
|
||||||
msgstr "Stardisümbolist %s ei tuletata ühtegi lauset"
|
msgstr "Stardisümbolist %s ei tuletata ühtegi lauset"
|
||||||
|
|
||||||
#: src/reduce.c:552
|
|
||||||
#, c-format
|
|
||||||
msgid ""
|
|
||||||
"reduced %s defines %d terminal%s, %d nonterminal%s, and %d production%s.\n"
|
|
||||||
msgstr ""
|
|
||||||
"redutseeritud %s defineerib %d terminali%s, %d mitteterminali%s ja %d reeglit"
|
|
||||||
"%s.\n"
|
|
||||||
|
|
||||||
#: lib/getopt.c:694
|
#: lib/getopt.c:694
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: option `%s' is ambiguous\n"
|
msgid "%s: option `%s' is ambiguous\n"
|
||||||
@@ -724,19 +684,16 @@ msgstr "%s: v
|
|||||||
msgid "%s: option `%s' requires an argument\n"
|
msgid "%s: option `%s' requires an argument\n"
|
||||||
msgstr "%s: võti `%s' nõuab argumenti\n"
|
msgstr "%s: võti `%s' nõuab argumenti\n"
|
||||||
|
|
||||||
#. --option
|
|
||||||
#: lib/getopt.c:771
|
#: lib/getopt.c:771
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: unrecognized option `--%s'\n"
|
msgid "%s: unrecognized option `--%s'\n"
|
||||||
msgstr "%s: tundmatu võti `--%s'\n"
|
msgstr "%s: tundmatu võti `--%s'\n"
|
||||||
|
|
||||||
#. +option or -option
|
|
||||||
#: lib/getopt.c:775
|
#: lib/getopt.c:775
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: unrecognized option `%c%s'\n"
|
msgid "%s: unrecognized option `%c%s'\n"
|
||||||
msgstr "%s: tundmatu võti `%c%s'\n"
|
msgstr "%s: tundmatu võti `%c%s'\n"
|
||||||
|
|
||||||
#. 1003.2 specifies the format of this message.
|
|
||||||
#: lib/getopt.c:801
|
#: lib/getopt.c:801
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: illegal option -- %c\n"
|
msgid "%s: illegal option -- %c\n"
|
||||||
@@ -747,7 +704,6 @@ msgstr "%s: lubamatu v
|
|||||||
msgid "%s: invalid option -- %c\n"
|
msgid "%s: invalid option -- %c\n"
|
||||||
msgstr "%s: vigane võti -- %c\n"
|
msgstr "%s: vigane võti -- %c\n"
|
||||||
|
|
||||||
#. 1003.2 specifies the format of this message.
|
|
||||||
#: lib/getopt.c:834 lib/getopt.c:964
|
#: lib/getopt.c:834 lib/getopt.c:964
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: option requires an argument -- %c\n"
|
msgid "%s: option requires an argument -- %c\n"
|
||||||
@@ -763,30 +719,14 @@ msgstr "%s: v
|
|||||||
msgid "%s: option `-W %s' doesn't allow an argument\n"
|
msgid "%s: option `-W %s' doesn't allow an argument\n"
|
||||||
msgstr "%s: võti `-W %s' ei luba argumenti\n"
|
msgstr "%s: võti `-W %s' ei luba argumenti\n"
|
||||||
|
|
||||||
#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
|
|
||||||
#. before exiting when memory is exhausted. Goes through gettext.
|
|
||||||
#: lib/obstack.c:494 lib/obstack.c:497 lib/xmalloc.c:66
|
#: lib/obstack.c:494 lib/obstack.c:497 lib/xmalloc.c:66
|
||||||
msgid "memory exhausted"
|
msgid "memory exhausted"
|
||||||
msgstr "mälu on otsas"
|
msgstr "mälu on otsas"
|
||||||
|
|
||||||
#. Get translations for open and closing quotation marks.
|
#: lib/quotearg.c:274
|
||||||
#.
|
|
||||||
#. The message catalog should translate "`" to a left
|
|
||||||
#. quotation mark suitable for the locale, and similarly for
|
|
||||||
#. "'". If the catalog has no translation,
|
|
||||||
#. locale_quoting_style quotes `like this', and
|
|
||||||
#. clocale_quoting_style quotes "like this".
|
|
||||||
#.
|
|
||||||
#. For example, an American English Unicode locale should
|
|
||||||
#. translate "`" to U+201C (LEFT DOUBLE QUOTATION MARK), and
|
|
||||||
#. should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
|
|
||||||
#. MARK). A British English Unicode locale should instead
|
|
||||||
#. translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
|
|
||||||
#. U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
|
|
||||||
#: lib/quotearg.c:268
|
|
||||||
msgid "`"
|
msgid "`"
|
||||||
msgstr "`"
|
msgstr "`"
|
||||||
|
|
||||||
#: lib/quotearg.c:269
|
#: lib/quotearg.c:275
|
||||||
msgid "'"
|
msgid "'"
|
||||||
msgstr "'"
|
msgstr "'"
|
||||||
|
|||||||
@@ -0,0 +1,740 @@
|
|||||||
|
# Italian translation for message of GNU bison.
|
||||||
|
# Copyright (C) 2002 Free Software Foundation, Inc.
|
||||||
|
# Paolo Bonzini <[email protected]>, 2002.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: bison 1.31\n"
|
||||||
|
"POT-Creation-Date: 2002-03-20 09:33+0100\n"
|
||||||
|
"PO-Revision-Date: 2002-01-23 14:16+0100\n"
|
||||||
|
"Last-Translator: Paolo Bonzini <[email protected]>\n"
|
||||||
|
"Language-Team: Italian <[email protected]>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=ISO-8859-1\n"
|
||||||
|
"Content-Transfer-Encoding: 8-bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#: src/LR0.c:189
|
||||||
|
#, c-format
|
||||||
|
msgid "too many states (max %d)"
|
||||||
|
msgstr "troppi stati (massimo %d)"
|
||||||
|
|
||||||
|
#: src/complain.c:99 lib/error.c:128 lib/error.c:156
|
||||||
|
msgid "Unknown system error"
|
||||||
|
msgstr "Errore di sistema sconosciuto"
|
||||||
|
|
||||||
|
#: src/complain.c:150
|
||||||
|
msgid "warning: "
|
||||||
|
msgstr "attenzione: "
|
||||||
|
|
||||||
|
#: src/complain.c:238
|
||||||
|
msgid "fatal error: "
|
||||||
|
msgstr "errore fatale: "
|
||||||
|
|
||||||
|
#: src/conflicts.c:44
|
||||||
|
#, c-format
|
||||||
|
msgid "Conflict in state %d between rule %d and token %s resolved as %s.\n"
|
||||||
|
msgstr ""
|
||||||
|
"Conflitto nello stato %d tra la regola %d e il token %s risolto come %s.\n"
|
||||||
|
|
||||||
|
#: src/conflicts.c:94 src/conflicts.c:119
|
||||||
|
msgid "reduce"
|
||||||
|
msgstr "riduzione"
|
||||||
|
|
||||||
|
#: src/conflicts.c:101 src/conflicts.c:115
|
||||||
|
msgid "shift"
|
||||||
|
msgstr "shift"
|
||||||
|
|
||||||
|
#: src/conflicts.c:123
|
||||||
|
msgid "an error"
|
||||||
|
msgstr "un errore"
|
||||||
|
|
||||||
|
#: src/conflicts.c:302
|
||||||
|
#, c-format
|
||||||
|
msgid "%d shift/reduce conflict"
|
||||||
|
msgid_plural "%d shift/reduce conflicts"
|
||||||
|
msgstr[0] "%d conflitto shift/riduzione"
|
||||||
|
msgstr[1] "%d conflitti shift/riduzione"
|
||||||
|
|
||||||
|
#: src/conflicts.c:309
|
||||||
|
msgid "and"
|
||||||
|
msgstr "e"
|
||||||
|
|
||||||
|
#: src/conflicts.c:315
|
||||||
|
#, c-format
|
||||||
|
msgid "%d reduce/reduce conflict"
|
||||||
|
msgid_plural "%d reduce/reduce conflicts"
|
||||||
|
msgstr[0] "%d conflitto riduzione/riduzione"
|
||||||
|
msgstr[1] "%d conflitti riduzione/riduzione"
|
||||||
|
|
||||||
|
#: src/conflicts.c:340
|
||||||
|
#, c-format
|
||||||
|
msgid "State %d contains "
|
||||||
|
msgstr "Lo stato %d contiene"
|
||||||
|
|
||||||
|
#: src/conflicts.c:387
|
||||||
|
msgid "conflicts: "
|
||||||
|
msgstr "conflitti: "
|
||||||
|
|
||||||
|
#: src/conflicts.c:389
|
||||||
|
#, c-format
|
||||||
|
msgid " %d shift/reduce"
|
||||||
|
msgstr " %d shift/riduzione"
|
||||||
|
|
||||||
|
#: src/conflicts.c:393
|
||||||
|
#, c-format
|
||||||
|
msgid " %d reduce/reduce"
|
||||||
|
msgstr " %d riduzione/riduzione"
|
||||||
|
|
||||||
|
#: src/conflicts.c:398 src/reduce.c:508
|
||||||
|
#, c-format
|
||||||
|
msgid "%s contains "
|
||||||
|
msgstr "%s contiene "
|
||||||
|
|
||||||
|
#: src/conflicts.c:412
|
||||||
|
#, c-format
|
||||||
|
msgid "expected %d shift/reduce conflict\n"
|
||||||
|
msgid_plural "expected %d shift/reduce conflicts\n"
|
||||||
|
msgstr[0] "atteso %d conflitto shift/riduzione\n"
|
||||||
|
msgstr[1] "attesi %d conflitti shift/riduzione\n"
|
||||||
|
|
||||||
|
#: src/conflicts.c:463 src/conflicts.c:540
|
||||||
|
#, c-format
|
||||||
|
msgid " %-4s\t[reduce using rule %d (%s)]\n"
|
||||||
|
msgstr " %-4s\t[riduzione con la regole %d (%s)]\n"
|
||||||
|
|
||||||
|
#: src/conflicts.c:467 src/print.c:154
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
" $default\treduce using rule %d (%s)\n"
|
||||||
|
"\n"
|
||||||
|
msgstr ""
|
||||||
|
" $default\triduzione con la regola %d (%s)\n"
|
||||||
|
"\n"
|
||||||
|
|
||||||
|
#: src/conflicts.c:521 src/conflicts.c:534
|
||||||
|
#, c-format
|
||||||
|
msgid " %-4s\treduce using rule %d (%s)\n"
|
||||||
|
msgstr " %-4s\triduzione con la regola %d (%s)\n"
|
||||||
|
|
||||||
|
#: src/conflicts.c:550
|
||||||
|
#, c-format
|
||||||
|
msgid " $default\treduce using rule %d (%s)\n"
|
||||||
|
msgstr " $default\triduzione con la regola %d (%s)\n"
|
||||||
|
|
||||||
|
#: src/files.c:151
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot open file `%s'"
|
||||||
|
msgstr "impossibile aprire il file `%s'"
|
||||||
|
|
||||||
|
#: src/files.c:170
|
||||||
|
msgid "cannot close file"
|
||||||
|
msgstr "impossibile chiudere il file `%s'"
|
||||||
|
|
||||||
|
#: src/getargs.c:84
|
||||||
|
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
||||||
|
msgstr "GNU bison genera parser per grammatiche LALR(1).\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:88
|
||||||
|
#, c-format
|
||||||
|
msgid "Usage: %s [OPTION]... FILE\n"
|
||||||
|
msgstr "Utilizzo: %s [OPZIONE]... FILE\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:92
|
||||||
|
msgid ""
|
||||||
|
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
||||||
|
"for the equivalent short option also. Similarly for optional arguments.\n"
|
||||||
|
msgstr ""
|
||||||
|
"Se un argomento è indicato come obbligatorio in un'opzione lunga, allora\n"
|
||||||
|
"è obbligatorio anche per l'equivalente opzione corta. Analogamente per\n"
|
||||||
|
"gli argomenti opzionali.\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:98
|
||||||
|
msgid ""
|
||||||
|
"Operation modes:\n"
|
||||||
|
" -h, --help display this help and exit\n"
|
||||||
|
" -V, --version output version information and exit\n"
|
||||||
|
" -y, --yacc emulate POSIX yacc\n"
|
||||||
|
msgstr ""
|
||||||
|
"Modalità operative:\n"
|
||||||
|
" -h, --help mostra questo aiuto ed esce\n"
|
||||||
|
" -V, --version mostra informazioni sulla versione ed esce\n"
|
||||||
|
" -y, --yacc emula il comportamento di POSIX yacc\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:105
|
||||||
|
msgid ""
|
||||||
|
"Parser:\n"
|
||||||
|
" -S, --skeleton=FILE specify the skeleton to use\n"
|
||||||
|
" -t, --debug instrument the parser for debugging\n"
|
||||||
|
" --locations enable locations computation\n"
|
||||||
|
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
|
||||||
|
" -l, --no-lines don't generate `#line' directives\n"
|
||||||
|
" -n, --no-parser generate the tables only\n"
|
||||||
|
" -k, --token-table include a table of token names\n"
|
||||||
|
msgstr ""
|
||||||
|
" -S, --skeleton=FILE specifica lo scheletro da usare\n"
|
||||||
|
" -t, --debug aggiunge informazioni di debug al parser\n"
|
||||||
|
" --locations abilita il calcolo delle locazioni (@N)\n"
|
||||||
|
" -p, --name-prefix=PREFIX prepone PREFIX ai simboli globali\n"
|
||||||
|
" -l, --no-lines non genera direttive `#line'\n"
|
||||||
|
" -n, --no-parser genera le sole tabelle\n"
|
||||||
|
" -k, --token-table include una tabella di nomi dei token\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:117
|
||||||
|
msgid ""
|
||||||
|
"Output:\n"
|
||||||
|
" -d, --defines also produce a header file\n"
|
||||||
|
" -v, --verbose also produce an explanation of the automaton\n"
|
||||||
|
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
|
||||||
|
" -o, --output=FILE leave output to FILE\n"
|
||||||
|
" -g, --graph also produce a VCG description of the "
|
||||||
|
"automaton\n"
|
||||||
|
msgstr ""
|
||||||
|
"Output:\n"
|
||||||
|
" -d, --defines produce anche uno header\n"
|
||||||
|
" -v, --verbose produce anche una spiegazione dell'automa\n"
|
||||||
|
" -b, --file-prefix=PREFIX specifica un prefisso per il file di output\n"
|
||||||
|
" -o, --output=FILE lascia l'output in FILE\n"
|
||||||
|
" -g, --graph produce anche una descrizione VCG dell'automa\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:127
|
||||||
|
msgid "Report bugs to <[email protected]>.\n"
|
||||||
|
msgstr "Segnalare eventuali bug a <[email protected]>.\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:141
|
||||||
|
#, c-format
|
||||||
|
msgid "bison (GNU Bison) %s"
|
||||||
|
msgstr "bison (GNU Bison) %s"
|
||||||
|
|
||||||
|
#: src/getargs.c:146
|
||||||
|
msgid ""
|
||||||
|
"Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002\n"
|
||||||
|
"Free Software Foundation, Inc.\n"
|
||||||
|
msgstr ""
|
||||||
|
"Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002\n"
|
||||||
|
"Free Software Foundation, Inc.\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:151
|
||||||
|
msgid ""
|
||||||
|
"This is free software; see the source for copying conditions. There is NO\n"
|
||||||
|
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
||||||
|
msgstr ""
|
||||||
|
"Questo e' software libero; vedere il sorgente per le condizioni cui e'\n"
|
||||||
|
"sottoposta la copia. NON c'è ALCUNA garanzia, neanche di\n"
|
||||||
|
"COMMERCIABILITA` o di ADEGUATEZZA AD UN PARTICOLARE SCOPO.\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:230 src/lex.c:705
|
||||||
|
#, c-format
|
||||||
|
msgid "`%s' is no longer supported"
|
||||||
|
msgstr "`%s' non è più supportato"
|
||||||
|
|
||||||
|
#: src/getargs.c:254
|
||||||
|
#, c-format
|
||||||
|
msgid "Try `%s --help' for more information.\n"
|
||||||
|
msgstr "Provare `%s --help' per ulteriori informazioni.\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:261
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: no grammar file given\n"
|
||||||
|
msgstr "%s: nessun file grammatica specificato\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:265
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: extra arguments ignored after `%s'\n"
|
||||||
|
msgstr "%s: ignorati gli argomenti successivi a `%s'\n"
|
||||||
|
|
||||||
|
#: src/lalr.c:256
|
||||||
|
#, c-format
|
||||||
|
msgid "too many gotos (max %d)"
|
||||||
|
msgstr "troppi goto (max %d)"
|
||||||
|
|
||||||
|
#: src/lex.c:76
|
||||||
|
msgid "unexpected `/' found and ignored"
|
||||||
|
msgstr "`/' inatteso, trovato e ignorato"
|
||||||
|
|
||||||
|
#: src/lex.c:105 src/reader.c:280
|
||||||
|
msgid "unterminated comment"
|
||||||
|
msgstr "commento non terminato"
|
||||||
|
|
||||||
|
#: src/lex.c:137
|
||||||
|
msgid "unexpected end of file"
|
||||||
|
msgstr "fine del file inattesa"
|
||||||
|
|
||||||
|
# Oder soll man den Begriff "Escapezeichen" verwenden?
|
||||||
|
#: src/lex.c:166
|
||||||
|
msgid "unescaped newline in constant"
|
||||||
|
msgstr "fine di linea non preceduta da `\\' in una costante"
|
||||||
|
|
||||||
|
#: src/lex.c:208
|
||||||
|
#, c-format
|
||||||
|
msgid "octal value outside range 0...255: `\\%o'"
|
||||||
|
msgstr "valore ottale fuori dall'intervallo 0...255: `\\%o'"
|
||||||
|
|
||||||
|
#: src/lex.c:233
|
||||||
|
#, c-format
|
||||||
|
msgid "hexadecimal value above 255: `\\x%x'"
|
||||||
|
msgstr "valore esadecimale superiore a 255: `\\x%x'"
|
||||||
|
|
||||||
|
#: src/lex.c:245
|
||||||
|
#, c-format
|
||||||
|
msgid "unknown escape sequence: `\\' followed by `%s'"
|
||||||
|
msgstr "sequenza di escape sconosciuta: `\\' seguito da `%s'"
|
||||||
|
|
||||||
|
#: src/lex.c:342
|
||||||
|
msgid "unterminated type name at end of file"
|
||||||
|
msgstr "nome di tipo non terminato a fine file"
|
||||||
|
|
||||||
|
#: src/lex.c:345
|
||||||
|
msgid "unterminated type name"
|
||||||
|
msgstr "nome di tipo non terminato"
|
||||||
|
|
||||||
|
#: src/lex.c:438
|
||||||
|
msgid "use \"...\" for multi-character literal tokens"
|
||||||
|
msgstr "usa \"...\" per token letterali di più caratteri"
|
||||||
|
|
||||||
|
#: src/lex.c:678
|
||||||
|
#, c-format
|
||||||
|
msgid "`%s' supports no argument: %s"
|
||||||
|
msgstr "`%s' non supporta argomenti: %s"
|
||||||
|
|
||||||
|
#: src/lex.c:694
|
||||||
|
#, c-format
|
||||||
|
msgid "`%s' requires an argument"
|
||||||
|
msgstr "`%s' richiede un argomento"
|
||||||
|
|
||||||
|
#: src/output.c:951
|
||||||
|
#, c-format
|
||||||
|
msgid "maximum table size (%d) exceeded"
|
||||||
|
msgstr "ecceduta la dimensione massima di una tabella (%d)"
|
||||||
|
|
||||||
|
#: src/print.c:39
|
||||||
|
#, c-format
|
||||||
|
msgid " type %d is %s\n"
|
||||||
|
msgstr " il tipo %d è %s\n"
|
||||||
|
|
||||||
|
#: src/print.c:88
|
||||||
|
#, c-format
|
||||||
|
msgid " (rule %d)"
|
||||||
|
msgstr " (regola %d)"
|
||||||
|
|
||||||
|
#: src/print.c:108
|
||||||
|
msgid " $default\taccept\n"
|
||||||
|
msgstr " $default\taccetta\n"
|
||||||
|
|
||||||
|
#: src/print.c:110
|
||||||
|
msgid " NO ACTIONS\n"
|
||||||
|
msgstr " NESSUNA AZIONE\n"
|
||||||
|
|
||||||
|
#: src/print.c:124
|
||||||
|
#, c-format
|
||||||
|
msgid " $ \tgo to state %d\n"
|
||||||
|
msgstr " $ \tprosecuzione allo stato %d\n"
|
||||||
|
|
||||||
|
#: src/print.c:127
|
||||||
|
#, c-format
|
||||||
|
msgid " %-4s\tshift, and go to state %d\n"
|
||||||
|
msgstr " %-4s\tshift e prosecuzione allo stato %d\n"
|
||||||
|
|
||||||
|
#: src/print.c:142
|
||||||
|
#, c-format
|
||||||
|
msgid " %-4s\terror (nonassociative)\n"
|
||||||
|
msgstr " %-4s\terrore (non associativo)\n"
|
||||||
|
|
||||||
|
#: src/print.c:169
|
||||||
|
#, c-format
|
||||||
|
msgid " %-4s\tgo to state %d\n"
|
||||||
|
msgstr " %-4s\tprosecuzione allo stato %d\n"
|
||||||
|
|
||||||
|
#: src/print.c:180
|
||||||
|
#, c-format
|
||||||
|
msgid "state %d"
|
||||||
|
msgstr "stato %d"
|
||||||
|
|
||||||
|
#: src/print.c:211
|
||||||
|
msgid "Grammar"
|
||||||
|
msgstr "Grammatica"
|
||||||
|
|
||||||
|
#: src/print.c:212
|
||||||
|
msgid "Number, Line, Rule"
|
||||||
|
msgstr "Numero, Linea, Regola"
|
||||||
|
|
||||||
|
#: src/print.c:217
|
||||||
|
#, c-format
|
||||||
|
msgid " %3d %3d %s ->"
|
||||||
|
msgstr " %3d %3d %s ->"
|
||||||
|
|
||||||
|
#: src/print.c:224
|
||||||
|
msgid "empty"
|
||||||
|
msgstr "vuoto"
|
||||||
|
|
||||||
|
#: src/print.c:231
|
||||||
|
msgid "Terminals, with rules where they appear"
|
||||||
|
msgstr "Simboli terminali e regole in cui appaiono"
|
||||||
|
|
||||||
|
#: src/print.c:256
|
||||||
|
msgid "Nonterminals, with rules where they appear"
|
||||||
|
msgstr "Simboli nonterminali e regole in cui appaiono"
|
||||||
|
|
||||||
|
#: src/print.c:282
|
||||||
|
msgid " on left:"
|
||||||
|
msgstr " nel primo membro:"
|
||||||
|
|
||||||
|
#: src/print.c:297
|
||||||
|
msgid " on right:"
|
||||||
|
msgstr " nel secondo membro:"
|
||||||
|
|
||||||
|
#: src/print_graph.c:146
|
||||||
|
#, c-format
|
||||||
|
msgid "%-4s\terror (nonassociative)"
|
||||||
|
msgstr "%-4s\terrore (non associativo)"
|
||||||
|
|
||||||
|
#: src/print_graph.c:161
|
||||||
|
#, c-format
|
||||||
|
msgid "$default\treduce using rule %d (%s)"
|
||||||
|
msgstr "$default\triduzione con la regola %d (%s)"
|
||||||
|
|
||||||
|
#: src/reader.c:89
|
||||||
|
msgid " Skipping to next \\n"
|
||||||
|
msgstr " Passo al successivo \\n"
|
||||||
|
|
||||||
|
#: src/reader.c:91
|
||||||
|
#, c-format
|
||||||
|
msgid " Skipping to next %c"
|
||||||
|
msgstr " Passo al successivo %c"
|
||||||
|
|
||||||
|
#: src/reader.c:142 src/reader.c:154
|
||||||
|
msgid "invalid $ value"
|
||||||
|
msgstr "valore $ non valido"
|
||||||
|
|
||||||
|
#: src/reader.c:180 src/reader.c:195
|
||||||
|
msgid "unterminated string at end of file"
|
||||||
|
msgstr "stringa non terminata alla fine del file"
|
||||||
|
|
||||||
|
#: src/reader.c:183
|
||||||
|
msgid "unterminated string"
|
||||||
|
msgstr "stringa non terminata"
|
||||||
|
|
||||||
|
#: src/reader.c:339
|
||||||
|
#, fuzzy
|
||||||
|
msgid "invalid @ value"
|
||||||
|
msgstr "valore $ non valido"
|
||||||
|
|
||||||
|
#: src/reader.c:352 src/reader.c:416
|
||||||
|
#, c-format
|
||||||
|
msgid "%s is invalid"
|
||||||
|
msgstr "%s non è valido"
|
||||||
|
|
||||||
|
#: src/reader.c:392
|
||||||
|
#, c-format
|
||||||
|
msgid "$$ of `%s' has no declared type"
|
||||||
|
msgstr "Manca una dichiarazione di tipo per $$ di `%s'"
|
||||||
|
|
||||||
|
#: src/reader.c:409
|
||||||
|
#, c-format
|
||||||
|
msgid "$%d of `%s' has no declared type"
|
||||||
|
msgstr "Manca una dichiarazione di tipo per $%d di `%s'"
|
||||||
|
|
||||||
|
#: src/reader.c:463
|
||||||
|
msgid "unterminated `%{' definition"
|
||||||
|
msgstr "definizione `%{' non terminata"
|
||||||
|
|
||||||
|
#: src/reader.c:508 src/reader.c:623 src/reader.c:673
|
||||||
|
#, c-format
|
||||||
|
msgid "Premature EOF after %s"
|
||||||
|
msgstr "Fine di file prematura dopo %s"
|
||||||
|
|
||||||
|
#: src/reader.c:525
|
||||||
|
#, c-format
|
||||||
|
msgid "symbol `%s' used more than once as a literal string"
|
||||||
|
msgstr "simbolo `%s' usato più di una volta in una stringa letterale"
|
||||||
|
|
||||||
|
#: src/reader.c:528
|
||||||
|
#, c-format
|
||||||
|
msgid "symbol `%s' given more than one literal string"
|
||||||
|
msgstr "il simbolo `%s' dà pi` di una stringa letterale"
|
||||||
|
|
||||||
|
#: src/reader.c:549 src/reader.c:692
|
||||||
|
#, c-format
|
||||||
|
msgid "symbol %s redefined"
|
||||||
|
msgstr "simbolo %s ridefinito"
|
||||||
|
|
||||||
|
#: src/reader.c:559 src/reader.c:638 src/reader.c:699 src/reader.c:1315
|
||||||
|
#, c-format
|
||||||
|
msgid "type redeclaration for %s"
|
||||||
|
msgstr "tipo dichiarato due volte per %s"
|
||||||
|
|
||||||
|
#: src/reader.c:568
|
||||||
|
#, c-format
|
||||||
|
msgid "`%s' is invalid in %s"
|
||||||
|
msgstr "`%s' non è valido in %s"
|
||||||
|
|
||||||
|
#: src/reader.c:586 src/reader.c:752
|
||||||
|
#, c-format
|
||||||
|
msgid "multiple %s declarations"
|
||||||
|
msgstr "dichiarazioni multiple per %s"
|
||||||
|
|
||||||
|
#: src/reader.c:588 src/reader.c:931 src/reader.c:956 src/reader.c:1293
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid %s declaration"
|
||||||
|
msgstr "dichiarazione %s non valida"
|
||||||
|
|
||||||
|
#: src/reader.c:608
|
||||||
|
msgid "%type declaration has no <typename>"
|
||||||
|
msgstr "dichiarazione %type senza <nome di tipo>"
|
||||||
|
|
||||||
|
#: src/reader.c:643
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid %%type declaration due to item: %s"
|
||||||
|
msgstr "dichiarazione %%type non valida per la presenza di `%s'"
|
||||||
|
|
||||||
|
#: src/reader.c:688
|
||||||
|
#, c-format
|
||||||
|
msgid "redefining precedence of %s"
|
||||||
|
msgstr "precedenza di `%s' definita due volte"
|
||||||
|
|
||||||
|
#: src/reader.c:711
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid text (%s) - number should be after identifier"
|
||||||
|
msgstr "testo non valido (%s) - il numero dovrebbe seguire l'identificatore"
|
||||||
|
|
||||||
|
#: src/reader.c:721
|
||||||
|
#, c-format
|
||||||
|
msgid "unexpected item: %s"
|
||||||
|
msgstr "elemento inatteso: %s"
|
||||||
|
|
||||||
|
#: src/reader.c:795 src/reader.c:1127 src/reader.c:1204
|
||||||
|
#, c-format
|
||||||
|
msgid "unmatched %s"
|
||||||
|
msgstr "%s non bilanciato"
|
||||||
|
|
||||||
|
#: src/reader.c:827
|
||||||
|
#, c-format
|
||||||
|
msgid "argument of %%expect is not an integer"
|
||||||
|
msgstr "L'argomento di %%expect non è un intero"
|
||||||
|
|
||||||
|
#: src/reader.c:873
|
||||||
|
#, c-format
|
||||||
|
msgid "unrecognized item %s, expected an identifier"
|
||||||
|
msgstr "elemento %s non riconosciuto, atteso un identificatore"
|
||||||
|
|
||||||
|
#: src/reader.c:895
|
||||||
|
#, c-format
|
||||||
|
msgid "expected string constant instead of %s"
|
||||||
|
msgstr "attesa una costante stringa invece di %s"
|
||||||
|
|
||||||
|
#: src/reader.c:1043
|
||||||
|
#, c-format
|
||||||
|
msgid "unrecognized: %s"
|
||||||
|
msgstr "non riconosciuto: %s"
|
||||||
|
|
||||||
|
#: src/reader.c:1048
|
||||||
|
msgid "no input grammar"
|
||||||
|
msgstr "nessuna grammatica di input"
|
||||||
|
|
||||||
|
#: src/reader.c:1053
|
||||||
|
#, c-format
|
||||||
|
msgid "unknown character: %s"
|
||||||
|
msgstr "carattere sconosciuto: %s"
|
||||||
|
|
||||||
|
#: src/reader.c:1227
|
||||||
|
#, c-format
|
||||||
|
msgid "unterminated %guard clause"
|
||||||
|
msgstr "clausola %guard non terminata"
|
||||||
|
|
||||||
|
#: src/reader.c:1380
|
||||||
|
msgid "ill-formed rule: initial symbol not followed by colon"
|
||||||
|
msgstr "regola malformata: simbolo iniziale non seguito da `:'"
|
||||||
|
|
||||||
|
#: src/reader.c:1387
|
||||||
|
msgid "grammar starts with vertical bar"
|
||||||
|
msgstr "la grammatica comincia con un `|'"
|
||||||
|
|
||||||
|
#: src/reader.c:1415
|
||||||
|
#, c-format
|
||||||
|
msgid "rule given for %s, which is a token"
|
||||||
|
msgstr "fornita una regola per il token %s"
|
||||||
|
|
||||||
|
#: src/reader.c:1445 src/reader.c:1557
|
||||||
|
msgid "previous rule lacks an ending `;'"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/reader.c:1518
|
||||||
|
msgid "two @prec's in a row"
|
||||||
|
msgstr "due @prec di seguito"
|
||||||
|
|
||||||
|
#: src/reader.c:1526
|
||||||
|
#, c-format
|
||||||
|
msgid "%%guard present but %%semantic_parser not specified"
|
||||||
|
msgstr "trovato %%guard senza che sia specificato %%semantic_parser"
|
||||||
|
|
||||||
|
#: src/reader.c:1535
|
||||||
|
msgid "two actions at end of one rule"
|
||||||
|
msgstr "due azioni alla fine di una regola"
|
||||||
|
|
||||||
|
#: src/reader.c:1549
|
||||||
|
#, c-format
|
||||||
|
msgid "type clash (`%s' `%s') on default action"
|
||||||
|
msgstr "conflitto di tipo (`%s' e `%s') nell'azione di default"
|
||||||
|
|
||||||
|
#: src/reader.c:1555
|
||||||
|
msgid "empty rule for typed nonterminal, and no action"
|
||||||
|
msgstr "regola vuota e nessuna azione per un nonterminale con tipo"
|
||||||
|
|
||||||
|
#: src/reader.c:1601
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid input: %s"
|
||||||
|
msgstr "input non valido: %s"
|
||||||
|
|
||||||
|
#: src/reader.c:1609
|
||||||
|
#, c-format
|
||||||
|
msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
||||||
|
msgstr "troppi simboli (token e nonterminali); il massimo è %d"
|
||||||
|
|
||||||
|
#: src/reader.c:1612
|
||||||
|
msgid "no rules in the input grammar"
|
||||||
|
msgstr "nessuna regola nella grammatica di input"
|
||||||
|
|
||||||
|
#: src/reader.c:1640
|
||||||
|
#, c-format
|
||||||
|
msgid "symbol %s is used, but is not defined as a token and has no rules"
|
||||||
|
msgstr "usato il simbolo %s, ma non è un token e non ha regole"
|
||||||
|
|
||||||
|
#: src/reader.c:1775
|
||||||
|
#, c-format
|
||||||
|
msgid "tokens %s and %s both assigned number %d"
|
||||||
|
msgstr "i token %s e %s hanno lo stesso numero %d"
|
||||||
|
|
||||||
|
#: src/reader.c:1828
|
||||||
|
#, c-format
|
||||||
|
msgid "conflicting precedences for %s and %s"
|
||||||
|
msgstr "precedenze in conflitto per %s und %s"
|
||||||
|
|
||||||
|
#: src/reader.c:1840
|
||||||
|
#, c-format
|
||||||
|
msgid "conflicting assoc values for %s and %s"
|
||||||
|
msgstr "associatività in conflitto per %s e %s"
|
||||||
|
|
||||||
|
#: src/reader.c:1879
|
||||||
|
#, c-format
|
||||||
|
msgid "the start symbol %s is undefined"
|
||||||
|
msgstr "simbolo iniziale %s non definito"
|
||||||
|
|
||||||
|
#: src/reader.c:1881
|
||||||
|
#, c-format
|
||||||
|
msgid "the start symbol %s is a token"
|
||||||
|
msgstr "specificato il token %s come simbolo iniziale"
|
||||||
|
|
||||||
|
#: src/reduce.c:409
|
||||||
|
msgid "Useless nonterminals:"
|
||||||
|
msgstr "Simboli nonterminali inutili:"
|
||||||
|
|
||||||
|
#: src/reduce.c:422
|
||||||
|
msgid "Terminals which are not used:"
|
||||||
|
msgstr "Simboli terminali inutilizzati:"
|
||||||
|
|
||||||
|
#: src/reduce.c:433
|
||||||
|
msgid "Useless rules:"
|
||||||
|
msgstr "Regole inutili:"
|
||||||
|
|
||||||
|
#: src/reduce.c:503
|
||||||
|
#, c-format
|
||||||
|
msgid "%d rule never reduced\n"
|
||||||
|
msgid_plural "%d rules never reduced\n"
|
||||||
|
msgstr[0] "%d regola non applicata\n"
|
||||||
|
msgstr[1] "%d regole non applicate\n"
|
||||||
|
|
||||||
|
#: src/reduce.c:511
|
||||||
|
#, c-format
|
||||||
|
msgid "%d useless nonterminal"
|
||||||
|
msgid_plural "%d useless nonterminals"
|
||||||
|
msgstr[0] "%d simbolo nonterminale inutilizzato"
|
||||||
|
msgstr[1] "%d simboli nonterminali inutilizzati"
|
||||||
|
|
||||||
|
#: src/reduce.c:517
|
||||||
|
msgid " and "
|
||||||
|
msgstr " e "
|
||||||
|
|
||||||
|
#: src/reduce.c:520
|
||||||
|
#, c-format
|
||||||
|
msgid "%d useless rule"
|
||||||
|
msgid_plural "%d useless rules"
|
||||||
|
msgstr[0] "%d regola inutile"
|
||||||
|
msgstr[1] "%d regole inutili"
|
||||||
|
|
||||||
|
#: src/reduce.c:551
|
||||||
|
#, c-format
|
||||||
|
msgid "Start symbol %s does not derive any sentence"
|
||||||
|
msgstr "dal simbolo iniziale %s non deriva alcuna frase"
|
||||||
|
|
||||||
|
#: lib/getopt.c:694
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: option `%s' is ambiguous\n"
|
||||||
|
msgstr "%s: l'opzione `%s' è ambigua\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:719
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: option `--%s' doesn't allow an argument\n"
|
||||||
|
msgstr "%s: l'opzione `--%s' non ammette argomenti\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:724
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: option `%c%s' doesn't allow an argument\n"
|
||||||
|
msgstr "%s: l'opzione `%c%s' non ammette argomenti\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:742 lib/getopt.c:915
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: option `%s' requires an argument\n"
|
||||||
|
msgstr "%s: l'opzione `%s' richiede un argomento\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:771
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: unrecognized option `--%s'\n"
|
||||||
|
msgstr "%s: opzione sconosciuta `--%s'\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:775
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: unrecognized option `%c%s'\n"
|
||||||
|
msgstr "%s: opzione sconosciuta `%c%s'\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:801
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: illegal option -- %c\n"
|
||||||
|
msgstr "%s: opzione non valida -- %c\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:804
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: invalid option -- %c\n"
|
||||||
|
msgstr "%s: opzione non valida -- %c\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:834 lib/getopt.c:964
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: option requires an argument -- %c\n"
|
||||||
|
msgstr "%s: l'opzione richiede un argomento -- %c\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:881
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: option `-W %s' is ambiguous\n"
|
||||||
|
msgstr "%s: l'opzione `-W %s' è ambigua\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:899
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: option `-W %s' doesn't allow an argument\n"
|
||||||
|
msgstr "%s: l'opzione `-W %s' non ammette un argomento\n"
|
||||||
|
|
||||||
|
#: lib/obstack.c:494 lib/obstack.c:497 lib/xmalloc.c:66
|
||||||
|
msgid "memory exhausted"
|
||||||
|
msgstr "memoria esaurita"
|
||||||
|
|
||||||
|
#: lib/quotearg.c:274
|
||||||
|
msgid "`"
|
||||||
|
msgstr "`"
|
||||||
|
|
||||||
|
#: lib/quotearg.c:275
|
||||||
|
msgid "'"
|
||||||
|
msgstr "'"
|
||||||
|
|
||||||
|
#~ msgid "invalid value: %s%d"
|
||||||
|
#~ msgstr "valore non valido: %s%d"
|
||||||
|
|
||||||
|
#~ msgid "too many items (max %d)"
|
||||||
|
#~ msgstr "troppi elementi (max %d)"
|
||||||
@@ -0,0 +1,741 @@
|
|||||||
|
# Swedish messages for bison.
|
||||||
|
# Copyright © 2001, 2002 Free Software Foundation, Inc.
|
||||||
|
# Göran Uddeborg <[email protected]>, 2001, 2002.
|
||||||
|
# $Revision$
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: bison 1.33b\n"
|
||||||
|
"POT-Creation-Date: 2002-03-20 09:33+0100\n"
|
||||||
|
"PO-Revision-Date: 2002-03-05 10:18+0100\n"
|
||||||
|
"Last-Translator: Göran Uddeborg <[email protected]>\n"
|
||||||
|
"Language-Team: Swedish <[email protected]>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=iso-8859-1\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#: src/LR0.c:189
|
||||||
|
#, c-format
|
||||||
|
msgid "too many states (max %d)"
|
||||||
|
msgstr "för många tillstånd (max %d)"
|
||||||
|
|
||||||
|
#: src/complain.c:99 lib/error.c:128 lib/error.c:156
|
||||||
|
msgid "Unknown system error"
|
||||||
|
msgstr "Okänt systemfel"
|
||||||
|
|
||||||
|
#: src/complain.c:150
|
||||||
|
msgid "warning: "
|
||||||
|
msgstr "varning: "
|
||||||
|
|
||||||
|
#: src/complain.c:238
|
||||||
|
msgid "fatal error: "
|
||||||
|
msgstr "ödesdigert fel: "
|
||||||
|
|
||||||
|
#: src/conflicts.c:44
|
||||||
|
#, c-format
|
||||||
|
msgid "Conflict in state %d between rule %d and token %s resolved as %s.\n"
|
||||||
|
msgstr ""
|
||||||
|
"Konflikt i tillstånd %d mellan regel %d och element %s, löstes med %s.\n"
|
||||||
|
|
||||||
|
#: src/conflicts.c:94 src/conflicts.c:119
|
||||||
|
msgid "reduce"
|
||||||
|
msgstr "reducera"
|
||||||
|
|
||||||
|
#: src/conflicts.c:101 src/conflicts.c:115
|
||||||
|
msgid "shift"
|
||||||
|
msgstr "skifta"
|
||||||
|
|
||||||
|
#: src/conflicts.c:123
|
||||||
|
msgid "an error"
|
||||||
|
msgstr "ett fel"
|
||||||
|
|
||||||
|
#: src/conflicts.c:302
|
||||||
|
#, c-format
|
||||||
|
msgid "%d shift/reduce conflict"
|
||||||
|
msgid_plural "%d shift/reduce conflicts"
|
||||||
|
msgstr[0] "%d skifta/reducerakonflikt"
|
||||||
|
msgstr[1] "%d skifta/reducerakonflikter"
|
||||||
|
|
||||||
|
#: src/conflicts.c:309
|
||||||
|
msgid "and"
|
||||||
|
msgstr "och"
|
||||||
|
|
||||||
|
#: src/conflicts.c:315
|
||||||
|
#, c-format
|
||||||
|
msgid "%d reduce/reduce conflict"
|
||||||
|
msgid_plural "%d reduce/reduce conflicts"
|
||||||
|
msgstr[0] "%d reducera/reducerakonflikt"
|
||||||
|
msgstr[1] "%d reducera/reducerakonflikter"
|
||||||
|
|
||||||
|
#: src/conflicts.c:340
|
||||||
|
#, c-format
|
||||||
|
msgid "State %d contains "
|
||||||
|
msgstr "Tillstånd %d innehåller "
|
||||||
|
|
||||||
|
#: src/conflicts.c:387
|
||||||
|
msgid "conflicts: "
|
||||||
|
msgstr "konflikter: "
|
||||||
|
|
||||||
|
#: src/conflicts.c:389
|
||||||
|
#, c-format
|
||||||
|
msgid " %d shift/reduce"
|
||||||
|
msgstr " %d skifta/reducera"
|
||||||
|
|
||||||
|
#: src/conflicts.c:393
|
||||||
|
#, c-format
|
||||||
|
msgid " %d reduce/reduce"
|
||||||
|
msgstr " %d reducera/reducera"
|
||||||
|
|
||||||
|
#: src/conflicts.c:398 src/reduce.c:508
|
||||||
|
#, c-format
|
||||||
|
msgid "%s contains "
|
||||||
|
msgstr "%s innehåller "
|
||||||
|
|
||||||
|
#: src/conflicts.c:412
|
||||||
|
#, c-format
|
||||||
|
msgid "expected %d shift/reduce conflict\n"
|
||||||
|
msgid_plural "expected %d shift/reduce conflicts\n"
|
||||||
|
msgstr[0] "förväntade %d skifta/reducerakonflikt\n"
|
||||||
|
msgstr[1] "förväntade %d skifta/reducerakonflikter\n"
|
||||||
|
|
||||||
|
#: src/conflicts.c:463 src/conflicts.c:540
|
||||||
|
#, c-format
|
||||||
|
msgid " %-4s\t[reduce using rule %d (%s)]\n"
|
||||||
|
msgstr " %-4s\t[reducera med regel %d (%s)]\n"
|
||||||
|
|
||||||
|
#: src/conflicts.c:467 src/print.c:154
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
" $default\treduce using rule %d (%s)\n"
|
||||||
|
"\n"
|
||||||
|
msgstr ""
|
||||||
|
" $standard\treducera med regel %d (%s)\n"
|
||||||
|
"\n"
|
||||||
|
|
||||||
|
#: src/conflicts.c:521 src/conflicts.c:534
|
||||||
|
#, c-format
|
||||||
|
msgid " %-4s\treduce using rule %d (%s)\n"
|
||||||
|
msgstr " %-4s\treducera med regel %d (%s)\n"
|
||||||
|
|
||||||
|
#: src/conflicts.c:550
|
||||||
|
#, c-format
|
||||||
|
msgid " $default\treduce using rule %d (%s)\n"
|
||||||
|
msgstr " $standard\treducera med regel %d (%s)\n"
|
||||||
|
|
||||||
|
#: src/files.c:151
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot open file `%s'"
|
||||||
|
msgstr "kan inte öppna filen \"%s\""
|
||||||
|
|
||||||
|
#: src/files.c:170
|
||||||
|
msgid "cannot close file"
|
||||||
|
msgstr "kan inte stänga fil"
|
||||||
|
|
||||||
|
#: src/getargs.c:84
|
||||||
|
msgid "GNU bison generates parsers for LALR(1) grammars.\n"
|
||||||
|
msgstr "GNU bison genererar parsrar för LALR(1)-grammatiker.\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:88
|
||||||
|
#, c-format
|
||||||
|
msgid "Usage: %s [OPTION]... FILE\n"
|
||||||
|
msgstr "Användning: %s [FLAGGA]... FIL\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:92
|
||||||
|
msgid ""
|
||||||
|
"If a long option shows an argument as mandatory, then it is mandatory\n"
|
||||||
|
"for the equivalent short option also. Similarly for optional arguments.\n"
|
||||||
|
msgstr ""
|
||||||
|
"Om en lång flagga visar ett argument som obligatoriskt är det\n"
|
||||||
|
"obligatoriskt för den motsvarande korta flaggan också. Motsvarande\n"
|
||||||
|
"för valfria argument.\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:98
|
||||||
|
msgid ""
|
||||||
|
"Operation modes:\n"
|
||||||
|
" -h, --help display this help and exit\n"
|
||||||
|
" -V, --version output version information and exit\n"
|
||||||
|
" -y, --yacc emulate POSIX yacc\n"
|
||||||
|
msgstr ""
|
||||||
|
"Arbetslägen:\n"
|
||||||
|
" -h, --help visa denna hjälptext och avsluta\n"
|
||||||
|
" -V, --version visa versionsinformation och avsluta\n"
|
||||||
|
" -y, --yacc emulera POSIX-yacc\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:105
|
||||||
|
msgid ""
|
||||||
|
"Parser:\n"
|
||||||
|
" -S, --skeleton=FILE specify the skeleton to use\n"
|
||||||
|
" -t, --debug instrument the parser for debugging\n"
|
||||||
|
" --locations enable locations computation\n"
|
||||||
|
" -p, --name-prefix=PREFIX prepend PREFIX to the external symbols\n"
|
||||||
|
" -l, --no-lines don't generate `#line' directives\n"
|
||||||
|
" -n, --no-parser generate the tables only\n"
|
||||||
|
" -k, --token-table include a table of token names\n"
|
||||||
|
msgstr ""
|
||||||
|
"Tolk:\n"
|
||||||
|
" -S, --skeleton=FIL ange skelettfilen som skall användas\n"
|
||||||
|
" -t, --debug instrumentera tolken för felsökning\n"
|
||||||
|
" --locations aktivera lägesberäkning\n"
|
||||||
|
" -p, --name-prefix=PREFIX lägg till PREFIX före externa symboler\n"
|
||||||
|
" -l, --no-lines generera inte \"#line\"-direktiv\n"
|
||||||
|
" -n, --no-parser generera endast tabellerna\n"
|
||||||
|
" -k, --token-table inkludera en tabell över elementnamn\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:117
|
||||||
|
msgid ""
|
||||||
|
"Output:\n"
|
||||||
|
" -d, --defines also produce a header file\n"
|
||||||
|
" -v, --verbose also produce an explanation of the automaton\n"
|
||||||
|
" -b, --file-prefix=PREFIX specify a PREFIX for output files\n"
|
||||||
|
" -o, --output=FILE leave output to FILE\n"
|
||||||
|
" -g, --graph also produce a VCG description of the "
|
||||||
|
"automaton\n"
|
||||||
|
msgstr ""
|
||||||
|
"Utdata:\n"
|
||||||
|
" -d, --defines skapa också en huvudfil\n"
|
||||||
|
" -v, --verbose skapa också en förklaring av automaten\n"
|
||||||
|
" -b, --file-prefix=PREFIX ange ett PREFIX för utdatafiler\n"
|
||||||
|
" -o, --output=FIL lägg utdata i FIL\n"
|
||||||
|
" -g, --graph skapa också en VCG-beskrivning av automaten\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:127
|
||||||
|
msgid "Report bugs to <[email protected]>.\n"
|
||||||
|
msgstr ""
|
||||||
|
"Rapportera fel till <[email protected]>.\n"
|
||||||
|
"Rapportera synpunkter på översättningen till <[email protected]>.\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:141
|
||||||
|
#, c-format
|
||||||
|
msgid "bison (GNU Bison) %s"
|
||||||
|
msgstr "bison (GNU Bison) %s"
|
||||||
|
|
||||||
|
#: src/getargs.c:146
|
||||||
|
msgid ""
|
||||||
|
"Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002\n"
|
||||||
|
"Free Software Foundation, Inc.\n"
|
||||||
|
msgstr ""
|
||||||
|
"Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002\n"
|
||||||
|
"Free Software Foundation, Inc.\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:151
|
||||||
|
msgid ""
|
||||||
|
"This is free software; see the source for copying conditions. There is NO\n"
|
||||||
|
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
|
||||||
|
msgstr ""
|
||||||
|
"Detta är fri programvara, se källkoden för kopieringsvillkor. Det\n"
|
||||||
|
"finns INGEN garanti, inte ens för SÄLJBARHET eller LÄMPLIGHET FÖR ETT\n"
|
||||||
|
"SPECIELLT ÄNDAMÅL.\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:230 src/lex.c:705
|
||||||
|
#, c-format
|
||||||
|
msgid "`%s' is no longer supported"
|
||||||
|
msgstr "\"%s\" stöds inte längre"
|
||||||
|
|
||||||
|
#: src/getargs.c:254
|
||||||
|
#, c-format
|
||||||
|
msgid "Try `%s --help' for more information.\n"
|
||||||
|
msgstr "Försök med \"%s --help\" för mer information.\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:261
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: no grammar file given\n"
|
||||||
|
msgstr "%s: ingen grammatikfil angiven\n"
|
||||||
|
|
||||||
|
#: src/getargs.c:265
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: extra arguments ignored after `%s'\n"
|
||||||
|
msgstr "%s: extra argument ignorerade efter \"%s\"\n"
|
||||||
|
|
||||||
|
#: src/lalr.c:256
|
||||||
|
#, c-format
|
||||||
|
msgid "too many gotos (max %d)"
|
||||||
|
msgstr "för många goto (max %d)"
|
||||||
|
|
||||||
|
#: src/lex.c:76
|
||||||
|
msgid "unexpected `/' found and ignored"
|
||||||
|
msgstr "oväntat \"/\" hittat och ignorerat"
|
||||||
|
|
||||||
|
#: src/lex.c:105 src/reader.c:280
|
||||||
|
msgid "unterminated comment"
|
||||||
|
msgstr "oavslutad kommentar"
|
||||||
|
|
||||||
|
#: src/lex.c:137
|
||||||
|
msgid "unexpected end of file"
|
||||||
|
msgstr "oväntat filslut"
|
||||||
|
|
||||||
|
#: src/lex.c:166
|
||||||
|
msgid "unescaped newline in constant"
|
||||||
|
msgstr "oskyddat nyradstecken i konstant"
|
||||||
|
|
||||||
|
#: src/lex.c:208
|
||||||
|
#, c-format
|
||||||
|
msgid "octal value outside range 0...255: `\\%o'"
|
||||||
|
msgstr "oktalt värde utanför intervallet 0-255: \"\\%o\""
|
||||||
|
|
||||||
|
#: src/lex.c:233
|
||||||
|
#, c-format
|
||||||
|
msgid "hexadecimal value above 255: `\\x%x'"
|
||||||
|
msgstr "hexadecimalt värde över 255: \"\\x%x\""
|
||||||
|
|
||||||
|
#: src/lex.c:245
|
||||||
|
#, c-format
|
||||||
|
msgid "unknown escape sequence: `\\' followed by `%s'"
|
||||||
|
msgstr "okänd specialsekvens: \"\\\" följt av \"%s\""
|
||||||
|
|
||||||
|
#: src/lex.c:342
|
||||||
|
msgid "unterminated type name at end of file"
|
||||||
|
msgstr "oavslutat typnamn vid filslut"
|
||||||
|
|
||||||
|
#: src/lex.c:345
|
||||||
|
msgid "unterminated type name"
|
||||||
|
msgstr "oavslutat typnamn"
|
||||||
|
|
||||||
|
#: src/lex.c:438
|
||||||
|
msgid "use \"...\" for multi-character literal tokens"
|
||||||
|
msgstr "använd \"...\" för bokstavliga element med mer än ett tecken"
|
||||||
|
|
||||||
|
#: src/lex.c:678
|
||||||
|
#, c-format
|
||||||
|
msgid "`%s' supports no argument: %s"
|
||||||
|
msgstr "\"%s\" stödjer inga argument: %s"
|
||||||
|
|
||||||
|
#: src/lex.c:694
|
||||||
|
#, c-format
|
||||||
|
msgid "`%s' requires an argument"
|
||||||
|
msgstr "\"%s\" behöver ett argument"
|
||||||
|
|
||||||
|
#: src/output.c:951
|
||||||
|
#, c-format
|
||||||
|
msgid "maximum table size (%d) exceeded"
|
||||||
|
msgstr "maximal tabellstorlek (%d) överskriden"
|
||||||
|
|
||||||
|
#: src/print.c:39
|
||||||
|
#, c-format
|
||||||
|
msgid " type %d is %s\n"
|
||||||
|
msgstr " typ %d är %s\n"
|
||||||
|
|
||||||
|
#: src/print.c:88
|
||||||
|
#, c-format
|
||||||
|
msgid " (rule %d)"
|
||||||
|
msgstr " (regel %d)"
|
||||||
|
|
||||||
|
#: src/print.c:108
|
||||||
|
msgid " $default\taccept\n"
|
||||||
|
msgstr " $standard\tacceptera\n"
|
||||||
|
|
||||||
|
#: src/print.c:110
|
||||||
|
msgid " NO ACTIONS\n"
|
||||||
|
msgstr " INGA ÅTGÄRDER\n"
|
||||||
|
|
||||||
|
#: src/print.c:124
|
||||||
|
#, c-format
|
||||||
|
msgid " $ \tgo to state %d\n"
|
||||||
|
msgstr " $ \tgå till tillstånd %d\n"
|
||||||
|
|
||||||
|
#: src/print.c:127
|
||||||
|
#, c-format
|
||||||
|
msgid " %-4s\tshift, and go to state %d\n"
|
||||||
|
msgstr " %-4s\tskifta, och gå till tillstånd %d\n"
|
||||||
|
|
||||||
|
#: src/print.c:142
|
||||||
|
#, c-format
|
||||||
|
msgid " %-4s\terror (nonassociative)\n"
|
||||||
|
msgstr " %-4s\tfel (ickeassociativ)\n"
|
||||||
|
|
||||||
|
#: src/print.c:169
|
||||||
|
#, c-format
|
||||||
|
msgid " %-4s\tgo to state %d\n"
|
||||||
|
msgstr " %-4s\tgå till tillstånd %d\n"
|
||||||
|
|
||||||
|
#: src/print.c:180
|
||||||
|
#, c-format
|
||||||
|
msgid "state %d"
|
||||||
|
msgstr "tillstånd %d"
|
||||||
|
|
||||||
|
#: src/print.c:211
|
||||||
|
msgid "Grammar"
|
||||||
|
msgstr "Grammatik"
|
||||||
|
|
||||||
|
#: src/print.c:212
|
||||||
|
msgid "Number, Line, Rule"
|
||||||
|
msgstr "Nummer, Rad, Regel"
|
||||||
|
|
||||||
|
#: src/print.c:217
|
||||||
|
#, c-format
|
||||||
|
msgid " %3d %3d %s ->"
|
||||||
|
msgstr " %3d %3d %s ->"
|
||||||
|
|
||||||
|
#: src/print.c:224
|
||||||
|
msgid "empty"
|
||||||
|
msgstr "tom"
|
||||||
|
|
||||||
|
#: src/print.c:231
|
||||||
|
msgid "Terminals, with rules where they appear"
|
||||||
|
msgstr "Terminaler, med regler där de förekommer"
|
||||||
|
|
||||||
|
#: src/print.c:256
|
||||||
|
msgid "Nonterminals, with rules where they appear"
|
||||||
|
msgstr "Icketerminaler, med regler där de förekommer"
|
||||||
|
|
||||||
|
#: src/print.c:282
|
||||||
|
msgid " on left:"
|
||||||
|
msgstr " till vänster:"
|
||||||
|
|
||||||
|
#: src/print.c:297
|
||||||
|
msgid " on right:"
|
||||||
|
msgstr " till höger:"
|
||||||
|
|
||||||
|
#: src/print_graph.c:146
|
||||||
|
#, c-format
|
||||||
|
msgid "%-4s\terror (nonassociative)"
|
||||||
|
msgstr "%-4s\tfel (ickeassociativ)"
|
||||||
|
|
||||||
|
#: src/print_graph.c:161
|
||||||
|
#, c-format
|
||||||
|
msgid "$default\treduce using rule %d (%s)"
|
||||||
|
msgstr "$standard\treducera med regel %d (%s)"
|
||||||
|
|
||||||
|
#: src/reader.c:89
|
||||||
|
msgid " Skipping to next \\n"
|
||||||
|
msgstr " Hoppar över till nästa \\n"
|
||||||
|
|
||||||
|
#: src/reader.c:91
|
||||||
|
#, c-format
|
||||||
|
msgid " Skipping to next %c"
|
||||||
|
msgstr " Hoppar över till nästa %c"
|
||||||
|
|
||||||
|
#: src/reader.c:142 src/reader.c:154
|
||||||
|
msgid "invalid $ value"
|
||||||
|
msgstr "felaktigt $-värde"
|
||||||
|
|
||||||
|
#: src/reader.c:180 src/reader.c:195
|
||||||
|
msgid "unterminated string at end of file"
|
||||||
|
msgstr "oavslutad sträng vid filslut"
|
||||||
|
|
||||||
|
#: src/reader.c:183
|
||||||
|
msgid "unterminated string"
|
||||||
|
msgstr "oavslutad sträng"
|
||||||
|
|
||||||
|
#: src/reader.c:339
|
||||||
|
msgid "invalid @ value"
|
||||||
|
msgstr "felaktigt @-värde"
|
||||||
|
|
||||||
|
#: src/reader.c:352 src/reader.c:416
|
||||||
|
#, c-format
|
||||||
|
msgid "%s is invalid"
|
||||||
|
msgstr "%s är felaktigt"
|
||||||
|
|
||||||
|
#: src/reader.c:392
|
||||||
|
#, c-format
|
||||||
|
msgid "$$ of `%s' has no declared type"
|
||||||
|
msgstr "$$ för \"%s\" har ingen deklarerad typ"
|
||||||
|
|
||||||
|
#: src/reader.c:409
|
||||||
|
#, c-format
|
||||||
|
msgid "$%d of `%s' has no declared type"
|
||||||
|
msgstr "$%d för \"%s\" har ingen deklarerad typ"
|
||||||
|
|
||||||
|
#: src/reader.c:463
|
||||||
|
msgid "unterminated `%{' definition"
|
||||||
|
msgstr "oavslutad \"%{\"-definition"
|
||||||
|
|
||||||
|
#: src/reader.c:508 src/reader.c:623 src/reader.c:673
|
||||||
|
#, c-format
|
||||||
|
msgid "Premature EOF after %s"
|
||||||
|
msgstr "Förtida filslut efter %s"
|
||||||
|
|
||||||
|
#: src/reader.c:525
|
||||||
|
#, c-format
|
||||||
|
msgid "symbol `%s' used more than once as a literal string"
|
||||||
|
msgstr "symbolen \"%s\" används mer än en gång som en bokstavlig sträng"
|
||||||
|
|
||||||
|
#: src/reader.c:528
|
||||||
|
#, c-format
|
||||||
|
msgid "symbol `%s' given more than one literal string"
|
||||||
|
msgstr "symbolen \"%s\" har fått mer än en bokstavlig sträng"
|
||||||
|
|
||||||
|
#: src/reader.c:549 src/reader.c:692
|
||||||
|
#, c-format
|
||||||
|
msgid "symbol %s redefined"
|
||||||
|
msgstr "symbolen %s omdefinierad"
|
||||||
|
|
||||||
|
#: src/reader.c:559 src/reader.c:638 src/reader.c:699 src/reader.c:1315
|
||||||
|
#, c-format
|
||||||
|
msgid "type redeclaration for %s"
|
||||||
|
msgstr "typen omdeklarerad för %s"
|
||||||
|
|
||||||
|
#: src/reader.c:568
|
||||||
|
#, c-format
|
||||||
|
msgid "`%s' is invalid in %s"
|
||||||
|
msgstr "\"%s\" är felaktig i %s"
|
||||||
|
|
||||||
|
#: src/reader.c:586 src/reader.c:752
|
||||||
|
#, c-format
|
||||||
|
msgid "multiple %s declarations"
|
||||||
|
msgstr "flera %s-deklarationer"
|
||||||
|
|
||||||
|
#: src/reader.c:588 src/reader.c:931 src/reader.c:956 src/reader.c:1293
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid %s declaration"
|
||||||
|
msgstr "felaktig %s-deklaration"
|
||||||
|
|
||||||
|
#: src/reader.c:608
|
||||||
|
msgid "%type declaration has no <typename>"
|
||||||
|
msgstr "%type-deklaration har inget <typnamn>"
|
||||||
|
|
||||||
|
#: src/reader.c:643
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid %%type declaration due to item: %s"
|
||||||
|
msgstr "felaktig %%type-deklaration på grund av objekt: %s"
|
||||||
|
|
||||||
|
#: src/reader.c:688
|
||||||
|
#, c-format
|
||||||
|
msgid "redefining precedence of %s"
|
||||||
|
msgstr "omdefinition av precedens för %s"
|
||||||
|
|
||||||
|
#: src/reader.c:711
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid text (%s) - number should be after identifier"
|
||||||
|
msgstr "felaktig text (%s) - tal skulle följa efter identifierare"
|
||||||
|
|
||||||
|
#: src/reader.c:721
|
||||||
|
#, c-format
|
||||||
|
msgid "unexpected item: %s"
|
||||||
|
msgstr "oväntat objekt: %s"
|
||||||
|
|
||||||
|
#: src/reader.c:795 src/reader.c:1127 src/reader.c:1204
|
||||||
|
#, c-format
|
||||||
|
msgid "unmatched %s"
|
||||||
|
msgstr "ensam %s"
|
||||||
|
|
||||||
|
#: src/reader.c:827
|
||||||
|
#, c-format
|
||||||
|
msgid "argument of %%expect is not an integer"
|
||||||
|
msgstr "argument till %%expect är inte ett heltal"
|
||||||
|
|
||||||
|
#: src/reader.c:873
|
||||||
|
#, c-format
|
||||||
|
msgid "unrecognized item %s, expected an identifier"
|
||||||
|
msgstr "oväntat objekt %s, förväntade en identifierare"
|
||||||
|
|
||||||
|
#: src/reader.c:895
|
||||||
|
#, c-format
|
||||||
|
msgid "expected string constant instead of %s"
|
||||||
|
msgstr "förväntade strängkonstant istället för %s"
|
||||||
|
|
||||||
|
#: src/reader.c:1043
|
||||||
|
#, c-format
|
||||||
|
msgid "unrecognized: %s"
|
||||||
|
msgstr "okänt: %s"
|
||||||
|
|
||||||
|
#: src/reader.c:1048
|
||||||
|
msgid "no input grammar"
|
||||||
|
msgstr "ingen ingrammatik"
|
||||||
|
|
||||||
|
#: src/reader.c:1053
|
||||||
|
#, c-format
|
||||||
|
msgid "unknown character: %s"
|
||||||
|
msgstr "okänt tecken: %s"
|
||||||
|
|
||||||
|
#: src/reader.c:1227
|
||||||
|
#, c-format
|
||||||
|
msgid "unterminated %guard clause"
|
||||||
|
msgstr "oavlutad %guard-sats"
|
||||||
|
|
||||||
|
#: src/reader.c:1380
|
||||||
|
msgid "ill-formed rule: initial symbol not followed by colon"
|
||||||
|
msgstr "felskriven regel: första symbolen följs inte av ett kolon"
|
||||||
|
|
||||||
|
#: src/reader.c:1387
|
||||||
|
msgid "grammar starts with vertical bar"
|
||||||
|
msgstr "grammatiken startar med ett vertikalt streck"
|
||||||
|
|
||||||
|
#: src/reader.c:1415
|
||||||
|
#, c-format
|
||||||
|
msgid "rule given for %s, which is a token"
|
||||||
|
msgstr "regel given för %s, som är ett element"
|
||||||
|
|
||||||
|
#: src/reader.c:1445 src/reader.c:1557
|
||||||
|
msgid "previous rule lacks an ending `;'"
|
||||||
|
msgstr "föregående regel saknar ett avslutande \";\""
|
||||||
|
|
||||||
|
#: src/reader.c:1518
|
||||||
|
msgid "two @prec's in a row"
|
||||||
|
msgstr "två @prec i rad"
|
||||||
|
|
||||||
|
#: src/reader.c:1526
|
||||||
|
#, c-format
|
||||||
|
msgid "%%guard present but %%semantic_parser not specified"
|
||||||
|
msgstr "%%guard finns men %%semantic_parser är inte angiven"
|
||||||
|
|
||||||
|
#: src/reader.c:1535
|
||||||
|
msgid "two actions at end of one rule"
|
||||||
|
msgstr "två åtgärder vid slutet av en regel"
|
||||||
|
|
||||||
|
#: src/reader.c:1549
|
||||||
|
#, c-format
|
||||||
|
msgid "type clash (`%s' `%s') on default action"
|
||||||
|
msgstr "typkonflikt (\"%s\" \"%s\") för standardåtgärd"
|
||||||
|
|
||||||
|
#: src/reader.c:1555
|
||||||
|
msgid "empty rule for typed nonterminal, and no action"
|
||||||
|
msgstr "tom regel för typad icketerminal, och ingen åtgärd"
|
||||||
|
|
||||||
|
#: src/reader.c:1601
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid input: %s"
|
||||||
|
msgstr "felaktig indata: %s"
|
||||||
|
|
||||||
|
#: src/reader.c:1609
|
||||||
|
#, c-format
|
||||||
|
msgid "too many symbols (tokens plus nonterminals); maximum %d"
|
||||||
|
msgstr "för många symboler (element plus icketerminaler); max %d"
|
||||||
|
|
||||||
|
#: src/reader.c:1612
|
||||||
|
msgid "no rules in the input grammar"
|
||||||
|
msgstr "inga regler i ingrammatiken"
|
||||||
|
|
||||||
|
#: src/reader.c:1640
|
||||||
|
#, c-format
|
||||||
|
msgid "symbol %s is used, but is not defined as a token and has no rules"
|
||||||
|
msgstr ""
|
||||||
|
"symbolen %s används, men är inte definierad som ett element och har inga "
|
||||||
|
"regler"
|
||||||
|
|
||||||
|
#: src/reader.c:1775
|
||||||
|
#, c-format
|
||||||
|
msgid "tokens %s and %s both assigned number %d"
|
||||||
|
msgstr "elementen %s och %s har båda fått nummer %d"
|
||||||
|
|
||||||
|
#: src/reader.c:1828
|
||||||
|
#, c-format
|
||||||
|
msgid "conflicting precedences for %s and %s"
|
||||||
|
msgstr "motstridiga precedenser mellan %s och %s"
|
||||||
|
|
||||||
|
#: src/reader.c:1840
|
||||||
|
#, c-format
|
||||||
|
msgid "conflicting assoc values for %s and %s"
|
||||||
|
msgstr "motstridiga assoc-värden mellan %s och %s"
|
||||||
|
|
||||||
|
#: src/reader.c:1879
|
||||||
|
#, c-format
|
||||||
|
msgid "the start symbol %s is undefined"
|
||||||
|
msgstr "startsymbolen %s är odefinierad"
|
||||||
|
|
||||||
|
#: src/reader.c:1881
|
||||||
|
#, c-format
|
||||||
|
msgid "the start symbol %s is a token"
|
||||||
|
msgstr "startsymbolen %s är ett element"
|
||||||
|
|
||||||
|
#: src/reduce.c:409
|
||||||
|
msgid "Useless nonterminals:"
|
||||||
|
msgstr "Oanvändbara icketerminaler:"
|
||||||
|
|
||||||
|
#: src/reduce.c:422
|
||||||
|
msgid "Terminals which are not used:"
|
||||||
|
msgstr "Terminaler som inte används:"
|
||||||
|
|
||||||
|
#: src/reduce.c:433
|
||||||
|
msgid "Useless rules:"
|
||||||
|
msgstr "Oanvändbara regler:"
|
||||||
|
|
||||||
|
#: src/reduce.c:503
|
||||||
|
#, c-format
|
||||||
|
msgid "%d rule never reduced\n"
|
||||||
|
msgid_plural "%d rules never reduced\n"
|
||||||
|
msgstr[0] "%d regel reduceras aldrig\n"
|
||||||
|
msgstr[1] "%d regler reduceras aldrig\n"
|
||||||
|
|
||||||
|
#: src/reduce.c:511
|
||||||
|
#, c-format
|
||||||
|
msgid "%d useless nonterminal"
|
||||||
|
msgid_plural "%d useless nonterminals"
|
||||||
|
msgstr[0] "%d oanvändbar icketerminal"
|
||||||
|
msgstr[1] "%d oanvändbara icketerminaler"
|
||||||
|
|
||||||
|
#: src/reduce.c:517
|
||||||
|
msgid " and "
|
||||||
|
msgstr " och "
|
||||||
|
|
||||||
|
#: src/reduce.c:520
|
||||||
|
#, c-format
|
||||||
|
msgid "%d useless rule"
|
||||||
|
msgid_plural "%d useless rules"
|
||||||
|
msgstr[0] "%d oanvändbar regel"
|
||||||
|
msgstr[1] "%d oanvändbara regler"
|
||||||
|
|
||||||
|
#: src/reduce.c:551
|
||||||
|
#, c-format
|
||||||
|
msgid "Start symbol %s does not derive any sentence"
|
||||||
|
msgstr "Startsymbolen %s genererar inga meningar"
|
||||||
|
|
||||||
|
#: lib/getopt.c:694
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: option `%s' is ambiguous\n"
|
||||||
|
msgstr "%s: flaggan \"%s\" är tvetydig\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:719
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: option `--%s' doesn't allow an argument\n"
|
||||||
|
msgstr "%s: flaggan \"--%s\" tar inget argument\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:724
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: option `%c%s' doesn't allow an argument\n"
|
||||||
|
msgstr "%s: flaggan \"%c%s\" tar inget argument\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:742 lib/getopt.c:915
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: option `%s' requires an argument\n"
|
||||||
|
msgstr "%s: flaggan \"%s\" behöver ett argument\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:771
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: unrecognized option `--%s'\n"
|
||||||
|
msgstr "%s: okänd flagga \"--%s\"\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:775
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: unrecognized option `%c%s'\n"
|
||||||
|
msgstr "%s: okänd flagga \"%c%s\"\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:801
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: illegal option -- %c\n"
|
||||||
|
msgstr "%s: otillåten flagga -- %c\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:804
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: invalid option -- %c\n"
|
||||||
|
msgstr "%s: ogiltig flagga --%c\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:834 lib/getopt.c:964
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: option requires an argument -- %c\n"
|
||||||
|
msgstr "%s: flaggan behöver ett argument -- %c\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:881
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: option `-W %s' is ambiguous\n"
|
||||||
|
msgstr "%s: flaggan \"-W %s\" är tvetydig\n"
|
||||||
|
|
||||||
|
#: lib/getopt.c:899
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: option `-W %s' doesn't allow an argument\n"
|
||||||
|
msgstr "%s: flaggan \"-W %s\" tar inget argument\n"
|
||||||
|
|
||||||
|
#: lib/obstack.c:494 lib/obstack.c:497 lib/xmalloc.c:66
|
||||||
|
msgid "memory exhausted"
|
||||||
|
msgstr "minnet slut"
|
||||||
|
|
||||||
|
# När vi går över till Unicode mer allmänt kanske vi bör översätta båda dessa
|
||||||
|
# med U+201D (RIGHT DOUBLE QUOTATION MARK) på svenska. Eller?
|
||||||
|
#
|
||||||
|
#: lib/quotearg.c:274
|
||||||
|
msgid "`"
|
||||||
|
msgstr "\""
|
||||||
|
|
||||||
|
#: lib/quotearg.c:275
|
||||||
|
msgid "'"
|
||||||
|
msgstr "\""
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/* Generate the nondeterministic finite state machine for bison,
|
/* Generate the nondeterministic finite state machine for bison,
|
||||||
Copyright 1984, 1986, 1989, 2000 Free Software Foundation, Inc.
|
Copyright 1984, 1986, 1989, 2000, 2001 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of Bison, the GNU Compiler Compiler.
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
|
|
||||||
@@ -23,12 +23,14 @@
|
|||||||
The entry point is generate_states. */
|
The entry point is generate_states. */
|
||||||
|
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
#include "getargs.h"
|
||||||
|
#include "reader.h"
|
||||||
#include "gram.h"
|
#include "gram.h"
|
||||||
#include "state.h"
|
#include "state.h"
|
||||||
#include "complain.h"
|
#include "complain.h"
|
||||||
#include "closure.h"
|
#include "closure.h"
|
||||||
#include "LR0.h"
|
#include "LR0.h"
|
||||||
|
#include "reduce.h"
|
||||||
|
|
||||||
int nstates;
|
int nstates;
|
||||||
int final_state;
|
int final_state;
|
||||||
@@ -48,7 +50,7 @@ static short *redset = NULL;
|
|||||||
static short *shiftset = NULL;
|
static short *shiftset = NULL;
|
||||||
|
|
||||||
static short **kernel_base = NULL;
|
static short **kernel_base = NULL;
|
||||||
static short **kernel_end = NULL;
|
static int *kernel_size = NULL;
|
||||||
static short *kernel_items = NULL;
|
static short *kernel_items = NULL;
|
||||||
|
|
||||||
/* hash table for states, to recognize equivalent ones. */
|
/* hash table for states, to recognize equivalent ones. */
|
||||||
@@ -60,26 +62,21 @@ static core **state_table = NULL;
|
|||||||
static void
|
static void
|
||||||
allocate_itemsets (void)
|
allocate_itemsets (void)
|
||||||
{
|
{
|
||||||
short *itemp = NULL;
|
|
||||||
int symbol;
|
|
||||||
int i;
|
int i;
|
||||||
int count;
|
|
||||||
short *symbol_count = NULL;
|
|
||||||
|
|
||||||
count = 0;
|
/* Count the number of occurrences of all the symbols in RITEMS.
|
||||||
symbol_count = XCALLOC (short, nsyms);
|
Note that useless productions (hence useless nonterminals) are
|
||||||
|
browsed too, hence we need to allocate room for _all_ the
|
||||||
|
symbols. */
|
||||||
|
int count = 0;
|
||||||
|
short *symbol_count = XCALLOC (short, nsyms + nuseless_nonterminals);
|
||||||
|
|
||||||
itemp = ritem;
|
for (i = 0; ritem[i]; ++i)
|
||||||
symbol = *itemp++;
|
if (ritem[i] > 0)
|
||||||
while (symbol)
|
{
|
||||||
{
|
count++;
|
||||||
if (symbol > 0)
|
symbol_count[ritem[i]]++;
|
||||||
{
|
}
|
||||||
count++;
|
|
||||||
symbol_count[symbol]++;
|
|
||||||
}
|
|
||||||
symbol = *itemp++;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* See comments before new_itemsets. All the vectors of items
|
/* See comments before new_itemsets. All the vectors of items
|
||||||
live inside KERNEL_ITEMS. The number of active items after
|
live inside KERNEL_ITEMS. The number of active items after
|
||||||
@@ -98,8 +95,8 @@ allocate_itemsets (void)
|
|||||||
count += symbol_count[i];
|
count += symbol_count[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
shift_symbol = symbol_count;
|
free (symbol_count);
|
||||||
kernel_end = XCALLOC (short *, nsyms);
|
kernel_size = XCALLOC (int, nsyms);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -117,13 +114,13 @@ allocate_storage (void)
|
|||||||
static void
|
static void
|
||||||
free_storage (void)
|
free_storage (void)
|
||||||
{
|
{
|
||||||
XFREE (shift_symbol);
|
free (shift_symbol);
|
||||||
XFREE (redset);
|
free (redset);
|
||||||
XFREE (shiftset);
|
free (shiftset);
|
||||||
XFREE (kernel_base);
|
free (kernel_base);
|
||||||
XFREE (kernel_end);
|
free (kernel_size);
|
||||||
XFREE (kernel_items);
|
XFREE (kernel_items);
|
||||||
XFREE (state_table);
|
free (state_table);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -137,50 +134,39 @@ free_storage (void)
|
|||||||
| shift_symbol is set to a vector of the symbols that can be |
|
| shift_symbol is set to a vector of the symbols that can be |
|
||||||
| shifted. For each symbol in the grammar, kernel_base[symbol] |
|
| shifted. For each symbol in the grammar, kernel_base[symbol] |
|
||||||
| points to a vector of item numbers activated if that symbol is |
|
| points to a vector of item numbers activated if that symbol is |
|
||||||
| shifted, and kernel_end[symbol] points after the end of that |
|
| shifted, and kernel_size[symbol] is their numbers. |
|
||||||
| vector. |
|
|
||||||
`----------------------------------------------------------------*/
|
`----------------------------------------------------------------*/
|
||||||
|
|
||||||
static void
|
static void
|
||||||
new_itemsets (void)
|
new_itemsets (void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int shiftcount;
|
|
||||||
short *isp;
|
|
||||||
short *ksp;
|
|
||||||
int symbol;
|
|
||||||
|
|
||||||
#if TRACE
|
if (trace_flag)
|
||||||
fprintf (stderr, "Entering new_itemsets\n");
|
fprintf (stderr, "Entering new_itemsets, state = %d\n",
|
||||||
#endif
|
this_state->number);
|
||||||
|
|
||||||
for (i = 0; i < nsyms; i++)
|
for (i = 0; i < nsyms; i++)
|
||||||
kernel_end[i] = NULL;
|
kernel_size[i] = 0;
|
||||||
|
|
||||||
shiftcount = 0;
|
shift_symbol = XCALLOC (short, nsyms);
|
||||||
|
nshifts = 0;
|
||||||
|
|
||||||
isp = itemset;
|
for (i = 0; i < nitemset; ++i)
|
||||||
|
|
||||||
while (isp < itemsetend)
|
|
||||||
{
|
{
|
||||||
i = *isp++;
|
int symbol = ritem[itemset[i]];
|
||||||
symbol = ritem[i];
|
|
||||||
if (symbol > 0)
|
if (symbol > 0)
|
||||||
{
|
{
|
||||||
ksp = kernel_end[symbol];
|
if (!kernel_size[symbol])
|
||||||
|
|
||||||
if (!ksp)
|
|
||||||
{
|
{
|
||||||
shift_symbol[shiftcount++] = symbol;
|
shift_symbol[nshifts] = symbol;
|
||||||
ksp = kernel_base[symbol];
|
nshifts++;
|
||||||
}
|
}
|
||||||
|
|
||||||
*ksp++ = i + 1;
|
kernel_base[symbol][kernel_size[symbol]] = itemset[i] + 1;
|
||||||
kernel_end[symbol] = ksp;
|
kernel_size[symbol]++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
nshifts = shiftcount;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -193,36 +179,24 @@ new_itemsets (void)
|
|||||||
static core *
|
static core *
|
||||||
new_state (int symbol)
|
new_state (int symbol)
|
||||||
{
|
{
|
||||||
int n;
|
|
||||||
core *p;
|
core *p;
|
||||||
short *isp1;
|
|
||||||
short *isp2;
|
|
||||||
short *iend;
|
|
||||||
|
|
||||||
#if TRACE
|
if (trace_flag)
|
||||||
fprintf (stderr, "Entering new_state, symbol = %d\n", symbol);
|
fprintf (stderr, "Entering new_state, state = %d, symbol = %d (%s)\n",
|
||||||
#endif
|
this_state->number, symbol, tags[symbol]);
|
||||||
|
|
||||||
if (nstates >= MAXSHORT)
|
if (nstates >= MAXSHORT)
|
||||||
fatal (_("too many states (max %d)"), MAXSHORT);
|
fatal (_("too many states (max %d)"), MAXSHORT);
|
||||||
|
|
||||||
isp1 = kernel_base[symbol];
|
p = CORE_ALLOC (kernel_size[symbol]);
|
||||||
iend = kernel_end[symbol];
|
|
||||||
n = iend - isp1;
|
|
||||||
|
|
||||||
p =
|
|
||||||
(core *) xcalloc ((unsigned) (sizeof (core) + (n - 1) * sizeof (short)), 1);
|
|
||||||
p->accessing_symbol = symbol;
|
p->accessing_symbol = symbol;
|
||||||
p->number = nstates;
|
p->number = nstates;
|
||||||
p->nitems = n;
|
p->nitems = kernel_size[symbol];
|
||||||
|
|
||||||
isp2 = p->items;
|
shortcpy (p->items, kernel_base[symbol], kernel_size[symbol]);
|
||||||
while (isp1 < iend)
|
|
||||||
*isp2++ = *isp1++;
|
|
||||||
|
|
||||||
last_state->next = p;
|
last_state->next = p;
|
||||||
last_state = p;
|
last_state = p;
|
||||||
|
|
||||||
nstates++;
|
nstates++;
|
||||||
|
|
||||||
return p;
|
return p;
|
||||||
@@ -232,54 +206,39 @@ new_state (int symbol)
|
|||||||
/*--------------------------------------------------------------.
|
/*--------------------------------------------------------------.
|
||||||
| Find the state number for the state we would get to (from the |
|
| Find the state number for the state we would get to (from the |
|
||||||
| current state) by shifting symbol. Create a new state if no |
|
| current state) by shifting symbol. Create a new state if no |
|
||||||
| equivalent one exists already. Used by append_states. |
|
| equivalent one exists already. Used by append_states. |
|
||||||
`--------------------------------------------------------------*/
|
`--------------------------------------------------------------*/
|
||||||
|
|
||||||
static int
|
static int
|
||||||
get_state (int symbol)
|
get_state (int symbol)
|
||||||
{
|
{
|
||||||
int key;
|
int key;
|
||||||
short *isp1;
|
int i;
|
||||||
short *isp2;
|
|
||||||
short *iend;
|
|
||||||
core *sp;
|
core *sp;
|
||||||
int found;
|
|
||||||
|
|
||||||
int n;
|
if (trace_flag)
|
||||||
|
fprintf (stderr, "Entering get_state, state = %d, symbol = %d (%s)\n",
|
||||||
|
this_state->number, symbol, tags[symbol]);
|
||||||
|
|
||||||
#if TRACE
|
/* Add up the target state's active item numbers to get a hash key.
|
||||||
fprintf (stderr, "Entering get_state, symbol = %d\n", symbol);
|
*/
|
||||||
#endif
|
|
||||||
|
|
||||||
isp1 = kernel_base[symbol];
|
|
||||||
iend = kernel_end[symbol];
|
|
||||||
n = iend - isp1;
|
|
||||||
|
|
||||||
/* add up the target state's active item numbers to get a hash key */
|
|
||||||
key = 0;
|
key = 0;
|
||||||
while (isp1 < iend)
|
for (i = 0; i < kernel_size[symbol]; ++i)
|
||||||
key += *isp1++;
|
key += kernel_base[symbol][i];
|
||||||
|
|
||||||
key = key % STATE_TABLE_SIZE;
|
key = key % STATE_TABLE_SIZE;
|
||||||
|
|
||||||
sp = state_table[key];
|
sp = state_table[key];
|
||||||
|
|
||||||
if (sp)
|
if (sp)
|
||||||
{
|
{
|
||||||
found = 0;
|
int found = 0;
|
||||||
while (!found)
|
while (!found)
|
||||||
{
|
{
|
||||||
if (sp->nitems == n)
|
if (sp->nitems == kernel_size[symbol])
|
||||||
{
|
{
|
||||||
found = 1;
|
found = 1;
|
||||||
isp1 = kernel_base[symbol];
|
for (i = 0; i < kernel_size[symbol]; ++i)
|
||||||
isp2 = sp->items;
|
if (kernel_base[symbol][i] != sp->items[i])
|
||||||
|
found = 0;
|
||||||
while (found && isp1 < iend)
|
|
||||||
{
|
|
||||||
if (*isp1++ != *isp2++)
|
|
||||||
found = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!found)
|
if (!found)
|
||||||
@@ -301,6 +260,9 @@ get_state (int symbol)
|
|||||||
state_table[key] = sp = new_state (symbol);
|
state_table[key] = sp = new_state (symbol);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (trace_flag)
|
||||||
|
fprintf (stderr, "Exiting get_state => %d\n", sp->number);
|
||||||
|
|
||||||
return sp->number;
|
return sp->number;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -318,9 +280,9 @@ append_states (void)
|
|||||||
int j;
|
int j;
|
||||||
int symbol;
|
int symbol;
|
||||||
|
|
||||||
#if TRACE
|
if (trace_flag)
|
||||||
fprintf (stderr, "Entering append_states\n");
|
fprintf (stderr, "Entering append_states, state = %d\n",
|
||||||
#endif
|
this_state->number);
|
||||||
|
|
||||||
/* first sort shift_symbol into increasing order */
|
/* first sort shift_symbol into increasing order */
|
||||||
|
|
||||||
@@ -337,55 +299,36 @@ append_states (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < nshifts; i++)
|
for (i = 0; i < nshifts; i++)
|
||||||
{
|
shiftset[i] = get_state (shift_symbol[i]);
|
||||||
symbol = shift_symbol[i];
|
|
||||||
shiftset[i] = get_state (symbol);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
new_states (void)
|
new_states (void)
|
||||||
{
|
{
|
||||||
core *p;
|
first_state = last_state = this_state = CORE_ALLOC (0);
|
||||||
|
|
||||||
p = (core *) xcalloc ((unsigned) (sizeof (core) - sizeof (short)), 1);
|
|
||||||
first_state = last_state = this_state = p;
|
|
||||||
nstates = 1;
|
nstates = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*------------------------------------------------------------.
|
||||||
|
| Save the NSHIFTS of SHIFTSET into the current linked list. |
|
||||||
|
`------------------------------------------------------------*/
|
||||||
|
|
||||||
static void
|
static void
|
||||||
save_shifts (void)
|
save_shifts (void)
|
||||||
{
|
{
|
||||||
shifts *p;
|
shifts *p = shifts_new (nshifts);
|
||||||
short *sp1;
|
|
||||||
short *sp2;
|
|
||||||
short *send;
|
|
||||||
|
|
||||||
p = (shifts *) xcalloc ((unsigned) (sizeof (shifts) +
|
|
||||||
(nshifts - 1) * sizeof (short)), 1);
|
|
||||||
|
|
||||||
p->number = this_state->number;
|
p->number = this_state->number;
|
||||||
p->nshifts = nshifts;
|
|
||||||
|
|
||||||
sp1 = shiftset;
|
shortcpy (p->shifts, shiftset, nshifts);
|
||||||
sp2 = p->shifts;
|
|
||||||
send = shiftset + nshifts;
|
|
||||||
|
|
||||||
while (sp1 < send)
|
|
||||||
*sp2++ = *sp1++;
|
|
||||||
|
|
||||||
if (last_shift)
|
if (last_shift)
|
||||||
{
|
last_shift->next = p;
|
||||||
last_shift->next = p;
|
|
||||||
last_shift = p;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
first_shift = p;
|
||||||
first_shift = p;
|
last_shift = p;
|
||||||
last_shift = p;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -400,7 +343,7 @@ insert_start_shift (void)
|
|||||||
core *statep;
|
core *statep;
|
||||||
shifts *sp;
|
shifts *sp;
|
||||||
|
|
||||||
statep = (core *) xcalloc ((unsigned) (sizeof (core) - sizeof (short)), 1);
|
statep = CORE_ALLOC (0);
|
||||||
statep->number = nstates;
|
statep->number = nstates;
|
||||||
statep->accessing_symbol = start_symbol;
|
statep->accessing_symbol = start_symbol;
|
||||||
|
|
||||||
@@ -408,9 +351,8 @@ insert_start_shift (void)
|
|||||||
last_state = statep;
|
last_state = statep;
|
||||||
|
|
||||||
/* Make a shift from this state to (what will be) the final state. */
|
/* Make a shift from this state to (what will be) the final state. */
|
||||||
sp = XCALLOC (shifts, 1);
|
sp = shifts_new (1);
|
||||||
sp->number = nstates++;
|
sp->number = nstates++;
|
||||||
sp->nshifts = 1;
|
|
||||||
sp->shifts[0] = nstates;
|
sp->shifts[0] = nstates;
|
||||||
|
|
||||||
last_shift->next = sp;
|
last_shift->next = sp;
|
||||||
@@ -429,135 +371,18 @@ insert_start_shift (void)
|
|||||||
static void
|
static void
|
||||||
augment_automaton (void)
|
augment_automaton (void)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
int k;
|
|
||||||
core *statep;
|
core *statep;
|
||||||
shifts *sp;
|
shifts *sp;
|
||||||
shifts *sp2;
|
|
||||||
shifts *sp1 = NULL;
|
shifts *sp1 = NULL;
|
||||||
|
|
||||||
sp = first_shift;
|
sp = first_shift;
|
||||||
|
|
||||||
if (sp)
|
if (!sp->nshifts)
|
||||||
{
|
{
|
||||||
if (sp->number == 0)
|
/* There are no shifts for any state. Make one shift, from the
|
||||||
{
|
initial state to the next-to-final state. */
|
||||||
k = sp->nshifts;
|
|
||||||
statep = first_state->next;
|
|
||||||
|
|
||||||
/* The states reached by shifts from first_state are numbered 1...K.
|
sp = shifts_new (1);
|
||||||
Look for one reached by start_symbol. */
|
|
||||||
while (statep->accessing_symbol < start_symbol
|
|
||||||
&& statep->number < k)
|
|
||||||
statep = statep->next;
|
|
||||||
|
|
||||||
if (statep->accessing_symbol == start_symbol)
|
|
||||||
{
|
|
||||||
/* We already have a next-to-final state.
|
|
||||||
Make sure it has a shift to what will be the final state. */
|
|
||||||
k = statep->number;
|
|
||||||
|
|
||||||
while (sp && sp->number < k)
|
|
||||||
{
|
|
||||||
sp1 = sp;
|
|
||||||
sp = sp->next;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sp && sp->number == k)
|
|
||||||
{
|
|
||||||
sp2 = (shifts *) xcalloc ((unsigned) (sizeof (shifts)
|
|
||||||
+
|
|
||||||
sp->nshifts *
|
|
||||||
sizeof (short)), 1);
|
|
||||||
sp2->number = k;
|
|
||||||
sp2->nshifts = sp->nshifts + 1;
|
|
||||||
sp2->shifts[0] = nstates;
|
|
||||||
for (i = sp->nshifts; i > 0; i--)
|
|
||||||
sp2->shifts[i] = sp->shifts[i - 1];
|
|
||||||
|
|
||||||
/* Patch sp2 into the chain of shifts in place of sp,
|
|
||||||
following sp1. */
|
|
||||||
sp2->next = sp->next;
|
|
||||||
sp1->next = sp2;
|
|
||||||
if (sp == last_shift)
|
|
||||||
last_shift = sp2;
|
|
||||||
XFREE (sp);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sp2 = XCALLOC (shifts, 1);
|
|
||||||
sp2->number = k;
|
|
||||||
sp2->nshifts = 1;
|
|
||||||
sp2->shifts[0] = nstates;
|
|
||||||
|
|
||||||
/* Patch sp2 into the chain of shifts between sp1 and sp. */
|
|
||||||
sp2->next = sp;
|
|
||||||
sp1->next = sp2;
|
|
||||||
if (sp == 0)
|
|
||||||
last_shift = sp2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* There is no next-to-final state as yet. */
|
|
||||||
/* Add one more shift in first_shift,
|
|
||||||
going to the next-to-final state (yet to be made). */
|
|
||||||
sp = first_shift;
|
|
||||||
|
|
||||||
sp2 = (shifts *) xcalloc (sizeof (shifts)
|
|
||||||
+ sp->nshifts * sizeof (short), 1);
|
|
||||||
sp2->nshifts = sp->nshifts + 1;
|
|
||||||
|
|
||||||
/* Stick this shift into the vector at the proper place. */
|
|
||||||
statep = first_state->next;
|
|
||||||
for (k = 0, i = 0; i < sp->nshifts; k++, i++)
|
|
||||||
{
|
|
||||||
if (statep->accessing_symbol > start_symbol && i == k)
|
|
||||||
sp2->shifts[k++] = nstates;
|
|
||||||
sp2->shifts[k] = sp->shifts[i];
|
|
||||||
statep = statep->next;
|
|
||||||
}
|
|
||||||
if (i == k)
|
|
||||||
sp2->shifts[k++] = nstates;
|
|
||||||
|
|
||||||
/* Patch sp2 into the chain of shifts
|
|
||||||
in place of sp, at the beginning. */
|
|
||||||
sp2->next = sp->next;
|
|
||||||
first_shift = sp2;
|
|
||||||
if (last_shift == sp)
|
|
||||||
last_shift = sp2;
|
|
||||||
|
|
||||||
XFREE (sp);
|
|
||||||
|
|
||||||
/* Create the next-to-final state, with shift to
|
|
||||||
what will be the final state. */
|
|
||||||
insert_start_shift ();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* The initial state didn't even have any shifts.
|
|
||||||
Give it one shift, to the next-to-final state. */
|
|
||||||
sp = XCALLOC (shifts, 1);
|
|
||||||
sp->nshifts = 1;
|
|
||||||
sp->shifts[0] = nstates;
|
|
||||||
|
|
||||||
/* Patch sp into the chain of shifts at the beginning. */
|
|
||||||
sp->next = first_shift;
|
|
||||||
first_shift = sp;
|
|
||||||
|
|
||||||
/* Create the next-to-final state, with shift to
|
|
||||||
what will be the final state. */
|
|
||||||
insert_start_shift ();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
/* There are no shifts for any state.
|
|
||||||
Make one shift, from the initial state to the next-to-final state. */
|
|
||||||
|
|
||||||
sp = XCALLOC (shifts, 1);
|
|
||||||
sp->nshifts = 1;
|
|
||||||
sp->shifts[0] = nstates;
|
sp->shifts[0] = nstates;
|
||||||
|
|
||||||
/* Initialize the chain of shifts with sp. */
|
/* Initialize the chain of shifts with sp. */
|
||||||
@@ -568,19 +393,121 @@ augment_automaton (void)
|
|||||||
what will be the final state. */
|
what will be the final state. */
|
||||||
insert_start_shift ();
|
insert_start_shift ();
|
||||||
}
|
}
|
||||||
|
else if (sp->number == 0)
|
||||||
|
{
|
||||||
|
statep = first_state->next;
|
||||||
|
|
||||||
|
/* The states reached by shifts from FIRST_STATE are numbered
|
||||||
|
1..(SP->NSHIFTS). Look for one reached by START_SYMBOL. */
|
||||||
|
while (statep->accessing_symbol < start_symbol
|
||||||
|
&& statep->number < sp->nshifts)
|
||||||
|
statep = statep->next;
|
||||||
|
|
||||||
|
if (statep->accessing_symbol == start_symbol)
|
||||||
|
{
|
||||||
|
/* We already have a next-to-final state.
|
||||||
|
Make sure it has a shift to what will be the final state. */
|
||||||
|
while (sp && sp->number < statep->number)
|
||||||
|
{
|
||||||
|
sp1 = sp;
|
||||||
|
sp = sp->next;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sp && sp->number == statep->number)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
shifts *sp2 = shifts_new (sp->nshifts + 1);
|
||||||
|
sp2->number = statep->number;
|
||||||
|
sp2->shifts[0] = nstates;
|
||||||
|
for (i = sp->nshifts; i > 0; i--)
|
||||||
|
sp2->shifts[i] = sp->shifts[i - 1];
|
||||||
|
|
||||||
|
/* Patch sp2 into the chain of shifts in place of sp,
|
||||||
|
following sp1. */
|
||||||
|
sp2->next = sp->next;
|
||||||
|
sp1->next = sp2;
|
||||||
|
if (sp == last_shift)
|
||||||
|
last_shift = sp2;
|
||||||
|
XFREE (sp);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
shifts *sp2 = shifts_new (1);
|
||||||
|
sp2->number = statep->number;
|
||||||
|
sp2->shifts[0] = nstates;
|
||||||
|
|
||||||
|
/* Patch sp2 into the chain of shifts between sp1 and sp. */
|
||||||
|
sp2->next = sp;
|
||||||
|
sp1->next = sp2;
|
||||||
|
if (sp == 0)
|
||||||
|
last_shift = sp2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int i, k;
|
||||||
|
shifts *sp2;
|
||||||
|
|
||||||
|
/* There is no next-to-final state as yet. */
|
||||||
|
/* Add one more shift in first_shift,
|
||||||
|
going to the next-to-final state (yet to be made). */
|
||||||
|
sp = first_shift;
|
||||||
|
|
||||||
|
sp2 = shifts_new (sp->nshifts + 1);
|
||||||
|
|
||||||
|
/* Stick this shift into the vector at the proper place. */
|
||||||
|
statep = first_state->next;
|
||||||
|
for (k = 0, i = 0; i < sp->nshifts; k++, i++)
|
||||||
|
{
|
||||||
|
if (statep->accessing_symbol > start_symbol && i == k)
|
||||||
|
sp2->shifts[k++] = nstates;
|
||||||
|
sp2->shifts[k] = sp->shifts[i];
|
||||||
|
statep = statep->next;
|
||||||
|
}
|
||||||
|
if (i == k)
|
||||||
|
sp2->shifts[k++] = nstates;
|
||||||
|
|
||||||
|
/* Patch sp2 into the chain of shifts
|
||||||
|
in place of sp, at the beginning. */
|
||||||
|
sp2->next = sp->next;
|
||||||
|
first_shift = sp2;
|
||||||
|
if (last_shift == sp)
|
||||||
|
last_shift = sp2;
|
||||||
|
|
||||||
|
XFREE (sp);
|
||||||
|
|
||||||
|
/* Create the next-to-final state, with shift to
|
||||||
|
what will be the final state. */
|
||||||
|
insert_start_shift ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* The initial state didn't even have any shifts.
|
||||||
|
Give it one shift, to the next-to-final state. */
|
||||||
|
sp = shifts_new (1);
|
||||||
|
sp->shifts[0] = nstates;
|
||||||
|
|
||||||
|
/* Patch sp into the chain of shifts at the beginning. */
|
||||||
|
sp->next = first_shift;
|
||||||
|
first_shift = sp;
|
||||||
|
|
||||||
|
/* Create the next-to-final state, with shift to
|
||||||
|
what will be the final state. */
|
||||||
|
insert_start_shift ();
|
||||||
|
}
|
||||||
|
|
||||||
/* Make the final state--the one that follows a shift from the
|
/* Make the final state--the one that follows a shift from the
|
||||||
next-to-final state.
|
next-to-final state.
|
||||||
The symbol for that shift is 0 (end-of-file). */
|
The symbol for that shift is 0 (end-of-file). */
|
||||||
statep = (core *) xcalloc ((unsigned) (sizeof (core) - sizeof (short)), 1);
|
statep = CORE_ALLOC (0);
|
||||||
statep->number = nstates;
|
statep->number = nstates;
|
||||||
last_state->next = statep;
|
last_state->next = statep;
|
||||||
last_state = statep;
|
last_state = statep;
|
||||||
|
|
||||||
/* Make the shift from the final state to the termination state. */
|
/* Make the shift from the final state to the termination state. */
|
||||||
sp = XCALLOC (shifts, 1);
|
sp = shifts_new (1);
|
||||||
sp->number = nstates++;
|
sp->number = nstates++;
|
||||||
sp->nshifts = 1;
|
|
||||||
sp->shifts[0] = nstates;
|
sp->shifts[0] = nstates;
|
||||||
last_shift->next = sp;
|
last_shift->next = sp;
|
||||||
last_shift = sp;
|
last_shift = sp;
|
||||||
@@ -590,7 +517,7 @@ augment_automaton (void)
|
|||||||
final_state = nstates;
|
final_state = nstates;
|
||||||
|
|
||||||
/* Make the termination state. */
|
/* Make the termination state. */
|
||||||
statep = (core *) xcalloc ((unsigned) (sizeof (core) - sizeof (short)), 1);
|
statep = CORE_ALLOC (0);
|
||||||
statep->number = nstates++;
|
statep->number = nstates++;
|
||||||
last_state->next = statep;
|
last_state->next = statep;
|
||||||
last_state = statep;
|
last_state = statep;
|
||||||
@@ -606,21 +533,15 @@ augment_automaton (void)
|
|||||||
static void
|
static void
|
||||||
save_reductions (void)
|
save_reductions (void)
|
||||||
{
|
{
|
||||||
short *isp;
|
|
||||||
short *rp1;
|
|
||||||
short *rp2;
|
|
||||||
int item;
|
|
||||||
int count;
|
int count;
|
||||||
reductions *p;
|
int i;
|
||||||
|
|
||||||
short *rend;
|
|
||||||
|
|
||||||
/* Find and count the active items that represent ends of rules. */
|
/* Find and count the active items that represent ends of rules. */
|
||||||
|
|
||||||
count = 0;
|
count = 0;
|
||||||
for (isp = itemset; isp < itemsetend; isp++)
|
for (i = 0; i < nitemset; ++i)
|
||||||
{
|
{
|
||||||
item = ritem[*isp];
|
int item = ritem[itemset[i]];
|
||||||
if (item < 0)
|
if (item < 0)
|
||||||
redset[count++] = -item;
|
redset[count++] = -item;
|
||||||
}
|
}
|
||||||
@@ -629,29 +550,18 @@ save_reductions (void)
|
|||||||
|
|
||||||
if (count)
|
if (count)
|
||||||
{
|
{
|
||||||
p = (reductions *) xcalloc ((unsigned) (sizeof (reductions) +
|
reductions *p = REDUCTIONS_ALLOC (count);
|
||||||
(count - 1) * sizeof (short)), 1);
|
|
||||||
|
|
||||||
p->number = this_state->number;
|
p->number = this_state->number;
|
||||||
p->nreds = count;
|
p->nreds = count;
|
||||||
|
|
||||||
rp1 = redset;
|
shortcpy (p->rules, redset, count);
|
||||||
rp2 = p->rules;
|
|
||||||
rend = rp1 + count;
|
|
||||||
|
|
||||||
for (/* nothing */; rp1 < rend; ++rp1, ++rp2)
|
|
||||||
*rp2 = *rp1;
|
|
||||||
|
|
||||||
if (last_reduction)
|
if (last_reduction)
|
||||||
{
|
last_reduction->next = p;
|
||||||
last_reduction->next = p;
|
|
||||||
last_reduction = p;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
first_reduction = p;
|
||||||
first_reduction = p;
|
last_reduction = p;
|
||||||
last_reduction = p;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -670,6 +580,9 @@ generate_states (void)
|
|||||||
|
|
||||||
while (this_state)
|
while (this_state)
|
||||||
{
|
{
|
||||||
|
if (trace_flag)
|
||||||
|
fprintf (stderr, "Processing state %d (reached by %s)\n",
|
||||||
|
this_state->number, tags[this_state->accessing_symbol]);
|
||||||
/* Set up ruleset and itemset for the transitions out of this
|
/* Set up ruleset and itemset for the transitions out of this
|
||||||
state. ruleset gets a 1 bit for each rule that could reduce
|
state. ruleset gets a 1 bit for each rule that could reduce
|
||||||
now. itemset gets a vector of all the items that could be
|
now. itemset gets a vector of all the items that could be
|
||||||
@@ -684,8 +597,7 @@ generate_states (void)
|
|||||||
|
|
||||||
/* create the shifts structures for the shifts to those states,
|
/* create the shifts structures for the shifts to those states,
|
||||||
now that the state numbers transitioning to are known */
|
now that the state numbers transitioning to are known */
|
||||||
if (nshifts > 0)
|
save_shifts ();
|
||||||
save_shifts ();
|
|
||||||
|
|
||||||
/* states are queued when they are created; process them all */
|
/* states are queued when they are created; process them all */
|
||||||
this_state = this_state->next;
|
this_state = this_state->next;
|
||||||
|
|||||||
+31
-6
@@ -1,19 +1,45 @@
|
|||||||
## Process this file with automake to produce Makefile.in -*-Makefile-*-
|
## Copyright 2001, 2002 Free Software Foundation, Inc.
|
||||||
AUTOMAKE_OPTIONS = 1.4 ../lib/ansi2knr
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
AUTOMAKE_OPTIONS = ../lib/ansi2knr
|
||||||
|
|
||||||
DEFS = @DEFS@ \
|
DEFS = @DEFS@ \
|
||||||
-DBISON_SIMPLE=\"$(pkgdatadir)/bison.simple\" \
|
-DBISON_SIMPLE=\"$(pkgdatadir)/bison.simple\" \
|
||||||
-DBISON_HAIRY=\"$(pkgdatadir)/bison.hairy\" \
|
-DBISON_HAIRY=\"$(pkgdatadir)/bison.hairy\" \
|
||||||
-DLOCALEDIR=\"$(datadir)/locale\"
|
-DLOCALEDIR=\"$(datadir)/locale\"
|
||||||
|
|
||||||
INCLUDES = -I../intl -I$(top_srcdir)/lib -I..
|
CFLAGS = @CFLAGS@ $(WARNING_CFLAGS) $(WERROR_CFLAGS)
|
||||||
LDADD = @INTLLIBS@ ../lib/libbison.a
|
|
||||||
|
# libintl.h in is build/intl, intl/libgettext.h in src/,
|
||||||
|
# config.h in build/.
|
||||||
|
INCLUDES = -I$(top_builddir)/intl \
|
||||||
|
-I$(top_builddir) \
|
||||||
|
-I$(top_srcdir)/intl \
|
||||||
|
-I$(top_srcdir)/lib
|
||||||
|
|
||||||
|
LDADD = $(INTLLIBS) ../lib/libbison.a
|
||||||
|
|
||||||
bin_PROGRAMS = bison
|
bin_PROGRAMS = bison
|
||||||
|
|
||||||
bison_SOURCES = LR0.c closure.c complain.c conflicts.c \
|
bison_SOURCES = LR0.c closure.c complain.c conflicts.c \
|
||||||
derives.c \
|
derives.c \
|
||||||
files.c getargs.c gram.c lalr.c lex.c main.c nullable.c \
|
files.c getargs.c gram.c lalr.c lex.c main.c nullable.c \
|
||||||
output.c \
|
output.h output.c \
|
||||||
|
state.h state.c \
|
||||||
print.c reader.c reduce.c symtab.c warshall.c vcg.c print_graph.c
|
print.c reader.c reduce.c symtab.c warshall.c vcg.c print_graph.c
|
||||||
|
|
||||||
EXTRA_bison_SOURCES = vmsgetargs.c
|
EXTRA_bison_SOURCES = vmsgetargs.c
|
||||||
@@ -21,7 +47,6 @@ EXTRA_bison_SOURCES = vmsgetargs.c
|
|||||||
noinst_HEADERS = LR0.h closure.h complain.h conflicts.h \
|
noinst_HEADERS = LR0.h closure.h complain.h conflicts.h \
|
||||||
derives.h \
|
derives.h \
|
||||||
files.h getargs.h gram.h lalr.h lex.h nullable.h \
|
files.h getargs.h gram.h lalr.h lex.h nullable.h \
|
||||||
output.h state.h \
|
|
||||||
print.h reader.h reduce.h symtab.h warshall.h system.h types.h \
|
print.h reader.h reduce.h symtab.h warshall.h system.h types.h \
|
||||||
vcg.h vcg_defaults.h print_graph.h
|
vcg.h vcg_defaults.h print_graph.h
|
||||||
|
|
||||||
|
|||||||
+95
-65
@@ -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@
|
# @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.
|
# Free Software Foundation, Inc.
|
||||||
# This Makefile.in is free software; the Free Software Foundation
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
@@ -13,7 +13,6 @@
|
|||||||
# PARTICULAR PURPOSE.
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
@SET_MAKE@
|
@SET_MAKE@
|
||||||
|
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
|
|
||||||
srcdir = @srcdir@
|
srcdir = @srcdir@
|
||||||
@@ -48,6 +47,8 @@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
|||||||
INSTALL = @INSTALL@
|
INSTALL = @INSTALL@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
INSTALL_HEADER = $(INSTALL_DATA)
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
transform = @program_transform_name@
|
transform = @program_transform_name@
|
||||||
@@ -67,7 +68,6 @@ AMTAR = @AMTAR@
|
|||||||
AUTOM4TE = @AUTOM4TE@
|
AUTOM4TE = @AUTOM4TE@
|
||||||
AWK = @AWK@
|
AWK = @AWK@
|
||||||
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
||||||
CATALOGS = @CATALOGS@
|
|
||||||
CATOBJEXT = @CATOBJEXT@
|
CATOBJEXT = @CATOBJEXT@
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CPP = @CPP@
|
CPP = @CPP@
|
||||||
@@ -76,47 +76,62 @@ DEPDIR = @DEPDIR@
|
|||||||
GCC = @GCC@
|
GCC = @GCC@
|
||||||
GENCAT = @GENCAT@
|
GENCAT = @GENCAT@
|
||||||
GLIBC21 = @GLIBC21@
|
GLIBC21 = @GLIBC21@
|
||||||
GMOFILES = @GMOFILES@
|
|
||||||
GMSGFMT = @GMSGFMT@
|
GMSGFMT = @GMSGFMT@
|
||||||
|
HAVE_LIB = @HAVE_LIB@
|
||||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
INSTOBJEXT = @INSTOBJEXT@
|
INSTOBJEXT = @INSTOBJEXT@
|
||||||
INTLBISON = @INTLBISON@
|
INTLBISON = @INTLBISON@
|
||||||
INTLLIBS = @INTLLIBS@
|
INTLLIBS = @INTLLIBS@
|
||||||
INTLOBJS = @INTLOBJS@
|
INTLOBJS = @INTLOBJS@
|
||||||
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
||||||
|
LIB = @LIB@
|
||||||
LIBICONV = @LIBICONV@
|
LIBICONV = @LIBICONV@
|
||||||
LIBOBJS = @LIBOBJS@
|
LIBINTL = @LIBINTL@
|
||||||
|
LTLIB = @LTLIB@
|
||||||
|
LTLIBICONV = @LTLIBICONV@
|
||||||
|
LTLIBINTL = @LTLIBINTL@
|
||||||
MKINSTALLDIRS = @MKINSTALLDIRS@
|
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||||
MSGFMT = @MSGFMT@
|
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
POFILES = @POFILES@
|
|
||||||
POSUB = @POSUB@
|
POSUB = @POSUB@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
|
STRIP = @STRIP@
|
||||||
U = @U@
|
U = @U@
|
||||||
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
|
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
|
||||||
USE_NLS = @USE_NLS@
|
USE_NLS = @USE_NLS@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
WARNING_CFLAGS = @WARNING_CFLAGS@
|
WARNING_CFLAGS = @WARNING_CFLAGS@
|
||||||
|
WERROR_CFLAGS = @WERROR_CFLAGS@
|
||||||
am__include = @am__include@
|
am__include = @am__include@
|
||||||
am__quote = @am__quote@
|
am__quote = @am__quote@
|
||||||
install_sh = @install_sh@
|
install_sh = @install_sh@
|
||||||
|
|
||||||
AUTOMAKE_OPTIONS = 1.4 ../lib/ansi2knr
|
AUTOMAKE_OPTIONS = ../lib/ansi2knr
|
||||||
|
|
||||||
DEFS = @DEFS@ \
|
DEFS = @DEFS@ \
|
||||||
-DBISON_SIMPLE=\"$(pkgdatadir)/bison.simple\" \
|
-DBISON_SIMPLE=\"$(pkgdatadir)/bison.simple\" \
|
||||||
-DBISON_HAIRY=\"$(pkgdatadir)/bison.hairy\" \
|
-DBISON_HAIRY=\"$(pkgdatadir)/bison.hairy\" \
|
||||||
-DLOCALEDIR=\"$(datadir)/locale\"
|
-DLOCALEDIR=\"$(datadir)/locale\"
|
||||||
|
|
||||||
|
|
||||||
INCLUDES = -I../intl -I$(top_srcdir)/lib -I..
|
CFLAGS = @CFLAGS@ $(WARNING_CFLAGS) $(WERROR_CFLAGS)
|
||||||
LDADD = @INTLLIBS@ ../lib/libbison.a
|
|
||||||
|
# libintl.h in is build/intl, intl/libgettext.h in src/,
|
||||||
|
# config.h in build/.
|
||||||
|
INCLUDES = -I$(top_builddir)/intl \
|
||||||
|
-I$(top_builddir) \
|
||||||
|
-I$(top_srcdir)/intl \
|
||||||
|
-I$(top_srcdir)/lib
|
||||||
|
|
||||||
|
|
||||||
|
LDADD = $(INTLLIBS) ../lib/libbison.a
|
||||||
|
|
||||||
bin_PROGRAMS = bison
|
bin_PROGRAMS = bison
|
||||||
|
|
||||||
bison_SOURCES = LR0.c closure.c complain.c conflicts.c \
|
bison_SOURCES = LR0.c closure.c complain.c conflicts.c \
|
||||||
derives.c \
|
derives.c \
|
||||||
files.c getargs.c gram.c lalr.c lex.c main.c nullable.c \
|
files.c getargs.c gram.c lalr.c lex.c main.c nullable.c \
|
||||||
output.c \
|
output.h output.c \
|
||||||
|
state.h state.c \
|
||||||
print.c reader.c reduce.c symtab.c warshall.c vcg.c print_graph.c
|
print.c reader.c reduce.c symtab.c warshall.c vcg.c print_graph.c
|
||||||
|
|
||||||
|
|
||||||
@@ -125,7 +140,6 @@ EXTRA_bison_SOURCES = vmsgetargs.c
|
|||||||
noinst_HEADERS = LR0.h closure.h complain.h conflicts.h \
|
noinst_HEADERS = LR0.h closure.h complain.h conflicts.h \
|
||||||
derives.h \
|
derives.h \
|
||||||
files.h getargs.h gram.h lalr.h lex.h nullable.h \
|
files.h getargs.h gram.h lalr.h lex.h nullable.h \
|
||||||
output.h state.h \
|
|
||||||
print.h reader.h reduce.h symtab.h warshall.h system.h types.h \
|
print.h reader.h reduce.h symtab.h warshall.h system.h types.h \
|
||||||
vcg.h vcg_defaults.h print_graph.h
|
vcg.h vcg_defaults.h print_graph.h
|
||||||
|
|
||||||
@@ -144,9 +158,10 @@ am_bison_OBJECTS = LR0$U.$(OBJEXT) closure$U.$(OBJEXT) \
|
|||||||
complain$U.$(OBJEXT) conflicts$U.$(OBJEXT) derives$U.$(OBJEXT) \
|
complain$U.$(OBJEXT) conflicts$U.$(OBJEXT) derives$U.$(OBJEXT) \
|
||||||
files$U.$(OBJEXT) getargs$U.$(OBJEXT) gram$U.$(OBJEXT) \
|
files$U.$(OBJEXT) getargs$U.$(OBJEXT) gram$U.$(OBJEXT) \
|
||||||
lalr$U.$(OBJEXT) lex$U.$(OBJEXT) main$U.$(OBJEXT) \
|
lalr$U.$(OBJEXT) lex$U.$(OBJEXT) main$U.$(OBJEXT) \
|
||||||
nullable$U.$(OBJEXT) output$U.$(OBJEXT) print$U.$(OBJEXT) \
|
nullable$U.$(OBJEXT) output$U.$(OBJEXT) state$U.$(OBJEXT) \
|
||||||
reader$U.$(OBJEXT) reduce$U.$(OBJEXT) symtab$U.$(OBJEXT) \
|
print$U.$(OBJEXT) reader$U.$(OBJEXT) reduce$U.$(OBJEXT) \
|
||||||
warshall$U.$(OBJEXT) vcg$U.$(OBJEXT) print_graph$U.$(OBJEXT)
|
symtab$U.$(OBJEXT) warshall$U.$(OBJEXT) vcg$U.$(OBJEXT) \
|
||||||
|
print_graph$U.$(OBJEXT)
|
||||||
bison_OBJECTS = $(am_bison_OBJECTS)
|
bison_OBJECTS = $(am_bison_OBJECTS)
|
||||||
bison_LDADD = $(LDADD)
|
bison_LDADD = $(LDADD)
|
||||||
bison_DEPENDENCIES = ../lib/libbison.a
|
bison_DEPENDENCIES = ../lib/libbison.a
|
||||||
@@ -156,22 +171,23 @@ CPPFLAGS = @CPPFLAGS@
|
|||||||
LDFLAGS = @LDFLAGS@
|
LDFLAGS = @LDFLAGS@
|
||||||
LIBS = @LIBS@
|
LIBS = @LIBS@
|
||||||
depcomp = $(SHELL) $(top_srcdir)/config/depcomp
|
depcomp = $(SHELL) $(top_srcdir)/config/depcomp
|
||||||
@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/LR0$U.Po $(DEPDIR)/closure$U.Po \
|
am__depfiles_maybe = depfiles
|
||||||
@AMDEP_TRUE@ $(DEPDIR)/complain$U.Po $(DEPDIR)/conflicts$U.Po \
|
@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/LR0$U.Po ./$(DEPDIR)/closure$U.Po \
|
||||||
@AMDEP_TRUE@ $(DEPDIR)/derives$U.Po $(DEPDIR)/files$U.Po \
|
@AMDEP_TRUE@ ./$(DEPDIR)/complain$U.Po \
|
||||||
@AMDEP_TRUE@ $(DEPDIR)/getargs$U.Po $(DEPDIR)/gram$U.Po \
|
@AMDEP_TRUE@ ./$(DEPDIR)/conflicts$U.Po ./$(DEPDIR)/derives$U.Po \
|
||||||
@AMDEP_TRUE@ $(DEPDIR)/lalr$U.Po $(DEPDIR)/lex$U.Po \
|
@AMDEP_TRUE@ ./$(DEPDIR)/files$U.Po ./$(DEPDIR)/getargs$U.Po \
|
||||||
@AMDEP_TRUE@ $(DEPDIR)/main$U.Po $(DEPDIR)/nullable$U.Po \
|
@AMDEP_TRUE@ ./$(DEPDIR)/gram$U.Po ./$(DEPDIR)/lalr$U.Po \
|
||||||
@AMDEP_TRUE@ $(DEPDIR)/output$U.Po $(DEPDIR)/print$U.Po \
|
@AMDEP_TRUE@ ./$(DEPDIR)/lex$U.Po ./$(DEPDIR)/main$U.Po \
|
||||||
@AMDEP_TRUE@ $(DEPDIR)/print_graph$U.Po $(DEPDIR)/reader$U.Po \
|
@AMDEP_TRUE@ ./$(DEPDIR)/nullable$U.Po ./$(DEPDIR)/output$U.Po \
|
||||||
@AMDEP_TRUE@ $(DEPDIR)/reduce$U.Po $(DEPDIR)/symtab$U.Po \
|
@AMDEP_TRUE@ ./$(DEPDIR)/print$U.Po ./$(DEPDIR)/print_graph$U.Po \
|
||||||
@AMDEP_TRUE@ $(DEPDIR)/vcg$U.Po $(DEPDIR)/vmsgetargs$U.Po \
|
@AMDEP_TRUE@ ./$(DEPDIR)/reader$U.Po ./$(DEPDIR)/reduce$U.Po \
|
||||||
@AMDEP_TRUE@ $(DEPDIR)/warshall$U.Po
|
@AMDEP_TRUE@ ./$(DEPDIR)/state$U.Po ./$(DEPDIR)/symtab$U.Po \
|
||||||
|
@AMDEP_TRUE@ ./$(DEPDIR)/vcg$U.Po ./$(DEPDIR)/vmsgetargs$U.Po \
|
||||||
|
@AMDEP_TRUE@ ./$(DEPDIR)/warshall$U.Po
|
||||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||||
CCLD = $(CC)
|
CCLD = $(CC)
|
||||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||||
CFLAGS = @CFLAGS@
|
|
||||||
DIST_SOURCES = $(bison_SOURCES) $(EXTRA_bison_SOURCES)
|
DIST_SOURCES = $(bison_SOURCES) $(EXTRA_bison_SOURCES)
|
||||||
DATA = $(pkgdata_DATA)
|
DATA = $(pkgdata_DATA)
|
||||||
|
|
||||||
@@ -188,7 +204,8 @@ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
|||||||
cd $(top_srcdir) && \
|
cd $(top_srcdir) && \
|
||||||
$(AUTOMAKE) --gnu src/Makefile
|
$(AUTOMAKE) --gnu src/Makefile
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
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)
|
||||||
|
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
||||||
install-binPROGRAMS: $(bin_PROGRAMS)
|
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||||
@$(NORMAL_INSTALL)
|
@$(NORMAL_INSTALL)
|
||||||
$(mkinstalldirs) $(DESTDIR)$(bindir)
|
$(mkinstalldirs) $(DESTDIR)$(bindir)
|
||||||
@@ -196,9 +213,10 @@ install-binPROGRAMS: $(bin_PROGRAMS)
|
|||||||
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||||
if test -f $$p \
|
if test -f $$p \
|
||||||
; then \
|
; then \
|
||||||
|
p1=`echo "$$p1" | sed -e 's,^.*/,,'`; \
|
||||||
f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
|
f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
|
||||||
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f"; \
|
echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \
|
||||||
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f; \
|
$(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f; \
|
||||||
else :; fi; \
|
else :; fi; \
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -206,6 +224,7 @@ uninstall-binPROGRAMS:
|
|||||||
@$(NORMAL_UNINSTALL)
|
@$(NORMAL_UNINSTALL)
|
||||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||||
f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
|
f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||||
|
f=`echo "$$f" | sed -e 's,^.*/,,'`; \
|
||||||
echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
|
echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
|
||||||
rm -f $(DESTDIR)$(bindir)/$$f; \
|
rm -f $(DESTDIR)$(bindir)/$$f; \
|
||||||
done
|
done
|
||||||
@@ -229,30 +248,31 @@ ANSI2KNR = ../lib/ansi2knr
|
|||||||
mostlyclean-kr:
|
mostlyclean-kr:
|
||||||
-test "$U" = "" || rm -f *_.c
|
-test "$U" = "" || rm -f *_.c
|
||||||
|
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/LR0$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LR0$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/closure$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/closure$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/complain$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/complain$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/conflicts$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conflicts$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/derives$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/derives$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/files$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/files$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getargs$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getargs$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/gram$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gram$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/lalr$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lalr$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/lex$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lex$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/main$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/nullable$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nullable$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/output$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/output$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/print$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/print_graph$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print_graph$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/reader$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reader$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/reduce$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reduce$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/symtab$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/state$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vcg$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symtab$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vmsgetargs$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vcg$U.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/warshall$U.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vmsgetargs$U.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/warshall$U.Po@am__quote@
|
||||||
|
|
||||||
distclean-depend:
|
distclean-depend:
|
||||||
-rm -rf $(DEPDIR)
|
-rm -rf ./$(DEPDIR)
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
@@ -300,6 +320,8 @@ reader_.c: reader.c $(ANSI2KNR)
|
|||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/reader.c; then echo $(srcdir)/reader.c; else echo reader.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > reader_.c || rm -f reader_.c
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/reader.c; then echo $(srcdir)/reader.c; else echo reader.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > reader_.c || rm -f reader_.c
|
||||||
reduce_.c: reduce.c $(ANSI2KNR)
|
reduce_.c: reduce.c $(ANSI2KNR)
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/reduce.c; then echo $(srcdir)/reduce.c; else echo reduce.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > reduce_.c || rm -f reduce_.c
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/reduce.c; then echo $(srcdir)/reduce.c; else echo reduce.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > reduce_.c || rm -f reduce_.c
|
||||||
|
state_.c: state.c $(ANSI2KNR)
|
||||||
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/state.c; then echo $(srcdir)/state.c; else echo state.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > state_.c || rm -f state_.c
|
||||||
symtab_.c: symtab.c $(ANSI2KNR)
|
symtab_.c: symtab.c $(ANSI2KNR)
|
||||||
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/symtab.c; then echo $(srcdir)/symtab.c; else echo symtab.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > symtab_.c || rm -f symtab_.c
|
$(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/symtab.c; then echo $(srcdir)/symtab.c; else echo symtab.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > symtab_.c || rm -f symtab_.c
|
||||||
vcg_.c: vcg.c $(ANSI2KNR)
|
vcg_.c: vcg.c $(ANSI2KNR)
|
||||||
@@ -313,17 +335,18 @@ conflicts_.$(OBJEXT) derives_.$(OBJEXT) files_.$(OBJEXT) \
|
|||||||
getargs_.$(OBJEXT) gram_.$(OBJEXT) lalr_.$(OBJEXT) lex_.$(OBJEXT) \
|
getargs_.$(OBJEXT) gram_.$(OBJEXT) lalr_.$(OBJEXT) lex_.$(OBJEXT) \
|
||||||
main_.$(OBJEXT) nullable_.$(OBJEXT) output_.$(OBJEXT) print_.$(OBJEXT) \
|
main_.$(OBJEXT) nullable_.$(OBJEXT) output_.$(OBJEXT) print_.$(OBJEXT) \
|
||||||
print_graph_.$(OBJEXT) reader_.$(OBJEXT) reduce_.$(OBJEXT) \
|
print_graph_.$(OBJEXT) reader_.$(OBJEXT) reduce_.$(OBJEXT) \
|
||||||
symtab_.$(OBJEXT) vcg_.$(OBJEXT) vmsgetargs_.$(OBJEXT) \
|
state_.$(OBJEXT) symtab_.$(OBJEXT) vcg_.$(OBJEXT) vmsgetargs_.$(OBJEXT) \
|
||||||
warshall_.$(OBJEXT) : $(ANSI2KNR)
|
warshall_.$(OBJEXT) : $(ANSI2KNR)
|
||||||
uninstall-info-am:
|
uninstall-info-am:
|
||||||
|
pkgdataDATA_INSTALL = $(INSTALL_DATA)
|
||||||
install-pkgdataDATA: $(pkgdata_DATA)
|
install-pkgdataDATA: $(pkgdata_DATA)
|
||||||
@$(NORMAL_INSTALL)
|
@$(NORMAL_INSTALL)
|
||||||
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
|
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
|
||||||
@list='$(pkgdata_DATA)'; for p in $$list; do \
|
@list='$(pkgdata_DATA)'; for p in $$list; do \
|
||||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
f="`echo $$p | sed -e 's|^.*/||'`"; \
|
||||||
echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(pkgdatadir)/$$f"; \
|
echo " $(pkgdataDATA_INSTALL) $$d$$p $(DESTDIR)$(pkgdatadir)/$$f"; \
|
||||||
$(INSTALL_DATA) $$d$$p $(DESTDIR)$(pkgdatadir)/$$f; \
|
$(pkgdataDATA_INSTALL) $$d$$p $(DESTDIR)$(pkgdatadir)/$$f; \
|
||||||
done
|
done
|
||||||
|
|
||||||
uninstall-pkgdataDATA:
|
uninstall-pkgdataDATA:
|
||||||
@@ -334,29 +357,33 @@ uninstall-pkgdataDATA:
|
|||||||
rm -f $(DESTDIR)$(pkgdatadir)/$$f; \
|
rm -f $(DESTDIR)$(pkgdatadir)/$$f; \
|
||||||
done
|
done
|
||||||
|
|
||||||
|
ETAGS = etags
|
||||||
|
ETAGSFLAGS =
|
||||||
|
|
||||||
tags: TAGS
|
tags: TAGS
|
||||||
|
|
||||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||||
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
unique=`for i in $$list; do \
|
unique=`for i in $$list; do \
|
||||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
done | \
|
done | \
|
||||||
$(AWK) ' { files[$$0] = 1; } \
|
$(AWK) ' { files[$$0] = 1; } \
|
||||||
END { for (i in files) print i; }'`; \
|
END { for (i in files) print i; }'`; \
|
||||||
mkid -fID $$unique $(LISP)
|
mkid -fID $$unique
|
||||||
|
|
||||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||||
$(TAGS_FILES) $(LISP)
|
$(TAGS_FILES) $(LISP)
|
||||||
tags=; \
|
tags=; \
|
||||||
here=`pwd`; \
|
here=`pwd`; \
|
||||||
list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
unique=`for i in $$list; do \
|
unique=`for i in $$list; do \
|
||||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
done | \
|
done | \
|
||||||
$(AWK) ' { files[$$0] = 1; } \
|
$(AWK) ' { files[$$0] = 1; } \
|
||||||
END { for (i in files) print i; }'`; \
|
END { for (i in files) print i; }'`; \
|
||||||
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|
test -z "$(ETAGS_ARGS)$$tags$$unique" \
|
||||||
|| etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
|
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$tags $$unique
|
||||||
|
|
||||||
GTAGS:
|
GTAGS:
|
||||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||||
@@ -365,7 +392,6 @@ GTAGS:
|
|||||||
|
|
||||||
distclean-tags:
|
distclean-tags:
|
||||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
|
||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
top_distdir = ..
|
top_distdir = ..
|
||||||
@@ -373,13 +399,16 @@ distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
|
|||||||
|
|
||||||
distdir: $(DISTFILES)
|
distdir: $(DISTFILES)
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
if test -f $$file; then d=.; else d=$(srcdir); fi; \
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||||
$(mkinstalldirs) "$(distdir)/$$dir"; \
|
dir="/$$dir"; \
|
||||||
|
$(mkinstalldirs) "$(distdir)$$dir"; \
|
||||||
|
else \
|
||||||
|
dir=''; \
|
||||||
fi; \
|
fi; \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
cp -pR $$d/$$file $(distdir) \
|
cp -pR $$d/$$file $(distdir)$$dir \
|
||||||
|| exit 1; \
|
|| exit 1; \
|
||||||
else \
|
else \
|
||||||
test -f $(distdir)/$$file \
|
test -f $(distdir)/$$file \
|
||||||
@@ -405,6 +434,7 @@ install-am: all-am
|
|||||||
installcheck: installcheck-am
|
installcheck: installcheck-am
|
||||||
install-strip:
|
install-strip:
|
||||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
INSTALL_STRIP_FLAG=-s \
|
||||||
`test -z '$(STRIP)' || \
|
`test -z '$(STRIP)' || \
|
||||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||||
mostlyclean-generic:
|
mostlyclean-generic:
|
||||||
|
|||||||
+309
-213
@@ -1,7 +1,9 @@
|
|||||||
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
|
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
|
||||||
#line
|
#line
|
||||||
/* Skeleton output parser for bison,
|
/* Skeleton output parser for bison,
|
||||||
Copyright 1984, 1989, 1990, 2000, 2001 Free Software Foundation, Inc.
|
|
||||||
|
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
|
||||||
|
Foundation, Inc.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -28,58 +30,125 @@
|
|||||||
It was written by Richard Stallman by simplifying the hairy parser
|
It was written by Richard Stallman by simplifying the hairy parser
|
||||||
used when %semantic_parser is specified. */
|
used when %semantic_parser is specified. */
|
||||||
|
|
||||||
#ifndef YYSTACK_USE_ALLOCA
|
/* All symbols defined below should begin with yy or YY, to avoid
|
||||||
# ifdef alloca
|
infringing on user name space. This should be done even for local
|
||||||
# define YYSTACK_USE_ALLOCA 1
|
variables, as they might otherwise be expanded by user macros.
|
||||||
# else /* alloca not defined */
|
There are some unavoidable exceptions within include files to
|
||||||
# ifdef __GNUC__
|
define necessary library symbols; they are noted "INFRINGES ON
|
||||||
# define YYSTACK_USE_ALLOCA 1
|
USER NAME SPACE" below. */
|
||||||
# define alloca __builtin_alloca
|
|
||||||
# else /* not GNU C. */
|
#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
|
||||||
# if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
|
|
||||||
# define YYSTACK_USE_ALLOCA 1
|
/* The parser invokes alloca or malloc; define the necessary symbols. */
|
||||||
# include <alloca.h>
|
|
||||||
# else /* not sparc */
|
# if YYSTACK_USE_ALLOCA
|
||||||
/* We think this test detects Watcom and Microsoft C. */
|
# define YYSTACK_ALLOC alloca
|
||||||
/* This used to test MSDOS, but that is a bad idea since that
|
# else
|
||||||
symbol is in the user namespace. */
|
# ifndef YYSTACK_USE_ALLOCA
|
||||||
# if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
|
# if defined (alloca) || defined (_ALLOCA_H)
|
||||||
# if 0
|
# define YYSTACK_ALLOC alloca
|
||||||
/* No need for malloc.h, which pollutes the namespace; instead,
|
# else
|
||||||
just don't use alloca. */
|
# ifdef __GNUC__
|
||||||
# include <malloc.h>
|
# define YYSTACK_ALLOC __builtin_alloca
|
||||||
# endif
|
# endif
|
||||||
# else /* not MSDOS, or __TURBOC__ */
|
# endif
|
||||||
# if defined(_AIX)
|
# endif
|
||||||
/* I don't know what this was needed for, but it pollutes the
|
# endif
|
||||||
namespace. So I turned it off. rms, 2 May 1997. */
|
|
||||||
/* #include <malloc.h> */
|
# ifdef YYSTACK_ALLOC
|
||||||
#pragma alloca
|
/* Pacify GCC's `empty if-body' warning. */
|
||||||
# define YYSTACK_USE_ALLOCA 1
|
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
|
||||||
# else /* not MSDOS, or __TURBOC__, or _AIX */
|
# else
|
||||||
# if 0
|
# if defined (__STDC__) || defined (__cplusplus)
|
||||||
/* [email protected] says this works for HPUX 9.05 and up, and on
|
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
|
||||||
HPUX 10. Eventually we can turn this on. */
|
# define YYSIZE_T size_t
|
||||||
# ifdef __hpux
|
# endif
|
||||||
# define YYSTACK_USE_ALLOCA 1
|
# define YYSTACK_ALLOC malloc
|
||||||
# define alloca __builtin_alloca
|
# define YYSTACK_FREE free
|
||||||
# endif /* __hpux */
|
# endif
|
||||||
# endif
|
#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
|
||||||
# endif /* not _AIX */
|
|
||||||
# endif /* not MSDOS, or __TURBOC__ */
|
|
||||||
# endif /* not sparc */
|
#if (! defined (yyoverflow) \
|
||||||
# endif /* not GNU C */
|
&& (! defined (__cplusplus) \
|
||||||
# endif /* alloca not defined */
|
|| (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
|
||||||
#endif /* YYSTACK_USE_ALLOCA not defined */
|
|
||||||
|
/* A type that is properly aligned for any stack member. */
|
||||||
|
union yyalloc
|
||||||
|
{
|
||||||
|
short yyss;
|
||||||
|
YYSTYPE yyvs;
|
||||||
|
# if YYLSP_NEEDED
|
||||||
|
YYLTYPE yyls;
|
||||||
|
# endif
|
||||||
|
};
|
||||||
|
|
||||||
|
/* The size of the maximum gap between one aligned stack and the next. */
|
||||||
|
# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
|
||||||
|
|
||||||
|
/* The size of an array large to enough to hold all stacks, each with
|
||||||
|
N elements. */
|
||||||
|
# if YYLSP_NEEDED
|
||||||
|
# define YYSTACK_BYTES(N) \
|
||||||
|
((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
|
||||||
|
+ 2 * YYSTACK_GAP_MAX)
|
||||||
|
# else
|
||||||
|
# define YYSTACK_BYTES(N) \
|
||||||
|
((N) * (sizeof (short) + sizeof (YYSTYPE)) \
|
||||||
|
+ YYSTACK_GAP_MAX)
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* Copy COUNT objects from FROM to TO. The source and destination do
|
||||||
|
not overlap. */
|
||||||
|
# ifndef YYCOPY
|
||||||
|
# if 1 < __GNUC__
|
||||||
|
# define YYCOPY(To, From, Count) \
|
||||||
|
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
|
||||||
|
# else
|
||||||
|
# define YYCOPY(To, From, Count) \
|
||||||
|
do \
|
||||||
|
{ \
|
||||||
|
register YYSIZE_T yyi; \
|
||||||
|
for (yyi = 0; yyi < (Count); yyi++) \
|
||||||
|
(To)[yyi] = (From)[yyi]; \
|
||||||
|
} \
|
||||||
|
while (0)
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
/* Relocate STACK from its old location to the new one. The
|
||||||
|
local variables YYSIZE and YYSTACKSIZE give the old and new number of
|
||||||
|
elements in the stack, and YYPTR gives the new location of the
|
||||||
|
stack. Advance YYPTR to a properly aligned location for the next
|
||||||
|
stack. */
|
||||||
|
# define YYSTACK_RELOCATE(Stack) \
|
||||||
|
do \
|
||||||
|
{ \
|
||||||
|
YYSIZE_T yynewbytes; \
|
||||||
|
YYCOPY (&yyptr->Stack, Stack, yysize); \
|
||||||
|
Stack = &yyptr->Stack; \
|
||||||
|
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
|
||||||
|
yyptr += yynewbytes / sizeof (*yyptr); \
|
||||||
|
} \
|
||||||
|
while (0)
|
||||||
|
|
||||||
#ifndef YYSTACK_USE_ALLOCA
|
|
||||||
# define YYSTACK_USE_ALLOCA 0
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if YYSTACK_USE_ALLOCA
|
|
||||||
# define YYSTACK_ALLOC alloca
|
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
|
||||||
#else
|
# define YYSIZE_T __SIZE_TYPE__
|
||||||
# define YYSTACK_ALLOC malloc
|
#endif
|
||||||
|
#if ! defined (YYSIZE_T) && defined (size_t)
|
||||||
|
# define YYSIZE_T size_t
|
||||||
|
#endif
|
||||||
|
#if ! defined (YYSIZE_T)
|
||||||
|
# if defined (__STDC__) || defined (__cplusplus)
|
||||||
|
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
|
||||||
|
# define YYSIZE_T size_t
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#if ! defined (YYSIZE_T)
|
||||||
|
# define YYSIZE_T unsigned int
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define yyerrok (yyerrstatus = 0)
|
#define yyerrok (yyerrstatus = 0)
|
||||||
@@ -152,15 +221,19 @@ while (0)
|
|||||||
|
|
||||||
/* Enable debugging if requested. */
|
/* Enable debugging if requested. */
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
|
|
||||||
|
# ifndef YYFPRINTF
|
||||||
|
# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
|
||||||
|
# define YYFPRINTF fprintf
|
||||||
|
# endif
|
||||||
|
|
||||||
# define YYDPRINTF(Args) \
|
# define YYDPRINTF(Args) \
|
||||||
do { \
|
do { \
|
||||||
if (yydebug) \
|
if (yydebug) \
|
||||||
fprintf Args; \
|
YYFPRINTF Args; \
|
||||||
} while (0)
|
} while (0)
|
||||||
/* Nonzero means print parse trace. [The following comment makes no
|
/* Nonzero means print parse trace. It is left uninitialized so that
|
||||||
sense to me. Could someone clarify it? --akim] Since this is
|
multiple parsers can coexist. */
|
||||||
uninitialized, it does not stop multiple parsers from coexisting.
|
|
||||||
*/
|
|
||||||
int yydebug;
|
int yydebug;
|
||||||
#else /* !YYDEBUG */
|
#else /* !YYDEBUG */
|
||||||
# define YYDPRINTF(Args)
|
# define YYDPRINTF(Args)
|
||||||
@@ -172,7 +245,12 @@ int yydebug;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
|
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
|
||||||
if the built-in stack extension method is used). */
|
if the built-in stack extension method is used).
|
||||||
|
|
||||||
|
Do not make this value too large; the results are undefined if
|
||||||
|
SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
|
||||||
|
evaluated with infinite-precision integer arithmetic. */
|
||||||
|
|
||||||
#if YYMAXDEPTH == 0
|
#if YYMAXDEPTH == 0
|
||||||
# undef YYMAXDEPTH
|
# undef YYMAXDEPTH
|
||||||
#endif
|
#endif
|
||||||
@@ -181,35 +259,56 @@ int yydebug;
|
|||||||
# define YYMAXDEPTH 10000
|
# define YYMAXDEPTH 10000
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Define __yy_memcpy. Note that the size argument
|
#ifdef YYERROR_VERBOSE
|
||||||
should be passed with type unsigned int, because that is what the non-GCC
|
|
||||||
definitions require. With GCC, __builtin_memcpy takes an arg
|
|
||||||
of type size_t, but it can handle unsigned int. */
|
|
||||||
|
|
||||||
#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
|
# ifndef yystrlen
|
||||||
# define __yy_memcpy(To, From, Count) __builtin_memcpy (To, From, Count)
|
# if defined (__GLIBC__) && defined (_STRING_H)
|
||||||
#else /* not GNU C or C++ */
|
# define yystrlen strlen
|
||||||
|
# else
|
||||||
/* This is the most reliable way to avoid incompatibilities
|
/* Return the length of YYSTR. */
|
||||||
in available built-in functions on various systems. */
|
static YYSIZE_T
|
||||||
static void
|
# if defined (__STDC__) || defined (__cplusplus)
|
||||||
# ifndef __cplusplus
|
yystrlen (const char *yystr)
|
||||||
__yy_memcpy (to, from, count)
|
# else
|
||||||
char *to;
|
yystrlen (yystr)
|
||||||
const char *from;
|
const char *yystr;
|
||||||
unsigned int count;
|
# endif
|
||||||
# else /* __cplusplus */
|
|
||||||
__yy_memcpy (char *to, const char *from, unsigned int count)
|
|
||||||
# endif
|
|
||||||
{
|
{
|
||||||
register const char *f = from;
|
register const char *yys = yystr;
|
||||||
register char *t = to;
|
|
||||||
register int i = count;
|
|
||||||
|
|
||||||
while (i-- > 0)
|
while (*yys++ != '\0')
|
||||||
*t++ = *f++;
|
continue;
|
||||||
|
|
||||||
|
return yys - yystr - 1;
|
||||||
}
|
}
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifndef yystpcpy
|
||||||
|
# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
|
||||||
|
# define yystpcpy stpcpy
|
||||||
|
# else
|
||||||
|
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
|
||||||
|
YYDEST. */
|
||||||
|
static char *
|
||||||
|
# if defined (__STDC__) || defined (__cplusplus)
|
||||||
|
yystpcpy (char *yydest, const char *yysrc)
|
||||||
|
# else
|
||||||
|
yystpcpy (yydest, yysrc)
|
||||||
|
char *yydest;
|
||||||
|
const char *yysrc;
|
||||||
|
# endif
|
||||||
|
{
|
||||||
|
register char *yyd = yydest;
|
||||||
|
register const char *yys = yysrc;
|
||||||
|
|
||||||
|
while ((*yyd++ = *yys++) != '\0')
|
||||||
|
continue;
|
||||||
|
|
||||||
|
return yyd - 1;
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#line
|
#line
|
||||||
@@ -221,13 +320,13 @@ __yy_memcpy (char *to, const char *from, unsigned int count)
|
|||||||
to the proper pointer type. */
|
to the proper pointer type. */
|
||||||
|
|
||||||
#ifdef YYPARSE_PARAM
|
#ifdef YYPARSE_PARAM
|
||||||
# ifdef __cplusplus
|
# if defined (__STDC__) || defined (__cplusplus)
|
||||||
# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
|
# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
|
||||||
# define YYPARSE_PARAM_DECL
|
# define YYPARSE_PARAM_DECL
|
||||||
# else /* !__cplusplus */
|
# else
|
||||||
# define YYPARSE_PARAM_ARG YYPARSE_PARAM
|
# define YYPARSE_PARAM_ARG YYPARSE_PARAM
|
||||||
# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
|
# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
|
||||||
# endif /* !__cplusplus */
|
# endif
|
||||||
#else /* !YYPARSE_PARAM */
|
#else /* !YYPARSE_PARAM */
|
||||||
# define YYPARSE_PARAM_ARG
|
# define YYPARSE_PARAM_ARG
|
||||||
# define YYPARSE_PARAM_DECL
|
# define YYPARSE_PARAM_DECL
|
||||||
@@ -245,7 +344,7 @@ int yyparse (void);
|
|||||||
/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
|
/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
|
||||||
variables are global, or local to YYPARSE. */
|
variables are global, or local to YYPARSE. */
|
||||||
|
|
||||||
#define _YY_DECL_VARIABLES \
|
#define YY_DECL_NON_LSP_VARIABLES \
|
||||||
/* The lookahead symbol. */ \
|
/* The lookahead symbol. */ \
|
||||||
int yychar; \
|
int yychar; \
|
||||||
\
|
\
|
||||||
@@ -257,13 +356,13 @@ int yynerrs;
|
|||||||
|
|
||||||
#if YYLSP_NEEDED
|
#if YYLSP_NEEDED
|
||||||
# define YY_DECL_VARIABLES \
|
# define YY_DECL_VARIABLES \
|
||||||
_YY_DECL_VARIABLES \
|
YY_DECL_NON_LSP_VARIABLES \
|
||||||
\
|
\
|
||||||
/* Location data for the lookahead symbol. */ \
|
/* Location data for the lookahead symbol. */ \
|
||||||
YYLTYPE yylloc;
|
YYLTYPE yylloc;
|
||||||
#else
|
#else
|
||||||
# define YY_DECL_VARIABLES \
|
# define YY_DECL_VARIABLES \
|
||||||
_YY_DECL_VARIABLES
|
YY_DECL_NON_LSP_VARIABLES
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@@ -284,6 +383,7 @@ yyparse (YYPARSE_PARAM_ARG)
|
|||||||
|
|
||||||
register int yystate;
|
register int yystate;
|
||||||
register int yyn;
|
register int yyn;
|
||||||
|
int yyresult;
|
||||||
/* Number of tokens to shift before error messages enabled. */
|
/* Number of tokens to shift before error messages enabled. */
|
||||||
int yyerrstatus;
|
int yyerrstatus;
|
||||||
/* Lookahead token as an internal (translated) token number. */
|
/* Lookahead token as an internal (translated) token number. */
|
||||||
@@ -291,7 +391,7 @@ yyparse (YYPARSE_PARAM_ARG)
|
|||||||
|
|
||||||
/* Three stacks and their tools:
|
/* Three stacks and their tools:
|
||||||
`yyss': related to states,
|
`yyss': related to states,
|
||||||
`yysv': related to semantic values,
|
`yyvs': related to semantic values,
|
||||||
`yyls': related to locations.
|
`yyls': related to locations.
|
||||||
|
|
||||||
Refer to the stacks thru separate pointers, to allow yyoverflow
|
Refer to the stacks thru separate pointers, to allow yyoverflow
|
||||||
@@ -320,16 +420,15 @@ yyparse (YYPARSE_PARAM_ARG)
|
|||||||
# define YYPOPSTACK (yyvsp--, yyssp--)
|
# define YYPOPSTACK (yyvsp--, yyssp--)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int yystacksize = YYINITDEPTH;
|
YYSIZE_T yystacksize = YYINITDEPTH;
|
||||||
int yyfree_stacks = 0;
|
|
||||||
|
|
||||||
|
|
||||||
/* The variables used to return semantic value and location from the
|
/* The variables used to return semantic value and location from the
|
||||||
action routines. */
|
action routines. */
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
# if YYLSP_NEEDED
|
#if YYLSP_NEEDED
|
||||||
YYLTYPE yyloc;
|
YYLTYPE yyloc;
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
/* When reducing, the number of symbols on the RHS of the reduced
|
/* When reducing, the number of symbols on the RHS of the reduced
|
||||||
rule. */
|
rule. */
|
||||||
@@ -368,81 +467,75 @@ yyparse (YYPARSE_PARAM_ARG)
|
|||||||
|
|
||||||
if (yyssp >= yyss + yystacksize - 1)
|
if (yyssp >= yyss + yystacksize - 1)
|
||||||
{
|
{
|
||||||
/* Give user a chance to reallocate the stack. Use copies of
|
|
||||||
these so that the &'s don't force the real ones into memory.
|
|
||||||
*/
|
|
||||||
YYSTYPE *yyvs1 = yyvs;
|
|
||||||
short *yyss1 = yyss;
|
|
||||||
#if YYLSP_NEEDED
|
|
||||||
YYLTYPE *yyls1 = yyls;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Get the current used size of the three stacks, in elements. */
|
/* Get the current used size of the three stacks, in elements. */
|
||||||
int size = yyssp - yyss + 1;
|
YYSIZE_T yysize = yyssp - yyss + 1;
|
||||||
|
|
||||||
#ifdef yyoverflow
|
#ifdef yyoverflow
|
||||||
/* Each stack pointer address is followed by the size of the
|
{
|
||||||
data in use in that stack, in bytes. */
|
/* Give user a chance to reallocate the stack. Use copies of
|
||||||
# if YYLSP_NEEDED
|
these so that the &'s don't force the real ones into
|
||||||
/* This used to be a conditional around just the two extra args,
|
memory. */
|
||||||
but that might be undefined if yyoverflow is a macro. */
|
YYSTYPE *yyvs1 = yyvs;
|
||||||
yyoverflow ("parser stack overflow",
|
short *yyss1 = yyss;
|
||||||
&yyss1, size * sizeof (*yyssp),
|
|
||||||
&yyvs1, size * sizeof (*yyvsp),
|
|
||||||
&yyls1, size * sizeof (*yylsp),
|
|
||||||
&yystacksize);
|
|
||||||
# else
|
|
||||||
yyoverflow ("parser stack overflow",
|
|
||||||
&yyss1, size * sizeof (*yyssp),
|
|
||||||
&yyvs1, size * sizeof (*yyvsp),
|
|
||||||
&yystacksize);
|
|
||||||
# endif
|
|
||||||
|
|
||||||
yyss = yyss1; yyvs = yyvs1;
|
/* Each stack pointer address is followed by the size of the
|
||||||
|
data in use in that stack, in bytes. */
|
||||||
# if YYLSP_NEEDED
|
# if YYLSP_NEEDED
|
||||||
yyls = yyls1;
|
YYLTYPE *yyls1 = yyls;
|
||||||
|
/* This used to be a conditional around just the two extra args,
|
||||||
|
but that might be undefined if yyoverflow is a macro. */
|
||||||
|
yyoverflow ("parser stack overflow",
|
||||||
|
&yyss1, yysize * sizeof (*yyssp),
|
||||||
|
&yyvs1, yysize * sizeof (*yyvsp),
|
||||||
|
&yyls1, yysize * sizeof (*yylsp),
|
||||||
|
&yystacksize);
|
||||||
|
yyls = yyls1;
|
||||||
|
# else
|
||||||
|
yyoverflow ("parser stack overflow",
|
||||||
|
&yyss1, yysize * sizeof (*yyssp),
|
||||||
|
&yyvs1, yysize * sizeof (*yyvsp),
|
||||||
|
&yystacksize);
|
||||||
# endif
|
# endif
|
||||||
|
yyss = yyss1;
|
||||||
|
yyvs = yyvs1;
|
||||||
|
}
|
||||||
#else /* no yyoverflow */
|
#else /* no yyoverflow */
|
||||||
|
# ifndef YYSTACK_RELOCATE
|
||||||
|
goto yyoverflowlab;
|
||||||
|
# else
|
||||||
/* Extend the stack our own way. */
|
/* Extend the stack our own way. */
|
||||||
if (yystacksize >= YYMAXDEPTH)
|
if (yystacksize >= YYMAXDEPTH)
|
||||||
{
|
goto yyoverflowlab;
|
||||||
yyerror ("parser stack overflow");
|
|
||||||
if (yyfree_stacks)
|
|
||||||
{
|
|
||||||
free (yyss);
|
|
||||||
free (yyvs);
|
|
||||||
# if YYLSP_NEEDED
|
|
||||||
free (yyls);
|
|
||||||
# endif
|
|
||||||
}
|
|
||||||
return 2;
|
|
||||||
}
|
|
||||||
yystacksize *= 2;
|
yystacksize *= 2;
|
||||||
if (yystacksize > YYMAXDEPTH)
|
if (yystacksize > YYMAXDEPTH)
|
||||||
yystacksize = YYMAXDEPTH;
|
yystacksize = YYMAXDEPTH;
|
||||||
# if !YYSTACK_USE_ALLOCA
|
|
||||||
yyfree_stacks = 1;
|
{
|
||||||
# endif
|
short *yyss1 = yyss;
|
||||||
yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
|
union yyalloc *yyptr =
|
||||||
__yy_memcpy ((char *)yyss, (char *)yyss1,
|
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
|
||||||
size * (unsigned int) sizeof (*yyssp));
|
if (! yyptr)
|
||||||
yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
|
goto yyoverflowlab;
|
||||||
__yy_memcpy ((char *)yyvs, (char *)yyvs1,
|
YYSTACK_RELOCATE (yyss);
|
||||||
size * (unsigned int) sizeof (*yyvsp));
|
YYSTACK_RELOCATE (yyvs);
|
||||||
# if YYLSP_NEEDED
|
# if YYLSP_NEEDED
|
||||||
yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
|
YYSTACK_RELOCATE (yyls);
|
||||||
__yy_memcpy ((char *)yyls, (char *)yyls1,
|
# endif
|
||||||
size * (unsigned int) sizeof (*yylsp));
|
# undef YYSTACK_RELOCATE
|
||||||
|
if (yyss1 != yyssa)
|
||||||
|
YYSTACK_FREE (yyss1);
|
||||||
|
}
|
||||||
# endif
|
# endif
|
||||||
#endif /* no yyoverflow */
|
#endif /* no yyoverflow */
|
||||||
|
|
||||||
yyssp = yyss + size - 1;
|
yyssp = yyss + yysize - 1;
|
||||||
yyvsp = yyvs + size - 1;
|
yyvsp = yyvs + yysize - 1;
|
||||||
#if YYLSP_NEEDED
|
#if YYLSP_NEEDED
|
||||||
yylsp = yyls + size - 1;
|
yylsp = yyls + yysize - 1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
YYDPRINTF ((stderr, "Stack size increased to %d\n", yystacksize));
|
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
|
||||||
|
(unsigned long int) yystacksize));
|
||||||
|
|
||||||
if (yyssp >= yyss + yystacksize - 1)
|
if (yyssp >= yyss + yystacksize - 1)
|
||||||
YYABORT;
|
YYABORT;
|
||||||
@@ -497,13 +590,14 @@ yybackup:
|
|||||||
which are defined only if `YYDEBUG' is set. */
|
which are defined only if `YYDEBUG' is set. */
|
||||||
if (yydebug)
|
if (yydebug)
|
||||||
{
|
{
|
||||||
fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
|
YYFPRINTF (stderr, "Next token is %d (%s",
|
||||||
|
yychar, yytname[yychar1]);
|
||||||
/* Give the individual parser a way to print the precise
|
/* Give the individual parser a way to print the precise
|
||||||
meaning of a token, for further debugging info. */
|
meaning of a token, for further debugging info. */
|
||||||
# ifdef YYPRINT
|
# ifdef YYPRINT
|
||||||
YYPRINT (stderr, yychar, yylval);
|
YYPRINT (stderr, yychar, yylval);
|
||||||
# endif
|
# endif
|
||||||
fprintf (stderr, ")\n");
|
YYFPRINTF (stderr, ")\n");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -535,7 +629,8 @@ yybackup:
|
|||||||
YYACCEPT;
|
YYACCEPT;
|
||||||
|
|
||||||
/* Shift the lookahead token. */
|
/* Shift the lookahead token. */
|
||||||
YYDPRINTF ((stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]));
|
YYDPRINTF ((stderr, "Shifting token %d (%s), ",
|
||||||
|
yychar, yytname[yychar1]));
|
||||||
|
|
||||||
/* Discard the token being shifted unless it is eof. */
|
/* Discard the token being shifted unless it is eof. */
|
||||||
if (yychar != YYEOF)
|
if (yychar != YYEOF)
|
||||||
@@ -594,15 +689,15 @@ yyreduce:
|
|||||||
are defined only if `YYDEBUG' is set. */
|
are defined only if `YYDEBUG' is set. */
|
||||||
if (yydebug)
|
if (yydebug)
|
||||||
{
|
{
|
||||||
int i;
|
int yyi;
|
||||||
|
|
||||||
fprintf (stderr, "Reducing via rule %d (line %d), ",
|
YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
|
||||||
yyn, yyrline[yyn]);
|
yyn, yyrline[yyn]);
|
||||||
|
|
||||||
/* Print the symbols being reduced, and their result. */
|
/* Print the symbols being reduced, and their result. */
|
||||||
for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
|
for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
|
||||||
fprintf (stderr, "%s ", yytname[yyrhs[i]]);
|
YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
|
||||||
fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
|
YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
%% actions /* The action file replaces this line. */
|
%% actions /* The action file replaces this line. */
|
||||||
@@ -617,11 +712,11 @@ yyreduce:
|
|||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
if (yydebug)
|
if (yydebug)
|
||||||
{
|
{
|
||||||
short *ssp1 = yyss - 1;
|
short *yyssp1 = yyss - 1;
|
||||||
fprintf (stderr, "state stack now");
|
YYFPRINTF (stderr, "state stack now");
|
||||||
while (ssp1 != yyssp)
|
while (yyssp1 != yyssp)
|
||||||
fprintf (stderr, " %d", *++ssp1);
|
YYFPRINTF (stderr, " %d", *++yyssp1);
|
||||||
fprintf (stderr, "\n");
|
YYFPRINTF (stderr, "\n");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -659,46 +754,47 @@ yyerrlab:
|
|||||||
|
|
||||||
if (yyn > YYFLAG && yyn < YYLAST)
|
if (yyn > YYFLAG && yyn < YYLAST)
|
||||||
{
|
{
|
||||||
int size = 0;
|
YYSIZE_T yysize = 0;
|
||||||
char *msg;
|
char *yymsg;
|
||||||
int x, count;
|
int yyx, yycount;
|
||||||
|
|
||||||
count = 0;
|
yycount = 0;
|
||||||
/* Start X at -yyn if nec to avoid negative indexes in yycheck. */
|
/* Start YYX at -YYN if negative to avoid negative indexes in
|
||||||
for (x = (yyn < 0 ? -yyn : 0);
|
YYCHECK. */
|
||||||
x < (int) (sizeof (yytname) / sizeof (char *)); x++)
|
for (yyx = yyn < 0 ? -yyn : 0;
|
||||||
if (yycheck[x + yyn] == x)
|
yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
|
||||||
size += strlen (yytname[x]) + 15, count++;
|
if (yycheck[yyx + yyn] == yyx)
|
||||||
size += strlen ("parse error, unexpected `") + 1;
|
yysize += yystrlen (yytname[yyx]) + 15, yycount++;
|
||||||
size += strlen (yytname[YYTRANSLATE (yychar)]);
|
yysize += yystrlen ("parse error, unexpected ") + 1;
|
||||||
msg = (char *) malloc (size);
|
yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
|
||||||
if (msg != 0)
|
yymsg = (char *) YYSTACK_ALLOC (yysize);
|
||||||
|
if (yymsg != 0)
|
||||||
{
|
{
|
||||||
strcpy (msg, "parse error, unexpected `");
|
char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
|
||||||
strcat (msg, yytname[YYTRANSLATE (yychar)]);
|
yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
|
||||||
strcat (msg, "'");
|
|
||||||
|
|
||||||
if (count < 5)
|
if (yycount < 5)
|
||||||
{
|
{
|
||||||
count = 0;
|
yycount = 0;
|
||||||
for (x = (yyn < 0 ? -yyn : 0);
|
for (yyx = yyn < 0 ? -yyn : 0;
|
||||||
x < (int) (sizeof (yytname) / sizeof (char *)); x++)
|
yyx < (int) (sizeof (yytname) / sizeof (char *));
|
||||||
if (yycheck[x + yyn] == x)
|
yyx++)
|
||||||
|
if (yycheck[yyx + yyn] == yyx)
|
||||||
{
|
{
|
||||||
strcat (msg, count == 0 ? ", expecting `" : " or `");
|
const char *yyq = ! yycount ? ", expecting " : " or ";
|
||||||
strcat (msg, yytname[x]);
|
yyp = yystpcpy (yyp, yyq);
|
||||||
strcat (msg, "'");
|
yyp = yystpcpy (yyp, yytname[yyx]);
|
||||||
count++;
|
yycount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
yyerror (msg);
|
yyerror (yymsg);
|
||||||
free (msg);
|
YYSTACK_FREE (yymsg);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
yyerror ("parse error; also virtual memory exceeded");
|
yyerror ("parse error; also virtual memory exhausted");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif /* YYERROR_VERBOSE */
|
#endif /* defined (YYERROR_VERBOSE) */
|
||||||
yyerror ("parse error");
|
yyerror ("parse error");
|
||||||
}
|
}
|
||||||
goto yyerrlab1;
|
goto yyerrlab1;
|
||||||
@@ -761,11 +857,11 @@ yyerrpop:
|
|||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
if (yydebug)
|
if (yydebug)
|
||||||
{
|
{
|
||||||
short *ssp1 = yyss - 1;
|
short *yyssp1 = yyss - 1;
|
||||||
fprintf (stderr, "Error: state stack now");
|
YYFPRINTF (stderr, "Error: state stack now");
|
||||||
while (ssp1 != yyssp)
|
while (yyssp1 != yyssp)
|
||||||
fprintf (stderr, " %d", *++ssp1);
|
YYFPRINTF (stderr, " %d", *++yyssp1);
|
||||||
fprintf (stderr, "\n");
|
YYFPRINTF (stderr, "\n");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -810,28 +906,28 @@ yyerrhandle:
|
|||||||
| yyacceptlab -- YYACCEPT comes here. |
|
| yyacceptlab -- YYACCEPT comes here. |
|
||||||
`-------------------------------------*/
|
`-------------------------------------*/
|
||||||
yyacceptlab:
|
yyacceptlab:
|
||||||
if (yyfree_stacks)
|
yyresult = 0;
|
||||||
{
|
goto yyreturn;
|
||||||
free (yyss);
|
|
||||||
free (yyvs);
|
|
||||||
#if YYLSP_NEEDED
|
|
||||||
free (yyls);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
|
|
||||||
/*-----------------------------------.
|
/*-----------------------------------.
|
||||||
| yyabortlab -- YYABORT comes here. |
|
| yyabortlab -- YYABORT comes here. |
|
||||||
`-----------------------------------*/
|
`-----------------------------------*/
|
||||||
yyabortlab:
|
yyabortlab:
|
||||||
if (yyfree_stacks)
|
yyresult = 1;
|
||||||
{
|
goto yyreturn;
|
||||||
free (yyss);
|
|
||||||
free (yyvs);
|
/*---------------------------------------------.
|
||||||
#if YYLSP_NEEDED
|
| yyoverflowab -- parser overflow comes here. |
|
||||||
free (yyls);
|
`---------------------------------------------*/
|
||||||
|
yyoverflowlab:
|
||||||
|
yyerror ("parser stack overflow");
|
||||||
|
yyresult = 2;
|
||||||
|
/* Fall through. */
|
||||||
|
|
||||||
|
yyreturn:
|
||||||
|
#ifndef yyoverflow
|
||||||
|
if (yyss != yyssa)
|
||||||
|
YYSTACK_FREE (yyss);
|
||||||
#endif
|
#endif
|
||||||
}
|
return yyresult;
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user