Compare commits
588
Commits
tip-587
...
github-action
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dd45c8be9d | ||
|
|
40b3d4d5dd | ||
|
|
25c115b5a8 | ||
|
|
d4ef5a261a | ||
|
|
81a445ad46 | ||
|
|
ca9f2d6210 | ||
|
|
0b56647743 | ||
|
|
f827fd2a9d | ||
|
|
d60bc321ce | ||
|
|
4404292972 | ||
|
|
82ffc550db | ||
|
|
89e3b6811b | ||
|
|
3c53be5e75 | ||
|
|
b7efdfe9bc | ||
|
|
3b0ee42270 | ||
|
|
f163c24b4c | ||
|
|
8f3e8012b1 | ||
|
|
076a7e2839 | ||
|
|
cfe53b8870 | ||
|
|
9efaa4d7f1 | ||
|
|
dc84eca339 | ||
|
|
f15717bcda | ||
|
|
ff316586bc | ||
|
|
109828f090 | ||
|
|
0df05b3515 | ||
|
|
84623a09f2 | ||
|
|
1c0ca80fe5 | ||
|
|
17211d39a0 | ||
|
|
37d6f90099 | ||
|
|
32d6283561 | ||
|
|
b0654427ca | ||
|
|
6e6d624ec3 | ||
|
|
34d3750e3c | ||
|
|
63855497af | ||
|
|
48d0827130 | ||
|
|
1c788e178d | ||
|
|
be83197ee5 | ||
|
|
33918a2b0b | ||
|
|
6459a50433 | ||
|
|
cac264cd19 | ||
|
|
c41f605368 | ||
|
|
fb10e693b2 | ||
|
|
8514e60248 | ||
|
|
fd9662ee1c | ||
|
|
28e7632fe6 | ||
|
|
7f986a59bf | ||
|
|
ad823f4eb1 | ||
|
|
4cecb91655 | ||
|
|
40c3ec35ee | ||
|
|
0b669eacf8 | ||
|
|
8ce6115cf5 | ||
|
|
81060c0741 | ||
|
|
71b64b8e1c | ||
|
|
dd306f5b8f | ||
|
|
69875ee99d | ||
|
|
546165585c | ||
|
|
fd320780c7 | ||
|
|
59a788a6c4 | ||
|
|
e51ff962f0 | ||
|
|
f3ae2684eb | ||
|
|
e3f7f1bad8 | ||
|
|
f70e1f98b3 | ||
|
|
3fc1392c92 | ||
|
|
fe00b6dcf6 | ||
|
|
81e7623b78 | ||
|
|
ceb9567874 | ||
|
|
579cd0b138 | ||
|
|
cd1fc2183e | ||
|
|
208927f009 | ||
|
|
e250b6f551 | ||
|
|
7bf5af5c22 | ||
|
|
4a3369807b | ||
|
|
92bd8b3a3f | ||
|
|
5039e7ce17 | ||
|
|
5c9a145403 | ||
|
|
e53cbf77bf | ||
|
|
ec01eef200 | ||
|
|
a9405cc253 | ||
|
|
17b3cb8739 | ||
|
|
4dfeb77d2e | ||
|
|
f7bdf7cfb1 | ||
|
|
b7c4b811ec | ||
|
|
09fd21b65b | ||
|
|
cb6ae54424 | ||
|
|
1f4f47ccf5 | ||
|
|
195ea285da | ||
|
|
20d206c4c2 | ||
|
|
98a93d4ca7 | ||
|
|
accd2800ec | ||
|
|
2b01204e41 | ||
|
|
43e27f10a5 | ||
|
|
2342babe99 | ||
|
|
6ac6380f7a | ||
|
|
38b30033c8 | ||
|
|
2a48060425 | ||
|
|
8e25003fbd | ||
|
|
947369a720 | ||
|
|
f6bf85fb67 | ||
|
|
94a0658bc2 | ||
|
|
866a79313b | ||
|
|
636e4d4826 | ||
|
|
e6b8f92493 | ||
|
|
194cfb5382 | ||
|
|
29577449a1 | ||
|
|
21b10cef38 | ||
|
|
b8b008ad84 | ||
|
|
abc23e6723 | ||
|
|
3fcb054f91 | ||
|
|
5189ce8eae | ||
|
|
768db27d4c | ||
|
|
a9fc439a35 | ||
|
|
fb77f1148f | ||
|
|
0266195479 | ||
|
|
516be1cd2e | ||
|
|
7b7d6e2116 | ||
|
|
bfbfb2e5d3 | ||
|
|
57849b86a1 | ||
|
|
f0ab6a724c | ||
|
|
be275081a1 | ||
|
|
0a36b1187d | ||
|
|
c11add7a17 | ||
|
|
5758c119f8 | ||
|
|
39aec08fb0 | ||
|
|
f073bc7484 | ||
|
|
278837f261 | ||
|
|
d16f803f15 | ||
|
|
aa4c91c838 | ||
|
|
2061afedcc | ||
|
|
1699143ae3 | ||
|
|
5cf272491e | ||
|
|
264c574c23 | ||
|
|
230f0601cc | ||
|
|
ff741e8b29 | ||
|
|
1674055d7a | ||
|
|
a9843e57c2 | ||
|
|
0468c659f5 | ||
|
|
0cb06ba3ca | ||
|
|
532db685f4 | ||
|
|
fcab027ea1 | ||
|
|
fe94c1d6c4 | ||
|
|
1192757fb7 | ||
|
|
c76cad8a92 | ||
|
|
42a34d459e | ||
|
|
f78ef1eea2 | ||
|
|
430924da25 | ||
|
|
7aa1b00468 | ||
|
|
91c115082e | ||
|
|
e299458ad5 | ||
|
|
dfcc8ce6e5 | ||
|
|
1ba4ad76b3 | ||
|
|
33c3374723 | ||
|
|
05f25dff9f | ||
|
|
f9c196e0e6 | ||
|
|
a13bb8b0ca | ||
|
|
a812785399 | ||
|
|
326725ae5d | ||
|
|
1994f539c3 | ||
|
|
80b6a1a464 | ||
|
|
326bd29be7 | ||
|
|
418d81804c | ||
|
|
cd166c904c | ||
|
|
9c113f21c0 | ||
|
|
498a9bf1f9 | ||
|
|
2232bed6d6 | ||
|
|
2cede8bf26 | ||
|
|
a4d1a762c2 | ||
|
|
ca6983f6f2 | ||
|
|
1acb4994ab | ||
|
|
b63a473177 | ||
|
|
0076acc80a | ||
|
|
e599140047 | ||
|
|
730530baba | ||
|
|
7231e548e3 | ||
|
|
97399b2494 | ||
|
|
4dc8aea827 | ||
|
|
5b449103dc | ||
|
|
b3e1525f8a | ||
|
|
f2b9098a94 | ||
|
|
630bd308da | ||
|
|
fb50a7f7b5 | ||
|
|
4c7dc5ff2d | ||
|
|
5680e6571d | ||
|
|
efa3f20107 | ||
|
|
654d14d706 | ||
|
|
f857db0e8e | ||
|
|
0f48821995 | ||
|
|
b8e14e3802 | ||
|
|
ec76fbd070 | ||
|
|
c856a8931e | ||
|
|
c54b77dd74 | ||
|
|
3715125afc | ||
|
|
549548bacf | ||
|
|
7d5a69fb31 | ||
|
|
bc8811c498 | ||
|
|
2c687a4d1d | ||
|
|
e47d494335 | ||
|
|
d2d5ffc3b6 | ||
|
|
5320364a0d | ||
|
|
27b62f923f | ||
|
|
0b4d13b85c | ||
|
|
aca8877841 | ||
|
|
fd87c6a4bb | ||
|
|
38a609f39c | ||
|
|
cd2794b2d3 | ||
|
|
f198eb8b6b | ||
|
|
22f9794cfd | ||
|
|
446d76d5f3 | ||
|
|
b17f64a406 | ||
|
|
10d25a2209 | ||
|
|
e288cc94fa | ||
|
|
9392c28ed8 | ||
|
|
22274089f5 | ||
|
|
e137127ae3 | ||
|
|
d8fdcffdf7 | ||
|
|
889df48bf0 | ||
|
|
afba02fe04 | ||
|
|
77a25a222a | ||
|
|
a8c52ddb7d | ||
|
|
22ab1b1e6c | ||
|
|
e42d35507c | ||
|
|
69a1133f21 | ||
|
|
edceb04b1f | ||
|
|
606fa23238 | ||
|
|
924a7fca6b | ||
|
|
eb2fa54e32 | ||
|
|
0e5cda3a47 | ||
|
|
731ea18a69 | ||
|
|
be98f67f6a | ||
|
|
2e67393129 | ||
|
|
97e600c877 | ||
|
|
aa386ba8fc | ||
|
|
d9e077b2fa | ||
|
|
9a08654b23 | ||
|
|
3dce3e5685 | ||
|
|
99a9e5c7c5 | ||
|
|
d438ca171b | ||
|
|
4a86cf8b00 | ||
|
|
d2444449ec | ||
|
|
0f01f464de | ||
|
|
5fe38b57ea | ||
|
|
c202c057b1 | ||
|
|
f4072f4ef7 | ||
|
|
666cf1c887 | ||
|
|
4bd7d54291 | ||
|
|
b002a51274 | ||
|
|
1e6e700682 | ||
|
|
fc7ca4202e | ||
|
|
68c30819ad | ||
|
|
fa2ae66dcd | ||
|
|
8ddd5fea3c | ||
|
|
980bcbfdbf | ||
|
|
14abfaa3d0 | ||
|
|
d296c39c60 | ||
|
|
54e3729e91 | ||
|
|
8f8f9400f5 | ||
|
|
0103777046 | ||
|
|
d20e8e7e25 | ||
|
|
3a2ad288ca | ||
|
|
6c1d8e4d62 | ||
|
|
5edd5f235f | ||
|
|
6a0b66fc79 | ||
|
|
527a481e1a | ||
|
|
1e0c16c4db | ||
|
|
a763531949 | ||
|
|
54adbbe05c | ||
|
|
9848eb222d | ||
|
|
6e89d3d433 | ||
|
|
f47fbe763a | ||
|
|
fc83e1302a | ||
|
|
2fa58f1e9f | ||
|
|
401fb4fe4f | ||
|
|
b586e6742c | ||
|
|
5bd35202c0 | ||
|
|
b804844729 | ||
|
|
a9032c6dac | ||
|
|
f8715bf730 | ||
|
|
6bce59a249 | ||
|
|
47e4246d76 | ||
|
|
8ab2c9cf62 | ||
|
|
6a1a8526f1 | ||
|
|
e266daa43e | ||
|
|
6e29f3da25 | ||
|
|
50737b35c5 | ||
|
|
449b68a777 | ||
|
|
f3056f720b | ||
|
|
998384d149 | ||
|
|
c578a1e4fa | ||
|
|
c0fc8c6aad | ||
|
|
ddd4c15594 | ||
|
|
958d0d8617 | ||
|
|
9e82ddc739 | ||
|
|
2a007ddb50 | ||
|
|
ce51daca48 | ||
|
|
5da270361f | ||
|
|
08d3728b1d | ||
|
|
d58bfaf6f3 | ||
|
|
c3948aeea7 | ||
|
|
8c16a043c1 | ||
|
|
6eaa73e23c | ||
|
|
b6f9e488f5 | ||
|
|
a514fc0bbb | ||
|
|
f00ce28128 | ||
|
|
fa618f393f | ||
|
|
ac5b43b095 | ||
|
|
a2aaaad84a | ||
|
|
39b03cdb38 | ||
|
|
d7364d1f4b | ||
|
|
303fbfc4be | ||
|
|
77bbf50dd0 | ||
|
|
9c405af577 | ||
|
|
2632f2d529 | ||
|
|
a98d79021f | ||
|
|
49b167a388 | ||
|
|
2ded4dcac5 | ||
|
|
72f5a0b42f | ||
|
|
745e45d119 | ||
|
|
f336629f65 | ||
|
|
254b4fa35f | ||
|
|
24cfa12d40 | ||
|
|
2c34ced219 | ||
|
|
c4a1ea568e | ||
|
|
1e155ca669 | ||
|
|
2a68cc554f | ||
|
|
7f9190f5db | ||
|
|
2328e4a58e | ||
|
|
d9f1c65e5b | ||
|
|
cf1d1dfbd9 | ||
|
|
026ddaafb8 | ||
|
|
c3d90415a2 | ||
|
|
f4a42dff01 | ||
|
|
0846f65993 | ||
|
|
f30e9cfd65 | ||
|
|
35cf0ba42a | ||
|
|
4a07460db0 | ||
|
|
4af90e27e5 | ||
|
|
63994a73e3 | ||
|
|
86d269ab0a | ||
|
|
912dd9a997 | ||
|
|
2cce06805f | ||
|
|
3929a73ee0 | ||
|
|
30c32418f6 | ||
|
|
802d340dad | ||
|
|
33f3ebf7ec | ||
|
|
7c18228900 | ||
|
|
108d222378 | ||
|
|
d6e3843b5a | ||
|
|
58232a8750 | ||
|
|
7fa698c624 | ||
|
|
29b9dd2e6f | ||
|
|
9d8c640e00 | ||
|
|
2a7ba6468e | ||
|
|
0ebc58865f | ||
|
|
a9fd991fe6 | ||
|
|
5570417141 | ||
|
|
dc9dbe5998 | ||
|
|
a3f11a86e9 | ||
|
|
2c19ef85ed | ||
|
|
5bf4816c29 | ||
|
|
5f9514bba4 | ||
|
|
c48019496e | ||
|
|
b77246e08b | ||
|
|
a3fdbe449b | ||
|
|
4b7066e5b3 | ||
|
|
8ff40f7d46 | ||
|
|
041d53289b | ||
|
|
a72376335b | ||
|
|
fc63e758a4 | ||
|
|
54beae13a7 | ||
|
|
c32336ef0e | ||
|
|
86052f5003 | ||
|
|
5953233f3b | ||
|
|
034fad8f6a | ||
|
|
01db149e3c | ||
|
|
1afc0833ed | ||
|
|
7c1facbfb4 | ||
|
|
d7e1a76e06 | ||
|
|
7d716898d7 | ||
|
|
3b9e37ced8 | ||
|
|
6776429ba1 | ||
|
|
631c17942e | ||
|
|
98496f3c16 | ||
|
|
1b9f0a138d | ||
|
|
889b9a832f | ||
|
|
99c687177a | ||
|
|
162b310610 | ||
|
|
a315170269 | ||
|
|
ff7ff08f29 | ||
|
|
fd4b052c0d | ||
|
|
f5a8aaadf8 | ||
|
|
329faccfd5 | ||
|
|
8d0c814716 | ||
|
|
d326c63806 | ||
|
|
3ae5ed3dfc | ||
|
|
89890a88e6 | ||
|
|
5074a34663 | ||
|
|
32a3c1d678 | ||
|
|
1d52808a73 | ||
|
|
de7ebc2ea1 | ||
|
|
e9fb22cfeb | ||
|
|
a91c7a019d | ||
|
|
676312d822 | ||
|
|
be44843404 | ||
|
|
9118bcfb5f | ||
|
|
8f533db35f | ||
|
|
077504f676 | ||
|
|
d0ff8f4a0d | ||
|
|
43b7af15a7 | ||
|
|
d1a4083e3f | ||
|
|
ac849b98ed | ||
|
|
beb5137192 | ||
|
|
4c162a421c | ||
|
|
de8a9991af | ||
|
|
0e4f559e7f | ||
|
|
fe32483d5c | ||
|
|
f3b259c158 | ||
|
|
8ed389c37a | ||
|
|
3fc1c2a172 | ||
|
|
8d6601013e | ||
|
|
f00afc4fdd | ||
|
|
5a66f39637 | ||
|
|
87baa32396 | ||
|
|
38160dc3cc | ||
|
|
9be1e807d6 | ||
|
|
b6a51d3251 | ||
|
|
332c5aadfa | ||
|
|
bf9226489d | ||
|
|
3ea27f399f | ||
|
|
5fc479ca03 | ||
|
|
8e51252be8 | ||
|
|
f67e946a67 | ||
|
|
389e7e96e5 | ||
|
|
dfdf436fb2 | ||
|
|
93246519da | ||
|
|
405b29cd1b | ||
|
|
8f7d32c7dd | ||
|
|
43550ce1fa | ||
|
|
d8127f5c3a | ||
|
|
41381425e6 | ||
|
|
a9fd02e864 | ||
|
|
18e4f3d635 | ||
|
|
5a7c86fa32 | ||
|
|
69aedf8b17 | ||
|
|
9d9fcdf383 | ||
|
|
d7e26630c0 | ||
|
|
06bbb3d47b | ||
|
|
5d4efa2510 | ||
|
|
1b8114cd71 | ||
|
|
7ff0cfd5b7 | ||
|
|
13ebaf6ca3 | ||
|
|
c44fa310d2 | ||
|
|
f3c5988996 | ||
|
|
b28beee0fc | ||
|
|
7e79827ba3 | ||
|
|
33632b0955 | ||
|
|
d085d8f0bb | ||
|
|
27fd2bbb61 | ||
|
|
9ec6e380ed | ||
|
|
8f3c64a7cd | ||
|
|
1acefe17b1 | ||
|
|
a3bdd051a3 | ||
|
|
79b3f448c0 | ||
|
|
8665d61608 | ||
|
|
cbeadca761 | ||
|
|
6802d4740c | ||
|
|
22abf1ffa4 | ||
|
|
cda283c652 | ||
|
|
16ee735e92 | ||
|
|
0d8a34fe68 | ||
|
|
b3b2c76fdc | ||
|
|
1813f87d9a | ||
|
|
1e1530a566 | ||
|
|
af55df92b4 | ||
|
|
275904f8cb | ||
|
|
d85bcdef8b | ||
|
|
b89e3d8c83 | ||
|
|
fb040138c9 | ||
|
|
56f2abbf89 | ||
|
|
2cd7aa2260 | ||
|
|
bf1382a38f | ||
|
|
6362d5ced5 | ||
|
|
2d699b3818 | ||
|
|
e9121854f9 | ||
|
|
1a5b1241db | ||
|
|
065fc14cc4 | ||
|
|
8f3937588f | ||
|
|
d068a54395 | ||
|
|
52f3af0bcf | ||
|
|
4958363608 | ||
|
|
8726aabade | ||
|
|
d14ab39047 | ||
|
|
7f35785b2f | ||
|
|
17993c4a6f | ||
|
|
c358ee8f78 | ||
|
|
152c7b4944 | ||
|
|
24a1b4e94f | ||
|
|
35c793de5f | ||
|
|
6e4833d8fd | ||
|
|
ae65a0ee04 | ||
|
|
80a7abf7e5 | ||
|
|
d9415749f8 | ||
|
|
82947d7ebf | ||
|
|
0153d6f564 | ||
|
|
e75152402a | ||
|
|
fe0c007b96 | ||
|
|
1e8a4963fc | ||
|
|
2912ca25d8 | ||
|
|
ce1a26acf5 | ||
|
|
dc6c385849 | ||
|
|
52e96157d2 | ||
|
|
1d9a058eae | ||
|
|
11aba21de9 | ||
|
|
86273355c2 | ||
|
|
632946bbe0 | ||
|
|
b765d541e6 | ||
|
|
1583d8b4ef | ||
|
|
556c0dbc24 | ||
|
|
fc77f0dda4 | ||
|
|
4396d37f6f | ||
|
|
3f40916f38 | ||
|
|
bd089b3935 | ||
|
|
5d5451c6da | ||
|
|
a6c66ef755 | ||
|
|
e3967b9754 | ||
|
|
ae9073b853 | ||
|
|
810e5a0f69 | ||
|
|
a142b502a9 | ||
|
|
1224ff3e01 | ||
|
|
a9f4dacf81 | ||
|
|
f1d0940b8e | ||
|
|
c6ad528613 | ||
|
|
3f58909d20 | ||
|
|
dec6843491 | ||
|
|
b0bd304e08 | ||
|
|
cef22b73ee | ||
|
|
bbdcf41e95 | ||
|
|
eeff0f5146 | ||
|
|
0625bbefb4 | ||
|
|
dbdb35e20e | ||
|
|
f5daf73202 | ||
|
|
b7f809ade5 | ||
|
|
fa1cc2cd3f | ||
|
|
276049980e | ||
|
|
3721613126 | ||
|
|
21ec4f64b2 | ||
|
|
136bf8d460 | ||
|
|
69a117efbe | ||
|
|
ab449cd1d2 | ||
|
|
be3995f91a | ||
|
|
e05045246f | ||
|
|
6ba55114e2 | ||
|
|
9888ccda67 | ||
|
|
3558c04970 | ||
|
|
e0e662b6cd | ||
|
|
fe381e2b84 | ||
|
|
84da3c8113 | ||
|
|
4def430d27 | ||
|
|
9367d3491b | ||
|
|
a4cdc92947 | ||
|
|
0f58a5ca73 | ||
|
|
75b8ba1fa3 | ||
|
|
62c64586b6 | ||
|
|
810eeec19d | ||
|
|
737c82426b | ||
|
|
a3853cafd1 | ||
|
|
bcd1623533 | ||
|
|
73788579a1 | ||
|
|
44952e7c43 | ||
|
|
15b8ba49c1 | ||
|
|
cd1e068061 | ||
|
|
ba1938b59e | ||
|
|
4864626e88 | ||
|
|
7e70c52009 | ||
|
|
dc2e004dcb | ||
|
|
91661a7da0 | ||
|
|
25dac72093 | ||
|
|
9884b5887e | ||
|
|
91407fd3d6 | ||
|
|
658e03b4d7 | ||
|
|
121c6e30ab | ||
|
|
9f89b782ef | ||
|
|
2298ba7ed7 | ||
|
|
8265ea67d6 | ||
|
|
800ce1bfa2 | ||
|
|
dae5abca60 | ||
|
|
cd2d12e256 | ||
|
|
dc465cd88f | ||
|
|
bedeed1c1b | ||
|
|
f61c3bdb28 |
@@ -0,0 +1,37 @@
|
||||
name: Linux Build and Test
|
||||
on: [push]
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Configure
|
||||
working-directory: unix
|
||||
run: |
|
||||
mkdir "${HOME}/install dir"
|
||||
./configure ${CFGOPT} "--prefix=$HOME/install dir" || (cat config.log && exit 1)
|
||||
- name: Build
|
||||
working-directory: unix
|
||||
run: |
|
||||
make all
|
||||
- name: Build Test Harness
|
||||
working-directory: unix
|
||||
run: |
|
||||
make tcltest
|
||||
- name: Run Tests
|
||||
working-directory: unix
|
||||
run: |
|
||||
make test
|
||||
- name: Test-Drive Installation
|
||||
working-directory: unix
|
||||
run: |
|
||||
make install
|
||||
- name: Create Distribution Package
|
||||
working-directory: unix
|
||||
run: |
|
||||
make dist
|
||||
- name: Convert Documentation to HTML
|
||||
working-directory: unix
|
||||
run: |
|
||||
make html-tcl
|
||||
@@ -0,0 +1,37 @@
|
||||
name: Linux Build and Test
|
||||
on: [push]
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Configure
|
||||
working-directory: unix
|
||||
run: |
|
||||
mkdir "${HOME}/install dir"
|
||||
./configure ${CFGOPT} "--prefix=$HOME/install dir" || (cat config.log && exit 1)
|
||||
- name: Build
|
||||
working-directory: unix
|
||||
run: |
|
||||
make all
|
||||
- name: Build Test Harness
|
||||
working-directory: unix
|
||||
run: |
|
||||
make tcltest
|
||||
- name: Run Tests
|
||||
working-directory: unix
|
||||
run: |
|
||||
make test
|
||||
- name: Test-Drive Installation
|
||||
working-directory: unix
|
||||
run: |
|
||||
make install
|
||||
- name: Create Distribution Package
|
||||
working-directory: unix
|
||||
run: |
|
||||
make dist
|
||||
- name: Convert Documentation to HTML
|
||||
working-directory: unix
|
||||
run: |
|
||||
make html-tcl
|
||||
@@ -0,0 +1,22 @@
|
||||
name: Windows Build and Test
|
||||
on: [push]
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Init MSVC
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
- name: Build
|
||||
working-directory: win
|
||||
run: |
|
||||
nmake -f makefile.vc all
|
||||
- name: Build Test Harness
|
||||
working-directory: win
|
||||
run: |
|
||||
nmake -f makefile.vc tcltest
|
||||
- name: Run Tests
|
||||
working-directory: win
|
||||
run: |
|
||||
nmake -f makefile.vc test
|
||||
@@ -5,7 +5,22 @@
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
|
||||
+35
-11
@@ -120,9 +120,9 @@ jobs:
|
||||
- BUILD_DIR=unix
|
||||
- CFGOPT="--enable-symbols=mem"
|
||||
# Testing on Mac, various styles
|
||||
- name: "macOS/Clang/Xcode 11.7/Shared"
|
||||
- name: "macOS/Clang/Xcode 12/Shared"
|
||||
os: osx
|
||||
osx_image: xcode11.7
|
||||
osx_image: xcode12.2
|
||||
env:
|
||||
- BUILD_DIR=macosx
|
||||
install: []
|
||||
@@ -130,14 +130,15 @@ jobs:
|
||||
- make all
|
||||
# The styles=develop avoids some weird problems on OSX
|
||||
- make test styles=develop
|
||||
- name: "macOS/Clang/Xcode 11.7/Shared/Unix-like"
|
||||
- name: "macOS/Clang/Xcode 12/Shared/Unix-like"
|
||||
os: osx
|
||||
osx_image: xcode11.7
|
||||
osx_image: xcode12.2
|
||||
env:
|
||||
- BUILD_DIR=unix
|
||||
- name: "macOS/Clang/Xcode 11.7/Shared/libtommath"
|
||||
- CFGOPT="--enable-dtrace"
|
||||
- name: "macOS/Clang/Xcode 12/Shared/libtommath"
|
||||
os: osx
|
||||
osx_image: xcode11.7
|
||||
osx_image: xcode12.2
|
||||
env:
|
||||
- BUILD_DIR=macosx
|
||||
install: []
|
||||
@@ -146,18 +147,26 @@ jobs:
|
||||
homebrew:
|
||||
packages:
|
||||
- libtommath
|
||||
- name: "macOS/Clang++/Xcode 11.7/Shared"
|
||||
- name: "macOS/Clang++/Xcode 12/Shared"
|
||||
os: osx
|
||||
osx_image: xcode11.7
|
||||
osx_image: xcode12.2
|
||||
env:
|
||||
- BUILD_DIR=unix
|
||||
- CFGOPT="CC=clang++ --enable-framework CFLAGS=-Dregister=dont+use+register CPPFLAGS=-D__private_extern__=extern"
|
||||
- CFGOPT="CC=clang++ --enable-framework --enable-dtrace CFLAGS=-Dregister=dont+use+register CPPFLAGS=-D__private_extern__=extern"
|
||||
script:
|
||||
- make all tcltest
|
||||
# Newer MacOS versions
|
||||
- name: "macOS/Clang/Xcode 12/Universal Apps/Shared"
|
||||
os: osx
|
||||
osx_image: xcode12u
|
||||
env:
|
||||
- BUILD_DIR=macosx
|
||||
install: []
|
||||
script: *mactest
|
||||
# Older MacOS versions
|
||||
- name: "macOS/Clang/Xcode 11/Shared"
|
||||
os: osx
|
||||
osx_image: xcode11
|
||||
osx_image: xcode11.7
|
||||
env:
|
||||
- BUILD_DIR=macosx
|
||||
install: []
|
||||
@@ -171,7 +180,7 @@ jobs:
|
||||
script: *mactest
|
||||
- name: "macOS/Clang/Xcode 9/Shared"
|
||||
os: osx
|
||||
osx_image: xcode9.2
|
||||
osx_image: xcode9.4
|
||||
env:
|
||||
- BUILD_DIR=macosx
|
||||
install: []
|
||||
@@ -215,6 +224,8 @@ jobs:
|
||||
- BUILD_DIR=win
|
||||
- VCDIR="/C/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Auxiliary/Build"
|
||||
before_install: &vcpreinst
|
||||
- rm -rf tests/safe-stock8*.test
|
||||
- touch generic/tclStubInit.c generic/tclOOStubInit.c generic/tclOOScript.h
|
||||
- PATH="$PATH:$VCDIR"
|
||||
- cd ${BUILD_DIR}
|
||||
install: []
|
||||
@@ -248,6 +259,15 @@ jobs:
|
||||
script:
|
||||
- cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=static,msvcrt' '-f' makefile.vc all tcltest
|
||||
- cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=static,msvcrt' '-f' makefile.vc test
|
||||
- name: "Windows/MSVC/StaticPackage"
|
||||
os: windows
|
||||
compiler: cl
|
||||
env: *vcenv
|
||||
before_install: *vcpreinst
|
||||
install: []
|
||||
script:
|
||||
- cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=static,staticpkg,msvcrt' '-f' makefile.vc all tcltest
|
||||
- cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=static,staticpkg,msvcrt' '-f' makefile.vc test
|
||||
- name: "Windows/MSVC/Debug"
|
||||
os: windows
|
||||
compiler: cl
|
||||
@@ -329,6 +349,8 @@ jobs:
|
||||
- BUILD_DIR=win
|
||||
- CFGOPT="--enable-64bit"
|
||||
before_install: &makepreinst
|
||||
- rm -rf tests/safe-stock8*.test
|
||||
- touch generic/tclStubInit.c generic/tclOOStubInit.c generic/tclOOScript.h
|
||||
- choco install -y make zip
|
||||
- cd ${BUILD_DIR}
|
||||
- name: "Windows/GCC/Shared: UTF_MAX=4"
|
||||
@@ -436,6 +458,8 @@ jobs:
|
||||
script:
|
||||
- make dist
|
||||
before_install:
|
||||
- rm -rf tests/safe-stock8*.test
|
||||
- touch generic/tclStubInit.c generic/tclOOStubInit.c generic/tclOOScript.h
|
||||
- cd ${BUILD_DIR}
|
||||
install:
|
||||
- mkdir "$HOME/install dir"
|
||||
|
||||
+1
-1
@@ -3525,7 +3525,7 @@
|
||||
* generic/tclVar.c (Tcl_UnsetObjCmd): Rewrote argument parser to avoid
|
||||
a read off the end of the argument array that could occur when
|
||||
executing something like [unset -nocomplain] was executed. Improved
|
||||
the error message given when too few arguments are given (-nocomplain
|
||||
the error message given when not enough arguments are given (-nocomplain
|
||||
should obviously be *before* --, not after it) and also modified the
|
||||
test suite to take account of that and the documentation to use the
|
||||
same improvement. [Bug 405769]
|
||||
|
||||
@@ -5,7 +5,17 @@ This is the **Tcl 8.7a4** source distribution.
|
||||
You can get any source release of Tcl from [our distribution
|
||||
site](https://sourceforge.net/projects/tcl/files/Tcl/).
|
||||
|
||||
[](https://travis-ci.org/tcltk/tcl)
|
||||
8.6.10
|
||||
[](https://github.com/tcltk/tcl/actions?query=workflow%3A%22Linux+Build+and+Test%22+branch%3Acore-8-6-branch)
|
||||
[](https://github.com/tcltk/tcl/actions?query=workflow%3A%22Windows+Build+and+Test%22+branch%3Acore-8-6-branch)
|
||||
<br>
|
||||
8.7a4
|
||||
[](https://github.com/tcltk/tcl/actions?query=workflow%3A%22Linux+Build+and+Test%22+branch%3Acore-8-branch)
|
||||
[](https://github.com/tcltk/tcl/actions?query=workflow%3A%22Windows+Build+and+Test%22+branch%3Acore-8-branch)
|
||||
<br>
|
||||
9.0a2
|
||||
[](https://github.com/tcltk/tcl/actions?query=workflow%3A%22Linux+Build+and+Test%22+branch%3Amain)
|
||||
[](https://github.com/tcltk/tcl/actions?query=workflow%3A%22Windows+Build+and+Test%22+branch%3Amain)
|
||||
|
||||
## Contents
|
||||
1. [Introduction](#intro)
|
||||
|
||||
+2
-6
@@ -21,19 +21,15 @@
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifdef __APPLE__
|
||||
extern void * memchr(const void *s, int c, size_t n);
|
||||
#else
|
||||
extern char * memchr(const void *s, int c, size_t n);
|
||||
#endif
|
||||
extern int memcmp(const void *s1, const void *s2, size_t n);
|
||||
extern char * memcpy(void *t, const void *f, size_t n);
|
||||
extern void * memcpy(void *t, const void *f, size_t n);
|
||||
#ifdef NO_MEMMOVE
|
||||
#define memmove(d,s,n) (bcopy((s), (d), (n)))
|
||||
#else
|
||||
extern char * memmove(void *t, const void *f, size_t n);
|
||||
#endif
|
||||
extern char * memset(void *s, int c, size_t n);
|
||||
extern void * memset(void *s, int c, size_t n);
|
||||
|
||||
extern int strcasecmp(const char *s1, const char *s2);
|
||||
extern char * strcat(char *dst, const char *src);
|
||||
|
||||
+2
-2
@@ -414,7 +414,7 @@ caller (with a reference count of 0).
|
||||
the encoding identified by \fIencodingName\fR and evaluates
|
||||
its contents as a Tcl script. It returns the same information as
|
||||
\fBTcl_EvalObjEx\fR.
|
||||
If \fIencodingName\fR is NULL, the system encoding is used for
|
||||
If \fIencodingName\fR is NULL, the utf-8 encoding is used for
|
||||
reading the file contents.
|
||||
If the file could not be read then a Tcl error is returned to describe
|
||||
why the file could not be read.
|
||||
@@ -430,7 +430,7 @@ or
|
||||
which will be safely substituted by the Tcl interpreter into
|
||||
.QW ^Z .
|
||||
\fBTcl_FSEvalFile\fR is a simpler version of
|
||||
\fBTcl_FSEvalFileEx\fR that always uses the system encoding
|
||||
\fBTcl_FSEvalFileEx\fR that always uses the utf-8 encoding
|
||||
when reading the file.
|
||||
.PP
|
||||
\fBTcl_FSLoadFile\fR dynamically loads a binary code file into memory and
|
||||
|
||||
+13
-4
@@ -41,6 +41,12 @@ When an expression evaluates to an integer, the value is the decimal form of
|
||||
the integer, and when an expression evaluates to a floating-point number, the
|
||||
value is the form produced by the \fB%g\fR format specifier of Tcl's
|
||||
\fBformat\fR command.
|
||||
.PP
|
||||
.VS "TIP 582"
|
||||
You can use \fB#\fR at any point in the expression (except inside double
|
||||
quotes or braces) to start a comment. Comments last to the end of the line or
|
||||
the end of the expression, whichever comes first.
|
||||
.VE "TIP 582"
|
||||
.SS OPERANDS
|
||||
.PP
|
||||
An expression consists of a combination of operands, operators, parentheses and
|
||||
@@ -82,9 +88,9 @@ produces the value on the right side.
|
||||
.PP
|
||||
.CS
|
||||
.ta 9c
|
||||
\fBexpr\fR 3.1 + $a \fI6.1\fR
|
||||
\fBexpr\fR 2 + "$a.$b" \fI5.6\fR
|
||||
\fBexpr\fR 4*[llength "6 2"] \fI8\fR
|
||||
\fBexpr\fR {3.1 + $a} \fI6.1\fR
|
||||
\fBexpr\fR {2 + "$a.$b"} \fI5.6\fR
|
||||
\fBexpr\fR {4*[llength "6 2"]} \fI8\fR
|
||||
\fBexpr\fR {{word one} < "word $a"} \fI0\fR
|
||||
.CE
|
||||
.PP
|
||||
@@ -270,7 +276,7 @@ which means that operands are not evaluated if they are
|
||||
not needed to determine the outcome. For example, in
|
||||
.PP
|
||||
.CS
|
||||
\fBexpr\fR {$v ? [a] : [b]}
|
||||
\fBexpr\fR {$v?[a]:[b]}
|
||||
.CE
|
||||
.PP
|
||||
only one of \fB[a]\fR or \fB[b]\fR is evaluated,
|
||||
@@ -487,7 +493,9 @@ value of true:
|
||||
.PP
|
||||
.CS
|
||||
set isTrue [\fBexpr\fR {
|
||||
# Does the environment variable exist, and...
|
||||
[info exists ::env(SOME_ENV_VAR)] &&
|
||||
# ...does it contain a proper true value?
|
||||
[string is true -strict $::env(SOME_ENV_VAR)]
|
||||
}]
|
||||
.CE
|
||||
@@ -510,4 +518,5 @@ Copyright \(co 2005 by Kevin B. Kenny <kennykb@acm.org>. All rights reserved.
|
||||
.fi
|
||||
'\" Local Variables:
|
||||
'\" mode: nroff
|
||||
'\" fill-column: 78
|
||||
'\" End:
|
||||
|
||||
+1
-1
@@ -58,7 +58,7 @@ kernel call) between a child interpreter and its parent.
|
||||
See \fBALIAS INVOCATION\fR, below, for more details
|
||||
on how the alias mechanism works.
|
||||
.PP
|
||||
A qualified interpreter name is a proper Tcl lists containing a subset of its
|
||||
A qualified interpreter name is a proper Tcl list containing a subset of its
|
||||
ancestors in the interpreter hierarchy, terminated by the string naming the
|
||||
interpreter in its immediate parent. Interpreter names are relative to the
|
||||
interpreter in which they are used. For example, if
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@ A leading BOM (Byte order mark) contained in the file is ignored for unicode enc
|
||||
.PP
|
||||
The \fB\-encoding\fR option is used to specify the encoding of
|
||||
the data stored in \fIfileName\fR. When the \fB\-encoding\fR option
|
||||
is omitted, the system encoding is assumed.
|
||||
is omitted, the utf-8 encoding is assumed.
|
||||
.SH EXAMPLE
|
||||
.PP
|
||||
Run the script in the file \fBfoo.tcl\fR and then the script in the
|
||||
|
||||
+16
-16
@@ -56,7 +56,7 @@ static const chr *scanplain(struct vars *);
|
||||
static void onechr(struct vars *, pchr, struct state *, struct state *);
|
||||
static void dovec(struct vars *, struct cvec *, struct state *, struct state *);
|
||||
static void wordchrs(struct vars *);
|
||||
static struct subre *subre(struct vars *, int, int, struct state *, struct state *);
|
||||
static struct subre *sub_re(struct vars *, int, int, struct state *, struct state *);
|
||||
static void freesubre(struct vars *, struct subre *);
|
||||
static void freesrnode(struct vars *, struct subre *);
|
||||
static int numst(struct subre *, int);
|
||||
@@ -663,7 +663,7 @@ parse(
|
||||
|
||||
assert(stopper == ')' || stopper == EOS);
|
||||
|
||||
branches = subre(v, '|', LONGER, init, final);
|
||||
branches = sub_re(v, '|', LONGER, init, final);
|
||||
NOERRN();
|
||||
branch = branches;
|
||||
firstbranch = 1;
|
||||
@@ -673,7 +673,7 @@ parse(
|
||||
* Need a place to hang the branch.
|
||||
*/
|
||||
|
||||
branch->right = subre(v, '|', LONGER, init, final);
|
||||
branch->right = sub_re(v, '|', LONGER, init, final);
|
||||
NOERRN();
|
||||
branch = branch->right;
|
||||
}
|
||||
@@ -744,7 +744,7 @@ parsebranch(
|
||||
|
||||
lp = left;
|
||||
seencontent = 0;
|
||||
t = subre(v, '=', 0, left, right); /* op '=' is tentative */
|
||||
t = sub_re(v, '=', 0, left, right); /* op '=' is tentative */
|
||||
NOERRN();
|
||||
while (!SEE('|') && !SEE(stopper) && !SEE(EOS)) {
|
||||
if (seencontent) { /* implicit concat operator */
|
||||
@@ -977,7 +977,7 @@ parseqatom(
|
||||
NOERR();
|
||||
if (cap) {
|
||||
v->subs[subno] = atom;
|
||||
t = subre(v, '(', atom->flags|CAP, lp, rp);
|
||||
t = sub_re(v, '(', atom->flags|CAP, lp, rp);
|
||||
NOERR();
|
||||
t->subno = subno;
|
||||
t->left = atom;
|
||||
@@ -995,7 +995,7 @@ parseqatom(
|
||||
INSIST(v->subs[v->nextvalue] != NULL, REG_ESUBREG);
|
||||
NOERR();
|
||||
assert(v->nextvalue > 0);
|
||||
atom = subre(v, 'b', BACKR, lp, rp);
|
||||
atom = sub_re(v, 'b', BACKR, lp, rp);
|
||||
NOERR();
|
||||
subno = v->nextvalue;
|
||||
atom->subno = subno;
|
||||
@@ -1110,7 +1110,7 @@ parseqatom(
|
||||
*/
|
||||
|
||||
if (atom == NULL) {
|
||||
atom = subre(v, '=', 0, lp, rp);
|
||||
atom = sub_re(v, '=', 0, lp, rp);
|
||||
NOERR();
|
||||
}
|
||||
|
||||
@@ -1147,7 +1147,7 @@ parseqatom(
|
||||
* Break remaining subRE into x{...} and what follows.
|
||||
*/
|
||||
|
||||
t = subre(v, '.', COMBINE(qprefer, atom->flags), lp, rp);
|
||||
t = sub_re(v, '.', COMBINE(qprefer, atom->flags), lp, rp);
|
||||
NOERR();
|
||||
t->left = atom;
|
||||
atomp = &t->left;
|
||||
@@ -1161,7 +1161,7 @@ parseqatom(
|
||||
*/
|
||||
|
||||
assert(top->op == '=' && top->left == NULL && top->right == NULL);
|
||||
top->left = subre(v, '=', top->flags, top->begin, lp);
|
||||
top->left = sub_re(v, '=', top->flags, top->begin, lp);
|
||||
NOERR();
|
||||
top->op = '.';
|
||||
top->right = t;
|
||||
@@ -1230,9 +1230,9 @@ parseqatom(
|
||||
assert(m >= 1 && m != DUPINF && n >= 1);
|
||||
repeat(v, s, atom->begin, m-1, (n == DUPINF) ? n : n-1);
|
||||
f = COMBINE(qprefer, atom->flags);
|
||||
t = subre(v, '.', f, s, atom->end); /* prefix and atom */
|
||||
t = sub_re(v, '.', f, s, atom->end); /* prefix and atom */
|
||||
NOERR();
|
||||
t->left = subre(v, '=', PREF(f), s, atom->begin);
|
||||
t->left = sub_re(v, '=', PREF(f), s, atom->begin);
|
||||
NOERR();
|
||||
t->right = atom;
|
||||
*atomp = t;
|
||||
@@ -1247,7 +1247,7 @@ parseqatom(
|
||||
dupnfa(v->nfa, atom->begin, atom->end, s, s2);
|
||||
repeat(v, s, s2, m, n);
|
||||
f = COMBINE(qprefer, atom->flags);
|
||||
t = subre(v, '*', f, s, s2);
|
||||
t = sub_re(v, '*', f, s, s2);
|
||||
NOERR();
|
||||
t->min = (short) m;
|
||||
t->max = (short) n;
|
||||
@@ -1265,7 +1265,7 @@ parseqatom(
|
||||
t->right = parsebranch(v, stopper, type, s2, rp, 1);
|
||||
} else {
|
||||
EMPTYARC(s2, rp);
|
||||
t->right = subre(v, '=', 0, s2, rp);
|
||||
t->right = sub_re(v, '=', 0, s2, rp);
|
||||
}
|
||||
NOERR();
|
||||
assert(SEE('|') || SEE(stopper) || SEE(EOS));
|
||||
@@ -1717,12 +1717,12 @@ wordchrs(
|
||||
}
|
||||
|
||||
/*
|
||||
- subre - allocate a subre
|
||||
^ static struct subre *subre(struct vars *, int, int, struct state *,
|
||||
- sub_re - allocate a subre
|
||||
^ static struct subre *sub_re(struct vars *, int, int, struct state *,
|
||||
^ struct state *);
|
||||
*/
|
||||
static struct subre *
|
||||
subre(
|
||||
sub_re(
|
||||
struct vars *v,
|
||||
int op,
|
||||
int flags,
|
||||
|
||||
+1
-1
@@ -361,7 +361,7 @@ typedef long LONG;
|
||||
*/
|
||||
|
||||
#if !defined(TCL_WIDE_INT_TYPE)&&!defined(TCL_WIDE_INT_IS_LONG)
|
||||
# if defined(_MSC_VER) || defined(_WIN32)
|
||||
# if defined(_WIN32) && (!defined(__USE_MINGW_ANSI_STDIO) || !__USE_MINGW_ANSI_STDIO)
|
||||
# define TCL_WIDE_INT_TYPE __int64
|
||||
# define TCL_LL_MODIFIER "I64"
|
||||
# if defined(_WIN64)
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@
|
||||
#include "tclInt.h"
|
||||
#if !TCL_THREADS || !defined(USE_THREAD_ALLOC)
|
||||
|
||||
#if USE_TCLALLOC
|
||||
#if defined(USE_TCLALLOC) && USE_TCLALLOC
|
||||
|
||||
/*
|
||||
* We should really make use of AC_CHECK_TYPE(caddr_t) here, but it can wait
|
||||
|
||||
@@ -131,7 +131,7 @@ enum BasicBlockFlags {
|
||||
* Source instruction type recognized by the assembler.
|
||||
*/
|
||||
|
||||
typedef enum TalInstType {
|
||||
typedef enum {
|
||||
ASSEM_1BYTE, /* Fixed arity, 1-byte instruction */
|
||||
ASSEM_BEGIN_CATCH, /* Begin catch: one 4-byte jump offset to be
|
||||
* converted to appropriate exception
|
||||
@@ -145,8 +145,6 @@ typedef enum TalInstType {
|
||||
* 1 */
|
||||
ASSEM_DICT_GET, /* 'dict get' and related - consumes N+1
|
||||
* operands, produces 1, N > 0 */
|
||||
ASSEM_DICT_GET_DEF, /* 'dict getwithdefault' - consumes N+2
|
||||
* operands, produces 1, N > 0 */
|
||||
ASSEM_DICT_SET, /* specifies key count and LVT index, consumes
|
||||
* N+1 operands, produces 1, N > 0 */
|
||||
ASSEM_DICT_UNSET, /* specifies key count and LVT index, consumes
|
||||
@@ -189,8 +187,10 @@ typedef enum TalInstType {
|
||||
* produces N */
|
||||
ASSEM_SINT1, /* One 1-byte signed-integer operand
|
||||
* (INCR_STK_IMM) */
|
||||
ASSEM_SINT4_LVT4 /* Signed 4-byte integer operand followed by
|
||||
ASSEM_SINT4_LVT4, /* Signed 4-byte integer operand followed by
|
||||
* LVT entry. Fixed arity */
|
||||
ASSEM_DICT_GET_DEF /* 'dict getwithdefault' - consumes N+2
|
||||
* operands, produces 1, N > 0 */
|
||||
} TalInstType;
|
||||
|
||||
/*
|
||||
@@ -815,7 +815,7 @@ TclNRAssembleObjCmd(
|
||||
Tcl_AddErrorInfo(interp, "\n (\"");
|
||||
Tcl_AppendObjToErrorInfo(interp, objv[0]);
|
||||
Tcl_AddErrorInfo(interp, "\" body, line ");
|
||||
backtrace = Tcl_NewWideIntObj(Tcl_GetErrorLine(interp));
|
||||
TclNewIntObj(backtrace, Tcl_GetErrorLine(interp));
|
||||
Tcl_AppendObjToErrorInfo(interp, backtrace);
|
||||
Tcl_AddErrorInfo(interp, ")");
|
||||
return TCL_ERROR;
|
||||
@@ -1266,7 +1266,7 @@ AssembleOneLine(
|
||||
Tcl_Obj* instNameObj; /* Name of the instruction */
|
||||
int tblIdx; /* Index in TalInstructionTable of the
|
||||
* instruction */
|
||||
enum TalInstType instType; /* Type of the instruction */
|
||||
TalInstType instType; /* Type of the instruction */
|
||||
Tcl_Obj* operand1Obj = NULL;
|
||||
/* First operand to the instruction */
|
||||
const char* operand1; /* String rep of the operand */
|
||||
@@ -4270,7 +4270,7 @@ AddBasicBlockRangeToErrorInfo(
|
||||
Tcl_Obj* lineNo; /* Line number in the source */
|
||||
|
||||
Tcl_AddErrorInfo(interp, "\n in assembly code between lines ");
|
||||
lineNo = Tcl_NewWideIntObj(bbPtr->startLine);
|
||||
TclNewIntObj(lineNo, bbPtr->startLine);
|
||||
Tcl_IncrRefCount(lineNo);
|
||||
Tcl_AppendObjToErrorInfo(interp, lineNo);
|
||||
Tcl_AddErrorInfo(interp, " and ");
|
||||
|
||||
+2
-2
@@ -8790,8 +8790,8 @@ MathFuncWrongNumArgs(
|
||||
}
|
||||
}
|
||||
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
|
||||
"too %s arguments for math function \"%s\"",
|
||||
(found < expected ? "few" : "many"), name));
|
||||
"%s arguments for math function \"%s\"",
|
||||
(found < expected ? "not enough" : "too many"), name));
|
||||
Tcl_SetErrorCode(interp, "TCL", "WRONGARGS", NULL);
|
||||
}
|
||||
|
||||
|
||||
@@ -1288,7 +1288,7 @@ TclFinalizeMemorySubsystem(void)
|
||||
Tcl_MutexUnlock(ckallocMutexPtr);
|
||||
#endif
|
||||
|
||||
#if USE_TCLALLOC
|
||||
#if defined(USE_TCLALLOC) && USE_TCLALLOC
|
||||
TclFinalizeAllocSubsystem();
|
||||
#endif
|
||||
}
|
||||
|
||||
+2
-2
@@ -59,7 +59,7 @@ static int GetStatBuf(Tcl_Interp *interp, Tcl_Obj *pathPtr,
|
||||
static const char * GetTypeFromMode(int mode);
|
||||
static int StoreStatData(Tcl_Interp *interp, Tcl_Obj *varName,
|
||||
Tcl_StatBuf *statPtr);
|
||||
static inline int EachloopCmd(Tcl_Interp *interp, int collect,
|
||||
static int EachloopCmd(Tcl_Interp *interp, int collect,
|
||||
int objc, Tcl_Obj *const objv[]);
|
||||
static Tcl_NRPostProc CatchObjCmdCallback;
|
||||
static Tcl_NRPostProc ExprCallback;
|
||||
@@ -2599,7 +2599,7 @@ TclNRLmapCmd(
|
||||
return EachloopCmd(interp, TCL_EACH_COLLECT, objc, objv);
|
||||
}
|
||||
|
||||
static inline int
|
||||
static int
|
||||
EachloopCmd(
|
||||
Tcl_Interp *interp, /* Our context for variables and script
|
||||
* evaluation. */
|
||||
|
||||
+4
-4
@@ -383,7 +383,7 @@ Tcl_IncrObjCmd(
|
||||
if (objc == 3) {
|
||||
incrPtr = objv[2];
|
||||
} else {
|
||||
incrPtr = Tcl_NewWideIntObj(1);
|
||||
TclNewIntObj(incrPtr, 1);
|
||||
}
|
||||
Tcl_IncrRefCount(incrPtr);
|
||||
newValuePtr = TclIncrObjVar2(interp, objv[1], NULL,
|
||||
@@ -3157,7 +3157,7 @@ Tcl_LsearchObjCmd(
|
||||
"-real", "-regexp", "-sorted", "-start", "-stride",
|
||||
"-subindices", NULL
|
||||
};
|
||||
enum options {
|
||||
enum lsearchoptions {
|
||||
LSEARCH_ALL, LSEARCH_ASCII, LSEARCH_BISECT, LSEARCH_DECREASING,
|
||||
LSEARCH_DICTIONARY, LSEARCH_EXACT, LSEARCH_GLOB, LSEARCH_INCREASING,
|
||||
LSEARCH_INDEX, LSEARCH_INLINE, LSEARCH_INTEGER, LSEARCH_NOCASE,
|
||||
@@ -3205,7 +3205,7 @@ Tcl_LsearchObjCmd(
|
||||
result = TCL_ERROR;
|
||||
goto done;
|
||||
}
|
||||
switch ((enum options) index) {
|
||||
switch ((enum lsearchoptions) index) {
|
||||
case LSEARCH_ALL: /* -all */
|
||||
allMatches = 1;
|
||||
break;
|
||||
@@ -3514,7 +3514,7 @@ Tcl_LsearchObjCmd(
|
||||
if (allMatches || inlineReturn) {
|
||||
Tcl_ResetResult(interp);
|
||||
} else {
|
||||
TclNewIntObj(itemPtr, -1);
|
||||
TclNewIntObj(itemPtr, TCL_INDEX_NONE);
|
||||
Tcl_SetObjResult(interp, itemPtr);
|
||||
}
|
||||
goto done;
|
||||
|
||||
+21
-18
@@ -137,7 +137,7 @@ Tcl_RegexpObjCmd(
|
||||
"-expanded", "-line", "-linestop", "-lineanchor",
|
||||
"-nocase", "-start", "--", NULL
|
||||
};
|
||||
enum options {
|
||||
enum regexpoptions {
|
||||
REGEXP_ALL, REGEXP_ABOUT, REGEXP_INDICES, REGEXP_INLINE,
|
||||
REGEXP_EXPANDED,REGEXP_LINE, REGEXP_LINESTOP,REGEXP_LINEANCHOR,
|
||||
REGEXP_NOCASE, REGEXP_START, REGEXP_LAST
|
||||
@@ -162,7 +162,7 @@ Tcl_RegexpObjCmd(
|
||||
&index) != TCL_OK) {
|
||||
goto optionError;
|
||||
}
|
||||
switch ((enum options) index) {
|
||||
switch ((enum regexpoptions) index) {
|
||||
case REGEXP_ALL:
|
||||
all = 1;
|
||||
break;
|
||||
@@ -499,7 +499,7 @@ Tcl_RegsubObjCmd(
|
||||
"-linestop", "-lineanchor", "-nocase", "-start",
|
||||
"--", NULL
|
||||
};
|
||||
enum options {
|
||||
enum regsubobjoptions {
|
||||
REGSUB_ALL, REGSUB_COMMAND, REGSUB_EXPANDED, REGSUB_LINE,
|
||||
REGSUB_LINESTOP, REGSUB_LINEANCHOR, REGSUB_NOCASE, REGSUB_START,
|
||||
REGSUB_LAST
|
||||
@@ -523,7 +523,7 @@ Tcl_RegsubObjCmd(
|
||||
TCL_EXACT, &index) != TCL_OK) {
|
||||
goto optionError;
|
||||
}
|
||||
switch ((enum options) index) {
|
||||
switch ((enum regsubobjoptions) index) {
|
||||
case REGSUB_ALL:
|
||||
all = 1;
|
||||
break;
|
||||
@@ -1536,7 +1536,7 @@ StringIsCmd(
|
||||
"space", "true", "upper", "wideinteger",
|
||||
"wordchar", "xdigit", NULL
|
||||
};
|
||||
enum isClasses {
|
||||
enum isClassesEnum {
|
||||
STR_IS_ALNUM, STR_IS_ALPHA, STR_IS_ASCII, STR_IS_CONTROL,
|
||||
STR_IS_BOOL, STR_IS_DICT, STR_IS_DIGIT, STR_IS_DOUBLE,
|
||||
STR_IS_ENTIER, STR_IS_FALSE, STR_IS_GRAPH, STR_IS_INT,
|
||||
@@ -1547,7 +1547,7 @@ StringIsCmd(
|
||||
static const char *const isOptions[] = {
|
||||
"-strict", "-failindex", NULL
|
||||
};
|
||||
enum isOptions {
|
||||
enum isOptionsEnum {
|
||||
OPT_STRICT, OPT_FAILIDX
|
||||
};
|
||||
|
||||
@@ -1569,7 +1569,7 @@ StringIsCmd(
|
||||
&idx2) != TCL_OK) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
switch ((enum isOptions) idx2) {
|
||||
switch ((enum isOptionsEnum) idx2) {
|
||||
case OPT_STRICT:
|
||||
strict = 1;
|
||||
break;
|
||||
@@ -1598,7 +1598,7 @@ StringIsCmd(
|
||||
* When entering here, result == 1 and failat == 0.
|
||||
*/
|
||||
|
||||
switch ((enum isClasses) index) {
|
||||
switch ((enum isClassesEnum) index) {
|
||||
case STR_IS_ALNUM:
|
||||
chcomp = Tcl_UniCharIsAlnum;
|
||||
break;
|
||||
@@ -3484,7 +3484,7 @@ TclNRSwitchObjCmd(
|
||||
"-exact", "-glob", "-indexvar", "-matchvar", "-nocase", "-regexp",
|
||||
"--", NULL
|
||||
};
|
||||
enum options {
|
||||
enum switchOptionsEnum {
|
||||
OPT_EXACT, OPT_GLOB, OPT_INDEXV, OPT_MATCHV, OPT_NOCASE, OPT_REGEXP,
|
||||
OPT_LAST
|
||||
};
|
||||
@@ -3505,7 +3505,7 @@ TclNRSwitchObjCmd(
|
||||
&index) != TCL_OK) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
switch ((enum options) index) {
|
||||
switch ((enum switchOptionsEnum) index) {
|
||||
/*
|
||||
* General options.
|
||||
*/
|
||||
@@ -3778,7 +3778,7 @@ TclNRSwitchObjCmd(
|
||||
TclNewIntObj(rangeObjAry[0], info.matches[j].start);
|
||||
TclNewIntObj(rangeObjAry[1], info.matches[j].end-1);
|
||||
} else {
|
||||
TclNewIntObj(rangeObjAry[1], -1);
|
||||
TclNewIntObj(rangeObjAry[1], TCL_INDEX_NONE);
|
||||
rangeObjAry[0] = rangeObjAry[1];
|
||||
}
|
||||
|
||||
@@ -4171,7 +4171,7 @@ Tcl_TimeRateObjCmd(
|
||||
static const char *const options[] = {
|
||||
"-direct", "-overhead", "-calibrate", "--", NULL
|
||||
};
|
||||
enum options {
|
||||
enum timeRateOptionsEnum {
|
||||
TMRT_EV_DIRECT, TMRT_OVERHEAD, TMRT_CALIBRATE, TMRT_LAST
|
||||
};
|
||||
NRE_callback *rootPtr;
|
||||
@@ -4188,7 +4188,7 @@ Tcl_TimeRateObjCmd(
|
||||
i++;
|
||||
break;
|
||||
}
|
||||
switch (index) {
|
||||
switch ((enum timeRateOptionsEnum)index) {
|
||||
case TMRT_EV_DIRECT:
|
||||
direct = objv[i];
|
||||
break;
|
||||
@@ -4203,6 +4203,8 @@ Tcl_TimeRateObjCmd(
|
||||
case TMRT_CALIBRATE:
|
||||
calibrate = objv[i];
|
||||
break;
|
||||
case TMRT_LAST:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4548,7 +4550,8 @@ Tcl_TimeRateObjCmd(
|
||||
#endif /* TCL_WIDE_CLICKS */
|
||||
|
||||
if (!count) { /* no iterations - avoid divide by zero */
|
||||
objs[0] = objs[2] = objs[4] = Tcl_NewWideIntObj(0);
|
||||
TclNewIntObj(objs[4], 0);
|
||||
objs[0] = objs[2] = objs[4];
|
||||
goto retRes;
|
||||
}
|
||||
|
||||
@@ -4589,7 +4592,7 @@ Tcl_TimeRateObjCmd(
|
||||
|
||||
val = usec / count; /* microsecs per iteration */
|
||||
if (val >= 1000000) {
|
||||
objs[0] = Tcl_NewWideIntObj(val);
|
||||
TclNewIntObj(objs[0], val);
|
||||
} else {
|
||||
if (val < 10) {
|
||||
digits = 6;
|
||||
@@ -4605,7 +4608,7 @@ Tcl_TimeRateObjCmd(
|
||||
objs[0] = Tcl_ObjPrintf("%.*f", digits, ((double) usec)/count);
|
||||
}
|
||||
|
||||
objs[2] = Tcl_NewWideIntObj(count); /* iterations */
|
||||
TclNewIntObj(objs[2], count); /* iterations */
|
||||
|
||||
/*
|
||||
* Calculate speed as rate (count) per sec
|
||||
@@ -4627,7 +4630,7 @@ Tcl_TimeRateObjCmd(
|
||||
objs[4] = Tcl_ObjPrintf("%.*f",
|
||||
digits, ((double) (count * 1000000)) / usec);
|
||||
} else {
|
||||
objs[4] = Tcl_NewWideIntObj(val);
|
||||
TclNewIntObj(objs[4], val);
|
||||
}
|
||||
} else {
|
||||
objs[4] = Tcl_NewWideIntObj((count / usec) * 1000000);
|
||||
@@ -4642,7 +4645,7 @@ Tcl_TimeRateObjCmd(
|
||||
if (usec >= 1) {
|
||||
objs[6] = Tcl_ObjPrintf("%.3f", (double)usec / 1000);
|
||||
} else {
|
||||
objs[6] = Tcl_NewWideIntObj(0);
|
||||
TclNewIntObj(objs[6], 0);
|
||||
}
|
||||
TclNewLiteralStringObj(objs[7], "net-ms");
|
||||
}
|
||||
|
||||
@@ -874,7 +874,7 @@ TclCompileLappendCmd(
|
||||
*/
|
||||
|
||||
if (numWords > 2) {
|
||||
Tcl_Token *valueTokenPtr = TokenAfter(varTokenPtr);
|
||||
valueTokenPtr = TokenAfter(varTokenPtr);
|
||||
|
||||
CompileWord(envPtr, valueTokenPtr, interp, 2);
|
||||
}
|
||||
@@ -1064,7 +1064,7 @@ TclCompileLindexCmd(
|
||||
int i, idx, numWords = parsePtr->numWords;
|
||||
|
||||
/*
|
||||
* Quit if too few args.
|
||||
* Quit if not enough args.
|
||||
*/
|
||||
|
||||
/* TODO: Consider support for compiling expanded args. */
|
||||
|
||||
@@ -462,7 +462,7 @@ TclCompileStringInsertCmd(
|
||||
TCL_INDEX_END, &idx)) {
|
||||
|
||||
/* Nothing useful knowable - cease compile; let it direct eval */
|
||||
return TCL_OK;
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
/* Compute and push the string to be inserted */
|
||||
@@ -511,7 +511,7 @@ TclCompileStringIsCmd(
|
||||
"true", "upper", "wideinteger", "wordchar",
|
||||
"xdigit", NULL
|
||||
};
|
||||
enum isClasses {
|
||||
enum isClassesEnum {
|
||||
STR_IS_ALNUM, STR_IS_ALPHA, STR_IS_ASCII, STR_IS_CONTROL,
|
||||
STR_IS_BOOL, STR_IS_DICT, STR_IS_DIGIT, STR_IS_DOUBLE, STR_IS_ENTIER,
|
||||
STR_IS_FALSE, STR_IS_GRAPH, STR_IS_INT, STR_IS_LIST,
|
||||
@@ -575,7 +575,7 @@ TclCompileStringIsCmd(
|
||||
|
||||
CompileWord(envPtr, tokenPtr, interp, parsePtr->numWords-1);
|
||||
|
||||
switch ((enum isClasses) t) {
|
||||
switch ((enum isClassesEnum) t) {
|
||||
case STR_IS_ALNUM:
|
||||
strClassType = STR_CLASS_ALNUM;
|
||||
goto compileStrClass;
|
||||
|
||||
+57
-14
@@ -164,6 +164,8 @@ enum Marks {
|
||||
* "=" is encountered. */
|
||||
#define INVALID 5 /* A parse error. Used when any punctuation
|
||||
* appears that's not a supported operator. */
|
||||
#define COMMENT 6 /* Comment. Lasts to end of line or end of
|
||||
* expression, whichever comes first. */
|
||||
|
||||
/* Leaf lexemes */
|
||||
|
||||
@@ -462,7 +464,7 @@ static const unsigned char Lexeme[] = {
|
||||
INVALID /* FS */, INVALID /* GS */,
|
||||
INVALID /* RS */, INVALID /* US */,
|
||||
INVALID /* SPACE */, 0 /* ! or != */,
|
||||
QUOTED /* " */, INVALID /* # */,
|
||||
QUOTED /* " */, 0 /* # */,
|
||||
VARIABLE /* $ */, MOD /* % */,
|
||||
0 /* & or && */, INVALID /* ' */,
|
||||
OPEN_PAREN /* ( */, CLOSE_PAREN /* ) */,
|
||||
@@ -674,9 +676,10 @@ ParseExpr(
|
||||
OpNode *newPtr = NULL;
|
||||
|
||||
do {
|
||||
if (size <= UINT_MAX/sizeof(OpNode)) {
|
||||
newPtr = (OpNode *)attemptckrealloc(nodes, size * sizeof(OpNode));
|
||||
}
|
||||
if (size <= UINT_MAX/sizeof(OpNode)) {
|
||||
newPtr = (OpNode *) attemptckrealloc(nodes,
|
||||
size * sizeof(OpNode));
|
||||
}
|
||||
} while ((newPtr == NULL)
|
||||
&& ((size -= (size - nodesUsed) / 2) > nodesUsed));
|
||||
if (newPtr == NULL) {
|
||||
@@ -708,6 +711,10 @@ ParseExpr(
|
||||
int b;
|
||||
|
||||
switch (lexeme) {
|
||||
case COMMENT:
|
||||
start += scanned;
|
||||
numBytes -= scanned;
|
||||
continue;
|
||||
case INVALID:
|
||||
msg = Tcl_ObjPrintf("invalid character \"%.*s\"",
|
||||
scanned, start);
|
||||
@@ -742,6 +749,32 @@ ParseExpr(
|
||||
} else if (Tcl_GetBooleanFromObj(NULL,literal,&b) == TCL_OK) {
|
||||
lexeme = BOOLEAN;
|
||||
} else {
|
||||
/*
|
||||
* Tricky case: see test expr-62.10
|
||||
*/
|
||||
|
||||
int scanned2 = scanned;
|
||||
do {
|
||||
scanned2 += TclParseAllWhiteSpace(
|
||||
start + scanned2, numBytes - scanned2);
|
||||
scanned2 += ParseLexeme(
|
||||
start + scanned2, numBytes - scanned2, &lexeme,
|
||||
NULL);
|
||||
} while (lexeme == COMMENT);
|
||||
if (lexeme == OPEN_PAREN) {
|
||||
/*
|
||||
* Actually a function call, but with obscuring
|
||||
* comments. Skip to the start of the parentheses.
|
||||
* Note that we assume that open parentheses are one
|
||||
* byte long.
|
||||
*/
|
||||
|
||||
lexeme = FUNCTION;
|
||||
Tcl_ListObjAppendElement(NULL, funcList, literal);
|
||||
scanned = scanned2 - 1;
|
||||
break;
|
||||
}
|
||||
|
||||
Tcl_DecrRefCount(literal);
|
||||
msg = Tcl_ObjPrintf("invalid bareword \"%.*s%s\"",
|
||||
(scanned < limit) ? scanned : limit - 3, start,
|
||||
@@ -1009,7 +1042,7 @@ ParseExpr(
|
||||
* later.
|
||||
*/
|
||||
|
||||
literal = Tcl_NewObj();
|
||||
TclNewObj(literal);
|
||||
if (TclWordKnownAtCompileTime(tokenPtr, literal)) {
|
||||
Tcl_ListObjAppendElement(NULL, litList, literal);
|
||||
complete = lastParsed = OT_LITERAL;
|
||||
@@ -1894,7 +1927,7 @@ ParseLexeme(
|
||||
storage, if non-NULL. */
|
||||
{
|
||||
const char *end;
|
||||
int scanned;
|
||||
int scanned, size;
|
||||
Tcl_UniChar ch = 0;
|
||||
Tcl_Obj *literal = NULL;
|
||||
unsigned char byte;
|
||||
@@ -1909,6 +1942,16 @@ ParseLexeme(
|
||||
return 1;
|
||||
}
|
||||
switch (byte) {
|
||||
case '#':
|
||||
/*
|
||||
* Scan forward over the comment contents.
|
||||
*/
|
||||
for (size = 0; byte != '\n' && byte != 0 && size < numBytes; size++) {
|
||||
byte = UCHAR(start[size]);
|
||||
}
|
||||
*lexemePtr = COMMENT;
|
||||
return size - (byte == '\n');
|
||||
|
||||
case '*':
|
||||
if ((numBytes > 1) && (start[1] == '*')) {
|
||||
*lexemePtr = EXPON;
|
||||
@@ -2463,8 +2506,8 @@ CompileExprTree(
|
||||
if (optimize) {
|
||||
int length;
|
||||
const char *bytes = TclGetStringFromObj(literal, &length);
|
||||
int index = TclRegisterLiteral(envPtr, bytes, length, 0);
|
||||
Tcl_Obj *objPtr = TclFetchLiteral(envPtr, index);
|
||||
int idx = TclRegisterLiteral(envPtr, bytes, length, 0);
|
||||
Tcl_Obj *objPtr = TclFetchLiteral(envPtr, idx);
|
||||
|
||||
if ((objPtr->typePtr == NULL) && (literal->typePtr != NULL)) {
|
||||
/*
|
||||
@@ -2484,7 +2527,7 @@ CompileExprTree(
|
||||
objPtr->internalRep = literal->internalRep;
|
||||
literal->typePtr = NULL;
|
||||
}
|
||||
TclEmitPush(index, envPtr);
|
||||
TclEmitPush(idx, envPtr);
|
||||
} else {
|
||||
/*
|
||||
* When optimize==0, we know the expression is a one-off and
|
||||
@@ -2510,7 +2553,7 @@ CompileExprTree(
|
||||
|
||||
if (ExecConstantExprTree(interp, nodes, next, litObjvPtr)
|
||||
== TCL_OK) {
|
||||
int index;
|
||||
int idx;
|
||||
Tcl_Obj *objPtr = Tcl_GetObjResult(interp);
|
||||
|
||||
/*
|
||||
@@ -2524,8 +2567,8 @@ CompileExprTree(
|
||||
const char *bytes
|
||||
= Tcl_GetStringFromObj(objPtr, &numBytes);
|
||||
|
||||
index = TclRegisterLiteral(envPtr, bytes, numBytes, 0);
|
||||
tableValue = TclFetchLiteral(envPtr, index);
|
||||
idx = TclRegisterLiteral(envPtr, bytes, numBytes, 0);
|
||||
tableValue = TclFetchLiteral(envPtr, idx);
|
||||
if ((tableValue->typePtr == NULL) &&
|
||||
(objPtr->typePtr != NULL)) {
|
||||
/*
|
||||
@@ -2537,9 +2580,9 @@ CompileExprTree(
|
||||
objPtr->typePtr = NULL;
|
||||
}
|
||||
} else {
|
||||
index = TclAddLiteralObj(envPtr, objPtr, NULL);
|
||||
idx = TclAddLiteralObj(envPtr, objPtr, NULL);
|
||||
}
|
||||
TclEmitPush(index, envPtr);
|
||||
TclEmitPush(idx, envPtr);
|
||||
} else {
|
||||
TclCompileSyntaxError(interp, envPtr);
|
||||
}
|
||||
|
||||
+7
-7
@@ -2787,7 +2787,7 @@ TclClockOldscanObjCmd(
|
||||
yyHaveRel = 0;
|
||||
yyRelMonth = 0; yyRelDay = 0; yyRelSeconds = 0; yyRelPointer = NULL;
|
||||
|
||||
dateInfo.messages = Tcl_NewObj();
|
||||
TclNewObj(dateInfo.messages);
|
||||
dateInfo.separatrix = "";
|
||||
Tcl_IncrRefCount(dateInfo.messages);
|
||||
|
||||
@@ -2844,8 +2844,8 @@ TclClockOldscanObjCmd(
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
result = Tcl_NewObj();
|
||||
resultElement = Tcl_NewObj();
|
||||
TclNewObj(result);
|
||||
TclNewObj(resultElement);
|
||||
if (yyHaveDate) {
|
||||
Tcl_ListObjAppendElement(interp, resultElement,
|
||||
Tcl_NewIntObj((int) yyYear));
|
||||
@@ -2863,7 +2863,7 @@ TclClockOldscanObjCmd(
|
||||
Tcl_ListObjAppendElement(interp, result, Tcl_NewObj());
|
||||
}
|
||||
|
||||
resultElement = Tcl_NewObj();
|
||||
TclNewObj(resultElement);
|
||||
if (yyHaveZone) {
|
||||
Tcl_ListObjAppendElement(interp, resultElement,
|
||||
Tcl_NewIntObj((int) -yyTimezone));
|
||||
@@ -2872,7 +2872,7 @@ TclClockOldscanObjCmd(
|
||||
}
|
||||
Tcl_ListObjAppendElement(interp, result, resultElement);
|
||||
|
||||
resultElement = Tcl_NewObj();
|
||||
TclNewObj(resultElement);
|
||||
if (yyHaveRel) {
|
||||
Tcl_ListObjAppendElement(interp, resultElement,
|
||||
Tcl_NewIntObj((int) yyRelMonth));
|
||||
@@ -2883,7 +2883,7 @@ TclClockOldscanObjCmd(
|
||||
}
|
||||
Tcl_ListObjAppendElement(interp, result, resultElement);
|
||||
|
||||
resultElement = Tcl_NewObj();
|
||||
TclNewObj(resultElement);
|
||||
if (yyHaveDay && !yyHaveDate) {
|
||||
Tcl_ListObjAppendElement(interp, resultElement,
|
||||
Tcl_NewIntObj((int) yyDayOrdinal));
|
||||
@@ -2892,7 +2892,7 @@ TclClockOldscanObjCmd(
|
||||
}
|
||||
Tcl_ListObjAppendElement(interp, result, resultElement);
|
||||
|
||||
resultElement = Tcl_NewObj();
|
||||
TclNewObj(resultElement);
|
||||
if (yyHaveOrdinalMonth) {
|
||||
Tcl_ListObjAppendElement(interp, resultElement,
|
||||
Tcl_NewIntObj((int) yyMonthOrdinal));
|
||||
|
||||
@@ -2226,8 +2226,9 @@ DictIncrCmd(
|
||||
if (objc == 4) {
|
||||
code = TclIncrObj(interp, valuePtr, objv[3]);
|
||||
} else {
|
||||
Tcl_Obj *incrPtr = Tcl_NewWideIntObj(1);
|
||||
Tcl_Obj *incrPtr;
|
||||
|
||||
TclNewIntObj(incrPtr, 1);
|
||||
Tcl_IncrRefCount(incrPtr);
|
||||
code = TclIncrObj(interp, valuePtr, incrPtr);
|
||||
TclDecrRefCount(incrPtr);
|
||||
|
||||
+3
-3
@@ -1048,7 +1048,7 @@ Tcl_InitSubsystems(void)
|
||||
|
||||
TclInitThreadStorage(); /* Creates hash table for
|
||||
* thread local storage */
|
||||
#if USE_TCLALLOC
|
||||
#if defined(USE_TCLALLOC) && USE_TCLALLOC
|
||||
TclInitAlloc(); /* Process wide mutex init */
|
||||
#endif
|
||||
#if TCL_THREADS && defined(USE_THREAD_ALLOC)
|
||||
@@ -1502,7 +1502,7 @@ Tcl_UpdateObjCmd(
|
||||
int optionIndex;
|
||||
int flags = 0; /* Initialized to avoid compiler warning. */
|
||||
static const char *const updateOptions[] = {"idletasks", NULL};
|
||||
enum updateOptions {OPT_IDLETASKS};
|
||||
enum updateOptionsEnum {OPT_IDLETASKS};
|
||||
|
||||
if (objc == 1) {
|
||||
flags = TCL_ALL_EVENTS|TCL_DONT_WAIT;
|
||||
@@ -1511,7 +1511,7 @@ Tcl_UpdateObjCmd(
|
||||
"option", 0, &optionIndex) != TCL_OK) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
switch ((enum updateOptions) optionIndex) {
|
||||
switch ((enum updateOptionsEnum) optionIndex) {
|
||||
case OPT_IDLETASKS:
|
||||
flags = TCL_WINDOW_EVENTS|TCL_IDLE_EVENTS|TCL_DONT_WAIT;
|
||||
break;
|
||||
|
||||
@@ -3736,7 +3736,7 @@ TEBCresume(
|
||||
TRACE(("%u %ld => ", opnd, increment));
|
||||
if (Tcl_IsShared(objPtr)) {
|
||||
objPtr->refCount--; /* We know it's shared. */
|
||||
objResultPtr = Tcl_NewWideIntObj(w+increment);
|
||||
TclNewIntObj(objResultPtr, w + increment);
|
||||
Tcl_IncrRefCount(objResultPtr);
|
||||
varPtr->value.objPtr = objResultPtr;
|
||||
} else {
|
||||
@@ -6156,7 +6156,7 @@ TEBCresume(
|
||||
wideResultOfArithmetic:
|
||||
TRACE(("%s %s => ", O2S(valuePtr), O2S(value2Ptr)));
|
||||
if (Tcl_IsShared(valuePtr)) {
|
||||
objResultPtr = Tcl_NewWideIntObj(wResult);
|
||||
TclNewIntObj(objResultPtr, wResult);
|
||||
TRACE(("%s\n", O2S(objResultPtr)));
|
||||
NEXT_INST_F(1, 2, 1);
|
||||
}
|
||||
@@ -6427,8 +6427,8 @@ TEBCresume(
|
||||
if (TclHasIntRep(valuePtr, &tclBooleanType)) {
|
||||
objResultPtr = TCONST(1);
|
||||
} else {
|
||||
int result = (TclSetBooleanFromAny(NULL, valuePtr) == TCL_OK);
|
||||
objResultPtr = TCONST(result);
|
||||
int res = (TclSetBooleanFromAny(NULL, valuePtr) == TCL_OK);
|
||||
objResultPtr = TCONST(res);
|
||||
}
|
||||
TRACE_WITH_OBJ(("\"%.30s\" => ", O2S(valuePtr)), objResultPtr);
|
||||
NEXT_INST_F(1, 0, 1);
|
||||
@@ -6622,7 +6622,7 @@ TEBCresume(
|
||||
}
|
||||
{
|
||||
ForeachInfo *infoPtr;
|
||||
Tcl_Obj *listPtr, **elements, *tmpPtr;
|
||||
Tcl_Obj *listPtr, **elements;
|
||||
ForeachVarList *varListPtr;
|
||||
int numLists, listLen, numVars;
|
||||
int listTmpDepth;
|
||||
@@ -7564,7 +7564,7 @@ TEBCresume(
|
||||
default:
|
||||
Tcl_Panic("clockRead instruction with unknown clock#");
|
||||
}
|
||||
objResultPtr = Tcl_NewWideIntObj(wval);
|
||||
TclNewIntObj(objResultPtr, wval);
|
||||
TRACE_WITH_OBJ(("=> "), objResultPtr);
|
||||
NEXT_INST_F(2, 0, 1);
|
||||
}
|
||||
|
||||
+12
-5
@@ -587,7 +587,8 @@ Tcl_SplitPath(
|
||||
* plus the argv pointers and the terminating NULL pointer.
|
||||
*/
|
||||
|
||||
*argvPtr = (const char **)ckalloc((((*argcPtr) + 1) * sizeof(char *)) + size);
|
||||
*argvPtr = (const char **)ckalloc(
|
||||
((((*argcPtr) + 1) * sizeof(char *)) + size));
|
||||
|
||||
/*
|
||||
* Position p after the last argv pointer and copy the contents of the
|
||||
@@ -1237,7 +1238,7 @@ Tcl_GlobObjCmd(
|
||||
"-directory", "-join", "-nocomplain", "-path", "-tails",
|
||||
"-types", "--", NULL
|
||||
};
|
||||
enum options {
|
||||
enum globOptionsEnum {
|
||||
GLOB_DIR, GLOB_JOIN, GLOB_NOCOMPLAIN, GLOB_PATH, GLOB_TAILS,
|
||||
GLOB_TYPE, GLOB_LAST
|
||||
};
|
||||
@@ -1270,7 +1271,7 @@ Tcl_GlobObjCmd(
|
||||
}
|
||||
}
|
||||
|
||||
switch (index) {
|
||||
switch ((enum globOptionsEnum) index) {
|
||||
case GLOB_NOCOMPLAIN: /* -nocomplain */
|
||||
globFlags |= TCL_GLOBMODE_NO_COMPLAIN;
|
||||
break;
|
||||
@@ -1283,7 +1284,10 @@ Tcl_GlobObjCmd(
|
||||
}
|
||||
if (dir != PATH_NONE) {
|
||||
Tcl_SetObjResult(interp, Tcl_NewStringObj(
|
||||
"\"-directory\" cannot be used with \"-path\"", -1));
|
||||
dir == PATH_DIR
|
||||
? "\"-directory\" may only be used once"
|
||||
: "\"-directory\" cannot be used with \"-path\"",
|
||||
-1));
|
||||
Tcl_SetErrorCode(interp, "TCL", "OPERATION", "GLOB",
|
||||
"BADOPTIONCOMBINATION", NULL);
|
||||
return TCL_ERROR;
|
||||
@@ -1308,7 +1312,10 @@ Tcl_GlobObjCmd(
|
||||
}
|
||||
if (dir != PATH_NONE) {
|
||||
Tcl_SetObjResult(interp, Tcl_NewStringObj(
|
||||
"\"-path\" cannot be used with \"-directory\"", -1));
|
||||
dir == PATH_GENERAL
|
||||
? "\"-path\" may only be used once"
|
||||
: "\"-path\" cannot be used with \"-dictionary\"",
|
||||
-1));
|
||||
Tcl_SetErrorCode(interp, "TCL", "OPERATION", "GLOB",
|
||||
"BADOPTIONCOMBINATION", NULL);
|
||||
return TCL_ERROR;
|
||||
|
||||
@@ -1002,7 +1002,7 @@ TclClockOldscanObjCmd(
|
||||
yyHaveRel = 0;
|
||||
yyRelMonth = 0; yyRelDay = 0; yyRelSeconds = 0; yyRelPointer = NULL;
|
||||
|
||||
dateInfo.messages = Tcl_NewObj();
|
||||
TclNewObj(dateInfo.messages);
|
||||
dateInfo.separatrix = "";
|
||||
Tcl_IncrRefCount(dateInfo.messages);
|
||||
|
||||
@@ -1059,8 +1059,8 @@ TclClockOldscanObjCmd(
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
result = Tcl_NewObj();
|
||||
resultElement = Tcl_NewObj();
|
||||
TclNewObj(result);
|
||||
TclNewObj(resultElement);
|
||||
if (yyHaveDate) {
|
||||
Tcl_ListObjAppendElement(interp, resultElement,
|
||||
Tcl_NewIntObj((int) yyYear));
|
||||
@@ -1078,7 +1078,7 @@ TclClockOldscanObjCmd(
|
||||
Tcl_ListObjAppendElement(interp, result, Tcl_NewObj());
|
||||
}
|
||||
|
||||
resultElement = Tcl_NewObj();
|
||||
TclNewObj(resultElement);
|
||||
if (yyHaveZone) {
|
||||
Tcl_ListObjAppendElement(interp, resultElement,
|
||||
Tcl_NewIntObj((int) -yyTimezone));
|
||||
@@ -1087,7 +1087,7 @@ TclClockOldscanObjCmd(
|
||||
}
|
||||
Tcl_ListObjAppendElement(interp, result, resultElement);
|
||||
|
||||
resultElement = Tcl_NewObj();
|
||||
TclNewObj(resultElement);
|
||||
if (yyHaveRel) {
|
||||
Tcl_ListObjAppendElement(interp, resultElement,
|
||||
Tcl_NewIntObj((int) yyRelMonth));
|
||||
@@ -1098,7 +1098,7 @@ TclClockOldscanObjCmd(
|
||||
}
|
||||
Tcl_ListObjAppendElement(interp, result, resultElement);
|
||||
|
||||
resultElement = Tcl_NewObj();
|
||||
TcNewObj(resultElement);
|
||||
if (yyHaveDay && !yyHaveDate) {
|
||||
Tcl_ListObjAppendElement(interp, resultElement,
|
||||
Tcl_NewIntObj((int) yyDayOrdinal));
|
||||
@@ -1107,7 +1107,7 @@ TclClockOldscanObjCmd(
|
||||
}
|
||||
Tcl_ListObjAppendElement(interp, result, resultElement);
|
||||
|
||||
resultElement = Tcl_NewObj();
|
||||
TclNewObj(resultElement);
|
||||
if (yyHaveOrdinalMonth) {
|
||||
Tcl_ListObjAppendElement(interp, resultElement,
|
||||
Tcl_NewIntObj((int) yyMonthOrdinal));
|
||||
|
||||
+2
-2
@@ -287,9 +287,9 @@ static int WillRead(Channel *chanPtr);
|
||||
|
||||
#define IsBufferOverflowing(bufPtr) ((bufPtr)->nextAdded>(bufPtr)->bufLength)
|
||||
|
||||
#define InsertPoint(bufPtr) ((bufPtr)->buf + (bufPtr)->nextAdded)
|
||||
#define InsertPoint(bufPtr) (&(bufPtr)->buf[(bufPtr)->nextAdded])
|
||||
|
||||
#define RemovePoint(bufPtr) ((bufPtr)->buf + (bufPtr)->nextRemoved)
|
||||
#define RemovePoint(bufPtr) (&(bufPtr)->buf[(bufPtr)->nextRemoved])
|
||||
|
||||
/*
|
||||
* For working with channel state flag bits.
|
||||
|
||||
+5
-5
@@ -888,7 +888,7 @@ Tcl_ExecObjCmd(
|
||||
static const char *const options[] = {
|
||||
"-ignorestderr", "-keepnewline", "--", NULL
|
||||
};
|
||||
enum options {
|
||||
enum execOptionsEnum {
|
||||
EXEC_IGNORESTDERR, EXEC_KEEPNEWLINE, EXEC_LAST
|
||||
};
|
||||
|
||||
@@ -1470,7 +1470,7 @@ Tcl_SocketObjCmd(
|
||||
"-async", "-myaddr", "-myport", "-reuseaddr", "-reuseport", "-server",
|
||||
NULL
|
||||
};
|
||||
enum socketOptions {
|
||||
enum socketOptionsEnum {
|
||||
SKT_ASYNC, SKT_MYADDR, SKT_MYPORT, SKT_REUSEADDR, SKT_REUSEPORT,
|
||||
SKT_SERVER
|
||||
};
|
||||
@@ -1495,7 +1495,7 @@ Tcl_SocketObjCmd(
|
||||
TCL_EXACT, &optionIndex) != TCL_OK) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
switch ((enum socketOptions) optionIndex) {
|
||||
switch ((enum socketOptionsEnum) optionIndex) {
|
||||
case SKT_ASYNC:
|
||||
if (server == 1) {
|
||||
Tcl_SetObjResult(interp, Tcl_NewStringObj(
|
||||
@@ -1806,7 +1806,7 @@ ChanPendingObjCmd(
|
||||
Tcl_Channel chan;
|
||||
int index, mode;
|
||||
static const char *const options[] = {"input", "output", NULL};
|
||||
enum options {PENDING_INPUT, PENDING_OUTPUT};
|
||||
enum pendingOptionsEnum {PENDING_INPUT, PENDING_OUTPUT};
|
||||
|
||||
if (objc != 3) {
|
||||
Tcl_WrongNumArgs(interp, 1, objv, "mode channelId");
|
||||
@@ -1822,7 +1822,7 @@ ChanPendingObjCmd(
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
switch ((enum options) index) {
|
||||
switch ((enum pendingOptionsEnum) index) {
|
||||
case PENDING_INPUT:
|
||||
if (!(mode & TCL_READABLE)) {
|
||||
Tcl_SetObjResult(interp, Tcl_NewWideIntObj(-1));
|
||||
|
||||
+12
-9
@@ -1591,7 +1591,7 @@ ReflectSeekWide(
|
||||
|
||||
Tcl_Preserve(rcPtr);
|
||||
|
||||
offObj = Tcl_NewWideIntObj(offset);
|
||||
TclNewIntObj(offObj, offset);
|
||||
baseObj = Tcl_NewStringObj(
|
||||
(seekMode == SEEK_SET) ? "start" :
|
||||
(seekMode == SEEK_CUR) ? "current" : "end", -1);
|
||||
@@ -3052,7 +3052,7 @@ ForwardProc(
|
||||
TclNewIntObj(toReadObj, paramPtr->input.toRead);
|
||||
Tcl_IncrRefCount(toReadObj);
|
||||
|
||||
Tcl_Preserve(rcPtr);
|
||||
Tcl_Preserve(rcPtr);
|
||||
if (InvokeTclMethod(rcPtr, METH_READ, toReadObj, NULL, &resObj)!=TCL_OK){
|
||||
int code = ErrnoReturn(rcPtr, resObj);
|
||||
|
||||
@@ -3127,15 +3127,18 @@ ForwardProc(
|
||||
}
|
||||
|
||||
case ForwardedSeek: {
|
||||
Tcl_Obj *offObj = Tcl_NewWideIntObj(paramPtr->seek.offset);
|
||||
Tcl_Obj *baseObj = Tcl_NewStringObj(
|
||||
(paramPtr->seek.seekMode==SEEK_SET) ? "start" :
|
||||
(paramPtr->seek.seekMode==SEEK_CUR) ? "current" : "end", -1);
|
||||
Tcl_Obj *offObj;
|
||||
Tcl_Obj *baseObj;
|
||||
|
||||
Tcl_IncrRefCount(offObj);
|
||||
Tcl_IncrRefCount(baseObj);
|
||||
TclNewIntObj(offObj, paramPtr->seek.offset);
|
||||
baseObj = Tcl_NewStringObj(
|
||||
(paramPtr->seek.seekMode==SEEK_SET) ? "start" :
|
||||
(paramPtr->seek.seekMode==SEEK_CUR) ? "current" : "end", -1);
|
||||
|
||||
Tcl_Preserve(rcPtr);
|
||||
Tcl_IncrRefCount(offObj);
|
||||
Tcl_IncrRefCount(baseObj);
|
||||
|
||||
Tcl_Preserve(rcPtr);
|
||||
if (InvokeTclMethod(rcPtr, METH_SEEK, offObj, baseObj, &resObj)!=TCL_OK){
|
||||
ForwardSetObjError(paramPtr, resObj);
|
||||
paramPtr->seek.offset = -1;
|
||||
|
||||
+19
-19
@@ -1684,7 +1684,7 @@ Tcl_FSEvalFileEx(
|
||||
* Tilde-substitution is performed on this
|
||||
* pathname. */
|
||||
const char *encodingName) /* Either the name of an encoding or NULL to
|
||||
use the system encoding. */
|
||||
use the utf-8 encoding. */
|
||||
{
|
||||
int length, result = TCL_ERROR;
|
||||
Tcl_StatBuf statBuf;
|
||||
@@ -1722,16 +1722,16 @@ Tcl_FSEvalFileEx(
|
||||
|
||||
/*
|
||||
* If the encoding is specified, set the channel to that encoding.
|
||||
* Otherwise don't touch it, leaving things up to the system encoding. If
|
||||
* the encoding is unknown report an error.
|
||||
* Otherwise use utf-8. If the encoding is unknown report an error.
|
||||
*/
|
||||
|
||||
if (encodingName != NULL) {
|
||||
if (Tcl_SetChannelOption(interp, chan, "-encoding", encodingName)
|
||||
!= TCL_OK) {
|
||||
Tcl_Close(interp,chan);
|
||||
return result;
|
||||
}
|
||||
if (encodingName == NULL) {
|
||||
encodingName = "utf-8";
|
||||
}
|
||||
if (Tcl_SetChannelOption(interp, chan, "-encoding", encodingName)
|
||||
!= TCL_OK) {
|
||||
Tcl_Close(interp,chan);
|
||||
return result;
|
||||
}
|
||||
|
||||
TclNewObj(objPtr);
|
||||
@@ -1821,7 +1821,7 @@ TclNREvalFile(
|
||||
* evaluate. Tilde-substitution is performed on
|
||||
* this pathname. */
|
||||
const char *encodingName) /* The name of an encoding to use, or NULL to
|
||||
* use the system encoding. */
|
||||
* use the utf-8 encoding. */
|
||||
{
|
||||
Tcl_StatBuf statBuf;
|
||||
Tcl_Obj *oldScriptFile, *objPtr;
|
||||
@@ -1858,16 +1858,16 @@ TclNREvalFile(
|
||||
|
||||
/*
|
||||
* If the encoding is specified, set the channel to that encoding.
|
||||
* Otherwise don't touch it, leaving things up to the system encoding. If
|
||||
* the encoding is unknown report an error.
|
||||
* Otherwise use utf-8. If the encoding is unknown report an error.
|
||||
*/
|
||||
|
||||
if (encodingName != NULL) {
|
||||
if (Tcl_SetChannelOption(interp, chan, "-encoding", encodingName)
|
||||
!= TCL_OK) {
|
||||
Tcl_Close(interp,chan);
|
||||
return TCL_ERROR;
|
||||
}
|
||||
if (encodingName == NULL) {
|
||||
encodingName = "utf-8";
|
||||
}
|
||||
if (Tcl_SetChannelOption(interp, chan, "-encoding", encodingName)
|
||||
!= TCL_OK) {
|
||||
Tcl_Close(interp, chan);
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
TclNewObj(objPtr);
|
||||
@@ -3173,7 +3173,7 @@ Tcl_LoadFile(
|
||||
}
|
||||
|
||||
if (fsPtr->loadFileProc != NULL) {
|
||||
int retVal = ((Tcl_FSLoadFileProc2 *)(void *)(fsPtr->loadFileProc))
|
||||
retVal = ((Tcl_FSLoadFileProc2 *)(void *)(fsPtr->loadFileProc))
|
||||
(interp, pathPtr, handlePtr, &unloadProcPtr, flags);
|
||||
|
||||
if (retVal == TCL_OK) {
|
||||
|
||||
@@ -553,7 +553,7 @@ PrefixMatchObjCmd(
|
||||
static const char *const matchOptions[] = {
|
||||
"-error", "-exact", "-message", NULL
|
||||
};
|
||||
enum matchOptions {
|
||||
enum matchOptionsEnum {
|
||||
PRFMATCH_ERROR, PRFMATCH_EXACT, PRFMATCH_MESSAGE
|
||||
};
|
||||
|
||||
@@ -567,7 +567,7 @@ PrefixMatchObjCmd(
|
||||
&index) != TCL_OK) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
switch ((enum matchOptions) index) {
|
||||
switch ((enum matchOptionsEnum) index) {
|
||||
case PRFMATCH_EXACT:
|
||||
flags |= TCL_EXACT;
|
||||
break;
|
||||
|
||||
@@ -1413,4 +1413,9 @@ extern const TclIntStubs *tclIntStubsPtr;
|
||||
# define Tcl_StaticPackage (tclIntStubsPtr->tclStaticPackage)
|
||||
#endif
|
||||
|
||||
#undef TclGuessPackageName
|
||||
#ifndef TCL_NO_DEPRECATED
|
||||
# define TclGuessPackageName(fileName, pkgName) ((void)fileName,(void)pkgName,0)
|
||||
#endif
|
||||
|
||||
#endif /* _TCLINTDECLS */
|
||||
|
||||
+25
-14
@@ -619,32 +619,43 @@ NRInterpCmd(
|
||||
Tcl_Interp *childInterp;
|
||||
int index;
|
||||
static const char *const options[] = {
|
||||
"alias", "aliases", "bgerror", "cancel",
|
||||
"children", "create", "debug", "delete",
|
||||
"eval", "exists", "expose", "hide",
|
||||
"hidden", "issafe", "invokehidden",
|
||||
"limit", "marktrusted", "recursionlimit",
|
||||
"share", "slaves", "target", "transfer",
|
||||
NULL
|
||||
};
|
||||
static const char *const optionsNoSlaves[] = {
|
||||
"alias", "aliases", "bgerror", "cancel",
|
||||
"children", "create", "debug", "delete",
|
||||
"eval", "exists", "expose",
|
||||
"hide", "hidden", "issafe",
|
||||
"invokehidden", "limit", "marktrusted", "recursionlimit",
|
||||
"slaves", "share", "target", "transfer",
|
||||
NULL
|
||||
"share", "target", "transfer", NULL
|
||||
};
|
||||
enum option {
|
||||
enum interpOptionEnum {
|
||||
OPT_ALIAS, OPT_ALIASES, OPT_BGERROR, OPT_CANCEL,
|
||||
OPT_CHILDREN, OPT_CREATE, OPT_DEBUG, OPT_DELETE,
|
||||
OPT_EVAL, OPT_EXISTS, OPT_EXPOSE,
|
||||
OPT_HIDE, OPT_HIDDEN, OPT_ISSAFE,
|
||||
OPT_INVOKEHID, OPT_LIMIT, OPT_MARKTRUSTED,OPT_RECLIMIT,
|
||||
OPT_SLAVES, OPT_SHARE, OPT_TARGET, OPT_TRANSFER
|
||||
OPT_EVAL, OPT_EXISTS, OPT_EXPOSE, OPT_HIDE,
|
||||
OPT_HIDDEN, OPT_ISSAFE, OPT_INVOKEHID,
|
||||
OPT_LIMIT, OPT_MARKTRUSTED,OPT_RECLIMIT,
|
||||
OPT_SHARE, OPT_SLAVES, OPT_TARGET, OPT_TRANSFER
|
||||
};
|
||||
|
||||
if (objc < 2) {
|
||||
Tcl_WrongNumArgs(interp, 1, objv, "cmd ?arg ...?");
|
||||
return TCL_ERROR;
|
||||
}
|
||||
if (Tcl_GetIndexFromObj(interp, objv[1], options, "option", 0,
|
||||
&index) != TCL_OK) {
|
||||
if (Tcl_GetIndexFromObj(NULL, objv[1], options,
|
||||
"option", 0, &index) != TCL_OK) {
|
||||
/* Don't report the "slaves" option as possibility */
|
||||
Tcl_GetIndexFromObj(interp, objv[1], optionsNoSlaves,
|
||||
"option", 0, &index);
|
||||
return TCL_ERROR;
|
||||
}
|
||||
switch ((enum option) index) {
|
||||
switch ((enum interpOptionEnum)index) {
|
||||
case OPT_ALIAS: {
|
||||
Tcl_Interp *parentInterp;
|
||||
|
||||
@@ -697,7 +708,7 @@ NRInterpCmd(
|
||||
static const char *const cancelOptions[] = {
|
||||
"-unwind", "--", NULL
|
||||
};
|
||||
enum option {
|
||||
enum optionCancelEnum {
|
||||
OPT_UNWIND, OPT_LAST
|
||||
};
|
||||
|
||||
@@ -712,7 +723,7 @@ NRInterpCmd(
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
switch ((enum option) index) {
|
||||
switch ((enum optionCancelEnum) index) {
|
||||
case OPT_UNWIND:
|
||||
/*
|
||||
* The evaluation stack in the target interp is to be unwound.
|
||||
@@ -2551,7 +2562,7 @@ NRChildCmd(
|
||||
"issafe", "invokehidden", "limit", "marktrusted",
|
||||
"recursionlimit", NULL
|
||||
};
|
||||
enum options {
|
||||
enum childCmdOptionsEnum {
|
||||
OPT_ALIAS, OPT_ALIASES, OPT_BGERROR, OPT_DEBUG,
|
||||
OPT_EVAL, OPT_EXPOSE, OPT_HIDE, OPT_HIDDEN,
|
||||
OPT_ISSAFE, OPT_INVOKEHIDDEN, OPT_LIMIT, OPT_MARKTRUSTED,
|
||||
@@ -2571,7 +2582,7 @@ NRChildCmd(
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
switch ((enum options) index) {
|
||||
switch ((enum childCmdOptionsEnum) index) {
|
||||
case OPT_ALIAS:
|
||||
if (objc > 2) {
|
||||
if (objc == 3) {
|
||||
|
||||
+5
-5
@@ -1309,7 +1309,7 @@ ObjValue(
|
||||
memcpy(linkPtr->lastValue.aryPtr, linkPtr->addr, linkPtr->bytes);
|
||||
objv = (Tcl_Obj **)ckalloc(linkPtr->numElems * sizeof(Tcl_Obj *));
|
||||
for (i=0; i < linkPtr->numElems; i++) {
|
||||
objv[i] = Tcl_NewWideIntObj(linkPtr->lastValue.wPtr[i]);
|
||||
TclNewIntObj(objv[i], linkPtr->lastValue.wPtr[i]);
|
||||
}
|
||||
resultObj = Tcl_NewListObj(linkPtr->numElems, objv);
|
||||
ckfree(objv);
|
||||
@@ -1400,7 +1400,7 @@ ObjValue(
|
||||
memcpy(linkPtr->lastValue.aryPtr, linkPtr->addr, linkPtr->bytes);
|
||||
objv = (Tcl_Obj **)ckalloc(linkPtr->numElems * sizeof(Tcl_Obj *));
|
||||
for (i=0; i < linkPtr->numElems; i++) {
|
||||
objv[i] = Tcl_NewWideIntObj(linkPtr->lastValue.uiPtr[i]);
|
||||
TclNewIntObj(objv[i], linkPtr->lastValue.uiPtr[i]);
|
||||
}
|
||||
resultObj = Tcl_NewListObj(linkPtr->numElems, objv);
|
||||
ckfree(objv);
|
||||
@@ -1414,7 +1414,7 @@ ObjValue(
|
||||
memcpy(linkPtr->lastValue.aryPtr, linkPtr->addr, linkPtr->bytes);
|
||||
objv = (Tcl_Obj **)ckalloc(linkPtr->numElems * sizeof(Tcl_Obj *));
|
||||
for (i=0; i < linkPtr->numElems; i++) {
|
||||
objv[i] = Tcl_NewWideIntObj(linkPtr->lastValue.lPtr[i]);
|
||||
TclNewIntObj(objv[i], linkPtr->lastValue.lPtr[i]);
|
||||
}
|
||||
resultObj = Tcl_NewListObj(linkPtr->numElems, objv);
|
||||
ckfree(objv);
|
||||
@@ -1427,7 +1427,7 @@ ObjValue(
|
||||
memcpy(linkPtr->lastValue.aryPtr, linkPtr->addr, linkPtr->bytes);
|
||||
objv = (Tcl_Obj **)ckalloc(linkPtr->numElems * sizeof(Tcl_Obj *));
|
||||
for (i=0; i < linkPtr->numElems; i++) {
|
||||
objv[i] = Tcl_NewWideIntObj(linkPtr->lastValue.ulPtr[i]);
|
||||
TclNewIntObj(objv[i], linkPtr->lastValue.ulPtr[i]);
|
||||
}
|
||||
resultObj = Tcl_NewListObj(linkPtr->numElems, objv);
|
||||
ckfree(objv);
|
||||
@@ -1454,7 +1454,7 @@ ObjValue(
|
||||
memcpy(linkPtr->lastValue.aryPtr, linkPtr->addr, linkPtr->bytes);
|
||||
objv = (Tcl_Obj **)ckalloc(linkPtr->numElems * sizeof(Tcl_Obj *));
|
||||
for (i=0; i < linkPtr->numElems; i++) {
|
||||
objv[i] = Tcl_NewWideIntObj((Tcl_WideInt)
|
||||
TclNewIntObj(objv[i], (Tcl_WideInt)
|
||||
linkPtr->lastValue.uwPtr[i]);
|
||||
}
|
||||
resultObj = Tcl_NewListObj(linkPtr->numElems, objv);
|
||||
|
||||
+48
-65
@@ -137,7 +137,7 @@ Tcl_LoadObjCmd(
|
||||
static const char *const options[] = {
|
||||
"-global", "-lazy", "--", NULL
|
||||
};
|
||||
enum options {
|
||||
enum loadOptionsEnum {
|
||||
LOAD_GLOBAL, LOAD_LAZY, LOAD_LAST
|
||||
};
|
||||
|
||||
@@ -150,9 +150,9 @@ Tcl_LoadObjCmd(
|
||||
return TCL_ERROR;
|
||||
}
|
||||
++objv; --objc;
|
||||
if (LOAD_GLOBAL == (enum options) index) {
|
||||
if (LOAD_GLOBAL == (enum loadOptionsEnum) index) {
|
||||
flags |= TCL_LOAD_GLOBAL;
|
||||
} else if (LOAD_LAZY == (enum options) index) {
|
||||
} else if (LOAD_LAZY == (enum loadOptionsEnum) index) {
|
||||
flags |= TCL_LOAD_LAZY;
|
||||
} else {
|
||||
break;
|
||||
@@ -302,60 +302,55 @@ Tcl_LoadObjCmd(
|
||||
if (packageName != NULL) {
|
||||
Tcl_DStringAppend(&pkgName, packageName, -1);
|
||||
} else {
|
||||
int retc;
|
||||
Tcl_Obj *splitPtr, *pkgGuessPtr;
|
||||
int pElements;
|
||||
const char *pkgGuess;
|
||||
|
||||
/*
|
||||
* Threading note - this call used to be protected by a mutex.
|
||||
*/
|
||||
|
||||
retc = TclGuessPackageName(fullFileName, &pkgName);
|
||||
if (!retc) {
|
||||
Tcl_Obj *splitPtr, *pkgGuessPtr;
|
||||
int pElements;
|
||||
const char *pkgGuess;
|
||||
/*
|
||||
* The platform-specific code couldn't figure out the module
|
||||
* name. Make a guess by taking the last element of the file
|
||||
* name, stripping off any leading "lib", and then using all
|
||||
* of the alphabetic and underline characters that follow
|
||||
* that.
|
||||
*/
|
||||
|
||||
/*
|
||||
* The platform-specific code couldn't figure out the module
|
||||
* name. Make a guess by taking the last element of the file
|
||||
* name, stripping off any leading "lib", and then using all
|
||||
* of the alphabetic and underline characters that follow
|
||||
* that.
|
||||
*/
|
||||
|
||||
splitPtr = Tcl_FSSplitPath(objv[1], &pElements);
|
||||
Tcl_ListObjIndex(NULL, splitPtr, pElements -1, &pkgGuessPtr);
|
||||
pkgGuess = Tcl_GetString(pkgGuessPtr);
|
||||
if ((pkgGuess[0] == 'l') && (pkgGuess[1] == 'i')
|
||||
&& (pkgGuess[2] == 'b')) {
|
||||
pkgGuess += 3;
|
||||
}
|
||||
#ifdef __CYGWIN__
|
||||
if ((pkgGuess[0] == 'c') && (pkgGuess[1] == 'y')
|
||||
&& (pkgGuess[2] == 'g')) {
|
||||
pkgGuess += 3;
|
||||
}
|
||||
#endif /* __CYGWIN__ */
|
||||
for (p = pkgGuess; *p != 0; p += offset) {
|
||||
offset = TclUtfToUniChar(p, &ch);
|
||||
if ((ch > 0x100)
|
||||
|| !(isalpha(UCHAR(ch)) /* INTL: ISO only */
|
||||
|| (UCHAR(ch) == '_'))) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (p == pkgGuess) {
|
||||
Tcl_DecrRefCount(splitPtr);
|
||||
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
|
||||
"couldn't figure out package name for %s",
|
||||
fullFileName));
|
||||
Tcl_SetErrorCode(interp, "TCL", "OPERATION", "LOAD",
|
||||
"WHATPACKAGE", NULL);
|
||||
code = TCL_ERROR;
|
||||
goto done;
|
||||
}
|
||||
Tcl_DStringAppend(&pkgName, pkgGuess, p - pkgGuess);
|
||||
Tcl_DecrRefCount(splitPtr);
|
||||
splitPtr = Tcl_FSSplitPath(objv[1], &pElements);
|
||||
Tcl_ListObjIndex(NULL, splitPtr, pElements -1, &pkgGuessPtr);
|
||||
pkgGuess = Tcl_GetString(pkgGuessPtr);
|
||||
if ((pkgGuess[0] == 'l') && (pkgGuess[1] == 'i')
|
||||
&& (pkgGuess[2] == 'b')) {
|
||||
pkgGuess += 3;
|
||||
}
|
||||
#ifdef __CYGWIN__
|
||||
else if ((pkgGuess[0] == 'c') && (pkgGuess[1] == 'y')
|
||||
&& (pkgGuess[2] == 'g')) {
|
||||
pkgGuess += 3;
|
||||
}
|
||||
#endif /* __CYGWIN__ */
|
||||
for (p = pkgGuess; *p != 0; p += offset) {
|
||||
offset = TclUtfToUniChar(p, &ch);
|
||||
if ((ch > 0x100)
|
||||
|| !(isalpha(UCHAR(ch)) /* INTL: ISO only */
|
||||
|| (UCHAR(ch) == '_'))) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (p == pkgGuess) {
|
||||
Tcl_DecrRefCount(splitPtr);
|
||||
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
|
||||
"couldn't figure out package name for %s",
|
||||
fullFileName));
|
||||
Tcl_SetErrorCode(interp, "TCL", "OPERATION", "LOAD",
|
||||
"WHATPACKAGE", NULL);
|
||||
code = TCL_ERROR;
|
||||
goto done;
|
||||
}
|
||||
Tcl_DStringAppend(&pkgName, pkgGuess, p - pkgGuess);
|
||||
Tcl_DecrRefCount(splitPtr);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -559,7 +554,7 @@ Tcl_UnloadObjCmd(
|
||||
static const char *const options[] = {
|
||||
"-nocomplain", "-keeplibrary", "--", NULL
|
||||
};
|
||||
enum options {
|
||||
enum unloadOptionsEnum {
|
||||
UNLOAD_NOCOMPLAIN, UNLOAD_KEEPLIB, UNLOAD_LAST
|
||||
};
|
||||
|
||||
@@ -584,7 +579,7 @@ Tcl_UnloadObjCmd(
|
||||
break;
|
||||
}
|
||||
}
|
||||
switch (index) {
|
||||
switch ((enum unloadOptionsEnum)index) {
|
||||
case UNLOAD_NOCOMPLAIN: /* -nocomplain */
|
||||
complain = 0;
|
||||
break;
|
||||
@@ -1025,7 +1020,7 @@ Tcl_StaticPackage(
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*
|
||||
* TclGetLoadedPackages, TclGetLoadedPackagesEx --
|
||||
* TclGetLoadedPackagesEx --
|
||||
*
|
||||
* This function returns information about all of the files that are
|
||||
* loaded (either in a particular interpreter, or for all interpreters).
|
||||
@@ -1043,18 +1038,6 @@ Tcl_StaticPackage(
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
int
|
||||
TclGetLoadedPackages(
|
||||
Tcl_Interp *interp, /* Interpreter in which to return information
|
||||
* or error message. */
|
||||
const char *targetName) /* Name of target interpreter or NULL. If
|
||||
* NULL, return info about all interps;
|
||||
* otherwise, just return info about this
|
||||
* interpreter. */
|
||||
{
|
||||
return TclGetLoadedPackagesEx(interp, targetName, NULL);
|
||||
}
|
||||
|
||||
int
|
||||
TclGetLoadedPackagesEx(
|
||||
Tcl_Interp *interp, /* Interpreter in which to return information
|
||||
|
||||
@@ -53,36 +53,6 @@ TclpDlopen(
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
*
|
||||
* TclGuessPackageName --
|
||||
*
|
||||
* If the "load" command is invoked without providing a package name,
|
||||
* this procedure is invoked to try to figure it out.
|
||||
*
|
||||
* Results:
|
||||
* Always returns 0 to indicate that we couldn't figure out a package
|
||||
* name; generic code will then try to guess the package from the file
|
||||
* name. A return value of 1 would have meant that we figured out the
|
||||
* package name and put it in bufPtr.
|
||||
*
|
||||
* Side effects:
|
||||
* None.
|
||||
*
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
int
|
||||
TclGuessPackageName(
|
||||
const char *fileName, /* Name of file containing package (already
|
||||
* translated to local form if needed). */
|
||||
Tcl_DString *bufPtr) /* Initialized empty dstring. Append package
|
||||
* name to this if possible. */
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* These functions are fallbacks if we somehow determine that the platform can
|
||||
* do loading from memory but the user wishes to disable it. They just report
|
||||
|
||||
+2
-2
@@ -43,7 +43,7 @@
|
||||
# define _tcscmp strcmp
|
||||
#endif
|
||||
|
||||
static inline Tcl_Obj *
|
||||
static Tcl_Obj *
|
||||
NewNativeObj(
|
||||
TCHAR *string)
|
||||
{
|
||||
@@ -53,7 +53,7 @@ NewNativeObj(
|
||||
Tcl_DStringInit(&ds);
|
||||
Tcl_WCharToUtfDString(string, -1, &ds);
|
||||
#else
|
||||
Tcl_ExternalToUtfDString(NULL, (char *) string, -1, &ds);
|
||||
Tcl_ExternalToUtfDString(NULL, (char *)string, -1, &ds);
|
||||
#endif
|
||||
return TclDStringToObj(&ds);
|
||||
}
|
||||
|
||||
+1
-1
@@ -161,7 +161,7 @@ typedef struct PendingObjData {
|
||||
static PendingObjData pendingObjData;
|
||||
#define ObjInitDeletionContext(contextPtr) \
|
||||
PendingObjData *const contextPtr = &pendingObjData
|
||||
#elif HAVE_FAST_TSD
|
||||
#elif defined(HAVE_FAST_TSD)
|
||||
static __thread PendingObjData pendingObjData;
|
||||
#define ObjInitDeletionContext(contextPtr) \
|
||||
PendingObjData *const contextPtr = &pendingObjData
|
||||
|
||||
+2
-2
@@ -119,7 +119,7 @@ const char tclCharTypeTable[] = {
|
||||
* Prototypes for local functions defined in this file:
|
||||
*/
|
||||
|
||||
static inline int CommandComplete(const char *script, int numBytes);
|
||||
static int CommandComplete(const char *script, int numBytes);
|
||||
static int ParseComment(const char *src, int numBytes,
|
||||
Tcl_Parse *parsePtr);
|
||||
static int ParseTokens(const char *src, int numBytes, int mask,
|
||||
@@ -2396,7 +2396,7 @@ TclSubstTokens(
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
static inline int
|
||||
static int
|
||||
CommandComplete(
|
||||
const char *script, /* Script to check. */
|
||||
int numBytes) /* Number of bytes in script. */
|
||||
|
||||
+3
-3
@@ -1073,7 +1073,7 @@ TclNRPackageObjCmd(
|
||||
"present", "provide", "require", "unknown", "vcompare",
|
||||
"versions", "vsatisfies", NULL
|
||||
};
|
||||
enum pkgOptions {
|
||||
enum pkgOptionsEnum {
|
||||
PKG_FILES, PKG_FORGET, PKG_IFNEEDED, PKG_NAMES, PKG_PREFER,
|
||||
PKG_PRESENT, PKG_PROVIDE, PKG_REQUIRE, PKG_UNKNOWN, PKG_VCOMPARE,
|
||||
PKG_VERSIONS, PKG_VSATISFIES
|
||||
@@ -1099,7 +1099,7 @@ TclNRPackageObjCmd(
|
||||
&optionIndex) != TCL_OK) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
switch ((enum pkgOptions) optionIndex) {
|
||||
switch ((enum pkgOptionsEnum) optionIndex) {
|
||||
case PKG_FILES: {
|
||||
PkgFiles *pkgFiles;
|
||||
|
||||
@@ -1368,9 +1368,9 @@ TclNRPackageObjCmd(
|
||||
newObjvPtr, NULL);
|
||||
return TCL_OK;
|
||||
} else {
|
||||
int i, newobjc = objc-3;
|
||||
Tcl_Obj *const *newobjv = objv + 3;
|
||||
|
||||
newobjc = objc - 3;
|
||||
if (CheckAllRequirements(interp, objc-3, objv+3) != TCL_OK) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
@@ -35,6 +35,10 @@
|
||||
|
||||
#include "tclInt.h"
|
||||
|
||||
#ifndef TCL_CFGVAL_ENCODING
|
||||
# define TCL_CFGVAL_ENCODING "utf-8"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Use C preprocessor statements to define the various values for the embedded
|
||||
* configuration information.
|
||||
|
||||
@@ -472,7 +472,7 @@ ProcessStatusObjCmd(
|
||||
static const char *const switches[] = {
|
||||
"-wait", "--", NULL
|
||||
};
|
||||
enum switches {
|
||||
enum switchesEnum {
|
||||
STATUS_WAIT, STATUS_LAST
|
||||
};
|
||||
|
||||
@@ -485,7 +485,7 @@ ProcessStatusObjCmd(
|
||||
return TCL_ERROR;
|
||||
}
|
||||
++objv; --objc;
|
||||
if (STATUS_WAIT == (enum switches) index) {
|
||||
if (STATUS_WAIT == (enum switchesEnum) index) {
|
||||
options = 0;
|
||||
} else {
|
||||
break;
|
||||
|
||||
+4
-4
@@ -841,19 +841,19 @@ SetupAppendBuffer(
|
||||
|
||||
totalSpace = newSpace + iPtr->appendUsed;
|
||||
if (totalSpace >= iPtr->appendAvl) {
|
||||
char *newSpace;
|
||||
char *newSpacePtr;
|
||||
|
||||
if (totalSpace < 100) {
|
||||
totalSpace = 200;
|
||||
} else {
|
||||
totalSpace *= 2;
|
||||
}
|
||||
newSpace = (char *)ckalloc(totalSpace);
|
||||
strcpy(newSpace, iPtr->result);
|
||||
newSpacePtr = (char *)ckalloc(totalSpace);
|
||||
strcpy(newSpacePtr, iPtr->result);
|
||||
if (iPtr->appendResult != NULL) {
|
||||
ckfree(iPtr->appendResult);
|
||||
}
|
||||
iPtr->appendResult = newSpace;
|
||||
iPtr->appendResult = newSpacePtr;
|
||||
iPtr->appendAvl = totalSpace;
|
||||
} else if (iPtr->result != iPtr->appendResult) {
|
||||
strcpy(iPtr->appendResult, iPtr->result);
|
||||
|
||||
+9
-9
@@ -716,7 +716,7 @@ Tcl_ScanObjCmd(
|
||||
switch (ch) {
|
||||
case 'n':
|
||||
if (!(flags & SCAN_SUPPRESS)) {
|
||||
objPtr = Tcl_NewWideIntObj(string - baseString);
|
||||
TclNewIntObj(objPtr, string - baseString);
|
||||
Tcl_IncrRefCount(objPtr);
|
||||
CLANG_ASSERT(objs);
|
||||
objs[objIndex++] = objPtr;
|
||||
@@ -879,7 +879,7 @@ Tcl_ScanObjCmd(
|
||||
offset = TclUtfToUCS4(string, &i);
|
||||
string += offset;
|
||||
if (!(flags & SCAN_SUPPRESS)) {
|
||||
objPtr = Tcl_NewWideIntObj(i);
|
||||
TclNewIntObj(objPtr, i);
|
||||
Tcl_IncrRefCount(objPtr);
|
||||
CLANG_ASSERT(objs);
|
||||
objs[objIndex++] = objPtr;
|
||||
@@ -890,7 +890,7 @@ Tcl_ScanObjCmd(
|
||||
/*
|
||||
* Scan an unsigned or signed integer.
|
||||
*/
|
||||
objPtr = Tcl_NewWideIntObj(0);
|
||||
TclNewIntObj(objPtr, 0);
|
||||
Tcl_IncrRefCount(objPtr);
|
||||
if (width == 0) {
|
||||
width = ~0;
|
||||
@@ -937,16 +937,16 @@ Tcl_ScanObjCmd(
|
||||
} else if (flags & SCAN_BIG) {
|
||||
if (flags & SCAN_UNSIGNED) {
|
||||
mp_int big;
|
||||
int code = Tcl_GetBignumFromObj(interp, objPtr, &big);
|
||||
int res = Tcl_GetBignumFromObj(interp, objPtr, &big);
|
||||
|
||||
if (code == TCL_OK) {
|
||||
if (res == TCL_OK) {
|
||||
if (mp_isneg(&big)) {
|
||||
code = TCL_ERROR;
|
||||
res = TCL_ERROR;
|
||||
}
|
||||
mp_clear(&big);
|
||||
}
|
||||
|
||||
if (code == TCL_ERROR) {
|
||||
if (res == TCL_ERROR) {
|
||||
if (objs != NULL) {
|
||||
ckfree(objs);
|
||||
}
|
||||
@@ -1089,7 +1089,7 @@ Tcl_ScanObjCmd(
|
||||
if (code == TCL_OK) {
|
||||
if (underflow && (nconversions == 0)) {
|
||||
if (numVars) {
|
||||
TclNewIntObj(objPtr, -1);
|
||||
TclNewIntObj(objPtr, TCL_INDEX_NONE);
|
||||
} else {
|
||||
if (objPtr) {
|
||||
Tcl_SetListObj(objPtr, 0, NULL);
|
||||
@@ -1098,7 +1098,7 @@ Tcl_ScanObjCmd(
|
||||
}
|
||||
}
|
||||
} else if (numVars) {
|
||||
objPtr = Tcl_NewWideIntObj(result);
|
||||
TclNewIntObj(objPtr, result);
|
||||
}
|
||||
Tcl_SetObjResult(interp, objPtr);
|
||||
}
|
||||
|
||||
+30
-27
@@ -2178,15 +2178,15 @@ Tcl_AppendFormatToObj(
|
||||
const char *bytes;
|
||||
|
||||
if (useShort) {
|
||||
pure = Tcl_NewWideIntObj(s);
|
||||
TclNewIntObj(pure, s);
|
||||
#ifndef TCL_WIDE_INT_IS_LONG
|
||||
} else if (useWide) {
|
||||
pure = Tcl_NewWideIntObj(w);
|
||||
TclNewIntObj(pure, w);
|
||||
#endif
|
||||
} else if (useBig) {
|
||||
pure = Tcl_NewBignumObj(&big);
|
||||
} else {
|
||||
pure = Tcl_NewWideIntObj(l);
|
||||
TclNewIntObj(pure, l);
|
||||
}
|
||||
Tcl_IncrRefCount(pure);
|
||||
bytes = TclGetStringFromObj(pure, &length);
|
||||
@@ -2443,10 +2443,10 @@ Tcl_AppendFormatToObj(
|
||||
goto errorMsg;
|
||||
}
|
||||
if (ch == 'A') {
|
||||
char *p = TclGetString(segment) + 1;
|
||||
*p = 'x';
|
||||
p = strchr(p, 'P');
|
||||
if (p) *p = 'p';
|
||||
char *q = TclGetString(segment) + 1;
|
||||
*q = 'x';
|
||||
q = strchr(q, 'P');
|
||||
if (q) *q = 'p';
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -2543,8 +2543,9 @@ Tcl_Format(
|
||||
Tcl_Obj *const objv[])
|
||||
{
|
||||
int result;
|
||||
Tcl_Obj *objPtr = Tcl_NewObj();
|
||||
Tcl_Obj *objPtr;
|
||||
|
||||
TclNewObj(objPtr);
|
||||
result = Tcl_AppendFormatToObj(interp, objPtr, format, objc, objv);
|
||||
if (result != TCL_OK) {
|
||||
Tcl_DecrRefCount(objPtr);
|
||||
@@ -2572,9 +2573,10 @@ AppendPrintfToObjVA(
|
||||
va_list argList)
|
||||
{
|
||||
int code, objc;
|
||||
Tcl_Obj **objv, *list = Tcl_NewObj();
|
||||
Tcl_Obj **objv, *list;
|
||||
const char *p;
|
||||
|
||||
TclNewObj(list);
|
||||
p = format;
|
||||
Tcl_IncrRefCount(list);
|
||||
while (*p != '\0') {
|
||||
@@ -2788,8 +2790,9 @@ Tcl_ObjPrintf(
|
||||
...)
|
||||
{
|
||||
va_list argList;
|
||||
Tcl_Obj *objPtr = Tcl_NewObj();
|
||||
Tcl_Obj *objPtr;
|
||||
|
||||
TclNewObj(objPtr);
|
||||
va_start(argList, format);
|
||||
AppendPrintfToObjVA(objPtr, format, argList);
|
||||
va_end(argList);
|
||||
@@ -3410,7 +3413,7 @@ TclStringCmp(
|
||||
if (nocase) {
|
||||
s1 = (char *) Tcl_GetUnicodeFromObj(value1Ptr, &s1len);
|
||||
s2 = (char *) Tcl_GetUnicodeFromObj(value2Ptr, &s2len);
|
||||
memCmpFn = (memCmpFn_t)Tcl_UniCharNcasecmp;
|
||||
memCmpFn = (memCmpFn_t)(void *)Tcl_UniCharNcasecmp;
|
||||
} else {
|
||||
s1len = Tcl_GetCharLength(value1Ptr);
|
||||
s2len = Tcl_GetCharLength(value2Ptr);
|
||||
@@ -3435,7 +3438,7 @@ TclStringCmp(
|
||||
s1len *= sizeof(Tcl_UniChar);
|
||||
s2len *= sizeof(Tcl_UniChar);
|
||||
} else {
|
||||
memCmpFn = (memCmpFn_t) Tcl_UniCharNcmp;
|
||||
memCmpFn = (memCmpFn_t)(void *)Tcl_UniCharNcmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3493,11 +3496,11 @@ TclStringCmp(
|
||||
*/
|
||||
|
||||
if ((reqlength < 0) && !nocase) {
|
||||
memCmpFn = (memCmpFn_t) TclpUtfNcmp2;
|
||||
memCmpFn = (memCmpFn_t)(void *)TclpUtfNcmp2;
|
||||
} else {
|
||||
s1len = Tcl_NumUtfChars(s1, s1len);
|
||||
s2len = Tcl_NumUtfChars(s2, s2len);
|
||||
memCmpFn = (memCmpFn_t)
|
||||
memCmpFn = (memCmpFn_t)(void *)
|
||||
(nocase ? Tcl_UtfNcasecmp : Tcl_UtfNcmp);
|
||||
}
|
||||
}
|
||||
@@ -3561,7 +3564,7 @@ TclStringFirst(
|
||||
int lh, ln = Tcl_GetCharLength(needle);
|
||||
Tcl_Obj *result;
|
||||
int value = -1;
|
||||
Tcl_UniChar *check, *end, *uh, *un;
|
||||
Tcl_UniChar *checkStr, *endStr, *uh, *un;
|
||||
|
||||
if (start < 0) {
|
||||
start = 0;
|
||||
@@ -3627,12 +3630,12 @@ TclStringFirst(
|
||||
/* Don't start the loop if there cannot be a valid answer */
|
||||
goto firstEnd;
|
||||
}
|
||||
end = uh + lh;
|
||||
endStr = uh + lh;
|
||||
|
||||
for (check = uh + start; check + ln <= end; check++) {
|
||||
if ((*check == *un) && (0 ==
|
||||
memcmp(check + 1, un + 1, (ln-1) * sizeof(Tcl_UniChar)))) {
|
||||
value = (check - uh);
|
||||
for (checkStr = uh + start; checkStr + ln <= endStr; checkStr++) {
|
||||
if ((*checkStr == *un) && (0 ==
|
||||
memcmp(checkStr + 1, un + 1, (ln-1) * sizeof(Tcl_UniChar)))) {
|
||||
value = (checkStr - uh);
|
||||
goto firstEnd;
|
||||
}
|
||||
}
|
||||
@@ -3668,7 +3671,7 @@ TclStringLast(
|
||||
int lh, ln = Tcl_GetCharLength(needle);
|
||||
Tcl_Obj *result;
|
||||
int value = -1;
|
||||
Tcl_UniChar *check, *uh, *un;
|
||||
Tcl_UniChar *checkStr, *uh, *un;
|
||||
|
||||
if (ln == 0) {
|
||||
/*
|
||||
@@ -3714,14 +3717,14 @@ TclStringLast(
|
||||
/* Don't start the loop if there cannot be a valid answer */
|
||||
goto lastEnd;
|
||||
}
|
||||
check = uh + last + 1 - ln;
|
||||
while (check >= uh) {
|
||||
if ((*check == un[0])
|
||||
&& (0 == memcmp(check+1, un+1, (ln-1)*sizeof(Tcl_UniChar)))) {
|
||||
value = (check - uh);
|
||||
checkStr = uh + last + 1 - ln;
|
||||
while (checkStr >= uh) {
|
||||
if ((*checkStr == un[0])
|
||||
&& (0 == memcmp(checkStr+1, un+1, (ln-1)*sizeof(Tcl_UniChar)))) {
|
||||
value = (checkStr - uh);
|
||||
goto lastEnd;
|
||||
}
|
||||
check--;
|
||||
checkStr--;
|
||||
}
|
||||
lastEnd:
|
||||
TclNewIntObj(result, value);
|
||||
|
||||
@@ -67,6 +67,8 @@
|
||||
#undef TclWinNToHS
|
||||
#undef TclStaticPackage
|
||||
#undef Tcl_BackgroundError
|
||||
#undef TclGuessPackageName
|
||||
#undef TclGetLoadedPackages
|
||||
#define TclStaticPackage Tcl_StaticPackage
|
||||
#undef Tcl_UniCharToUtfDString
|
||||
#undef Tcl_UtfToUniCharDString
|
||||
@@ -261,8 +263,28 @@ mp_err TclBN_mp_mul_d(const mp_int *a, unsigned int b, mp_int *c) {
|
||||
# define Tcl_ChannelCloseProc 0
|
||||
# define Tcl_Close 0
|
||||
# define Tcl_MacOSXOpenBundleResources 0
|
||||
# define TclGuessPackageName 0
|
||||
# define TclGetLoadedPackages 0
|
||||
#else
|
||||
|
||||
#define TclGuessPackageName guessPackageName
|
||||
static int TclGuessPackageName(
|
||||
TCL_UNUSED(const char *),
|
||||
TCL_UNUSED(Tcl_DString *)) {
|
||||
return 0;
|
||||
}
|
||||
#define TclGetLoadedPackages getLoadedPackages
|
||||
static int TclGetLoadedPackages(
|
||||
Tcl_Interp *interp, /* Interpreter in which to return information
|
||||
* or error message. */
|
||||
const char *targetName) /* Name of target interpreter or NULL. If
|
||||
* NULL, return info about all interps;
|
||||
* otherwise, just return info about this
|
||||
* interpreter. */
|
||||
{
|
||||
return TclGetLoadedPackagesEx(interp, targetName, NULL);
|
||||
}
|
||||
|
||||
mp_err TclBN_mp_div_3(const mp_int *a, mp_int *c, unsigned int *d) {
|
||||
mp_digit d2;
|
||||
mp_err result = mp_div_d(a, 3, c, &d2);
|
||||
|
||||
+4
-10
@@ -3206,7 +3206,7 @@ TestlinkarrayCmd(
|
||||
static const char *LinkOption[] = {
|
||||
"update", "remove", "create", NULL
|
||||
};
|
||||
enum LinkOption { LINK_UPDATE, LINK_REMOVE, LINK_CREATE };
|
||||
enum LinkOptionEnum { LINK_UPDATE, LINK_REMOVE, LINK_CREATE };
|
||||
static const char *LinkType[] = {
|
||||
"char", "uchar", "short", "ushort", "int", "uint", "long", "ulong",
|
||||
"wide", "uwide", "float", "double", "string", "char*", "binary", NULL
|
||||
@@ -3231,7 +3231,7 @@ TestlinkarrayCmd(
|
||||
&optionIndex) != TCL_OK) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
switch ((enum LinkOption) optionIndex) {
|
||||
switch ((enum LinkOptionEnum) optionIndex) {
|
||||
case LINK_UPDATE:
|
||||
for (i=2; i<objc; i++) {
|
||||
Tcl_UpdateLinkedVar(interp, Tcl_GetString(objv[i]));
|
||||
@@ -3797,7 +3797,7 @@ TestregexpObjCmd(
|
||||
"-xflags",
|
||||
"--", NULL
|
||||
};
|
||||
enum options {
|
||||
enum optionsEnum {
|
||||
REGEXP_INDICES, REGEXP_NOCASE, REGEXP_ABOUT, REGEXP_EXPANDED,
|
||||
REGEXP_MULTI, REGEXP_NOCROSS, REGEXP_NEWL,
|
||||
REGEXP_XFLAGS,
|
||||
@@ -3822,7 +3822,7 @@ TestregexpObjCmd(
|
||||
&index) != TCL_OK) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
switch ((enum options) index) {
|
||||
switch ((enum optionsEnum) index) {
|
||||
case REGEXP_INDICES:
|
||||
indices = 1;
|
||||
break;
|
||||
@@ -7488,8 +7488,6 @@ TestconcatobjCmd(
|
||||
"\n\t* (e) concatObj does not have refCount 0", NULL);
|
||||
}
|
||||
if (concatPtr == tmpPtr) {
|
||||
int len;
|
||||
|
||||
result = TCL_ERROR;
|
||||
Tcl_AppendResult(interp, "\n\t* (e) concatObj is not a new obj ",
|
||||
NULL);
|
||||
@@ -7520,8 +7518,6 @@ TestconcatobjCmd(
|
||||
"\n\t* (f) concatObj does not have refCount 0", NULL);
|
||||
}
|
||||
if (concatPtr == tmpPtr) {
|
||||
int len;
|
||||
|
||||
result = TCL_ERROR;
|
||||
Tcl_AppendResult(interp, "\n\t* (f) concatObj is not a new obj ",
|
||||
NULL);
|
||||
@@ -7553,8 +7549,6 @@ TestconcatobjCmd(
|
||||
"\n\t* (g) concatObj does not have refCount 0", NULL);
|
||||
}
|
||||
if (concatPtr == tmpPtr) {
|
||||
int len;
|
||||
|
||||
result = TCL_ERROR;
|
||||
Tcl_AppendResult(interp, "\n\t* (g) concatObj is not a new obj ",
|
||||
NULL);
|
||||
|
||||
+1
-1
@@ -792,7 +792,7 @@ Tcl_AfterObjCmd(
|
||||
static const char *const afterSubCmds[] = {
|
||||
"cancel", "idle", "info", NULL
|
||||
};
|
||||
enum afterSubCmds {AFTER_CANCEL, AFTER_IDLE, AFTER_INFO};
|
||||
enum afterSubCmdsEnum {AFTER_CANCEL, AFTER_IDLE, AFTER_INFO};
|
||||
ThreadSpecificData *tsdPtr = InitTimer();
|
||||
|
||||
if (objc < 2) {
|
||||
|
||||
+3
-4
@@ -202,7 +202,7 @@ Tcl_TraceObjCmd(
|
||||
NULL
|
||||
};
|
||||
/* 'OLD' options are pre-Tcl-8.4 style */
|
||||
enum traceOptions {
|
||||
enum traceOptionsEnum {
|
||||
TRACE_ADD, TRACE_INFO, TRACE_REMOVE,
|
||||
#ifndef TCL_REMOVE_OBSOLETE_TRACES
|
||||
TRACE_OLD_VARIABLE, TRACE_OLD_VDELETE, TRACE_OLD_VINFO
|
||||
@@ -218,7 +218,7 @@ Tcl_TraceObjCmd(
|
||||
&optionIndex) != TCL_OK) {
|
||||
return TCL_ERROR;
|
||||
}
|
||||
switch ((enum traceOptions) optionIndex) {
|
||||
switch ((enum traceOptionsEnum) optionIndex) {
|
||||
case TRACE_ADD:
|
||||
case TRACE_REMOVE: {
|
||||
/*
|
||||
@@ -1177,7 +1177,7 @@ Tcl_UntraceCommand(
|
||||
CommandTrace *tracePtr;
|
||||
CommandTrace *prevPtr;
|
||||
Command *cmdPtr;
|
||||
Interp *iPtr = (Interp *) interp;
|
||||
Interp *iPtr = (Interp *)interp;
|
||||
ActiveCommandTrace *activePtr;
|
||||
int hasExecTraces = 0;
|
||||
|
||||
@@ -1252,7 +1252,6 @@ Tcl_UntraceCommand(
|
||||
*/
|
||||
|
||||
if (cmdPtr->compileProc != NULL) {
|
||||
Interp *iPtr = (Interp *) interp;
|
||||
iPtr->compileEpoch++;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -3757,7 +3757,7 @@ GetEndOffsetFromObj(
|
||||
if (*bytes != 'e') {
|
||||
int numType;
|
||||
const char *opPtr;
|
||||
int length, t1 = 0, t2 = 0;
|
||||
int t1 = 0, t2 = 0;
|
||||
|
||||
/* Value doesn't start with "e" */
|
||||
|
||||
@@ -3774,7 +3774,7 @@ GetEndOffsetFromObj(
|
||||
* Quick scan to see if multi-value list is even possible.
|
||||
* This relies on TclGetString() returning a NUL-terminated string.
|
||||
*/
|
||||
if ((TclMaxListLength(TclGetString(objPtr), -1, NULL) > 1)
|
||||
if ((TclMaxListLength(bytes, -1, NULL) > 1)
|
||||
|
||||
/* If it's possible, do the full list parse. */
|
||||
&& (TCL_OK == Tcl_ListObjLength(NULL, objPtr, &length))
|
||||
|
||||
+35
-35
@@ -119,17 +119,17 @@ VarHashNextVar(
|
||||
* access is denied.
|
||||
*/
|
||||
|
||||
static const char *noSuchVar = "no such variable";
|
||||
static const char *isArray = "variable is array";
|
||||
static const char *needArray = "variable isn't array";
|
||||
static const char *noSuchElement = "no such element in array";
|
||||
static const char *danglingElement =
|
||||
static const char NOSUCHVAR[] = "no such variable";
|
||||
static const char ISARRAY[] = "variable is array";
|
||||
static const char NEEDARRAY[] = "variable isn't array";
|
||||
static const char NOSUCHELEMENT[] = "no such element in array";
|
||||
static const char DANGLINGELEMENT[] =
|
||||
"upvar refers to element in deleted array";
|
||||
static const char *danglingVar =
|
||||
static const char DANGLINGVAR[] =
|
||||
"upvar refers to variable in deleted namespace";
|
||||
static const char *badNamespace = "parent namespace doesn't exist";
|
||||
static const char *missingName = "missing variable name";
|
||||
static const char *isArrayElement =
|
||||
static const char BADNAMESPACE[] = "parent namespace doesn't exist";
|
||||
static const char MISSINGNAME[] = "missing variable name";
|
||||
static const char ISARRAYELEMENT[] =
|
||||
"name refers to an element in an array";
|
||||
|
||||
/*
|
||||
@@ -649,7 +649,7 @@ TclObjLookupVarEx(
|
||||
|
||||
if (flags & TCL_LEAVE_ERR_MSG) {
|
||||
TclObjVarErrMsg(interp, part1Ptr, part2Ptr, msg,
|
||||
noSuchVar, -1);
|
||||
NOSUCHVAR, -1);
|
||||
Tcl_SetErrorCode(interp, "TCL", "VALUE", "VARNAME", NULL);
|
||||
}
|
||||
return NULL;
|
||||
@@ -674,7 +674,7 @@ TclObjLookupVarEx(
|
||||
if (part2Ptr != NULL) {
|
||||
if (flags & TCL_LEAVE_ERR_MSG) {
|
||||
TclObjVarErrMsg(interp, part1Ptr, part2Ptr, msg,
|
||||
needArray, -1);
|
||||
NEEDARRAY, -1);
|
||||
Tcl_SetErrorCode(interp, "TCL", "VALUE", "VARNAME",
|
||||
NULL);
|
||||
}
|
||||
@@ -939,7 +939,7 @@ TclLookupSimpleVar(
|
||||
Tcl_Obj *tailPtr;
|
||||
|
||||
if (!create) { /* Var wasn't found and not to create it. */
|
||||
*errMsgPtr = noSuchVar;
|
||||
*errMsgPtr = NOSUCHVAR;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -950,10 +950,10 @@ TclLookupSimpleVar(
|
||||
TclGetNamespaceForQualName(interp, varName, cxtNsPtr, flags,
|
||||
&varNsPtr, &dummy1Ptr, &dummy2Ptr, &tail);
|
||||
if (varNsPtr == NULL) {
|
||||
*errMsgPtr = badNamespace;
|
||||
*errMsgPtr = BADNAMESPACE;
|
||||
return NULL;
|
||||
} else if (tail == NULL) {
|
||||
*errMsgPtr = missingName;
|
||||
*errMsgPtr = MISSINGNAME;
|
||||
return NULL;
|
||||
}
|
||||
if (tail != varName) {
|
||||
@@ -1010,7 +1010,7 @@ TclLookupSimpleVar(
|
||||
varPtr = VarHashFindVar(tablePtr, varNamePtr);
|
||||
}
|
||||
if (varPtr == NULL) {
|
||||
*errMsgPtr = noSuchVar;
|
||||
*errMsgPtr = NOSUCHVAR;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1088,7 +1088,7 @@ TclLookupArrayElement(
|
||||
if (!createArray) {
|
||||
if (flags & TCL_LEAVE_ERR_MSG) {
|
||||
TclObjVarErrMsg(interp, arrayNamePtr, elNamePtr, msg,
|
||||
noSuchVar, index);
|
||||
NOSUCHVAR, index);
|
||||
Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "VARNAME",
|
||||
arrayNamePtr?TclGetString(arrayNamePtr):NULL, NULL);
|
||||
}
|
||||
@@ -1103,7 +1103,7 @@ TclLookupArrayElement(
|
||||
if (TclIsVarDeadHash(arrayPtr)) {
|
||||
if (flags & TCL_LEAVE_ERR_MSG) {
|
||||
TclObjVarErrMsg(interp, arrayNamePtr, elNamePtr, msg,
|
||||
danglingVar, index);
|
||||
DANGLINGVAR, index);
|
||||
Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "VARNAME",
|
||||
arrayNamePtr?TclGetString(arrayNamePtr):NULL, NULL);
|
||||
}
|
||||
@@ -1113,7 +1113,7 @@ TclLookupArrayElement(
|
||||
TclInitArrayVar(arrayPtr);
|
||||
} else if (!TclIsVarArray(arrayPtr)) {
|
||||
if (flags & TCL_LEAVE_ERR_MSG) {
|
||||
TclObjVarErrMsg(interp, arrayNamePtr, elNamePtr, msg, needArray,
|
||||
TclObjVarErrMsg(interp, arrayNamePtr, elNamePtr, msg, NEEDARRAY,
|
||||
index);
|
||||
Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "VARNAME",
|
||||
arrayNamePtr?TclGetString(arrayNamePtr):NULL, NULL);
|
||||
@@ -1135,7 +1135,7 @@ TclLookupArrayElement(
|
||||
if (varPtr == NULL) {
|
||||
if (flags & TCL_LEAVE_ERR_MSG) {
|
||||
TclObjVarErrMsg(interp, arrayNamePtr, elNamePtr, msg,
|
||||
noSuchElement, index);
|
||||
NOSUCHELEMENT, index);
|
||||
Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "ELEMENT",
|
||||
TclGetString(elNamePtr), NULL);
|
||||
}
|
||||
@@ -1485,11 +1485,11 @@ TclPtrGetVarIdx(
|
||||
if (flags & TCL_LEAVE_ERR_MSG) {
|
||||
if (TclIsVarUndefined(varPtr) && arrayPtr
|
||||
&& !TclIsVarUndefined(arrayPtr)) {
|
||||
msg = noSuchElement;
|
||||
msg = NOSUCHELEMENT;
|
||||
} else if (TclIsVarArray(varPtr)) {
|
||||
msg = isArray;
|
||||
msg = ISARRAY;
|
||||
} else {
|
||||
msg = noSuchVar;
|
||||
msg = NOSUCHVAR;
|
||||
}
|
||||
TclObjVarErrMsg(interp, part1Ptr, part2Ptr, "read", msg, index);
|
||||
}
|
||||
@@ -2024,11 +2024,11 @@ TclPtrSetVarIdx(
|
||||
if (flags & TCL_LEAVE_ERR_MSG) {
|
||||
if (TclIsVarArrayElement(varPtr)) {
|
||||
TclObjVarErrMsg(interp, part1Ptr, part2Ptr, "set",
|
||||
danglingElement, index);
|
||||
DANGLINGELEMENT, index);
|
||||
Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "ELEMENT", NULL);
|
||||
} else {
|
||||
TclObjVarErrMsg(interp, part1Ptr, part2Ptr, "set",
|
||||
danglingVar, index);
|
||||
DANGLINGVAR, index);
|
||||
Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "VARNAME", NULL);
|
||||
}
|
||||
}
|
||||
@@ -2041,7 +2041,7 @@ TclPtrSetVarIdx(
|
||||
|
||||
if (TclIsVarArray(varPtr)) {
|
||||
if (flags & TCL_LEAVE_ERR_MSG) {
|
||||
TclObjVarErrMsg(interp, part1Ptr, part2Ptr, "set", isArray,index);
|
||||
TclObjVarErrMsg(interp, part1Ptr, part2Ptr, "set", ISARRAY,index);
|
||||
Tcl_SetErrorCode(interp, "TCL", "WRITE", "ARRAY", NULL);
|
||||
}
|
||||
goto earlyError;
|
||||
@@ -2609,7 +2609,7 @@ TclPtrUnsetVarIdx(
|
||||
if (result != TCL_OK) {
|
||||
if (flags & TCL_LEAVE_ERR_MSG) {
|
||||
TclObjVarErrMsg(interp, part1Ptr, part2Ptr, "unset",
|
||||
((arrayPtr == NULL) ? noSuchVar : noSuchElement), index);
|
||||
((arrayPtr == NULL) ? NOSUCHVAR : NOSUCHELEMENT), index);
|
||||
Tcl_SetErrorCode(interp, "TCL", "UNSET", "VARNAME", NULL);
|
||||
}
|
||||
}
|
||||
@@ -3917,7 +3917,7 @@ ArrayNamesCmd(
|
||||
static const char *const options[] = {
|
||||
"-exact", "-glob", "-regexp", NULL
|
||||
};
|
||||
enum options { OPT_EXACT, OPT_GLOB, OPT_REGEXP };
|
||||
enum arrayNamesOptionsEnum { OPT_EXACT, OPT_GLOB, OPT_REGEXP };
|
||||
Var *varPtr, *varPtr2;
|
||||
Tcl_Obj *nameObj, *resultObj, *patternObj;
|
||||
Tcl_HashSearch search;
|
||||
@@ -3985,7 +3985,7 @@ ArrayNamesCmd(
|
||||
const char *name = TclGetString(nameObj);
|
||||
int matched = 0;
|
||||
|
||||
switch ((enum options) mode) {
|
||||
switch ((enum arrayNamesOptionsEnum) mode) {
|
||||
case OPT_EXACT:
|
||||
Tcl_Panic("exact matching shouldn't get here");
|
||||
case OPT_GLOB:
|
||||
@@ -4104,7 +4104,7 @@ ArraySetCmd(
|
||||
}
|
||||
if (arrayPtr) {
|
||||
CleanupVar(varPtr, arrayPtr);
|
||||
TclObjVarErrMsg(interp, arrayNameObj, NULL, "set", needArray, -1);
|
||||
TclObjVarErrMsg(interp, arrayNameObj, NULL, "set", NEEDARRAY, -1);
|
||||
Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "VARNAME",
|
||||
TclGetString(arrayNameObj), NULL);
|
||||
return TCL_ERROR;
|
||||
@@ -4223,7 +4223,7 @@ ArraySetCmd(
|
||||
*/
|
||||
|
||||
TclObjVarErrMsg(interp, arrayNameObj, NULL, "array set",
|
||||
needArray, -1);
|
||||
NEEDARRAY, -1);
|
||||
Tcl_SetErrorCode(interp, "TCL", "WRITE", "ARRAY", NULL);
|
||||
return TCL_ERROR;
|
||||
}
|
||||
@@ -5124,7 +5124,7 @@ Tcl_VariableObjCmd(
|
||||
*/
|
||||
|
||||
TclObjVarErrMsg(interp, varNamePtr, NULL, "define",
|
||||
isArrayElement, -1);
|
||||
ISARRAYELEMENT, -1);
|
||||
Tcl_SetErrorCode(interp, "TCL", "UPVAR", "LOCAL_ELEMENT", NULL);
|
||||
return TCL_ERROR;
|
||||
}
|
||||
@@ -6635,7 +6635,7 @@ ArrayDefaultCmd(
|
||||
static const char *const options[] = {
|
||||
"get", "set", "exists", "unset", NULL
|
||||
};
|
||||
enum options { OPT_GET, OPT_SET, OPT_EXISTS, OPT_UNSET };
|
||||
enum arrayDefaultOptionsEnum { OPT_GET, OPT_SET, OPT_EXISTS, OPT_UNSET };
|
||||
Tcl_Obj *arrayNameObj, *defaultValueObj;
|
||||
Var *varPtr, *arrayPtr;
|
||||
int isArray, option;
|
||||
@@ -6659,7 +6659,7 @@ ArrayDefaultCmd(
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
switch (option) {
|
||||
switch ((enum arrayDefaultOptionsEnum)option) {
|
||||
case OPT_GET:
|
||||
if (objc != 3) {
|
||||
Tcl_WrongNumArgs(interp, 2, objv, "arrayName");
|
||||
@@ -6702,7 +6702,7 @@ ArrayDefaultCmd(
|
||||
|
||||
CleanupVar(varPtr, arrayPtr);
|
||||
TclObjVarErrMsg(interp, arrayNameObj, NULL, "array default set",
|
||||
needArray, -1);
|
||||
NEEDARRAY, -1);
|
||||
Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "VARNAME",
|
||||
TclGetString(arrayNameObj), NULL);
|
||||
return TCL_ERROR;
|
||||
@@ -6713,7 +6713,7 @@ ArrayDefaultCmd(
|
||||
*/
|
||||
|
||||
TclObjVarErrMsg(interp, arrayNameObj, NULL, "array default set",
|
||||
needArray, -1);
|
||||
NEEDARRAY, -1);
|
||||
Tcl_SetErrorCode(interp, "TCL", "WRITE", "ARRAY", NULL);
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
+3
-3
@@ -4485,13 +4485,13 @@ ZipFSFileAttrsGetProc(
|
||||
}
|
||||
switch (index) {
|
||||
case 0:
|
||||
*objPtrRef = Tcl_NewWideIntObj(z->numBytes);
|
||||
TclNewIntObj(*objPtrRef, z->numBytes);
|
||||
break;
|
||||
case 1:
|
||||
*objPtrRef = Tcl_NewWideIntObj(z->numCompressedBytes);
|
||||
TclNewIntObj(*objPtrRef, z->numCompressedBytes);
|
||||
break;
|
||||
case 2:
|
||||
*objPtrRef = Tcl_NewWideIntObj(z->offset);
|
||||
TclNewIntObj(*objPtrRef, z->offset);
|
||||
break;
|
||||
case 3:
|
||||
*objPtrRef = Tcl_NewStringObj(z->zipFilePtr->mountPoint,
|
||||
|
||||
+3
-3
@@ -2398,7 +2398,7 @@ ZlibPushSubcmd(
|
||||
"-dictionary", "-header", "-level", "-limit", NULL
|
||||
};
|
||||
const char *const *pushOptions = pushDecompressOptions;
|
||||
enum pushOptions {poDictionary, poHeader, poLevel, poLimit};
|
||||
enum pushOptionsEnum {poDictionary, poHeader, poLevel, poLimit};
|
||||
Tcl_Obj *headerObj = NULL, *compDictObj = NULL;
|
||||
int limit = DEFAULT_BUFFER_SIZE, dummy;
|
||||
|
||||
@@ -2480,7 +2480,7 @@ ZlibPushSubcmd(
|
||||
Tcl_SetErrorCode(interp, "TCL", "ZIP", "NOVAL", NULL);
|
||||
return TCL_ERROR;
|
||||
}
|
||||
switch ((enum pushOptions) option) {
|
||||
switch ((enum pushOptionsEnum) option) {
|
||||
case poHeader:
|
||||
headerObj = objv[i];
|
||||
if (Tcl_DictObjSize(interp, headerObj, &dummy) != TCL_OK) {
|
||||
@@ -3945,7 +3945,7 @@ TclZlibInit(
|
||||
cfg[0].key = "zlibVersion";
|
||||
cfg[0].value = zlibVersion();
|
||||
cfg[1].key = NULL;
|
||||
Tcl_RegisterConfig(interp, "zlib", cfg, "iso8859-1");
|
||||
Tcl_RegisterConfig(interp, "zlib", cfg, "utf-8");
|
||||
|
||||
/*
|
||||
* Allow command type introspection to do something sensible with streams.
|
||||
|
||||
+1
-1
@@ -3314,7 +3314,7 @@ proc ::tcl::clock::LoadTimeZoneFile { fileName } {
|
||||
"time zone \":$fileName\" not valid"
|
||||
}
|
||||
try {
|
||||
source -encoding utf-8 [file join $DataDir $fileName]
|
||||
source [file join $DataDir $fileName]
|
||||
} on error {} {
|
||||
return -code error \
|
||||
-errorcode [list CLOCK badTimeZone :$fileName] \
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
if {![package vsatisfies [package provide Tcl] 8.5-]} return
|
||||
if {[info sharedlibextension] != ".dll"} return
|
||||
package ifneeded dde 1.4.3 [list load [file join $dir tcldde14.dll] dde]
|
||||
package ifneeded dde 1.4.3 [list load [file join $dir tcldde14.dll] Dde]
|
||||
|
||||
@@ -746,6 +746,7 @@ proc http::geturl {url args} {
|
||||
-strict boolean
|
||||
-timeout integer
|
||||
-validate boolean
|
||||
-headers dict
|
||||
}
|
||||
set state(charset) $defaultCharset
|
||||
set options {
|
||||
@@ -759,9 +760,8 @@ proc http::geturl {url args} {
|
||||
foreach {flag value} $args {
|
||||
if {[regexp -- $pat $flag]} {
|
||||
# Validate numbers
|
||||
if {
|
||||
[info exists type($flag)] &&
|
||||
![string is $type($flag) -strict $value]
|
||||
if {($flag eq "-headers") ? [catch {dict size $value}] :
|
||||
([info exists type($flag)] && ![string is $type($flag) -strict $value])
|
||||
} {
|
||||
unset $token
|
||||
return -code error \
|
||||
|
||||
+1
-1
@@ -112,7 +112,7 @@ if {[interp issafe]} {
|
||||
foreach cmd {add format scan} {
|
||||
proc ::tcl::clock::$cmd args {
|
||||
variable TclLibDir
|
||||
source -encoding utf-8 [file join $TclLibDir clock.tcl]
|
||||
source [file join $TclLibDir clock.tcl]
|
||||
return [uplevel 1 [info level 0]]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
if {![package vsatisfies [package provide Tcl] 8.5-]} return
|
||||
if {[info sharedlibextension] != ".dll"} return
|
||||
package ifneeded registry 1.3.5 \
|
||||
[list load [file join $dir tclreg13.dll] registry]
|
||||
[list load [file join $dir tclreg13.dll] Registry]
|
||||
|
||||
+2
-5
@@ -937,7 +937,7 @@ proc ::safe::AliasSource {child args} {
|
||||
}
|
||||
} else {
|
||||
set at 0
|
||||
set encoding {}
|
||||
set encoding utf-8
|
||||
}
|
||||
if {$argc != 1} {
|
||||
set msg "wrong # args: should be \"source ?-encoding E? fileName\""
|
||||
@@ -980,10 +980,7 @@ proc ::safe::AliasSource {child args} {
|
||||
set replacementMsg "script error"
|
||||
set code [catch {
|
||||
set f [open $realfile]
|
||||
fconfigure $f -eofchar \032
|
||||
if {$encoding ne ""} {
|
||||
fconfigure $f -encoding $encoding
|
||||
}
|
||||
fconfigure $f -encoding $encoding -eofchar \032
|
||||
set contents [read $f]
|
||||
close $f
|
||||
::interp eval $child [list info script $file]
|
||||
|
||||
+1
-1
@@ -267,7 +267,7 @@ proc ::tcl::tm::UnknownHandler {original name args} {
|
||||
# of the package file is the last element in the list.
|
||||
|
||||
package ifneeded $pkgname $pkgversion \
|
||||
"[::list package provide $pkgname $pkgversion];[::list source -encoding utf-8 $file]"
|
||||
"[::list package provide $pkgname $pkgversion];[::list source $file]"
|
||||
|
||||
# We abort in this unknown handler only if we got a
|
||||
# satisfying candidate for the requested package.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
set TZData(:Africa/Algiers) {
|
||||
{-9223372036854775808 732 0 LMT}
|
||||
{-2486679072 561 0 PMT}
|
||||
{-2486592732 561 0 PMT}
|
||||
{-1855958961 0 0 WET}
|
||||
{-1689814800 3600 1 WEST}
|
||||
{-1680397200 0 0 WET}
|
||||
|
||||
@@ -66,7 +66,7 @@ set TZData(:Africa/Casablanca) {
|
||||
{1648346400 0 1 +01}
|
||||
{1651975200 3600 0 +01}
|
||||
{1679191200 0 1 +01}
|
||||
{1682215200 3600 0 +01}
|
||||
{1682820000 3600 0 +01}
|
||||
{1710036000 0 1 +01}
|
||||
{1713060000 3600 0 +01}
|
||||
{1740276000 0 1 +01}
|
||||
@@ -82,7 +82,7 @@ set TZData(:Africa/Casablanca) {
|
||||
{1893290400 0 1 +01}
|
||||
{1896919200 3600 0 +01}
|
||||
{1924135200 0 1 +01}
|
||||
{1927159200 3600 0 +01}
|
||||
{1927764000 3600 0 +01}
|
||||
{1954980000 0 1 +01}
|
||||
{1958004000 3600 0 +01}
|
||||
{1985220000 0 1 +01}
|
||||
@@ -98,7 +98,7 @@ set TZData(:Africa/Casablanca) {
|
||||
{2138234400 0 1 +01}
|
||||
{2141863200 3600 0 +01}
|
||||
{2169079200 0 1 +01}
|
||||
{2172103200 3600 0 +01}
|
||||
{2172708000 3600 0 +01}
|
||||
{2199924000 0 1 +01}
|
||||
{2202948000 3600 0 +01}
|
||||
{2230164000 0 1 +01}
|
||||
@@ -114,7 +114,7 @@ set TZData(:Africa/Casablanca) {
|
||||
{2383178400 0 1 +01}
|
||||
{2386807200 3600 0 +01}
|
||||
{2414023200 0 1 +01}
|
||||
{2417047200 3600 0 +01}
|
||||
{2417652000 3600 0 +01}
|
||||
{2444868000 0 1 +01}
|
||||
{2447892000 3600 0 +01}
|
||||
{2475108000 0 1 +01}
|
||||
@@ -130,7 +130,7 @@ set TZData(:Africa/Casablanca) {
|
||||
{2628122400 0 1 +01}
|
||||
{2631751200 3600 0 +01}
|
||||
{2658967200 0 1 +01}
|
||||
{2661991200 3600 0 +01}
|
||||
{2662596000 3600 0 +01}
|
||||
{2689812000 0 1 +01}
|
||||
{2692836000 3600 0 +01}
|
||||
{2720052000 0 1 +01}
|
||||
@@ -146,7 +146,7 @@ set TZData(:Africa/Casablanca) {
|
||||
{2873066400 0 1 +01}
|
||||
{2876695200 3600 0 +01}
|
||||
{2903911200 0 1 +01}
|
||||
{2906935200 3600 0 +01}
|
||||
{2907540000 3600 0 +01}
|
||||
{2934756000 0 1 +01}
|
||||
{2937780000 3600 0 +01}
|
||||
{2964996000 0 1 +01}
|
||||
@@ -162,7 +162,7 @@ set TZData(:Africa/Casablanca) {
|
||||
{3118010400 0 1 +01}
|
||||
{3121639200 3600 0 +01}
|
||||
{3148855200 0 1 +01}
|
||||
{3151879200 3600 0 +01}
|
||||
{3152484000 3600 0 +01}
|
||||
{3179700000 0 1 +01}
|
||||
{3182724000 3600 0 +01}
|
||||
{3209940000 0 1 +01}
|
||||
@@ -178,7 +178,7 @@ set TZData(:Africa/Casablanca) {
|
||||
{3362954400 0 1 +01}
|
||||
{3366583200 3600 0 +01}
|
||||
{3393799200 0 1 +01}
|
||||
{3396823200 3600 0 +01}
|
||||
{3397428000 3600 0 +01}
|
||||
{3424644000 0 1 +01}
|
||||
{3427668000 3600 0 +01}
|
||||
{3454884000 0 1 +01}
|
||||
@@ -188,13 +188,13 @@ set TZData(:Africa/Casablanca) {
|
||||
{3515968800 0 1 +01}
|
||||
{3519597600 3600 0 +01}
|
||||
{3546813600 0 1 +01}
|
||||
{3549837600 3600 0 +01}
|
||||
{3550442400 3600 0 +01}
|
||||
{3577658400 0 1 +01}
|
||||
{3580682400 3600 0 +01}
|
||||
{3607898400 0 1 +01}
|
||||
{3611527200 3600 0 +01}
|
||||
{3638743200 0 1 +01}
|
||||
{3641767200 3600 0 +01}
|
||||
{3642372000 3600 0 +01}
|
||||
{3669588000 0 1 +01}
|
||||
{3672612000 3600 0 +01}
|
||||
{3699828000 0 1 +01}
|
||||
|
||||
@@ -55,7 +55,7 @@ set TZData(:Africa/El_Aaiun) {
|
||||
{1648346400 0 1 +01}
|
||||
{1651975200 3600 0 +01}
|
||||
{1679191200 0 1 +01}
|
||||
{1682215200 3600 0 +01}
|
||||
{1682820000 3600 0 +01}
|
||||
{1710036000 0 1 +01}
|
||||
{1713060000 3600 0 +01}
|
||||
{1740276000 0 1 +01}
|
||||
@@ -71,7 +71,7 @@ set TZData(:Africa/El_Aaiun) {
|
||||
{1893290400 0 1 +01}
|
||||
{1896919200 3600 0 +01}
|
||||
{1924135200 0 1 +01}
|
||||
{1927159200 3600 0 +01}
|
||||
{1927764000 3600 0 +01}
|
||||
{1954980000 0 1 +01}
|
||||
{1958004000 3600 0 +01}
|
||||
{1985220000 0 1 +01}
|
||||
@@ -87,7 +87,7 @@ set TZData(:Africa/El_Aaiun) {
|
||||
{2138234400 0 1 +01}
|
||||
{2141863200 3600 0 +01}
|
||||
{2169079200 0 1 +01}
|
||||
{2172103200 3600 0 +01}
|
||||
{2172708000 3600 0 +01}
|
||||
{2199924000 0 1 +01}
|
||||
{2202948000 3600 0 +01}
|
||||
{2230164000 0 1 +01}
|
||||
@@ -103,7 +103,7 @@ set TZData(:Africa/El_Aaiun) {
|
||||
{2383178400 0 1 +01}
|
||||
{2386807200 3600 0 +01}
|
||||
{2414023200 0 1 +01}
|
||||
{2417047200 3600 0 +01}
|
||||
{2417652000 3600 0 +01}
|
||||
{2444868000 0 1 +01}
|
||||
{2447892000 3600 0 +01}
|
||||
{2475108000 0 1 +01}
|
||||
@@ -119,7 +119,7 @@ set TZData(:Africa/El_Aaiun) {
|
||||
{2628122400 0 1 +01}
|
||||
{2631751200 3600 0 +01}
|
||||
{2658967200 0 1 +01}
|
||||
{2661991200 3600 0 +01}
|
||||
{2662596000 3600 0 +01}
|
||||
{2689812000 0 1 +01}
|
||||
{2692836000 3600 0 +01}
|
||||
{2720052000 0 1 +01}
|
||||
@@ -135,7 +135,7 @@ set TZData(:Africa/El_Aaiun) {
|
||||
{2873066400 0 1 +01}
|
||||
{2876695200 3600 0 +01}
|
||||
{2903911200 0 1 +01}
|
||||
{2906935200 3600 0 +01}
|
||||
{2907540000 3600 0 +01}
|
||||
{2934756000 0 1 +01}
|
||||
{2937780000 3600 0 +01}
|
||||
{2964996000 0 1 +01}
|
||||
@@ -151,7 +151,7 @@ set TZData(:Africa/El_Aaiun) {
|
||||
{3118010400 0 1 +01}
|
||||
{3121639200 3600 0 +01}
|
||||
{3148855200 0 1 +01}
|
||||
{3151879200 3600 0 +01}
|
||||
{3152484000 3600 0 +01}
|
||||
{3179700000 0 1 +01}
|
||||
{3182724000 3600 0 +01}
|
||||
{3209940000 0 1 +01}
|
||||
@@ -167,7 +167,7 @@ set TZData(:Africa/El_Aaiun) {
|
||||
{3362954400 0 1 +01}
|
||||
{3366583200 3600 0 +01}
|
||||
{3393799200 0 1 +01}
|
||||
{3396823200 3600 0 +01}
|
||||
{3397428000 3600 0 +01}
|
||||
{3424644000 0 1 +01}
|
||||
{3427668000 3600 0 +01}
|
||||
{3454884000 0 1 +01}
|
||||
@@ -177,13 +177,13 @@ set TZData(:Africa/El_Aaiun) {
|
||||
{3515968800 0 1 +01}
|
||||
{3519597600 3600 0 +01}
|
||||
{3546813600 0 1 +01}
|
||||
{3549837600 3600 0 +01}
|
||||
{3550442400 3600 0 +01}
|
||||
{3577658400 0 1 +01}
|
||||
{3580682400 3600 0 +01}
|
||||
{3607898400 0 1 +01}
|
||||
{3611527200 3600 0 +01}
|
||||
{3638743200 0 1 +01}
|
||||
{3641767200 3600 0 +01}
|
||||
{3642372000 3600 0 +01}
|
||||
{3669588000 0 1 +01}
|
||||
{3672612000 3600 0 +01}
|
||||
{3699828000 0 1 +01}
|
||||
|
||||
@@ -93,5 +93,6 @@ set TZData(:America/Dawson) {
|
||||
{1541322000 -28800 0 PST}
|
||||
{1552212000 -25200 1 PDT}
|
||||
{1572771600 -28800 0 PST}
|
||||
{1583661600 -25200 0 MST}
|
||||
{1583661600 -25200 1 PDT}
|
||||
{1604217600 -25200 0 MST}
|
||||
}
|
||||
|
||||
@@ -93,5 +93,6 @@ set TZData(:America/Whitehorse) {
|
||||
{1541322000 -28800 0 PST}
|
||||
{1552212000 -25200 1 PDT}
|
||||
{1572771600 -28800 0 PST}
|
||||
{1583661600 -25200 0 MST}
|
||||
{1583661600 -25200 1 PDT}
|
||||
{1604217600 -25200 0 MST}
|
||||
}
|
||||
|
||||
@@ -9,4 +9,9 @@ set TZData(:Antarctica/Casey) {
|
||||
{1329843600 28800 0 +08}
|
||||
{1477065600 39600 0 +11}
|
||||
{1520701200 28800 0 +08}
|
||||
{1538856000 39600 0 +11}
|
||||
{1552752000 28800 0 +08}
|
||||
{1570129200 39600 0 +11}
|
||||
{1583596800 28800 0 +08}
|
||||
{1601740860 39600 0 +11}
|
||||
}
|
||||
|
||||
@@ -93,5 +93,184 @@ set TZData(:Antarctica/Macquarie) {
|
||||
{1223136000 39600 1 AEDT}
|
||||
{1238860800 36000 0 AEST}
|
||||
{1254585600 39600 1 AEDT}
|
||||
{1270310400 39600 0 +11}
|
||||
{1262264400 39600 1 AEDT}
|
||||
{1293800400 39600 0 AEST}
|
||||
{1301760000 36000 0 AEST}
|
||||
{1317484800 39600 1 AEDT}
|
||||
{1333209600 36000 0 AEST}
|
||||
{1349539200 39600 1 AEDT}
|
||||
{1365264000 36000 0 AEST}
|
||||
{1380988800 39600 1 AEDT}
|
||||
{1396713600 36000 0 AEST}
|
||||
{1412438400 39600 1 AEDT}
|
||||
{1428163200 36000 0 AEST}
|
||||
{1443888000 39600 1 AEDT}
|
||||
{1459612800 36000 0 AEST}
|
||||
{1475337600 39600 1 AEDT}
|
||||
{1491062400 36000 0 AEST}
|
||||
{1506787200 39600 1 AEDT}
|
||||
{1522512000 36000 0 AEST}
|
||||
{1538841600 39600 1 AEDT}
|
||||
{1554566400 36000 0 AEST}
|
||||
{1570291200 39600 1 AEDT}
|
||||
{1586016000 36000 0 AEST}
|
||||
{1601740800 39600 1 AEDT}
|
||||
{1617465600 36000 0 AEST}
|
||||
{1633190400 39600 1 AEDT}
|
||||
{1648915200 36000 0 AEST}
|
||||
{1664640000 39600 1 AEDT}
|
||||
{1680364800 36000 0 AEST}
|
||||
{1696089600 39600 1 AEDT}
|
||||
{1712419200 36000 0 AEST}
|
||||
{1728144000 39600 1 AEDT}
|
||||
{1743868800 36000 0 AEST}
|
||||
{1759593600 39600 1 AEDT}
|
||||
{1775318400 36000 0 AEST}
|
||||
{1791043200 39600 1 AEDT}
|
||||
{1806768000 36000 0 AEST}
|
||||
{1822492800 39600 1 AEDT}
|
||||
{1838217600 36000 0 AEST}
|
||||
{1853942400 39600 1 AEDT}
|
||||
{1869667200 36000 0 AEST}
|
||||
{1885996800 39600 1 AEDT}
|
||||
{1901721600 36000 0 AEST}
|
||||
{1917446400 39600 1 AEDT}
|
||||
{1933171200 36000 0 AEST}
|
||||
{1948896000 39600 1 AEDT}
|
||||
{1964620800 36000 0 AEST}
|
||||
{1980345600 39600 1 AEDT}
|
||||
{1996070400 36000 0 AEST}
|
||||
{2011795200 39600 1 AEDT}
|
||||
{2027520000 36000 0 AEST}
|
||||
{2043244800 39600 1 AEDT}
|
||||
{2058969600 36000 0 AEST}
|
||||
{2075299200 39600 1 AEDT}
|
||||
{2091024000 36000 0 AEST}
|
||||
{2106748800 39600 1 AEDT}
|
||||
{2122473600 36000 0 AEST}
|
||||
{2138198400 39600 1 AEDT}
|
||||
{2153923200 36000 0 AEST}
|
||||
{2169648000 39600 1 AEDT}
|
||||
{2185372800 36000 0 AEST}
|
||||
{2201097600 39600 1 AEDT}
|
||||
{2216822400 36000 0 AEST}
|
||||
{2233152000 39600 1 AEDT}
|
||||
{2248876800 36000 0 AEST}
|
||||
{2264601600 39600 1 AEDT}
|
||||
{2280326400 36000 0 AEST}
|
||||
{2296051200 39600 1 AEDT}
|
||||
{2311776000 36000 0 AEST}
|
||||
{2327500800 39600 1 AEDT}
|
||||
{2343225600 36000 0 AEST}
|
||||
{2358950400 39600 1 AEDT}
|
||||
{2374675200 36000 0 AEST}
|
||||
{2390400000 39600 1 AEDT}
|
||||
{2406124800 36000 0 AEST}
|
||||
{2422454400 39600 1 AEDT}
|
||||
{2438179200 36000 0 AEST}
|
||||
{2453904000 39600 1 AEDT}
|
||||
{2469628800 36000 0 AEST}
|
||||
{2485353600 39600 1 AEDT}
|
||||
{2501078400 36000 0 AEST}
|
||||
{2516803200 39600 1 AEDT}
|
||||
{2532528000 36000 0 AEST}
|
||||
{2548252800 39600 1 AEDT}
|
||||
{2563977600 36000 0 AEST}
|
||||
{2579702400 39600 1 AEDT}
|
||||
{2596032000 36000 0 AEST}
|
||||
{2611756800 39600 1 AEDT}
|
||||
{2627481600 36000 0 AEST}
|
||||
{2643206400 39600 1 AEDT}
|
||||
{2658931200 36000 0 AEST}
|
||||
{2674656000 39600 1 AEDT}
|
||||
{2690380800 36000 0 AEST}
|
||||
{2706105600 39600 1 AEDT}
|
||||
{2721830400 36000 0 AEST}
|
||||
{2737555200 39600 1 AEDT}
|
||||
{2753280000 36000 0 AEST}
|
||||
{2769609600 39600 1 AEDT}
|
||||
{2785334400 36000 0 AEST}
|
||||
{2801059200 39600 1 AEDT}
|
||||
{2816784000 36000 0 AEST}
|
||||
{2832508800 39600 1 AEDT}
|
||||
{2848233600 36000 0 AEST}
|
||||
{2863958400 39600 1 AEDT}
|
||||
{2879683200 36000 0 AEST}
|
||||
{2895408000 39600 1 AEDT}
|
||||
{2911132800 36000 0 AEST}
|
||||
{2926857600 39600 1 AEDT}
|
||||
{2942582400 36000 0 AEST}
|
||||
{2958912000 39600 1 AEDT}
|
||||
{2974636800 36000 0 AEST}
|
||||
{2990361600 39600 1 AEDT}
|
||||
{3006086400 36000 0 AEST}
|
||||
{3021811200 39600 1 AEDT}
|
||||
{3037536000 36000 0 AEST}
|
||||
{3053260800 39600 1 AEDT}
|
||||
{3068985600 36000 0 AEST}
|
||||
{3084710400 39600 1 AEDT}
|
||||
{3100435200 36000 0 AEST}
|
||||
{3116764800 39600 1 AEDT}
|
||||
{3132489600 36000 0 AEST}
|
||||
{3148214400 39600 1 AEDT}
|
||||
{3163939200 36000 0 AEST}
|
||||
{3179664000 39600 1 AEDT}
|
||||
{3195388800 36000 0 AEST}
|
||||
{3211113600 39600 1 AEDT}
|
||||
{3226838400 36000 0 AEST}
|
||||
{3242563200 39600 1 AEDT}
|
||||
{3258288000 36000 0 AEST}
|
||||
{3274012800 39600 1 AEDT}
|
||||
{3289737600 36000 0 AEST}
|
||||
{3306067200 39600 1 AEDT}
|
||||
{3321792000 36000 0 AEST}
|
||||
{3337516800 39600 1 AEDT}
|
||||
{3353241600 36000 0 AEST}
|
||||
{3368966400 39600 1 AEDT}
|
||||
{3384691200 36000 0 AEST}
|
||||
{3400416000 39600 1 AEDT}
|
||||
{3416140800 36000 0 AEST}
|
||||
{3431865600 39600 1 AEDT}
|
||||
{3447590400 36000 0 AEST}
|
||||
{3463315200 39600 1 AEDT}
|
||||
{3479644800 36000 0 AEST}
|
||||
{3495369600 39600 1 AEDT}
|
||||
{3511094400 36000 0 AEST}
|
||||
{3526819200 39600 1 AEDT}
|
||||
{3542544000 36000 0 AEST}
|
||||
{3558268800 39600 1 AEDT}
|
||||
{3573993600 36000 0 AEST}
|
||||
{3589718400 39600 1 AEDT}
|
||||
{3605443200 36000 0 AEST}
|
||||
{3621168000 39600 1 AEDT}
|
||||
{3636892800 36000 0 AEST}
|
||||
{3653222400 39600 1 AEDT}
|
||||
{3668947200 36000 0 AEST}
|
||||
{3684672000 39600 1 AEDT}
|
||||
{3700396800 36000 0 AEST}
|
||||
{3716121600 39600 1 AEDT}
|
||||
{3731846400 36000 0 AEST}
|
||||
{3747571200 39600 1 AEDT}
|
||||
{3763296000 36000 0 AEST}
|
||||
{3779020800 39600 1 AEDT}
|
||||
{3794745600 36000 0 AEST}
|
||||
{3810470400 39600 1 AEDT}
|
||||
{3826195200 36000 0 AEST}
|
||||
{3842524800 39600 1 AEDT}
|
||||
{3858249600 36000 0 AEST}
|
||||
{3873974400 39600 1 AEDT}
|
||||
{3889699200 36000 0 AEST}
|
||||
{3905424000 39600 1 AEDT}
|
||||
{3921148800 36000 0 AEST}
|
||||
{3936873600 39600 1 AEDT}
|
||||
{3952598400 36000 0 AEST}
|
||||
{3968323200 39600 1 AEDT}
|
||||
{3984048000 36000 0 AEST}
|
||||
{4000377600 39600 1 AEDT}
|
||||
{4016102400 36000 0 AEST}
|
||||
{4031827200 39600 1 AEDT}
|
||||
{4047552000 36000 0 AEST}
|
||||
{4063276800 39600 1 AEDT}
|
||||
{4079001600 36000 0 AEST}
|
||||
{4094726400 39600 1 AEDT}
|
||||
}
|
||||
|
||||
+94
-94
@@ -110,7 +110,7 @@ set TZData(:Asia/Gaza) {
|
||||
{1395957600 10800 1 EEST}
|
||||
{1414098000 7200 0 EET}
|
||||
{1427493600 10800 1 EEST}
|
||||
{1445547600 7200 0 EET}
|
||||
{1445551200 7200 0 EET}
|
||||
{1458946800 10800 1 EEST}
|
||||
{1477692000 7200 0 EET}
|
||||
{1490396400 10800 1 EEST}
|
||||
@@ -118,165 +118,165 @@ set TZData(:Asia/Gaza) {
|
||||
{1521846000 10800 1 EEST}
|
||||
{1540591200 7200 0 EET}
|
||||
{1553810400 10800 1 EEST}
|
||||
{1572040800 7200 0 EET}
|
||||
{1585260000 10800 1 EEST}
|
||||
{1604095200 7200 0 EET}
|
||||
{1616709600 10800 1 EEST}
|
||||
{1572037200 7200 0 EET}
|
||||
{1585346400 10800 1 EEST}
|
||||
{1603490400 7200 0 EET}
|
||||
{1616796000 10800 1 EEST}
|
||||
{1635544800 7200 0 EET}
|
||||
{1648159200 10800 1 EEST}
|
||||
{1648245600 10800 1 EEST}
|
||||
{1666994400 7200 0 EET}
|
||||
{1680213600 10800 1 EEST}
|
||||
{1679695200 10800 1 EEST}
|
||||
{1698444000 7200 0 EET}
|
||||
{1711663200 10800 1 EEST}
|
||||
{1711749600 10800 1 EEST}
|
||||
{1729893600 7200 0 EET}
|
||||
{1743112800 10800 1 EEST}
|
||||
{1743199200 10800 1 EEST}
|
||||
{1761343200 7200 0 EET}
|
||||
{1774562400 10800 1 EEST}
|
||||
{1793397600 7200 0 EET}
|
||||
{1806012000 10800 1 EEST}
|
||||
{1774648800 10800 1 EEST}
|
||||
{1792792800 7200 0 EET}
|
||||
{1806098400 10800 1 EEST}
|
||||
{1824847200 7200 0 EET}
|
||||
{1838066400 10800 1 EEST}
|
||||
{1837548000 10800 1 EEST}
|
||||
{1856296800 7200 0 EET}
|
||||
{1869516000 10800 1 EEST}
|
||||
{1868997600 10800 1 EEST}
|
||||
{1887746400 7200 0 EET}
|
||||
{1900965600 10800 1 EEST}
|
||||
{1901052000 10800 1 EEST}
|
||||
{1919196000 7200 0 EET}
|
||||
{1932415200 10800 1 EEST}
|
||||
{1932501600 10800 1 EEST}
|
||||
{1950645600 7200 0 EET}
|
||||
{1963864800 10800 1 EEST}
|
||||
{1963951200 10800 1 EEST}
|
||||
{1982700000 7200 0 EET}
|
||||
{1995314400 10800 1 EEST}
|
||||
{1995400800 10800 1 EEST}
|
||||
{2014149600 7200 0 EET}
|
||||
{2027368800 10800 1 EEST}
|
||||
{2026850400 10800 1 EEST}
|
||||
{2045599200 7200 0 EET}
|
||||
{2058818400 10800 1 EEST}
|
||||
{2058300000 10800 1 EEST}
|
||||
{2077048800 7200 0 EET}
|
||||
{2090268000 10800 1 EEST}
|
||||
{2090354400 10800 1 EEST}
|
||||
{2108498400 7200 0 EET}
|
||||
{2121717600 10800 1 EEST}
|
||||
{2140552800 7200 0 EET}
|
||||
{2153167200 10800 1 EEST}
|
||||
{2121804000 10800 1 EEST}
|
||||
{2139948000 7200 0 EET}
|
||||
{2153253600 10800 1 EEST}
|
||||
{2172002400 7200 0 EET}
|
||||
{2184616800 10800 1 EEST}
|
||||
{2184703200 10800 1 EEST}
|
||||
{2203452000 7200 0 EET}
|
||||
{2216671200 10800 1 EEST}
|
||||
{2216152800 10800 1 EEST}
|
||||
{2234901600 7200 0 EET}
|
||||
{2248120800 10800 1 EEST}
|
||||
{2248207200 10800 1 EEST}
|
||||
{2266351200 7200 0 EET}
|
||||
{2279570400 10800 1 EEST}
|
||||
{2279656800 10800 1 EEST}
|
||||
{2297800800 7200 0 EET}
|
||||
{2311020000 10800 1 EEST}
|
||||
{2329855200 7200 0 EET}
|
||||
{2342469600 10800 1 EEST}
|
||||
{2311106400 10800 1 EEST}
|
||||
{2329250400 7200 0 EET}
|
||||
{2342556000 10800 1 EEST}
|
||||
{2361304800 7200 0 EET}
|
||||
{2374524000 10800 1 EEST}
|
||||
{2374005600 10800 1 EEST}
|
||||
{2392754400 7200 0 EET}
|
||||
{2405973600 10800 1 EEST}
|
||||
{2405455200 10800 1 EEST}
|
||||
{2424204000 7200 0 EET}
|
||||
{2437423200 10800 1 EEST}
|
||||
{2437509600 10800 1 EEST}
|
||||
{2455653600 7200 0 EET}
|
||||
{2468872800 10800 1 EEST}
|
||||
{2487708000 7200 0 EET}
|
||||
{2500322400 10800 1 EEST}
|
||||
{2468959200 10800 1 EEST}
|
||||
{2487103200 7200 0 EET}
|
||||
{2500408800 10800 1 EEST}
|
||||
{2519157600 7200 0 EET}
|
||||
{2531772000 10800 1 EEST}
|
||||
{2531858400 10800 1 EEST}
|
||||
{2550607200 7200 0 EET}
|
||||
{2563826400 10800 1 EEST}
|
||||
{2563308000 10800 1 EEST}
|
||||
{2582056800 7200 0 EET}
|
||||
{2595276000 10800 1 EEST}
|
||||
{2595362400 10800 1 EEST}
|
||||
{2613506400 7200 0 EET}
|
||||
{2626725600 10800 1 EEST}
|
||||
{2626812000 10800 1 EEST}
|
||||
{2644956000 7200 0 EET}
|
||||
{2658175200 10800 1 EEST}
|
||||
{2677010400 7200 0 EET}
|
||||
{2689624800 10800 1 EEST}
|
||||
{2658261600 10800 1 EEST}
|
||||
{2676405600 7200 0 EET}
|
||||
{2689711200 10800 1 EEST}
|
||||
{2708460000 7200 0 EET}
|
||||
{2721679200 10800 1 EEST}
|
||||
{2721160800 10800 1 EEST}
|
||||
{2739909600 7200 0 EET}
|
||||
{2753128800 10800 1 EEST}
|
||||
{2752610400 10800 1 EEST}
|
||||
{2771359200 7200 0 EET}
|
||||
{2784578400 10800 1 EEST}
|
||||
{2784664800 10800 1 EEST}
|
||||
{2802808800 7200 0 EET}
|
||||
{2816028000 10800 1 EEST}
|
||||
{2816114400 10800 1 EEST}
|
||||
{2834258400 7200 0 EET}
|
||||
{2847477600 10800 1 EEST}
|
||||
{2847564000 10800 1 EEST}
|
||||
{2866312800 7200 0 EET}
|
||||
{2878927200 10800 1 EEST}
|
||||
{2879013600 10800 1 EEST}
|
||||
{2897762400 7200 0 EET}
|
||||
{2910981600 10800 1 EEST}
|
||||
{2910463200 10800 1 EEST}
|
||||
{2929212000 7200 0 EET}
|
||||
{2942431200 10800 1 EEST}
|
||||
{2941912800 10800 1 EEST}
|
||||
{2960661600 7200 0 EET}
|
||||
{2973880800 10800 1 EEST}
|
||||
{2973967200 10800 1 EEST}
|
||||
{2992111200 7200 0 EET}
|
||||
{3005330400 10800 1 EEST}
|
||||
{3024165600 7200 0 EET}
|
||||
{3036780000 10800 1 EEST}
|
||||
{3005416800 10800 1 EEST}
|
||||
{3023560800 7200 0 EET}
|
||||
{3036866400 10800 1 EEST}
|
||||
{3055615200 7200 0 EET}
|
||||
{3068229600 10800 1 EEST}
|
||||
{3068316000 10800 1 EEST}
|
||||
{3087064800 7200 0 EET}
|
||||
{3100284000 10800 1 EEST}
|
||||
{3099765600 10800 1 EEST}
|
||||
{3118514400 7200 0 EET}
|
||||
{3131733600 10800 1 EEST}
|
||||
{3131820000 10800 1 EEST}
|
||||
{3149964000 7200 0 EET}
|
||||
{3163183200 10800 1 EEST}
|
||||
{3163269600 10800 1 EEST}
|
||||
{3181413600 7200 0 EET}
|
||||
{3194632800 10800 1 EEST}
|
||||
{3213468000 7200 0 EET}
|
||||
{3226082400 10800 1 EEST}
|
||||
{3194719200 10800 1 EEST}
|
||||
{3212863200 7200 0 EET}
|
||||
{3226168800 10800 1 EEST}
|
||||
{3244917600 7200 0 EET}
|
||||
{3258136800 10800 1 EEST}
|
||||
{3257618400 10800 1 EEST}
|
||||
{3276367200 7200 0 EET}
|
||||
{3289586400 10800 1 EEST}
|
||||
{3289068000 10800 1 EEST}
|
||||
{3307816800 7200 0 EET}
|
||||
{3321036000 10800 1 EEST}
|
||||
{3321122400 10800 1 EEST}
|
||||
{3339266400 7200 0 EET}
|
||||
{3352485600 10800 1 EEST}
|
||||
{3371320800 7200 0 EET}
|
||||
{3383935200 10800 1 EEST}
|
||||
{3352572000 10800 1 EEST}
|
||||
{3370716000 7200 0 EET}
|
||||
{3384021600 10800 1 EEST}
|
||||
{3402770400 7200 0 EET}
|
||||
{3415384800 10800 1 EEST}
|
||||
{3415471200 10800 1 EEST}
|
||||
{3434220000 7200 0 EET}
|
||||
{3447439200 10800 1 EEST}
|
||||
{3446920800 10800 1 EEST}
|
||||
{3465669600 7200 0 EET}
|
||||
{3478888800 10800 1 EEST}
|
||||
{3478975200 10800 1 EEST}
|
||||
{3497119200 7200 0 EET}
|
||||
{3510338400 10800 1 EEST}
|
||||
{3510424800 10800 1 EEST}
|
||||
{3528568800 7200 0 EET}
|
||||
{3541788000 10800 1 EEST}
|
||||
{3560623200 7200 0 EET}
|
||||
{3573237600 10800 1 EEST}
|
||||
{3541874400 10800 1 EEST}
|
||||
{3560018400 7200 0 EET}
|
||||
{3573324000 10800 1 EEST}
|
||||
{3592072800 7200 0 EET}
|
||||
{3605292000 10800 1 EEST}
|
||||
{3604773600 10800 1 EEST}
|
||||
{3623522400 7200 0 EET}
|
||||
{3636741600 10800 1 EEST}
|
||||
{3636223200 10800 1 EEST}
|
||||
{3654972000 7200 0 EET}
|
||||
{3668191200 10800 1 EEST}
|
||||
{3668277600 10800 1 EEST}
|
||||
{3686421600 7200 0 EET}
|
||||
{3699640800 10800 1 EEST}
|
||||
{3699727200 10800 1 EEST}
|
||||
{3717871200 7200 0 EET}
|
||||
{3731090400 10800 1 EEST}
|
||||
{3731176800 10800 1 EEST}
|
||||
{3749925600 7200 0 EET}
|
||||
{3762540000 10800 1 EEST}
|
||||
{3762626400 10800 1 EEST}
|
||||
{3781375200 7200 0 EET}
|
||||
{3794594400 10800 1 EEST}
|
||||
{3794076000 10800 1 EEST}
|
||||
{3812824800 7200 0 EET}
|
||||
{3826044000 10800 1 EEST}
|
||||
{3825525600 10800 1 EEST}
|
||||
{3844274400 7200 0 EET}
|
||||
{3857493600 10800 1 EEST}
|
||||
{3857580000 10800 1 EEST}
|
||||
{3875724000 7200 0 EET}
|
||||
{3888943200 10800 1 EEST}
|
||||
{3907778400 7200 0 EET}
|
||||
{3920392800 10800 1 EEST}
|
||||
{3889029600 10800 1 EEST}
|
||||
{3907173600 7200 0 EET}
|
||||
{3920479200 10800 1 EEST}
|
||||
{3939228000 7200 0 EET}
|
||||
{3951842400 10800 1 EEST}
|
||||
{3951928800 10800 1 EEST}
|
||||
{3970677600 7200 0 EET}
|
||||
{3983896800 10800 1 EEST}
|
||||
{3983378400 10800 1 EEST}
|
||||
{4002127200 7200 0 EET}
|
||||
{4015346400 10800 1 EEST}
|
||||
{4015432800 10800 1 EEST}
|
||||
{4033576800 7200 0 EET}
|
||||
{4046796000 10800 1 EEST}
|
||||
{4046882400 10800 1 EEST}
|
||||
{4065026400 7200 0 EET}
|
||||
{4078245600 10800 1 EEST}
|
||||
{4097080800 7200 0 EET}
|
||||
{4078332000 10800 1 EEST}
|
||||
{4096476000 7200 0 EET}
|
||||
}
|
||||
|
||||
+94
-94
@@ -109,7 +109,7 @@ set TZData(:Asia/Hebron) {
|
||||
{1395957600 10800 1 EEST}
|
||||
{1414098000 7200 0 EET}
|
||||
{1427493600 10800 1 EEST}
|
||||
{1445547600 7200 0 EET}
|
||||
{1445551200 7200 0 EET}
|
||||
{1458946800 10800 1 EEST}
|
||||
{1477692000 7200 0 EET}
|
||||
{1490396400 10800 1 EEST}
|
||||
@@ -117,165 +117,165 @@ set TZData(:Asia/Hebron) {
|
||||
{1521846000 10800 1 EEST}
|
||||
{1540591200 7200 0 EET}
|
||||
{1553810400 10800 1 EEST}
|
||||
{1572040800 7200 0 EET}
|
||||
{1585260000 10800 1 EEST}
|
||||
{1604095200 7200 0 EET}
|
||||
{1616709600 10800 1 EEST}
|
||||
{1572037200 7200 0 EET}
|
||||
{1585346400 10800 1 EEST}
|
||||
{1603490400 7200 0 EET}
|
||||
{1616796000 10800 1 EEST}
|
||||
{1635544800 7200 0 EET}
|
||||
{1648159200 10800 1 EEST}
|
||||
{1648245600 10800 1 EEST}
|
||||
{1666994400 7200 0 EET}
|
||||
{1680213600 10800 1 EEST}
|
||||
{1679695200 10800 1 EEST}
|
||||
{1698444000 7200 0 EET}
|
||||
{1711663200 10800 1 EEST}
|
||||
{1711749600 10800 1 EEST}
|
||||
{1729893600 7200 0 EET}
|
||||
{1743112800 10800 1 EEST}
|
||||
{1743199200 10800 1 EEST}
|
||||
{1761343200 7200 0 EET}
|
||||
{1774562400 10800 1 EEST}
|
||||
{1793397600 7200 0 EET}
|
||||
{1806012000 10800 1 EEST}
|
||||
{1774648800 10800 1 EEST}
|
||||
{1792792800 7200 0 EET}
|
||||
{1806098400 10800 1 EEST}
|
||||
{1824847200 7200 0 EET}
|
||||
{1838066400 10800 1 EEST}
|
||||
{1837548000 10800 1 EEST}
|
||||
{1856296800 7200 0 EET}
|
||||
{1869516000 10800 1 EEST}
|
||||
{1868997600 10800 1 EEST}
|
||||
{1887746400 7200 0 EET}
|
||||
{1900965600 10800 1 EEST}
|
||||
{1901052000 10800 1 EEST}
|
||||
{1919196000 7200 0 EET}
|
||||
{1932415200 10800 1 EEST}
|
||||
{1932501600 10800 1 EEST}
|
||||
{1950645600 7200 0 EET}
|
||||
{1963864800 10800 1 EEST}
|
||||
{1963951200 10800 1 EEST}
|
||||
{1982700000 7200 0 EET}
|
||||
{1995314400 10800 1 EEST}
|
||||
{1995400800 10800 1 EEST}
|
||||
{2014149600 7200 0 EET}
|
||||
{2027368800 10800 1 EEST}
|
||||
{2026850400 10800 1 EEST}
|
||||
{2045599200 7200 0 EET}
|
||||
{2058818400 10800 1 EEST}
|
||||
{2058300000 10800 1 EEST}
|
||||
{2077048800 7200 0 EET}
|
||||
{2090268000 10800 1 EEST}
|
||||
{2090354400 10800 1 EEST}
|
||||
{2108498400 7200 0 EET}
|
||||
{2121717600 10800 1 EEST}
|
||||
{2140552800 7200 0 EET}
|
||||
{2153167200 10800 1 EEST}
|
||||
{2121804000 10800 1 EEST}
|
||||
{2139948000 7200 0 EET}
|
||||
{2153253600 10800 1 EEST}
|
||||
{2172002400 7200 0 EET}
|
||||
{2184616800 10800 1 EEST}
|
||||
{2184703200 10800 1 EEST}
|
||||
{2203452000 7200 0 EET}
|
||||
{2216671200 10800 1 EEST}
|
||||
{2216152800 10800 1 EEST}
|
||||
{2234901600 7200 0 EET}
|
||||
{2248120800 10800 1 EEST}
|
||||
{2248207200 10800 1 EEST}
|
||||
{2266351200 7200 0 EET}
|
||||
{2279570400 10800 1 EEST}
|
||||
{2279656800 10800 1 EEST}
|
||||
{2297800800 7200 0 EET}
|
||||
{2311020000 10800 1 EEST}
|
||||
{2329855200 7200 0 EET}
|
||||
{2342469600 10800 1 EEST}
|
||||
{2311106400 10800 1 EEST}
|
||||
{2329250400 7200 0 EET}
|
||||
{2342556000 10800 1 EEST}
|
||||
{2361304800 7200 0 EET}
|
||||
{2374524000 10800 1 EEST}
|
||||
{2374005600 10800 1 EEST}
|
||||
{2392754400 7200 0 EET}
|
||||
{2405973600 10800 1 EEST}
|
||||
{2405455200 10800 1 EEST}
|
||||
{2424204000 7200 0 EET}
|
||||
{2437423200 10800 1 EEST}
|
||||
{2437509600 10800 1 EEST}
|
||||
{2455653600 7200 0 EET}
|
||||
{2468872800 10800 1 EEST}
|
||||
{2487708000 7200 0 EET}
|
||||
{2500322400 10800 1 EEST}
|
||||
{2468959200 10800 1 EEST}
|
||||
{2487103200 7200 0 EET}
|
||||
{2500408800 10800 1 EEST}
|
||||
{2519157600 7200 0 EET}
|
||||
{2531772000 10800 1 EEST}
|
||||
{2531858400 10800 1 EEST}
|
||||
{2550607200 7200 0 EET}
|
||||
{2563826400 10800 1 EEST}
|
||||
{2563308000 10800 1 EEST}
|
||||
{2582056800 7200 0 EET}
|
||||
{2595276000 10800 1 EEST}
|
||||
{2595362400 10800 1 EEST}
|
||||
{2613506400 7200 0 EET}
|
||||
{2626725600 10800 1 EEST}
|
||||
{2626812000 10800 1 EEST}
|
||||
{2644956000 7200 0 EET}
|
||||
{2658175200 10800 1 EEST}
|
||||
{2677010400 7200 0 EET}
|
||||
{2689624800 10800 1 EEST}
|
||||
{2658261600 10800 1 EEST}
|
||||
{2676405600 7200 0 EET}
|
||||
{2689711200 10800 1 EEST}
|
||||
{2708460000 7200 0 EET}
|
||||
{2721679200 10800 1 EEST}
|
||||
{2721160800 10800 1 EEST}
|
||||
{2739909600 7200 0 EET}
|
||||
{2753128800 10800 1 EEST}
|
||||
{2752610400 10800 1 EEST}
|
||||
{2771359200 7200 0 EET}
|
||||
{2784578400 10800 1 EEST}
|
||||
{2784664800 10800 1 EEST}
|
||||
{2802808800 7200 0 EET}
|
||||
{2816028000 10800 1 EEST}
|
||||
{2816114400 10800 1 EEST}
|
||||
{2834258400 7200 0 EET}
|
||||
{2847477600 10800 1 EEST}
|
||||
{2847564000 10800 1 EEST}
|
||||
{2866312800 7200 0 EET}
|
||||
{2878927200 10800 1 EEST}
|
||||
{2879013600 10800 1 EEST}
|
||||
{2897762400 7200 0 EET}
|
||||
{2910981600 10800 1 EEST}
|
||||
{2910463200 10800 1 EEST}
|
||||
{2929212000 7200 0 EET}
|
||||
{2942431200 10800 1 EEST}
|
||||
{2941912800 10800 1 EEST}
|
||||
{2960661600 7200 0 EET}
|
||||
{2973880800 10800 1 EEST}
|
||||
{2973967200 10800 1 EEST}
|
||||
{2992111200 7200 0 EET}
|
||||
{3005330400 10800 1 EEST}
|
||||
{3024165600 7200 0 EET}
|
||||
{3036780000 10800 1 EEST}
|
||||
{3005416800 10800 1 EEST}
|
||||
{3023560800 7200 0 EET}
|
||||
{3036866400 10800 1 EEST}
|
||||
{3055615200 7200 0 EET}
|
||||
{3068229600 10800 1 EEST}
|
||||
{3068316000 10800 1 EEST}
|
||||
{3087064800 7200 0 EET}
|
||||
{3100284000 10800 1 EEST}
|
||||
{3099765600 10800 1 EEST}
|
||||
{3118514400 7200 0 EET}
|
||||
{3131733600 10800 1 EEST}
|
||||
{3131820000 10800 1 EEST}
|
||||
{3149964000 7200 0 EET}
|
||||
{3163183200 10800 1 EEST}
|
||||
{3163269600 10800 1 EEST}
|
||||
{3181413600 7200 0 EET}
|
||||
{3194632800 10800 1 EEST}
|
||||
{3213468000 7200 0 EET}
|
||||
{3226082400 10800 1 EEST}
|
||||
{3194719200 10800 1 EEST}
|
||||
{3212863200 7200 0 EET}
|
||||
{3226168800 10800 1 EEST}
|
||||
{3244917600 7200 0 EET}
|
||||
{3258136800 10800 1 EEST}
|
||||
{3257618400 10800 1 EEST}
|
||||
{3276367200 7200 0 EET}
|
||||
{3289586400 10800 1 EEST}
|
||||
{3289068000 10800 1 EEST}
|
||||
{3307816800 7200 0 EET}
|
||||
{3321036000 10800 1 EEST}
|
||||
{3321122400 10800 1 EEST}
|
||||
{3339266400 7200 0 EET}
|
||||
{3352485600 10800 1 EEST}
|
||||
{3371320800 7200 0 EET}
|
||||
{3383935200 10800 1 EEST}
|
||||
{3352572000 10800 1 EEST}
|
||||
{3370716000 7200 0 EET}
|
||||
{3384021600 10800 1 EEST}
|
||||
{3402770400 7200 0 EET}
|
||||
{3415384800 10800 1 EEST}
|
||||
{3415471200 10800 1 EEST}
|
||||
{3434220000 7200 0 EET}
|
||||
{3447439200 10800 1 EEST}
|
||||
{3446920800 10800 1 EEST}
|
||||
{3465669600 7200 0 EET}
|
||||
{3478888800 10800 1 EEST}
|
||||
{3478975200 10800 1 EEST}
|
||||
{3497119200 7200 0 EET}
|
||||
{3510338400 10800 1 EEST}
|
||||
{3510424800 10800 1 EEST}
|
||||
{3528568800 7200 0 EET}
|
||||
{3541788000 10800 1 EEST}
|
||||
{3560623200 7200 0 EET}
|
||||
{3573237600 10800 1 EEST}
|
||||
{3541874400 10800 1 EEST}
|
||||
{3560018400 7200 0 EET}
|
||||
{3573324000 10800 1 EEST}
|
||||
{3592072800 7200 0 EET}
|
||||
{3605292000 10800 1 EEST}
|
||||
{3604773600 10800 1 EEST}
|
||||
{3623522400 7200 0 EET}
|
||||
{3636741600 10800 1 EEST}
|
||||
{3636223200 10800 1 EEST}
|
||||
{3654972000 7200 0 EET}
|
||||
{3668191200 10800 1 EEST}
|
||||
{3668277600 10800 1 EEST}
|
||||
{3686421600 7200 0 EET}
|
||||
{3699640800 10800 1 EEST}
|
||||
{3699727200 10800 1 EEST}
|
||||
{3717871200 7200 0 EET}
|
||||
{3731090400 10800 1 EEST}
|
||||
{3731176800 10800 1 EEST}
|
||||
{3749925600 7200 0 EET}
|
||||
{3762540000 10800 1 EEST}
|
||||
{3762626400 10800 1 EEST}
|
||||
{3781375200 7200 0 EET}
|
||||
{3794594400 10800 1 EEST}
|
||||
{3794076000 10800 1 EEST}
|
||||
{3812824800 7200 0 EET}
|
||||
{3826044000 10800 1 EEST}
|
||||
{3825525600 10800 1 EEST}
|
||||
{3844274400 7200 0 EET}
|
||||
{3857493600 10800 1 EEST}
|
||||
{3857580000 10800 1 EEST}
|
||||
{3875724000 7200 0 EET}
|
||||
{3888943200 10800 1 EEST}
|
||||
{3907778400 7200 0 EET}
|
||||
{3920392800 10800 1 EEST}
|
||||
{3889029600 10800 1 EEST}
|
||||
{3907173600 7200 0 EET}
|
||||
{3920479200 10800 1 EEST}
|
||||
{3939228000 7200 0 EET}
|
||||
{3951842400 10800 1 EEST}
|
||||
{3951928800 10800 1 EEST}
|
||||
{3970677600 7200 0 EET}
|
||||
{3983896800 10800 1 EEST}
|
||||
{3983378400 10800 1 EEST}
|
||||
{4002127200 7200 0 EET}
|
||||
{4015346400 10800 1 EEST}
|
||||
{4015432800 10800 1 EEST}
|
||||
{4033576800 7200 0 EET}
|
||||
{4046796000 10800 1 EEST}
|
||||
{4046882400 10800 1 EEST}
|
||||
{4065026400 7200 0 EET}
|
||||
{4078245600 10800 1 EEST}
|
||||
{4097080800 7200 0 EET}
|
||||
{4078332000 10800 1 EEST}
|
||||
{4096476000 7200 0 EET}
|
||||
}
|
||||
|
||||
@@ -2,17 +2,19 @@
|
||||
|
||||
set TZData(:Europe/Budapest) {
|
||||
{-9223372036854775808 4580 0 LMT}
|
||||
{-2500938980 3600 0 CET}
|
||||
{-2498260580 3600 0 CET}
|
||||
{-1693706400 7200 1 CEST}
|
||||
{-1680483600 3600 0 CET}
|
||||
{-1663455600 7200 1 CEST}
|
||||
{-1650150000 3600 0 CET}
|
||||
{-1640998800 3600 0 CET}
|
||||
{-1633212000 7200 1 CEST}
|
||||
{-1632006000 7200 1 CEST}
|
||||
{-1618700400 3600 0 CET}
|
||||
{-1600466400 7200 1 CEST}
|
||||
{-1581202800 3600 0 CET}
|
||||
{-906771600 3600 0 CET}
|
||||
{-1600470000 7200 1 CEST}
|
||||
{-1587250800 3600 0 CET}
|
||||
{-1569711600 7200 1 CEST}
|
||||
{-1555196400 3600 0 CET}
|
||||
{-906775200 3600 0 CET}
|
||||
{-857257200 3600 0 CET}
|
||||
{-844556400 7200 1 CEST}
|
||||
{-828226800 3600 0 CET}
|
||||
@@ -20,33 +22,32 @@ set TZData(:Europe/Budapest) {
|
||||
{-796777200 3600 0 CET}
|
||||
{-788922000 3600 0 CET}
|
||||
{-778471200 7200 1 CEST}
|
||||
{-762660000 3600 0 CET}
|
||||
{-762656400 3600 0 CET}
|
||||
{-749689200 7200 1 CEST}
|
||||
{-733359600 3600 0 CET}
|
||||
{-733276800 3600 0 CET}
|
||||
{-717634800 7200 1 CEST}
|
||||
{-701910000 3600 0 CET}
|
||||
{-686185200 7200 1 CEST}
|
||||
{-670460400 3600 0 CET}
|
||||
{-654130800 7200 1 CEST}
|
||||
{-639010800 3600 0 CET}
|
||||
{-621990000 7200 1 CEST}
|
||||
{-605660400 3600 0 CET}
|
||||
{-492656400 7200 1 CEST}
|
||||
{-481168800 3600 0 CET}
|
||||
{-461120400 7200 1 CEST}
|
||||
{-449632800 3600 0 CET}
|
||||
{-428547600 7200 1 CEST}
|
||||
{-418269600 3600 0 CET}
|
||||
{-397094400 7200 1 CEST}
|
||||
{-461199600 7200 1 CEST}
|
||||
{-449708400 3600 0 CET}
|
||||
{-428540400 7200 1 CEST}
|
||||
{-418258800 3600 0 CET}
|
||||
{-397090800 7200 1 CEST}
|
||||
{-386809200 3600 0 CET}
|
||||
{323827200 7200 1 CEST}
|
||||
{338950800 3600 0 CET}
|
||||
{354675600 7200 1 CEST}
|
||||
{370400400 3600 0 CET}
|
||||
{386125200 7200 1 CEST}
|
||||
{401850000 3600 0 CET}
|
||||
{417574800 7200 1 CEST}
|
||||
{433299600 3600 0 CET}
|
||||
{323823600 7200 1 CEST}
|
||||
{338943600 3600 0 CET}
|
||||
{354668400 7200 1 CEST}
|
||||
{370393200 3600 0 CET}
|
||||
{386118000 7200 1 CEST}
|
||||
{401842800 3600 0 CET}
|
||||
{417567600 7200 1 CEST}
|
||||
{433292400 3600 0 CET}
|
||||
{441759600 3600 0 CET}
|
||||
{449024400 7200 1 CEST}
|
||||
{465354000 3600 0 CET}
|
||||
{481078800 7200 1 CEST}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
set TZData(:Europe/Monaco) {
|
||||
{-9223372036854775808 1772 0 LMT}
|
||||
{-2486680172 561 0 PMT}
|
||||
{-1855958961 0 0 WET}
|
||||
{-2448318572 561 0 PMT}
|
||||
{-1854403761 0 0 WET}
|
||||
{-1689814800 3600 1 WEST}
|
||||
{-1680397200 0 0 WET}
|
||||
{-1665363600 3600 1 WEST}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
set TZData(:Europe/Paris) {
|
||||
{-9223372036854775808 561 0 LMT}
|
||||
{-2486678901 561 0 PMT}
|
||||
{-1855958901 0 0 WET}
|
||||
{-2486592561 561 0 PMT}
|
||||
{-1855958961 0 0 WET}
|
||||
{-1689814800 3600 1 WEST}
|
||||
{-1680397200 0 0 WET}
|
||||
{-1665363600 3600 1 WEST}
|
||||
|
||||
@@ -29,7 +29,7 @@ set TZData(:Pacific/Fiji) {
|
||||
{1547301600 43200 0 +12}
|
||||
{1573308000 46800 1 +12}
|
||||
{1578751200 43200 0 +12}
|
||||
{1604757600 46800 1 +12}
|
||||
{1608386400 46800 1 +12}
|
||||
{1610805600 43200 0 +12}
|
||||
{1636812000 46800 1 +12}
|
||||
{1642255200 43200 0 +12}
|
||||
|
||||
+13
-1
@@ -32,6 +32,18 @@ MANDIR ?= ${PREFIX}/man
|
||||
# set to non-empty value to install manpages in addition to html help:
|
||||
INSTALL_MANPAGES ?=
|
||||
|
||||
# Checks and overrides for subframework builds
|
||||
ifeq (${SUBFRAMEWORK},1)
|
||||
ifeq (${DYLIB_INSTALL_DIR},)
|
||||
@echo "Cannot install subframework with empty DYLIB_INSTALL_DIR !" && false
|
||||
endif
|
||||
ifeq (${DESTDIR},)
|
||||
@echo "Cannot install subframework with empty DESTDIR !" && false
|
||||
endif
|
||||
override BUILD_DIR = ${DESTDIR}/build
|
||||
override INSTALL_PATH = /Frameworks
|
||||
endif
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------
|
||||
# meta targets
|
||||
|
||||
@@ -76,7 +88,7 @@ space := ${empty} ${empty}
|
||||
objdir = $(subst ${space},\ ,${OBJ_DIR})
|
||||
|
||||
develop_make_args := BUILD_STYLE=Development CONFIGURE_ARGS=--enable-symbols
|
||||
deploy_make_args := BUILD_STYLE=Deployment INSTALL_TARGET=install-strip \
|
||||
deploy_make_args := BUILD_STYLE=Deployment INSTALL_TARGET=install \
|
||||
EXTRA_CFLAGS=-DNDEBUG
|
||||
embedded_make_args := EMBEDDED_BUILD=1
|
||||
install_make_args := INSTALL_BUILD=1
|
||||
|
||||
@@ -165,3 +165,13 @@ If you only want to build and install the debug or optimized build, use the
|
||||
For example, to build and install only the optimized versions:
|
||||
make -C tcl${ver}/macosx deploy
|
||||
sudo make -C tcl${ver}/macosx install-deploy
|
||||
|
||||
- To build a Tcl.framework for use as a subframework in another framework, use the
|
||||
install-embedded target and set SUBFRAMEWORK=1. Set the DYLIB_INSTALL_DIR
|
||||
variable to the path which should be the install_name path of the Tcl library, set
|
||||
the DESTDIR variable to the pathname of a staging directory where the framework
|
||||
will be written . For example, running this command in the Tcl source directory:
|
||||
make -C macosx install-embedded SUBFRAMEWORK=1 DESTDIR=/tmp/tcl \
|
||||
DYLIB_INSTALL_DIR=/Library/Frameworks/Some.framework/Versions/X.Y/Frameworks/Tcl.framework
|
||||
will produce a Tcl.framework intended for installing as a subframework of
|
||||
Some.framework. The framework will be found in /tmp/tcl/Frameworks/
|
||||
|
||||
@@ -19,7 +19,7 @@ GCC_NO_COMMON_BLOCKS = YES
|
||||
GCC_DYNAMIC_NO_PIC = YES
|
||||
GCC_VERSION = 4.2
|
||||
GCC = gcc-$(GCC_VERSION)
|
||||
WARNING_CFLAGS = -Wall -Wwrite-strings -Wextra -Wdeclaration-after-statement -Wno-unused-parameter -Wno-missing-field-initializers -Wno-unused-value -Winit-self -Wpointer-arith -Wcast-align -Wdisabled-optimization -Winline $(WARNING_CFLAGS)
|
||||
WARNING_CFLAGS = -Wall -Wextra -Wshadow -Wwrite-strings -Wpointer-arith -Wc++-compat -Wdeclaration-after-statement -Winit-self -Wcast-align -Wdisabled-optimization -Winline $(WARNING_CFLAGS)
|
||||
BINDIR = $(PREFIX)/bin
|
||||
CFLAGS = $(CFLAGS)
|
||||
CPPFLAGS = -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET) $(CPPFLAGS)
|
||||
|
||||
@@ -192,11 +192,11 @@ TclMacOSXGetFileAttribute(
|
||||
OSSwapBigToHostInt32(finder->type));
|
||||
break;
|
||||
case MACOSX_HIDDEN_ATTRIBUTE:
|
||||
*attributePtrPtr = Tcl_NewWideIntObj(
|
||||
TclNewIntObj(*attributePtrPtr,
|
||||
(finder->fdFlags & kFinfoIsInvisible) != 0);
|
||||
break;
|
||||
case MACOSX_RSRCLENGTH_ATTRIBUTE:
|
||||
*attributePtrPtr = Tcl_NewWideIntObj(*rsrcForkSize);
|
||||
TclNewIntObj(*attributePtrPtr, *rsrcForkSize);
|
||||
break;
|
||||
}
|
||||
return TCL_OK;
|
||||
|
||||
+2
-2
@@ -32,7 +32,7 @@ test append-1.3 {append command} {
|
||||
|
||||
test append-2.1 {long appends} {
|
||||
set x ""
|
||||
for {set i 0} {$i < 1000} {set i [expr $i+1]} {
|
||||
for {set i 0} {$i < 1000} {incr i} {
|
||||
append x "foobar "
|
||||
}
|
||||
set y "foobar"
|
||||
@@ -158,7 +158,7 @@ test append-5.1 {long lappends} -setup {
|
||||
if {$l != $size} {
|
||||
return "length mismatch: should have been $size, was $l"
|
||||
}
|
||||
for {set i 0} {$i < $size} {set i [expr $i+1]} {
|
||||
for {set i 0} {$i < $size} {incr i} {
|
||||
set j [lindex $var $i]
|
||||
if {$j ne "item $i"} {
|
||||
return "element $i should have been \"item $i\", was \"$j\""
|
||||
|
||||
@@ -41,7 +41,7 @@ test appendComp-1.3 {append command} {
|
||||
test appendComp-2.1 {long appends} {
|
||||
proc foo {} {
|
||||
set x ""
|
||||
for {set i 0} {$i < 1000} {set i [expr $i+1]} {
|
||||
for {set i 0} {$i < 1000} {incr i} {
|
||||
append x "foobar "
|
||||
}
|
||||
set y "foobar"
|
||||
@@ -223,7 +223,7 @@ test appendComp-5.1 {long lappends} -setup {
|
||||
}
|
||||
} -body {
|
||||
set x ""
|
||||
for {set i 0} {$i < 300} {set i [expr $i+1]} {
|
||||
for {set i 0} {$i < 300} {incr i} {
|
||||
lappend x "item $i"
|
||||
}
|
||||
check $x 300
|
||||
|
||||
+1
-1
@@ -25,7 +25,7 @@ testConstraint memory [llength [info commands memory]]
|
||||
|
||||
# Tests for wrong number of arguments
|
||||
|
||||
test apply-1.1 {too few arguments} -returnCodes error -body {
|
||||
test apply-1.1 {not enough arguments} -returnCodes error -body {
|
||||
apply
|
||||
} -result {wrong # args: should be "apply lambdaExpr ?arg ...?"}
|
||||
|
||||
|
||||
@@ -40,8 +40,8 @@ namespace import -force blt::*
|
||||
# Should be able to handle "proc" definitions, even if they are preceded by
|
||||
# white space.
|
||||
|
||||
proc normal {x y} {return [expr $x+$y]}
|
||||
proc indented {x y} {return [expr $x+$y]}
|
||||
proc normal {x y} {return [expr {$x+$y}]}
|
||||
proc indented {x y} {return [expr {$x+$y}]}
|
||||
|
||||
#
|
||||
# Should be able to handle proc declarations within namespaces, even if they
|
||||
|
||||
+1
-1
@@ -674,7 +674,7 @@ proc l3 {} {
|
||||
# Do all tests once byte compiled and once with direct string evaluation
|
||||
foreach noComp {0 1} {
|
||||
|
||||
if $noComp {
|
||||
if {$noComp} {
|
||||
interp alias {} run {} testevalex
|
||||
set constraints testevalex
|
||||
} else {
|
||||
|
||||
+10
-10
@@ -3050,7 +3050,7 @@ test chan-io-30.13 {Tcl_Write crlf on block boundary, Tcl_Read auto} -setup {
|
||||
string length [chan read $f]
|
||||
} -cleanup {
|
||||
chan close $f
|
||||
} -result [expr 700*15+1]
|
||||
} -result [expr {700*15 + 1}]
|
||||
test chan-io-30.14 {Tcl_Write crlf on block boundary, Tcl_Read crlf} -setup {
|
||||
file delete $path(test1)
|
||||
} -body {
|
||||
@@ -3067,7 +3067,7 @@ test chan-io-30.14 {Tcl_Write crlf on block boundary, Tcl_Read crlf} -setup {
|
||||
string length [chan read $f]
|
||||
} -cleanup {
|
||||
chan close $f
|
||||
} -result [expr 700*15+1]
|
||||
} -result [expr {700*15 + 1}]
|
||||
test chan-io-30.15 {Tcl_Write mixed, Tcl_Read auto} -setup {
|
||||
file delete $path(test1)
|
||||
} -body {
|
||||
@@ -3909,7 +3909,7 @@ test chan-io-31.31 {Tcl_Write crlf on block boundary, Tcl_Gets crlf} -setup {
|
||||
}
|
||||
chan close $f
|
||||
string length $c
|
||||
} -result [expr 700*15+1]
|
||||
} -result [expr {700*15 + 1}]
|
||||
test chan-io-31.32 {Tcl_Write crlf on block boundary, Tcl_Gets auto} -setup {
|
||||
file delete $path(test1)
|
||||
set c ""
|
||||
@@ -3929,7 +3929,7 @@ test chan-io-31.32 {Tcl_Write crlf on block boundary, Tcl_Gets auto} -setup {
|
||||
}
|
||||
chan close $f
|
||||
string length $c
|
||||
} -result [expr 700*15+1]
|
||||
} -result [expr {700*15 + 1}]
|
||||
|
||||
# Test Tcl_Read and buffering.
|
||||
|
||||
@@ -5340,7 +5340,7 @@ test chan-io-40.2 {POSIX open access modes: CREAT} -setup {
|
||||
} -constraints {unix} -body {
|
||||
set f [open $path(test3) {WRONLY CREAT} 0600]
|
||||
file stat $path(test3) stats
|
||||
set x [format "%#o" [expr $stats(mode)&0o777]]
|
||||
set x [format "%#o" [expr {$stats(mode) & 0o777}]]
|
||||
chan puts $f "line 1"
|
||||
chan close $f
|
||||
set f [open $path(test3) r]
|
||||
@@ -5354,7 +5354,7 @@ test chan-io-40.3 {POSIX open access modes: CREAT} -setup {
|
||||
# This test only works if your umask is 2, like ouster's.
|
||||
chan close [open $path(test3) {WRONLY CREAT}]
|
||||
file stat $path(test3) stats
|
||||
format "%#o" [expr $stats(mode)&0o777]
|
||||
format "%#o" [expr {$stats(mode) & 0o777}]
|
||||
} -result [format %#5o [expr {0o666 & ~ $umaskValue}]]
|
||||
test chan-io-40.4 {POSIX open access modes: CREAT} -setup {
|
||||
file delete $path(test3)
|
||||
@@ -6721,7 +6721,7 @@ test chan-io-52.6 {TclCopyChannel} -setup {
|
||||
set f2 [open $path(test1) w]
|
||||
chan configure $f1 -translation lf -blocking 0
|
||||
chan configure $f2 -translation lf -blocking 0
|
||||
set s0 [chan copy $f1 $f2 -size [expr [file size $thisScript] + 5]]
|
||||
set s0 [chan copy $f1 $f2 -size [expr {[file size $thisScript] + 5}]]
|
||||
set result [list [chan configure $f1 -blocking] [chan configure $f2 -blocking]]
|
||||
chan close $f1
|
||||
chan close $f2
|
||||
@@ -6963,7 +6963,7 @@ test chan-io-53.5 {CopyData: error during chan copy} {socket fcopy} {
|
||||
chan close $listen ;# This means the socket open never really succeeds
|
||||
chan copy $in $out -command [namespace code FcopyTestDone]
|
||||
variable fcopyTestDone
|
||||
if ![info exists fcopyTestDone] {
|
||||
if {![info exists fcopyTestDone]} {
|
||||
vwait [namespace which -variable fcopyTestDone] ;# The error occurs here in the b.g.
|
||||
}
|
||||
chan close $in
|
||||
@@ -6983,7 +6983,7 @@ test chan-io-53.6 {CopyData: error during chan copy} -setup {
|
||||
set out [open $path(test1) w]
|
||||
chan copy $in $out -command [namespace code FcopyTestDone]
|
||||
variable fcopyTestDone
|
||||
if ![info exists fcopyTestDone] {
|
||||
if {![info exists fcopyTestDone]} {
|
||||
vwait [namespace which -variable fcopyTestDone]
|
||||
}
|
||||
return $fcopyTestDone ;# 0 for plain end of file
|
||||
@@ -7036,7 +7036,7 @@ test chan-io-53.7 {CopyData: Flooding chan copy from pipe} -setup {
|
||||
vwait [namespace which -variable fcopyTestDone]
|
||||
}
|
||||
# -1=error 0=script error N=number of bytes
|
||||
expr ($fcopyTestDone == 0) ? $fcopyTestCount : -1
|
||||
expr {($fcopyTestDone == 0) ? $fcopyTestCount : -1}
|
||||
} -cleanup {
|
||||
catch {chan close $in}
|
||||
chan close $out
|
||||
|
||||
+3
-3
@@ -35436,7 +35436,7 @@ test clock-32.1 {scan/format across the Gregorian change} {
|
||||
|
||||
# clock clicks
|
||||
test clock-33.1 {clock clicks tests} {
|
||||
expr [clock clicks]+1
|
||||
expr {[clock clicks] + 1}
|
||||
concat {}
|
||||
} {}
|
||||
test clock-33.2 {clock clicks tests} {
|
||||
@@ -35449,7 +35449,7 @@ test clock-33.3 {clock clicks tests} {
|
||||
list [catch {clock clicks foo} msg] $msg
|
||||
} {1 {bad option "foo": must be -milliseconds or -microseconds}}
|
||||
test clock-33.4 {clock clicks tests} {
|
||||
expr [clock clicks -milliseconds]+1
|
||||
expr {[clock clicks -milliseconds] + 1}
|
||||
concat {}
|
||||
} {}
|
||||
test clock-33.4a {clock milliseconds} {
|
||||
@@ -35905,7 +35905,7 @@ test clock-34.68 {clock scan tests (merid and TZ)} {
|
||||
|
||||
# clock seconds
|
||||
test clock-35.1 {clock seconds tests} {
|
||||
expr [clock seconds]+1
|
||||
expr {[clock seconds] + 1}
|
||||
concat {}
|
||||
} {}
|
||||
test clock-35.2 {clock seconds tests} {
|
||||
|
||||
+4
-3
@@ -30,6 +30,7 @@ testConstraint linkDirectory [expr {
|
||||
($::tcl_platform(osVersion) >= 5.0
|
||||
&& [lindex [file system [temporaryDirectory]] 1] eq "NTFS")
|
||||
}]
|
||||
testConstraint notWine [expr {$::tcl_platform(platform) ne "windows" || ![info exists ::env(TRAVIS_OS_NAME)] || ![string match linux $::env(TRAVIS_OS_NAME)]}]
|
||||
|
||||
global env
|
||||
set cmdAHwd [pwd]
|
||||
@@ -1092,7 +1093,7 @@ test cmdAH-23.4 {Tcl_FileObjCmd: lstat} -setup {
|
||||
unset -nocomplain stat
|
||||
} -constraints {unix nonPortable} -body {
|
||||
file lstat $linkfile stat
|
||||
list $stat(nlink) [expr $stat(mode)&0777] $stat(type)
|
||||
list $stat(nlink) [expr {$stat(mode) & 0o777}] $stat(type)
|
||||
} -result {1 511 link}
|
||||
test cmdAH-23.5 {Tcl_FileObjCmd: lstat errors} {nonPortable} {
|
||||
list [catch {file lstat _bogus_ stat} msg] [string tolower $msg] \
|
||||
@@ -1348,7 +1349,7 @@ test cmdAH-25.2.1 {Tcl_FileObjCmd: owned} -constraints unix -setup {
|
||||
test cmdAH-25.3 {Tcl_FileObjCmd: owned} {unix notRoot} {
|
||||
file owned /
|
||||
} 0
|
||||
test cmdAH-25.3.1 {Tcl_FileObjCmd: owned} -constraints win -body {
|
||||
test cmdAH-25.3.1 {Tcl_FileObjCmd: owned} -constraints {win notWine} -body {
|
||||
if {[info exists env(SystemRoot)]} {
|
||||
file owned $env(SystemRoot)
|
||||
} else {
|
||||
@@ -1538,7 +1539,7 @@ test cmdAH-29.4 {Tcl_FileObjCmd: type} -constraints {unix} -setup {
|
||||
} -cleanup {
|
||||
file delete $linkfile
|
||||
} -result link
|
||||
test cmdAH-29.4.1 {Tcl_FileObjCmd: type} -constraints {linkDirectory} -setup {
|
||||
test cmdAH-29.4.1 {Tcl_FileObjCmd: type} -constraints {linkDirectory notWine} -setup {
|
||||
set tempdir [makeDirectory temp]
|
||||
} -body {
|
||||
set linkdir [file join [temporaryDirectory] link.dir]
|
||||
|
||||
+1
-1
@@ -514,7 +514,7 @@ test cmdIL-5.5 {lsort with list style index and sharing} -body {
|
||||
foreach e $l {lappend n [list [expr {rand()}] $e]}
|
||||
lindex [lsort -real -index $l $n] 1 1
|
||||
}
|
||||
expr srand(1)
|
||||
expr {srand(1)}
|
||||
test_lsort 0
|
||||
} -result 0 -cleanup {
|
||||
rename test_lsort ""
|
||||
|
||||
@@ -578,13 +578,13 @@ test compExpr-old-15.3 {CompileMathFuncCall: too many arguments} -body {
|
||||
test compExpr-old-15.4 {CompileMathFuncCall: ')' found before last required arg} -body {
|
||||
catch {expr sin()} msg
|
||||
set ::errorInfo
|
||||
} -match glob -result {too few arguments for math function*
|
||||
} -match glob -result {not enough arguments for math function*
|
||||
while *ing
|
||||
"expr sin()"}
|
||||
test compExpr-old-15.5 {CompileMathFuncCall: too few arguments} -body {
|
||||
test compExpr-old-15.5 {CompileMathFuncCall: not enough arguments} -body {
|
||||
catch {expr pow(1)} msg
|
||||
set ::errorInfo
|
||||
} -match glob -result {too few arguments for math function*
|
||||
} -match glob -result {not enough arguments for math function*
|
||||
while *ing
|
||||
"expr pow(1)"}
|
||||
test compExpr-old-15.6 {CompileMathFuncCall: missing ')'} -body {
|
||||
|
||||
+40
-4
@@ -308,16 +308,16 @@ test compExpr-4.9 {CompileCondExpr procedure, error in "false" clause} {
|
||||
} {0 15}
|
||||
|
||||
test compExpr-5.1 {CompileMathFuncCall procedure, math function found} {
|
||||
format %.6g [expr atan2(1.0, 2.0)]
|
||||
format %.6g [expr {atan2(1.0, 2.0)}]
|
||||
} 0.463648
|
||||
test compExpr-5.2 {CompileMathFuncCall procedure, math function not found} -body {
|
||||
expr {do_it()}
|
||||
} -returnCodes error -match glob -result {* "*do_it"}
|
||||
test compExpr-5.5 {CompileMathFuncCall procedure, too few arguments} -body {
|
||||
test compExpr-5.5 {CompileMathFuncCall procedure, not enough arguments} -body {
|
||||
expr {atan2(1.0)}
|
||||
} -returnCodes error -match glob -result {too few arguments for math function*}
|
||||
} -returnCodes error -match glob -result {not enough arguments for math function*}
|
||||
test compExpr-5.6 {CompileMathFuncCall procedure, complex argument} {
|
||||
format %.6g [expr pow(2.1, 27.5-(24.4*(5%2)))]
|
||||
format %.6g [expr {pow(2.1, 27.5-(24.4*(5%2)))}]
|
||||
} 9.97424
|
||||
test compExpr-5.7 {CompileMathFuncCall procedure, error in argument} -body {
|
||||
expr {sinh(2.*)}
|
||||
@@ -371,10 +371,46 @@ test compExpr-7.2 {[Bug 1869989]: expr parser memleak} -constraints memory -setu
|
||||
unset end i tmp
|
||||
rename getbytes {}
|
||||
} -result 0
|
||||
|
||||
proc extract {opcodes descriptor} {
|
||||
set instructions [dict values [dict get $descriptor instructions]]
|
||||
return [lmap i $instructions {
|
||||
if {[lindex $i 0] in $opcodes} {string cat $i} else continue
|
||||
}]
|
||||
}
|
||||
|
||||
test compExpr-8.1 {TIP 582: expression comments} -setup {} -body {
|
||||
extract {loadStk add} [tcl::unsupported::getbytecode script {expr {
|
||||
$abc
|
||||
# + $def
|
||||
+ $ghi
|
||||
}}]
|
||||
} -result {loadStk loadStk add}
|
||||
test compExpr-8.2 {TIP 582: expression comments} -setup {} -body {
|
||||
extract {loadStk add} [tcl::unsupported::getbytecode script {expr {
|
||||
$abc
|
||||
# + $def
|
||||
# + $ghi }}]
|
||||
} -result loadStk
|
||||
test compExpr-8.3 {TIP 582: expression comments} -setup {} -body {
|
||||
extract {loadStk add} [tcl::unsupported::getbytecode script {expr {
|
||||
$abc
|
||||
# + $def\
|
||||
+ $ghi
|
||||
}}]
|
||||
} -result loadStk
|
||||
test compExpr-8.4 {TIP 582: expression comments} -setup {} -body {
|
||||
extract {loadStk add} [tcl::unsupported::getbytecode script {expr {
|
||||
$abc
|
||||
# + $def\\
|
||||
+ $ghi
|
||||
}}]
|
||||
} -result {loadStk loadStk add}
|
||||
|
||||
# cleanup
|
||||
catch {unset a}
|
||||
catch {unset b}
|
||||
catch {rename extract ""}
|
||||
::tcltest::cleanupTests
|
||||
return
|
||||
|
||||
|
||||
+4
-4
@@ -204,7 +204,7 @@ test compile-4.1 {TclCompileForCmd: command substituted test expression} {
|
||||
set i 0
|
||||
set j 0
|
||||
# Should be "forever"
|
||||
for {} [expr $i < 3] {} {
|
||||
for {} [expr {$i < 3}] {} {
|
||||
set j [incr i]
|
||||
if {$j > 3} break
|
||||
}
|
||||
@@ -278,7 +278,7 @@ test compile-7.1 {TclCompileWhileCmd: command substituted test expression} {
|
||||
set i 0
|
||||
set j 0
|
||||
# Should be "forever"
|
||||
while [expr $i < 3] {
|
||||
while [expr {$i < 3}] {
|
||||
set j [incr i]
|
||||
if {$j > 3} break
|
||||
}
|
||||
@@ -337,7 +337,7 @@ test compile-11.6 {Tcl_Append*: ensure Tcl_ResetResult is used properly} -body {
|
||||
apply {{} { set r [list foobar] ; incr}}
|
||||
} -returnCodes error -result {wrong # args: should be "incr varName ?increment?"}
|
||||
test compile-11.7 {Tcl_Append*: ensure Tcl_ResetResult is used properly} -body {
|
||||
apply {{} { set r [list foobar] ; expr !a }}
|
||||
apply {{} { set r [list foobar] ; expr [concat !a] }}
|
||||
} -returnCodes error -match glob -result *
|
||||
test compile-11.8 {Tcl_Append*: ensure Tcl_ResetResult is used properly} -body {
|
||||
apply {{} { set r [list foobar] ; expr {!a} }}
|
||||
@@ -566,7 +566,7 @@ test compile-15.5 {proper TCL_RETURN code from [return]} {
|
||||
# Do all tests once byte compiled and once with direct string evaluation
|
||||
foreach noComp {0 1} {
|
||||
|
||||
if $noComp {
|
||||
if {$noComp} {
|
||||
interp alias {} run {} testevalex
|
||||
set constraints testevalex
|
||||
} else {
|
||||
|
||||
+3
-1
@@ -104,7 +104,9 @@ variable keep {
|
||||
SHLIB_PATH SYSTEMDRIVE SYSTEMROOT DYLD_LIBRARY_PATH DYLD_FRAMEWORK_PATH
|
||||
DYLD_NEW_LOCAL_SHARED_REGIONS DYLD_NO_FIX_PREBINDING
|
||||
__CF_USER_TEXT_ENCODING SECURITYSESSIONID LANG WINDIR TERM
|
||||
CommonProgramFiles ProgramFiles CommonProgramW6432 ProgramW6432
|
||||
CommonProgramFiles CommonProgramFiles(x86) ProgramFiles
|
||||
ProgramFiles(x86) CommonProgramW6432 ProgramW6432
|
||||
WINECONFIGDIR WINEDATADIR WINEDLLDIR0 WINEHOMEDIR
|
||||
}
|
||||
|
||||
variable printenvScript [makeFile [string map [list @keep@ [list $keep]] {
|
||||
|
||||
+15
-15
@@ -821,49 +821,49 @@ test execute-7.10 {Wide int handling in INST_MOD} {
|
||||
expr {((wide(1)<<60)-1) % 0x400000000}
|
||||
} 17179869183
|
||||
test execute-7.11 {Wide int handling in INST_LSHIFT} {
|
||||
expr wide(42)<<30
|
||||
expr {wide(42) << 30}
|
||||
} 45097156608
|
||||
test execute-7.12 {Wide int handling in INST_LSHIFT} {
|
||||
expr 12345678901<<3
|
||||
expr {12345678901 << 3}
|
||||
} 98765431208
|
||||
test execute-7.13 {Wide int handling in INST_RSHIFT} {
|
||||
expr 0x543210febcda9876>>7
|
||||
expr {0x543210febcda9876 >> 7}
|
||||
} 47397893236700464
|
||||
test execute-7.14 {Wide int handling in INST_RSHIFT} {
|
||||
expr wide(0x9876543210febcda)>>7
|
||||
expr {wide(0x9876543210febcda) >> 7}
|
||||
} -58286587177206407
|
||||
test execute-7.15 {Wide int handling in INST_BITOR} {
|
||||
expr wide(0x9876543210febcda) | 0x543210febcda9876
|
||||
expr {wide(0x9876543210febcda) | 0x543210febcda9876}
|
||||
} -2560765885044310786
|
||||
test execute-7.16 {Wide int handling in INST_BITXOR} {
|
||||
expr wide(0x9876543210febcda) ^ 0x543210febcda9876
|
||||
expr {wide(0x9876543210febcda) ^ 0x543210febcda9876}
|
||||
} -3727778945703861076
|
||||
test execute-7.17 {Wide int handling in INST_BITAND} {
|
||||
expr wide(0x9876543210febcda) & 0x543210febcda9876
|
||||
expr {wide(0x9876543210febcda) & 0x543210febcda9876}
|
||||
} 1167013060659550290
|
||||
test execute-7.18 {Wide int handling in INST_ADD} {
|
||||
expr wide(0x7fffffff)+wide(0x7fffffff)
|
||||
expr {wide(0x7fffffff) + wide(0x7fffffff)}
|
||||
} 4294967294
|
||||
test execute-7.19 {Wide int handling in INST_ADD} {
|
||||
expr 0x7fffffff+wide(0x7fffffff)
|
||||
expr {0x7fffffff + wide(0x7fffffff)}
|
||||
} 4294967294
|
||||
test execute-7.20 {Wide int handling in INST_ADD} {
|
||||
expr wide(0x7fffffff)+0x7fffffff
|
||||
expr {wide(0x7fffffff) + 0x7fffffff}
|
||||
} 4294967294
|
||||
test execute-7.21 {Wide int handling in INST_ADD} {
|
||||
expr double(0x7fffffff)+wide(0x7fffffff)
|
||||
expr {double(0x7fffffff) + wide(0x7fffffff)}
|
||||
} 4294967294.0
|
||||
test execute-7.22 {Wide int handling in INST_ADD} {
|
||||
expr wide(0x7fffffff)+double(0x7fffffff)
|
||||
expr {wide(0x7fffffff) + double(0x7fffffff)}
|
||||
} 4294967294.0
|
||||
test execute-7.23 {Wide int handling in INST_SUB} {
|
||||
expr 0x123456789a-0x20406080a
|
||||
expr {0x123456789a - 0x20406080a}
|
||||
} 69530054800
|
||||
test execute-7.24 {Wide int handling in INST_MULT} {
|
||||
expr 0x123456789a*193
|
||||
expr {0x123456789a * 193}
|
||||
} 15090186251290
|
||||
test execute-7.25 {Wide int handling in INST_DIV} {
|
||||
expr 0x123456789a/193
|
||||
expr {0x123456789a / 193}
|
||||
} 405116546
|
||||
test execute-7.26 {Wide int handling in INST_UPLUS} {
|
||||
set x 0x123456871234568
|
||||
|
||||
+5
-5
@@ -524,7 +524,7 @@ test expr-old-26.10b {error conditions} ieeeFloatingPoint {
|
||||
list [catch {expr 2.0/0.0} msg] $msg
|
||||
} {0 Inf}
|
||||
test expr-old-26.11 {error conditions} -body {
|
||||
expr 2#
|
||||
expr 2`
|
||||
} -returnCodes error -match glob -result *
|
||||
test expr-old-26.12 {error conditions} -body {
|
||||
expr a.b
|
||||
@@ -852,7 +852,7 @@ test expr-old-32.46 {math functions in expressions} -body {
|
||||
} -match glob -result {1 {too many arguments for math function*}}
|
||||
test expr-old-32.47 {math functions in expressions} -body {
|
||||
list [catch {expr srand()} msg] $msg
|
||||
} -match glob -result {1 {too few arguments for math function*}}
|
||||
} -match glob -result {1 {not enough arguments for math function*}}
|
||||
test expr-old-32.48 {math functions in expressions} -body {
|
||||
expr srand(3.79)
|
||||
} -returnCodes error -match glob -result *
|
||||
@@ -909,7 +909,7 @@ test expr-old-34.6 {errors in math functions} -body {
|
||||
} -returnCodes error -match glob -result *
|
||||
test expr-old-34.7 {errors in math functions} -body {
|
||||
list [catch {expr hypot(1.0)} msg] $msg
|
||||
} -match glob -result {1 {too few arguments for math function*}}
|
||||
} -match glob -result {1 {not enough arguments for math function*}}
|
||||
test expr-old-34.8 {errors in math functions} -body {
|
||||
list [catch {expr hypot(1.0, 2.0, 3.0)} msg] $msg
|
||||
} -match glob -result {1 {too many arguments for math function*}}
|
||||
@@ -1150,7 +1150,7 @@ test expr-old-40.2 {min math function} -body {
|
||||
} -result 0.0
|
||||
test expr-old-40.3 {min math function} -body {
|
||||
expr {min()}
|
||||
} -returnCodes error -result {too few arguments for math function "min"}
|
||||
} -returnCodes error -result {not enough arguments for math function "min"}
|
||||
test expr-old-40.4 {min math function} -body {
|
||||
expr {min(wide(-1) << 30, 4.5, -10)}
|
||||
} -result [expr {wide(-1) << 30}]
|
||||
@@ -1175,7 +1175,7 @@ test expr-old-41.2 {max math function} -body {
|
||||
} -result 0.0
|
||||
test expr-old-41.3 {max math function} -body {
|
||||
expr {max()}
|
||||
} -returnCodes error -result {too few arguments for math function "max"}
|
||||
} -returnCodes error -result {not enough arguments for math function "max"}
|
||||
test expr-old-41.4 {max math function} -body {
|
||||
expr {max(wide(1) << 30, 4.5, -10)}
|
||||
} -result [expr {wide(1) << 30}]
|
||||
|
||||
+67
-6
@@ -685,13 +685,13 @@ test expr-15.3 {CompileMathFuncCall: too many arguments} -body {
|
||||
test expr-15.4 {CompileMathFuncCall: ')' found before last required arg} -body {
|
||||
catch {expr sin()} msg
|
||||
set ::errorInfo
|
||||
} -match glob -result {too few arguments for math function*
|
||||
} -match glob -result {not enough arguments for math function*
|
||||
while *ing
|
||||
"expr sin()"}
|
||||
test expr-15.5 {CompileMathFuncCall: too few arguments} -body {
|
||||
test expr-15.5 {CompileMathFuncCall: not enough arguments} -body {
|
||||
catch {expr pow(1)} msg
|
||||
set ::errorInfo
|
||||
} -match glob -result {too few arguments for math function*
|
||||
} -match glob -result {not enough arguments for math function*
|
||||
while *ing
|
||||
"expr pow(1)"}
|
||||
test expr-15.6 {CompileMathFuncCall: missing ')'} -body {
|
||||
@@ -7251,7 +7251,7 @@ test expr-52.1 {
|
||||
foreach func {isfinite isinf isnan isnormal issubnormal} {
|
||||
test expr-53.1.$func {float classification: basic arg handling} -body {
|
||||
expr ${func}()
|
||||
} -returnCodes error -result "too few arguments for math function \"$func\""
|
||||
} -returnCodes error -result "not enough arguments for math function \"$func\""
|
||||
test expr-53.2.$func {float classification: basic arg handling} -body {
|
||||
expr ${func}(1,2)
|
||||
} -returnCodes error -result "too many arguments for math function \"$func\""
|
||||
@@ -7346,10 +7346,10 @@ test expr-59.12 {float classification: fpclassify} -returnCodes error -body {
|
||||
|
||||
test expr-60.1 {float classification: basic arg handling} -body {
|
||||
expr isunordered()
|
||||
} -returnCodes error -result {too few arguments for math function "isunordered"}
|
||||
} -returnCodes error -result {not enough arguments for math function "isunordered"}
|
||||
test expr-60.2 {float classification: basic arg handling} -body {
|
||||
expr isunordered(1)
|
||||
} -returnCodes error -result {too few arguments for math function "isunordered"}
|
||||
} -returnCodes error -result {not enough arguments for math function "isunordered"}
|
||||
test expr-60.3 {float classification: basic arg handling} -body {
|
||||
expr {isunordered(1, 2, 3)}
|
||||
} -returnCodes error -result {too many arguments for math function "isunordered"}
|
||||
@@ -7384,6 +7384,67 @@ foreach v1 $values r1 $results {
|
||||
}
|
||||
}
|
||||
unset -nocomplain values results ctr
|
||||
|
||||
test expr-62.1 {TIP 582: comments} -body {
|
||||
expr {1 # + 2}
|
||||
} -result 1
|
||||
test expr-62.2 {TIP 582: comments} -body {
|
||||
expr "1 #\n+ 2"
|
||||
} -result 3
|
||||
test expr-62.3 {TIP 582: comments} -setup {
|
||||
set ctr 0
|
||||
} -body {
|
||||
expr {
|
||||
# This is a demonstration of a comment
|
||||
1 + 2 + 3
|
||||
# and another comment
|
||||
+ 4 + 5
|
||||
# + [incr ctr]
|
||||
+ [incr ctr]
|
||||
}
|
||||
} -result 16
|
||||
# Buggy because line breaks aren't tracked inside expressions at all
|
||||
test expr-62.4 {TIP 582: comments don't hide line breaks} -setup {
|
||||
proc getline {} {
|
||||
dict get [info frame -1] line
|
||||
}
|
||||
set base [getline]
|
||||
} -constraints knownBug -body {
|
||||
expr {
|
||||
0
|
||||
# a comment
|
||||
+ [getline] - $base
|
||||
}
|
||||
} -cleanup {
|
||||
rename getline ""
|
||||
} -result 5
|
||||
test expr-62.5 {TIP 582: comments don't splice tokens} {
|
||||
set a False
|
||||
expr {$a#don't splice
|
||||
ne#don't splice
|
||||
false}
|
||||
} 1
|
||||
test expr-62.6 {TIP 582: comments don't splice tokens} {
|
||||
expr {0x2#don't splice
|
||||
ne#don't splice
|
||||
2}
|
||||
} 1
|
||||
test expr-62.7 {TIP 582: comments can go inside function calls} {
|
||||
expr {max(1,# comment
|
||||
2)}
|
||||
} 2
|
||||
test expr-62.8 {TIP 582: comments can go inside function calls} {
|
||||
expr {max(1# comment
|
||||
,2)}
|
||||
} 2
|
||||
test expr-62.9 {TIP 582: comments can go inside function calls} {
|
||||
expr {max(# comment
|
||||
1,2)}
|
||||
} 2
|
||||
test expr-62.10 {TIP 582: comments can go inside function calls} {
|
||||
expr {max# comment
|
||||
(1,2)}
|
||||
} 2
|
||||
|
||||
# cleanup
|
||||
unset -nocomplain a
|
||||
|
||||
+21
-20
@@ -41,6 +41,7 @@ if {[testConstraint win]} {
|
||||
testConstraint reg 1
|
||||
}
|
||||
}
|
||||
testConstraint notWine [expr {$::tcl_platform(platform) ne "windows" || ![info exists ::env(TRAVIS_OS_NAME)] || ![string match linux $::env(TRAVIS_OS_NAME)]}]
|
||||
|
||||
set tmpspace /tmp;# default value
|
||||
# Find a group that exists on this Unix system, or else skip tests that
|
||||
@@ -416,7 +417,7 @@ test fCmd-5.4 {TclFileDeleteCmd: multiple files} -constraints notRoot -setup {
|
||||
} -cleanup {cleanup} -result {1 1 1 0 0 0}
|
||||
test fCmd-5.5 {TclFileDeleteCmd: stop at first error} -setup {
|
||||
cleanup
|
||||
} -constraints {notRoot unixOrWin} -body {
|
||||
} -constraints {notRoot unixOrWin notWine} -body {
|
||||
createfile tf1
|
||||
createfile tf2
|
||||
file mkdir td1
|
||||
@@ -563,7 +564,7 @@ test fCmd-6.15 {CopyRenameOneFile: TclpRenameFile succeeds} -setup {
|
||||
} -result 1
|
||||
test fCmd-6.16 {CopyRenameOneFile: TclpCopyRenameOneFile fails} -setup {
|
||||
cleanup
|
||||
} -constraints {notRoot} -body {
|
||||
} -constraints {notRoot notWine} -body {
|
||||
file mkdir [file join td1 td2]
|
||||
createfile [file join td1 td2 tf1]
|
||||
file mkdir td2
|
||||
@@ -572,12 +573,12 @@ test fCmd-6.16 {CopyRenameOneFile: TclpCopyRenameOneFile fails} -setup {
|
||||
[subst {error renaming "td2" to "[file join td1 td2]": file *}]
|
||||
test fCmd-6.17 {CopyRenameOneFile: errno == EINVAL} -setup {
|
||||
cleanup
|
||||
} -constraints {notRoot} -returnCodes error -body {
|
||||
} -constraints {notRoot notWine} -returnCodes error -body {
|
||||
file rename -force $root tf1
|
||||
} -result [subst {error renaming "$root" to "tf1": trying to rename a volume or move a directory into itself}]
|
||||
test fCmd-6.18 {CopyRenameOneFile: errno != EXDEV} -setup {
|
||||
cleanup
|
||||
} -constraints {notRoot} -body {
|
||||
} -constraints {notRoot notWine} -body {
|
||||
file mkdir [file join td1 td2]
|
||||
createfile [file join td1 td2 tf1]
|
||||
file mkdir td2
|
||||
@@ -811,7 +812,7 @@ test fCmd-9.4.b {file rename: comprehensive: dir to new name} -setup {
|
||||
} -result {{td3 td4} 1 0}
|
||||
test fCmd-9.5 {file rename: comprehensive: file to self} -setup {
|
||||
cleanup
|
||||
} -constraints {notRoot testchmod} -body {
|
||||
} -constraints {notRoot testchmod notWine} -body {
|
||||
createfile tf1 tf1
|
||||
createfile tf2 tf2
|
||||
testchmod 0o444 tf2
|
||||
@@ -841,7 +842,7 @@ test fCmd-9.6.b {file rename: comprehensive: dir to self} -setup {
|
||||
} -result {{td1 td2} 1 0}
|
||||
test fCmd-9.7 {file rename: comprehensive: file to existing file} -setup {
|
||||
cleanup
|
||||
} -constraints {notRoot testchmod} -body {
|
||||
} -constraints {notRoot testchmod notWine} -body {
|
||||
createfile tf1
|
||||
createfile tf2
|
||||
createfile tfs1
|
||||
@@ -902,7 +903,7 @@ test fCmd-9.8 {file rename: comprehensive: dir to empty dir} -setup {
|
||||
# Test can hit EEXIST or EBUSY, depending on underlying filesystem
|
||||
test fCmd-9.9 {file rename: comprehensive: dir to non-empty dir} -setup {
|
||||
cleanup
|
||||
} -constraints {notRoot testchmod} -body {
|
||||
} -constraints {notRoot testchmod notWine} -body {
|
||||
file mkdir tds1
|
||||
file mkdir tds2
|
||||
file mkdir [file join tdd1 tds1 xxx]
|
||||
@@ -966,14 +967,14 @@ test fCmd-9.12 {file rename: comprehensive: target exists} -setup {
|
||||
# Test can hit EEXIST or EBUSY, depending on underlying filesystem
|
||||
test fCmd-9.13 {file rename: comprehensive: can't overwrite target} -setup {
|
||||
cleanup
|
||||
} -constraints {notRoot} -body {
|
||||
} -constraints {notRoot notWine} -body {
|
||||
file mkdir [file join td1 td2] [file join td2 td1 td4]
|
||||
file rename -force td1 td2
|
||||
} -returnCodes error -match glob -result \
|
||||
[subst {error renaming "td1" to "[file join td2 td1]": file *}]
|
||||
test fCmd-9.14 {file rename: comprehensive: dir into self} -setup {
|
||||
cleanup
|
||||
} -constraints {notRoot} -body {
|
||||
} -constraints {notRoot notWine} -body {
|
||||
file mkdir td1
|
||||
list [glob td*] [list [catch {file rename td1 td1} msg] $msg]
|
||||
} -result [subst {td1 {1 {error renaming "td1" to "[file join td1 td1]": trying to rename a volume or move a directory into itself}}}]
|
||||
@@ -1068,7 +1069,7 @@ test fCmd-10.3.1 {file copy: comprehensive: dir to new name} -setup {
|
||||
} -result [list {td1 td2 td3 td4} [file join td3 tdx] [file join td4 tdy] 1 1]
|
||||
test fCmd-10.4 {file copy: comprehensive: file to existing file} -setup {
|
||||
cleanup
|
||||
} -constraints {notRoot testchmod} -body {
|
||||
} -constraints {notRoot testchmod notWine} -body {
|
||||
createfile tf1
|
||||
createfile tf2
|
||||
createfile tfs1
|
||||
@@ -2401,7 +2402,7 @@ test fCmd-28.10.1 {file link: linking to nonexistent path} -setup {
|
||||
test fCmd-28.11 {file link: success with directory} -setup {
|
||||
cd [temporaryDirectory]
|
||||
file delete -force abc.link
|
||||
} -constraints {linkDirectory} -body {
|
||||
} -constraints {linkDirectory notWine} -body {
|
||||
file link abc.link abc.dir
|
||||
} -cleanup {
|
||||
cd [workingDirectory]
|
||||
@@ -2409,7 +2410,7 @@ test fCmd-28.11 {file link: success with directory} -setup {
|
||||
test fCmd-28.12 {file link: cd into a link} -setup {
|
||||
cd [temporaryDirectory]
|
||||
file delete -force abc.link
|
||||
} -constraints {linkDirectory} -body {
|
||||
} -constraints {linkDirectory notWine} -body {
|
||||
file link abc.link abc.dir
|
||||
set orig [pwd]
|
||||
cd abc.link
|
||||
@@ -2435,7 +2436,7 @@ test fCmd-28.12 {file link: cd into a link} -setup {
|
||||
file delete -force abc.link
|
||||
cd [workingDirectory]
|
||||
} -result ok
|
||||
test fCmd-28.13 {file link} -constraints {linkDirectory} -setup {
|
||||
test fCmd-28.13 {file link} -constraints {linkDirectory notWine} -setup {
|
||||
cd [temporaryDirectory]
|
||||
file link abc.link abc.dir
|
||||
} -body {
|
||||
@@ -2469,7 +2470,7 @@ test fCmd-28.15.1 {file link: copies link not dir} -setup {
|
||||
test fCmd-28.15.2 {file link: copies link not dir} -setup {
|
||||
cd [temporaryDirectory]
|
||||
file delete -force abc.link
|
||||
} -constraints {linkDirectory} -body {
|
||||
} -constraints {linkDirectory notWine} -body {
|
||||
file link abc.link abc.dir
|
||||
file copy abc.link abc2.link
|
||||
list [file type abc2.link] [file tail [file link abc2.link]]
|
||||
@@ -2490,7 +2491,7 @@ cd [workingDirectory]
|
||||
test fCmd-28.16 {file link: glob inside link} -setup {
|
||||
cd [temporaryDirectory]
|
||||
file delete -force abc.link
|
||||
} -constraints {linkDirectory} -body {
|
||||
} -constraints {linkDirectory notWine} -body {
|
||||
file link abc.link abc.dir
|
||||
lsort [glob -dir abc.link -tails *]
|
||||
} -cleanup {
|
||||
@@ -2500,13 +2501,13 @@ test fCmd-28.16 {file link: glob inside link} -setup {
|
||||
test fCmd-28.17 {file link: glob -type l} -setup {
|
||||
cd [temporaryDirectory]
|
||||
file link abc.link abc.dir
|
||||
} -constraints {linkDirectory} -body {
|
||||
} -constraints {linkDirectory notWine} -body {
|
||||
glob -dir [pwd] -type l -tails abc*
|
||||
} -cleanup {
|
||||
file delete -force abc.link
|
||||
cd [workingDirectory]
|
||||
} -result {abc.link}
|
||||
test fCmd-28.18 {file link: glob -type d} -constraints linkDirectory -setup {
|
||||
test fCmd-28.18 {file link: glob -type d} -constraints {linkDirectory notWine} -setup {
|
||||
cd [temporaryDirectory]
|
||||
file link abc.link abc.dir
|
||||
} -body {
|
||||
@@ -2517,7 +2518,7 @@ test fCmd-28.18 {file link: glob -type d} -constraints linkDirectory -setup {
|
||||
} -result [lsort [list abc.link abc.dir abc2.dir]]
|
||||
test fCmd-28.19 {file link: relative paths} -setup {
|
||||
cd [temporaryDirectory]
|
||||
} -constraints {win linkDirectory} -body {
|
||||
} -constraints {win linkDirectory notWine} -body {
|
||||
file mkdir d1/d2/d3
|
||||
file link d1/l2 d1/d2
|
||||
} -cleanup {
|
||||
@@ -2575,12 +2576,12 @@ test fCmd-30.1 {file writable on 'My Documents'} -setup {
|
||||
} -constraints {win reg} -body {
|
||||
file writable $mydocsname
|
||||
} -result 1
|
||||
test fCmd-30.2 {file readable on 'NTUSER.DAT'} -constraints {win} -body {
|
||||
test fCmd-30.2 {file readable on 'NTUSER.DAT'} -constraints {win notWine} -body {
|
||||
expr {[info exists env(USERPROFILE)]
|
||||
&& [file exists $env(USERPROFILE)/NTUSER.DAT]
|
||||
&& [file readable $env(USERPROFILE)/NTUSER.DAT]}
|
||||
} -result {1}
|
||||
test fCmd-30.3 {file readable on 'pagefile.sys'} -constraints {win} -body {
|
||||
test fCmd-30.3 {file readable on 'pagefile.sys'} -constraints {win notWine} -body {
|
||||
set r {}
|
||||
if {[info exists env(SystemDrive)]} {
|
||||
set path $env(SystemDrive)/pagefile.sys
|
||||
|
||||
+25
-18
@@ -31,6 +31,7 @@ if {[testConstraint win]} {
|
||||
testConstraint symbolicLinkFile 0
|
||||
testConstraint sharedCdrive [expr {![catch {cd //[info hostname]/c}]}]
|
||||
}
|
||||
testConstraint notWine [expr {$::tcl_platform(platform) ne "windows" || ![info exists ::env(TRAVIS_OS_NAME)] || ![string match linux $::env(TRAVIS_OS_NAME)]}]
|
||||
# This match compares the first two words of the result. If the wanted result
|
||||
# is "equal", then this is successful if the words are equal. If the wanted
|
||||
# result is "not equal", then this is successful if the words are different.
|
||||
@@ -789,7 +790,7 @@ test filename-11.17 {Tcl_GlobCmd} {unix} {
|
||||
[file join $globname x,z1.c]\
|
||||
[file join $globname x1.c]\
|
||||
[file join $globname y1.c] [file join $globname z1.c]]]
|
||||
test filename-11.17.1 {Tcl_GlobCmd} {win} {
|
||||
test filename-11.17.1 {Tcl_GlobCmd} {win notWine} {
|
||||
lsort [glob -directory $globname *]
|
||||
} [lsort [list [file join $globname a1] [file join $globname a2]\
|
||||
[file join $globname .1]\
|
||||
@@ -800,7 +801,7 @@ test filename-11.17.1 {Tcl_GlobCmd} {win} {
|
||||
[file join $globname y1.c] [file join $globname z1.c]]]
|
||||
test filename-11.17.2 {Tcl_GlobCmd} -setup {
|
||||
set dir [pwd]
|
||||
} -constraints {notRoot linkDirectory} -body {
|
||||
} -constraints {notRoot linkDirectory notWine} -body {
|
||||
cd $globname
|
||||
file link -symbolic link a1
|
||||
cd $dir
|
||||
@@ -813,7 +814,7 @@ test filename-11.17.2 {Tcl_GlobCmd} -setup {
|
||||
# Simpler version of the above test to illustrate a given bug.
|
||||
test filename-11.17.3 {Tcl_GlobCmd} -setup {
|
||||
set dir [pwd]
|
||||
} -constraints {notRoot linkDirectory} -body {
|
||||
} -constraints {notRoot linkDirectory notWine} -body {
|
||||
cd $globname
|
||||
file link -symbolic link a1
|
||||
cd $dir
|
||||
@@ -828,7 +829,7 @@ test filename-11.17.3 {Tcl_GlobCmd} -setup {
|
||||
# Make sure the bugfix isn't too simple. We don't want to break 'glob -type l'
|
||||
test filename-11.17.4 {Tcl_GlobCmd} -setup {
|
||||
set dir [pwd]
|
||||
} -constraints {notRoot linkDirectory} -body {
|
||||
} -constraints {notRoot linkDirectory notWine} -body {
|
||||
cd $globname
|
||||
file link -symbolic link a1
|
||||
cd $dir
|
||||
@@ -846,7 +847,7 @@ test filename-11.17.6 {Tcl_GlobCmd} {
|
||||
[list "weird name.c" x,z1.c x1.c y1.c z1.c]]]
|
||||
test filename-11.17.7 {Tcl_GlobCmd: broken link and glob -l} -setup {
|
||||
set dir [pwd]
|
||||
} -constraints {linkDirectory} -body {
|
||||
} -constraints {linkDirectory notWine} -body {
|
||||
cd $globname
|
||||
file mkdir nonexistent
|
||||
file link -symbolic link nonexistent
|
||||
@@ -878,7 +879,7 @@ test filename-11.18 {Tcl_GlobCmd} {unix} {
|
||||
[file join $globname x,z1.c]\
|
||||
[file join $globname x1.c]\
|
||||
[file join $globname y1.c] [file join $globname z1.c]]]
|
||||
test filename-11.18.1 {Tcl_GlobCmd} {win} {
|
||||
test filename-11.18.1 {Tcl_GlobCmd} {win notWine} {
|
||||
lsort [glob -path $globname/ *]
|
||||
} [lsort [list [file join $globname a1] [file join $globname a2]\
|
||||
[file join $globname .1]\
|
||||
@@ -895,7 +896,7 @@ test filename-11.19 {Tcl_GlobCmd} {unix} {
|
||||
[file join $globname x,z1.c]\
|
||||
[file join $globname x1.c]\
|
||||
[file join $globname y1.c] [file join $globname z1.c]]]
|
||||
test filename-11.19.1 {Tcl_GlobCmd} {win} {
|
||||
test filename-11.19.1 {Tcl_GlobCmd} {win notWine} {
|
||||
lsort [glob -join -path [string range $globname 0 5] * *]
|
||||
} [lsort [list [file join $globname a1] [file join $globname a2]\
|
||||
[file join $globname .1]\
|
||||
@@ -904,7 +905,7 @@ test filename-11.19.1 {Tcl_GlobCmd} {win} {
|
||||
[file join $globname x,z1.c]\
|
||||
[file join $globname x1.c]\
|
||||
[file join $globname y1.c] [file join $globname z1.c]]]
|
||||
test filename-11.20 {Tcl_GlobCmd} {
|
||||
test filename-11.20 {Tcl_GlobCmd} notWine {
|
||||
lsort [glob -type d -dir $globname *]
|
||||
} [lsort [list [file join $globname a1]\
|
||||
[file join $globname a2]\
|
||||
@@ -934,7 +935,7 @@ test filename-11.22 {Tcl_GlobCmd} {unix} {
|
||||
[file join $globname x,z1.c]\
|
||||
[file join $globname x1.c]\
|
||||
[file join $globname y1.c] [file join $globname z1.c]]]
|
||||
test filename-11.22.1 {Tcl_GlobCmd} {win} {
|
||||
test filename-11.22.1 {Tcl_GlobCmd} {win notWine} {
|
||||
lsort [glob -dir $globname *]
|
||||
} [lsort [list [file join $globname a1] [file join $globname a2]\
|
||||
[file join $globname .1]\
|
||||
@@ -951,7 +952,7 @@ test filename-11.23 {Tcl_GlobCmd} {unix} {
|
||||
[file join $globname x,z1.c]\
|
||||
[file join $globname x1.c]\
|
||||
[file join $globname y1.c] [file join $globname z1.c]]]
|
||||
test filename-11.23.1 {Tcl_GlobCmd} {win} {
|
||||
test filename-11.23.1 {Tcl_GlobCmd} {win notWine} {
|
||||
lsort [glob -path $globname/ *]
|
||||
} [lsort [list [file join $globname a1] [file join $globname a2]\
|
||||
[file join $globname .1]\
|
||||
@@ -968,7 +969,7 @@ test filename-11.24 {Tcl_GlobCmd} {unix} {
|
||||
[file join $globname x,z1.c]\
|
||||
[file join $globname x1.c]\
|
||||
[file join $globname y1.c] [file join $globname z1.c]]]
|
||||
test filename-11.24.1 {Tcl_GlobCmd} {win} {
|
||||
test filename-11.24.1 {Tcl_GlobCmd} {win notWine} {
|
||||
lsort [glob -join -path [string range $globname 0 5] * *]
|
||||
} [lsort [list [file join $globname a1] [file join $globname a2]\
|
||||
[file join $globname .1]\
|
||||
@@ -977,17 +978,17 @@ test filename-11.24.1 {Tcl_GlobCmd} {win} {
|
||||
[file join $globname x,z1.c]\
|
||||
[file join $globname x1.c]\
|
||||
[file join $globname y1.c] [file join $globname z1.c]]]
|
||||
test filename-11.25 {Tcl_GlobCmd} {
|
||||
test filename-11.25 {Tcl_GlobCmd} notWine {
|
||||
lsort [glob -type d -dir $globname *]
|
||||
} [lsort [list [file join $globname a1]\
|
||||
[file join $globname a2]\
|
||||
[file join $globname a3]]]
|
||||
test filename-11.25.1 {Tcl_GlobCmd} {
|
||||
test filename-11.25.1 {Tcl_GlobCmd} notWine {
|
||||
lsort [glob -type {d r} -dir $globname *]
|
||||
} [lsort [list [file join $globname a1]\
|
||||
[file join $globname a2]\
|
||||
[file join $globname a3]]]
|
||||
test filename-11.25.2 {Tcl_GlobCmd} {
|
||||
test filename-11.25.2 {Tcl_GlobCmd} notWine {
|
||||
lsort [glob -type {d r w} -dir $globname *]
|
||||
} [lsort [list [file join $globname a1]\
|
||||
[file join $globname a2]\
|
||||
@@ -1084,6 +1085,12 @@ test filename-11.48 {Tcl_GlobCmd} -returnCodes error -body {
|
||||
test filename-11.49 {Tcl_GlobCmd} -returnCodes error -body {
|
||||
glob -types abcde -path foo -join * *
|
||||
} -result {bad argument to "-types": abcde}
|
||||
test filename-11.50 {Tcl_GlobCmd} -returnCodes error -body {
|
||||
glob -path hello -path salut *
|
||||
} -result {"-path" may only be used once}
|
||||
test filename-11.51 {Tcl_GlobCmd} -returnCodes error -body {
|
||||
glob -dir hello -dir salut *
|
||||
} -result {"-directory" may only be used once}
|
||||
|
||||
file rename $horribleglobname globTest
|
||||
file delete -force $tildeglobname
|
||||
@@ -1225,10 +1232,10 @@ test filename-14.5 {asterisks, question marks, and brackets} -setup {
|
||||
test filename-14.7 {asterisks, question marks, and brackets} {unix} {
|
||||
lsort [glob globTest/*]
|
||||
} {globTest/a1 globTest/a2 globTest/a3 {globTest/weird name.c} globTest/x,z1.c globTest/x1.c globTest/y1.c globTest/z1.c}
|
||||
test filename-14.7.1 {asterisks, question marks, and brackets} {win} {
|
||||
test filename-14.7.1 {asterisks, question marks, and brackets} {win notWine} {
|
||||
lsort [glob globTest/*]
|
||||
} {globTest/.1 globTest/a1 globTest/a2 globTest/a3 {globTest/weird name.c} globTest/x,z1.c globTest/x1.c globTest/y1.c globTest/z1.c}
|
||||
test filename-14.9 {asterisks, question marks, and brackets} {unixOrWin} {
|
||||
test filename-14.9 {asterisks, question marks, and brackets} {unixOrWin notWine} {
|
||||
lsort [glob globTest/.*]
|
||||
} {globTest/. globTest/.. globTest/.1}
|
||||
test filename-14.11 {asterisks, question marks, and brackets} {unixOrWin} {
|
||||
@@ -1237,7 +1244,7 @@ test filename-14.11 {asterisks, question marks, and brackets} {unixOrWin} {
|
||||
test filename-14.13 {asterisks, question marks, and brackets} {unixOrWin} {
|
||||
lsort [glob {globTest/[xyab]1.*}]
|
||||
} {globTest/x1.c globTest/y1.c}
|
||||
test filename-14.15 {asterisks, question marks, and brackets} {unixOrWin} {
|
||||
test filename-14.15 {asterisks, question marks, and brackets} {unixOrWin notWine} {
|
||||
lsort [glob globTest/*/]
|
||||
} {globTest/a1/ globTest/a2/ globTest/a3/}
|
||||
test filename-14.17 {asterisks, question marks, and brackets} -setup {
|
||||
@@ -1277,7 +1284,7 @@ test filename-14.25 {type specific globbing} {unix} {
|
||||
[file join $globname x,z1.c]\
|
||||
[file join $globname x1.c]\
|
||||
[file join $globname y1.c] [file join $globname z1.c]]]
|
||||
test filename-14.25.1 {type specific globbing} {win} {
|
||||
test filename-14.25.1 {type specific globbing} {win notWine} {
|
||||
lsort [glob -dir globTest -types f *]
|
||||
} [lsort [list \
|
||||
[file join $globname .1]\
|
||||
|
||||
+7
-7
@@ -22,23 +22,23 @@ if {"::tcltest" ni [namespace children]} {
|
||||
catch {unset a i}
|
||||
test for-old-1.1 {for tests} {
|
||||
set a {}
|
||||
for {set i 1} {$i<6} {set i [expr $i+1]} {
|
||||
for {set i 1} {$i<6} {incr i} {
|
||||
set a [concat $a $i]
|
||||
}
|
||||
set a
|
||||
} {1 2 3 4 5}
|
||||
test for-old-1.2 {for tests} {
|
||||
set a {}
|
||||
for {set i 1} {$i<6} {set i [expr $i+1]} {
|
||||
if $i==4 continue
|
||||
for {set i 1} {$i<6} {incr i} {
|
||||
if {$i==4} continue
|
||||
set a [concat $a $i]
|
||||
}
|
||||
set a
|
||||
} {1 2 3 5}
|
||||
test for-old-1.3 {for tests} {
|
||||
set a {}
|
||||
for {set i 1} {$i<6} {set i [expr $i+1]} {
|
||||
if $i==4 break
|
||||
for {set i 1} {$i<6} {incr i} {
|
||||
if {$i==4} break
|
||||
set a [concat $a $i]
|
||||
}
|
||||
set a
|
||||
@@ -55,12 +55,12 @@ test for-old-1.7 {for tests} {
|
||||
} {wrong # args: should be "for start test next command"}
|
||||
test for-old-1.8 {for tests} {
|
||||
set a {xyz}
|
||||
for {set i 1} {$i<6} {set i [expr $i+1]} {}
|
||||
for {set i 1} {$i<6} {incr i} {}
|
||||
set a
|
||||
} xyz
|
||||
test for-old-1.9 {for tests} {
|
||||
set a {}
|
||||
for {set i 1} {$i<6} {set i [expr $i+1]; if $i==4 break} {
|
||||
for {set i 1} {$i<6} {incr i; if {$i==4} break} {
|
||||
set a [concat $a $i]
|
||||
}
|
||||
set a
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user