mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-10-31 04:45:39 +01:00
Compare commits
625
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b4d1edeb37 | ||
|
|
2c6b0cc316 | ||
|
|
554d21c3e0 | ||
|
|
8901c48a4d | ||
|
|
caa7400559 | ||
|
|
c493659b2d | ||
|
|
4ed317e913 | ||
|
|
dc60a0300f | ||
|
|
a33afd529b | ||
|
|
ab7ddf3ea1 | ||
|
|
a207bf1a3e | ||
|
|
9453485f18 | ||
|
|
d56e55b0a3 | ||
|
|
2b0ec9b9d6 | ||
|
|
c1624f2b9e | ||
|
|
7d6fd5fd52 | ||
|
|
d0d5e7d22a | ||
|
|
89a9e458b5 | ||
|
|
33e0743f83 | ||
|
|
64a5bc137e | ||
|
|
70d944aeaf | ||
|
|
0355434c54 | ||
|
|
a71fff9bd4 | ||
|
|
3abd04a811 | ||
|
|
a8317951b6 | ||
|
|
0d4e5d3e89 | ||
|
|
5f17ae29ef | ||
|
|
899d2eb04d | ||
|
|
9b14e33fe8 | ||
|
|
9f26cfc78f | ||
|
|
0cc62926e6 | ||
|
|
a4495be12a | ||
|
|
339c1b76f3 | ||
|
|
ef79ec9edc | ||
|
|
51f1089944 | ||
|
|
ed913c6bac | ||
|
|
183fc61e1f | ||
|
|
8012d713b3 | ||
|
|
845e7b3380 | ||
|
|
0c7ed9d303 | ||
|
|
727ecf9274 | ||
|
|
723e92a122 | ||
|
|
8c0e398c57 | ||
|
|
ffade1d85c | ||
|
|
2bb9374f95 | ||
|
|
b0074db43b | ||
|
|
8b5942e506 | ||
|
|
4edcef1a83 | ||
|
|
1be667adbf | ||
|
|
491d21de22 | ||
|
|
a8f51528cf | ||
|
|
4a2a2458ce | ||
|
|
64bb496d86 | ||
|
|
aa869d5994 | ||
|
|
c85df2d6f1 | ||
|
|
43a31b3f93 | ||
|
|
c7c24157e6 | ||
|
|
16ddfa94dc | ||
|
|
f4a7a61647 | ||
|
|
a8ba287c1e | ||
|
|
b345f4dc6c | ||
|
|
3c49690e54 | ||
|
|
4c4f617b28 | ||
|
|
828f718493 | ||
|
|
7e4e2bc765 | ||
|
|
d0387243cb | ||
|
|
a89dbbb5e1 | ||
|
|
e7aeaf9efd | ||
|
|
f9bc698fbb | ||
|
|
a13c746ba1 | ||
|
|
59b1184605 | ||
|
|
ff67a799bc | ||
|
|
d700cc71e4 | ||
|
|
9780f3d087 | ||
|
|
d94cf5ea1c | ||
|
|
a3d0cf9d82 | ||
|
|
c58063bedd | ||
|
|
0c989496e7 | ||
|
|
256038b0e9 | ||
|
|
361ad96242 | ||
|
|
429d90651e | ||
|
|
3071e57b66 | ||
|
|
88ecdcef96 | ||
|
|
b4cf26f5ec | ||
|
|
c2f5746a1b | ||
|
|
dc05c54442 | ||
|
|
3061d39f8d | ||
|
|
5ff4f63010 | ||
|
|
26c44bcfb3 | ||
|
|
b0148174a9 | ||
|
|
0bb81d61d8 | ||
|
|
1c009f8da4 | ||
|
|
f022392807 | ||
|
|
f1bab70799 | ||
|
|
fe6cc274f8 | ||
|
|
8f96ac9545 | ||
|
|
a107f9a3b5 | ||
|
|
ea0b8a3ca4 | ||
|
|
077ec12f46 | ||
|
|
b39b2d93c5 | ||
|
|
c1d0a8eaae | ||
|
|
3e2a1cc3c5 | ||
|
|
e061903d63 | ||
|
|
3b8f2432c7 | ||
|
|
9823ce1537 | ||
|
|
7443fad268 | ||
|
|
90bf667f4b | ||
|
|
7d468f12af | ||
|
|
250b1654d0 | ||
|
|
df36a23ef7 | ||
|
|
cffe77ef75 | ||
|
|
26d705914e | ||
|
|
3e0e12ba19 | ||
|
|
2952519006 | ||
|
|
2ea325e74b | ||
|
|
4bfb85ec97 | ||
|
|
3b3d8a18a7 | ||
|
|
affa812063 | ||
|
|
39f6944ff0 | ||
|
|
1f3e316c87 | ||
|
|
47d0b5693d | ||
|
|
f14d923307 | ||
|
|
e86ad5d7b5 | ||
|
|
9beac9666c | ||
|
|
6d5cd465ac | ||
|
|
e0492f4516 | ||
|
|
a4618f2b47 | ||
|
|
7b0750c4a2 | ||
|
|
85176c8b7d | ||
|
|
8b8a7c55f3 | ||
|
|
de932a0ebe | ||
|
|
45f5c94561 | ||
|
|
17a80b1c12 | ||
|
|
0aa3a7aab2 | ||
|
|
6e77834d9e | ||
|
|
659007677a | ||
|
|
146dbacf18 | ||
|
|
fb9e9cb8ac | ||
|
|
1d79eedc18 | ||
|
|
3dc1ed1546 | ||
|
|
c71e94e2bd | ||
|
|
5d6faa5f47 | ||
|
|
a5cbca63c6 | ||
|
|
194bd29fc0 | ||
|
|
728f66d135 | ||
|
|
5d3d161d8b | ||
|
|
e177782f30 | ||
|
|
4f47bb929a | ||
|
|
571b69d5f6 | ||
|
|
e0ed6449a5 | ||
|
|
7909dfb224 | ||
|
|
bbcb3c410d | ||
|
|
754e66d99c | ||
|
|
c2e583bb31 | ||
|
|
09f34ab63f | ||
|
|
e4804beb66 | ||
|
|
f1c96267e4 | ||
|
|
c1626a6084 | ||
|
|
f0182cf3fc | ||
|
|
cbb2d8ac88 | ||
|
|
94ef636115 | ||
|
|
04a1d8287f | ||
|
|
0106e46817 | ||
|
|
83e43f150a | ||
|
|
c7e8378409 | ||
|
|
2be89bac8f | ||
|
|
8ab18b6932 | ||
|
|
96654206c2 | ||
|
|
2b1b022a24 | ||
|
|
9a3701e24b | ||
|
|
19de0cc262 | ||
|
|
913b03a888 | ||
|
|
521edd4c95 | ||
|
|
888de06d34 | ||
|
|
72f7147985 | ||
|
|
eba63bed46 | ||
|
|
d7f3a396a2 | ||
|
|
c82b30ba77 | ||
|
|
e3aec02388 | ||
|
|
835cb69838 | ||
|
|
a272cf57e2 | ||
|
|
a7153f14a9 | ||
|
|
22ad89ecf5 | ||
|
|
4bdf6172b3 | ||
|
|
656d5060c9 | ||
|
|
54c968b968 | ||
|
|
7ba5dd0596 | ||
|
|
1321142b69 | ||
|
|
687a6e874b | ||
|
|
42b3cc50c7 | ||
|
|
ac964b96ee | ||
|
|
f3295d07e9 | ||
|
|
9e2e03de9a | ||
|
|
4bb1180de5 | ||
|
|
cc490cfc6c | ||
|
|
87251c43a2 | ||
|
|
6cdcb905e5 | ||
|
|
5eb69753a4 | ||
|
|
54289f4062 | ||
|
|
6578141402 | ||
|
|
403be0eec3 | ||
|
|
8071fb08a4 | ||
|
|
a57cb9cea9 | ||
|
|
0d42e1a936 | ||
|
|
36ce318e2d | ||
|
|
c7e74a1a3a | ||
|
|
afd97db7c3 | ||
|
|
573acb94dc | ||
|
|
355af1eb67 | ||
|
|
0e8d155b5b | ||
|
|
f6c15cf743 | ||
|
|
4c4c0c7302 | ||
|
|
7bc65648a4 | ||
|
|
8e7eb84ef1 | ||
|
|
662faa8b5d | ||
|
|
409a4bb24d | ||
|
|
2fea4d4a1f | ||
|
|
ded69f1e56 | ||
|
|
61e2327d40 | ||
|
|
0b94586b4f | ||
|
|
ed4ecf6661 | ||
|
|
506e021254 | ||
|
|
3ef07912e3 | ||
|
|
b1d731442d | ||
|
|
6462ba99d3 | ||
|
|
e8109a0158 | ||
|
|
e3077c34b9 | ||
|
|
aaa4afb99e | ||
|
|
3138d6e892 | ||
|
|
2f61745857 | ||
|
|
5cbff9c694 | ||
|
|
42f4c2d3be | ||
|
|
a22312ac9e | ||
|
|
f9480af180 | ||
|
|
dff331a1c3 | ||
|
|
7647331e82 | ||
|
|
3f8f0ce26f | ||
|
|
88e9c46a1c | ||
|
|
0da05bff2f | ||
|
|
1499655add | ||
|
|
41370a415b | ||
|
|
cf370c5ac7 | ||
|
|
2d7f919577 | ||
|
|
0d82a4031c | ||
|
|
96fbc99809 | ||
|
|
9d493d8a7d | ||
|
|
cad3849f08 | ||
|
|
33cd98eb43 | ||
|
|
f22c1fb892 | ||
|
|
7eec457494 | ||
|
|
1c7bc4ad8a | ||
|
|
65057171f7 | ||
|
|
0cdc0996df | ||
|
|
9d0f3ec93f | ||
|
|
9c3d86e34a | ||
|
|
461b909be8 | ||
|
|
f38139c1d6 | ||
|
|
fd1448ae73 | ||
|
|
df95784479 | ||
|
|
51edb118ef | ||
|
|
e89906a722 | ||
|
|
5f1061cab9 | ||
|
|
52a5857e4c | ||
|
|
0750c208f0 | ||
|
|
2356f3b797 | ||
|
|
a0fb7a7271 | ||
|
|
d68a3a6fc4 | ||
|
|
520de72f93 | ||
|
|
c7b55856c9 | ||
|
|
70cb9131f2 | ||
|
|
b59ca09840 | ||
|
|
5437d2cfea | ||
|
|
9b66818e85 | ||
|
|
d3f2567889 | ||
|
|
8d7cb68e80 | ||
|
|
3b076482e7 | ||
|
|
c39d4580a6 | ||
|
|
c6607146b6 | ||
|
|
01189e8725 | ||
|
|
9e614ed4c6 | ||
|
|
1afb74c5f8 | ||
|
|
a0775bc857 | ||
|
|
ec3258a1ca | ||
|
|
0ea7d62a93 | ||
|
|
8ebc865a8d | ||
|
|
98846daf14 | ||
|
|
b408f6968a | ||
|
|
9e737ff934 | ||
|
|
e064d546f4 | ||
|
|
c2f433cd3a | ||
|
|
8575a1601b | ||
|
|
4e8ddb7399 | ||
|
|
0edd301102 | ||
|
|
60317d8659 | ||
|
|
00b3291bf0 | ||
|
|
3530151be0 | ||
|
|
cc28c9554c | ||
|
|
5711c10454 | ||
|
|
f463f13829 | ||
|
|
ca17de000c | ||
|
|
abe037be31 | ||
|
|
50339088d8 | ||
|
|
27b07de73e | ||
|
|
21e942bcd5 | ||
|
|
c70bc8e01e | ||
|
|
aaebae5755 | ||
|
|
ca2ad66011 | ||
|
|
9068cd261e | ||
|
|
fb6b9ea290 | ||
|
|
03755a61d4 | ||
|
|
737e58fc93 | ||
|
|
9f75803217 | ||
|
|
8c224bc0ae | ||
|
|
93a38ac115 | ||
|
|
bd02972385 | ||
|
|
aafd282330 | ||
|
|
f619674d43 | ||
|
|
de1daba970 | ||
|
|
7b43ed5810 | ||
|
|
2da8e505c5 | ||
|
|
4097e75c28 | ||
|
|
f1423a2cdb | ||
|
|
31d0fdb4df | ||
|
|
a18517d760 | ||
|
|
94af75cb07 | ||
|
|
66d4e0a337 | ||
|
|
af659d8008 | ||
|
|
f1a5d383af | ||
|
|
0a5c2578e3 | ||
|
|
5d7c78a953 | ||
|
|
c531e0ec91 | ||
|
|
8e09125a6b | ||
|
|
5632908700 | ||
|
|
f13a7acbbc | ||
|
|
990cdf449a | ||
|
|
0c8d3a4a50 | ||
|
|
1e21db505a | ||
|
|
1687007f70 | ||
|
|
06237e878c | ||
|
|
1fd7f1d136 | ||
|
|
176f4475bf | ||
|
|
2c81fda5fc | ||
|
|
d6eeb193d2 | ||
|
|
38e43e8224 | ||
|
|
c8813e99af | ||
|
|
3a3ab590b9 | ||
|
|
0ac945f4d4 | ||
|
|
157ef6c6ac | ||
|
|
b938cb2734 | ||
|
|
b4d446bdf7 | ||
|
|
93fb552688 | ||
|
|
15b630624f | ||
|
|
138dc03e88 | ||
|
|
6ac1fbac73 | ||
|
|
d5cdbc603a | ||
|
|
d2b5a160da | ||
|
|
ff21a0abdd | ||
|
|
cb3b868759 | ||
|
|
34542e2cad | ||
|
|
b6bd4809a9 | ||
|
|
a83b965871 | ||
|
|
5a4f372d83 | ||
|
|
db9ac4c0e5 | ||
|
|
ae882926bc | ||
|
|
b462c35d05 | ||
|
|
9916d1cad0 | ||
|
|
34913a2f9e | ||
|
|
7b21bdca09 | ||
|
|
3a2c1f8f80 | ||
|
|
547748f888 | ||
|
|
3172476f60 | ||
|
|
779e5fd0e3 | ||
|
|
5c3fd7a7be | ||
|
|
1cedc73d07 | ||
|
|
36b9fb13e0 | ||
|
|
7b5e95d38f | ||
|
|
aeff04a0c3 | ||
|
|
1a8fc6f37d | ||
|
|
c4ff53f00c | ||
|
|
97af99a77d | ||
|
|
41d10ed403 | ||
|
|
106df325e4 | ||
|
|
9376e10fc8 | ||
|
|
47417e0d0d | ||
|
|
d6d3f57533 | ||
|
|
327a3fe898 | ||
|
|
4b9ac423e1 | ||
|
|
168e6cf250 | ||
|
|
3864675bb6 | ||
|
|
5ee6169822 | ||
|
|
f4cd64b747 | ||
|
|
62a1bba530 | ||
|
|
47291b8e51 | ||
|
|
8abc33d629 | ||
|
|
f64656796e | ||
|
|
2c30dcc7a3 | ||
|
|
2de8b25553 | ||
|
|
cc7991f3b9 | ||
|
|
329a468170 | ||
|
|
4c0156f329 | ||
|
|
38e54c3280 | ||
|
|
c6fc099890 | ||
|
|
64423d4df4 | ||
|
|
1a0b9f036c | ||
|
|
d802620fc7 | ||
|
|
dbf7533565 | ||
|
|
4ee774fa97 | ||
|
|
a46d8e95ed | ||
|
|
fbe94735b1 | ||
|
|
5e4566764c | ||
|
|
5bf3bdfc6c | ||
|
|
8af6d7e44a | ||
|
|
797f8853fc | ||
|
|
3c61354ae7 | ||
|
|
acf969c3c3 | ||
|
|
fe9db3df25 | ||
|
|
d7e518639d | ||
|
|
0758efe648 | ||
|
|
d4786f0759 | ||
|
|
e5de6fb7cc | ||
|
|
0d52c0f0fe | ||
|
|
5fd23e0f78 | ||
|
|
8ff52963ab | ||
|
|
e30e2d3002 | ||
|
|
c76f0ad503 | ||
|
|
351460af0d | ||
|
|
03e038961f | ||
|
|
68fbafd3ee | ||
|
|
39ba95cdcc | ||
|
|
95c571565a | ||
|
|
f2f0434d26 | ||
|
|
d7ff7cbec8 | ||
|
|
880e6abcd4 | ||
|
|
914e80c50a | ||
|
|
488c39e299 | ||
|
|
2d29c2dcb6 | ||
|
|
02779ee6ed | ||
|
|
1d428169a3 | ||
|
|
6d026599f9 | ||
|
|
10ba321fb6 | ||
|
|
805d741283 | ||
|
|
b07b699e93 | ||
|
|
3c1cbb1da2 | ||
|
|
87c461b8b5 | ||
|
|
5f870591f0 | ||
|
|
d55c9bafac | ||
|
|
3e07b69c64 | ||
|
|
37b41c8c60 | ||
|
|
dff5946e45 | ||
|
|
38e918efed | ||
|
|
015f28e9c9 | ||
|
|
0976226495 | ||
|
|
8e0a13e928 | ||
|
|
3216aee801 | ||
|
|
17217cf91d | ||
|
|
21508891aa | ||
|
|
76107bb919 | ||
|
|
5f81dc15ed | ||
|
|
f778d3d6d0 | ||
|
|
0f8cfacf5b | ||
|
|
f6ad73e2f9 | ||
|
|
7ad388e751 | ||
|
|
0cbe72ab43 | ||
|
|
3f480820b9 | ||
|
|
fa41ce7a8a | ||
|
|
cd25efcb6b | ||
|
|
232560b328 | ||
|
|
8e6a7ff90a | ||
|
|
68778bc824 | ||
|
|
904f26988a | ||
|
|
0c897e19f5 | ||
|
|
6ce074034f | ||
|
|
126243fab5 | ||
|
|
01bb9b7154 | ||
|
|
7e7054be8b | ||
|
|
892b8bbdea | ||
|
|
e1f5235e63 | ||
|
|
854b81b780 | ||
|
|
2dbcdb4c5b | ||
|
|
04efa6a58b | ||
|
|
720d474924 | ||
|
|
b1fca83771 | ||
|
|
40f769fcc5 | ||
|
|
e72be83707 | ||
|
|
606674c000 | ||
|
|
1e02455ee5 | ||
|
|
b1ca5dd522 | ||
|
|
c295c22676 | ||
|
|
bb8b6440de | ||
|
|
6392d0d7f4 | ||
|
|
ba649e8ef8 | ||
|
|
facc25fec9 | ||
|
|
74fb59cba9 | ||
|
|
2d460fd777 | ||
|
|
c2d525e306 | ||
|
|
afe0c56862 | ||
|
|
0d63fe1512 | ||
|
|
5f7e7d9bd0 | ||
|
|
cc3b45d012 | ||
|
|
544128b309 | ||
|
|
fb71c1c9a8 | ||
|
|
339bf06464 | ||
|
|
1ac95846a0 | ||
|
|
a814cf8ee8 | ||
|
|
6e0fa6c550 | ||
|
|
a6816107b8 | ||
|
|
88b672eb13 | ||
|
|
b9e8b732d7 | ||
|
|
b79c4bd10d | ||
|
|
141c29c28c | ||
|
|
147891cb4c | ||
|
|
3b663707fa | ||
|
|
200ff3e970 | ||
|
|
1a7d5385e1 | ||
|
|
d320c87a91 | ||
|
|
dc966eecbd | ||
|
|
0b7c8d574e | ||
|
|
efd26ccf70 | ||
|
|
45974c9303 | ||
|
|
065c040f9c | ||
|
|
7d8fcd248a | ||
|
|
e2232742b1 | ||
|
|
3e76a5f7a8 | ||
|
|
83ff50187c | ||
|
|
e981b825a1 | ||
|
|
fc09c55809 | ||
|
|
4e85d9576b | ||
|
|
cb5e2dfb61 | ||
|
|
ac2ec0c5ce | ||
|
|
139f25b71b | ||
|
|
32fbe64dba | ||
|
|
651849d8f1 | ||
|
|
0969b037eb | ||
|
|
42725c6413 | ||
|
|
6262c4ad76 | ||
|
|
f215018ac6 | ||
|
|
cfe5a05cf0 | ||
|
|
da52639581 | ||
|
|
da0ebf73b9 | ||
|
|
3ffe5780cc | ||
|
|
cd4e9023f0 | ||
|
|
db2caf3723 | ||
|
|
f7fd4bf5e7 | ||
|
|
b3eafb034a | ||
|
|
2b6ee14154 | ||
|
|
6e8dfbdf40 | ||
|
|
a54d9ea19e | ||
|
|
2133b353b8 | ||
|
|
14c83291f5 | ||
|
|
921d558ebb | ||
|
|
aa51f307f0 | ||
|
|
7c4c617187 | ||
|
|
55856a8eca | ||
|
|
b86387af72 | ||
|
|
ed46ec1a77 | ||
|
|
1febd401bd | ||
|
|
1aabcc1078 | ||
|
|
d156d983f7 | ||
|
|
5c127cfca4 | ||
|
|
9b5873152b | ||
|
|
e5843103ed | ||
|
|
65dd9d585c | ||
|
|
e441bad0f8 | ||
|
|
df83ab9e9c | ||
|
|
fe7f9ec6c1 | ||
|
|
a812a566d0 | ||
|
|
4f1fbf8406 | ||
|
|
527df14675 | ||
|
|
d01f822824 | ||
|
|
53ceccf1e4 | ||
|
|
2c9e702f24 | ||
|
|
88349821a9 | ||
|
|
996a586a16 | ||
|
|
4911007aae | ||
|
|
4e67f750fb | ||
|
|
dc89afbb5d | ||
|
|
46c1d2d37d | ||
|
|
e5d94f1bd5 | ||
|
|
e6959636b0 | ||
|
|
449fe084ed | ||
|
|
576727111c | ||
|
|
15b8715b6e | ||
|
|
b8e6af27bc | ||
|
|
e7f0c16771 | ||
|
|
a4b31aaa27 | ||
|
|
2a27fdd139 | ||
|
|
bc96fab59f | ||
|
|
620958e570 | ||
|
|
709bac7a11 | ||
|
|
cd10f53a17 | ||
|
|
d56f467695 | ||
|
|
ca5f3f4d59 | ||
|
|
b045cfea0f | ||
|
|
2404c31a4a | ||
|
|
1d990fe5c0 | ||
|
|
cd63fd9e45 | ||
|
|
89192264b6 | ||
|
|
d8e3b1b523 | ||
|
|
58f8b2da83 | ||
|
|
93d9ac0524 | ||
|
|
65e33fca0a | ||
|
|
4c3fad6dc9 | ||
|
|
53b4aac735 | ||
|
|
a572015bbb | ||
|
|
5d16427208 | ||
|
|
6c1d9a4851 | ||
|
|
3a75c7aa9e | ||
|
|
de1ce24fb6 | ||
|
|
6d5b253f5b | ||
|
|
5c5ed0e700 | ||
|
|
f9b1fcf0ec | ||
|
|
6b9fb9e2bf | ||
|
|
21d63da889 | ||
|
|
897f2b2b40 | ||
|
|
376103050c | ||
|
|
7ace07dc22 | ||
|
|
23ac204b0c | ||
|
|
a60405c1c4 | ||
|
|
6b76e0be9f | ||
|
|
cc12ebd9f3 | ||
|
|
8e73cff99d | ||
|
|
b5d7f294ec | ||
|
|
9528a07056 | ||
|
|
5d5b20f7b5 | ||
|
|
4d45bb1716 |
No files matched your search
+3
-1
@@ -183,6 +183,8 @@ TMPPATH= ${STRICTTMPPATH}:${PATH}
|
||||
COMPILER_ENV= BISON_SIMPLE=${TOOLROOT}/usr/share/misc/bison.simple \
|
||||
COMPILER_PATH=${TOOLROOT}/usr/libexec:${TOOLROOT}/usr/bin \
|
||||
GCC_EXEC_PREFIX=${WORLDTMP}${SHLIBDIR}:${WORLDTMP}/usr/lib/ \
|
||||
GROFF_FONT_PATH=${WORLDTMP}/usr/share/groff_font \
|
||||
GROFF_TMAC_PATH=${WORLDTMP}/usr/share/tmac \
|
||||
LD_LIBRARY_PATH=${TOOLROOT}${SHLIBDIR} \
|
||||
LIBRARY_PATH=${WORLDTMP}${SHLIBDIR}:${WORLDTMP}/usr/lib
|
||||
|
||||
@@ -396,7 +398,7 @@ update:
|
||||
@echo "--------------------------------------------------------------"
|
||||
@echo ">>> Updating /usr/src from cvs repository" ${CVSROOT}
|
||||
@echo "--------------------------------------------------------------"
|
||||
cd ${.CURDIR}; cvs -q update -P -d
|
||||
cd ${.CURDIR}; cvs -q update -rRELENG_3 -P -d
|
||||
.endif
|
||||
|
||||
#
|
||||
|
||||
@@ -1,137 +1,3 @@
|
||||
Updating Information for FreeBSD current users
|
||||
|
||||
This file is maintained by [email protected]. Please send new entries
|
||||
directly to him. See end of file for further details.
|
||||
|
||||
19990510:
|
||||
Previously, one would define "NOAOUT" to keep from building
|
||||
the legacy a.out bits. Now one would define "WANT_AOUT" to
|
||||
build them.
|
||||
|
||||
19990507:
|
||||
New devstat API requires recompilation of libdevstat, systat,
|
||||
iostat, vmstat and rpc.rstatd. A new kernel is also required.
|
||||
make world + building a kernel should do all of this. Any
|
||||
ports that use devstat need to be recompiled as well.
|
||||
|
||||
19990424:
|
||||
The 'nlpt' driver has changed names to become the 'lpt' driver.
|
||||
See ppbus(4) or http://www.freebsd.org/~nsouch/ppbus.html
|
||||
for proper configuration details.
|
||||
|
||||
19990209:
|
||||
New devstat API requires recompilation of libdevstat, systat,
|
||||
iostat, vmstat and rpc.rstatd. A new kernel is also required.
|
||||
make world + building a kernel should do all of this. Any
|
||||
ports that use devstat need to be recompiled as well.
|
||||
|
||||
19990125:
|
||||
Linux threads options has gone away (they are now standard in
|
||||
the FreeBSD kernel). A recompile of all libkvm using programs
|
||||
is in order (or better yet a make world).
|
||||
|
||||
19990122:
|
||||
On or about this date there was a small window when the boot
|
||||
blocks had some minor problems which seemed to force one to
|
||||
edit /etc/fstab. This has been corrected, if you are seeing this
|
||||
problem, please rebuild and reinstall your boot blocks.
|
||||
|
||||
19990121:
|
||||
Vinum has changed. The "vinum read" command has changed. For
|
||||
updates, please see
|
||||
|
||||
http://www.freebsd.org/cgi/getmsg.cgi?fetch=800363+0+current/freebsd-current
|
||||
|
||||
for details.
|
||||
|
||||
19990120:
|
||||
Stable branch created. You might want to consider using this
|
||||
branch. It is tagged with RELENG_3.
|
||||
|
||||
19990119:
|
||||
More work on the syscons driver has been committed. Since
|
||||
files moved around, you will need to reconfigure your kernel,
|
||||
and make clean; make depend before rebuilding the kernel. No
|
||||
config file changes are needed.
|
||||
|
||||
19990111:
|
||||
New keyboard and video card drivers are introduced as the first
|
||||
stage of console driver reorganization. You are required to
|
||||
update the kernel configuration file and rebuild the kernel.
|
||||
kbdcontrol, vidcontrol, and screen savers also need recompilation.
|
||||
The instruction can be found in
|
||||
|
||||
http://www.freebsd.org/~yokota/sc_update.txt
|
||||
|
||||
It has notes on splash screen too.
|
||||
|
||||
19990106:
|
||||
Robert Nordier was kind enough to make this page to enable people to
|
||||
install the new bootblocks:
|
||||
|
||||
http://www.freebsd.org/~rnordier/boot.txt
|
||||
|
||||
When updating to ELF, make sure that you have updated your
|
||||
/etc/rc files which have different ldconfig invocations for
|
||||
elf and aout. Otherwise things like X will stop working with
|
||||
messages about being unable to find library files. The
|
||||
mergemaster utility in ports/sysutils/mergemaster helps to
|
||||
keep critical files like this in sync, and its use is
|
||||
recommended.
|
||||
|
||||
19990104:
|
||||
Information about ELF day (see 19981230) can be found in
|
||||
|
||||
http://www.freebsd.org/~peter/elfday.html
|
||||
|
||||
about the upcoming change, its motivations and instructions
|
||||
for doing the upgrade.
|
||||
|
||||
19981230:
|
||||
You should install new bootblocks now. The ELF kernel will
|
||||
become default soon. In addition, you'll need to upgrade
|
||||
your userland programs to ELF before then as well. Use
|
||||
make aout-to-elf to upgrade your userland programs (old
|
||||
a.out programs in, for example, /usr/local/bin will
|
||||
continue to work, even after the upgrade). See src/Makefile
|
||||
for more details.
|
||||
|
||||
19981224:
|
||||
The old wcd driver has been deleted from the kernel. The
|
||||
driver that replaces it is named acd. You'll need to change
|
||||
this in your configuration files.
|
||||
|
||||
Failure to do this will result in "ATAPI CD-ROMs not
|
||||
configured" at boot time.
|
||||
|
||||
The floppy tape driver (ft) has been removed from the kernel,
|
||||
with no replacement driver.
|
||||
|
||||
19981202:
|
||||
New groups from 19981201 commented out of mtree, so they
|
||||
aren't strictly needed, but still a good idea to have.
|
||||
|
||||
19981201:
|
||||
New user/group added: bind. From src/etc/master.passwd and
|
||||
src/etc/group:
|
||||
% grep <newstuff> /usr/src/etc/group
|
||||
bind:*:53:
|
||||
% grep <newstuff> /usr/src/etc/master.passwd
|
||||
tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin
|
||||
kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin
|
||||
bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin
|
||||
|
||||
19981118:
|
||||
PAM integrated into the tree. Requires new /etc/pam.conf file
|
||||
to silence warnings from authentication programs (login, etc).
|
||||
See src/etc/pam.conf for a sample.
|
||||
|
||||
This file contains a list, in reverse chronologocal order, of major
|
||||
breakages in tracking -stable. Not all things will be listed here,
|
||||
and it only starts on Novemeber 18, 1998. If you have an earlier
|
||||
version of FreeBSD, you are on your own to get to November 18, 1998.
|
||||
|
||||
Please filter your entries through Warner ([email protected]) so that
|
||||
the style, formatting, etc of this file can be maintained.
|
||||
Updating Information for FreeBSD Stable users
|
||||
|
||||
$FreeBSD$
|
||||
+12
-3
@@ -47,6 +47,7 @@
|
||||
.Fl f
|
||||
.Fl R
|
||||
.Op Fl H | Fl L | Fl P
|
||||
.Fl v
|
||||
.Oc
|
||||
.Ar mode
|
||||
.Ar file ...
|
||||
@@ -64,7 +65,8 @@ The options are as follows:
|
||||
If the
|
||||
.Fl R
|
||||
option is specified, symbolic links on the command line are followed.
|
||||
(Symbolic links encountered in the tree traversal are not followed.)
|
||||
(Symbolic links encountered in the tree traversal are not followed by
|
||||
default.)
|
||||
.It Fl L
|
||||
If the
|
||||
.Fl R
|
||||
@@ -81,6 +83,10 @@ Do not display a diagnostic message if
|
||||
.Nm
|
||||
could not modify the mode for
|
||||
.Va file .
|
||||
.It Fl v
|
||||
Cause
|
||||
.Nm
|
||||
to be verbose, showing files as the mode is modified.
|
||||
.El
|
||||
.Pp
|
||||
Symbolic links do not have modes, so unless the
|
||||
@@ -166,9 +172,8 @@ others, and no set-uid or set-gid behaviour is 755
|
||||
The symbolic mode is described by the following grammar:
|
||||
.Bd -literal -offset indent
|
||||
mode ::= clause [, clause ...]
|
||||
clause ::= [who ...] [action ...] last_action
|
||||
clause ::= [who ...] [action ...] action
|
||||
action ::= op [perm ...]
|
||||
last_action ::= op [perm ...]
|
||||
who ::= a | u | g | o
|
||||
op ::= + | \- | =
|
||||
perm ::= r | s | t | w | x | X | u | g | o
|
||||
@@ -307,6 +312,10 @@ set the group bits equal to the user bits, but clear the group write bit.
|
||||
There's no
|
||||
.Ar perm
|
||||
option for the naughty bits.
|
||||
.Sh COMPATIBILITY
|
||||
The
|
||||
.Fl v
|
||||
option is non-standard and its use in scripts is not recommended.
|
||||
.Sh SEE ALSO
|
||||
.Xr chflags 1 ,
|
||||
.Xr install 1 ,
|
||||
|
||||
+10
-3
@@ -70,12 +70,13 @@ main(argc, argv)
|
||||
long val;
|
||||
int oct, omode;
|
||||
int Hflag, Lflag, Pflag, Rflag, ch, fflag, fts_options, hflag, rval;
|
||||
int vflag;
|
||||
char *ep, *mode;
|
||||
|
||||
set = NULL;
|
||||
omode = 0;
|
||||
Hflag = Lflag = Pflag = Rflag = fflag = hflag = 0;
|
||||
while ((ch = getopt(argc, argv, "HLPRXfgorstuwx")) != -1)
|
||||
Hflag = Lflag = Pflag = Rflag = fflag = hflag = vflag = 0;
|
||||
while ((ch = getopt(argc, argv, "HLPRXfgorstuvwx")) != -1)
|
||||
switch (ch) {
|
||||
case 'H':
|
||||
Hflag = 1;
|
||||
@@ -118,6 +119,9 @@ main(argc, argv)
|
||||
argv[optind - 1][2] == '\0')
|
||||
--optind;
|
||||
goto done;
|
||||
case 'v':
|
||||
vflag = 1;
|
||||
break;
|
||||
case '?':
|
||||
default:
|
||||
usage();
|
||||
@@ -191,6 +195,9 @@ done: argv += optind;
|
||||
getmode(set, p->fts_statp->st_mode)) && !fflag) {
|
||||
warn(p->fts_path);
|
||||
rval = 1;
|
||||
} else {
|
||||
if (vflag)
|
||||
(void)printf("%s\n", p->fts_accpath);
|
||||
}
|
||||
}
|
||||
if (errno)
|
||||
@@ -203,6 +210,6 @@ void
|
||||
usage()
|
||||
{
|
||||
(void)fprintf(stderr,
|
||||
"usage: chmod [-f -R [-H | -L | -P]] mode file ...\n");
|
||||
"usage: chmod [-fv] [-R [-H | -L | -P]] mode file ...\n");
|
||||
exit(1);
|
||||
}
|
||||
@@ -875,7 +875,8 @@ to remind you which command is being continued, and cause the command
|
||||
to resume execution. Unless any input files in use by the suspended
|
||||
command have been changed in the meantime, the suspension has no effect
|
||||
whatsoever on the execution of the command. This feature can be very useful
|
||||
during editing, when you need to look at another file before continuing. An
|
||||
during editing, when you need to look at another file before continuing.
|
||||
An
|
||||
example of command suspension follows.
|
||||
.DS
|
||||
% mail harold
|
||||
@@ -903,7 +904,8 @@ suspended, it typed `Stopped' and prompted for a new command. Then the
|
||||
.I ls
|
||||
command was typed to find out the name of the file. The
|
||||
.I jobs
|
||||
command was run to find out which command was suspended. At this time the
|
||||
command was run to find out which command was suspended.
|
||||
At this time the
|
||||
.I fg
|
||||
command was typed to continue execution of the mail program. Input
|
||||
to the mail program was then continued and ended with a ^D
|
||||
|
||||
@@ -678,7 +678,8 @@ the same until the job terminates and then are re-used.
|
||||
.PP
|
||||
When a job is started in the backgound using `&', its number, as well
|
||||
as the process numbers of all its (top level) commands, is typed by the shell
|
||||
before prompting you for another command. For example,
|
||||
before prompting you for another command.
|
||||
For example,
|
||||
.DS
|
||||
% ls \-s | sort \-n > usage &
|
||||
[2] 2034 2035
|
||||
|
||||
@@ -224,7 +224,8 @@ is quite special and is replaced by the next line of input read from
|
||||
the shell's standard input (not the script it is reading). This is
|
||||
useful for writing shell scripts that are interactive, reading
|
||||
commands from the terminal, or even writing a shell script that
|
||||
acts as a filter, reading lines from its input file. Thus the sequence
|
||||
acts as a filter, reading lines from its input file.
|
||||
Thus the sequence
|
||||
.DS
|
||||
echo 'yes or no?\ec'
|
||||
set a=($<)
|
||||
|
||||
+6
-7
@@ -59,7 +59,7 @@ and a C-like syntax.
|
||||
It is used both as an interactive login shell and
|
||||
a shell script command processor.
|
||||
.Ss Argument list processing
|
||||
If the first argument (argument 0) to the shell is
|
||||
If the shell is executed with a program name starting with
|
||||
.Ql Fl \& ,
|
||||
then this is a login shell.
|
||||
A login shell also can be specified by invoking the shell with the
|
||||
@@ -132,12 +132,11 @@ variable to be set even before
|
||||
.Pa .cshrc
|
||||
is executed.
|
||||
.It Fl X
|
||||
Is to
|
||||
.Fl x
|
||||
as
|
||||
.Fl V
|
||||
is to
|
||||
.Fl v .
|
||||
Cause the
|
||||
.Ar echo
|
||||
variable to be set even before
|
||||
.Pa .cshrc
|
||||
is executed.
|
||||
.El
|
||||
.Pp
|
||||
After processing of flag arguments, if arguments remain but none of the
|
||||
|
||||
+31
-3
@@ -92,9 +92,14 @@ option stops
|
||||
.Nm
|
||||
from setting the time for other than the current machine.
|
||||
.It Fl r
|
||||
Print out the date and time in
|
||||
Print out the date and time that is
|
||||
.Ar seconds
|
||||
from the Epoch.
|
||||
from the Epoch
|
||||
.Po
|
||||
00:00:00 UTC, January 1, 1970;
|
||||
see
|
||||
.Xr time 3
|
||||
.Pc .
|
||||
.It Fl t
|
||||
Set the kernel's value for minutes west of
|
||||
.Tn GMT .
|
||||
@@ -117,7 +122,9 @@ or backwards according to the remaining string, otherwise the relevant
|
||||
part of the date is set. The date can be adjusted as many times as
|
||||
required using these flags. Flags are processed in the order given.
|
||||
.Pp
|
||||
Seconds are in the range 0-59, minutes are in the range 0-59, hours are
|
||||
When setting values
|
||||
.Pq rather than adjusting them ,
|
||||
seconds are in the range 0-59, minutes are in the range 0-59, hours are
|
||||
in the range 1-12, month days are in the range 1-31, week days are in the
|
||||
range 0-6 (Sun-Sat), months are in the range 1-12 (Jan-Dec) and years are
|
||||
in the range 80-38 or 1980-2038.
|
||||
@@ -141,6 +148,27 @@ will be put forwards (or backwards) to the next (previous) date that
|
||||
matches the given week day or month. This will not adjust the date
|
||||
if the given week day or month is the same as the current one.
|
||||
.Pp
|
||||
When a date is adjusted to a specific value or in units greater than hours,
|
||||
daylight savings time considerations are ignored.
|
||||
Adjustments in units of hours or less honour daylight savings time.
|
||||
So, assuming the current date is March 26, 0:30 and that the DST adjustment
|
||||
means that the clock goes forward at 01:00 to 02:00, using
|
||||
.Fl v No +1H
|
||||
will adjust the date to March 26, 2:30.
|
||||
Likewise, if the date is October 29, 0:30 and the DST adjustment means that
|
||||
the clock goes back at 02:00 to 01:00, using
|
||||
.Fl v No +3H
|
||||
will be necessary to reach October 20, 2:30.
|
||||
.Pp
|
||||
When the date is adjusted to a specific value that doesn't actually exist
|
||||
.Pq for example March 26, 1:30 BST 2000 ,
|
||||
the date will be silently adjusted forwards in units of one hour until it
|
||||
reaches a valid time.
|
||||
When the date is adjusted to a specific value that occurs twice
|
||||
.Pq for example October 29, 1:30 2000 ,
|
||||
the resulting timezone will be set so that the date matches the earlier of
|
||||
the two times.
|
||||
.Pp
|
||||
Refer to the examples below for further details.
|
||||
.El
|
||||
.Pp
|
||||
|
||||
+132
-89
@@ -41,8 +41,8 @@ struct trans {
|
||||
|
||||
static struct trans trans_mon[] = {
|
||||
{ 1, "january" }, { 2, "february" }, { 3, "march" }, { 4, "april" },
|
||||
{ 6, "june" }, { 7, "july" }, { 8, "august" }, { 9, "september" },
|
||||
{ 10, "october" }, { 11, "november" }, { 12, "december" },
|
||||
{ 5, "may"}, { 6, "june" }, { 7, "july" }, { 8, "august" },
|
||||
{ 9, "september" }, { 10, "october" }, { 11, "november" }, { 12, "december" },
|
||||
{ -1, NULL }
|
||||
};
|
||||
|
||||
@@ -53,6 +53,19 @@ static struct trans trans_wday[] = {
|
||||
};
|
||||
|
||||
static char digits[] = "0123456789";
|
||||
static int adjhour(struct tm *, char, int, int);
|
||||
|
||||
static int
|
||||
domktime(struct tm *t, char type)
|
||||
{
|
||||
time_t ret;
|
||||
|
||||
while ((ret = mktime(t)) == -1 && t->tm_year > 68 && t->tm_year < 138)
|
||||
/* While mktime() fails, adjust by an hour */
|
||||
adjhour(t, type == '-' ? type : '+', 1, 0);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
trans(const struct trans t[], const char *arg)
|
||||
@@ -112,7 +125,7 @@ daysinmonth(const struct tm *t)
|
||||
|
||||
|
||||
static int
|
||||
adjyear(struct tm *t, char type, int val)
|
||||
adjyear(struct tm *t, char type, int val, int mk)
|
||||
{
|
||||
switch (type) {
|
||||
case '+':
|
||||
@@ -129,45 +142,51 @@ adjyear(struct tm *t, char type, int val)
|
||||
t->tm_year -= 1900; /* struct tm holds years since 1900 */
|
||||
break;
|
||||
}
|
||||
return mktime(t) != -1;
|
||||
return !mk || domktime(t, type) != -1;
|
||||
}
|
||||
|
||||
static int
|
||||
adjmon(struct tm *t, char type, int val, int istext)
|
||||
adjmon(struct tm *t, char type, int val, int istext, int mk)
|
||||
{
|
||||
if (val < 0)
|
||||
return 0;
|
||||
|
||||
switch (type) {
|
||||
case '+':
|
||||
if (istext)
|
||||
if (istext) {
|
||||
if (val <= t->tm_mon)
|
||||
val += 11 - t->tm_mon; /* early next year */
|
||||
else
|
||||
val -= t->tm_mon + 1; /* later this year */
|
||||
if (!adjyear(t, '+', (t->tm_mon + val) / 12))
|
||||
return 0;
|
||||
val %= 12;
|
||||
t->tm_mon += val;
|
||||
if (t->tm_mon > 11)
|
||||
t->tm_mon -= 12;
|
||||
}
|
||||
if (val) {
|
||||
if (!adjyear(t, '+', (t->tm_mon + val) / 12, 0))
|
||||
return 0;
|
||||
val %= 12;
|
||||
t->tm_mon += val;
|
||||
if (t->tm_mon > 11)
|
||||
t->tm_mon -= 12;
|
||||
}
|
||||
break;
|
||||
|
||||
case '-':
|
||||
if (istext)
|
||||
if (istext) {
|
||||
if (val-1 > t->tm_mon)
|
||||
val = 13 - val + t->tm_mon; /* later last year */
|
||||
else
|
||||
val = t->tm_mon - val + 1; /* early this year */
|
||||
if (!adjyear(t, '-', val / 12))
|
||||
return 0;
|
||||
val %= 12;
|
||||
if (val > t->tm_mon) {
|
||||
if (!adjyear(t, '-', 1))
|
||||
return 0;
|
||||
val -= 12;
|
||||
}
|
||||
t->tm_mon -= val;
|
||||
if (val) {
|
||||
if (!adjyear(t, '-', val / 12, 0))
|
||||
return 0;
|
||||
val %= 12;
|
||||
if (val > t->tm_mon) {
|
||||
if (!adjyear(t, '-', 1, 0))
|
||||
return 0;
|
||||
val -= 12;
|
||||
}
|
||||
t->tm_mon -= val;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -176,13 +195,14 @@ adjmon(struct tm *t, char type, int val, int istext)
|
||||
t->tm_mon = --val;
|
||||
}
|
||||
|
||||
return mktime(t) != -1;
|
||||
return !mk || domktime(t, type) != -1;
|
||||
}
|
||||
|
||||
static int
|
||||
adjday(struct tm *t, char type, int val)
|
||||
adjday(struct tm *t, char type, int val, int mk)
|
||||
{
|
||||
int mdays;
|
||||
|
||||
switch (type) {
|
||||
case '+':
|
||||
while (val) {
|
||||
@@ -190,7 +210,7 @@ adjday(struct tm *t, char type, int val)
|
||||
if (val > mdays - t->tm_mday) {
|
||||
val -= mdays - t->tm_mday + 1;
|
||||
t->tm_mday = 1;
|
||||
if (!adjmon(t, '+', 1, 0))
|
||||
if (!adjmon(t, '+', 1, 0, 0))
|
||||
return 0;
|
||||
} else {
|
||||
t->tm_mday += val;
|
||||
@@ -203,7 +223,7 @@ adjday(struct tm *t, char type, int val)
|
||||
if (val >= t->tm_mday) {
|
||||
val -= t->tm_mday;
|
||||
t->tm_mday = 1;
|
||||
if (!adjmon(t, '-', 1, 0))
|
||||
if (!adjmon(t, '-', 1, 0, 0))
|
||||
return 0;
|
||||
t->tm_mday = daysinmonth(t);
|
||||
} else {
|
||||
@@ -219,11 +239,11 @@ adjday(struct tm *t, char type, int val)
|
||||
break;
|
||||
}
|
||||
|
||||
return mktime(t) != -1;
|
||||
return !mk || domktime(t, type) != -1;
|
||||
}
|
||||
|
||||
static int
|
||||
adjwday(struct tm *t, char type, int val, int istext)
|
||||
adjwday(struct tm *t, char type, int val, int istext, int mk)
|
||||
{
|
||||
if (val < 0)
|
||||
return 0;
|
||||
@@ -236,54 +256,62 @@ adjwday(struct tm *t, char type, int val, int istext)
|
||||
else
|
||||
val -= t->tm_wday; /* later this week */
|
||||
else
|
||||
val *= 7; /* "-W +5" == "5 weeks in the future" */
|
||||
return adjday(t, '+', val);
|
||||
val *= 7; /* "-v+5w" == "5 weeks in the future" */
|
||||
return !val || adjday(t, '+', val, mk);
|
||||
case '-':
|
||||
if (istext)
|
||||
if (istext) {
|
||||
if (val > t->tm_wday)
|
||||
val = 7 - val + t->tm_wday; /* later last week */
|
||||
else
|
||||
val = t->tm_wday - val; /* early this week */
|
||||
else
|
||||
val *= 7; /* "-W -5" == "5 weeks ago" */
|
||||
return adjday(t, '-', val);
|
||||
} else
|
||||
val *= 7; /* "-v-5w" == "5 weeks ago" */
|
||||
return !val || adjday(t, '-', val, mk);
|
||||
default:
|
||||
if (val < t->tm_wday)
|
||||
return adjday(t, '-', t->tm_wday - val);
|
||||
return adjday(t, '-', t->tm_wday - val, mk);
|
||||
else if (val > 6)
|
||||
return 0;
|
||||
else if (val > t->tm_wday)
|
||||
return adjday(t, '+', val - t->tm_wday);
|
||||
return adjday(t, '+', val - t->tm_wday, mk);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
adjhour(struct tm *t, char type, int val)
|
||||
adjhour(struct tm *t, char type, int val, int mk)
|
||||
{
|
||||
if (val < 0)
|
||||
return 0;
|
||||
|
||||
switch (type) {
|
||||
case '+':
|
||||
if (!adjday(t, '+', (t->tm_hour + val) / 24))
|
||||
return 0;
|
||||
val %= 24;
|
||||
t->tm_hour += val;
|
||||
if (t->tm_hour > 23)
|
||||
t->tm_hour -= 24;
|
||||
if (val) {
|
||||
int days;
|
||||
|
||||
days = (t->tm_hour + val) / 24;
|
||||
val %= 24;
|
||||
t->tm_hour += val;
|
||||
t->tm_hour %= 24;
|
||||
if (!adjday(t, '+', days, 0))
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case '-':
|
||||
if (!adjday(t, '-', val / 24))
|
||||
return 0;
|
||||
val %= 24;
|
||||
if (val > t->tm_hour) {
|
||||
if (!adjday(t, '-', 1))
|
||||
if (val) {
|
||||
int days;
|
||||
|
||||
days = val / 24;
|
||||
val %= 24;
|
||||
if (val > t->tm_hour) {
|
||||
days++;
|
||||
val -= 24;
|
||||
}
|
||||
t->tm_hour -= val;
|
||||
if (!adjday(t, '-', days, 0))
|
||||
return 0;
|
||||
val -= 24;
|
||||
}
|
||||
t->tm_hour -= val;
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -292,35 +320,39 @@ adjhour(struct tm *t, char type, int val)
|
||||
t->tm_hour = val;
|
||||
}
|
||||
|
||||
return mktime(t) != -1;
|
||||
return !mk || domktime(t, type) != -1;
|
||||
}
|
||||
|
||||
static int
|
||||
adjmin(struct tm *t, char type, int val)
|
||||
adjmin(struct tm *t, char type, int val, int mk)
|
||||
{
|
||||
if (val < 0)
|
||||
return 0;
|
||||
|
||||
switch (type) {
|
||||
case '+':
|
||||
if (!adjhour(t, '+', (t->tm_min + val) / 60))
|
||||
return 0;
|
||||
val %= 60;
|
||||
t->tm_min += val;
|
||||
if (t->tm_min > 59)
|
||||
t->tm_min -= 60;
|
||||
if (val) {
|
||||
if (!adjhour(t, '+', (t->tm_min + val) / 60, 0))
|
||||
return 0;
|
||||
val %= 60;
|
||||
t->tm_min += val;
|
||||
if (t->tm_min > 59)
|
||||
t->tm_min -= 60;
|
||||
}
|
||||
break;
|
||||
|
||||
case '-':
|
||||
if (!adjhour(t, '-', val / 60))
|
||||
return 0;
|
||||
val %= 60;
|
||||
if (val > t->tm_min) {
|
||||
if (!adjhour(t, '-', 1))
|
||||
if (val) {
|
||||
if (!adjhour(t, '-', val / 60, 0))
|
||||
return 0;
|
||||
val -= 60;
|
||||
val %= 60;
|
||||
if (val > t->tm_min) {
|
||||
if (!adjhour(t, '-', 1, 0))
|
||||
return 0;
|
||||
val -= 60;
|
||||
}
|
||||
t->tm_min -= val;
|
||||
}
|
||||
t->tm_min -= val;
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -329,35 +361,39 @@ adjmin(struct tm *t, char type, int val)
|
||||
t->tm_min = val;
|
||||
}
|
||||
|
||||
return mktime(t) != -1;
|
||||
return !mk || domktime(t, type) != -1;
|
||||
}
|
||||
|
||||
static int
|
||||
adjsec(struct tm *t, char type, int val)
|
||||
adjsec(struct tm *t, char type, int val, int mk)
|
||||
{
|
||||
if (val < 0)
|
||||
return 0;
|
||||
|
||||
switch (type) {
|
||||
case '+':
|
||||
if (!adjmin(t, '+', (t->tm_sec + val) / 60))
|
||||
return 0;
|
||||
val %= 60;
|
||||
t->tm_sec += val;
|
||||
if (t->tm_sec > 59)
|
||||
t->tm_sec -= 60;
|
||||
if (val) {
|
||||
if (!adjmin(t, '+', (t->tm_sec + val) / 60, 0))
|
||||
return 0;
|
||||
val %= 60;
|
||||
t->tm_sec += val;
|
||||
if (t->tm_sec > 59)
|
||||
t->tm_sec -= 60;
|
||||
}
|
||||
break;
|
||||
|
||||
case '-':
|
||||
if (!adjmin(t, '-', val / 60))
|
||||
return 0;
|
||||
val %= 60;
|
||||
if (val > t->tm_sec) {
|
||||
if (!adjmin(t, '-', 1))
|
||||
if (val) {
|
||||
if (!adjmin(t, '-', val / 60, 0))
|
||||
return 0;
|
||||
val -= 60;
|
||||
val %= 60;
|
||||
if (val > t->tm_sec) {
|
||||
if (!adjmin(t, '-', 1, 0))
|
||||
return 0;
|
||||
val -= 60;
|
||||
}
|
||||
t->tm_sec -= val;
|
||||
}
|
||||
t->tm_sec -= val;
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -366,7 +402,7 @@ adjsec(struct tm *t, char type, int val)
|
||||
t->tm_sec = val;
|
||||
}
|
||||
|
||||
return mktime(t) != -1;
|
||||
return !mk || domktime(t, type) != -1;
|
||||
}
|
||||
|
||||
const struct vary *
|
||||
@@ -389,15 +425,18 @@ vary_apply(const struct vary *v, struct tm *t)
|
||||
if (len < 2)
|
||||
return v;
|
||||
|
||||
if (type == '\0')
|
||||
t->tm_isdst = -1;
|
||||
|
||||
if (strspn(arg, digits) != len-1) {
|
||||
val = trans(trans_wday, arg);
|
||||
if (val != -1) {
|
||||
if (!adjwday(t, type, val, 1))
|
||||
if (!adjwday(t, type, val, 1, 1))
|
||||
return v;
|
||||
} else {
|
||||
val = trans(trans_mon, arg);
|
||||
if (val != -1) {
|
||||
if (!adjmon(t, type, val, 1))
|
||||
if (!adjmon(t, type, val, 1, 1))
|
||||
return v;
|
||||
} else
|
||||
return v;
|
||||
@@ -408,31 +447,35 @@ vary_apply(const struct vary *v, struct tm *t)
|
||||
|
||||
switch (which) {
|
||||
case 'S':
|
||||
if (!adjsec(t, type, val))
|
||||
if (!adjsec(t, type, val, 1))
|
||||
return v;
|
||||
break;
|
||||
case 'M':
|
||||
if (!adjmin(t, type, val))
|
||||
if (!adjmin(t, type, val, 1))
|
||||
return v;
|
||||
break;
|
||||
case 'H':
|
||||
if (!adjhour(t, type, val))
|
||||
if (!adjhour(t, type, val, 1))
|
||||
return v;
|
||||
break;
|
||||
case 'd':
|
||||
if (!adjday(t, type, val))
|
||||
t->tm_isdst = -1;
|
||||
if (!adjday(t, type, val, 1))
|
||||
return v;
|
||||
break;
|
||||
case 'w':
|
||||
if (!adjwday(t, type, val, 0))
|
||||
t->tm_isdst = -1;
|
||||
if (!adjwday(t, type, val, 0, 1))
|
||||
return v;
|
||||
break;
|
||||
case 'm':
|
||||
if (!adjmon(t, type, val, 0))
|
||||
t->tm_isdst = -1;
|
||||
if (!adjmon(t, type, val, 0, 1))
|
||||
return v;
|
||||
break;
|
||||
case 'y':
|
||||
if (!adjyear(t, type, val))
|
||||
t->tm_isdst = -1;
|
||||
if (!adjyear(t, type, val, 1))
|
||||
return v;
|
||||
break;
|
||||
default:
|
||||
|
||||
+2
-1
@@ -282,7 +282,8 @@ appended.
|
||||
.El
|
||||
.El
|
||||
.Pp
|
||||
Where sizes are specified, a decimal number of bytes is expected.
|
||||
Where sizes are specified, a decimal, octal, or hexadecimal number of
|
||||
bytes is expected.
|
||||
If the number ends with a ``b'', ``k'', ``m'', ``g'', or ``w'', the
|
||||
number is multiplied by 512, 1024 (1K), 1048576 (1M), 1073741824 (1G)
|
||||
or the number of bytes in an integer, respectively.
|
||||
|
||||
@@ -8,6 +8,8 @@ BINMODE=2555
|
||||
|
||||
MOUNT= ${.CURDIR}/../../sbin/mount
|
||||
CFLAGS+= -I${MOUNT}
|
||||
LDADD+= ${LIBM}
|
||||
DPADD+= ${LIBM}
|
||||
.PATH: ${MOUNT}
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
+28
-1
@@ -40,7 +40,11 @@
|
||||
.Nd display free disk space
|
||||
.Sh SYNOPSIS
|
||||
.Nm df
|
||||
.Op Fl ikn
|
||||
.Oo
|
||||
.Fl b | h | H | k |
|
||||
.Fl m | P
|
||||
.Oc
|
||||
.Op Fl in
|
||||
.Op Fl t Ar type
|
||||
.Op Ar file | Ar filesystem ...
|
||||
.Sh DESCRIPTION
|
||||
@@ -59,6 +63,19 @@ option below).
|
||||
.Pp
|
||||
The following options are available:
|
||||
.Bl -tag -width Ds
|
||||
.It Fl b
|
||||
Use 512-byte blocks rather than the default. Note that
|
||||
this overrides the
|
||||
.Ev BLOCKSIZE
|
||||
specification from the environment.
|
||||
.It Fl H
|
||||
"Human-readable" output. Use unit suffixes: Byte, Kilobyte, Megabyte,
|
||||
Gigabyte, Terabyte and Petabyte in order to reduce the number of
|
||||
digits to three or less using base 10 for sizes.
|
||||
.It Fl h
|
||||
"Human-readable" output. Use unit suffixes: Byte, Kilobyte, Megabyte,
|
||||
Gigabyte, Terabyte and Petabyte in order to reduce the number of
|
||||
digits to three or less using base 2 for sizes.
|
||||
.It Fl i
|
||||
Include statistics on the number of free inodes.
|
||||
.It Fl k
|
||||
@@ -66,6 +83,11 @@ Use 1024-byte (1-Kbyte) blocks rather than the default. Note that
|
||||
this overrides the
|
||||
.Ev BLOCKSIZE
|
||||
specification from the environment.
|
||||
.It Fl m
|
||||
Use 1048576-byte (1-Mbyte) blocks rather than the default. Note that
|
||||
this overrides the
|
||||
.Ev BLOCKSIZE
|
||||
specification from the environment.
|
||||
.It Fl n
|
||||
Print out the previously obtained statistics from the filesystems.
|
||||
This option should be used if it is possible that one or more
|
||||
@@ -75,6 +97,11 @@ When this option is specified,
|
||||
.Nm
|
||||
will not request new statistics from the filesystems, but will respond
|
||||
with the possibly stale statistics that were previously obtained.
|
||||
.It Fl P
|
||||
Use POSIX compliant output of 512-byte blocks rather than the default.
|
||||
Note that this overrides the
|
||||
.Ev BLOCKSIZE
|
||||
specification from the environment.
|
||||
.It Fl t
|
||||
Only print out statistics for filesystems of the specified types.
|
||||
More than one type may be specified in a comma separated list.
|
||||
|
||||
+133
-12
@@ -59,21 +59,55 @@ static const char rcsid[] =
|
||||
#include <err.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sysexits.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#define UNITS_SI 1
|
||||
#define UNITS_2 2
|
||||
|
||||
#define KILO_SZ(n) (n)
|
||||
#define MEGA_SZ(n) ((n) * (n))
|
||||
#define GIGA_SZ(n) ((n) * (n) * (n))
|
||||
#define TERA_SZ(n) ((n) * (n) * (n) * (n))
|
||||
#define PETA_SZ(n) ((n) * (n) * (n) * (n) * (n))
|
||||
|
||||
#define KILO_2_SZ (KILO_SZ(1024ULL))
|
||||
#define MEGA_2_SZ (MEGA_SZ(1024ULL))
|
||||
#define GIGA_2_SZ (GIGA_SZ(1024ULL))
|
||||
#define TERA_2_SZ (TERA_SZ(1024ULL))
|
||||
#define PETA_2_SZ (PETA_SZ(1024ULL))
|
||||
|
||||
#define KILO_SI_SZ (KILO_SZ(1000ULL))
|
||||
#define MEGA_SI_SZ (MEGA_SZ(1000ULL))
|
||||
#define GIGA_SI_SZ (GIGA_SZ(1000ULL))
|
||||
#define TERA_SI_SZ (TERA_SZ(1000ULL))
|
||||
#define PETA_SI_SZ (PETA_SZ(1000ULL))
|
||||
|
||||
unsigned long long vals_si [] = {1, KILO_SI_SZ, MEGA_SI_SZ, GIGA_SI_SZ, TERA_SI_SZ, PETA_SI_SZ};
|
||||
unsigned long long vals_base2[] = {1, KILO_2_SZ, MEGA_2_SZ, GIGA_2_SZ, TERA_2_SZ, PETA_2_SZ};
|
||||
unsigned long long *valp;
|
||||
|
||||
typedef enum { NONE, KILO, MEGA, GIGA, TERA, PETA, UNIT_MAX } unit_t;
|
||||
|
||||
int unitp [] = { NONE, KILO, MEGA, GIGA, TERA, PETA };
|
||||
|
||||
int checkvfsname __P((const char *, char **));
|
||||
char **makevfslist __P((char *));
|
||||
long regetmntinfo __P((struct statfs **, long, char **));
|
||||
int bread __P((off_t, void *, int));
|
||||
char *getmntpt __P((char *));
|
||||
void prthuman __P((struct statfs *, long));
|
||||
void prthumanval __P((double));
|
||||
void prtstat __P((struct statfs *, int));
|
||||
int ufs_df __P((char *, int));
|
||||
unit_t unit_adjust __P((double *));
|
||||
void usage __P((void));
|
||||
|
||||
int iflag, nflag;
|
||||
int hflag, iflag, nflag;
|
||||
struct ufs_args mdev;
|
||||
|
||||
int
|
||||
@@ -88,13 +122,32 @@ main(argc, argv)
|
||||
char *mntpt, *mntpath, **vfslist;
|
||||
|
||||
vfslist = NULL;
|
||||
while ((ch = getopt(argc, argv, "iknt:")) != -1)
|
||||
while ((ch = getopt(argc, argv, "bHhikmnPt:")) != -1)
|
||||
switch (ch) {
|
||||
case 'b':
|
||||
/* FALLTHROUGH */
|
||||
case 'P':
|
||||
putenv("BLOCKSIZE=512");
|
||||
hflag = 0;
|
||||
break;
|
||||
case 'H':
|
||||
hflag = UNITS_SI;
|
||||
valp = vals_si;
|
||||
break;
|
||||
case 'h':
|
||||
hflag = UNITS_2;
|
||||
valp = vals_base2;
|
||||
break;
|
||||
case 'i':
|
||||
iflag = 1;
|
||||
break;
|
||||
case 'k':
|
||||
putenv("BLOCKSIZE=1k");
|
||||
hflag = 0;
|
||||
break;
|
||||
case 'm':
|
||||
putenv("BLOCKSIZE=1m");
|
||||
hflag = 0;
|
||||
break;
|
||||
case 'n':
|
||||
nflag = 1;
|
||||
@@ -130,8 +183,9 @@ main(argc, argv)
|
||||
maxwidth = width;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < mntsize; i++)
|
||||
for (i = 0; i < mntsize; i++) {
|
||||
prtstat(&mntbuf[i], maxwidth);
|
||||
}
|
||||
exit(rv);
|
||||
}
|
||||
|
||||
@@ -243,6 +297,61 @@ regetmntinfo(mntbufp, mntsize, vfslist)
|
||||
return (j);
|
||||
}
|
||||
|
||||
/*
|
||||
* Output in "human-readable" format. Uses 3 digits max and puts
|
||||
* unit suffixes at the end. Makes output compact and easy to read,
|
||||
* especially on huge disks.
|
||||
*
|
||||
*/
|
||||
unit_t
|
||||
unit_adjust(val)
|
||||
double *val;
|
||||
{
|
||||
double abval;
|
||||
unit_t unit;
|
||||
unsigned int unit_sz;
|
||||
|
||||
abval = fabs(*val);
|
||||
|
||||
unit_sz = abval ? ilogb(abval) / 10 : 0;
|
||||
|
||||
if (unit_sz >= UNIT_MAX) {
|
||||
unit = NONE;
|
||||
} else {
|
||||
unit = unitp[unit_sz];
|
||||
*val /= (double)valp[unit_sz];
|
||||
}
|
||||
|
||||
return (unit);
|
||||
}
|
||||
|
||||
void
|
||||
prthuman(sfsp, used)
|
||||
struct statfs *sfsp;
|
||||
long used;
|
||||
{
|
||||
|
||||
prthumanval((double)sfsp->f_blocks * (double)sfsp->f_bsize);
|
||||
prthumanval((double)used * (double)sfsp->f_bsize);
|
||||
prthumanval((double)sfsp->f_bavail * (double)sfsp->f_bsize);
|
||||
}
|
||||
|
||||
void
|
||||
prthumanval(bytes)
|
||||
double bytes;
|
||||
{
|
||||
|
||||
unit_t unit;
|
||||
unit = unit_adjust(&bytes);
|
||||
|
||||
if (bytes == 0)
|
||||
(void)printf(" 0B");
|
||||
else if (bytes > 10)
|
||||
(void)printf(" %5.0f%c", bytes, "BKMGTPE"[unit]);
|
||||
else
|
||||
(void)printf(" %5.1f%c", bytes, "BKMGTPE"[unit]);
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert statfs returned filesystem size into BLOCKSIZE units.
|
||||
* Attempts to avoid overflow for large filesystems.
|
||||
@@ -267,9 +376,16 @@ prtstat(sfsp, maxwidth)
|
||||
if (maxwidth < 11)
|
||||
maxwidth = 11;
|
||||
if (++timesthrough == 1) {
|
||||
header = getbsize(&headerlen, &blocksize);
|
||||
(void)printf("%-*.*s %s Used Avail Capacity",
|
||||
maxwidth, maxwidth, "Filesystem", header);
|
||||
if (hflag) {
|
||||
header = " Size";
|
||||
headerlen = strlen(header);
|
||||
(void)printf("%-*.*s %-s Used Avail Capacity",
|
||||
maxwidth, maxwidth, "Filesystem", header);
|
||||
} else {
|
||||
header = getbsize(&headerlen, &blocksize);
|
||||
(void)printf("%-*.*s %-s Used Avail Capacity",
|
||||
maxwidth, maxwidth, "Filesystem", header);
|
||||
}
|
||||
if (iflag)
|
||||
(void)printf(" iused ifree %%iused");
|
||||
(void)printf(" Mounted on\n");
|
||||
@@ -277,10 +393,14 @@ prtstat(sfsp, maxwidth)
|
||||
(void)printf("%-*.*s", maxwidth, maxwidth, sfsp->f_mntfromname);
|
||||
used = sfsp->f_blocks - sfsp->f_bfree;
|
||||
availblks = sfsp->f_bavail + used;
|
||||
(void)printf(" %*ld %8ld %8ld", headerlen,
|
||||
fsbtoblk(sfsp->f_blocks, sfsp->f_bsize, blocksize),
|
||||
fsbtoblk(used, sfsp->f_bsize, blocksize),
|
||||
fsbtoblk(sfsp->f_bavail, sfsp->f_bsize, blocksize));
|
||||
if (hflag) {
|
||||
prthuman(sfsp, used);
|
||||
} else {
|
||||
(void)printf(" %*ld %8ld %8ld", headerlen,
|
||||
fsbtoblk(sfsp->f_blocks, sfsp->f_bsize, blocksize),
|
||||
fsbtoblk(used, sfsp->f_bsize, blocksize),
|
||||
fsbtoblk(sfsp->f_bavail, sfsp->f_bsize, blocksize));
|
||||
}
|
||||
(void)printf(" %5.0f%%",
|
||||
availblks == 0 ? 100.0 : (double)used / (double)availblks * 100.0);
|
||||
if (iflag) {
|
||||
@@ -376,7 +496,8 @@ bread(off, buf, cnt)
|
||||
void
|
||||
usage()
|
||||
{
|
||||
|
||||
(void)fprintf(stderr,
|
||||
"usage: df [-ikn] [-t type] [file | filesystem ...]\n");
|
||||
exit(1);
|
||||
"usage: df [-b | -H | -h | -k | -m | -P] [-ain] [-t type] [file | filesystem ...]\n");
|
||||
exit(EX_USAGE);
|
||||
}
|
||||
+11
-1
@@ -59,12 +59,22 @@ Do not print the trailing newline character. This may also be
|
||||
achieved by appending `\ec' to the end of the string, as is done
|
||||
by iBCS2 compatible systems.
|
||||
.El
|
||||
.Pp
|
||||
Some shells may provide a builtin
|
||||
.Nm
|
||||
command which is similar or identical to this utility.
|
||||
Consult the
|
||||
.Xr builtin 1
|
||||
manual page.
|
||||
.Sh DIAGNOSTICS
|
||||
The
|
||||
.Nm
|
||||
utility exits 0 on success, and >0 if an error occurs.
|
||||
.Sh SEE ALSO
|
||||
.Xr printf 1
|
||||
.Xr builtin 1 ,
|
||||
.Xr csh 1 ,
|
||||
.Xr printf 1 ,
|
||||
.Xr sh 1
|
||||
.Sh STANDARDS
|
||||
The
|
||||
.Nm
|
||||
|
||||
+12
-6
@@ -4,7 +4,8 @@
|
||||
.Os
|
||||
.Sh NAME
|
||||
.\" ed, red \- text editor
|
||||
.Nm ed
|
||||
.Nm ed ,
|
||||
.Nm red
|
||||
.Nd text editor
|
||||
.Sh SYNOPSIS
|
||||
.Nm ed
|
||||
@@ -115,7 +116,8 @@ default addresses are supplied.
|
||||
The following options are available:
|
||||
.Bl -tag -width indent
|
||||
.It Fl s
|
||||
Suppress diagnostics. This should be used if
|
||||
Suppress diagnostics.
|
||||
This should be used if
|
||||
.Nm Ns 's
|
||||
standard input is from a script.
|
||||
.It Fl x
|
||||
@@ -174,7 +176,8 @@ This means "before the first line,"
|
||||
and is legal wherever it makes sense.
|
||||
.Pp
|
||||
An address range is two addresses separated either by a comma or
|
||||
semi-colon. The value of the first address in a range cannot exceed the
|
||||
semi-colon.
|
||||
The value of the first address in a range cannot exceed the
|
||||
value of the second. If only one address is given in a range, then
|
||||
the second address is set to the given address. If an
|
||||
.Em n Ns -tuple
|
||||
@@ -452,7 +455,8 @@ The current address is set to last line entered.
|
||||
.It (.,.)d
|
||||
Delete the addressed lines from the buffer.
|
||||
If there is a line after the deleted range, then the current address is set
|
||||
to this line. Otherwise the current address is set to the line
|
||||
to this line.
|
||||
Otherwise the current address is set to the line
|
||||
before the deleted range.
|
||||
.It e Ar file
|
||||
Edit
|
||||
@@ -587,7 +591,8 @@ Print the addressed lines along with
|
||||
their line numbers. The current address is set to the last line
|
||||
printed.
|
||||
.It (.,.)p
|
||||
Print the addressed lines. The current address is set to the last line
|
||||
Print the addressed lines.
|
||||
The current address is set to the last line
|
||||
printed.
|
||||
.It P
|
||||
Toggle the command prompt on and off.
|
||||
@@ -830,7 +835,8 @@ attempts to write the buffer if the terminal hangs up
|
||||
USD:12-13
|
||||
|
||||
.Rs
|
||||
.%A B. W. Kernighan and P. J. Plauger
|
||||
.%A B. W. Kernighan
|
||||
.%A P. J. Plauger
|
||||
.%B Software Tools in Pascal
|
||||
.%O Addison-Wesley
|
||||
.%D 1981
|
||||
|
||||
+5
-3
@@ -175,7 +175,9 @@ top:
|
||||
if (read_file(*argv, 0) < 0 && !isatty(0))
|
||||
quit(2);
|
||||
else if (**argv != '!')
|
||||
strcpy(old_filename, *argv);
|
||||
if (strlcpy(old_filename, *argv, sizeof(old_filename))
|
||||
>= sizeof(old_filename))
|
||||
quit(2);
|
||||
} else if (argc) {
|
||||
fputs("?\n", stderr);
|
||||
if (**argv == '\0')
|
||||
@@ -1345,8 +1347,8 @@ strip_escapes(s)
|
||||
int i = 0;
|
||||
|
||||
REALLOC(file, filesz, MAXPATHLEN + 1, NULL);
|
||||
/* assert: no trailing escape */
|
||||
while ((file[i++] = (*s == '\\') ? *++s : *s))
|
||||
while (i < filesz - 1 /* Worry about a possible trailing escape */
|
||||
&& (file[i++] = (*s == '\\') ? *++s : *s))
|
||||
s++;
|
||||
return file;
|
||||
}
|
||||
|
||||
@@ -50,6 +50,10 @@ network initialization script
|
||||
.Pa /etc/rc.network ,
|
||||
normally run at boot
|
||||
time.
|
||||
This script uses the
|
||||
.Va hostname
|
||||
variable in
|
||||
.Pa /etc/rc.conf .
|
||||
.Pp
|
||||
Options:
|
||||
.Bl -tag -width flag
|
||||
@@ -58,7 +62,8 @@ Trim off any domain information from the printed
|
||||
name.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr gethostname 3
|
||||
.Xr gethostname 3 ,
|
||||
.Xr rc.conf 5
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
|
||||
+6
-9
@@ -110,17 +110,14 @@ ALRM (alarm clock)
|
||||
TERM (software termination signal)
|
||||
.El
|
||||
.Pp
|
||||
.Nm Kill
|
||||
is a built-in to
|
||||
.Xr csh 1 ;
|
||||
it allows job specifiers of the form ``%...'' as arguments
|
||||
so process id's are not as often used as
|
||||
Some shells may provide a builtin
|
||||
.Nm
|
||||
arguments.
|
||||
See
|
||||
.Xr csh 1
|
||||
for details.
|
||||
command which is similar or identical to this utility.
|
||||
Consult the
|
||||
.Xr builtin 1
|
||||
manual page.
|
||||
.Sh SEE ALSO
|
||||
.Xr builtin 1 ,
|
||||
.Xr csh 1 ,
|
||||
.Xr killall 1 ,
|
||||
.Xr ps 1 ,
|
||||
|
||||
@@ -5,4 +5,7 @@ PROG= ln
|
||||
MAN1= ln.1
|
||||
MAN7= symlink.7
|
||||
|
||||
LINKS= ${BINDIR}/ln ${BINDIR}/link
|
||||
MLINKS= ln.1 link.1
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
+27
-3
@@ -39,17 +39,20 @@
|
||||
.Dt LN 1
|
||||
.Os BSD 4
|
||||
.Sh NAME
|
||||
.Nm ln
|
||||
.Nm ln ,
|
||||
.Nm link
|
||||
.Nd make links
|
||||
.Sh SYNOPSIS
|
||||
.Nm ln
|
||||
.Op Fl fs
|
||||
.Op Fl fsv
|
||||
.Ar source_file
|
||||
.Op target_file
|
||||
.Nm ln
|
||||
.Op Fl fs
|
||||
.Op Fl fsv
|
||||
.Ar source_file ...
|
||||
.Op target_dir
|
||||
.Nm link
|
||||
.Ar source_file Ar target_file
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
@@ -72,6 +75,10 @@ The options are as follows:
|
||||
Unlink any already existing file, permitting the link to occur.
|
||||
.It Fl s
|
||||
Create a symbolic link.
|
||||
.It Fl v
|
||||
Cause
|
||||
.Nm
|
||||
to be verbose, showing files as they are processed.
|
||||
.El
|
||||
.Pp
|
||||
By default,
|
||||
@@ -118,6 +125,15 @@ makes links in
|
||||
.Ar target_dir
|
||||
to all the named source files.
|
||||
The links made will have the same name as the files being linked to.
|
||||
.Pp
|
||||
When the utility is called as
|
||||
.Nm link ,
|
||||
exactly two arguments must be supplied,
|
||||
neither of which may specify a directory.
|
||||
No options may be supplied in this simple mode of operation,
|
||||
which performs a
|
||||
.Xr link 2
|
||||
operation using the two passed arguments.
|
||||
.Sh SEE ALSO
|
||||
.Xr link 2 ,
|
||||
.Xr lstat 2 ,
|
||||
@@ -125,8 +141,16 @@ The links made will have the same name as the files being linked to.
|
||||
.Xr stat 2 ,
|
||||
.Xr symlink 2 ,
|
||||
.Xr symlink 7
|
||||
.Sh COMPATIBILITY
|
||||
The
|
||||
.Fl v
|
||||
option is non-standard and its use in scripts is not recommended.
|
||||
.Sh HISTORY
|
||||
An
|
||||
.Nm
|
||||
command appeared in
|
||||
.At v1 .
|
||||
The simplified
|
||||
.Nm link
|
||||
command conforms to
|
||||
.St -susv2 .
|
||||
+31
-5
@@ -57,8 +57,10 @@ static const char rcsid[] =
|
||||
|
||||
int fflag; /* Unlink existing files. */
|
||||
int sflag; /* Symbolic, not hard, link. */
|
||||
int vflag; /* Verbose output. */
|
||||
/* System link call. */
|
||||
int (*linkf) __P((const char *, const char *));
|
||||
char linkch;
|
||||
|
||||
int linkit __P((char *, char *, int));
|
||||
void usage __P((void));
|
||||
@@ -71,9 +73,26 @@ main(argc, argv)
|
||||
extern int optind;
|
||||
struct stat sb;
|
||||
int ch, exitval;
|
||||
char *sourcedir;
|
||||
char *p, *sourcedir;
|
||||
|
||||
while ((ch = getopt(argc, argv, "fs")) != -1)
|
||||
/*
|
||||
* Test for the special case where the utility is called as
|
||||
* "link", for which the functionality provided is greatly
|
||||
* simplified.
|
||||
*/
|
||||
if ((p = rindex(argv[0], '/')) == NULL)
|
||||
p = argv[0];
|
||||
else
|
||||
++p;
|
||||
if (strcmp(p, "link") == 0) {
|
||||
if (argc == 3) {
|
||||
linkf = link;
|
||||
exit(linkit(argv[1], argv[2], 0));
|
||||
} else
|
||||
usage();
|
||||
}
|
||||
|
||||
while ((ch = getopt(argc, argv, "fsv")) != -1)
|
||||
switch (ch) {
|
||||
case 'f':
|
||||
fflag = 1;
|
||||
@@ -81,6 +100,9 @@ main(argc, argv)
|
||||
case 's':
|
||||
sflag = 1;
|
||||
break;
|
||||
case 'v':
|
||||
vflag = 1;
|
||||
break;
|
||||
case '?':
|
||||
default:
|
||||
usage();
|
||||
@@ -90,6 +112,7 @@ main(argc, argv)
|
||||
argc -= optind;
|
||||
|
||||
linkf = sflag ? symlink : link;
|
||||
linkch = sflag ? '-' : '=';
|
||||
|
||||
switch(argc) {
|
||||
case 0:
|
||||
@@ -153,14 +176,17 @@ linkit(target, source, isdir)
|
||||
warn("%s", source);
|
||||
return (1);
|
||||
}
|
||||
if (vflag)
|
||||
(void)printf("%s %c> %s\n", source, linkch, target);
|
||||
return (0);
|
||||
}
|
||||
|
||||
void
|
||||
usage()
|
||||
{
|
||||
(void)fprintf(stderr, "%s\n%s\n",
|
||||
"usage: ln [-fs] file1 file2",
|
||||
" ln [-fs] file ... directory");
|
||||
(void)fprintf(stderr, "%s\n%s\n%s\n",
|
||||
"usage: ln [-fsv] file1 file2",
|
||||
" ln [-fsv] file ... directory",
|
||||
" link file1 file2");
|
||||
exit(1);
|
||||
}
|
||||
+2
-1
@@ -132,7 +132,8 @@ The
|
||||
.Bx 4.4
|
||||
system differs from historical 4BSD systems in that the system call
|
||||
.Xr chown 2
|
||||
has been changed to follow symbolic links. The
|
||||
has been changed to follow symbolic links.
|
||||
The
|
||||
.Xr lchown 2
|
||||
system call was added later when the limitations of the new
|
||||
.Xr chown 2
|
||||
|
||||
+10
-5
@@ -100,7 +100,8 @@ or
|
||||
options are specified.
|
||||
.It Fl L
|
||||
If argument is a symbolic link, list the file or directory the link references
|
||||
rather than the link itself. This option cancels the
|
||||
rather than the link itself.
|
||||
This option cancels the
|
||||
.Fl P
|
||||
option.
|
||||
.It Fl P
|
||||
@@ -145,7 +146,8 @@ If the
|
||||
option is specified, print the file size allocation in kilobytes,
|
||||
not blocks. This option overrides the environment variable BLOCKSIZE.
|
||||
.It Fl l
|
||||
(The lowercase letter ``ell.'') List in long format. (See below.)
|
||||
(The lowercase letter ``ell.'') List in long format.
|
||||
(See below.)
|
||||
If the output is to a terminal, a total sum for all the file
|
||||
sizes is output on a line before the long listing.
|
||||
.It Fl o
|
||||
@@ -252,7 +254,8 @@ the numeric ID's are displayed.
|
||||
.Pp
|
||||
If the file is a character special or block special file,
|
||||
the major and minor device numbers for the file are displayed
|
||||
in the size field. If the file is a symbolic link the pathname of the
|
||||
in the size field.
|
||||
If the file is a symbolic link the pathname of the
|
||||
linked-to file is preceded by
|
||||
.Dq \-> .
|
||||
.Pp
|
||||
@@ -317,7 +320,8 @@ The file is executable or the directory is
|
||||
searchable.
|
||||
.It Sy \-
|
||||
The file is neither readable, writable, executable,
|
||||
nor set-user-ID nor set-group-ID mode, nor sticky. (See below.)
|
||||
nor set-user-ID nor set-group-ID mode, nor sticky.
|
||||
(See below.)
|
||||
.El
|
||||
.Pp
|
||||
These next two apply only to the third character in the last group
|
||||
@@ -327,7 +331,8 @@ These next two apply only to the third character in the last group
|
||||
The sticky bit is set
|
||||
(mode
|
||||
.Li 1000 ) ,
|
||||
but not execute or search permission. (See
|
||||
but not execute or search permission.
|
||||
(See
|
||||
.Xr chmod 1
|
||||
or
|
||||
.Xr sticky 8 . )
|
||||
|
||||
+4
-2
@@ -480,7 +480,8 @@ cannot be opened for reading and writing.
|
||||
.It Fl k
|
||||
Do not overwrite existing files.
|
||||
.It Fl l
|
||||
Link files. (The letter ell).
|
||||
Link files.
|
||||
(The letter ell).
|
||||
In the
|
||||
.Em copy
|
||||
mode (
|
||||
@@ -623,7 +624,8 @@ The optional trailing
|
||||
.Cm g
|
||||
continues to apply the substitution expression to the pathname substring
|
||||
which starts with the first character following the end of the last successful
|
||||
substitution. The first unsuccessful substitution stops the operation of the
|
||||
substitution.
|
||||
The first unsuccessful substitution stops the operation of the
|
||||
.Cm g
|
||||
option.
|
||||
The optional trailing
|
||||
|
||||
+13
-3
@@ -47,6 +47,13 @@
|
||||
.Nm Pwd
|
||||
writes the absolute pathname of the current working directory to
|
||||
the standard output.
|
||||
.Pp
|
||||
Some shells may provide a builtin
|
||||
.Nm
|
||||
command which is similar or identical to this utility.
|
||||
Consult the
|
||||
.Xr builtin 1
|
||||
manual page.
|
||||
.Sh DIAGNOSTICS
|
||||
The
|
||||
.Nm
|
||||
@@ -58,14 +65,17 @@ utility is expected to be
|
||||
.St -p1003.2
|
||||
compatible.
|
||||
.Sh SEE ALSO
|
||||
.Xr builtin 1 ,
|
||||
.Xr cd 1 ,
|
||||
.Xr csh 1 ,
|
||||
.Xr getcwd 3
|
||||
.Xr getcwd 3 ,
|
||||
.Xr sh 1
|
||||
.Sh BUGS
|
||||
In
|
||||
.Xr csh 1
|
||||
the command
|
||||
.Ic dirs
|
||||
is always faster (although it can give a different answer in the rare case
|
||||
is always faster because it is built into that shell.
|
||||
However, it can give a different answer in the rare case
|
||||
that the current directory or a containing directory was moved after
|
||||
the shell descended into it).
|
||||
the shell descended into it.
|
||||
+9
-4
@@ -55,7 +55,9 @@ copies files between machines. Each
|
||||
or
|
||||
.Ar directory
|
||||
argument is either a remote file name of the
|
||||
form ``rname@rhost:path'', or a local file name (containing no `:' characters,
|
||||
form
|
||||
.Dq rname@rhost:path ,
|
||||
or a local file name (containing no `:' characters,
|
||||
or a `/' before any `:'s).
|
||||
.Pp
|
||||
The following options are available:
|
||||
@@ -69,7 +71,7 @@ to obtain tickets
|
||||
for the remote host in realm
|
||||
.Ar realm
|
||||
instead of the remote host's realm as determined by
|
||||
.Xr krb_realmofhost 3 .
|
||||
.Xr krb_realmofhost 3 .
|
||||
.It Fl p
|
||||
Cause
|
||||
.Nm
|
||||
@@ -129,7 +131,9 @@ configure authentication services
|
||||
.Xr cp 1 ,
|
||||
.Xr ftp 1 ,
|
||||
.Xr rlogin 1 ,
|
||||
.Xr rsh 1
|
||||
.Xr rsh 1 ,
|
||||
.Xr auth.conf 5 ,
|
||||
.Xr hosts.equiv 5 .
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
@@ -152,7 +156,8 @@ or
|
||||
file on the remote host.
|
||||
.Pp
|
||||
The destination user and hostname may have to be specified as
|
||||
``rhost.rname'' when the destination machine is running the
|
||||
.Dq rhost.rname
|
||||
when the destination machine is running the
|
||||
.Bx 4.2
|
||||
version of
|
||||
.Nm Ns .
|
||||
@@ -4,6 +4,9 @@
|
||||
PROG= rm
|
||||
SRCS= rm.c stat_flags.c
|
||||
|
||||
LINKS= ${BINDIR}/rm ${BINDIR}/unlink
|
||||
MLINKS= rm.1 unlink.1
|
||||
|
||||
.PATH: ${.CURDIR}/../ls
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
+19
-1
@@ -39,12 +39,15 @@
|
||||
.Dt RM 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm rm
|
||||
.Nm rm ,
|
||||
.Nm unlink
|
||||
.Nd remove directory entries
|
||||
.Sh SYNOPSIS
|
||||
.Nm rm
|
||||
.Op Fl dfiPRrvW
|
||||
.Ar file ...
|
||||
.Nm unlink
|
||||
.Ar file
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
@@ -116,6 +119,16 @@ It is an error to attempt to remove the files
|
||||
or
|
||||
.Dq .. .
|
||||
.Pp
|
||||
When the utility is called as
|
||||
.Nm unlink ,
|
||||
only one argument,
|
||||
which must not be a directory,
|
||||
may be supplied.
|
||||
No options may be supplied in this simple mode of operation,
|
||||
which performs an
|
||||
.Xr unlink 2
|
||||
operation on the passed argument.
|
||||
.Pp
|
||||
The
|
||||
.Nm
|
||||
utility exits 0 if all of the named files or file hierarchies were removed,
|
||||
@@ -193,6 +206,11 @@ option if such behavior is desired. This follows the historical
|
||||
behavior of
|
||||
.Nm
|
||||
with respect to directories.
|
||||
.Pp
|
||||
The simplified
|
||||
.Nm unlink
|
||||
command conforms to
|
||||
.St -susv2 .
|
||||
.Sh HISTORY
|
||||
A
|
||||
.Nm
|
||||
|
||||
+21
-1
@@ -86,6 +86,24 @@ main(argc, argv)
|
||||
char *argv[];
|
||||
{
|
||||
int ch, rflag;
|
||||
char *p;
|
||||
|
||||
/*
|
||||
* Test for the special case where the utility is called as
|
||||
* "unlink", for which the functionality provided is greatly
|
||||
* simplified.
|
||||
*/
|
||||
if ((p = rindex(argv[0], '/')) == NULL)
|
||||
p = argv[0];
|
||||
else
|
||||
++p;
|
||||
if (strcmp(p, "unlink") == 0) {
|
||||
if (argc == 2) {
|
||||
rm_file(&argv[1]);
|
||||
exit(eval);
|
||||
} else
|
||||
usage();
|
||||
}
|
||||
|
||||
Pflag = rflag = 0;
|
||||
while ((ch = getopt(argc, argv, "dfiPRrvW")) != -1)
|
||||
@@ -472,6 +490,8 @@ void
|
||||
usage()
|
||||
{
|
||||
|
||||
(void)fprintf(stderr, "usage: rm [-f | -i] [-dPRrvW] file ...\n");
|
||||
(void)fprintf(stderr, "%s\n%s\n",
|
||||
"usage: rm [-f | -i] [-dPRrvW] file ...",
|
||||
" unlink file");
|
||||
exit(EX_USAGE);
|
||||
}
|
||||
+1
-1
@@ -342,7 +342,7 @@ getpwd()
|
||||
|
||||
INTOFF;
|
||||
if (pipe(pip) < 0)
|
||||
error("Pipe call failed");
|
||||
error("Pipe call failed: %s", strerror(errno));
|
||||
jp = makejob((union node *)NULL, 1);
|
||||
if (forkshell(jp, (union node *)NULL, FORK_NOJOB) == 0) {
|
||||
(void) close(pip[0]);
|
||||
|
||||
@@ -51,6 +51,7 @@ static const char rcsid[] =
|
||||
#include "options.h"
|
||||
#include "output.h"
|
||||
#include "error.h"
|
||||
#include "nodes.h" /* show.h needs nodes.h */
|
||||
#include "show.h"
|
||||
#include "trap.h"
|
||||
#include <signal.h>
|
||||
|
||||
+31
-4
@@ -45,6 +45,7 @@ static const char rcsid[] =
|
||||
#include <signal.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/wait.h> /* For WIFSIGNALED(status) */
|
||||
#include <errno.h>
|
||||
|
||||
/*
|
||||
* Evaluate a command.
|
||||
@@ -488,7 +489,7 @@ evalpipe(n)
|
||||
if (lp->next) {
|
||||
if (pipe(pip) < 0) {
|
||||
close(prevfd);
|
||||
error("Pipe call failed");
|
||||
error("Pipe call failed: %s", strerror(errno));
|
||||
}
|
||||
}
|
||||
if (forkshell(jp, lp->n, n->npipe.backgnd) == 0) {
|
||||
@@ -556,7 +557,7 @@ evalbackcmd(n, result)
|
||||
} else {
|
||||
exitstatus = 0;
|
||||
if (pipe(pip) < 0)
|
||||
error("Pipe call failed");
|
||||
error("Pipe call failed: %s", strerror(errno));
|
||||
jp = makejob(n, 1);
|
||||
if (forkshell(jp, n, FORK_NOJOB) == 0) {
|
||||
FORCEINTON;
|
||||
@@ -611,12 +612,14 @@ evalcommand(cmd, flags, backcmd)
|
||||
volatile int e;
|
||||
char *lastarg;
|
||||
int realstatus;
|
||||
int do_clearcmdentry;
|
||||
#if __GNUC__
|
||||
/* Avoid longjmp clobbering */
|
||||
(void) &argv;
|
||||
(void) &argc;
|
||||
(void) &lastarg;
|
||||
(void) &flags;
|
||||
(void) &do_clearcmdentry;
|
||||
#endif
|
||||
|
||||
/* First expand the arguments. */
|
||||
@@ -625,6 +628,7 @@ evalcommand(cmd, flags, backcmd)
|
||||
arglist.lastp = &arglist.list;
|
||||
varlist.lastp = &varlist.list;
|
||||
varflag = 1;
|
||||
do_clearcmdentry = 0;
|
||||
oexitstatus = exitstatus;
|
||||
exitstatus = 0;
|
||||
for (argp = cmd->ncmd.args ; argp ; argp = argp->narg.next) {
|
||||
@@ -687,8 +691,29 @@ evalcommand(cmd, flags, backcmd)
|
||||
* is present
|
||||
*/
|
||||
for (sp = varlist.list ; sp ; sp = sp->next)
|
||||
if (strncmp(sp->text, PATH, sizeof(PATH) - 1) == 0)
|
||||
if (strncmp(sp->text, PATH, sizeof(PATH) - 1) == 0) {
|
||||
path = sp->text + sizeof(PATH) - 1;
|
||||
/*
|
||||
* On `PATH=... command`, we need to make
|
||||
* sure that the command isn't using the
|
||||
* non-updated hash table of the outer PATH
|
||||
* setting and we need to make sure that
|
||||
* the hash table isn't filled with items
|
||||
* from the temporary setting.
|
||||
*
|
||||
* It would be better to forbit using and
|
||||
* updating the table while this command
|
||||
* runs, by the command finding mechanism
|
||||
* is heavily integrated with hash handling,
|
||||
* so we just delete the hash before and after
|
||||
* the command runs. Partly deleting like
|
||||
* changepatch() does doesn't seem worth the
|
||||
* bookinging effort, since most such runs add
|
||||
* diretories in front of the new PATH.
|
||||
*/
|
||||
clearcmdentry(0);
|
||||
do_clearcmdentry = 1;
|
||||
}
|
||||
|
||||
find_command(argv[0], &cmdentry, 1, path);
|
||||
if (cmdentry.cmdtype == CMDUNKNOWN) { /* command not found */
|
||||
@@ -728,7 +753,7 @@ evalcommand(cmd, flags, backcmd)
|
||||
if (flags & EV_BACKCMD) {
|
||||
mode = FORK_NOJOB;
|
||||
if (pipe(pip) < 0)
|
||||
error("Pipe call failed");
|
||||
error("Pipe call failed: %s", strerror(errno));
|
||||
}
|
||||
if (forkshell(jp, cmd, mode) != 0)
|
||||
goto parent; /* at end of routine */
|
||||
@@ -886,6 +911,8 @@ parent: /* parent process gets here (if we forked) */
|
||||
out:
|
||||
if (lastarg)
|
||||
setvar("_", lastarg, 0);
|
||||
if (do_clearcmdentry)
|
||||
clearcmdentry(0);
|
||||
popstackmark(&smark);
|
||||
}
|
||||
|
||||
|
||||
+1
-2
@@ -104,7 +104,6 @@ STATIC void tryexec __P((char *, char **, char **));
|
||||
STATIC void execinterp __P((char **, char **));
|
||||
#endif
|
||||
STATIC void printentry __P((struct tblentry *, int));
|
||||
STATIC void clearcmdentry __P((int));
|
||||
STATIC struct tblentry *cmdlookup __P((char *, int));
|
||||
STATIC void delete_cmd_entry __P((void));
|
||||
|
||||
@@ -640,7 +639,7 @@ changepath(newval)
|
||||
* PATH which has changed.
|
||||
*/
|
||||
|
||||
STATIC void
|
||||
void
|
||||
clearcmdentry(firstchange)
|
||||
int firstchange;
|
||||
{
|
||||
|
||||
@@ -69,3 +69,4 @@ void addcmdentry __P((char *, struct cmdentry *));
|
||||
void defun __P((char *, union node *));
|
||||
int unsetfunc __P((char *));
|
||||
int typecmd __P((int, char **));
|
||||
void clearcmdentry __P((int));
|
||||
+5
-4
@@ -315,7 +315,7 @@ done:
|
||||
goto lose;
|
||||
*p = c;
|
||||
while ((c = *home++) != '\0') {
|
||||
if (quotes && SQSYNTAX[c] == CCTL)
|
||||
if (quotes && c >= 0 && SQSYNTAX[(int)c] == CCTL)
|
||||
STPUTC(CTLESC, expdest);
|
||||
STPUTC(c, expdest);
|
||||
}
|
||||
@@ -478,7 +478,7 @@ expbackq(cmd, quoted, flag)
|
||||
}
|
||||
lastc = *p++;
|
||||
if (lastc != '\0') {
|
||||
if (quotes && syntax[lastc] == CCTL)
|
||||
if (quotes && lastc >= 0 && syntax[(int)lastc] == CCTL)
|
||||
STPUTC(CTLESC, dest);
|
||||
STPUTC(lastc, dest);
|
||||
}
|
||||
@@ -694,7 +694,8 @@ again: /* jump here after setting a variable with ${var=text} */
|
||||
}
|
||||
else {
|
||||
while (*val) {
|
||||
if (quotes && syntax[*val] == CCTL)
|
||||
if (quotes && *val >= 0 &&
|
||||
syntax[(int)*val] == CCTL)
|
||||
STPUTC(CTLESC, expdest);
|
||||
STPUTC(*val++, expdest);
|
||||
}
|
||||
@@ -865,7 +866,7 @@ varvalue(name, quoted, allow_split)
|
||||
if (allow_split) { \
|
||||
syntax = quoted? DQSYNTAX : BASESYNTAX; \
|
||||
while (*p) { \
|
||||
if (syntax[*p] == CCTL) \
|
||||
if (*p >= 0 && syntax[(int)*p] == CCTL) \
|
||||
STPUTC(CTLESC, expdest); \
|
||||
STPUTC(*p++, expdest); \
|
||||
} \
|
||||
|
||||
+1
-2
@@ -232,7 +232,6 @@ preadbuffer()
|
||||
char *p, *q;
|
||||
int more;
|
||||
int something;
|
||||
extern EditLine *el;
|
||||
char savec;
|
||||
|
||||
if (parsefile->strpush) {
|
||||
@@ -384,7 +383,7 @@ setinputfile(fname, push)
|
||||
|
||||
INTOFF;
|
||||
if ((fd = open(fname, O_RDONLY)) < 0)
|
||||
error("Can't open %s", fname);
|
||||
error("Can't open %s: %s", fname, strerror(errno));
|
||||
if (fd < 10) {
|
||||
fd2 = copyfd(fd, 10);
|
||||
close(fd);
|
||||
|
||||
+5
-3
@@ -594,7 +594,7 @@ forkshell(jp, n, mode)
|
||||
if (pid == -1) {
|
||||
TRACE(("Fork failed, errno=%d\n", errno));
|
||||
INTON;
|
||||
error("Cannot fork");
|
||||
error("Cannot fork: %s", strerror(errno));
|
||||
}
|
||||
if (pid == 0) {
|
||||
struct job *p;
|
||||
@@ -636,7 +636,8 @@ forkshell(jp, n, mode)
|
||||
! fd0_redirected_p ()) {
|
||||
close(0);
|
||||
if (open("/dev/null", O_RDONLY) != 0)
|
||||
error("Can't open /dev/null");
|
||||
error("Can't open /dev/null: %s",
|
||||
strerror(errno));
|
||||
}
|
||||
}
|
||||
#else
|
||||
@@ -647,7 +648,8 @@ forkshell(jp, n, mode)
|
||||
! fd0_redirected_p ()) {
|
||||
close(0);
|
||||
if (open("/dev/null", O_RDONLY) != 0)
|
||||
error("Can't open /dev/null");
|
||||
error("Can't open /dev/null: %s",
|
||||
strerror(errno));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
+1
-1
@@ -300,7 +300,7 @@ readcmdfile(name)
|
||||
if ((fd = open(name, O_RDONLY)) >= 0)
|
||||
setinputfd(fd, 1);
|
||||
else
|
||||
error("Can't open %s", name);
|
||||
error("Can't open %s: %s", name, strerror(errno));
|
||||
INTON;
|
||||
cmdloop(0);
|
||||
popfile();
|
||||
|
||||
@@ -187,10 +187,6 @@ popstackmark(mark)
|
||||
|
||||
INTOFF;
|
||||
while (stackp != mark->stackp) {
|
||||
if (stackp == NULL) {
|
||||
write(2, "Oops, stackp deleted\n", 21);
|
||||
abort();
|
||||
}
|
||||
sp = stackp;
|
||||
stackp = sp->prev;
|
||||
ckfree(sp);
|
||||
|
||||
+4
-1
@@ -348,6 +348,9 @@ static const struct limits limits[] = {
|
||||
#endif
|
||||
#ifdef RLIMIT_SWAP
|
||||
{ "swap limit", "kbytes", RLIMIT_SWAP, 1024, 'w' },
|
||||
#endif
|
||||
#ifdef RLIMIT_SBSIZE
|
||||
{ "sbsize", "bytes", RLIMIT_SBSIZE, 1, 'b' },
|
||||
#endif
|
||||
{ (char *) 0, (char *)0, 0, 0, '\0' }
|
||||
};
|
||||
@@ -367,7 +370,7 @@ ulimitcmd(argc, argv)
|
||||
struct rlimit limit;
|
||||
|
||||
what = 'f';
|
||||
while ((optc = nextopt("HSatfdsmcnul")) != '\0')
|
||||
while ((optc = nextopt("HSatfdsmcnulb")) != '\0')
|
||||
switch (optc) {
|
||||
case 'H':
|
||||
how = HARD;
|
||||
|
||||
+2
-1
@@ -66,6 +66,7 @@ static const char rcsid[] =
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
|
||||
|
||||
/*
|
||||
@@ -478,7 +479,7 @@ ckfopen(file, mode)
|
||||
FILE *fp;
|
||||
|
||||
if ((fp = fopen(file, mode)) == NULL) {
|
||||
fprintf(stderr, "Can't open %s\n", file);
|
||||
fprintf(stderr, "Can't open %s: %s\n", file, strerror(errno));
|
||||
exit(2);
|
||||
}
|
||||
return fp;
|
||||
|
||||
+4
-3
@@ -56,6 +56,7 @@ static const char rcsid[] =
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#ifdef __STDC__
|
||||
#include <stdarg.h>
|
||||
#else
|
||||
@@ -123,7 +124,7 @@ main(argc, argv)
|
||||
if (argc != 3)
|
||||
error("usage: mknodes file");
|
||||
if ((infp = fopen(argv[1], "r")) == NULL)
|
||||
error("Can't open %s", argv[1]);
|
||||
error("Can't open %s: %s", argv[1], strerror(errno));
|
||||
while (readline()) {
|
||||
if (line[0] == ' ' || line[0] == '\t')
|
||||
parsefield();
|
||||
@@ -232,9 +233,9 @@ output(file)
|
||||
char *p;
|
||||
|
||||
if ((patfile = fopen(file, "r")) == NULL)
|
||||
error("Can't open %s", file);
|
||||
error("Can't open %s: %s", file, strerror(errno));
|
||||
if ((hfile = fopen("nodes.h", "w")) == NULL)
|
||||
error("Can't create nodes.h");
|
||||
error("Can't create nodes.h: %s", strerror(errno));
|
||||
if ((cfile = fopen("nodes.c", "w")) == NULL)
|
||||
error("Can't create nodes.c");
|
||||
fputs(writer, hfile);
|
||||
|
||||
+1
-1
@@ -350,7 +350,7 @@ print(name)
|
||||
*/
|
||||
|
||||
static char *macro[] = {
|
||||
"#define is_digit(c)\t((is_type+SYNBASE)[c] & ISDIGIT)",
|
||||
"#define is_digit(c)\t((c >= 0 && is_type+SYNBASE)[c] & ISDIGIT)",
|
||||
"#define is_alpha(c)\t((c) != PEOF && ((c) < CTLESC || (c) > CTLENDARI) && isalpha((unsigned char) (c)))",
|
||||
"#define is_name(c)\t((c) != PEOF && ((c) < CTLESC || (c) > CTLENDARI) && ((c) == '_' || isalpha((unsigned char) (c))))",
|
||||
"#define is_in_name(c)\t((c) != PEOF && ((c) < CTLESC || (c) > CTLENDARI) && ((c) == '_' || isalnum((unsigned char) (c))))",
|
||||
|
||||
+15
-6
@@ -868,6 +868,7 @@ readtoken1(firstc, syntax, eofmark, striptabs)
|
||||
int parenlevel; /* levels of parens in arithmetic */
|
||||
int oldstyle;
|
||||
char const *prevsyntax; /* syntax before arithmetic */
|
||||
int synentry;
|
||||
#if __GNUC__
|
||||
/* Avoid longjmp clobbering */
|
||||
(void) &out;
|
||||
@@ -879,6 +880,7 @@ readtoken1(firstc, syntax, eofmark, striptabs)
|
||||
(void) &oldstyle;
|
||||
(void) &prevsyntax;
|
||||
(void) &syntax;
|
||||
(void) &synentry;
|
||||
#endif
|
||||
|
||||
startlinno = plinno;
|
||||
@@ -906,7 +908,13 @@ readtoken1(firstc, syntax, eofmark, striptabs)
|
||||
CHECKEND(); /* set c to PEOF if at end of here document */
|
||||
for (;;) { /* until end of line or end of word */
|
||||
CHECKSTRSPACE(3, out); /* permit 3 calls to USTPUTC */
|
||||
switch(syntax[c]) {
|
||||
|
||||
if (c < 0 && c != PEOF)
|
||||
synentry = CWORD;
|
||||
else
|
||||
synentry = syntax[c];
|
||||
|
||||
switch(synentry) {
|
||||
case CNL: /* '\n' */
|
||||
if (syntax == BASESYNTAX)
|
||||
goto endword; /* exit outer loop */
|
||||
@@ -937,10 +945,11 @@ readtoken1(firstc, syntax, eofmark, striptabs)
|
||||
else
|
||||
setprompt(0);
|
||||
} else {
|
||||
if (dblquote && c != '\\' && c != '`' && c != '$'
|
||||
&& (c != '"' || eofmark != NULL))
|
||||
if (dblquote && c != '\\' &&
|
||||
c != '`' && c != '$' &&
|
||||
(c != '"' || eofmark != NULL))
|
||||
USTPUTC('\\', out);
|
||||
if (SQSYNTAX[c] == CCTL)
|
||||
if (c >= 0 && SQSYNTAX[c] == CCTL)
|
||||
USTPUTC(CTLESC, out);
|
||||
else if (eofmark == NULL)
|
||||
USTPUTC(CTLQUOTEMARK, out);
|
||||
@@ -1239,7 +1248,7 @@ badsub: synerror("Bad substitution");
|
||||
} else {
|
||||
pungetc();
|
||||
}
|
||||
if (dblquote || arinest)
|
||||
if (subtype != VSLENGTH && (dblquote || arinest))
|
||||
flags |= VSQUOTE;
|
||||
*(stackblock() + typeloc) = subtype | flags;
|
||||
if (subtype != VSNORMAL)
|
||||
@@ -1457,7 +1466,7 @@ noexpand(text)
|
||||
continue;
|
||||
if (c == CTLESC)
|
||||
p++;
|
||||
else if (BASESYNTAX[c] == CCTL)
|
||||
else if (c >= 0 && BASESYNTAX[(int)c] == CCTL)
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
|
||||
+1
-1
@@ -246,7 +246,7 @@ openhere(redir)
|
||||
int len = 0;
|
||||
|
||||
if (pipe(pip) < 0)
|
||||
error("Pipe call failed");
|
||||
error("Pipe call failed: %s", strerror(errno));
|
||||
if (redir->type == NHERE) {
|
||||
len = strlen(redir->nhere.doc->narg.text);
|
||||
if (len <= PIPESIZE) {
|
||||
|
||||
+3
-1
@@ -1746,7 +1746,7 @@ for commands and tracked aliases
|
||||
the complete pathname of the command is printed.
|
||||
.It Xo
|
||||
.Ic ulimit
|
||||
.Op Fl HSacdflmnust
|
||||
.Op Fl HSabcdflmnust
|
||||
.Op Ar limit
|
||||
.Xc
|
||||
Set or display resource limits (see
|
||||
@@ -1786,6 +1786,8 @@ The remaining options specify which resource value is to be
|
||||
displayed or modified.
|
||||
They are mutually exclusive.
|
||||
.Bl -tag -width Ds
|
||||
.It Fl b Ar sbsize
|
||||
The maximum size of socket buffer usage, in bytes.
|
||||
.It Fl c Ar coredumpsize
|
||||
The maximal size of core dump files, in 512-byte blocks.
|
||||
.It Fl d Ar datasize
|
||||
|
||||
+1
-1
@@ -420,7 +420,7 @@ opentrace() {
|
||||
scopy("./trace", s);
|
||||
#endif /* not_this_way */
|
||||
if ((tracefile = fopen(s, "a")) == NULL) {
|
||||
fprintf(stderr, "Can't open %s\n", s);
|
||||
fprintf(stderr, "Can't open %s: %s\n", s, strerror(errno));
|
||||
return;
|
||||
}
|
||||
#ifdef O_APPEND
|
||||
|
||||
+2
-1
@@ -89,7 +89,8 @@ number seconds later:
|
||||
.Dl (sleep 1800; sh command_file >& errors)&
|
||||
.Pp
|
||||
This incantation would wait a half hour before
|
||||
running the script command_file. (See the
|
||||
running the script command_file.
|
||||
(See the
|
||||
.Xr at 1
|
||||
utility.)
|
||||
.Pp
|
||||
|
||||
+4
-2
@@ -313,7 +313,8 @@ If
|
||||
is set, echo control characters as ^X. Otherwise control characters
|
||||
echo as themselves.
|
||||
.It Cm echoprt Pq Fl echoprt
|
||||
For printing terminals. If set, echo erased characters backwards within ``\\''
|
||||
For printing terminals.
|
||||
If set, echo erased characters backwards within ``\\''
|
||||
and ``/''. Otherwise, disable this feature.
|
||||
.It Cm noflsh Pq Fl noflsh
|
||||
Disable (enable) flush after
|
||||
@@ -467,7 +468,8 @@ performed by either the terminal hardware or by the remote side connected
|
||||
to a pty.
|
||||
.It Cm raw Pq Fl raw
|
||||
If set, change the modes of the terminal so that no input or output processing
|
||||
is performed. If unset, change the modes of the terminal to some reasonable
|
||||
is performed.
|
||||
If unset, change the modes of the terminal to some reasonable
|
||||
state that performs input and output processing. Note that since the
|
||||
terminal driver no longer has a single
|
||||
.Dv RAW
|
||||
|
||||
+2
-1
@@ -94,7 +94,8 @@ True if
|
||||
.Ar file
|
||||
exists and is a symbolic link.
|
||||
This operator is retained for compatibility with previous versions of
|
||||
this program. Do not rely on its existence; use
|
||||
this program.
|
||||
Do not rely on its existence; use
|
||||
.Fl L
|
||||
instead.
|
||||
.It Fl k Ar file
|
||||
|
||||
+6
-1
@@ -163,8 +163,13 @@ main(argc, argv)
|
||||
char **argv;
|
||||
{
|
||||
int res;
|
||||
char *p;
|
||||
|
||||
if (strcmp(argv[0], "[") == 0) {
|
||||
if ((p = rindex(argv[0], '/')) == NULL)
|
||||
p = argv[0];
|
||||
else
|
||||
p++;
|
||||
if (strcmp(p, "[") == 0) {
|
||||
if (strcmp(argv[--argc], "]"))
|
||||
errx(2, "missing ]");
|
||||
argv[argc] = NULL;
|
||||
|
||||
@@ -335,8 +335,8 @@ Department of Computing, Imperial College, London, UK.
|
||||
Department of Computer Science, Columbia University,
|
||||
New York, USA.
|
||||
.Pp
|
||||
.An Other authors and contributors to am-utils are listed in the
|
||||
.Nm AUTHORS
|
||||
Other authors and contributors to am-utils are listed in the
|
||||
.Pa AUTHORS
|
||||
file distributed with am-utils.
|
||||
.Sh HISTORY
|
||||
The
|
||||
|
||||
@@ -678,8 +678,8 @@ Department of Computer Science, Columbia University, New York, USA.
|
||||
.An Jan-Simon Pendry Aq [email protected] ,
|
||||
Department of Computing, Imperial College, London, UK.
|
||||
.Pp
|
||||
.An Other Authors and contributers to am-utils are listed in the
|
||||
.Nm AUTHORS
|
||||
Other authors and contributers to am-utils are listed in the
|
||||
.Pa AUTHORS
|
||||
file distributed with am-utils.
|
||||
.Sh HISTORY
|
||||
The
|
||||
|
||||
@@ -463,7 +463,13 @@ check_pos:
|
||||
break;
|
||||
|
||||
case '0':
|
||||
zero_flag = TRUE;
|
||||
/*
|
||||
* Only turn on zero_flag if we haven't seen
|
||||
* the field width or precision yet. Otherwise,
|
||||
* screws up floating point formatting.
|
||||
*/
|
||||
if (cur == & fw)
|
||||
zero_flag = TRUE;
|
||||
if (lj)
|
||||
goto retry;
|
||||
/* FALL through */
|
||||
@@ -2006,7 +2012,7 @@ NODE *tree;
|
||||
free_temp(tmp);
|
||||
|
||||
if (do_lint) {
|
||||
if (uval < 0)
|
||||
if (d < 0)
|
||||
warning("compl(%lf): negative value will give strange results", d);
|
||||
if (double_to_int(d) != d)
|
||||
warning("compl(%lf): fractional value will be truncated", d);
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
/* Storage allocation interface for bison,
|
||||
Copyright (C) 1984, 1989 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of Bison, the GNU Compiler Compiler.
|
||||
|
||||
Bison 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.
|
||||
|
||||
Bison 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 Bison; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
|
||||
#define NEW(t) ((t *) xmalloc((unsigned) sizeof(t)))
|
||||
#define NEW2(n, t) ((t *) xmalloc((unsigned) ((n) * sizeof(t))))
|
||||
|
||||
#ifdef __STDC__
|
||||
#define FREE(x) (x ? (void) free((char *) (x)) : (void)0)
|
||||
#else
|
||||
#define FREE(x) ((x) != 0 && (free ((char *) (x)), 0))
|
||||
#endif
|
||||
|
||||
extern char *xmalloc();
|
||||
extern char *xrealloc();
|
||||
@@ -1 +0,0 @@
|
||||
char *version_string = "GNU Bison version 1.25\n";
|
||||
@@ -1,106 +0,0 @@
|
||||
1999-07-03 Assar Westerlund <[email protected]>
|
||||
|
||||
* parse.y (statement): use asprintf
|
||||
|
||||
1999-06-13 Assar Westerlund <[email protected]>
|
||||
|
||||
* Makefile.in: make it solaris make vpath-safe
|
||||
|
||||
Thu Apr 1 11:13:53 1999 Johan Danielsson <[email protected]>
|
||||
|
||||
* compile_et.c: use getargs
|
||||
|
||||
Sat Mar 20 00:16:30 1999 Assar Westerlund <[email protected]>
|
||||
|
||||
* compile_et.c: static-ize
|
||||
|
||||
Thu Mar 18 11:22:13 1999 Johan Danielsson <[email protected]>
|
||||
|
||||
* Makefile.am: include Makefile.am.common
|
||||
|
||||
Tue Mar 16 22:30:05 1999 Assar Westerlund <[email protected]>
|
||||
|
||||
* parse.y: use YYACCEPT instead of return
|
||||
|
||||
Sat Mar 13 22:22:56 1999 Assar Westerlund <[email protected]>
|
||||
|
||||
* compile_et.c (generate_h): cast when calling is* to get rid of a
|
||||
warning
|
||||
|
||||
Thu Mar 11 15:00:51 1999 Johan Danielsson <[email protected]>
|
||||
|
||||
* parse.y: prototype for error_message
|
||||
|
||||
Sun Nov 22 10:39:02 1998 Assar Westerlund <[email protected]>
|
||||
|
||||
* compile_et.h: include ctype and roken
|
||||
|
||||
* compile_et.c: include err.h
|
||||
(generate_h): remove unused variable
|
||||
|
||||
* Makefile.in (WFLAGS): set
|
||||
|
||||
Fri Nov 20 06:58:59 1998 Assar Westerlund <[email protected]>
|
||||
|
||||
* lex.l: undef ECHO to work around AIX lex bug
|
||||
|
||||
Sun Sep 27 02:23:59 1998 Johan Danielsson <[email protected]>
|
||||
|
||||
* com_err.c (error_message): try to pass code to strerror, to see
|
||||
if it might be an errno code (this if broken, but some MIT code
|
||||
seems to expect this behaviour)
|
||||
|
||||
Sat Sep 26 17:42:39 1998 Johan Danielsson <[email protected]>
|
||||
|
||||
* compile_et.c: <foo_err.h> -> "foo_err.h"
|
||||
|
||||
Tue Jun 30 17:17:36 1998 Assar Westerlund <[email protected]>
|
||||
|
||||
* Makefile.in: add str{cpy,cat}_truncate
|
||||
|
||||
Mon May 25 05:24:39 1998 Assar Westerlund <[email protected]>
|
||||
|
||||
* Makefile.in (clean): try to remove shared library debris
|
||||
|
||||
Sun Apr 19 09:50:17 1998 Assar Westerlund <[email protected]>
|
||||
|
||||
* Makefile.in: add symlink magic for linux
|
||||
|
||||
Sun Apr 5 09:22:11 1998 Assar Westerlund <[email protected]>
|
||||
|
||||
* parse.y: define alloca to malloc in case we're using bison but
|
||||
don't have alloca
|
||||
|
||||
Tue Mar 24 05:13:01 1998 Assar Westerlund <[email protected]>
|
||||
|
||||
* Makefile.in: link with snprintf (From Derrick J Brashear
|
||||
<[email protected]>)
|
||||
|
||||
Fri Feb 27 05:01:42 1998 Assar Westerlund <[email protected]>
|
||||
|
||||
* parse.y: initialize ec->next
|
||||
|
||||
Thu Feb 26 02:22:25 1998 Assar Westerlund <[email protected]>
|
||||
|
||||
* Makefile.am: @LEXLIB@
|
||||
|
||||
Sat Feb 21 15:18:54 1998 assar westerlund <[email protected]>
|
||||
|
||||
* Makefile.in: set YACC and LEX
|
||||
|
||||
Tue Feb 17 22:20:27 1998 Bjoern Groenvall <[email protected]>
|
||||
|
||||
* com_right.h: Change typedefs so that one may mix MIT compile_et
|
||||
generated code with krb4 dito.
|
||||
|
||||
Tue Feb 17 16:30:55 1998 Johan Danielsson <[email protected]>
|
||||
|
||||
* compile_et.c (generate): Always return a value.
|
||||
|
||||
* parse.y: Files don't have to end with `end'.
|
||||
|
||||
Mon Feb 16 16:09:20 1998 Johan Danielsson <[email protected]>
|
||||
|
||||
* lex.l (getstring): Replace getc() with input().
|
||||
|
||||
* Makefile.am: Fixes for new compile_et.
|
||||
@@ -1,24 +0,0 @@
|
||||
# $Id: Makefile.am,v 1.23 1999/04/09 18:26:55 assar Exp $
|
||||
|
||||
include $(top_srcdir)/Makefile.am.common
|
||||
|
||||
YFLAGS = -d
|
||||
|
||||
lib_LTLIBRARIES = libcom_err.la
|
||||
libcom_err_la_LDFLAGS = -version-info 1:0:0
|
||||
|
||||
bin_PROGRAMS = compile_et
|
||||
|
||||
include_HEADERS = com_err.h com_right.h
|
||||
|
||||
compile_et_SOURCES = compile_et.c compile_et.h parse.y lex.l
|
||||
|
||||
libcom_err_la_SOURCES = error.c com_err.c roken_rename.h
|
||||
|
||||
CLEANFILES = lex.c parse.c parse.h
|
||||
|
||||
$(compile_et_OBJECTS): parse.h
|
||||
|
||||
compile_et_LDADD = \
|
||||
$(LIB_roken) \
|
||||
$(LEXLIB)
|
||||
@@ -1,710 +0,0 @@
|
||||
# Makefile.in generated automatically by automake 1.4 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 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.
|
||||
|
||||
# $Id: Makefile.am,v 1.23 1999/04/09 18:26:55 assar Exp $
|
||||
|
||||
|
||||
# $Id: Makefile.am.common,v 1.3 1999/04/01 14:58:43 joda Exp $
|
||||
|
||||
|
||||
# $Id: Makefile.am.common,v 1.12 1999/07/28 00:54:29 assar Exp $
|
||||
|
||||
|
||||
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
|
||||
|
||||
DESTDIR =
|
||||
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
|
||||
top_builddir = ../..
|
||||
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
transform = @program_transform_name@
|
||||
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
host_alias = @host_alias@
|
||||
host_triplet = @host@
|
||||
AFS_EXTRA_LD = @AFS_EXTRA_LD@
|
||||
AIX_EXTRA_KAFS = @AIX_EXTRA_KAFS@
|
||||
AWK = @AWK@
|
||||
CANONICAL_HOST = @CANONICAL_HOST@
|
||||
CATMAN = @CATMAN@
|
||||
CATMANEXT = @CATMANEXT@
|
||||
CC = @CC@
|
||||
DBLIB = @DBLIB@
|
||||
EXEEXT = @EXEEXT@
|
||||
EXTRA_LIB45 = @EXTRA_LIB45@
|
||||
GROFF = @GROFF@
|
||||
INCLUDE_ = @INCLUDE_@
|
||||
LD = @LD@
|
||||
LEX = @LEX@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIB_ = @LIB_@
|
||||
LIB_AUTH_SUBDIRS = @LIB_AUTH_SUBDIRS@
|
||||
LIB_kdb = @LIB_kdb@
|
||||
LIB_otp = @LIB_otp@
|
||||
LIB_roken = @LIB_roken@
|
||||
LIB_security = @LIB_security@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MAKE_X_PROGS_BIN_PROGS = @MAKE_X_PROGS_BIN_PROGS@
|
||||
MAKE_X_PROGS_BIN_SCRPTS = @MAKE_X_PROGS_BIN_SCRPTS@
|
||||
MAKE_X_PROGS_LIBEXEC_PROGS = @MAKE_X_PROGS_LIBEXEC_PROGS@
|
||||
NEED_WRITEAUTH_FALSE = @NEED_WRITEAUTH_FALSE@
|
||||
NEED_WRITEAUTH_TRUE = @NEED_WRITEAUTH_TRUE@
|
||||
NM = @NM@
|
||||
NROFF = @NROFF@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
RANLIB = @RANLIB@
|
||||
VERSION = @VERSION@
|
||||
VOID_RETSIGTYPE = @VOID_RETSIGTYPE@
|
||||
WFLAGS = @WFLAGS@
|
||||
WFLAGS_NOIMPLICITINT = @WFLAGS_NOIMPLICITINT@
|
||||
WFLAGS_NOUNUSED = @WFLAGS_NOUNUSED@
|
||||
YACC = @YACC@
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign no-dependencies
|
||||
|
||||
SUFFIXES = .et .h .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .x
|
||||
|
||||
INCLUDES = -I$(top_builddir)/include
|
||||
|
||||
AM_CFLAGS = $(WFLAGS)
|
||||
|
||||
COMPILE_ET = $(top_builddir)/lib/com_err/compile_et
|
||||
|
||||
buildinclude = $(top_builddir)/include
|
||||
|
||||
LIB_XauReadAuth = @LIB_XauReadAuth@
|
||||
LIB_crypt = @LIB_crypt@
|
||||
LIB_dbm_firstkey = @LIB_dbm_firstkey@
|
||||
LIB_dbopen = @LIB_dbopen@
|
||||
LIB_dlopen = @LIB_dlopen@
|
||||
LIB_dn_expand = @LIB_dn_expand@
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_getattr = @LIB_getattr@
|
||||
LIB_gethostbyname = @LIB_gethostbyname@
|
||||
LIB_getpwent_r = @LIB_getpwent_r@
|
||||
LIB_getpwnam_r = @LIB_getpwnam_r@
|
||||
LIB_getsockopt = @LIB_getsockopt@
|
||||
LIB_logout = @LIB_logout@
|
||||
LIB_logwtmp = @LIB_logwtmp@
|
||||
LIB_odm_initialize = @LIB_odm_initialize@
|
||||
LIB_readline = @LIB_readline@
|
||||
LIB_res_search = @LIB_res_search@
|
||||
LIB_setpcred = @LIB_setpcred@
|
||||
LIB_setsockopt = @LIB_setsockopt@
|
||||
LIB_socket = @LIB_socket@
|
||||
LIB_syslog = @LIB_syslog@
|
||||
LIB_tgetent = @LIB_tgetent@
|
||||
|
||||
HESIODLIB = @HESIODLIB@
|
||||
HESIODINCLUDE = @HESIODINCLUDE@
|
||||
INCLUDE_hesiod = @INCLUDE_hesiod@
|
||||
LIB_hesiod = @LIB_hesiod@
|
||||
|
||||
INCLUDE_krb4 = @INCLUDE_krb4@
|
||||
LIB_krb4 = @LIB_krb4@
|
||||
|
||||
INCLUDE_readline = @INCLUDE_readline@
|
||||
|
||||
LEXLIB = @LEXLIB@
|
||||
|
||||
cat1dir = $(mandir)/cat1
|
||||
cat3dir = $(mandir)/cat3
|
||||
cat5dir = $(mandir)/cat5
|
||||
cat8dir = $(mandir)/cat8
|
||||
|
||||
MANRX = \(.*\)\.\([0-9]\)
|
||||
CATSUFFIX = @CATSUFFIX@
|
||||
|
||||
NROFF_MAN = groff -mandoc -Tascii
|
||||
|
||||
@KRB4_TRUE@LIB_kafs = $(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS)
|
||||
|
||||
@KRB5_TRUE@LIB_krb5 = $(top_builddir)/lib/krb5/libkrb5.la $(top_builddir)/lib/asn1/libasn1.la
|
||||
@KRB5_TRUE@LIB_gssapi = $(top_builddir)/lib/gssapi/libgssapi.la
|
||||
|
||||
CHECK_LOCAL = $(PROGRAMS)
|
||||
|
||||
YFLAGS = -d
|
||||
|
||||
lib_LTLIBRARIES = libcom_err.la
|
||||
libcom_err_la_LDFLAGS = -version-info 1:0:0
|
||||
|
||||
bin_PROGRAMS = compile_et
|
||||
|
||||
include_HEADERS = com_err.h com_right.h
|
||||
|
||||
compile_et_SOURCES = compile_et.c compile_et.h parse.y lex.l
|
||||
|
||||
libcom_err_la_SOURCES = error.c com_err.c roken_rename.h
|
||||
|
||||
CLEANFILES = lex.c parse.c parse.h
|
||||
|
||||
compile_et_LDADD = $(LIB_roken) $(LEXLIB)
|
||||
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = ../../include/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
LTLIBRARIES = $(lib_LTLIBRARIES)
|
||||
|
||||
|
||||
DEFS = @DEFS@ -I. -I$(srcdir) -I../../include
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBS = @LIBS@
|
||||
X_CFLAGS = @X_CFLAGS@
|
||||
X_LIBS = @X_LIBS@
|
||||
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||
X_PRE_LIBS = @X_PRE_LIBS@
|
||||
libcom_err_la_LIBADD =
|
||||
libcom_err_la_OBJECTS = error.lo com_err.lo
|
||||
bin_PROGRAMS = compile_et$(EXEEXT)
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
|
||||
compile_et_OBJECTS = compile_et.$(OBJEXT) parse.$(OBJEXT) lex.$(OBJEXT)
|
||||
compile_et_DEPENDENCIES =
|
||||
compile_et_LDFLAGS =
|
||||
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
|
||||
CFLAGS = @CFLAGS@
|
||||
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
|
||||
HEADERS = $(include_HEADERS)
|
||||
|
||||
DIST_COMMON = ChangeLog Makefile.am Makefile.in lex.c parse.c
|
||||
|
||||
|
||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||
|
||||
TAR = tar
|
||||
GZIP_ENV = --best
|
||||
SOURCES = $(libcom_err_la_SOURCES) $(compile_et_SOURCES)
|
||||
OBJECTS = $(libcom_err_la_OBJECTS) $(compile_et_OBJECTS)
|
||||
|
||||
all: all-redirect
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .1 .3 .5 .8 .S .c .cat1 .cat3 .cat5 .cat8 .et .h .l .lo .o .obj .s .x .y
|
||||
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/Makefile.am.common $(top_srcdir)/cf/Makefile.am.common
|
||||
cd $(top_srcdir) && $(AUTOMAKE) --foreign lib/com_err/Makefile
|
||||
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
cd $(top_builddir) \
|
||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||
|
||||
|
||||
mostlyclean-libLTLIBRARIES:
|
||||
|
||||
clean-libLTLIBRARIES:
|
||||
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
|
||||
|
||||
distclean-libLTLIBRARIES:
|
||||
|
||||
maintainer-clean-libLTLIBRARIES:
|
||||
|
||||
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(libdir)
|
||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
echo "$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \
|
||||
$(LIBTOOL) --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-libLTLIBRARIES:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
||||
$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
|
||||
done
|
||||
|
||||
.c.o:
|
||||
$(COMPILE) -c $<
|
||||
|
||||
# FIXME: We should only use cygpath when building on Windows,
|
||||
# and only if it is available.
|
||||
.c.obj:
|
||||
$(COMPILE) -c `cygpath -w $<`
|
||||
|
||||
.s.o:
|
||||
$(COMPILE) -c $<
|
||||
|
||||
.S.o:
|
||||
$(COMPILE) -c $<
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.o core *.core
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
clean-compile:
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
maintainer-clean-compile:
|
||||
|
||||
.c.lo:
|
||||
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
|
||||
|
||||
.s.lo:
|
||||
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
|
||||
|
||||
.S.lo:
|
||||
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
|
||||
maintainer-clean-libtool:
|
||||
|
||||
libcom_err.la: $(libcom_err_la_OBJECTS) $(libcom_err_la_DEPENDENCIES)
|
||||
$(LINK) -rpath $(libdir) $(libcom_err_la_LDFLAGS) $(libcom_err_la_OBJECTS) $(libcom_err_la_LIBADD) $(LIBS)
|
||||
|
||||
mostlyclean-binPROGRAMS:
|
||||
|
||||
clean-binPROGRAMS:
|
||||
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
|
||||
|
||||
distclean-binPROGRAMS:
|
||||
|
||||
maintainer-clean-binPROGRAMS:
|
||||
|
||||
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(bindir)
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
|
||||
$(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-binPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
|
||||
done
|
||||
|
||||
compile_et$(EXEEXT): $(compile_et_OBJECTS) $(compile_et_DEPENDENCIES)
|
||||
@rm -f compile_et$(EXEEXT)
|
||||
$(LINK) $(compile_et_LDFLAGS) $(compile_et_OBJECTS) $(compile_et_LDADD) $(LIBS)
|
||||
.l.c:
|
||||
$(LEX) $(AM_LFLAGS) $(LFLAGS) $< && mv $(LEX_OUTPUT_ROOT).c $@
|
||||
.y.c:
|
||||
$(YACC) $(AM_YFLAGS) $(YFLAGS) $< && mv y.tab.c $*.c
|
||||
if test -f y.tab.h; then \
|
||||
if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \
|
||||
else :; fi
|
||||
parse.h: parse.c
|
||||
|
||||
|
||||
install-includeHEADERS: $(include_HEADERS)
|
||||
@$(NORMAL_INSTALL)
|
||||
$(mkinstalldirs) $(DESTDIR)$(includedir)
|
||||
@list='$(include_HEADERS)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
|
||||
echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \
|
||||
$(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \
|
||||
done
|
||||
|
||||
uninstall-includeHEADERS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
list='$(include_HEADERS)'; for p in $$list; do \
|
||||
rm -f $(DESTDIR)$(includedir)/$$p; \
|
||||
done
|
||||
|
||||
tags: TAGS
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP)
|
||||
list='$(SOURCES) $(HEADERS)'; \
|
||||
unique=`for i in $$list; do echo $$i; done | \
|
||||
awk ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
here=`pwd` && cd $(srcdir) \
|
||||
&& mkid -f$$here/ID $$unique $(LISP)
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS)'; \
|
||||
unique=`for i in $$list; do echo $$i; done | \
|
||||
awk ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
|
||||
|| (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
|
||||
|
||||
mostlyclean-tags:
|
||||
|
||||
clean-tags:
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID
|
||||
|
||||
maintainer-clean-tags:
|
||||
|
||||
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
||||
|
||||
subdir = lib/com_err
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@for file in $(DISTFILES); do \
|
||||
d=$(srcdir); \
|
||||
if test -d $$d/$$file; then \
|
||||
cp -pr $$/$$file $(distdir)/$$file; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file || :; \
|
||||
fi; \
|
||||
done
|
||||
$(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
|
||||
info-am:
|
||||
info: info-am
|
||||
dvi-am:
|
||||
dvi: dvi-am
|
||||
check-am: all-am
|
||||
$(MAKE) $(AM_MAKEFLAGS) check-local
|
||||
check: check-am
|
||||
installcheck-am:
|
||||
installcheck: installcheck-am
|
||||
install-exec-am: install-libLTLIBRARIES install-binPROGRAMS
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
|
||||
install-exec: install-exec-am
|
||||
|
||||
install-data-am: install-includeHEADERS install-data-local
|
||||
install-data: install-data-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
install: install-am
|
||||
uninstall-am: uninstall-libLTLIBRARIES uninstall-binPROGRAMS \
|
||||
uninstall-includeHEADERS
|
||||
uninstall: uninstall-am
|
||||
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) all-local
|
||||
all-redirect: all-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
|
||||
installdirs:
|
||||
$(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(bindir) \
|
||||
$(DESTDIR)$(includedir)
|
||||
|
||||
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
|
||||
distclean-generic:
|
||||
-rm -f Makefile $(CONFIG_CLEAN_FILES)
|
||||
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
|
||||
|
||||
maintainer-clean-generic:
|
||||
-test -z "lexlparsehparsec" || rm -f lexl parseh parsec
|
||||
mostlyclean-am: mostlyclean-libLTLIBRARIES mostlyclean-compile \
|
||||
mostlyclean-libtool mostlyclean-binPROGRAMS \
|
||||
mostlyclean-tags mostlyclean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
clean-am: clean-libLTLIBRARIES clean-compile clean-libtool \
|
||||
clean-binPROGRAMS clean-tags clean-generic \
|
||||
mostlyclean-am
|
||||
|
||||
clean: clean-am
|
||||
|
||||
distclean-am: distclean-libLTLIBRARIES distclean-compile \
|
||||
distclean-libtool distclean-binPROGRAMS distclean-tags \
|
||||
distclean-generic clean-am
|
||||
-rm -f libtool
|
||||
|
||||
distclean: distclean-am
|
||||
|
||||
maintainer-clean-am: maintainer-clean-libLTLIBRARIES \
|
||||
maintainer-clean-compile maintainer-clean-libtool \
|
||||
maintainer-clean-binPROGRAMS maintainer-clean-tags \
|
||||
maintainer-clean-generic distclean-am
|
||||
@echo "This command is intended for maintainers to use;"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
|
||||
.PHONY: mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
|
||||
clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \
|
||||
uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \
|
||||
distclean-compile clean-compile maintainer-clean-compile \
|
||||
mostlyclean-libtool distclean-libtool clean-libtool \
|
||||
maintainer-clean-libtool mostlyclean-binPROGRAMS distclean-binPROGRAMS \
|
||||
clean-binPROGRAMS maintainer-clean-binPROGRAMS uninstall-binPROGRAMS \
|
||||
install-binPROGRAMS uninstall-includeHEADERS install-includeHEADERS \
|
||||
tags mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
|
||||
distdir info-am info dvi-am dvi check-local check check-am \
|
||||
installcheck-am installcheck install-exec-am install-exec \
|
||||
install-data-local install-data-am install-data install-am install \
|
||||
uninstall-am uninstall all-local all-redirect all-am all installdirs \
|
||||
mostlyclean-generic distclean-generic clean-generic \
|
||||
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
||||
|
||||
|
||||
install-suid-programs:
|
||||
@foo='$(bin_SUIDS)'; \
|
||||
for file in $$foo; do \
|
||||
x=$(DESTDIR)$(bindir)/$$file; \
|
||||
if chown 0:0 $$x && chmod u+s $$x; then :; else \
|
||||
chmod 0 $$x; fi; done
|
||||
|
||||
install-exec-hook: install-suid-programs
|
||||
|
||||
install-build-headers:: $(include_HEADERS) $(build_HEADERZ)
|
||||
@foo='$(include_HEADERS) $(build_HEADERZ)'; \
|
||||
for f in $$foo; do \
|
||||
f=`basename $$f`; \
|
||||
if test -f "$(srcdir)/$$f"; then file="$(srcdir)/$$f"; \
|
||||
else file="$$f"; fi; \
|
||||
if cmp -s $$file $(buildinclude)/$$f 2> /dev/null ; then \
|
||||
: ; else \
|
||||
echo " $(INSTALL_DATA) $$file $(buildinclude)/$$f"; \
|
||||
$(INSTALL_DATA) $$file $(buildinclude)/$$f; \
|
||||
fi ; \
|
||||
done
|
||||
|
||||
all-local: install-build-headers
|
||||
#NROFF_MAN = nroff -man
|
||||
.1.cat1:
|
||||
$(NROFF_MAN) $< > $@
|
||||
.3.cat3:
|
||||
$(NROFF_MAN) $< > $@
|
||||
.5.cat5:
|
||||
$(NROFF_MAN) $< > $@
|
||||
.8.cat8:
|
||||
$(NROFF_MAN) $< > $@
|
||||
|
||||
dist-cat1-mans:
|
||||
@foo='$(man1_MANS)'; \
|
||||
bar='$(man_MANS)'; \
|
||||
for i in $$bar; do \
|
||||
case $$i in \
|
||||
*.1) foo="$$foo $$i";; \
|
||||
esac; done ;\
|
||||
for i in $$foo; do \
|
||||
x=`echo $$i | sed 's/\.[^.]*$$/.cat1/'`; \
|
||||
echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
|
||||
$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
|
||||
done
|
||||
|
||||
dist-cat3-mans:
|
||||
@foo='$(man3_MANS)'; \
|
||||
bar='$(man_MANS)'; \
|
||||
for i in $$bar; do \
|
||||
case $$i in \
|
||||
*.3) foo="$$foo $$i";; \
|
||||
esac; done ;\
|
||||
for i in $$foo; do \
|
||||
x=`echo $$i | sed 's/\.[^.]*$$/.cat3/'`; \
|
||||
echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
|
||||
$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
|
||||
done
|
||||
|
||||
dist-cat5-mans:
|
||||
@foo='$(man5_MANS)'; \
|
||||
bar='$(man_MANS)'; \
|
||||
for i in $$bar; do \
|
||||
case $$i in \
|
||||
*.5) foo="$$foo $$i";; \
|
||||
esac; done ;\
|
||||
for i in $$foo; do \
|
||||
x=`echo $$i | sed 's/\.[^.]*$$/.cat5/'`; \
|
||||
echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
|
||||
$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
|
||||
done
|
||||
|
||||
dist-cat8-mans:
|
||||
@foo='$(man8_MANS)'; \
|
||||
bar='$(man_MANS)'; \
|
||||
for i in $$bar; do \
|
||||
case $$i in \
|
||||
*.8) foo="$$foo $$i";; \
|
||||
esac; done ;\
|
||||
for i in $$foo; do \
|
||||
x=`echo $$i | sed 's/\.[^.]*$$/.cat8/'`; \
|
||||
echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \
|
||||
$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \
|
||||
done
|
||||
|
||||
dist-hook: dist-cat1-mans dist-cat3-mans dist-cat5-mans dist-cat8-mans
|
||||
|
||||
install-cat1-mans:
|
||||
@ext=1;\
|
||||
foo='$(man1_MANS)'; \
|
||||
bar='$(man_MANS)'; \
|
||||
for i in $$bar; do \
|
||||
case $$i in \
|
||||
*.1) foo="$$foo $$i";; \
|
||||
esac; done; \
|
||||
if test "$$foo"; then \
|
||||
$(mkinstalldirs) $(DESTDIR)$(cat1dir); \
|
||||
for x in $$foo; do \
|
||||
f=`echo $$x | sed 's/\.[^.]*$$/.cat1/'`; \
|
||||
if test -f "$(srcdir)/$$f"; then \
|
||||
b=`echo $$x | sed 's!$(MANRX)!\1!'`; \
|
||||
echo "$(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(cat1dir)/$$b.$(CATSUFFIX)";\
|
||||
$(INSTALL_DATA) $(srcdir)/$$g $(DESTDIR)$(cat1dir)/$$b.$(CATSUFFIX);\
|
||||
fi; \
|
||||
done ;\
|
||||
fi
|
||||
|
||||
install-cat3-mans:
|
||||
@ext=3;\
|
||||
foo='$(man3_MANS)'; \
|
||||
bar='$(man_MANS)'; \
|
||||
for i in $$bar; do \
|
||||
case $$i in \
|
||||
*.3) foo="$$foo $$i";; \
|
||||
esac; done; \
|
||||
if test "$$foo"; then \
|
||||
$(mkinstalldirs) $(DESTDIR)$(cat3dir); \
|
||||
for x in $$foo; do \
|
||||
f=`echo $$x | sed 's/\.[^.]*$$/.cat3/'`; \
|
||||
if test -f "$(srcdir)/$$f"; then \
|
||||
b=`echo $$x | sed 's!$(MANRX)!\1!'`; \
|
||||
echo "$(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(cat3dir)/$$b.$(CATSUFFIX)";\
|
||||
$(INSTALL_DATA) $(srcdir)/$$g $(DESTDIR)$(cat3dir)/$$b.$(CATSUFFIX);\
|
||||
fi; \
|
||||
done ;\
|
||||
fi
|
||||
|
||||
install-cat5-mans:
|
||||
@ext=5;\
|
||||
foo='$(man5_MANS)'; \
|
||||
bar='$(man_MANS)'; \
|
||||
for i in $$bar; do \
|
||||
case $$i in \
|
||||
*.5) foo="$$foo $$i";; \
|
||||
esac; done; \
|
||||
if test "$$foo"; then \
|
||||
$(mkinstalldirs) $(DESTDIR)$(cat5dir); \
|
||||
for x in $$foo; do \
|
||||
f=`echo $$x | sed 's/\.[^.]*$$/.cat5/'`; \
|
||||
if test -f "$(srcdir)/$$f"; then \
|
||||
b=`echo $$x | sed 's!$(MANRX)!\1!'`; \
|
||||
echo "$(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(cat5dir)/$$b.$(CATSUFFIX)";\
|
||||
$(INSTALL_DATA) $(srcdir)/$$g $(DESTDIR)$(cat5dir)/$$b.$(CATSUFFIX);\
|
||||
fi; \
|
||||
done ;\
|
||||
fi
|
||||
|
||||
install-cat8-mans:
|
||||
@ext=8;\
|
||||
foo='$(man8_MANS)'; \
|
||||
bar='$(man_MANS)'; \
|
||||
for i in $$bar; do \
|
||||
case $$i in \
|
||||
*.8) foo="$$foo $$i";; \
|
||||
esac; done; \
|
||||
if test "$$foo"; then \
|
||||
$(mkinstalldirs) $(DESTDIR)$(cat8dir); \
|
||||
for x in $$foo; do \
|
||||
f=`echo $$x | sed 's/\.[^.]*$$/.cat8/'`; \
|
||||
if test -f "$(srcdir)/$$f"; then \
|
||||
b=`echo $$x | sed 's!$(MANRX)!\1!'`; \
|
||||
echo "$(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(cat8dir)/$$b.$(CATSUFFIX)";\
|
||||
$(INSTALL_DATA) $(srcdir)/$$g $(DESTDIR)$(cat8dir)/$$b.$(CATSUFFIX);\
|
||||
fi; \
|
||||
done ;\
|
||||
fi
|
||||
|
||||
install-cat-mans: install-cat1-mans install-cat3-mans install-cat5-mans install-cat8-mans
|
||||
|
||||
install-data-local: install-cat-mans
|
||||
|
||||
.et.h:
|
||||
$(COMPILE_ET) $<
|
||||
.et.c:
|
||||
$(COMPILE_ET) $<
|
||||
|
||||
.x.c:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
|
||||
check-local::
|
||||
@foo='$(CHECK_LOCAL)'; \
|
||||
if test "$$foo"; then \
|
||||
failed=0; all=0; \
|
||||
for i in $$foo; do \
|
||||
all=`expr $$all + 1`; \
|
||||
if ./$$i --version > /dev/null 2>&1; then \
|
||||
echo "PASS: $$i"; \
|
||||
else \
|
||||
echo "FAIL: $$i"; \
|
||||
failed=`expr $$failed + 1`; \
|
||||
fi; \
|
||||
done; \
|
||||
if test "$$failed" -eq 0; then \
|
||||
banner="All $$all tests passed"; \
|
||||
else \
|
||||
banner="$$failed of $$all tests failed"; \
|
||||
fi; \
|
||||
dashes=`echo "$$banner" | sed s/./=/g`; \
|
||||
echo "$$dashes"; \
|
||||
echo "$$banner"; \
|
||||
echo "$$dashes"; \
|
||||
test "$$failed" -eq 0; \
|
||||
fi
|
||||
|
||||
$(compile_et_OBJECTS): parse.h
|
||||
|
||||
# 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:
|
||||
@@ -1,96 +0,0 @@
|
||||
.\" Copyright (c) 1988 Massachusetts Institute of Technology,
|
||||
.\" Student Information Processing Board. All rights reserved.
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.TH COM_ERR 3 "22 Nov 1988" SIPB
|
||||
.SH NAME
|
||||
com_err \- common error display routine
|
||||
.SH SYNOPSIS
|
||||
.nf
|
||||
#include <com_err.h>
|
||||
.PP
|
||||
void com_err (whoami, code, format, ...);
|
||||
const char *whoami;
|
||||
long code;
|
||||
const char *format;
|
||||
.PP
|
||||
proc = set_com_err_hook (proc);
|
||||
.fi
|
||||
void (*
|
||||
.I proc
|
||||
) (const char *, long, const char *, va_list);
|
||||
.nf
|
||||
.PP
|
||||
proc = reset_com_err_hook ();
|
||||
.PP
|
||||
void initialize_XXXX_error_table ();
|
||||
.fi
|
||||
.SH DESCRIPTION
|
||||
.I Com_err
|
||||
displays an error message on the standard error stream
|
||||
.I stderr
|
||||
(see
|
||||
.IR stdio (3S))
|
||||
composed of the
|
||||
.I whoami
|
||||
string, which should specify the program name or some subportion of
|
||||
a program, followed by an error message generated from the
|
||||
.I code
|
||||
value (derived from
|
||||
.IR compile_et (1)),
|
||||
and a string produced using the
|
||||
.I format
|
||||
string and any following arguments, in the same style as
|
||||
.IR fprintf (3).
|
||||
|
||||
The behavior of
|
||||
.I com_err
|
||||
can be modified using
|
||||
.I set_com_err_hook;
|
||||
this defines a procedure which is called with the arguments passed to
|
||||
.I com_err,
|
||||
instead of the default internal procedure which sends the formatted
|
||||
text to error output. Thus the error messages from a program can all
|
||||
easily be diverted to another form of diagnostic logging, such as
|
||||
.IR syslog (3).
|
||||
.I Reset_com_err_hook
|
||||
may be used to restore the behavior of
|
||||
.I com_err
|
||||
to its default form. Both procedures return the previous ``hook''
|
||||
value. These ``hook'' procedures must have the declaration given for
|
||||
.I proc
|
||||
above in the synopsis.
|
||||
|
||||
The
|
||||
.I initialize_XXXX_error_table
|
||||
routine is generated mechanically by
|
||||
.IR compile_et (1)
|
||||
from a source file containing names and associated strings. Each
|
||||
table has a name of up to four characters, which is used in place of
|
||||
the
|
||||
.B XXXX
|
||||
in the name of the routine. These routines should be called before
|
||||
any of the corresponding error codes are used, so that the
|
||||
.I com_err
|
||||
library will recognize error codes from these tables when they are
|
||||
used.
|
||||
|
||||
The
|
||||
.B com_err.h
|
||||
header file should be included in any source file that uses routines
|
||||
from the
|
||||
.I com_err
|
||||
library; executable files must be linked using
|
||||
.I ``-lcom_err''
|
||||
in order to cause the
|
||||
.I com_err
|
||||
library to be included.
|
||||
|
||||
.\" .IR for manual entries
|
||||
.\" .PP for paragraph breaks
|
||||
|
||||
.SH "SEE ALSO"
|
||||
compile_et (1), syslog (3).
|
||||
|
||||
Ken Raeburn, "A Common Error Description Library for UNIX".
|
||||
@@ -1,155 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
RCSID("$Id: com_err.c,v 1.13 1999/03/12 15:17:08 bg Exp $");
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "com_err.h"
|
||||
|
||||
struct et_list *_et_list;
|
||||
|
||||
|
||||
const char *
|
||||
error_message (long code)
|
||||
{
|
||||
static char msg[128];
|
||||
const char *p = com_right(_et_list, code);
|
||||
if (p == NULL)
|
||||
p = strerror(code);
|
||||
if (p != NULL && *p != '\0') {
|
||||
strncpy(msg, p, sizeof(msg) - 1);
|
||||
msg[sizeof(msg) - 1] = 0;
|
||||
} else
|
||||
sprintf(msg, "Unknown error %ld", code);
|
||||
return msg;
|
||||
}
|
||||
|
||||
int
|
||||
init_error_table(const char **msgs, long base, int count)
|
||||
{
|
||||
initialize_error_table_r(&_et_list, msgs, count, base);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
default_proc (const char *whoami, long code, const char *fmt, va_list args)
|
||||
{
|
||||
if (whoami)
|
||||
fprintf(stderr, "%s: ", whoami);
|
||||
if (code)
|
||||
fprintf(stderr, "%s ", error_message(code));
|
||||
if (fmt)
|
||||
vfprintf(stderr, fmt, args);
|
||||
fprintf(stderr, "\r\n"); /* ??? */
|
||||
}
|
||||
|
||||
static errf com_err_hook = default_proc;
|
||||
|
||||
void
|
||||
com_err_va (const char *whoami,
|
||||
long code,
|
||||
const char *fmt,
|
||||
va_list args)
|
||||
{
|
||||
(*com_err_hook) (whoami, code, fmt, args);
|
||||
}
|
||||
|
||||
void
|
||||
com_err (const char *whoami,
|
||||
long code,
|
||||
const char *fmt,
|
||||
...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, fmt);
|
||||
com_err_va (whoami, code, fmt, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
errf
|
||||
set_com_err_hook (errf new)
|
||||
{
|
||||
errf old = com_err_hook;
|
||||
|
||||
if (new)
|
||||
com_err_hook = new;
|
||||
else
|
||||
com_err_hook = default_proc;
|
||||
|
||||
return old;
|
||||
}
|
||||
|
||||
errf
|
||||
reset_com_err_hook (void)
|
||||
{
|
||||
return set_com_err_hook(NULL);
|
||||
}
|
||||
|
||||
#define ERRCODE_RANGE 8 /* # of bits to shift table number */
|
||||
#define BITS_PER_CHAR 6 /* # bits to shift per character in name */
|
||||
|
||||
static const char char_set[] =
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
|
||||
|
||||
static char buf[6];
|
||||
|
||||
const char *
|
||||
error_table_name(int num)
|
||||
{
|
||||
int ch;
|
||||
int i;
|
||||
char *p;
|
||||
|
||||
/* num = aa aaa abb bbb bcc ccc cdd ddd d?? ??? ??? */
|
||||
p = buf;
|
||||
num >>= ERRCODE_RANGE;
|
||||
/* num = ?? ??? ??? aaa aaa bbb bbb ccc ccc ddd ddd */
|
||||
num &= 077777777;
|
||||
/* num = 00 000 000 aaa aaa bbb bbb ccc ccc ddd ddd */
|
||||
for (i = 4; i >= 0; i--) {
|
||||
ch = (num >> BITS_PER_CHAR * i) & ((1 << BITS_PER_CHAR) - 1);
|
||||
if (ch != 0)
|
||||
*p++ = char_set[ch-1];
|
||||
}
|
||||
*p = '\0';
|
||||
return(buf);
|
||||
}
|
||||
@@ -1,78 +0,0 @@
|
||||
.\" Copyright (c) 1988 Massachusetts Institute of Technology,
|
||||
.\" Student Information Processing Board. All rights reserved.
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd November 22, 1988
|
||||
.Os
|
||||
.Dt COMPILE_ET 1
|
||||
.Sh NAME
|
||||
.Nm compile_et
|
||||
.Nd error table compiler
|
||||
.Sh SYNOPSIS
|
||||
.Nm compile_et
|
||||
.Ar file
|
||||
.Sh DESCRIPTION
|
||||
.Nm Compile_et
|
||||
converts a table listing error-code names and associated messages into
|
||||
a C source file suitable for use with the
|
||||
.Xr com_err 3
|
||||
library.
|
||||
.Pp
|
||||
The source file name must end with a suffix of ``.et''; the file
|
||||
consists of a declaration supplying the name (up to four characters
|
||||
long) of the error-code table:
|
||||
|
||||
.Em error_table name
|
||||
|
||||
followed by up to 256 entries of the form:
|
||||
|
||||
.Em error_code name ,
|
||||
"
|
||||
.Em string
|
||||
"
|
||||
|
||||
and a final
|
||||
|
||||
.Em end
|
||||
|
||||
to indicate the end of the table.
|
||||
.Pp
|
||||
The name of the table is used to construct the name of a subroutine
|
||||
.Em initialize_XXXX_error_table
|
||||
which must be called in order for the
|
||||
.Xr com_err 3
|
||||
library to recognize the error table.
|
||||
.Pp
|
||||
The various error codes defined are assigned sequentially increasing
|
||||
numbers (starting with a large number computed as a hash function of
|
||||
the name of the table); thus for compatibility it is suggested that
|
||||
new codes be added only to the end of an existing table, and that no
|
||||
codes be removed from tables.
|
||||
.Pp
|
||||
The names defined in the table are placed into a C header file with
|
||||
preprocessor directives defining them as integer constants of up to
|
||||
32 bits in magnitude.
|
||||
.Pp
|
||||
A C source file is also generated which should be compiled and linked
|
||||
with the object files which reference these error codes; it contains
|
||||
the text of the messages and the initialization subroutine. Both C
|
||||
files have names derived from that of the original source file, with
|
||||
the ``.et'' suffix replaced by ``.c'' and ``.h''.
|
||||
.Pp
|
||||
A ``#'' in the source file is treated as a comment character, and all
|
||||
remaining text to the end of the source line will be ignored.
|
||||
.Sh BUGS
|
||||
Since
|
||||
.Nm compile_et
|
||||
uses a very simple parser based on
|
||||
.Xr yacc 1 ,
|
||||
its error recovery leaves much to be desired.
|
||||
.Sh "SEE ALSO"
|
||||
.Xr yacc 1 ,
|
||||
.Xr com_err 3
|
||||
.Pp
|
||||
.Rs
|
||||
.%A Ken Raeburn
|
||||
.%T "A Common Error Description Library for UNIX"
|
||||
.Re
|
||||
@@ -1,234 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#undef ROKEN_RENAME
|
||||
#include "compile_et.h"
|
||||
#include <getarg.h>
|
||||
|
||||
#if 0
|
||||
RCSID("$Id: compile_et.c,v 1.12 1999/04/01 09:13:52 joda Exp $");
|
||||
#endif
|
||||
|
||||
#include <err.h>
|
||||
#include "parse.h"
|
||||
|
||||
int numerror;
|
||||
extern FILE *yyin;
|
||||
|
||||
extern void yyparse(void);
|
||||
|
||||
long base;
|
||||
int number;
|
||||
char *prefix;
|
||||
char *id_str;
|
||||
|
||||
char name[128];
|
||||
char Basename[128];
|
||||
|
||||
#ifdef YYDEBUG
|
||||
extern int yydebug = 1;
|
||||
#endif
|
||||
|
||||
char *filename;
|
||||
char hfn[128];
|
||||
char cfn[128];
|
||||
|
||||
struct error_code *codes = NULL;
|
||||
|
||||
static int
|
||||
generate_c(void)
|
||||
{
|
||||
int n;
|
||||
struct error_code *ec;
|
||||
|
||||
FILE *c_file = fopen(cfn, "w");
|
||||
if(c_file == NULL)
|
||||
return 1;
|
||||
|
||||
fprintf(c_file, "/* Generated from %s */\n", filename);
|
||||
if(id_str)
|
||||
fprintf(c_file, "/* %s */\n", id_str);
|
||||
fprintf(c_file, "\n");
|
||||
fprintf(c_file, "#include <stddef.h>\n");
|
||||
fprintf(c_file, "#include <com_err.h>\n");
|
||||
fprintf(c_file, "#include \"%s\"\n", hfn);
|
||||
fprintf(c_file, "\n");
|
||||
|
||||
fprintf(c_file, "static const char *text[] = {\n");
|
||||
|
||||
for(ec = codes, n = 0; ec; ec = ec->next, n++) {
|
||||
while(n < ec->number) {
|
||||
fprintf(c_file, "\t/* %03d */ \"Reserved %s error (%d)\",\n",
|
||||
n, name, n);
|
||||
n++;
|
||||
|
||||
}
|
||||
fprintf(c_file, "\t/* %03d */ \"%s\",\n", ec->number, ec->string);
|
||||
}
|
||||
|
||||
fprintf(c_file, "\tNULL\n");
|
||||
fprintf(c_file, "};\n");
|
||||
fprintf(c_file, "\n");
|
||||
fprintf(c_file,
|
||||
"void initialize_%s_error_table_r(struct et_list **list)\n",
|
||||
name);
|
||||
fprintf(c_file, "{\n");
|
||||
fprintf(c_file,
|
||||
" initialize_error_table_r(list, text, "
|
||||
"%s_num_errors, ERROR_TABLE_BASE_%s);\n", name, name);
|
||||
fprintf(c_file, "}\n");
|
||||
fprintf(c_file, "\n");
|
||||
fprintf(c_file, "void initialize_%s_error_table(void)\n", name);
|
||||
fprintf(c_file, "{\n");
|
||||
fprintf(c_file,
|
||||
" init_error_table(text, ERROR_TABLE_BASE_%s, "
|
||||
"%s_num_errors);\n", name, name);
|
||||
fprintf(c_file, "}\n");
|
||||
|
||||
fclose(c_file);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
generate_h(void)
|
||||
{
|
||||
struct error_code *ec;
|
||||
char fn[128];
|
||||
FILE *h_file = fopen(hfn, "w");
|
||||
char *p;
|
||||
|
||||
if(h_file == NULL)
|
||||
return 1;
|
||||
|
||||
snprintf(fn, sizeof(fn), "__%s__", hfn);
|
||||
for(p = fn; *p; p++)
|
||||
if(!isalnum((unsigned char)*p))
|
||||
*p = '_';
|
||||
|
||||
fprintf(h_file, "/* Generated from %s */\n", filename);
|
||||
if(id_str)
|
||||
fprintf(h_file, "/* %s */\n", id_str);
|
||||
fprintf(h_file, "\n");
|
||||
fprintf(h_file, "#ifndef %s\n", fn);
|
||||
fprintf(h_file, "#define %s\n", fn);
|
||||
fprintf(h_file, "\n");
|
||||
fprintf(h_file, "#include <com_right.h>\n");
|
||||
fprintf(h_file, "\n");
|
||||
fprintf(h_file,
|
||||
"void initialize_%s_error_table_r(struct et_list **);\n",
|
||||
name);
|
||||
fprintf(h_file, "\n");
|
||||
fprintf(h_file, "void initialize_%s_error_table(void);\n", name);
|
||||
fprintf(h_file, "#define init_%s_err_tbl initialize_%s_error_table\n",
|
||||
name, name);
|
||||
fprintf(h_file, "\n");
|
||||
fprintf(h_file, "typedef enum %s_error_number{\n", name);
|
||||
fprintf(h_file, "\tERROR_TABLE_BASE_%s = %ld,\n", name, base);
|
||||
fprintf(h_file, "\t%s_err_base = %ld,\n", name, base);
|
||||
|
||||
for(ec = codes; ec; ec = ec->next) {
|
||||
fprintf(h_file, "\t%s = %ld,\n", ec->name, base + ec->number);
|
||||
}
|
||||
|
||||
fprintf(h_file, "\t%s_num_errors = %d\n", name, number);
|
||||
fprintf(h_file, "} %s_error_number;\n", name);
|
||||
fprintf(h_file, "\n");
|
||||
fprintf(h_file, "#endif /* %s */\n", fn);
|
||||
|
||||
|
||||
fclose(h_file);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
generate(void)
|
||||
{
|
||||
return generate_c() || generate_h();
|
||||
}
|
||||
|
||||
int help_flag;
|
||||
struct getargs args[] = {
|
||||
{ "help", 0, arg_flag, &help_flag }
|
||||
};
|
||||
int num_args = sizeof(args) / sizeof(args[0]);
|
||||
|
||||
static void
|
||||
usage(int code)
|
||||
{
|
||||
arg_printusage(args, num_args, NULL, "error-table");
|
||||
exit(code);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
char *p;
|
||||
int optind = 0;
|
||||
|
||||
if(getarg(args, num_args, argc, argv, &optind))
|
||||
usage(1);
|
||||
if(help_flag)
|
||||
usage(0);
|
||||
|
||||
if(optind == argc)
|
||||
usage(1);
|
||||
filename = argv[optind];
|
||||
yyin = fopen(filename, "r");
|
||||
if(yyin == NULL)
|
||||
err(1, "%s", filename);
|
||||
|
||||
|
||||
p = strrchr(filename, '/');
|
||||
if(p)
|
||||
p++;
|
||||
else
|
||||
p = filename;
|
||||
strncpy(Basename, p, sizeof(Basename));
|
||||
Basename[sizeof(Basename) - 1] = '\0';
|
||||
|
||||
Basename[strcspn(Basename, ".")] = '\0';
|
||||
|
||||
snprintf(hfn, sizeof(hfn), "%s.h", Basename);
|
||||
snprintf(cfn, sizeof(cfn), "%s.c", Basename);
|
||||
|
||||
yyparse();
|
||||
if(numerror)
|
||||
return 1;
|
||||
|
||||
return generate();
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 1998 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/* $Id: compile_et.h,v 1.3 1998/11/22 09:39:46 assar Exp $ */
|
||||
|
||||
#ifndef __COMPILE_ET_H__
|
||||
#define __COMPILE_ET_H__
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <ctype.h>
|
||||
|
||||
extern long base;
|
||||
extern int number;
|
||||
extern char *prefix;
|
||||
extern char name[128];
|
||||
extern char *id_str;
|
||||
extern char *filename;
|
||||
extern int numerror;
|
||||
|
||||
struct error_code {
|
||||
unsigned number;
|
||||
char *name;
|
||||
char *string;
|
||||
struct error_code *next, **tail;
|
||||
};
|
||||
|
||||
extern struct error_code *codes;
|
||||
|
||||
#define APPEND(L, V) \
|
||||
do { \
|
||||
if((L) == NULL) { \
|
||||
(L) = (V); \
|
||||
(L)->tail = &(V)->next; \
|
||||
(L)->next = NULL; \
|
||||
}else{ \
|
||||
*(L)->tail = (V); \
|
||||
(L)->tail = &(V)->next; \
|
||||
} \
|
||||
}while(0)
|
||||
|
||||
#endif /* __COMPILE_ET_H__ */
|
||||
@@ -1,96 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
RCSID("$Id: error.c,v 1.13 1998/02/17 21:19:44 bg Exp $");
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <com_right.h>
|
||||
|
||||
const char *
|
||||
com_right(struct et_list *list, long code)
|
||||
{
|
||||
struct et_list *p;
|
||||
for (p = list; p; p = p->next) {
|
||||
if (code >= p->table->base && code < p->table->base + p->table->n_msgs)
|
||||
return p->table->msgs[code - p->table->base];
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct foobar {
|
||||
struct et_list etl;
|
||||
struct error_table et;
|
||||
};
|
||||
|
||||
void
|
||||
initialize_error_table_r(struct et_list **list,
|
||||
const char **messages,
|
||||
int num_errors,
|
||||
long base)
|
||||
{
|
||||
struct et_list *et;
|
||||
struct foobar *f;
|
||||
for (et = *list; et; et = et->next)
|
||||
if (et->table->msgs == messages)
|
||||
return;
|
||||
f = malloc(sizeof(*f));
|
||||
if (f == NULL)
|
||||
return;
|
||||
et = &f->etl;
|
||||
et->table = &f->et;
|
||||
et->table->msgs = messages;
|
||||
et->table->n_msgs = num_errors;
|
||||
et->table->base = base;
|
||||
et->next = *list;
|
||||
*list = et;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
free_error_table(struct et_list *et)
|
||||
{
|
||||
while(et){
|
||||
struct et_list *p = et;
|
||||
et = et->next;
|
||||
free(p);
|
||||
}
|
||||
}
|
||||
@@ -1,376 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#if 0
|
||||
RCSID("$Id: getarg.c,v 1.25 1998/11/22 09:45:05 assar Exp $");
|
||||
#endif
|
||||
|
||||
#include <sys/ttycom.h>
|
||||
#include <time.h>
|
||||
#include <stdio.h>
|
||||
#include "getarg.h"
|
||||
|
||||
#define ISFLAG(X) ((X).type == arg_flag || (X).type == arg_negative_flag)
|
||||
|
||||
static size_t
|
||||
print_arg (char *string, size_t len, int mdoc, int longp, struct getargs *arg)
|
||||
{
|
||||
const char *s;
|
||||
|
||||
*string = '\0';
|
||||
|
||||
if (ISFLAG(*arg))
|
||||
return 0;
|
||||
|
||||
if(mdoc){
|
||||
if(longp)
|
||||
strncat(string, "= Ns", len);
|
||||
strncat(string, " Ar ", len);
|
||||
}else
|
||||
if (longp)
|
||||
strncat (string, "=", len);
|
||||
else
|
||||
strncat (string, " ", len);
|
||||
|
||||
if (arg->arg_help)
|
||||
s = arg->arg_help;
|
||||
else if (arg->type == arg_integer)
|
||||
s = "number";
|
||||
else if (arg->type == arg_string)
|
||||
s = "string";
|
||||
else
|
||||
s = "<undefined>";
|
||||
|
||||
strncat(string, s, len);
|
||||
return 1 + strlen(s);
|
||||
}
|
||||
|
||||
static int
|
||||
check_column(FILE *f, int col, int len, int columns)
|
||||
{
|
||||
if(col + len > columns) {
|
||||
fprintf(f, "\n");
|
||||
col = fprintf(f, " ");
|
||||
}
|
||||
return col;
|
||||
}
|
||||
|
||||
void
|
||||
arg_printusage (struct getargs *args,
|
||||
size_t num_args,
|
||||
const char *progname,
|
||||
const char *extra_string)
|
||||
{
|
||||
int i;
|
||||
size_t max_len = 0;
|
||||
char buf[128];
|
||||
int col = 0, columns;
|
||||
struct winsize ws;
|
||||
|
||||
columns = 80;
|
||||
col = 0;
|
||||
col += fprintf (stderr, "Usage: %s", progname);
|
||||
for (i = 0; i < num_args; ++i) {
|
||||
size_t len = 0;
|
||||
|
||||
if (args[i].long_name) {
|
||||
buf[0] = '\0';
|
||||
strncat(buf, "[--", sizeof(buf));
|
||||
len += 2;
|
||||
if(args[i].type == arg_negative_flag) {
|
||||
strncat(buf, "no-", sizeof(buf));
|
||||
len += 3;
|
||||
}
|
||||
strncat(buf, args[i].long_name, sizeof(buf));
|
||||
len += strlen(args[i].long_name);
|
||||
len += print_arg(buf + strlen(buf), sizeof(buf) - strlen(buf),
|
||||
0, 1, &args[i]);
|
||||
strncat(buf, "]", sizeof(buf));
|
||||
if(args[i].type == arg_strings)
|
||||
strncat(buf, "...", sizeof(buf));
|
||||
col = check_column(stderr, col, strlen(buf) + 1, columns);
|
||||
col += fprintf(stderr, " %s", buf);
|
||||
}
|
||||
if (args[i].short_name) {
|
||||
snprintf(buf, sizeof(buf), "[-%c", args[i].short_name);
|
||||
len += 2;
|
||||
len += print_arg(buf + strlen(buf), sizeof(buf) - strlen(buf),
|
||||
0, 0, &args[i]);
|
||||
strncat(buf, "]", sizeof(buf));
|
||||
if(args[i].type == arg_strings)
|
||||
strncat(buf, "...", sizeof(buf));
|
||||
col = check_column(stderr, col, strlen(buf) + 1, columns);
|
||||
col += fprintf(stderr, " %s", buf);
|
||||
}
|
||||
if (args[i].long_name && args[i].short_name)
|
||||
len += 2; /* ", " */
|
||||
max_len = max(max_len, len);
|
||||
}
|
||||
if (extra_string) {
|
||||
col = check_column(stderr, col, strlen(extra_string) + 1, columns);
|
||||
fprintf (stderr, " %s\n", extra_string);
|
||||
} else
|
||||
fprintf (stderr, "\n");
|
||||
for (i = 0; i < num_args; ++i) {
|
||||
if (args[i].help) {
|
||||
size_t count = 0;
|
||||
|
||||
if (args[i].short_name) {
|
||||
count += fprintf (stderr, "-%c", args[i].short_name);
|
||||
print_arg (buf, sizeof(buf), 0, 0, &args[i]);
|
||||
count += fprintf(stderr, "%s", buf);
|
||||
}
|
||||
if (args[i].short_name && args[i].long_name)
|
||||
count += fprintf (stderr, ", ");
|
||||
if (args[i].long_name) {
|
||||
count += fprintf (stderr, "--");
|
||||
if (args[i].type == arg_negative_flag)
|
||||
count += fprintf (stderr, "no-");
|
||||
count += fprintf (stderr, "%s", args[i].long_name);
|
||||
print_arg (buf, sizeof(buf), 0, 1, &args[i]);
|
||||
count += fprintf(stderr, "%s", buf);
|
||||
}
|
||||
while(count++ <= max_len)
|
||||
putc (' ', stderr);
|
||||
fprintf (stderr, "%s\n", args[i].help);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
add_string(getarg_strings *s, char *value)
|
||||
{
|
||||
s->strings = realloc(s->strings, (s->num_strings + 1) * sizeof(*s->strings));
|
||||
s->strings[s->num_strings] = value;
|
||||
s->num_strings++;
|
||||
}
|
||||
|
||||
static int
|
||||
arg_match_long(struct getargs *args, size_t num_args,
|
||||
char *argv)
|
||||
{
|
||||
int i;
|
||||
char *optarg = NULL;
|
||||
int negate = 0;
|
||||
int partial_match = 0;
|
||||
struct getargs *partial = NULL;
|
||||
struct getargs *current = NULL;
|
||||
int argv_len;
|
||||
char *p;
|
||||
|
||||
argv_len = strlen(argv);
|
||||
p = strchr (argv, '=');
|
||||
if (p != NULL)
|
||||
argv_len = p - argv;
|
||||
|
||||
for (i = 0; i < num_args; ++i) {
|
||||
if(args[i].long_name) {
|
||||
int len = strlen(args[i].long_name);
|
||||
char *p = argv;
|
||||
int p_len = argv_len;
|
||||
negate = 0;
|
||||
|
||||
for (;;) {
|
||||
if (strncmp (args[i].long_name, p, p_len) == 0) {
|
||||
if(p_len == len)
|
||||
current = &args[i];
|
||||
else {
|
||||
++partial_match;
|
||||
partial = &args[i];
|
||||
}
|
||||
optarg = p + p_len;
|
||||
} else if (ISFLAG(args[i]) && strncmp (p, "no-", 3) == 0) {
|
||||
negate = !negate;
|
||||
p += 3;
|
||||
p_len -= 3;
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (current)
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (current == NULL) {
|
||||
if (partial_match == 1)
|
||||
current = partial;
|
||||
else
|
||||
return ARG_ERR_NO_MATCH;
|
||||
}
|
||||
|
||||
if(*optarg == '\0' && !ISFLAG(*current))
|
||||
return ARG_ERR_NO_MATCH;
|
||||
switch(current->type){
|
||||
case arg_integer:
|
||||
{
|
||||
int tmp;
|
||||
if(sscanf(optarg + 1, "%d", &tmp) != 1)
|
||||
return ARG_ERR_BAD_ARG;
|
||||
*(int*)current->value = tmp;
|
||||
return 0;
|
||||
}
|
||||
case arg_string:
|
||||
{
|
||||
*(char**)current->value = optarg + 1;
|
||||
return 0;
|
||||
}
|
||||
case arg_strings:
|
||||
{
|
||||
add_string((getarg_strings*)current->value, optarg + 1);
|
||||
return 0;
|
||||
}
|
||||
case arg_flag:
|
||||
case arg_negative_flag:
|
||||
{
|
||||
int *flag = current->value;
|
||||
if(*optarg == '\0' ||
|
||||
strcmp(optarg + 1, "yes") == 0 ||
|
||||
strcmp(optarg + 1, "true") == 0){
|
||||
*flag = !negate;
|
||||
return 0;
|
||||
} else if (*optarg && strcmp(optarg + 1, "maybe") == 0) {
|
||||
*flag = rand() & 1;
|
||||
} else {
|
||||
*flag = negate;
|
||||
return 0;
|
||||
}
|
||||
return ARG_ERR_BAD_ARG;
|
||||
}
|
||||
default:
|
||||
abort ();
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
getarg(struct getargs *args, size_t num_args,
|
||||
int argc, char **argv, int *optind)
|
||||
{
|
||||
int i, j, k;
|
||||
int ret = 0;
|
||||
|
||||
srand (time(NULL));
|
||||
(*optind)++;
|
||||
for(i = *optind; i < argc; i++) {
|
||||
if(argv[i][0] != '-')
|
||||
break;
|
||||
if(argv[i][1] == '-'){
|
||||
if(argv[i][2] == 0){
|
||||
i++;
|
||||
break;
|
||||
}
|
||||
ret = arg_match_long (args, num_args, argv[i] + 2);
|
||||
if(ret)
|
||||
return ret;
|
||||
}else{
|
||||
for(j = 1; argv[i][j]; j++) {
|
||||
for(k = 0; k < num_args; k++) {
|
||||
char *optarg;
|
||||
if(args[k].short_name == 0)
|
||||
continue;
|
||||
if(argv[i][j] == args[k].short_name){
|
||||
if(args[k].type == arg_flag){
|
||||
*(int*)args[k].value = 1;
|
||||
break;
|
||||
}
|
||||
if(args[k].type == arg_negative_flag){
|
||||
*(int*)args[k].value = 0;
|
||||
break;
|
||||
}
|
||||
if(argv[i][j + 1])
|
||||
optarg = &argv[i][j + 1];
|
||||
else{
|
||||
i++;
|
||||
optarg = argv[i];
|
||||
}
|
||||
if(optarg == NULL)
|
||||
return ARG_ERR_NO_ARG;
|
||||
if(args[k].type == arg_integer){
|
||||
int tmp;
|
||||
if(sscanf(optarg, "%d", &tmp) != 1)
|
||||
return ARG_ERR_BAD_ARG;
|
||||
*(int*)args[k].value = tmp;
|
||||
goto out;
|
||||
}else if(args[k].type == arg_string){
|
||||
*(char**)args[k].value = optarg;
|
||||
goto out;
|
||||
}else if(args[k].type == arg_strings){
|
||||
add_string((getarg_strings*)args[k].value, optarg);
|
||||
goto out;
|
||||
}
|
||||
return ARG_ERR_BAD_ARG;
|
||||
}
|
||||
|
||||
}
|
||||
if (k == num_args)
|
||||
return ARG_ERR_NO_MATCH;
|
||||
}
|
||||
out:;
|
||||
}
|
||||
}
|
||||
*optind = i;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if TEST
|
||||
int foo_flag = 2;
|
||||
int flag1 = 0;
|
||||
int flag2 = 0;
|
||||
int bar_int;
|
||||
char *baz_string;
|
||||
|
||||
struct getargs args[] = {
|
||||
{ NULL, '1', arg_flag, &flag1, "one", NULL },
|
||||
{ NULL, '2', arg_flag, &flag2, "two", NULL },
|
||||
{ "foo", 'f', arg_negative_flag, &foo_flag, "foo", NULL },
|
||||
{ "bar", 'b', arg_integer, &bar_int, "bar", "seconds"},
|
||||
{ "baz", 'x', arg_string, &baz_string, "baz", "name" },
|
||||
};
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int optind = 0;
|
||||
while(getarg(args, 5, argc, argv, &optind))
|
||||
printf("Bad arg: %s\n", argv[optind]);
|
||||
printf("flag1 = %d\n", flag1);
|
||||
printf("flag2 = %d\n", flag2);
|
||||
printf("foo_flag = %d\n", foo_flag);
|
||||
printf("bar_int = %d\n", bar_int);
|
||||
printf("baz_flag = %s\n", baz_string);
|
||||
arg_printusage (args, 5, argv[0], "nothing here");
|
||||
}
|
||||
#endif
|
||||
@@ -1,76 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 1997 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/* $Id: getarg.h,v 1.5 1998/08/18 20:26:11 assar Exp $ */
|
||||
|
||||
#ifndef __GETARG_H__
|
||||
#define __GETARG_H__
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#define max(a,b) (((a)>(b))?(a):(b))
|
||||
|
||||
struct getargs{
|
||||
const char *long_name;
|
||||
char short_name;
|
||||
enum { arg_integer, arg_string, arg_flag, arg_negative_flag, arg_strings } type;
|
||||
void *value;
|
||||
const char *help;
|
||||
const char *arg_help;
|
||||
};
|
||||
|
||||
enum {
|
||||
ARG_ERR_NO_MATCH = 1,
|
||||
ARG_ERR_BAD_ARG,
|
||||
ARG_ERR_NO_ARG
|
||||
};
|
||||
|
||||
typedef struct getarg_strings {
|
||||
int num_strings;
|
||||
char **strings;
|
||||
} getarg_strings;
|
||||
|
||||
int getarg(struct getargs *args, size_t num_args,
|
||||
int argc, char **argv, int *optind);
|
||||
|
||||
void arg_printusage (struct getargs *args,
|
||||
size_t num_args,
|
||||
const char *progname,
|
||||
const char *extra_string);
|
||||
|
||||
#endif /* __GETARG_H__ */
|
||||
@@ -1,129 +0,0 @@
|
||||
%{
|
||||
/*
|
||||
* Copyright (c) 1998 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This is to handle the definition of this symbol in some AIX
|
||||
* headers, which will conflict with the definition that lex will
|
||||
* generate for it. It's only a problem for AIX lex.
|
||||
*/
|
||||
|
||||
#undef ECHO
|
||||
|
||||
#include "compile_et.h"
|
||||
#include "parse.h"
|
||||
|
||||
#if 0
|
||||
RCSID("$Id: lex.l,v 1.4 1998/11/20 05:58:52 assar Exp $");
|
||||
#endif
|
||||
|
||||
static unsigned lineno = 1;
|
||||
void error_message(char *, ...);
|
||||
int getstring(void);
|
||||
|
||||
%}
|
||||
|
||||
|
||||
%%
|
||||
et { return ET; }
|
||||
error_table { return ET; }
|
||||
ec { return EC; }
|
||||
error_code { return EC; }
|
||||
prefix { return PREFIX; }
|
||||
index { return INDEX; }
|
||||
id { return ID; }
|
||||
end { return END; }
|
||||
[0-9]+ { yylval.number = atoi(yytext); return NUMBER; }
|
||||
#[^\n]* ;
|
||||
[ \t] ;
|
||||
\n { lineno++; }
|
||||
\" { return getstring(); }
|
||||
[a-zA-Z0-9_]+ { yylval.string = strdup(yytext); return STRING; }
|
||||
. { return *yytext; }
|
||||
%%
|
||||
|
||||
#ifndef yywrap /* XXX */
|
||||
int
|
||||
yywrap ()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
int
|
||||
getstring(void)
|
||||
{
|
||||
char x[128];
|
||||
int i = 0;
|
||||
int c;
|
||||
int quote = 0;
|
||||
while((c = input()) != EOF){
|
||||
if(quote) {
|
||||
x[i++] = c;
|
||||
quote = 0;
|
||||
continue;
|
||||
}
|
||||
if(c == '\n'){
|
||||
error_message("unterminated string");
|
||||
lineno++;
|
||||
break;
|
||||
}
|
||||
if(c == '\\'){
|
||||
quote++;
|
||||
continue;
|
||||
}
|
||||
if(c == '\"')
|
||||
break;
|
||||
x[i++] = c;
|
||||
}
|
||||
x[i] = '\0';
|
||||
yylval.string = strdup(x);
|
||||
return STRING;
|
||||
}
|
||||
|
||||
void
|
||||
error_message (char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
va_start (args, format);
|
||||
fprintf (stderr, "%s:%d:", filename, lineno);
|
||||
vfprintf (stderr, format, args);
|
||||
va_end (args);
|
||||
numerror++;
|
||||
}
|
||||
@@ -1,173 +0,0 @@
|
||||
%{
|
||||
/*
|
||||
* Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "compile_et.h"
|
||||
#if 0
|
||||
RCSID("$Id: parse.y,v 1.9 1999/07/04 14:54:58 assar Exp $");
|
||||
#endif
|
||||
|
||||
void yyerror (char *s);
|
||||
long name2number(const char *str);
|
||||
void error_message(char *, ...);
|
||||
|
||||
extern char *yytext;
|
||||
|
||||
/* This is for bison */
|
||||
|
||||
#if !defined(alloca) && !defined(HAVE_ALLOCA)
|
||||
#define alloca(x) malloc(x)
|
||||
#endif
|
||||
|
||||
%}
|
||||
|
||||
%union {
|
||||
char *string;
|
||||
int number;
|
||||
}
|
||||
|
||||
%token ET INDEX PREFIX EC ID END
|
||||
%token <string> STRING
|
||||
%token <number> NUMBER
|
||||
|
||||
%%
|
||||
|
||||
file : /* */
|
||||
| header statements
|
||||
;
|
||||
|
||||
header : id et
|
||||
| et
|
||||
;
|
||||
|
||||
id : ID STRING
|
||||
{
|
||||
id_str = $2;
|
||||
}
|
||||
;
|
||||
|
||||
et : ET STRING
|
||||
{
|
||||
base = name2number($2);
|
||||
strncpy(name, $2, sizeof(name));
|
||||
name[sizeof(name) - 1] = '\0';
|
||||
free($2);
|
||||
}
|
||||
| ET STRING STRING
|
||||
{
|
||||
base = name2number($2);
|
||||
strncpy(name, $3, sizeof(name));
|
||||
name[sizeof(name) - 1] = '\0';
|
||||
free($2);
|
||||
free($3);
|
||||
}
|
||||
;
|
||||
|
||||
statements : statement
|
||||
| statements statement
|
||||
;
|
||||
|
||||
statement : INDEX NUMBER
|
||||
{
|
||||
number = $2;
|
||||
}
|
||||
| PREFIX STRING
|
||||
{
|
||||
prefix = realloc(prefix, strlen($2) + 2);
|
||||
strcpy(prefix, $2);
|
||||
strcat(prefix, "_");
|
||||
free($2);
|
||||
}
|
||||
| PREFIX
|
||||
{
|
||||
prefix = realloc(prefix, 1);
|
||||
*prefix = '\0';
|
||||
}
|
||||
| EC STRING ',' STRING
|
||||
{
|
||||
struct error_code *ec = malloc(sizeof(*ec));
|
||||
|
||||
ec->next = NULL;
|
||||
ec->number = number;
|
||||
if(prefix && *prefix != '\0') {
|
||||
asprintf (&ec->name, "%s%s", prefix, $2);
|
||||
free($2);
|
||||
} else
|
||||
ec->name = $2;
|
||||
ec->string = $4;
|
||||
APPEND(codes, ec);
|
||||
number++;
|
||||
}
|
||||
| END
|
||||
{
|
||||
YYACCEPT;
|
||||
}
|
||||
;
|
||||
|
||||
%%
|
||||
|
||||
long
|
||||
name2number(const char *str)
|
||||
{
|
||||
const char *p;
|
||||
long base = 0;
|
||||
const char *x = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
"abcdefghijklmnopqrstuvwxyz0123456789_";
|
||||
if(strlen(str) > 4) {
|
||||
yyerror("table name too long");
|
||||
return 0;
|
||||
}
|
||||
for(p = str; *p; p++){
|
||||
char *q = strchr(x, *p);
|
||||
if(q == NULL) {
|
||||
yyerror("invalid character in table name");
|
||||
return 0;
|
||||
}
|
||||
base = (base << 6) + (q - x) + 1;
|
||||
}
|
||||
base <<= 8;
|
||||
if(base > 0x7fffffff)
|
||||
base = -(0xffffffff - base + 1);
|
||||
return base;
|
||||
}
|
||||
|
||||
void
|
||||
yyerror (char *s)
|
||||
{
|
||||
error_message ("%s\n", s);
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 1998 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/* $Id: roken_rename.h,v 1.2 1999/03/11 18:14:53 bg Exp $ */
|
||||
|
||||
#ifndef __roken_rename_h__
|
||||
#define __roken_rename_h__
|
||||
|
||||
#endif /* __roken_rename_h__ */
|
||||
@@ -10,6 +10,10 @@
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details. */
|
||||
|
||||
/*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif /* HAVE_CONFIG_H */
|
||||
@@ -264,7 +268,7 @@ arg_should_not_be_sent_to_server (arg)
|
||||
}
|
||||
|
||||
/* Now check the value for root. */
|
||||
if (this_root && current_root
|
||||
if (CVSroot_cmdline == NULL && this_root && current_root
|
||||
&& (strcmp (this_root, current_root) != 0))
|
||||
{
|
||||
/* Don't send this, since the CVSROOTs don't match. */
|
||||
|
||||
@@ -55,4 +55,4 @@ Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
|
||||
#endif __Protocol_INCLUDE_GNU
|
||||
#endif
|
||||
@@ -147,4 +147,4 @@ list_free(struct objc_list* list)
|
||||
free(list);
|
||||
}
|
||||
}
|
||||
#endif __GNU_OBJC_LIST_H
|
||||
#endif
|
||||
@@ -8,7 +8,7 @@ Please delete the text in brackets before sending it in.
|
||||
|
||||
Please report separate bugs separately.
|
||||
|
||||
Send the completed form to bug-groff@prep.ai.mit.edu.
|
||||
Send the completed form to bug-groff@gnu.org
|
||||
|
||||
GROFF VERSION:
|
||||
[The version of groff you are using. For example, `1.05']
|
||||
@@ -26,18 +26,18 @@ INPUT FILES:
|
||||
[Include all the files necessary to reproduce the problem that are not
|
||||
part of the standard groff distribution. This includes font
|
||||
description files, DESC files and macro files (with the exception of
|
||||
the -ms and -mm macros: I have them). Send them as as a shell archive
|
||||
the -ms and -mm macros: we have them). Send them as a shell archive
|
||||
or as a uuencoded, compressed tar file.
|
||||
|
||||
It's easier for me if you can provide an example that doesn't depend
|
||||
It's easier for us if you can provide an example that doesn't depend
|
||||
on any macro package, but obviously if you're reporting a problem with
|
||||
a macro package that won't be possible. Also a short example is more
|
||||
convenient than a long one, but don't worry if you can't find a short
|
||||
example. Don't say something like ``any file that X'': always send a
|
||||
example. Don't say something like ``any file that X'': Always send a
|
||||
definite example.]
|
||||
|
||||
COMMAND LINE:
|
||||
[The command line that I should run in order to observe the bug. For
|
||||
[The command line that we should run in order to observe the bug. For
|
||||
example, `gtroff -Tps bug.tr'. If the command line uses -ms or -mm,
|
||||
say whether these refer to the groff versions or the Unix versions of
|
||||
the macros.]
|
||||
@@ -46,7 +46,7 @@ DESCRIPTION OF INCORRECT BEHAVIOUR:
|
||||
[What goes wrong when that command line is run? For example, `gtroff
|
||||
gets a segmentation fault', or `The output looks bad because the bar
|
||||
over the x is too long and is too far over to the left.' If you get
|
||||
an error message, include it here without modification: don't edit it
|
||||
an error message, include it here without modification: Don't edit it
|
||||
to make it more readable.]
|
||||
|
||||
SUGGESTED FIX [optional]:
|
||||
|
||||
@@ -1,3 +1,426 @@
|
||||
Version 1.15 released
|
||||
=====================
|
||||
|
||||
1999-12-28 Werner LEMBERG <[email protected]>
|
||||
|
||||
* NEWS, VERSION: Changed to 1.15
|
||||
|
||||
1999-12-27 Paul Eggert <[email protected]>
|
||||
|
||||
* nroff/nroff.man: -S is safer, not safe.
|
||||
|
||||
* groff/groff.cc (main): Use `safer', not `safe', in variable
|
||||
names. This does not change the behavior.
|
||||
|
||||
* troff/input.cc (main): Likewise.
|
||||
|
||||
* nroff/nroff.sh: Likewise.
|
||||
|
||||
* troff/input.cc (prepend_string): New function.
|
||||
(main): Prepend -msafer, so that we check macro libraries for
|
||||
safety.
|
||||
|
||||
* PROBLEMS: Report problem with Sun C++ 5.0 and 5.1.
|
||||
|
||||
Version 1.14 released
|
||||
=====================
|
||||
|
||||
1999-12-26 Werner LEMBERG <[email protected]>
|
||||
|
||||
* NEWS, VERSION: Changed to 1.14.
|
||||
|
||||
1999-12-24 Werner LEMBERG <[email protected]>
|
||||
|
||||
* refer/refer.cc: Fixing the last fix.
|
||||
|
||||
Version 1.13 released
|
||||
=====================
|
||||
|
||||
1999-12-23 Werner LEMBERG <[email protected]>
|
||||
|
||||
* tmac/tmac.an: A typo (`.if' instead of `.ie') made the page
|
||||
number disappear.
|
||||
|
||||
* NEWS: Updated.
|
||||
|
||||
* tmac/tmac.safer: Forgot to remove `so' from the `rm' request.
|
||||
|
||||
* VERSION: Changed to 1.13 -- to be compliant with the Adobe 3.0
|
||||
document conventions, the version number must be a real.
|
||||
|
||||
Version 1.12.1 released
|
||||
=======================
|
||||
|
||||
1999-12-22 Werner LEMBERG <[email protected]>
|
||||
|
||||
* VERSION: Changed to 1.12.1.
|
||||
|
||||
1999-12-22 Alan Rooks <[email protected]>
|
||||
|
||||
* refer/refer.cc (do_file): Slight modification to satisfy the
|
||||
`Standard system CC - C++ Compilation System 3.1 03/03/99' on SCO
|
||||
UnixWare 7.1.
|
||||
|
||||
1999-12-20 Werner LEMBERG <[email protected]>
|
||||
|
||||
* changed prep.ai.mit.edu -> ftp.gnu.org; updated copyright
|
||||
notices.
|
||||
|
||||
* tmac/tmac.safer, tmac/groff_msafer.man: Remove `so' (again) from
|
||||
list of unsafe requests.
|
||||
|
||||
* pic/pic.man: Fixed a typo.
|
||||
|
||||
* man/groff_out.man: Fixed a typo.
|
||||
|
||||
1999-12-18 Werner LEMBERG <[email protected]>
|
||||
|
||||
* Makefile.in: Doc fixes.
|
||||
|
||||
1999-12-17 Fabrizio Polacco <[email protected]>
|
||||
|
||||
* groff/groff.cc: Missing `U' option added to getopt().
|
||||
|
||||
* troff/troff.man: Missing `U' option added to synopsis.
|
||||
|
||||
Version 1.12 released
|
||||
=====================
|
||||
|
||||
1999-12-14 Werner LEMBERG <[email protected]>
|
||||
|
||||
* troff/input.cc (usage), groff/groff.cc (synopsis): Added -U flag
|
||||
to the synopsis.
|
||||
|
||||
* nroff/nroff.sh, nroff/nroff.man: Replaced `secure', `unsecure'
|
||||
with the more appropriate terms `safer' and `unsafe'.
|
||||
|
||||
* libgroff/strerror.c, aclocal.m4, configure.in: Added checks for
|
||||
sys_nerr and sys_errlist[].
|
||||
|
||||
* pic/pic.h, aclocal.m4, configure.in: Added check for hypot().
|
||||
|
||||
* pic/pic.y, pic/pic.cc: Added check for fmod().
|
||||
|
||||
1999-12-13 Werner LEMBERG <[email protected]>
|
||||
|
||||
* VERSION: Changed to 1.12.
|
||||
|
||||
Here some patches from various sources; most of them taken from
|
||||
the Debian distribution.
|
||||
|
||||
* tmac/groff_mdoc.man, tmac/groff_mdoc.samples.man,
|
||||
tmac/Makefile.sub: New files copied directly from the NetBSD
|
||||
distribution. Probably, some additional adaptation later on is
|
||||
necessary...
|
||||
|
||||
* tmac/tmac.safer, tmac/groff_msafer.man: Added `so' to the list
|
||||
of unsafe requests.
|
||||
|
||||
* groff/groff.cc, groff/groff.man, nroff/nroff.sh,
|
||||
nroff/nroff.man, pic/main.cc, pic/pic.man, troff/input.cc,
|
||||
troff/troff.man: Added option `-U' for unsafe mode. Safe mode
|
||||
(`-S') is now the default.
|
||||
|
||||
* README, NEWS: Updated.
|
||||
|
||||
1999-12-09 Werner LEMBERG <[email protected]>
|
||||
|
||||
* doc/groff.texinfo: Regenerated nodes and menus with emacs.
|
||||
|
||||
* doc/Makefile (clean): Added cleaning commands for groff.texinfo.
|
||||
|
||||
1999-12-06 Werner LEMBERG <[email protected]>
|
||||
|
||||
* configure.in: Removed AC_PREFIX_PROGRAM since it causes more
|
||||
grief than relief today. Additionally, it is against the GNU
|
||||
coding standards.
|
||||
|
||||
* configure: Recreated.
|
||||
|
||||
1999-12-05 Werner LEMBERG <[email protected]>
|
||||
|
||||
* configure.in: Added GROFF_LIBM.
|
||||
|
||||
* configure: Recreated.
|
||||
|
||||
* aclocal.m4 (GROFF_LIBM): New function which tests whether -lm is
|
||||
necessary.
|
||||
|
||||
* Makefile.in: Added definition of $(LIBM).
|
||||
|
||||
* Makefile.comm (LIBM): Removed.
|
||||
|
||||
* pfbtops/Makefile.sub: On AIX, -lm is needed also.
|
||||
|
||||
1999-12-03 Gaius Mulley <[email protected]>
|
||||
|
||||
* doc/Makefile: Added rule for generation pic.html.
|
||||
|
||||
(clean): Files produced by grohtml will be removed also.
|
||||
|
||||
* doc/pic.ms: Small fix.
|
||||
|
||||
* tmac/tmac.html: Fixed suppression of headers.
|
||||
|
||||
1999-11-16 Gaius Mulley <[email protected]>
|
||||
|
||||
* tmac/tmac.html: Fixing horizontal arrows.
|
||||
|
||||
Turning off hyphenation.
|
||||
|
||||
* tmac/tmac.an: Improved support for grohtml; better indentation,
|
||||
no footers/headers.
|
||||
|
||||
1999-10-31 Gaius Mulley <[email protected]>
|
||||
|
||||
* tmac/tmac.arkup: Added CDFTP macro
|
||||
|
||||
* tmac/tmac.html: All headers are turned off for ms, me, and mm
|
||||
macros.
|
||||
|
||||
* tmac/troffrc: Some additions for HTML stuff.
|
||||
|
||||
1999-10-06 Gaius Mulley <[email protected]>
|
||||
|
||||
* tmac/tmac.html: Small changes.
|
||||
|
||||
1999-09-26 Werner LEMBERG <[email protected]>
|
||||
|
||||
* doc/groff.texinfo: Minor fixes.
|
||||
|
||||
1999-09-26 Gaius Mulley <[email protected]>
|
||||
|
||||
* devhtml/TR: Changed spacewidth to 3.
|
||||
|
||||
* tmac/Makefile.sub (NORMALFILES): Added tmac.arkup.
|
||||
|
||||
* tmac/tmac.html: Moved markup macros to tmap.arkup.
|
||||
|
||||
* tmac/tmac.arkup: New file.
|
||||
|
||||
* grohtml/ChangeLog: New file.
|
||||
|
||||
1999-09-16 Werner LEMBERG <[email protected]>
|
||||
|
||||
* doc/groff.texinfo (Common Features): Added Copying chapter.
|
||||
Changed format to @smallbook.
|
||||
|
||||
1999-09-15 Werner LEMBERG <[email protected]>
|
||||
|
||||
* NEWS: Added info about groff.texinfo.
|
||||
|
||||
* doc/groff.texinfo: Will now compile (using texi2dvi) without
|
||||
warning messages.
|
||||
|
||||
1999-09-14 Werner LEMBERG <[email protected]>
|
||||
|
||||
* groff/groff.man: More updates.
|
||||
|
||||
1999-09-13 Werner LEMBERG <[email protected]>
|
||||
|
||||
* doc/groff.texinfo: New file. This manual is still very
|
||||
rudimentary. It has been originally contributed by Trent
|
||||
A. Fisher <[email protected]> with first corrections and
|
||||
additions by me.
|
||||
|
||||
* INSTALL: Added information about the `doc' subdir
|
||||
|
||||
* troff/troff.man: Minor fixes.
|
||||
|
||||
* groff/groff.man: Added missing `-L arg' to SYNOPSIS section;
|
||||
reordered options.
|
||||
|
||||
* troff/input.cc (usage): Added missing `-ffam' to usage message.
|
||||
|
||||
* Makefile.in (dist): groff-$(version).tar.gz must be removed
|
||||
also, otherwise it is included itself in another call of `make
|
||||
dist'.
|
||||
|
||||
* groff/groff.cc (synopsis): Removed superfluous space.
|
||||
|
||||
* PROJECTS, PROBLEMS, NEWS: Updated.
|
||||
|
||||
* xditview/Makefile: Removed.
|
||||
|
||||
* VERSION: Updated to 1.12beta.
|
||||
|
||||
* BUG-REPORT: Some cosmetic fixes. Corrected email address.
|
||||
|
||||
* README: Updated: Included documentation about CVS repository,
|
||||
mailing lists, and daily snapshots.
|
||||
|
||||
* tmac/Makefile.sub: Fixed $(tmap_wrap) finally.
|
||||
|
||||
1999-09-12 Bjarni Ingi Gislason <[email protected]>
|
||||
|
||||
* tmac/tmac.an: If the tag didn't fit into the space that the
|
||||
macro `TP' specifies, the rest of the tag went into the space for
|
||||
the next line.
|
||||
|
||||
1999-09-12 Jeffrey Copeland <[email protected]>
|
||||
|
||||
* grolj4/lj4.cc: Added duplex printing (option `-d').
|
||||
|
||||
* grolj4/grolj4.man: Document duplex printing.
|
||||
|
||||
1999-09-12 Werner LEMBERG <[email protected]>
|
||||
|
||||
* doc/Makefile (pic.ps): Fixed rule which caused problems with
|
||||
non-GNUish sed programs.
|
||||
|
||||
* tmac/doc-syms: Removed extra space from -iso8802-3 macro
|
||||
definition.
|
||||
|
||||
* configure.in (LIBS): Added `-lc'
|
||||
|
||||
* Makefile.comm (.man.n): Added substitution for @TMAC_AN_PREFIX@.
|
||||
|
||||
* pic/tex.cc (solid_arc): Casting M_PI to double.
|
||||
|
||||
* libgroff/putenv.c (putenv): Changed function header to ANSI C.
|
||||
|
||||
* groff/groff.man, tmac/Makefile.sub (MAN7), tmac/groff_msafer.man
|
||||
(new file), tmac/msafer.man (deleted), tmac/groff_me.man (new
|
||||
file), tmac/me.man (deleted): {me,msafer} -> groff_{me,msafer}.
|
||||
|
||||
* groff/groff_man.man: New file. This manual page was originally
|
||||
written for the Debian GNU/Linux system by Susan G. Kleinmann
|
||||
<[email protected]>.
|
||||
|
||||
* eqn/list.cc (list_box::compute_metrics,
|
||||
list_box::compute_sublist_width): Removed variable declaration to
|
||||
avoid shadowing warnings.
|
||||
|
||||
* grops/psrm.cc (resource_manager::process_file): Ditto.
|
||||
|
||||
* tfmtodit/tfmtodit.cc (main): Ditto.
|
||||
|
||||
* libgroff/font.cc (font::load_desc): Renamed auxiliary variable
|
||||
to avoid shadowing warnings.
|
||||
|
||||
* tbl/table.cc (block_entry::do_divert, table::do_row): Renamed
|
||||
shadowing loop variable.
|
||||
|
||||
* groff/groff.man, troff/troff.man: Added doc about grohtml.
|
||||
|
||||
1999-09-12 Gaius Mulley <[email protected]>
|
||||
|
||||
New grohtml frontend to convert groff input to html.
|
||||
|
||||
* Makefile.in (CCPROGDIRS, DEVDIRS): Added html device.
|
||||
|
||||
* tmac/Makefile.sub (NORMALFILES): Added tmac.html.
|
||||
|
||||
* tmac/eqnrc: Added html device.
|
||||
|
||||
* tmac/tmac.html: New file.
|
||||
|
||||
* eqn/main.cc (do_file, inline_equation), pic/troff.cc
|
||||
(troff_output::start_picture, troff_output::finish_picture),
|
||||
tbl/main.cc (process_input_file):
|
||||
Surrounded output with `graphics_start' and `graphics_end' so that
|
||||
the html driver can identify non-text portions.
|
||||
|
||||
* grodvi/dvi.cc (dvi_printer::set_char), grolj4/lj4.cc
|
||||
(lj4_printer::set_char), grops/ps.cc (ps_printer::set_char),
|
||||
grotty/tty.ps (tty_printer::set_char): Additional parameter
|
||||
`name'.
|
||||
|
||||
* include/printer.h: Class printer: New function
|
||||
set_char_and_width; new variables (is_char_named, is_named_set,
|
||||
named_command, named_char_s, named_char_n) to hold information
|
||||
about named characters -- needed by the html driver.
|
||||
|
||||
* libdriver/printer.cc (printer::set_ascii_char,
|
||||
printer::set_special_char): Use set_char_and_width.
|
||||
|
||||
* devhtml/*: New device files for html driver.
|
||||
|
||||
* grohtml/*: New driver grohtml.
|
||||
|
||||
1999-09-11 Wilfredo Sanchez <[email protected]>
|
||||
|
||||
* tmac/doc-common, tmac/tmac.an: Removed the word `UNIX' in
|
||||
default strings.
|
||||
|
||||
1999-09-11 Luke Mewburn <[email protected]>
|
||||
|
||||
* libgroff/string.cc (search): Small fix to test against NULL
|
||||
pointer.
|
||||
|
||||
1999-09-11 Jeff Conrad <[email protected]>
|
||||
|
||||
* troff/node.cc (copy): The characters in a bracket escape (e.g.,
|
||||
\b'abc') were stacked in reverse order when processed in a
|
||||
diversion.
|
||||
|
||||
* troff/node.h: Added `*last' to struct `node' to make the above
|
||||
fix work.
|
||||
|
||||
* troff/input.cc (read_draw_node), libdriver/input.cc (do_file):
|
||||
The default scale for the 'f' and 't' graphics functions were 'm'
|
||||
rather than 'u' (i.e., no scaling).
|
||||
|
||||
1999-09-11 Peter Miller <[email protected]>
|
||||
|
||||
* groff/groff.cc (main), groff.man, soelim/soelim.cc (main,
|
||||
do_file), soelim/soelim.man: Added `-I file' option to soelim,
|
||||
defining include paths.
|
||||
|
||||
* soelim/soelim.cc (include_path_append): New function.
|
||||
|
||||
1999-09-11 Larry Jones <[email protected]>
|
||||
|
||||
* tbl/main.cc (process_options): Unix (at least Documenter's
|
||||
Workbench) tbl allows arbitrary non-alpha characters between
|
||||
options.
|
||||
|
||||
1999-09-11 Paul Eggert <[email protected]>
|
||||
|
||||
Y2k fixes. Don't assume that the current year precedes 2000.
|
||||
|
||||
* doc/meref.me: Add \n(y2, \n(y4.
|
||||
|
||||
* tmac/doc-common (Yr): New number register.
|
||||
(Dd): Don't assume current year precedes 2000.
|
||||
|
||||
* tmac/tmac.e (td): Likewise.
|
||||
(y2, y4): New number registers.
|
||||
|
||||
* pic/pic.man: Update reference for pic paper to May, 1991
|
||||
version.
|
||||
|
||||
1999-09-11 Werner LEMBERG <[email protected]>
|
||||
|
||||
* tmac/Makefile.sub (install_data, stamp-wrap, uninstall_sub):
|
||||
Removed quotation marks which prevented correct expansion of
|
||||
$(tmac_wrap).
|
||||
|
||||
* devlj4/Makefile.sub (LJ4RES): Fixed value (600 instead of 300).
|
||||
|
||||
1999-09-10 Werner LEMBERG <[email protected]>
|
||||
|
||||
* Makefile.sub (DISTCLEANFILES): Added `config.log' and
|
||||
`config.cache'.
|
||||
|
||||
* Removed configure.old.
|
||||
|
||||
1999-08-31 Werner LEMBERG <[email protected]>
|
||||
|
||||
* VERSION: Updated to 1.11.1
|
||||
|
||||
1999-05-27 Werner LEMBERG <[email protected]>
|
||||
|
||||
* doc/Makefile: changed `.PS' postfix to `.ps' for consistency.
|
||||
|
||||
* tmac/Makefile.sub (install_data, stamp-wrap, uninstall_sub):
|
||||
added quotations around $(tmac_wrap) to avoid syntax error if
|
||||
variable is empty.
|
||||
|
||||
* configure: Newly generated using autoconf 2.13.
|
||||
|
||||
* Makefile.in (LDFLAGS): Set variable to @LDFLAGS@.
|
||||
|
||||
Fri Aug 15 08:51:47 1997 Eric S. Raymond <[email protected]>
|
||||
|
||||
* README, PROJECTS, NEWS, INSTALL, VERSION,
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
$FreeBSD$
|
||||
|
||||
This directory contains virgin copies of the original distribution files
|
||||
on a "vendor" branch. Do not, under any circumstances, attempt to upgrade
|
||||
the files in this directory via patches and a cvs commit.
|
||||
@@ -22,7 +24,7 @@ Do not, under any circumstances, deviate from this procedure.
|
||||
To make local changes to groff, simply patch and commit to the main
|
||||
branch (aka HEAD). Never make local changes on the FSF branch.
|
||||
|
||||
All local changes should be submitted to "[email protected]" for
|
||||
inclusion in the next vendor release.
|
||||
All local changes should be submitted to "[email protected]" or
|
||||
"[email protected]" for inclusion in the next vendor release.
|
||||
|
||||
[email protected] - 7 Sep 1996
|
||||
@@ -13,7 +13,7 @@ the CXX environment variable.
|
||||
|
||||
If you have a library that provides a faster malloc than your system's
|
||||
usual malloc, it is good idea to include it in LIBS. For example,
|
||||
using the malloc that comes with GNU Emacs version 18 can give a
|
||||
using the malloc that comes with GNU Emacs version 20 can give a
|
||||
worthwhile (and sometimes spectacular) performance improvement.
|
||||
|
||||
When you have built groff, you can use the test-groff script to try
|
||||
@@ -27,5 +27,9 @@ the build directory when the script is run. For example, you could do
|
||||
If you want to install gxditview (an X11 previewer), follow the
|
||||
instructions in the INSTALL file in the xditview directory.
|
||||
|
||||
To get PostScript versions of the documentation resp. reference files for
|
||||
the `me' macros and the `pic' preprocessor, simply say `make' in the
|
||||
`doc' subdirectory.
|
||||
|
||||
If you have problems, read the PROBLEMS file. If this doesn't help
|
||||
send a bug report using the form in the file BUG-REPORT.
|
||||
@@ -31,7 +31,6 @@ TOP=..
|
||||
LIBGROFF=$(TOP)/libgroff/libgroff.a
|
||||
LIBBIB=$(TOP)/libbib/libbib.a
|
||||
LIBDRIVER=$(TOP)/libdriver/libdriver.a
|
||||
LIBM=-lm
|
||||
MLIB=
|
||||
XLIBS=
|
||||
YTABH=
|
||||
@@ -121,6 +120,7 @@ extraclean:
|
||||
-e "s;@MAN7EXT@;$(man7ext);g" \
|
||||
-e "s;@TMAC_S_PREFIX@;$(tmac_s_prefix);g" \
|
||||
-e "s;@TMAC_M_PREFIX@;$(tmac_m_prefix);g" \
|
||||
-e "s;@TMAC_AN_PREFIX@;$(tmac_an_prefix);g" \
|
||||
-e "s;@TMAC_MDIR@;$(tmacdir)/mm;g" \
|
||||
-e "s;@BROKEN_SPOOLER_FLAGS@;$(BROKEN_SPOOLER_FLAGS);g" \
|
||||
-e "s;@VERSION@;`cat $(srcdir)/../VERSION`;g" \
|
||||
|
||||
@@ -166,8 +166,13 @@ man7dir=$(manroot)/man$(man7ext)
|
||||
# -DUNISTD_H_DECLARES_GETOPT if your C++ <unistd.h> declares getopt()
|
||||
# -DSTDLIB_H_DECLARES_PUTENV if your C++ <stdlib.h> declares putenv()
|
||||
# -DSTDIO_H_DECLARES_POPEN if your C++ <stdio.h> declares popen()
|
||||
# -DSTDIO_H_DECLARES_PCLOSE if your C++ <stdio.h> declares pclose()
|
||||
# -DHAVE_SYS_NERR if you have sysnerr in <errno.h> or <stdio.h>
|
||||
# -DHAVE_SYS_ERRLIST if you have sys_errlist in <errno.h> or
|
||||
# <stdio.h>
|
||||
# -DMATH_H_DECLARES_HYPOT if you have hypot() in <math.h>
|
||||
# -DTRADITIONAL_CPP if your C++ compiler uses a traditional
|
||||
# (Reiser) preprocessor.
|
||||
# (Reiser) preprocessor
|
||||
# -DLONG_FOR_TIME_T if localtime() takes a long * not a time_t *
|
||||
# -DHAVE_STRUCT_EXCEPTION if <math.h> defines struct exception
|
||||
# -DRETSIGTYPE=int if signal handlers return int not void
|
||||
@@ -187,11 +192,12 @@ CDEFINES=$(DEFINES)
|
||||
|
||||
CCFLAGS=@CXXFLAGS@
|
||||
CFLAGS=@CFLAGS@
|
||||
LDFLAGS=
|
||||
LDFLAGS=@LDFLAGS@
|
||||
YACC=@YACC@
|
||||
YACCFLAGS=-v
|
||||
|
||||
LIBS=@LIBS@
|
||||
LIBM=@LIBM@
|
||||
RANLIB=@RANLIB@
|
||||
INSTALL=@INSTALL@
|
||||
INSTALL_PROGRAM=@INSTALL_PROGRAM@
|
||||
@@ -234,7 +240,7 @@ MDEFINES="MAKEOVERRIDES=$(MAKEOVERRIDES)" \
|
||||
"tmac_s_prefix=$(tmac_s_prefix)" "tmac_m_prefix=$(tmac_m_prefix)" \
|
||||
"CCC=$(CCC)" "CC=$(CC)" "CCDEFINES=$(CCDEFINES)" "CDEFINES=$(CDEFINES)" \
|
||||
"CCFLAGS=$(CCFLAGS)" "CFLAGS=$(CFLAGS)" "LDFLAGS=$(LDFLAGS)" \
|
||||
"YACC=$(YACC)" "YACCFLAGS=$(YACCFLAGS)" \
|
||||
"YACC=$(YACC)" "YACCFLAGS=$(YACCFLAGS)" "LIBM=$(LIBM)" \
|
||||
"LIBS=$(LIBS)" "LIBOBJS=$(LIBOBJS)" "RANLIB=$(RANLIB)" "AR=$(AR)" \
|
||||
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" "INSTALL_DATA=$(INSTALL_DATA)" \
|
||||
"ETAGS=$(ETAGS)" "ETAGSFLAGS=$(ETAGSFLAGS)" "ETAGSCCFLAG=$(ETAGSCCFLAG)" \
|
||||
@@ -245,11 +251,12 @@ SHELL=/bin/sh
|
||||
INCDIRS=include
|
||||
LIBDIRS=libgroff libdriver libbib
|
||||
CCPROGDIRS=groff troff tbl pic eqn grops grotty grodvi tfmtodit \
|
||||
grolj4 hpftodit refer lookbib indxbib lkbib soelim addftinfo
|
||||
grolj4 hpftodit refer lookbib indxbib lkbib soelim addftinfo \
|
||||
grohtml
|
||||
CPROGDIRS=pfbtops psbb
|
||||
PROGDIRS=$(CCPROGDIRS) $(CPROGDIRS)
|
||||
DEVDIRS=devps devdvi devascii devlatin1 devX75 devX75-12 devX100 devX100-12 \
|
||||
devlj4
|
||||
devlj4 devhtml
|
||||
OTHERDIRS=man tmac afmtodit grog nroff mm
|
||||
ALLDIRS=$(INCDIRS) $(LIBDIRS) $(PROGDIRS) $(DEVDIRS) $(OTHERDIRS)
|
||||
EXTRADIRS=devps/generate devdvi/generate xditview doc
|
||||
@@ -269,7 +276,7 @@ $(TARGETS):
|
||||
dot: FORCE
|
||||
@$(MAKE) $(MDEFINES) srcdir=$(srcdir) VPATH=$(srcdir) \
|
||||
-f $(srcdir)/Makefile.comm -f $(srcdir)/Makefile.sub $(do)
|
||||
|
||||
|
||||
$(LIBDIRS): FORCE
|
||||
@if test $(srcdir) = .; \
|
||||
then srcdir=.; \
|
||||
@@ -348,6 +355,7 @@ dist:
|
||||
rm -f Makefile; \
|
||||
$(LN_S) $$srcdir/Makefile.init Makefile
|
||||
mv tmp groff-$(version)
|
||||
rm -f groff-$(version).tar.gz
|
||||
tar cfh - groff-$(version) | gzip -c >groff-$(version).tar.gz
|
||||
rm -fr groff-$(version)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
DISTCLEANFILES=config.status Makefile
|
||||
DISTCLEANFILES=config.status config.log config.cache Makefile
|
||||
CLEANADD=Makefile.cfg conftest*
|
||||
|
||||
distfiles: configure
|
||||
|
||||
+72
-8
@@ -1,17 +1,81 @@
|
||||
This file describes recent user-visible changes in groff. Bug fixes
|
||||
are not described. There are more details in the man pages.
|
||||
|
||||
VERSION 1.11
|
||||
VERSION 1.13, 1.14, 1.15
|
||||
========================
|
||||
|
||||
Bug fixes only; no user-visible changes.
|
||||
|
||||
VERSION 1.12
|
||||
============
|
||||
|
||||
James Clark has written (11 Aug 1997):
|
||||
>Frankly I don't known when I'm going to be able to do another groff
|
||||
>release. At the moment, I have no time, no Unix machine, and not a lot
|
||||
>of interest in doing it. If anybody else wants to take over groff
|
||||
>maintenance, that would be fine with me. Last time I asked in
|
||||
>gnu.groff.bug, nobody volunteered.
|
||||
Finally, there are new maintainers for groff. Mailing lists and a CVS
|
||||
repository are available also. See the file README for details. Not
|
||||
all reported bug could be fixed, so please send mails again if
|
||||
something is still not working.
|
||||
|
||||
This means groff is an orphan. It is looking for a maintainer.
|
||||
Most of the installation problems should have vanished now (most
|
||||
notably the $(tmac_wrap) bug).
|
||||
|
||||
There is now a man page called groff_man.man which documents the
|
||||
basics of the -man macros. It has been originally written by Susan
|
||||
G. Kleinmann <[email protected]>.
|
||||
|
||||
A (still incomplete) groff reference manual in texinfo format
|
||||
originally contributed by Trent A. Fisher <[email protected]>.
|
||||
|
||||
me.man and msafer.man have been renamed to groff_me.man
|
||||
resp. groff_msafer.man for consistency.
|
||||
|
||||
Default strings for macros in doc-common resp. tmac.an no longer
|
||||
contain the word `UNIX'.
|
||||
|
||||
groff should now be Y2k safe (fixes contributed by Paul Eggert
|
||||
<[email protected]>).
|
||||
|
||||
Following the GNU standards, groff will now use the prefix
|
||||
`/usr/local/' as the default instead of replacing an existent groff
|
||||
binary.
|
||||
|
||||
groff, troff, nroff, and pic now support the -U flag to activate unsafe
|
||||
behaviour (without -msafer); the -S flag for using the -msafer macros
|
||||
is now the default.
|
||||
|
||||
Grohtml
|
||||
-------
|
||||
|
||||
This is a new output device for producing HTML output contributed by
|
||||
Gaius Mulley <[email protected]>. It is still very alpha but has been
|
||||
included into the distribution so that a lot of people have a chance
|
||||
to test it. Bug reports are highly welcome.
|
||||
|
||||
Grolj4
|
||||
------
|
||||
|
||||
Duplex printing support has been contributed by Jeffrey Copeland
|
||||
<[email protected]>.
|
||||
|
||||
Soelim
|
||||
------
|
||||
|
||||
Added -I option for defining include paths (patch contributed by Peter
|
||||
Miller <[email protected]>).
|
||||
|
||||
Gxditview
|
||||
---------
|
||||
|
||||
Fallback resources added (patch contributed by Larry Jones
|
||||
<[email protected]>).
|
||||
|
||||
Will now support 8 gray levels.
|
||||
|
||||
mm
|
||||
--
|
||||
|
||||
New version 1.32 (contributed by Joergen Haegg <[email protected]>).
|
||||
|
||||
VERSION 1.11
|
||||
============
|
||||
|
||||
Complete documentation for pic is now in the file doc/pic.ms. It was
|
||||
contributed by Eric S. Raymond, <[email protected]>, who is emphatically
|
||||
|
||||
+10
-5
@@ -9,6 +9,11 @@ Make sure -DCFRONT_ANSI_BUG is included in DEFINES in the top-level
|
||||
Makefile. If that doesn't solve the problem, define INT_MIN as
|
||||
-INT_MAX in libgroff/lib.h.
|
||||
|
||||
* I get errors when I try to compile groff with Sun C++ version 5.0 or 5.1.
|
||||
|
||||
This is a known problem; see Sun bug #4301919. As of this writing, no
|
||||
patch is available. Use GCC 2.95.2 or later instead.
|
||||
|
||||
* I get errors when I try to compile groff with Sun C++ version 3 or
|
||||
earlier.
|
||||
|
||||
@@ -179,7 +184,7 @@ Makefile.
|
||||
* When I try to print the output of groff -Tps, I get no output at all
|
||||
from the printer, and the log file shows the error
|
||||
%%[ error: undefined; offendingcommand: BP ]%%
|
||||
I using TranScript spooling software.
|
||||
I'm using TranScript spooling software.
|
||||
|
||||
This is a bug in the page reversal filter in early versions of
|
||||
TranScript. Change the `broken' parameter in
|
||||
@@ -191,7 +196,7 @@ program, all the pages are displayed on top of each other.
|
||||
This is a defect in pageview. Change the `broken' parameter in
|
||||
/usr/local/lib/groff/font/devps/DESC to 2.
|
||||
|
||||
* With groff -TX75, -TX100or -X, I can only view the first page.
|
||||
* With groff -TX75, -TX100 or -X, I can only view the first page.
|
||||
|
||||
The left mouse button brings up a menu that allows you to view other
|
||||
pages.
|
||||
@@ -241,11 +246,11 @@ There seem to be many different styles of page header and footer
|
||||
produced by different versions of the -man macros. You will need to
|
||||
modify macros/tmac.an to suit your personal taste. For example, if
|
||||
you want the center of the page header to say
|
||||
UNIX Programmer's Manual
|
||||
System Programmer's Manual
|
||||
you will need to change the line
|
||||
.el .ds an-extra3 \"UNIX Programmer's Manual
|
||||
.el .ds an-extra3 \"System Programmer's Manual
|
||||
to
|
||||
.el .ds an-extra3 UNIX Programmer's Manual
|
||||
.el .ds an-extra3 System Programmer's Manual
|
||||
|
||||
* While formatting a manual page, groff complains about not being able to
|
||||
break lines. The problem seems to be caused by a line like:
|
||||
|
||||
@@ -9,12 +9,8 @@ Here are some things that would be useful additions to groff:
|
||||
a page-makeup postprocessor and associated macro package
|
||||
(like pm and -mpm)
|
||||
|
||||
a complete, self-contained manual ([email protected] is working on this)
|
||||
a complete, self-contained manual -- first results can be found in
|
||||
doc/groff.texinfo.
|
||||
|
||||
If you want to work on one of these, you should probably post to
|
||||
gnu.groff.bug to see if anyone else has gotten there first.
|
||||
|
||||
As of August 1997 groff lacks a maintainer. If you are seriously interested
|
||||
in these projects, perhaps you should volunteer.
|
||||
|
||||
|
||||
+53
-12
@@ -3,17 +3,18 @@ is given in the file VERSION.
|
||||
|
||||
Included in this release are implementations of troff, pic, eqn, tbl,
|
||||
refer, the -man macros and the -ms macros, and drivers for PostScript,
|
||||
TeX dvi format, HP LaserJet 4 printers, and typewriter-like devices.
|
||||
Also included is a modified version of the Berkeley -me macros, an
|
||||
enhanced version of the X11 xditview previewer, and an implementation
|
||||
of the -mm macros contributed by Joergen Haegg ([email protected]).
|
||||
TeX dvi format, HP LaserJet 4 printers, HTML format (still alpha), and
|
||||
typewriter-like devices. Also included is a modified version of the
|
||||
Berkeley -me macros, an enhanced version of the X11 xditview
|
||||
previewer, and an implementation of the -mm macros contributed by
|
||||
Joergen Haegg ([email protected]).
|
||||
|
||||
See the file INSTALL for installation instructions. You will require
|
||||
a C++ compiler.
|
||||
|
||||
The file NEWS describes recent user-visible changes to groff.
|
||||
|
||||
Groff is free software. See the file COPYING for copying permission.
|
||||
Groff is free software. See the file COPYING for copying permission.
|
||||
|
||||
The file PROBLEMS describes various problems that have been
|
||||
encountered in compiling, installing, and running groff.
|
||||
@@ -23,13 +24,53 @@ familiar with the Unix versions of troff, -man, -ms and the
|
||||
preprocessors.
|
||||
|
||||
The most recent released version of groff is always available by
|
||||
anonymous ftp from prep.ai.mit.edu in the directory pub/gnu.
|
||||
anonymous ftp from ftp.gnu.org in the directory pub/gnu/groff.
|
||||
|
||||
A CVS repository is now available, containing the current development
|
||||
version of groff. You can access it with the commands
|
||||
|
||||
export CVSROOT=:pserver:[email protected]:/var/cvs
|
||||
cvs login
|
||||
cvs -z9 co groff
|
||||
|
||||
(if the prompt for the password appears, just press the enter key).
|
||||
After a successful login you no longer need the first two commands; an
|
||||
update of a checked out repository should be done with
|
||||
|
||||
cvs -z9 update -d
|
||||
|
||||
Please read the info pages of cvs for further details.
|
||||
|
||||
Alternatively, you can download snapshots (which are updated twice a
|
||||
day) from
|
||||
|
||||
ftp://ftp.ffii.org/pub/groff/devel/groff-current.tar.gz
|
||||
|
||||
or a diff file relative to the latest official groff release as
|
||||
|
||||
ftp://ftp.ffii.org/pub/groff/devel/groff-<version>-current.diff.gz
|
||||
|
||||
Please report bugs using the form in the file BUG-REPORT; the idea of
|
||||
this is to make sure that FSF has all the information it needs to fix the
|
||||
bug. At the very least, read the BUG-REPORT form and make sure that
|
||||
you supply all the information that it asks for. Even if you are not
|
||||
sure that something is a bug, report it using BUG-REPORT: this will
|
||||
enable us to determine whether it really is a bug or not.
|
||||
this is to make sure that FSF has all the information it needs to fix
|
||||
the bug. At the very least, read the BUG-REPORT form and make sure
|
||||
that you supply all the information that it asks for. Even if you are
|
||||
not sure that something is a bug, report it using BUG-REPORT: this
|
||||
will enable us to determine whether it really is a bug or not.
|
||||
|
||||
GNU groff was written by James Clark <[email protected]>.
|
||||
Three mailing lists are available:
|
||||
|
||||
[email protected] for reporting bugs
|
||||
[email protected] for general discussion of groff
|
||||
[email protected] a read-only list showing logs of
|
||||
commitments to the CVS repository
|
||||
|
||||
Note that [email protected] is an alias for [email protected]; you must be
|
||||
subscribed to the `groff' and `groff-commit' lists to send mails.
|
||||
|
||||
To subscribe, send a mail to <list>-request@<domain> (example:
|
||||
[email protected]) with the word `subscribe' in either the
|
||||
subject or body of the email (don't include the quotes).
|
||||
|
||||
GNU groff was written by James Clark <[email protected]>. It is now
|
||||
maintained by Ted Harding <[email protected]> and Werner
|
||||
Lemberg <[email protected]>.
|
||||
@@ -1 +1 @@
|
||||
1.11
|
||||
1.15
|
||||
Vendored
+160
-97
@@ -17,24 +17,21 @@ dnl You should have received a copy of the GNU General Public License along
|
||||
dnl with groff; see the file COPYING. If not, write to the Free Software
|
||||
dnl Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_PRINT,
|
||||
[if test -z "$PSPRINT"
|
||||
then
|
||||
[if test -z "$PSPRINT"; then
|
||||
AC_CHECK_PROGS(LPR,lpr)
|
||||
AC_CHECK_PROGS(LP,lp)
|
||||
if test -n "$LPR" && test -n "$LP"
|
||||
then
|
||||
if test -n "$LPR" && test -n "$LP"; then
|
||||
# HP-UX provides an lpr command that emulates lpr using lp,
|
||||
# but it doesn't have lpq; in this case we want to use lp
|
||||
# rather than lpr.
|
||||
AC_CHECK_PROGS(LPQ,lpq)
|
||||
test -n "$LPQ" || LPR=
|
||||
fi
|
||||
if test -n "$LPR"
|
||||
then
|
||||
if test -n "$LPR"; then
|
||||
PSPRINT="$LPR"
|
||||
elif test -n "$LP"
|
||||
then
|
||||
elif test -n "$LP"; then
|
||||
PSPRINT="$LP"
|
||||
fi
|
||||
fi
|
||||
@@ -43,10 +40,8 @@ AC_MSG_CHECKING([for command to use for printing PostScript files])
|
||||
AC_MSG_RESULT($PSPRINT)
|
||||
# Figure out DVIPRINT from PSPRINT.
|
||||
AC_MSG_CHECKING([for command to use for printing dvi files])
|
||||
if test -n "$PSPRINT" && test -z "$DVIPRINT"
|
||||
then
|
||||
if test "X$PSPRINT" = "Xlpr"
|
||||
then
|
||||
if test -n "$PSPRINT" && test -z "$DVIPRINT"; then
|
||||
if test "X$PSPRINT" = "Xlpr"; then
|
||||
DVIPRINT="lpr -d"
|
||||
else
|
||||
DVIPRINT="$PSPRINT"
|
||||
@@ -54,11 +49,17 @@ then
|
||||
fi
|
||||
AC_SUBST(DVIPRINT)
|
||||
AC_MSG_RESULT($DVIPRINT)])dnl
|
||||
dnl
|
||||
dnl
|
||||
dnl Bison generated parsers have problems with C++ compilers other than g++.
|
||||
dnl So byacc is preferred over bison.
|
||||
dnl
|
||||
AC_DEFUN(GROFF_PROG_YACC,
|
||||
[AC_CHECK_PROGS(YACC, byacc 'bison -y', yacc)])
|
||||
dnl
|
||||
dnl
|
||||
dnl GROFF_CSH_HACK(if hack present, if not present)
|
||||
dnl
|
||||
AC_DEFUN(GROFF_CSH_HACK,
|
||||
[AC_MSG_CHECKING([for csh hash hack])
|
||||
cat <<EOF >conftest.sh
|
||||
@@ -68,15 +69,16 @@ export PATH || exit 0
|
||||
exit 1
|
||||
EOF
|
||||
chmod +x conftest.sh
|
||||
if echo ./conftest.sh | (csh >/dev/null 2>&1) >/dev/null 2>&1
|
||||
then
|
||||
if echo ./conftest.sh | (csh >/dev/null 2>&1) >/dev/null 2>&1; then
|
||||
AC_MSG_RESULT(yes); $1
|
||||
else
|
||||
AC_MSG_RESULT(no); $2
|
||||
fi
|
||||
rm -f conftest.sh
|
||||
])dnl
|
||||
rm -f conftest.sh])dnl
|
||||
dnl
|
||||
dnl
|
||||
dnl From [email protected] (Hans Zuidam)
|
||||
dnl
|
||||
AC_DEFUN(GROFF_ISC_SYSV3,
|
||||
[AC_MSG_CHECKING([for ISC 3.x or 4.x])
|
||||
changequote(,)dnl
|
||||
@@ -88,6 +90,8 @@ then
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_POSIX,
|
||||
[AC_MSG_CHECKING([whether -D_POSIX_SOURCE is necessary])
|
||||
AC_LANG_SAVE
|
||||
@@ -97,75 +101,134 @@ extern "C" { void fileno(int); }],,
|
||||
AC_MSG_RESULT(yes);AC_DEFINE(_POSIX_SOURCE),
|
||||
AC_MSG_RESULT(no))
|
||||
AC_LANG_RESTORE])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_GETOPT,
|
||||
[AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
AC_MSG_CHECKING([declaration of getopt in stdlib.h])
|
||||
AC_TRY_COMPILE(
|
||||
[#include <stdlib.h>
|
||||
extern "C" { void getopt(int); }],,AC_MSG_RESULT(no),
|
||||
AC_TRY_COMPILE([#include <stdlib.h>
|
||||
extern "C" { void getopt(int); }],,
|
||||
AC_MSG_RESULT(no),
|
||||
AC_MSG_RESULT(yes);AC_DEFINE(STDLIB_H_DECLARES_GETOPT))
|
||||
AC_MSG_CHECKING([declaration of getopt in unistd.h])
|
||||
AC_TRY_COMPILE([#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
extern "C" { void getopt(int); }],,AC_MSG_RESULT(no),
|
||||
extern "C" { void getopt(int); }],,
|
||||
AC_MSG_RESULT(no),
|
||||
AC_MSG_RESULT(yes);AC_DEFINE(UNISTD_H_DECLARES_GETOPT))
|
||||
AC_LANG_RESTORE])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_PUTENV,
|
||||
[AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
AC_MSG_CHECKING([declaration of putenv])
|
||||
AC_TRY_COMPILE([#include <stdlib.h>
|
||||
extern "C" { void putenv(int); }],,AC_MSG_RESULT(no),
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(STDLIB_H_DECLARES_PUTENV))
|
||||
extern "C" { void putenv(int); }],,
|
||||
AC_MSG_RESULT(no),
|
||||
AC_MSG_RESULT(yes);AC_DEFINE(STDLIB_H_DECLARES_PUTENV))
|
||||
AC_LANG_RESTORE])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_POPEN,
|
||||
[AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
AC_MSG_CHECKING([declaration of popen])
|
||||
AC_TRY_COMPILE([#include <stdio.h>
|
||||
extern "C" { void popen(int); }],,AC_MSG_RESULT(no),
|
||||
extern "C" { void popen(int); }],,
|
||||
AC_MSG_RESULT(no),
|
||||
AC_MSG_RESULT(yes);AC_DEFINE(STDIO_H_DECLARES_POPEN))
|
||||
AC_LANG_RESTORE])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_PCLOSE,
|
||||
[AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
AC_MSG_CHECKING([declaration of pclose])
|
||||
AC_TRY_COMPILE([#include <stdio.h>
|
||||
extern "C" { void pclose(int); }],,AC_MSG_RESULT(no),
|
||||
extern "C" { void pclose(int); }],,
|
||||
AC_MSG_RESULT(no),
|
||||
AC_MSG_RESULT(yes);AC_DEFINE(STDIO_H_DECLARES_PCLOSE))
|
||||
AC_LANG_RESTORE])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_SYS_NERR,
|
||||
[AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
AC_MSG_CHECKING([for sys_nerr in <errno.h> or <stdio.h>])
|
||||
AC_TRY_COMPILE([#include <errno.h>
|
||||
#include <stdio.h>],
|
||||
[int k; k = sys_nerr;],
|
||||
AC_MSG_RESULT(yes);AC_DEFINE(HAVE_SYS_NERR),
|
||||
AC_MSG_RESULT(no))
|
||||
AC_LANG_RESTORE])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_SYS_ERRLIST,
|
||||
[AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
AC_MSG_CHECKING([for sys_errlist[] in <errno.h> or <stdio.h>])
|
||||
AC_TRY_COMPILE([#include <errno.h>
|
||||
#include <stdio.h>],
|
||||
[int k; k = (int)sys_errlist[0];],
|
||||
AC_MSG_RESULT(yes);AC_DEFINE(HAVE_SYS_ERRLIST),
|
||||
AC_MSG_RESULT(no))
|
||||
AC_LANG_RESTORE])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_HYPOT,
|
||||
[AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
AC_MSG_CHECKING([declaration of hypot])
|
||||
AC_TRY_COMPILE([#include <math.h>
|
||||
extern "C" { double hypot(double,double); }],,
|
||||
AC_MSG_RESULT(no),
|
||||
AC_MSG_RESULT(yes);AC_DEFINE(MATH_H_DECLARES_HYPOT))
|
||||
AC_LANG_RESTORE])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_OSFCN_H,
|
||||
[AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
AC_MSG_CHECKING([C++ <osfcn.h>])
|
||||
AC_TRY_COMPILE([#include <osfcn.h>],
|
||||
[read(0, 0, 0); open(0, 0);],AC_MSG_RESULT(yes);AC_DEFINE(HAVE_CC_OSFCN_H),
|
||||
[read(0, 0, 0); open(0, 0);],
|
||||
AC_MSG_RESULT(yes);AC_DEFINE(HAVE_CC_OSFCN_H),
|
||||
AC_MSG_RESULT(no))
|
||||
AC_LANG_RESTORE])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_LIMITS_H,
|
||||
[AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
AC_MSG_CHECKING([C++ <limits.h>])
|
||||
AC_TRY_COMPILE([#include <limits.h>],
|
||||
[int x = INT_MIN; int y = INT_MAX; int z = UCHAR_MAX;],
|
||||
AC_MSG_RESULT(yes);AC_DEFINE(HAVE_CC_LIMITS_H),AC_MSG_RESULT(no))
|
||||
AC_MSG_RESULT(yes);AC_DEFINE(HAVE_CC_LIMITS_H),
|
||||
AC_MSG_RESULT(no))
|
||||
AC_LANG_RESTORE])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_TIME_T,
|
||||
[AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
AC_MSG_CHECKING([for declaration of time_t])
|
||||
AC_TRY_COMPILE([#include <time.h>],
|
||||
[time_t t = time(0); struct tm *p = localtime(&t);],AC_MSG_RESULT(yes),
|
||||
[time_t t = time(0); struct tm *p = localtime(&t);],
|
||||
AC_MSG_RESULT(yes),
|
||||
AC_MSG_RESULT(no);AC_DEFINE(LONG_FOR_TIME_T))
|
||||
AC_LANG_RESTORE])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_STRUCT_EXCEPTION,
|
||||
[AC_MSG_CHECKING([struct exception])
|
||||
AC_TRY_COMPILE([#include <math.h>],
|
||||
[struct exception e;],
|
||||
AC_MSG_RESULT(yes);AC_DEFINE(HAVE_STRUCT_EXCEPTION),
|
||||
AC_MSG_RESULT(no))])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_ARRAY_DELETE,
|
||||
[AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
@@ -173,9 +236,12 @@ AC_MSG_CHECKING([whether ANSI array delete syntax supported])
|
||||
AC_TRY_COMPILE(,
|
||||
changequote(,)dnl
|
||||
char *p = new char[5]; delete [] p;changequote([,]),
|
||||
AC_MSG_RESULT(yes),AC_MSG_RESULT(no);AC_DEFINE(ARRAY_DELETE_NEEDS_SIZE))
|
||||
AC_MSG_RESULT(yes),
|
||||
AC_MSG_RESULT(no);AC_DEFINE(ARRAY_DELETE_NEEDS_SIZE))
|
||||
AC_LANG_RESTORE])dnl
|
||||
dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_TRADITIONAL_CPP,
|
||||
[AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
@@ -184,11 +250,11 @@ AC_TRY_COMPILE([#define name2(a,b) a/**/b],[int name2(foo,bar);],
|
||||
AC_MSG_RESULT(yes);AC_DEFINE(TRADITIONAL_CPP),
|
||||
AC_MSG_RESULT(no))
|
||||
AC_LANG_RESTORE])dnl
|
||||
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_WCOREFLAG,
|
||||
[AC_MSG_CHECKING([w_coredump])
|
||||
AC_TRY_RUN([
|
||||
#include <sys/types.h>
|
||||
AC_TRY_RUN([#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
main()
|
||||
{
|
||||
@@ -199,50 +265,44 @@ main()
|
||||
((union wait *)&i)->w_coredump = 1;
|
||||
exit(i != 0200);
|
||||
#endif
|
||||
}
|
||||
],AC_MSG_RESULT(yes);AC_DEFINE(WCOREFLAG,0200),AC_MSG_RESULT(no),
|
||||
}],
|
||||
AC_MSG_RESULT(yes);AC_DEFINE(WCOREFLAG,0200),
|
||||
AC_MSG_RESULT(no),
|
||||
AC_MSG_RESULT(no))])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_BROKEN_SPOOLER_FLAGS,
|
||||
[AC_MSG_CHECKING([default value for grops -b option])
|
||||
test -n "${BROKEN_SPOOLER_FLAGS}" || BROKEN_SPOOLER_FLAGS=7
|
||||
AC_MSG_RESULT($BROKEN_SPOOLER_FLAGS)
|
||||
AC_SUBST(BROKEN_SPOOLER_FLAGS)])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_PAGE,
|
||||
[AC_MSG_CHECKING([default paper size])
|
||||
if test -z "$PAGE"
|
||||
then
|
||||
if test -z "$PAGE"; then
|
||||
descfile=
|
||||
if test -r $prefix/share/groff/font/devps/DESC
|
||||
then
|
||||
if test -r $prefix/share/groff/font/devps/DESC; then
|
||||
descfile=$prefix/share/groff/font/devps/DESC
|
||||
elif test -r $prefix/lib/groff/font/devps/DESC
|
||||
then
|
||||
elif test -r $prefix/lib/groff/font/devps/DESC; then
|
||||
descfile=$prefix/lib/groff/font/devps/DESC
|
||||
fi
|
||||
if test -n "$descfile" \
|
||||
&& grep "^paperlength 841890" $descfile >/dev/null 2>&1
|
||||
then
|
||||
&& grep "^paperlength 841890" $descfile >/dev/null 2>&1; then
|
||||
PAGE=A4
|
||||
else
|
||||
PAGE=letter
|
||||
fi
|
||||
fi
|
||||
if test -z "$PAGE"
|
||||
then
|
||||
if test -z "$PAGE"; then
|
||||
dom=`awk '([$]1 == "dom" || [$]1 == "search") { print [$]2; exit}' \
|
||||
/etc/resolv.conf 2>/dev/null`
|
||||
|
||||
if test -z "$dom"
|
||||
then
|
||||
if test -z "$dom"; then
|
||||
dom=`(domainname) 2>/dev/null | tr -d '+'`
|
||||
if test -z "$dom"
|
||||
then
|
||||
if test -z "$dom"; then
|
||||
dom=`(hostname) 2>/dev/null | grep '\.'`
|
||||
fi
|
||||
fi
|
||||
|
||||
changequote(,)dnl
|
||||
# If the top-level domain is two letters and it's not `us' or `ca'
|
||||
# then they probably use A4 paper.
|
||||
@@ -256,20 +316,21 @@ test -n "$PAGE" || PAGE=letter
|
||||
AC_MSG_RESULT($PAGE)
|
||||
AC_SUBST(PAGE)])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_CXX_CHECK,
|
||||
[AC_REQUIRE([AC_C_CROSS])
|
||||
AC_REQUIRE([AC_PROG_CXX])
|
||||
AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
if test "$cross_compiling" = no; then
|
||||
AC_MSG_CHECKING([that C++ compiler can compile simple program])
|
||||
AC_MSG_CHECKING([that C++ compiler can compile simple program])
|
||||
fi
|
||||
AC_TRY_RUN([int main() { return 0; }],
|
||||
AC_MSG_RESULT(yes),
|
||||
AC_MSG_RESULT(no)
|
||||
AC_MSG_ERROR([a working C++ compiler is required]),:)
|
||||
AC_MSG_RESULT(no);AC_MSG_ERROR([a working C++ compiler is required]),
|
||||
:)
|
||||
if test "$cross_compiling" = no; then
|
||||
AC_MSG_CHECKING([that C++ static constructors and destructors are called])
|
||||
AC_MSG_CHECKING([that C++ static constructors and destructors are called])
|
||||
fi
|
||||
AC_TRY_RUN([
|
||||
extern "C" {
|
||||
@@ -285,32 +346,28 @@ A a;
|
||||
int main() { return 1; }
|
||||
],
|
||||
AC_MSG_RESULT(yes),
|
||||
AC_MSG_RESULT(no)
|
||||
AC_MSG_ERROR([a working C++ compiler is required]),:)
|
||||
AC_MSG_RESULT(no);AC_MSG_ERROR([a working C++ compiler is required]),
|
||||
:)
|
||||
AC_MSG_CHECKING([that header files support C++])
|
||||
AC_TRY_LINK([#include <stdio.h>],
|
||||
[fopen(0, 0);],AC_MSG_RESULT(yes),
|
||||
AC_MSG_RESULT(no)
|
||||
AC_MSG_ERROR([header files do not support C++ (if you are using a version of gcc/g++ earlier than 2.5, you should install libg++)]))
|
||||
[fopen(0, 0);],
|
||||
AC_MSG_RESULT(yes),
|
||||
AC_MSG_RESULT(no);AC_MSG_ERROR([header files do not support C++ (if you are using a version of gcc/g++ earlier than 2.5, you should install libg++)]))
|
||||
AC_LANG_RESTORE
|
||||
])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_TMAC,
|
||||
[
|
||||
AC_MSG_CHECKING([for prefix of system macro packages])
|
||||
[AC_MSG_CHECKING([for prefix of system macro packages])
|
||||
sys_tmac_prefix=
|
||||
sys_tmac_file_prefix=
|
||||
for d in /usr/share/lib/tmac /usr/lib/tmac
|
||||
do
|
||||
for t in "" tmac.
|
||||
do
|
||||
for m in an s m
|
||||
do
|
||||
for d in /usr/share/lib/tmac /usr/lib/tmac; do
|
||||
for t in "" tmac.; do
|
||||
for m in an s m; do
|
||||
f=$d/$t$m
|
||||
if test -z "$sys_tmac_prefix" \
|
||||
&& test -f $f \
|
||||
&& grep '^\.if' $f >/dev/null 2>&1
|
||||
then
|
||||
&& grep '^\.if' $f >/dev/null 2>&1; then
|
||||
sys_tmac_prefix=$d/$t
|
||||
sys_tmac_file_prefix=$t
|
||||
fi
|
||||
@@ -321,42 +378,36 @@ AC_MSG_RESULT($sys_tmac_prefix)
|
||||
AC_SUBST(sys_tmac_prefix)
|
||||
tmac_wrap=
|
||||
AC_MSG_CHECKING([which system macro packages should be made available])
|
||||
if test "x$sys_tmac_file_prefix" = "xtmac."
|
||||
then
|
||||
for f in $sys_tmac_prefix*
|
||||
do
|
||||
if test "x$sys_tmac_file_prefix" = "xtmac."; then
|
||||
for f in $sys_tmac_prefix*; do
|
||||
suff=`echo $f | sed -e "s;$sys_tmac_prefix;;"`
|
||||
case "$suff" in
|
||||
e);;
|
||||
e) ;;
|
||||
*)
|
||||
grep "Copyright.*Free Software Foundation" $f >/dev/null \
|
||||
|| tmac_wrap="$tmac_wrap $suff"
|
||||
;;
|
||||
grep "Copyright.*Free Software Foundation" $f >/dev/null \
|
||||
|| tmac_wrap="$tmac_wrap $suff" ;;
|
||||
esac
|
||||
done
|
||||
elif test -n "$sys_tmac_prefix"
|
||||
then
|
||||
elif test -n "$sys_tmac_prefix"; then
|
||||
files=`echo $sys_tmac_prefix*`
|
||||
grep "\\.so" $files >conftest.sol
|
||||
for f in $files
|
||||
do
|
||||
for f in $files; do
|
||||
case "$f" in
|
||||
${sys_tmac_prefix}e) ;;
|
||||
${sys_tmac_prefix}e) ;;
|
||||
*.me) ;;
|
||||
*/ms.*) ;;
|
||||
*)
|
||||
b=`basename $f`
|
||||
if grep "\\.so.*/$b\$" conftest.sol >/dev/null \
|
||||
|| grep -l "Copyright.*Free Software Foundation" $f >/dev/null
|
||||
then
|
||||
:
|
||||
else
|
||||
suff=`echo $f | sed -e "s;$sys_tmac_prefix;;"`
|
||||
case "$suff" in
|
||||
tmac.*);;
|
||||
*) tmac_wrap="$tmac_wrap $suff" ;;
|
||||
esac
|
||||
fi
|
||||
b=`basename $f`
|
||||
if grep "\\.so.*/$b\$" conftest.sol >/dev/null \
|
||||
|| grep -l "Copyright.*Free Software Foundation" $f >/dev/null; then
|
||||
:
|
||||
else
|
||||
suff=`echo $f | sed -e "s;$sys_tmac_prefix;;"`
|
||||
case "$suff" in
|
||||
tmac.*) ;;
|
||||
*) tmac_wrap="$tmac_wrap $suff" ;;
|
||||
esac
|
||||
fi
|
||||
esac
|
||||
done
|
||||
rm -f conftest.sol
|
||||
@@ -364,11 +415,11 @@ fi
|
||||
AC_MSG_RESULT([$tmac_wrap])
|
||||
AC_SUBST(tmac_wrap)
|
||||
])dnl
|
||||
dnl
|
||||
dnl
|
||||
AC_DEFUN(GROFF_G,
|
||||
[AC_MSG_CHECKING([for existing troff installation])
|
||||
if test "x`(echo .tm '|n(.g' | tr '|' '\\\\' | troff -z -i 2>&1) 2>/dev/null`" \
|
||||
= x0
|
||||
then
|
||||
if test "x`(echo .tm '|n(.g' | tr '|' '\\\\' | troff -z -i 2>&1) 2>/dev/null`" = x0; then
|
||||
AC_MSG_RESULT(yes)
|
||||
g=g
|
||||
else
|
||||
@@ -377,9 +428,21 @@ else
|
||||
fi
|
||||
AC_SUBST(g)
|
||||
])dnl
|
||||
dnl
|
||||
dnl
|
||||
dnl We need the path to install-sh to be absolute.
|
||||
dnl
|
||||
AC_DEFUN(GROFF_INSTALL_SH,
|
||||
[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
|
||||
ac_dir=`cd $ac_aux_dir; pwd`
|
||||
ac_install_sh="$ac_dir/install-sh -c"
|
||||
])dnl
|
||||
dnl
|
||||
dnl
|
||||
dnl At least one UNIX system, Apple Macintosh Rhapsody 5.5,
|
||||
dnl does not have -lm.
|
||||
dnl
|
||||
AC_DEFUN(GROFF_LIBM,
|
||||
[AC_CHECK_LIB(m,sin,LIBM=-lm)
|
||||
AC_SUBST(LIBM)
|
||||
])
|
||||
Vendored
+1223
-449
File diff suppressed because it is too large.
Load diff
@@ -1,6 +1,5 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
AC_INIT(groff/groff.cc)
|
||||
AC_PREFIX_PROGRAM(grops)
|
||||
dnl checks for programs
|
||||
AC_PROG_CC
|
||||
AC_PROG_CXX
|
||||
@@ -22,16 +21,21 @@ GROFF_GETOPT
|
||||
GROFF_PUTENV
|
||||
GROFF_POPEN
|
||||
GROFF_PCLOSE
|
||||
GROFF_SYS_NERR
|
||||
GROFF_SYS_ERRLIST
|
||||
GROFF_HYPOT
|
||||
GROFF_OSFCN_H
|
||||
GROFF_LIMITS_H
|
||||
dnl checks for typedefs
|
||||
GROFF_TIME_T
|
||||
AC_TYPE_SIGNAL
|
||||
GROFF_STRUCT_EXCEPTION
|
||||
dnl checks for libraries
|
||||
GROFF_LIBM
|
||||
dnl checks for functions
|
||||
AC_FUNC_MMAP
|
||||
saved_libs="$LIBS"
|
||||
LIBS="$LIBS -lm"
|
||||
LIBS="$LIBS -lc $LIBM"
|
||||
AC_REPLACE_FUNCS(fmod strtol getcwd strerror putenv)
|
||||
LIBS="$saved_libs"
|
||||
AC_CHECK_FUNCS(rename mkstemp)
|
||||
|
||||
@@ -0,0 +1,306 @@
|
||||
name CB
|
||||
spacewidth 9
|
||||
charset
|
||||
--- 9,1 0 040
|
||||
! 9,9 0 041
|
||||
" 9,10 0 042
|
||||
# 9,10,1 0 043
|
||||
sh "
|
||||
$ 9,11,1 0 044
|
||||
Do "
|
||||
% 9,10 0 045
|
||||
& 9,8 0 046
|
||||
' 9,10 0 047
|
||||
( 9,9,2 0 050
|
||||
) 9,9,2 0 051
|
||||
* 9,9 0 052
|
||||
+ 9,8 0 053
|
||||
, 9,2,2 0 054
|
||||
\- 9,5 0 055
|
||||
. 9,2 0 056
|
||||
/ 9,10,2 0 057
|
||||
sl "
|
||||
0 9,10 0 060
|
||||
1 9,10 0 061
|
||||
2 9,10 0 062
|
||||
3 9,10 0 063
|
||||
4 9,10 0 064
|
||||
5 9,10 0 065
|
||||
6 9,10 0 066
|
||||
7 9,10 0 067
|
||||
8 9,10 0 070
|
||||
9 9,10 0 071
|
||||
: 9,7 0 072
|
||||
; 9,7,2 0 073
|
||||
< 9,8 0 074
|
||||
= 9,6 0 075
|
||||
eq "
|
||||
> 9,8 0 076
|
||||
? 9,9 0 077
|
||||
@ 9,9 0 0100
|
||||
at "
|
||||
A 9,9 0 0101
|
||||
B 9,9 0 0102
|
||||
C 9,9 0 0103
|
||||
D 9,9 0 0104
|
||||
E 9,9 0 0105
|
||||
F 9,9 0 0106
|
||||
G 9,9 0 0107
|
||||
H 9,9 0 0110
|
||||
I 9,9 0 0111
|
||||
J 9,9 0 0112
|
||||
K 9,9 0 0113
|
||||
L 9,9 0 0114
|
||||
M 9,9 0 0115
|
||||
N 9,9 0 0116
|
||||
O 9,9 0 0117
|
||||
P 9,9 0 0120
|
||||
Q 9,9,2 0 0121
|
||||
R 9,9 0 0122
|
||||
S 9,9 0 0123
|
||||
T 9,9 0 0124
|
||||
U 9,9 0 0125
|
||||
V 9,9 0 0126
|
||||
W 9,9 0 0127
|
||||
X 9,9 0 0130
|
||||
Y 9,9 0 0131
|
||||
Z 9,9 0 0132
|
||||
[ 9,9,2 0 0133
|
||||
lB "
|
||||
\ 9,10,2 0 0134
|
||||
rs "
|
||||
] 9,9,2 0 0135
|
||||
rB "
|
||||
^ 9,9 0 0136
|
||||
a^ "
|
||||
ha "
|
||||
_ 9,0,2 0 0137
|
||||
` 9,10 0 0140
|
||||
oq "
|
||||
a 9,7 0 0141
|
||||
b 9,10 0 0142
|
||||
c 9,7 0 0143
|
||||
d 9,10 0 0144
|
||||
e 9,7 0 0145
|
||||
f 9,10 0 0146
|
||||
g 9,7,3 0 0147
|
||||
h 9,10 0 0150
|
||||
i 9,10 0 0151
|
||||
j 9,10,3 0 0152
|
||||
k 9,10 0 0153
|
||||
l 9,10 0 0154
|
||||
m 9,7 0 0155
|
||||
n 9,7 0 0156
|
||||
o 9,7 0 0157
|
||||
p 9,7,3 0 0160
|
||||
q 9,7,3 0 0161
|
||||
r 9,7 0 0162
|
||||
s 9,7 0 0163
|
||||
t 9,9 0 0164
|
||||
u 9,7 0 0165
|
||||
v 9,7 0 0166
|
||||
w 9,7 0 0167
|
||||
x 9,7 0 0170
|
||||
y 9,7,3 0 0171
|
||||
z 9,7 0 0172
|
||||
{ 9,9,2 0 0173
|
||||
lC "
|
||||
| 9,9,2 0 0174
|
||||
or "
|
||||
ba "
|
||||
} 9,9,2 0 0175
|
||||
rC "
|
||||
~ 9,6 0 0176
|
||||
a~ "
|
||||
ap "
|
||||
ti "
|
||||
r! 9,7,2 0 0241
|
||||
¡ "
|
||||
ct 9,9,1 0 0242
|
||||
¢ "
|
||||
Po 9,9 0 0243
|
||||
£ "
|
||||
Cs 9,7 0 0244
|
||||
¤ "
|
||||
Ye 9,9 0 0245
|
||||
¥ "
|
||||
bb 9,9,2 0 0246
|
||||
¦ "
|
||||
sc 9,10,1 0 0247
|
||||
§ "
|
||||
ad 9,10 0 0250
|
||||
¨ "
|
||||
co 9,9 0 0251
|
||||
© "
|
||||
Of 9,9 0 0252
|
||||
ª "
|
||||
Fo 9,6 0 0253
|
||||
« "
|
||||
no 9,5 0 0254
|
||||
¬ "
|
||||
- 9,5 0 055
|
||||
hy "
|
||||
"
|
||||
rg 9,9 0 0256
|
||||
® "
|
||||
a- 9,9 0 0257
|
||||
¯ "
|
||||
de 9,9 0 0260
|
||||
° "
|
||||
+- 9,8 0 0261
|
||||
± "
|
||||
S2 9,10 0 0262
|
||||
² "
|
||||
S3 9,10 0 0263
|
||||
³ "
|
||||
aa 9,9 0 0264
|
||||
´ "
|
||||
µ 9,7,3 0 0265
|
||||
ps 9,10,1 0 0266
|
||||
¶ "
|
||||
md 9,5 0 0267
|
||||
· "
|
||||
ac 9,1,3 0 0270
|
||||
¸ "
|
||||
S1 9,10 0 0271
|
||||
¹ "
|
||||
Om 9,9 0 0272
|
||||
º "
|
||||
Fc 9,6 0 0273
|
||||
» "
|
||||
14 9,10 0 0274
|
||||
¼ "
|
||||
12 9,10 0 0275
|
||||
½ "
|
||||
34 9,10 0 0276
|
||||
¾ "
|
||||
r? 9,7,2 0 0277
|
||||
¿ "
|
||||
`A 9,12 0 0300
|
||||
À "
|
||||
'A 9,12 0 0301
|
||||
Á "
|
||||
^A 9,12 0 0302
|
||||
 "
|
||||
~A 9,12 0 0303
|
||||
à "
|
||||
:A 9,12 0 0304
|
||||
Ä "
|
||||
oA 9,12 0 0305
|
||||
Å "
|
||||
AE 9,9 0 0306
|
||||
Æ "
|
||||
,C 9,9,4 0 0307
|
||||
Ç "
|
||||
`E 9,12 0 0310
|
||||
È "
|
||||
'E 9,12 0 0311
|
||||
É "
|
||||
^E 9,12 0 0312
|
||||
Ê "
|
||||
:E 9,12 0 0313
|
||||
Ë "
|
||||
`I 9,12 0 0314
|
||||
Ì "
|
||||
'I 9,12 0 0315
|
||||
Í "
|
||||
^I 9,12 0 0316
|
||||
Î "
|
||||
:I 9,12 0 0317
|
||||
Ï "
|
||||
-D 9,9 0 0320
|
||||
Ð "
|
||||
~N 9,12 0 0321
|
||||
Ñ "
|
||||
`O 9,12 0 0322
|
||||
Ò "
|
||||
'O 9,12 0 0323
|
||||
Ó "
|
||||
^O 9,12 0 0324
|
||||
Ô "
|
||||
~O 9,12 0 0325
|
||||
Õ "
|
||||
:O 9,12 0 0326
|
||||
Ö "
|
||||
mu 9,8 0 0327
|
||||
× "
|
||||
/O 9,10 0 0330
|
||||
Ø "
|
||||
`U 9,12 0 0331
|
||||
Ù "
|
||||
'U 9,12 0 0332
|
||||
Ú "
|
||||
^U 9,12 0 0333
|
||||
Û "
|
||||
:U 9,12 0 0334
|
||||
Ü "
|
||||
'Y 9,12 0 0335
|
||||
Ý "
|
||||
TP 9,9 0 0336
|
||||
Þ "
|
||||
ss 9,9 0 0337
|
||||
ß "
|
||||
`a 9,10 0 0340
|
||||
à "
|
||||
'a 9,10 0 0341
|
||||
á "
|
||||
^a 9,10 0 0342
|
||||
â "
|
||||
~a 9,10 0 0343
|
||||
ã "
|
||||
:a 9,10 0 0344
|
||||
ä "
|
||||
oa 9,10 0 0345
|
||||
å "
|
||||
ae 9,7 0 0346
|
||||
æ "
|
||||
,c 9,7,4 0 0347
|
||||
ç "
|
||||
`e 9,10 0 0350
|
||||
è "
|
||||
'e 9,10 0 0351
|
||||
é "
|
||||
^e 9,10 0 0352
|
||||
ê "
|
||||
:e 9,10 0 0353
|
||||
ë "
|
||||
`i 9,10 0 0354
|
||||
ì "
|
||||
'i 9,10 0 0355
|
||||
í "
|
||||
^i 9,10 0 0356
|
||||
î "
|
||||
:i 9,10 0 0357
|
||||
ï "
|
||||
Sd 9,10 0 0360
|
||||
ð "
|
||||
~n 9,10 0 0361
|
||||
ñ "
|
||||
`o 9,10 0 0362
|
||||
ò "
|
||||
'o 9,10 0 0363
|
||||
ó "
|
||||
^o 9,10 0 0364
|
||||
ô "
|
||||
~o 9,10 0 0365
|
||||
õ "
|
||||
:o 9,10 0 0366
|
||||
ö "
|
||||
di 9,8 0 0367
|
||||
÷ "
|
||||
/o 9,7 0 0370
|
||||
ø "
|
||||
`u 9,10 0 0371
|
||||
ù "
|
||||
'u 9,10 0 0372
|
||||
ú "
|
||||
^u 9,10 0 0373
|
||||
û "
|
||||
:u 9,10 0 0374
|
||||
ü "
|
||||
'y 9,10,3 0 0375
|
||||
ý "
|
||||
Tp 9,9,3 0 0376
|
||||
þ "
|
||||
:y 9,10,3 0 0377
|
||||
ÿ "
|
||||
@@ -0,0 +1,306 @@
|
||||
name CBI
|
||||
spacewidth 9
|
||||
charset
|
||||
--- 9,1 0 040
|
||||
! 9,10 0 041
|
||||
" 9,9 0 042
|
||||
# 9,11,1 0 043
|
||||
sh "
|
||||
$ 9,11,1 0 044
|
||||
Do "
|
||||
% 9,10 0 045
|
||||
& 9,8 0 046
|
||||
' 9,9 0 047
|
||||
( 9,9,2 0 050
|
||||
) 9,9,2 0 051
|
||||
* 9,10 0 052
|
||||
+ 9,8 0 053
|
||||
, 9,2,2 0 054
|
||||
\- 9,5 0 055
|
||||
. 9,2 0 056
|
||||
/ 9,10,2 0 057
|
||||
sl "
|
||||
0 9,10 0 060
|
||||
1 9,10 0 061
|
||||
2 9,10 0 062
|
||||
3 9,10 0 063
|
||||
4 9,10 0 064
|
||||
5 9,10 0 065
|
||||
6 9,10 0 066
|
||||
7 9,10 0 067
|
||||
8 9,10 0 070
|
||||
9 9,10 0 071
|
||||
: 9,7 0 072
|
||||
; 9,7,2 0 073
|
||||
< 9,8 0 074
|
||||
= 9,6 0 075
|
||||
eq "
|
||||
> 9,8 0 076
|
||||
? 9,9 0 077
|
||||
@ 9,9 0 0100
|
||||
at "
|
||||
A 9,9 0 0101
|
||||
B 9,9 0 0102
|
||||
C 9,9 0 0103
|
||||
D 9,9 0 0104
|
||||
E 9,9 0 0105
|
||||
F 9,9 0 0106
|
||||
G 9,9 0 0107
|
||||
H 9,9 0 0110
|
||||
I 9,9 0 0111
|
||||
J 9,9 0 0112
|
||||
K 9,9 0 0113
|
||||
L 9,9 0 0114
|
||||
M 9,9 0 0115
|
||||
N 9,9 0 0116
|
||||
O 9,9 0 0117
|
||||
P 9,9 0 0120
|
||||
Q 9,9,2 0 0121
|
||||
R 9,9 0 0122
|
||||
S 9,9 0 0123
|
||||
T 9,9 0 0124
|
||||
U 9,9 0 0125
|
||||
V 9,9 0 0126
|
||||
W 9,9 0 0127
|
||||
X 9,9 0 0130
|
||||
Y 9,9 0 0131
|
||||
Z 9,9 0 0132
|
||||
[ 9,9,2 0 0133
|
||||
lB "
|
||||
\ 9,10,2 0 0134
|
||||
rs "
|
||||
] 9,9,2 0 0135
|
||||
rB "
|
||||
^ 9,9 0 0136
|
||||
a^ "
|
||||
ha "
|
||||
_ 9,0,3 0 0137
|
||||
` 9,9 0 0140
|
||||
oq "
|
||||
a 9,7 0 0141
|
||||
b 9,10 0 0142
|
||||
c 9,7 0 0143
|
||||
d 9,10 0 0144
|
||||
e 9,7 0 0145
|
||||
f 9,10 0 0146
|
||||
g 9,7,3 0 0147
|
||||
h 9,10 0 0150
|
||||
i 9,10 0 0151
|
||||
j 9,10,3 0 0152
|
||||
k 9,10 0 0153
|
||||
l 9,10 0 0154
|
||||
m 9,7 0 0155
|
||||
n 9,7 0 0156
|
||||
o 9,7 0 0157
|
||||
p 9,7,3 0 0160
|
||||
q 9,7,3 0 0161
|
||||
r 9,7 0 0162
|
||||
s 9,7 0 0163
|
||||
t 9,9 0 0164
|
||||
u 9,7 0 0165
|
||||
v 9,7 0 0166
|
||||
w 9,7 0 0167
|
||||
x 9,7 0 0170
|
||||
y 9,7,3 0 0171
|
||||
z 9,7 0 0172
|
||||
{ 9,9,2 0 0173
|
||||
lC "
|
||||
| 9,9,2 0 0174
|
||||
or "
|
||||
ba "
|
||||
} 9,9,2 0 0175
|
||||
rC "
|
||||
~ 9,6 0 0176
|
||||
a~ "
|
||||
ap "
|
||||
ti "
|
||||
r! 9,7,3 0 0241
|
||||
¡ "
|
||||
ct 9,9,1 0 0242
|
||||
¢ "
|
||||
Po 9,9 0 0243
|
||||
£ "
|
||||
Cs 9,7 0 0244
|
||||
¤ "
|
||||
Ye 9,9 0 0245
|
||||
¥ "
|
||||
bb 9,10,2 0 0246
|
||||
¦ "
|
||||
sc 9,10,1 0 0247
|
||||
§ "
|
||||
ad 9,10 0 0250
|
||||
¨ "
|
||||
co 9,9 0 0251
|
||||
© "
|
||||
Of 9,9 0 0252
|
||||
ª "
|
||||
Fo 9,6 0 0253
|
||||
« "
|
||||
no 9,6 0 0254
|
||||
¬ "
|
||||
- 9,5 0 055
|
||||
hy "
|
||||
"
|
||||
rg 9,9 0 0256
|
||||
® "
|
||||
a- 9,9 0 0257
|
||||
¯ "
|
||||
de 9,10 0 0260
|
||||
° "
|
||||
+- 9,8 0 0261
|
||||
± "
|
||||
S2 9,10 0 0262
|
||||
² "
|
||||
S3 9,10 0 0263
|
||||
³ "
|
||||
aa 9,10 0 0264
|
||||
´ "
|
||||
µ 9,7,3 0 0265
|
||||
ps 9,10,1 0 0266
|
||||
¶ "
|
||||
md 9,5 0 0267
|
||||
· "
|
||||
ac 9,1,3 0 0270
|
||||
¸ "
|
||||
S1 9,10 0 0271
|
||||
¹ "
|
||||
Om 9,9 0 0272
|
||||
º "
|
||||
Fc 9,6 0 0273
|
||||
» "
|
||||
14 9,10 0 0274
|
||||
¼ "
|
||||
12 9,10 0 0275
|
||||
½ "
|
||||
34 9,10 0 0276
|
||||
¾ "
|
||||
r? 9,7,2 0 0277
|
||||
¿ "
|
||||
`A 9,12 0 0300
|
||||
À "
|
||||
'A 9,12 0 0301
|
||||
Á "
|
||||
^A 9,12 0 0302
|
||||
 "
|
||||
~A 9,12 0 0303
|
||||
à "
|
||||
:A 9,12 0 0304
|
||||
Ä "
|
||||
oA 9,12 0 0305
|
||||
Å "
|
||||
AE 9,9 0 0306
|
||||
Æ "
|
||||
,C 9,9,4 0 0307
|
||||
Ç "
|
||||
`E 9,12 0 0310
|
||||
È "
|
||||
'E 9,12 0 0311
|
||||
É "
|
||||
^E 9,12 0 0312
|
||||
Ê "
|
||||
:E 9,12 0 0313
|
||||
Ë "
|
||||
`I 9,12 0 0314
|
||||
Ì "
|
||||
'I 9,12 0 0315
|
||||
Í "
|
||||
^I 9,12 0 0316
|
||||
Î "
|
||||
:I 9,12 0 0317
|
||||
Ï "
|
||||
-D 9,9 0 0320
|
||||
Ð "
|
||||
~N 9,12 0 0321
|
||||
Ñ "
|
||||
`O 9,12 0 0322
|
||||
Ò "
|
||||
'O 9,12 0 0323
|
||||
Ó "
|
||||
^O 9,12 0 0324
|
||||
Ô "
|
||||
~O 9,12 0 0325
|
||||
Õ "
|
||||
:O 9,12 0 0326
|
||||
Ö "
|
||||
mu 9,8 0 0327
|
||||
× "
|
||||
/O 9,9 0 0330
|
||||
Ø "
|
||||
`U 9,12 0 0331
|
||||
Ù "
|
||||
'U 9,12 0 0332
|
||||
Ú "
|
||||
^U 9,12 0 0333
|
||||
Û "
|
||||
:U 9,12 0 0334
|
||||
Ü "
|
||||
'Y 9,12 0 0335
|
||||
Ý "
|
||||
TP 9,9 0 0336
|
||||
Þ "
|
||||
ss 9,9 0 0337
|
||||
ß "
|
||||
`a 9,10 0 0340
|
||||
à "
|
||||
'a 9,10 0 0341
|
||||
á "
|
||||
^a 9,10 0 0342
|
||||
â "
|
||||
~a 9,10 0 0343
|
||||
ã "
|
||||
:a 9,10 0 0344
|
||||
ä "
|
||||
oa 9,10 0 0345
|
||||
å "
|
||||
ae 9,7 0 0346
|
||||
æ "
|
||||
,c 9,7,4 0 0347
|
||||
ç "
|
||||
`e 9,10 0 0350
|
||||
è "
|
||||
'e 9,10 0 0351
|
||||
é "
|
||||
^e 9,10 0 0352
|
||||
ê "
|
||||
:e 9,10 0 0353
|
||||
ë "
|
||||
`i 9,10 0 0354
|
||||
ì "
|
||||
'i 9,10 0 0355
|
||||
í "
|
||||
^i 9,10 0 0356
|
||||
î "
|
||||
:i 9,10 0 0357
|
||||
ï "
|
||||
Sd 9,10 0 0360
|
||||
ð "
|
||||
~n 9,10 0 0361
|
||||
ñ "
|
||||
`o 9,10 0 0362
|
||||
ò "
|
||||
'o 9,10 0 0363
|
||||
ó "
|
||||
^o 9,10 0 0364
|
||||
ô "
|
||||
~o 9,10 0 0365
|
||||
õ "
|
||||
:o 9,10 0 0366
|
||||
ö "
|
||||
di 9,8 0 0367
|
||||
÷ "
|
||||
/o 9,8 0 0370
|
||||
ø "
|
||||
`u 9,10 0 0371
|
||||
ù "
|
||||
'u 9,10 0 0372
|
||||
ú "
|
||||
^u 9,10 0 0373
|
||||
û "
|
||||
:u 9,10 0 0374
|
||||
ü "
|
||||
'y 9,10,3 0 0375
|
||||
ý "
|
||||
Tp 9,9,3 0 0376
|
||||
þ "
|
||||
:y 9,10,3 0 0377
|
||||
ÿ "
|
||||
@@ -0,0 +1,306 @@
|
||||
name CI
|
||||
spacewidth 9
|
||||
charset
|
||||
--- 9,1 0 040
|
||||
! 9,9 0 041
|
||||
" 9,10 0 042
|
||||
# 9,10,1 0 043
|
||||
sh "
|
||||
$ 9,10,1 0 044
|
||||
Do "
|
||||
% 9,10 0 045
|
||||
& 9,8 0 046
|
||||
' 9,10 0 047
|
||||
( 9,10,3 0 050
|
||||
) 9,10,3 0 051
|
||||
* 9,9 0 052
|
||||
+ 9,8 0 053
|
||||
, 9,2,2 0 054
|
||||
\- 9,5 0 055
|
||||
. 9,2 0 056
|
||||
/ 9,10,2 0 057
|
||||
sl "
|
||||
0 9,10 0 060
|
||||
1 9,10 0 061
|
||||
2 9,10 0 062
|
||||
3 9,10 0 063
|
||||
4 9,10 0 064
|
||||
5 9,10 0 065
|
||||
6 9,10 0 066
|
||||
7 9,10 0 067
|
||||
8 9,10 0 070
|
||||
9 9,10 0 071
|
||||
: 9,7 0 072
|
||||
; 9,7,2 0 073
|
||||
< 9,8 0 074
|
||||
= 9,6 0 075
|
||||
eq "
|
||||
> 9,8 0 076
|
||||
? 9,9 0 077
|
||||
@ 9,9 0 0100
|
||||
at "
|
||||
A 9,9 0 0101
|
||||
B 9,9 0 0102
|
||||
C 9,9 0 0103
|
||||
D 9,9 0 0104
|
||||
E 9,9 0 0105
|
||||
F 9,9 0 0106
|
||||
G 9,9 0 0107
|
||||
H 9,9 0 0110
|
||||
I 9,9 0 0111
|
||||
J 9,9 0 0112
|
||||
K 9,9 0 0113
|
||||
L 9,9 0 0114
|
||||
M 9,9 0 0115
|
||||
N 9,9 0 0116
|
||||
O 9,9 0 0117
|
||||
P 9,9 0 0120
|
||||
Q 9,9,2 0 0121
|
||||
R 9,9 0 0122
|
||||
S 9,9 0 0123
|
||||
T 9,9 0 0124
|
||||
U 9,9 0 0125
|
||||
V 9,9 0 0126
|
||||
W 9,9 0 0127
|
||||
X 9,9 0 0130
|
||||
Y 9,9 0 0131
|
||||
Z 9,9 0 0132
|
||||
[ 9,10,3 0 0133
|
||||
lB "
|
||||
\ 9,10,2 0 0134
|
||||
rs "
|
||||
] 9,10,3 0 0135
|
||||
rB "
|
||||
^ 9,9 0 0136
|
||||
a^ "
|
||||
ha "
|
||||
_ 9,0,3 0 0137
|
||||
` 9,10 0 0140
|
||||
oq "
|
||||
a 9,7 0 0141
|
||||
b 9,10 0 0142
|
||||
c 9,7 0 0143
|
||||
d 9,10 0 0144
|
||||
e 9,7 0 0145
|
||||
f 9,10 0 0146
|
||||
g 9,7,3 0 0147
|
||||
h 9,10 0 0150
|
||||
i 9,10 0 0151
|
||||
j 9,10,3 0 0152
|
||||
k 9,10 0 0153
|
||||
l 9,10 0 0154
|
||||
m 9,7 0 0155
|
||||
n 9,7 0 0156
|
||||
o 9,7 0 0157
|
||||
p 9,7,3 0 0160
|
||||
q 9,7,3 0 0161
|
||||
r 9,7 0 0162
|
||||
s 9,7 0 0163
|
||||
t 9,9 0 0164
|
||||
u 9,7 0 0165
|
||||
v 9,7 0 0166
|
||||
w 9,7 0 0167
|
||||
x 9,7 0 0170
|
||||
y 9,7,3 0 0171
|
||||
z 9,7 0 0172
|
||||
{ 9,10,3 0 0173
|
||||
lC "
|
||||
| 9,9,2 0 0174
|
||||
or "
|
||||
ba "
|
||||
} 9,10,3 0 0175
|
||||
rC "
|
||||
~ 9,5 0 0176
|
||||
a~ "
|
||||
ap "
|
||||
ti "
|
||||
r! 9,7,2 0 0241
|
||||
¡ "
|
||||
ct 9,10 0 0242
|
||||
¢ "
|
||||
Po 9,9 0 0243
|
||||
£ "
|
||||
Cs 9,7 0 0244
|
||||
¤ "
|
||||
Ye 9,9 0 0245
|
||||
¥ "
|
||||
bb 9,9,2 0 0246
|
||||
¦ "
|
||||
sc 9,9,1 0 0247
|
||||
§ "
|
||||
ad 9,9 0 0250
|
||||
¨ "
|
||||
co 9,9 0 0251
|
||||
© "
|
||||
Of 9,9 0 0252
|
||||
ª "
|
||||
Fo 9,7 0 0253
|
||||
« "
|
||||
no 9,6 0 0254
|
||||
¬ "
|
||||
- 9,5 0 055
|
||||
hy "
|
||||
"
|
||||
rg 9,9 0 0256
|
||||
® "
|
||||
a- 9,9 0 0257
|
||||
¯ "
|
||||
de 9,10 0 0260
|
||||
° "
|
||||
+- 9,8 0 0261
|
||||
± "
|
||||
S2 9,10 0 0262
|
||||
² "
|
||||
S3 9,10 0 0263
|
||||
³ "
|
||||
aa 9,9 0 0264
|
||||
´ "
|
||||
µ 9,7,3 0 0265
|
||||
ps 9,9,1 0 0266
|
||||
¶ "
|
||||
md 9,5 0 0267
|
||||
· "
|
||||
ac 9,1,3 0 0270
|
||||
¸ "
|
||||
S1 9,10 0 0271
|
||||
¹ "
|
||||
Om 9,9 0 0272
|
||||
º "
|
||||
Fc 9,7 0 0273
|
||||
» "
|
||||
14 9,10 0 0274
|
||||
¼ "
|
||||
12 9,10 0 0275
|
||||
½ "
|
||||
34 9,10 0 0276
|
||||
¾ "
|
||||
r? 9,7,2 0 0277
|
||||
¿ "
|
||||
`A 9,12 0 0300
|
||||
À "
|
||||
'A 9,12 0 0301
|
||||
Á "
|
||||
^A 9,12 0 0302
|
||||
 "
|
||||
~A 9,12 0 0303
|
||||
à "
|
||||
:A 9,11 0 0304
|
||||
Ä "
|
||||
oA 9,12 0 0305
|
||||
Å "
|
||||
AE 9,9 0 0306
|
||||
Æ "
|
||||
,C 9,9,3 0 0307
|
||||
Ç "
|
||||
`E 9,12 0 0310
|
||||
È "
|
||||
'E 9,12 0 0311
|
||||
É "
|
||||
^E 9,12 0 0312
|
||||
Ê "
|
||||
:E 9,11 0 0313
|
||||
Ë "
|
||||
`I 9,12 0 0314
|
||||
Ì "
|
||||
'I 9,12 0 0315
|
||||
Í "
|
||||
^I 9,12 0 0316
|
||||
Î "
|
||||
:I 9,11 0 0317
|
||||
Ï "
|
||||
-D 9,9 0 0320
|
||||
Ð "
|
||||
~N 9,12 0 0321
|
||||
Ñ "
|
||||
`O 9,12 0 0322
|
||||
Ò "
|
||||
'O 9,12 0 0323
|
||||
Ó "
|
||||
^O 9,12 0 0324
|
||||
Ô "
|
||||
~O 9,12 0 0325
|
||||
Õ "
|
||||
:O 9,11 0 0326
|
||||
Ö "
|
||||
mu 9,8 0 0327
|
||||
× "
|
||||
/O 9,9 0 0330
|
||||
Ø "
|
||||
`U 9,12 0 0331
|
||||
Ù "
|
||||
'U 9,12 0 0332
|
||||
Ú "
|
||||
^U 9,12 0 0333
|
||||
Û "
|
||||
:U 9,11 0 0334
|
||||
Ü "
|
||||
'Y 9,12 0 0335
|
||||
Ý "
|
||||
TP 9,9 0 0336
|
||||
Þ "
|
||||
ss 9,9 0 0337
|
||||
ß "
|
||||
`a 9,10 0 0340
|
||||
à "
|
||||
'a 9,10 0 0341
|
||||
á "
|
||||
^a 9,10 0 0342
|
||||
â "
|
||||
~a 9,10 0 0343
|
||||
ã "
|
||||
:a 9,9 0 0344
|
||||
ä "
|
||||
oa 9,11 0 0345
|
||||
å "
|
||||
ae 9,7 0 0346
|
||||
æ "
|
||||
,c 9,7,3 0 0347
|
||||
ç "
|
||||
`e 9,10 0 0350
|
||||
è "
|
||||
'e 9,10 0 0351
|
||||
é "
|
||||
^e 9,10 0 0352
|
||||
ê "
|
||||
:e 9,9 0 0353
|
||||
ë "
|
||||
`i 9,10 0 0354
|
||||
ì "
|
||||
'i 9,10 0 0355
|
||||
í "
|
||||
^i 9,10 0 0356
|
||||
î "
|
||||
:i 9,9 0 0357
|
||||
ï "
|
||||
Sd 9,10 0 0360
|
||||
ð "
|
||||
~n 9,10 0 0361
|
||||
ñ "
|
||||
`o 9,10 0 0362
|
||||
ò "
|
||||
'o 9,10 0 0363
|
||||
ó "
|
||||
^o 9,10 0 0364
|
||||
ô "
|
||||
~o 9,10 0 0365
|
||||
õ "
|
||||
:o 9,9 0 0366
|
||||
ö "
|
||||
di 9,8 0 0367
|
||||
÷ "
|
||||
/o 9,7 0 0370
|
||||
ø "
|
||||
`u 9,10 0 0371
|
||||
ù "
|
||||
'u 9,10 0 0372
|
||||
ú "
|
||||
^u 9,10 0 0373
|
||||
û "
|
||||
:u 9,9 0 0374
|
||||
ü "
|
||||
'y 9,10,3 0 0375
|
||||
ý "
|
||||
Tp 9,9,3 0 0376
|
||||
þ "
|
||||
:y 9,9,3 0 0377
|
||||
ÿ "
|
||||
@@ -0,0 +1,306 @@
|
||||
name CR
|
||||
spacewidth 9
|
||||
charset
|
||||
--- 9,1 0 040
|
||||
! 9,9 0 041
|
||||
" 9,10 0 042
|
||||
# 9,9,1 0 043
|
||||
sh "
|
||||
$ 9,11,2 0 044
|
||||
Do "
|
||||
% 9,10 0 045
|
||||
& 9,8 0 046
|
||||
' 9,10 0 047
|
||||
( 9,10,2 0 050
|
||||
) 9,10,2 0 051
|
||||
* 9,9 0 052
|
||||
+ 9,8 0 053
|
||||
, 9,2,2 0 054
|
||||
\- 9,5 0 055
|
||||
. 9,2 0 056
|
||||
/ 9,10,1 0 057
|
||||
sl "
|
||||
0 9,10 0 060
|
||||
1 9,10 0 061
|
||||
2 9,10 0 062
|
||||
3 9,10 0 063
|
||||
4 9,10 0 064
|
||||
5 9,10 0 065
|
||||
6 9,10 0 066
|
||||
7 9,10 0 067
|
||||
8 9,10 0 070
|
||||
9 9,10 0 071
|
||||
: 9,7 0 072
|
||||
; 9,7,2 0 073
|
||||
< 9,8 0 074
|
||||
= 9,6 0 075
|
||||
eq "
|
||||
> 9,8 0 076
|
||||
? 9,9 0 077
|
||||
@ 9,9,1 0 0100
|
||||
at "
|
||||
A 9,9 0 0101
|
||||
B 9,9 0 0102
|
||||
C 9,9 0 0103
|
||||
D 9,9 0 0104
|
||||
E 9,9 0 0105
|
||||
F 9,9 0 0106
|
||||
G 9,9 0 0107
|
||||
H 9,9 0 0110
|
||||
I 9,9 0 0111
|
||||
J 9,9 0 0112
|
||||
K 9,9 0 0113
|
||||
L 9,9 0 0114
|
||||
M 9,9 0 0115
|
||||
N 9,9 0 0116
|
||||
O 9,9 0 0117
|
||||
P 9,9 0 0120
|
||||
Q 9,9,2 0 0121
|
||||
R 9,9 0 0122
|
||||
S 9,9 0 0123
|
||||
T 9,9 0 0124
|
||||
U 9,9 0 0125
|
||||
V 9,9 0 0126
|
||||
W 9,9 0 0127
|
||||
X 9,9 0 0130
|
||||
Y 9,9 0 0131
|
||||
Z 9,9 0 0132
|
||||
[ 9,10,2 0 0133
|
||||
lB "
|
||||
\ 9,10,1 0 0134
|
||||
rs "
|
||||
] 9,10,2 0 0135
|
||||
rB "
|
||||
^ 9,9 0 0136
|
||||
a^ "
|
||||
ha "
|
||||
_ 9,0,3 0 0137
|
||||
` 9,10 0 0140
|
||||
oq "
|
||||
a 9,7 0 0141
|
||||
b 9,10 0 0142
|
||||
c 9,7 0 0143
|
||||
d 9,10 0 0144
|
||||
e 9,7 0 0145
|
||||
f 9,10 0 0146
|
||||
g 9,7,3 0 0147
|
||||
h 9,10 0 0150
|
||||
i 9,10 0 0151
|
||||
j 9,10,3 0 0152
|
||||
k 9,10 0 0153
|
||||
l 9,10 0 0154
|
||||
m 9,7 0 0155
|
||||
n 9,7 0 0156
|
||||
o 9,7 0 0157
|
||||
p 9,7,3 0 0160
|
||||
q 9,7,3 0 0161
|
||||
r 9,7 0 0162
|
||||
s 9,7 0 0163
|
||||
t 9,9 0 0164
|
||||
u 9,7 0 0165
|
||||
v 9,7 0 0166
|
||||
w 9,7 0 0167
|
||||
x 9,7 0 0170
|
||||
y 9,7,3 0 0171
|
||||
z 9,7 0 0172
|
||||
{ 9,10,2 0 0173
|
||||
lC "
|
||||
| 9,9,2 0 0174
|
||||
or "
|
||||
ba "
|
||||
} 9,10,2 0 0175
|
||||
rC "
|
||||
~ 9,5 0 0176
|
||||
a~ "
|
||||
ap "
|
||||
ti "
|
||||
r! 9,7,2 0 0241
|
||||
¡ "
|
||||
ct 9,9 0 0242
|
||||
¢ "
|
||||
Po 9,9 0 0243
|
||||
£ "
|
||||
Cs 9,7 0 0244
|
||||
¤ "
|
||||
Ye 9,9 0 0245
|
||||
¥ "
|
||||
bb 9,9,2 0 0246
|
||||
¦ "
|
||||
sc 9,9,1 0 0247
|
||||
§ "
|
||||
ad 9,9 0 0250
|
||||
¨ "
|
||||
co 9,9 0 0251
|
||||
© "
|
||||
Of 9,9 0 0252
|
||||
ª "
|
||||
Fo 9,7 0 0253
|
||||
« "
|
||||
no 9,6 0 0254
|
||||
¬ "
|
||||
- 9,5 0 055
|
||||
hy "
|
||||
"
|
||||
rg 9,9 0 0256
|
||||
® "
|
||||
a- 9,9 0 0257
|
||||
¯ "
|
||||
de 9,10 0 0260
|
||||
° "
|
||||
+- 9,8 0 0261
|
||||
± "
|
||||
S2 9,10 0 0262
|
||||
² "
|
||||
S3 9,10 0 0263
|
||||
³ "
|
||||
aa 9,10 0 0264
|
||||
´ "
|
||||
µ 9,7,3 0 0265
|
||||
ps 9,9,1 0 0266
|
||||
¶ "
|
||||
md 9,5 0 0267
|
||||
· "
|
||||
ac 9,0,3 0 0270
|
||||
¸ "
|
||||
S1 9,10 0 0271
|
||||
¹ "
|
||||
Om 9,9 0 0272
|
||||
º "
|
||||
Fc 9,7 0 0273
|
||||
» "
|
||||
14 9,10 0 0274
|
||||
¼ "
|
||||
12 9,10 0 0275
|
||||
½ "
|
||||
34 9,10 0 0276
|
||||
¾ "
|
||||
r? 9,7,2 0 0277
|
||||
¿ "
|
||||
`A 9,12 0 0300
|
||||
À "
|
||||
'A 9,12 0 0301
|
||||
Á "
|
||||
^A 9,12 0 0302
|
||||
 "
|
||||
~A 9,12 0 0303
|
||||
à "
|
||||
:A 9,11 0 0304
|
||||
Ä "
|
||||
oA 9,12 0 0305
|
||||
Å "
|
||||
AE 9,9 0 0306
|
||||
Æ "
|
||||
,C 9,9,3 0 0307
|
||||
Ç "
|
||||
`E 9,12 0 0310
|
||||
È "
|
||||
'E 9,12 0 0311
|
||||
É "
|
||||
^E 9,12 0 0312
|
||||
Ê "
|
||||
:E 9,11 0 0313
|
||||
Ë "
|
||||
`I 9,12 0 0314
|
||||
Ì "
|
||||
'I 9,12 0 0315
|
||||
Í "
|
||||
^I 9,12 0 0316
|
||||
Î "
|
||||
:I 9,11 0 0317
|
||||
Ï "
|
||||
-D 9,9 0 0320
|
||||
Ð "
|
||||
~N 9,12 0 0321
|
||||
Ñ "
|
||||
`O 9,12 0 0322
|
||||
Ò "
|
||||
'O 9,12 0 0323
|
||||
Ó "
|
||||
^O 9,12 0 0324
|
||||
Ô "
|
||||
~O 9,12 0 0325
|
||||
Õ "
|
||||
:O 9,11 0 0326
|
||||
Ö "
|
||||
mu 9,8 0 0327
|
||||
× "
|
||||
/O 9,9 0 0330
|
||||
Ø "
|
||||
`U 9,12 0 0331
|
||||
Ù "
|
||||
'U 9,12 0 0332
|
||||
Ú "
|
||||
^U 9,12 0 0333
|
||||
Û "
|
||||
:U 9,11 0 0334
|
||||
Ü "
|
||||
'Y 9,12 0 0335
|
||||
Ý "
|
||||
TP 9,9 0 0336
|
||||
Þ "
|
||||
ss 9,9 0 0337
|
||||
ß "
|
||||
`a 9,10 0 0340
|
||||
à "
|
||||
'a 9,10 0 0341
|
||||
á "
|
||||
^a 9,10 0 0342
|
||||
â "
|
||||
~a 9,10 0 0343
|
||||
ã "
|
||||
:a 9,9 0 0344
|
||||
ä "
|
||||
oa 9,10 0 0345
|
||||
å "
|
||||
ae 9,7 0 0346
|
||||
æ "
|
||||
,c 9,7,3 0 0347
|
||||
ç "
|
||||
`e 9,10 0 0350
|
||||
è "
|
||||
'e 9,10 0 0351
|
||||
é "
|
||||
^e 9,10 0 0352
|
||||
ê "
|
||||
:e 9,9 0 0353
|
||||
ë "
|
||||
`i 9,10 0 0354
|
||||
ì "
|
||||
'i 9,10 0 0355
|
||||
í "
|
||||
^i 9,10 0 0356
|
||||
î "
|
||||
:i 9,9 0 0357
|
||||
ï "
|
||||
Sd 9,12 0 0360
|
||||
ð "
|
||||
~n 9,10 0 0361
|
||||
ñ "
|
||||
`o 9,10 0 0362
|
||||
ò "
|
||||
'o 9,10 0 0363
|
||||
ó "
|
||||
^o 9,10 0 0364
|
||||
ô "
|
||||
~o 9,10 0 0365
|
||||
õ "
|
||||
:o 9,9 0 0366
|
||||
ö "
|
||||
di 9,8 0 0367
|
||||
÷ "
|
||||
/o 9,7 0 0370
|
||||
ø "
|
||||
`u 9,10 0 0371
|
||||
ù "
|
||||
'u 9,10 0 0372
|
||||
ú "
|
||||
^u 9,10 0 0373
|
||||
û "
|
||||
:u 9,9 0 0374
|
||||
ü "
|
||||
'y 9,10,3 0 0375
|
||||
ý "
|
||||
Tp 9,9,3 0 0376
|
||||
þ "
|
||||
:y 9,9,3 0 0377
|
||||
ÿ "
|
||||
@@ -0,0 +1,10 @@
|
||||
styles R I B BI
|
||||
fonts 6 0 0 0 0 0 S
|
||||
sizes 8 10 12 14 18 24 0
|
||||
res 100
|
||||
tcommand
|
||||
html
|
||||
hor 1
|
||||
vert 1
|
||||
unitwidth 10
|
||||
postpro grohtml
|
||||
@@ -0,0 +1,306 @@
|
||||
name HB
|
||||
spacewidth 4
|
||||
charset
|
||||
--- 4,1 0 040
|
||||
! 4,11 0 041
|
||||
" 7,11 0 042
|
||||
# 9,10 0 043
|
||||
sh "
|
||||
$ 8,12,2 0 044
|
||||
Do "
|
||||
% 13,11 0 045
|
||||
& 11,10 0 046
|
||||
' 5,11 0 047
|
||||
( 5,11,3 0 050
|
||||
) 5,11,3 0 051
|
||||
* 6,11 0 052
|
||||
+ 9,8 0 053
|
||||
, 4,2,1 0 054
|
||||
\- 9,5 0 055
|
||||
. 4,2 0 056
|
||||
/ 4,11 0 057
|
||||
sl "
|
||||
0 8,11 0 060
|
||||
1 8,11 0 061
|
||||
2 8,11 0 062
|
||||
3 8,11 0 063
|
||||
4 8,11 0 064
|
||||
5 8,11 0 065
|
||||
6 8,11 0 066
|
||||
7 8,11 0 067
|
||||
8 8,11 0 070
|
||||
9 8,11 0 071
|
||||
: 5,8 0 072
|
||||
; 5,8,1 0 073
|
||||
< 8,7 0 074
|
||||
= 9,6 0 075
|
||||
eq "
|
||||
> 8,7 0 076
|
||||
? 9,11 0 077
|
||||
@ 14,11,1 0 0100
|
||||
at "
|
||||
A 10,11 0 0101
|
||||
B 10,11 0 0102
|
||||
C 11,11 0 0103
|
||||
D 11,11 0 0104
|
||||
E 9,11 0 0105
|
||||
F 9,11 0 0106
|
||||
G 11,11 0 0107
|
||||
H 10,11 0 0110
|
||||
I 4,11 0 0111
|
||||
J 8,11 0 0112
|
||||
K 10,11 0 0113
|
||||
L 8,11 0 0114
|
||||
M 13,11 0 0115
|
||||
N 11,11 0 0116
|
||||
O 12,11 0 0117
|
||||
P 10,11 0 0120
|
||||
Q 12,11 0 0121
|
||||
R 11,11 0 0122
|
||||
S 10,11 0 0123
|
||||
T 8,11 0 0124
|
||||
U 11,11 0 0125
|
||||
V 10,11 0 0126
|
||||
W 14,11 0 0127
|
||||
X 9,11 0 0130
|
||||
Y 10,11 0 0131
|
||||
Z 9,11 0 0132
|
||||
[ 5,11,3 0 0133
|
||||
lB "
|
||||
\ 4,11 0 0134
|
||||
rs "
|
||||
] 5,11,3 0 0135
|
||||
rB "
|
||||
^ 8,11 0 0136
|
||||
a^ "
|
||||
ha "
|
||||
_ 8,0,3 0 0137
|
||||
` 5,11 0 0140
|
||||
oq "
|
||||
a 8,8 0 0141
|
||||
b 9,11 0 0142
|
||||
c 8,8 0 0143
|
||||
d 9,11 0 0144
|
||||
e 8,8 0 0145
|
||||
f 4,11 0 0146
|
||||
g 9,8,3 0 0147
|
||||
h 9,11 0 0150
|
||||
i 4,11 0 0151
|
||||
j 4,11,3 0 0152
|
||||
k 8,11 0 0153
|
||||
l 4,11 0 0154
|
||||
m 12,8 0 0155
|
||||
n 9,8 0 0156
|
||||
o 9,8 0 0157
|
||||
p 9,8,3 0 0160
|
||||
q 9,8,3 0 0161
|
||||
r 6,8 0 0162
|
||||
s 8,8 0 0163
|
||||
t 5,10 0 0164
|
||||
u 9,8 0 0165
|
||||
v 8,8 0 0166
|
||||
w 10,8 0 0167
|
||||
x 7,8 0 0170
|
||||
y 8,8,3 0 0171
|
||||
z 6,8 0 0172
|
||||
{ 6,11,3 0 0173
|
||||
lC "
|
||||
| 4,11,3 0 0174
|
||||
or "
|
||||
ba "
|
||||
} 6,11,3 0 0175
|
||||
rC "
|
||||
~ 9,6 0 0176
|
||||
a~ "
|
||||
ap "
|
||||
ti "
|
||||
r! 4,8,3 0 0241
|
||||
¡ "
|
||||
ct 8,9,1 0 0242
|
||||
¢ "
|
||||
Po 8,11 0 0243
|
||||
£ "
|
||||
Cs 8,9 0 0244
|
||||
¤ "
|
||||
Ye 9,11 0 0245
|
||||
¥ "
|
||||
bb 4,11,3 0 0246
|
||||
¦ "
|
||||
sc 8,11,3 0 0247
|
||||
§ "
|
||||
ad 5,11 0 0250
|
||||
¨ "
|
||||
co 12,11 0 0251
|
||||
© "
|
||||
Of 6,11 0 0252
|
||||
ª "
|
||||
Fo 9,7 0 0253
|
||||
« "
|
||||
no 9,6 0 0254
|
||||
¬ "
|
||||
- 4,5 0 055
|
||||
hy "
|
||||
"
|
||||
rg 12,11 0 0256
|
||||
® "
|
||||
a- 5,10 0 0257
|
||||
¯ "
|
||||
de 6,11 0 0260
|
||||
° "
|
||||
+- 9,9 0 0261
|
||||
± "
|
||||
S2 5,11 0 0262
|
||||
² "
|
||||
S3 5,11 0 0263
|
||||
³ "
|
||||
aa 5,11 0 0264
|
||||
´ "
|
||||
µ 9,8,3 0 0265
|
||||
ps 8,11,3 0 0266
|
||||
¶ "
|
||||
md 4,5 0 0267
|
||||
· "
|
||||
ac 5,0,3 0 0270
|
||||
¸ "
|
||||
S1 4,11 0 0271
|
||||
¹ "
|
||||
Om 6,11 0 0272
|
||||
º "
|
||||
Fc 9,7 0 0273
|
||||
» "
|
||||
14 12,11 0 0274
|
||||
¼ "
|
||||
12 12,11 0 0275
|
||||
½ "
|
||||
34 12,11 0 0276
|
||||
¾ "
|
||||
r? 9,8,3 0 0277
|
||||
¿ "
|
||||
`A 10,14 0 0300
|
||||
À "
|
||||
'A 10,14 0 0301
|
||||
Á "
|
||||
^A 10,14 0 0302
|
||||
 "
|
||||
~A 10,14 0 0303
|
||||
à "
|
||||
:A 10,14 0 0304
|
||||
Ä "
|
||||
oA 10,14 0 0305
|
||||
Å "
|
||||
AE 15,11 0 0306
|
||||
Æ "
|
||||
,C 11,11,3 0 0307
|
||||
Ç "
|
||||
`E 9,14 0 0310
|
||||
È "
|
||||
'E 9,14 0 0311
|
||||
É "
|
||||
^E 9,14 0 0312
|
||||
Ê "
|
||||
:E 9,14 0 0313
|
||||
Ë "
|
||||
`I 4,14 0 0314
|
||||
Ì "
|
||||
'I 4,14 0 0315
|
||||
Í "
|
||||
^I 4,14 0 0316
|
||||
Î "
|
||||
:I 4,14 0 0317
|
||||
Ï "
|
||||
-D 11,11 0 0320
|
||||
Ð "
|
||||
~N 11,14 0 0321
|
||||
Ñ "
|
||||
`O 12,14 0 0322
|
||||
Ò "
|
||||
'O 12,14 0 0323
|
||||
Ó "
|
||||
^O 12,14 0 0324
|
||||
Ô "
|
||||
~O 12,14 0 0325
|
||||
Õ "
|
||||
:O 12,14 0 0326
|
||||
Ö "
|
||||
mu 9,8 0 0327
|
||||
× "
|
||||
/O 12,11 0 0330
|
||||
Ø "
|
||||
`U 11,14 0 0331
|
||||
Ù "
|
||||
'U 11,14 0 0332
|
||||
Ú "
|
||||
^U 11,14 0 0333
|
||||
Û "
|
||||
:U 11,14 0 0334
|
||||
Ü "
|
||||
'Y 10,14 0 0335
|
||||
Ý "
|
||||
TP 10,11 0 0336
|
||||
Þ "
|
||||
ss 8,11 0 0337
|
||||
ß "
|
||||
`a 8,11 0 0340
|
||||
à "
|
||||
'a 8,11 0 0341
|
||||
á "
|
||||
^a 8,11 0 0342
|
||||
â "
|
||||
~a 8,11 0 0343
|
||||
ã "
|
||||
:a 8,11 0 0344
|
||||
ä "
|
||||
oa 8,11 0 0345
|
||||
å "
|
||||
ae 13,8 0 0346
|
||||
æ "
|
||||
,c 9,8,3 0 0347
|
||||
ç "
|
||||
`e 8,11 0 0350
|
||||
è "
|
||||
'e 8,11 0 0351
|
||||
é "
|
||||
^e 8,11 0 0352
|
||||
ê "
|
||||
:e 8,11 0 0353
|
||||
ë "
|
||||
`i 4,11 0 0354
|
||||
ì "
|
||||
'i 4,11 0 0355
|
||||
í "
|
||||
^i 4,11 0 0356
|
||||
î "
|
||||
:i 4,11 0 0357
|
||||
ï "
|
||||
Sd 9,11 0 0360
|
||||
ð "
|
||||
~n 9,11 0 0361
|
||||
ñ "
|
||||
`o 9,11 0 0362
|
||||
ò "
|
||||
'o 9,11 0 0363
|
||||
ó "
|
||||
^o 9,11 0 0364
|
||||
ô "
|
||||
~o 9,11 0 0365
|
||||
õ "
|
||||
:o 9,11 0 0366
|
||||
ö "
|
||||
di 9,8 0 0367
|
||||
÷ "
|
||||
/o 9,8 0 0370
|
||||
ø "
|
||||
`u 9,11 0 0371
|
||||
ù "
|
||||
'u 9,11 0 0372
|
||||
ú "
|
||||
^u 9,11 0 0373
|
||||
û "
|
||||
:u 9,11 0 0374
|
||||
ü "
|
||||
'y 8,11,3 0 0375
|
||||
ý "
|
||||
Tp 9,11,3 0 0376
|
||||
þ "
|
||||
:y 8,11,3 0 0377
|
||||
ÿ "
|
||||
@@ -0,0 +1,306 @@
|
||||
name HBI
|
||||
spacewidth 4
|
||||
charset
|
||||
--- 4,1 0 040
|
||||
! 5,11 0 041
|
||||
" 7,11 0 042
|
||||
# 10,10 0 043
|
||||
sh "
|
||||
$ 8,12,1 0 044
|
||||
Do "
|
||||
% 13,11 0 045
|
||||
& 11,10 0 046
|
||||
' 5,11 0 047
|
||||
( 5,11,3 0 050
|
||||
) 6,11,3 0 051
|
||||
* 6,11 0 052
|
||||
+ 9,8 0 053
|
||||
, 4,2,2 0 054
|
||||
\- 9,5 0 055
|
||||
. 4,2 0 056
|
||||
/ 4,11 0 057
|
||||
sl "
|
||||
0 8,11 0 060
|
||||
1 8,11 0 061
|
||||
2 8,11 0 062
|
||||
3 8,11 0 063
|
||||
4 8,11 0 064
|
||||
5 8,11 0 065
|
||||
6 8,11 0 066
|
||||
7 8,11 0 067
|
||||
8 8,11 0 070
|
||||
9 8,11 0 071
|
||||
: 5,8 0 072
|
||||
; 5,8,2 0 073
|
||||
< 8,7 0 074
|
||||
= 9,6 0 075
|
||||
eq "
|
||||
> 9,7 0 076
|
||||
? 9,11 0 077
|
||||
@ 14,11,2 0 0100
|
||||
at "
|
||||
A 9,11 0 0101
|
||||
B 10,11 0 0102
|
||||
C 11,11 0 0103
|
||||
D 11,11 0 0104
|
||||
E 9,11 0 0105
|
||||
F 8,11 0 0106
|
||||
G 11,11 0 0107
|
||||
H 10,11 0 0110
|
||||
I 4,11 0 0111
|
||||
J 8,11 0 0112
|
||||
K 10,11 0 0113
|
||||
L 8,11 0 0114
|
||||
M 13,11 0 0115
|
||||
N 11,11 0 0116
|
||||
O 12,11 0 0117
|
||||
P 10,11 0 0120
|
||||
Q 12,11 0 0121
|
||||
R 10,11 0 0122
|
||||
S 10,11 0 0123
|
||||
T 8,11 0 0124
|
||||
U 11,11 0 0125
|
||||
V 10,11 0 0126
|
||||
W 14,11 0 0127
|
||||
X 9,11 0 0130
|
||||
Y 10,11 0 0131
|
||||
Z 9,11 0 0132
|
||||
[ 5,11,3 0 0133
|
||||
lB "
|
||||
\ 6,11 0 0134
|
||||
rs "
|
||||
] 5,11,3 0 0135
|
||||
rB "
|
||||
^ 8,11 0 0136
|
||||
a^ "
|
||||
ha "
|
||||
_ 8,0,3 0 0137
|
||||
` 5,11 0 0140
|
||||
oq "
|
||||
a 8,8 0 0141
|
||||
b 9,11 0 0142
|
||||
c 8,8 0 0143
|
||||
d 9,11 0 0144
|
||||
e 8,8 0 0145
|
||||
f 5,11 0 0146
|
||||
g 9,8,3 0 0147
|
||||
h 9,11 0 0150
|
||||
i 4,11 0 0151
|
||||
j 4,11,3 0 0152
|
||||
k 8,11 0 0153
|
||||
l 4,11 0 0154
|
||||
m 12,8 0 0155
|
||||
n 9,8 0 0156
|
||||
o 8,8 0 0157
|
||||
p 9,8,3 0 0160
|
||||
q 9,8,3 0 0161
|
||||
r 6,8 0 0162
|
||||
s 8,8 0 0163
|
||||
t 5,10 0 0164
|
||||
u 9,8 0 0165
|
||||
v 8,8 0 0166
|
||||
w 11,8 0 0167
|
||||
x 7,8 0 0170
|
||||
y 7,8,3 0 0171
|
||||
z 6,8 0 0172
|
||||
{ 6,11,3 0 0173
|
||||
lC "
|
||||
| 4,11,3 0 0174
|
||||
or "
|
||||
ba "
|
||||
} 6,11,3 0 0175
|
||||
rC "
|
||||
~ 9,6 0 0176
|
||||
a~ "
|
||||
ap "
|
||||
ti "
|
||||
r! 5,8,3 0 0241
|
||||
¡ "
|
||||
ct 8,9,1 0 0242
|
||||
¢ "
|
||||
Po 9,11 0 0243
|
||||
£ "
|
||||
Cs 9,8 0 0244
|
||||
¤ "
|
||||
Ye 9,11 0 0245
|
||||
¥ "
|
||||
bb 4,11,3 0 0246
|
||||
¦ "
|
||||
sc 9,11,3 0 0247
|
||||
§ "
|
||||
ad 5,11 0 0250
|
||||
¨ "
|
||||
co 12,11 0 0251
|
||||
© "
|
||||
Of 6,11 0 0252
|
||||
ª "
|
||||
Fo 11,7 0 0253
|
||||
« "
|
||||
no 9,6 0 0254
|
||||
¬ "
|
||||
- 5,5 0 055
|
||||
hy "
|
||||
"
|
||||
rg 12,11 0 0256
|
||||
® "
|
||||
a- 5,11 0 0257
|
||||
¯ "
|
||||
de 6,11 0 0260
|
||||
° "
|
||||
+- 9,9 0 0261
|
||||
± "
|
||||
S2 5,11 0 0262
|
||||
² "
|
||||
S3 5,11 0 0263
|
||||
³ "
|
||||
aa 5,11 0 0264
|
||||
´ "
|
||||
µ 9,8,3 0 0265
|
||||
ps 8,11,3 0 0266
|
||||
¶ "
|
||||
md 4,5 0 0267
|
||||
· "
|
||||
ac 5,1,3 0 0270
|
||||
¸ "
|
||||
S1 5,11 0 0271
|
||||
¹ "
|
||||
Om 6,11 0 0272
|
||||
º "
|
||||
Fc 11,7 0 0273
|
||||
» "
|
||||
14 12,11 0 0274
|
||||
¼ "
|
||||
12 12,11 0 0275
|
||||
½ "
|
||||
34 13,11 0 0276
|
||||
¾ "
|
||||
r? 8,8,3 0 0277
|
||||
¿ "
|
||||
`A 9,14 0 0300
|
||||
À "
|
||||
'A 9,14 0 0301
|
||||
Á "
|
||||
^A 9,14 0 0302
|
||||
 "
|
||||
~A 9,14 0 0303
|
||||
à "
|
||||
:A 9,14 0 0304
|
||||
Ä "
|
||||
oA 9,14 0 0305
|
||||
Å "
|
||||
AE 14,11 0 0306
|
||||
Æ "
|
||||
,C 11,11,3 0 0307
|
||||
Ç "
|
||||
`E 9,14 0 0310
|
||||
È "
|
||||
'E 9,14 0 0311
|
||||
É "
|
||||
^E 9,14 0 0312
|
||||
Ê "
|
||||
:E 9,14 0 0313
|
||||
Ë "
|
||||
`I 4,14 0 0314
|
||||
Ì "
|
||||
'I 4,14 0 0315
|
||||
Í "
|
||||
^I 4,14 0 0316
|
||||
Î "
|
||||
:I 4,14 0 0317
|
||||
Ï "
|
||||
-D 11,11 0 0320
|
||||
Ð "
|
||||
~N 11,14 0 0321
|
||||
Ñ "
|
||||
`O 12,14 0 0322
|
||||
Ò "
|
||||
'O 12,14 0 0323
|
||||
Ó "
|
||||
^O 12,14 0 0324
|
||||
Ô "
|
||||
~O 12,14 0 0325
|
||||
Õ "
|
||||
:O 12,14 0 0326
|
||||
Ö "
|
||||
mu 9,8 0 0327
|
||||
× "
|
||||
/O 12,11 0 0330
|
||||
Ø "
|
||||
`U 11,14 0 0331
|
||||
Ù "
|
||||
'U 11,14 0 0332
|
||||
Ú "
|
||||
^U 11,14 0 0333
|
||||
Û "
|
||||
:U 11,14 0 0334
|
||||
Ü "
|
||||
'Y 10,14 0 0335
|
||||
Ý "
|
||||
TP 10,11 0 0336
|
||||
Þ "
|
||||
ss 9,11 0 0337
|
||||
ß "
|
||||
`a 8,11 0 0340
|
||||
à "
|
||||
'a 8,11 0 0341
|
||||
á "
|
||||
^a 8,11 0 0342
|
||||
â "
|
||||
~a 8,11 0 0343
|
||||
ã "
|
||||
:a 8,11 0 0344
|
||||
ä "
|
||||
oa 8,11 0 0345
|
||||
å "
|
||||
ae 13,8 0 0346
|
||||
æ "
|
||||
,c 8,8,3 0 0347
|
||||
ç "
|
||||
`e 8,11 0 0350
|
||||
è "
|
||||
'e 8,11 0 0351
|
||||
é "
|
||||
^e 8,11 0 0352
|
||||
ê "
|
||||
:e 8,11 0 0353
|
||||
ë "
|
||||
`i 4,11 0 0354
|
||||
ì "
|
||||
'i 4,11 0 0355
|
||||
í "
|
||||
^i 4,11 0 0356
|
||||
î "
|
||||
:i 4,11 0 0357
|
||||
ï "
|
||||
Sd 8,11 0 0360
|
||||
ð "
|
||||
~n 9,11 0 0361
|
||||
ñ "
|
||||
`o 8,11 0 0362
|
||||
ò "
|
||||
'o 8,11 0 0363
|
||||
ó "
|
||||
^o 8,11 0 0364
|
||||
ô "
|
||||
~o 8,11 0 0365
|
||||
õ "
|
||||
:o 8,11 0 0366
|
||||
ö "
|
||||
di 9,8 0 0367
|
||||
÷ "
|
||||
/o 8,8 0 0370
|
||||
ø "
|
||||
`u 9,11 0 0371
|
||||
ù "
|
||||
'u 9,11 0 0372
|
||||
ú "
|
||||
^u 9,11 0 0373
|
||||
û "
|
||||
:u 9,11 0 0374
|
||||
ü "
|
||||
'y 7,11,3 0 0375
|
||||
ý "
|
||||
Tp 9,11,3 0 0376
|
||||
þ "
|
||||
:y 7,11,3 0 0377
|
||||
ÿ "
|
||||
@@ -0,0 +1,306 @@
|
||||
name HI
|
||||
spacewidth 4
|
||||
charset
|
||||
--- 4,1 0 040
|
||||
! 4,11 0 041
|
||||
" 5,11 0 042
|
||||
# 9,10 0 043
|
||||
sh "
|
||||
$ 8,12,2 0 044
|
||||
Do "
|
||||
% 12,11 0 045
|
||||
& 10,10 0 046
|
||||
' 3,11 0 047
|
||||
( 5,11,3 0 050
|
||||
) 5,11,3 0 051
|
||||
* 8,11 0 052
|
||||
+ 9,8 0 053
|
||||
, 3,2,2 0 054
|
||||
\- 9,5 0 055
|
||||
. 3,2 0 056
|
||||
/ 4,11 0 057
|
||||
sl "
|
||||
0 8,11 0 060
|
||||
1 8,11 0 061
|
||||
2 8,11 0 062
|
||||
3 8,11 0 063
|
||||
4 8,11 0 064
|
||||
5 8,11 0 065
|
||||
6 8,11 0 066
|
||||
7 8,11 0 067
|
||||
8 8,11 0 070
|
||||
9 8,11 0 071
|
||||
: 4,8 0 072
|
||||
; 4,8,2 0 073
|
||||
< 9,7 0 074
|
||||
= 9,6 0 075
|
||||
eq "
|
||||
> 9,7 0 076
|
||||
? 8,11 0 077
|
||||
@ 13,11,1 0 0100
|
||||
at "
|
||||
A 11,11 0 0101
|
||||
B 10,11 0 0102
|
||||
C 10,11 0 0103
|
||||
D 10,11 0 0104
|
||||
E 9,11 0 0105
|
||||
F 9,11 0 0106
|
||||
G 11,11 0 0107
|
||||
H 11,11 0 0110
|
||||
I 5,11 0 0111
|
||||
J 9,11 0 0112
|
||||
K 10,11 0 0113
|
||||
L 8,11 0 0114
|
||||
M 14,11 0 0115
|
||||
N 11,11 0 0116
|
||||
O 11,11 0 0117
|
||||
P 9,11 0 0120
|
||||
Q 11,11 0 0121
|
||||
R 10,11 0 0122
|
||||
S 9,11 0 0123
|
||||
T 8,11 0 0124
|
||||
U 11,11 0 0125
|
||||
V 11,11 0 0126
|
||||
W 14,11 0 0127
|
||||
X 10,11 0 0130
|
||||
Y 9,11 0 0131
|
||||
Z 9,11 0 0132
|
||||
[ 5,11,3 0 0133
|
||||
lB "
|
||||
\ 6,11 0 0134
|
||||
rs "
|
||||
] 5,11,3 0 0135
|
||||
rB "
|
||||
^ 7,11 0 0136
|
||||
a^ "
|
||||
ha "
|
||||
_ 8,0,3 0 0137
|
||||
` 3,11 0 0140
|
||||
oq "
|
||||
a 8,8 0 0141
|
||||
b 8,11 0 0142
|
||||
c 7,8 0 0143
|
||||
d 8,11 0 0144
|
||||
e 8,8 0 0145
|
||||
f 4,11 0 0146
|
||||
g 8,8,3 0 0147
|
||||
h 8,11 0 0150
|
||||
i 4,11 0 0151
|
||||
j 3,11,3 0 0152
|
||||
k 7,11 0 0153
|
||||
l 3,11 0 0154
|
||||
m 11,8 0 0155
|
||||
n 8,8 0 0156
|
||||
o 8,8 0 0157
|
||||
p 8,8,3 0 0160
|
||||
q 8,8,3 0 0161
|
||||
r 5,8 0 0162
|
||||
s 7,8 0 0163
|
||||
t 4,10 0 0164
|
||||
u 8,8 0 0165
|
||||
v 7,8 0 0166
|
||||
w 10,8 0 0167
|
||||
x 7,8 0 0170
|
||||
y 7,8,3 0 0171
|
||||
z 7,8 0 0172
|
||||
{ 5,11,3 0 0173
|
||||
lC "
|
||||
| 4,11,3 0 0174
|
||||
or "
|
||||
ba "
|
||||
} 5,11,3 0 0175
|
||||
rC "
|
||||
~ 8,6 0 0176
|
||||
a~ "
|
||||
ap "
|
||||
ti "
|
||||
r! 4,8,3 0 0241
|
||||
¡ "
|
||||
ct 8,9,1 0 0242
|
||||
¢ "
|
||||
Po 9,11 0 0243
|
||||
£ "
|
||||
Cs 8,8 0 0244
|
||||
¤ "
|
||||
Ye 9,11 0 0245
|
||||
¥ "
|
||||
bb 4,11,3 0 0246
|
||||
¦ "
|
||||
sc 8,11,3 0 0247
|
||||
§ "
|
||||
ad 5,10 0 0250
|
||||
¨ "
|
||||
co 12,11 0 0251
|
||||
© "
|
||||
Of 5,11 0 0252
|
||||
ª "
|
||||
Fo 8,6 0 0253
|
||||
« "
|
||||
no 9,6 0 0254
|
||||
¬ "
|
||||
- 5,5 0 055
|
||||
hy "
|
||||
"
|
||||
rg 12,11 0 0256
|
||||
® "
|
||||
a- 4,10 0 0257
|
||||
¯ "
|
||||
de 6,11 0 0260
|
||||
° "
|
||||
+- 9,9 0 0261
|
||||
± "
|
||||
S2 5,11 0 0262
|
||||
² "
|
||||
S3 5,11 0 0263
|
||||
³ "
|
||||
aa 4,11 0 0264
|
||||
´ "
|
||||
µ 8,8,3 0 0265
|
||||
ps 8,11,3 0 0266
|
||||
¶ "
|
||||
md 4,5 0 0267
|
||||
· "
|
||||
ac 3,0,3 0 0270
|
||||
¸ "
|
||||
S1 5,11 0 0271
|
||||
¹ "
|
||||
Om 5,11 0 0272
|
||||
º "
|
||||
Fc 8,6 0 0273
|
||||
» "
|
||||
14 12,11 0 0274
|
||||
¼ "
|
||||
12 12,11 0 0275
|
||||
½ "
|
||||
34 12,11 0 0276
|
||||
¾ "
|
||||
r? 8,8,3 0 0277
|
||||
¿ "
|
||||
`A 11,14 0 0300
|
||||
À "
|
||||
'A 11,14 0 0301
|
||||
Á "
|
||||
^A 11,14 0 0302
|
||||
 "
|
||||
~A 11,14 0 0303
|
||||
à "
|
||||
:A 11,13 0 0304
|
||||
Ä "
|
||||
oA 11,14 0 0305
|
||||
Å "
|
||||
AE 15,11 0 0306
|
||||
Æ "
|
||||
,C 10,11,3 0 0307
|
||||
Ç "
|
||||
`E 9,14 0 0310
|
||||
È "
|
||||
'E 9,14 0 0311
|
||||
É "
|
||||
^E 9,14 0 0312
|
||||
Ê "
|
||||
:E 9,13 0 0313
|
||||
Ë "
|
||||
`I 5,14 0 0314
|
||||
Ì "
|
||||
'I 5,14 0 0315
|
||||
Í "
|
||||
^I 5,14 0 0316
|
||||
Î "
|
||||
:I 5,13 0 0317
|
||||
Ï "
|
||||
-D 10,11 0 0320
|
||||
Ð "
|
||||
~N 11,14 0 0321
|
||||
Ñ "
|
||||
`O 11,14 0 0322
|
||||
Ò "
|
||||
'O 11,14 0 0323
|
||||
Ó "
|
||||
^O 11,14 0 0324
|
||||
Ô "
|
||||
~O 11,14 0 0325
|
||||
Õ "
|
||||
:O 11,13 0 0326
|
||||
Ö "
|
||||
mu 9,8 0 0327
|
||||
× "
|
||||
/O 11,11 0 0330
|
||||
Ø "
|
||||
`U 11,14 0 0331
|
||||
Ù "
|
||||
'U 11,14 0 0332
|
||||
Ú "
|
||||
^U 11,14 0 0333
|
||||
Û "
|
||||
:U 11,13 0 0334
|
||||
Ü "
|
||||
'Y 9,14 0 0335
|
||||
Ý "
|
||||
TP 9,11 0 0336
|
||||
Þ "
|
||||
ss 8,11 0 0337
|
||||
ß "
|
||||
`a 8,11 0 0340
|
||||
à "
|
||||
'a 8,11 0 0341
|
||||
á "
|
||||
^a 8,11 0 0342
|
||||
â "
|
||||
~a 8,11 0 0343
|
||||
ã "
|
||||
:a 8,11 0 0344
|
||||
ä "
|
||||
oa 8,11 0 0345
|
||||
å "
|
||||
ae 12,8 0 0346
|
||||
æ "
|
||||
,c 7,8,3 0 0347
|
||||
ç "
|
||||
`e 8,11 0 0350
|
||||
è "
|
||||
'e 8,11 0 0351
|
||||
é "
|
||||
^e 8,11 0 0352
|
||||
ê "
|
||||
:e 8,11 0 0353
|
||||
ë "
|
||||
`i 3,11 0 0354
|
||||
ì "
|
||||
'i 3,11 0 0355
|
||||
í "
|
||||
^i 3,11 0 0356
|
||||
î "
|
||||
:i 3,11 0 0357
|
||||
ï "
|
||||
Sd 8,11 0 0360
|
||||
ð "
|
||||
~n 8,11 0 0361
|
||||
ñ "
|
||||
`o 8,11 0 0362
|
||||
ò "
|
||||
'o 8,11 0 0363
|
||||
ó "
|
||||
^o 8,11 0 0364
|
||||
ô "
|
||||
~o 8,11 0 0365
|
||||
õ "
|
||||
:o 8,11 0 0366
|
||||
ö "
|
||||
di 9,8 0 0367
|
||||
÷ "
|
||||
/o 8,9,1 0 0370
|
||||
ø "
|
||||
`u 8,11 0 0371
|
||||
ù "
|
||||
'u 8,11 0 0372
|
||||
ú "
|
||||
^u 8,11 0 0373
|
||||
û "
|
||||
:u 8,11 0 0374
|
||||
ü "
|
||||
'y 7,11,3 0 0375
|
||||
ý "
|
||||
Tp 8,11,3 0 0376
|
||||
þ "
|
||||
:y 7,11,3 0 0377
|
||||
ÿ "
|
||||
@@ -0,0 +1,306 @@
|
||||
name HR
|
||||
spacewidth 4
|
||||
charset
|
||||
--- 4,1 0 040
|
||||
! 4,11 0 041
|
||||
" 5,11 0 042
|
||||
# 8,10 0 043
|
||||
sh "
|
||||
$ 8,12,2 0 044
|
||||
Do "
|
||||
% 12,11 0 045
|
||||
& 10,10 0 046
|
||||
' 3,11 0 047
|
||||
( 5,11,3 0 050
|
||||
) 5,11,3 0 051
|
||||
* 7,11 0 052
|
||||
+ 9,8 0 053
|
||||
, 3,2,2 0 054
|
||||
\- 9,5 0 055
|
||||
. 3,2 0 056
|
||||
/ 4,11 0 057
|
||||
sl "
|
||||
0 8,11 0 060
|
||||
1 8,11 0 061
|
||||
2 8,11 0 062
|
||||
3 8,11 0 063
|
||||
4 8,11 0 064
|
||||
5 8,11 0 065
|
||||
6 8,11 0 066
|
||||
7 8,11 0 067
|
||||
8 8,11 0 070
|
||||
9 8,11 0 071
|
||||
: 3,8 0 072
|
||||
; 4,8,2 0 073
|
||||
< 8,7 0 074
|
||||
= 9,6 0 075
|
||||
eq "
|
||||
> 8,7 0 076
|
||||
? 8,11 0 077
|
||||
@ 13,11,1 0 0100
|
||||
at "
|
||||
A 9,11 0 0101
|
||||
B 9,11 0 0102
|
||||
C 10,11 0 0103
|
||||
D 10,11 0 0104
|
||||
E 9,11 0 0105
|
||||
F 8,11 0 0106
|
||||
G 11,11 0 0107
|
||||
H 10,11 0 0110
|
||||
I 4,11 0 0111
|
||||
J 7,11 0 0112
|
||||
K 9,11 0 0113
|
||||
L 8,11 0 0114
|
||||
M 12,11 0 0115
|
||||
N 10,11 0 0116
|
||||
O 11,11 0 0117
|
||||
P 9,11 0 0120
|
||||
Q 11,11 0 0121
|
||||
R 10,11 0 0122
|
||||
S 9,11 0 0123
|
||||
T 9,11 0 0124
|
||||
U 10,11 0 0125
|
||||
V 9,11 0 0126
|
||||
W 13,11 0 0127
|
||||
X 9,11 0 0130
|
||||
Y 9,11 0 0131
|
||||
Z 9,11 0 0132
|
||||
[ 4,11,3 0 0133
|
||||
lB "
|
||||
\ 4,11 0 0134
|
||||
rs "
|
||||
] 4,11,3 0 0135
|
||||
rB "
|
||||
^ 7,11 0 0136
|
||||
a^ "
|
||||
ha "
|
||||
_ 8,0,3 0 0137
|
||||
` 3,11 0 0140
|
||||
oq "
|
||||
a 8,8 0 0141
|
||||
b 7,11 0 0142
|
||||
c 7,8 0 0143
|
||||
d 8,11 0 0144
|
||||
e 8,8 0 0145
|
||||
f 4,11 0 0146
|
||||
g 8,8,3 0 0147
|
||||
h 8,11 0 0150
|
||||
i 3,11 0 0151
|
||||
j 3,11,3 0 0152
|
||||
k 7,11 0 0153
|
||||
l 3,11 0 0154
|
||||
m 11,8 0 0155
|
||||
n 8,8 0 0156
|
||||
o 8,8 0 0157
|
||||
p 8,8,3 0 0160
|
||||
q 8,8,3 0 0161
|
||||
r 5,8 0 0162
|
||||
s 7,8 0 0163
|
||||
t 4,10 0 0164
|
||||
u 7,8 0 0165
|
||||
v 7,8 0 0166
|
||||
w 10,8 0 0167
|
||||
x 7,8 0 0170
|
||||
y 7,8,3 0 0171
|
||||
z 7,8 0 0172
|
||||
{ 5,11,3 0 0173
|
||||
lC "
|
||||
| 3,11,3 0 0174
|
||||
or "
|
||||
ba "
|
||||
} 5,11,3 0 0175
|
||||
rC "
|
||||
~ 8,6 0 0176
|
||||
a~ "
|
||||
ap "
|
||||
ti "
|
||||
r! 4,8,3 0 0241
|
||||
¡ "
|
||||
ct 8,9,1 0 0242
|
||||
¢ "
|
||||
Po 8,11 0 0243
|
||||
£ "
|
||||
Cs 8,8 0 0244
|
||||
¤ "
|
||||
Ye 7,11 0 0245
|
||||
¥ "
|
||||
bb 3,11,3 0 0246
|
||||
¦ "
|
||||
sc 8,11,3 0 0247
|
||||
§ "
|
||||
ad 5,10 0 0250
|
||||
¨ "
|
||||
co 12,11 0 0251
|
||||
© "
|
||||
Of 6,11 0 0252
|
||||
ª "
|
||||
Fo 8,7 0 0253
|
||||
« "
|
||||
no 9,6 0 0254
|
||||
¬ "
|
||||
- 4,5 0 055
|
||||
hy "
|
||||
"
|
||||
rg 12,11 0 0256
|
||||
® "
|
||||
a- 4,10 0 0257
|
||||
¯ "
|
||||
de 6,11 0 0260
|
||||
° "
|
||||
+- 9,9 0 0261
|
||||
± "
|
||||
S2 5,11 0 0262
|
||||
² "
|
||||
S3 5,11 0 0263
|
||||
³ "
|
||||
aa 5,11 0 0264
|
||||
´ "
|
||||
µ 8,8,3 0 0265
|
||||
ps 8,11,3 0 0266
|
||||
¶ "
|
||||
md 4,5 0 0267
|
||||
· "
|
||||
ac 5,0,3 0 0270
|
||||
¸ "
|
||||
S1 5,11 0 0271
|
||||
¹ "
|
||||
Om 6,11 0 0272
|
||||
º "
|
||||
Fc 8,7 0 0273
|
||||
» "
|
||||
14 12,11 0 0274
|
||||
¼ "
|
||||
12 12,11 0 0275
|
||||
½ "
|
||||
34 12,11 0 0276
|
||||
¾ "
|
||||
r? 8,8,3 0 0277
|
||||
¿ "
|
||||
`A 9,14 0 0300
|
||||
À "
|
||||
'A 9,14 0 0301
|
||||
Á "
|
||||
^A 9,14 0 0302
|
||||
 "
|
||||
~A 9,13 0 0303
|
||||
à "
|
||||
:A 9,14 0 0304
|
||||
Ä "
|
||||
oA 9,14 0 0305
|
||||
Å "
|
||||
AE 14,11 0 0306
|
||||
Æ "
|
||||
,C 10,11,3 0 0307
|
||||
Ç "
|
||||
`E 9,14 0 0310
|
||||
È "
|
||||
'E 9,14 0 0311
|
||||
É "
|
||||
^E 9,14 0 0312
|
||||
Ê "
|
||||
:E 9,13 0 0313
|
||||
Ë "
|
||||
`I 4,14 0 0314
|
||||
Ì "
|
||||
'I 4,14 0 0315
|
||||
Í "
|
||||
^I 4,14 0 0316
|
||||
Î "
|
||||
:I 4,13 0 0317
|
||||
Ï "
|
||||
-D 10,11 0 0320
|
||||
Ð "
|
||||
~N 10,14 0 0321
|
||||
Ñ "
|
||||
`O 11,14 0 0322
|
||||
Ò "
|
||||
'O 11,14 0 0323
|
||||
Ó "
|
||||
^O 11,14 0 0324
|
||||
Ô "
|
||||
~O 11,14 0 0325
|
||||
Õ "
|
||||
:O 11,13 0 0326
|
||||
Ö "
|
||||
mu 9,8 0 0327
|
||||
× "
|
||||
/O 11,11 0 0330
|
||||
Ø "
|
||||
`U 10,14 0 0331
|
||||
Ù "
|
||||
'U 10,14 0 0332
|
||||
Ú "
|
||||
^U 10,14 0 0333
|
||||
Û "
|
||||
:U 10,13 0 0334
|
||||
Ü "
|
||||
'Y 9,14 0 0335
|
||||
Ý "
|
||||
TP 9,11 0 0336
|
||||
Þ "
|
||||
ss 7,11 0 0337
|
||||
ß "
|
||||
`a 8,11 0 0340
|
||||
à "
|
||||
'a 8,11 0 0341
|
||||
á "
|
||||
^a 8,11 0 0342
|
||||
â "
|
||||
~a 8,11 0 0343
|
||||
ã "
|
||||
:a 8,11 0 0344
|
||||
ä "
|
||||
oa 8,12 0 0345
|
||||
å "
|
||||
ae 13,8 0 0346
|
||||
æ "
|
||||
,c 8,8,3 0 0347
|
||||
ç "
|
||||
`e 8,11 0 0350
|
||||
è "
|
||||
'e 8,11 0 0351
|
||||
é "
|
||||
^e 8,11 0 0352
|
||||
ê "
|
||||
:e 8,11 0 0353
|
||||
ë "
|
||||
`i 3,11 0 0354
|
||||
ì "
|
||||
'i 3,11 0 0355
|
||||
í "
|
||||
^i 3,11 0 0356
|
||||
î "
|
||||
:i 3,11 0 0357
|
||||
ï "
|
||||
Sd 8,11 0 0360
|
||||
ð "
|
||||
~n 8,11 0 0361
|
||||
ñ "
|
||||
`o 8,11 0 0362
|
||||
ò "
|
||||
'o 8,11 0 0363
|
||||
ó "
|
||||
^o 8,11 0 0364
|
||||
ô "
|
||||
~o 8,11 0 0365
|
||||
õ "
|
||||
:o 8,11 0 0366
|
||||
ö "
|
||||
di 9,8 0 0367
|
||||
÷ "
|
||||
/o 8,8 0 0370
|
||||
ø "
|
||||
`u 8,11 0 0371
|
||||
ù "
|
||||
'u 8,11 0 0372
|
||||
ú "
|
||||
^u 8,11 0 0373
|
||||
û "
|
||||
:u 8,11 0 0374
|
||||
ü "
|
||||
'y 7,11,3 0 0375
|
||||
ý "
|
||||
Tp 8,11,3 0 0376
|
||||
þ "
|
||||
:y 7,10,3 0 0377
|
||||
ÿ "
|
||||
@@ -0,0 +1,2 @@
|
||||
DEV=html
|
||||
DEVFILES=DESC TR TI TB TBI CR CI CB CBI HR HI HB HBI NR NI NB NBI S
|
||||
@@ -0,0 +1,306 @@
|
||||
name NB
|
||||
spacewidth 11
|
||||
charset
|
||||
--- 11,1 0 040
|
||||
! 4,11 0 041
|
||||
" 5,11 0 042
|
||||
# 8,10 0 043
|
||||
sh "
|
||||
$ 8,12,1 0 044
|
||||
Do "
|
||||
% 13,11 0 045
|
||||
& 13,11 0 046
|
||||
' 4,11 0 047
|
||||
( 5,11,2 0 050
|
||||
) 5,11,2 0 051
|
||||
* 6,11 0 052
|
||||
+ 8,8 0 053
|
||||
, 4,3,2 0 054
|
||||
\- 8,5 0 055
|
||||
. 4,3 0 056
|
||||
/ 5,11 0 057
|
||||
sl "
|
||||
0 8,11 0 060
|
||||
1 6,11 0 061
|
||||
2 8,11 0 062
|
||||
3 8,11 0 063
|
||||
4 8,11 0 064
|
||||
5 8,11 0 065
|
||||
6 8,11 0 066
|
||||
7 8,11 0 067
|
||||
8 8,11 0 070
|
||||
9 8,11 0 071
|
||||
: 4,7 0 072
|
||||
; 4,7,2 0 073
|
||||
< 8,8 0 074
|
||||
= 8,6 0 075
|
||||
eq "
|
||||
> 8,8 0 076
|
||||
? 7,11 0 077
|
||||
@ 14,11 0 0100
|
||||
at "
|
||||
A 11,11 0 0101
|
||||
B 10,11 0 0102
|
||||
C 11,11 0 0103
|
||||
D 12,11 0 0104
|
||||
E 10,11 0 0105
|
||||
F 10,11 0 0106
|
||||
G 12,11 0 0107
|
||||
H 12,11 0 0110
|
||||
I 7,11 0 0111
|
||||
J 9,11 0 0112
|
||||
K 12,11 0 0113
|
||||
L 10,11 0 0114
|
||||
M 14,11 0 0115
|
||||
N 12,11 0 0116
|
||||
O 12,11 0 0117
|
||||
P 10,11 0 0120
|
||||
Q 12,11,3 0 0121
|
||||
R 12,11 0 0122
|
||||
S 10,11 0 0123
|
||||
T 11,11 0 0124
|
||||
U 12,11 0 0125
|
||||
V 11,11 0 0126
|
||||
W 14,11 0 0127
|
||||
X 12,11 0 0130
|
||||
Y 11,11 0 0131
|
||||
Z 9,11 0 0132
|
||||
[ 5,11,2 0 0133
|
||||
lB "
|
||||
\ 7,11 0 0134
|
||||
rs "
|
||||
] 5,11,2 0 0135
|
||||
rB "
|
||||
^ 8,11 0 0136
|
||||
a^ "
|
||||
ha "
|
||||
_ 7,0,2 0 0137
|
||||
` 4,11 0 0140
|
||||
oq "
|
||||
a 9,7 0 0141
|
||||
b 10,11 0 0142
|
||||
c 8,7 0 0143
|
||||
d 10,11 0 0144
|
||||
e 9,7 0 0145
|
||||
f 6,11 0 0146
|
||||
g 8,8,3 0 0147
|
||||
h 10,11 0 0150
|
||||
i 5,10 0 0151
|
||||
j 5,10,3 0 0152
|
||||
k 9,11 0 0153
|
||||
l 5,11 0 0154
|
||||
m 15,7 0 0155
|
||||
n 10,7 0 0156
|
||||
o 9,7 0 0157
|
||||
p 10,7,3 0 0160
|
||||
q 9,7,3 0 0161
|
||||
r 7,7 0 0162
|
||||
s 7,7 0 0163
|
||||
t 6,10 0 0164
|
||||
u 10,7 0 0165
|
||||
v 7,7 0 0166
|
||||
w 12,7 0 0167
|
||||
x 9,7 0 0170
|
||||
y 7,7,3 0 0171
|
||||
z 7,7 0 0172
|
||||
{ 6,11,2 0 0173
|
||||
lC "
|
||||
| 8,11 0 0174
|
||||
or "
|
||||
ba "
|
||||
} 6,11,2 0 0175
|
||||
rC "
|
||||
~ 8,6 0 0176
|
||||
a~ "
|
||||
ap "
|
||||
ti "
|
||||
r! 5,8,3 0 0241
|
||||
¡ "
|
||||
ct 8,8,1 0 0242
|
||||
¢ "
|
||||
Po 9,11 0 0243
|
||||
£ "
|
||||
Cs 9,10 0 0244
|
||||
¤ "
|
||||
Ye 11,11 0 0245
|
||||
¥ "
|
||||
bb 8,11 0 0246
|
||||
¦ "
|
||||
sc 7,11,2 0 0247
|
||||
§ "
|
||||
ad 7,10 0 0250
|
||||
¨ "
|
||||
co 12,11 0 0251
|
||||
© "
|
||||
Of 6,11 0 0252
|
||||
ª "
|
||||
Fo 8,6 0 0253
|
||||
« "
|
||||
no 8,6 0 0254
|
||||
¬ "
|
||||
- 5,5 0 055
|
||||
hy "
|
||||
"
|
||||
rg 12,11 0 0256
|
||||
® "
|
||||
a- 7,9 0 0257
|
||||
¯ "
|
||||
de 6,11 0 0260
|
||||
° "
|
||||
+- 8,8 0 0261
|
||||
± "
|
||||
S2 5,11 0 0262
|
||||
² "
|
||||
S3 5,11 0 0263
|
||||
³ "
|
||||
aa 6,11 0 0264
|
||||
´ "
|
||||
µ 10,7,3 0 0265
|
||||
ps 10,11 0 0266
|
||||
¶ "
|
||||
md 5,6 0 0267
|
||||
· "
|
||||
ac 5,0,3 0 0270
|
||||
¸ "
|
||||
S1 5,11 0 0271
|
||||
¹ "
|
||||
Om 6,11 0 0272
|
||||
º "
|
||||
Fc 8,6 0 0273
|
||||
» "
|
||||
14 12,11 0 0274
|
||||
¼ "
|
||||
12 12,11 0 0275
|
||||
½ "
|
||||
34 12,11 0 0276
|
||||
¾ "
|
||||
r? 7,8,3 0 0277
|
||||
¿ "
|
||||
`A 11,15 0 0300
|
||||
À "
|
||||
'A 11,15 0 0301
|
||||
Á "
|
||||
^A 11,15 0 0302
|
||||
 "
|
||||
~A 11,14 0 0303
|
||||
à "
|
||||
:A 11,14 0 0304
|
||||
Ä "
|
||||
oA 11,15 0 0305
|
||||
Å "
|
||||
AE 15,11 0 0306
|
||||
Æ "
|
||||
,C 11,11,3 0 0307
|
||||
Ç "
|
||||
`E 10,15 0 0310
|
||||
È "
|
||||
'E 10,15 0 0311
|
||||
É "
|
||||
^E 10,15 0 0312
|
||||
Ê "
|
||||
:E 10,14 0 0313
|
||||
Ë "
|
||||
`I 7,15 0 0314
|
||||
Ì "
|
||||
'I 7,15 0 0315
|
||||
Í "
|
||||
^I 7,15 0 0316
|
||||
Î "
|
||||
:I 7,14 0 0317
|
||||
Ï "
|
||||
-D 12,11 0 0320
|
||||
Ð "
|
||||
~N 12,14 0 0321
|
||||
Ñ "
|
||||
`O 12,15 0 0322
|
||||
Ò "
|
||||
'O 12,15 0 0323
|
||||
Ó "
|
||||
^O 12,15 0 0324
|
||||
Ô "
|
||||
~O 12,14 0 0325
|
||||
Õ "
|
||||
:O 12,14 0 0326
|
||||
Ö "
|
||||
mu 8,8 0 0327
|
||||
× "
|
||||
/O 12,11 0 0330
|
||||
Ø "
|
||||
`U 12,15 0 0331
|
||||
Ù "
|
||||
'U 12,15 0 0332
|
||||
Ú "
|
||||
^U 12,15 0 0333
|
||||
Û "
|
||||
:U 12,14 0 0334
|
||||
Ü "
|
||||
'Y 11,14 0 0335
|
||||
Ý "
|
||||
TP 10,11 0 0336
|
||||
Þ "
|
||||
ss 9,11 0 0337
|
||||
ß "
|
||||
`a 9,11 0 0340
|
||||
à "
|
||||
'a 9,11 0 0341
|
||||
á "
|
||||
^a 9,11 0 0342
|
||||
â "
|
||||
~a 9,10 0 0343
|
||||
ã "
|
||||
:a 9,10 0 0344
|
||||
ä "
|
||||
oa 9,11 0 0345
|
||||
å "
|
||||
ae 14,7 0 0346
|
||||
æ "
|
||||
,c 8,7,3 0 0347
|
||||
ç "
|
||||
`e 9,11 0 0350
|
||||
è "
|
||||
'e 9,11 0 0351
|
||||
é "
|
||||
^e 9,11 0 0352
|
||||
ê "
|
||||
:e 9,10 0 0353
|
||||
ë "
|
||||
`i 5,11 0 0354
|
||||
ì "
|
||||
'i 5,11 0 0355
|
||||
í "
|
||||
^i 5,11 0 0356
|
||||
î "
|
||||
:i 5,10 0 0357
|
||||
ï "
|
||||
Sd 9,11 0 0360
|
||||
ð "
|
||||
~n 10,10 0 0361
|
||||
ñ "
|
||||
`o 9,11 0 0362
|
||||
ò "
|
||||
'o 9,11 0 0363
|
||||
ó "
|
||||
^o 9,11 0 0364
|
||||
ô "
|
||||
~o 9,10 0 0365
|
||||
õ "
|
||||
:o 9,10 0 0366
|
||||
ö "
|
||||
di 8,8 0 0367
|
||||
÷ "
|
||||
/o 9,8,1 0 0370
|
||||
ø "
|
||||
`u 10,11 0 0371
|
||||
ù "
|
||||
'u 10,11 0 0372
|
||||
ú "
|
||||
^u 10,11 0 0373
|
||||
û "
|
||||
:u 10,10 0 0374
|
||||
ü "
|
||||
'y 7,11,3 0 0375
|
||||
ý "
|
||||
Tp 10,11,3 0 0376
|
||||
þ "
|
||||
:y 7,10,3 0 0377
|
||||
ÿ "
|
||||
Loaded 100 of 2163 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user