mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-04-19 14:51:13 -03:00
Compare commits
831 Commits
2.5.0
...
Integratio
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b680db8ce6 | ||
|
|
cd5c40ed9c | ||
|
|
fd10c29211 | ||
|
|
f12164f7c7 | ||
|
|
e8f0ec0009 | ||
|
|
c67d9195eb | ||
|
|
8dc26ba8b9 | ||
|
|
f5514543e4 | ||
|
|
6a878e45e7 | ||
|
|
3bd2caf682 | ||
|
|
1f51bdbb0c | ||
|
|
007a62cab6 | ||
|
|
da2201d69a | ||
|
|
f9eb826d5b | ||
|
|
dbc15f8046 | ||
|
|
adcf192c25 | ||
|
|
62fc06d9ac | ||
|
|
7a49583f27 | ||
|
|
805e4b31a1 | ||
|
|
ac79a6b0c7 | ||
|
|
99b72c0972 | ||
|
|
0836a5b9b4 | ||
|
|
30a74dcf2d | ||
|
|
03366333b2 | ||
|
|
56abb1750b | ||
|
|
f6bb384a46 | ||
|
|
7bacc57e4f | ||
|
|
04c69932e2 | ||
|
|
d4ed2ca447 | ||
|
|
429bdce4f1 | ||
|
|
de45232a37 | ||
|
|
d74d3f2ca4 | ||
|
|
0c21efea55 | ||
|
|
3f9273cc32 | ||
|
|
df6a86913c | ||
|
|
835a40bf56 | ||
|
|
2193ddbb6b | ||
|
|
417be25c69 | ||
|
|
7b5f1f018b | ||
|
|
73b4efb65b | ||
|
|
c6fe65bad3 | ||
|
|
fb252e6e10 | ||
|
|
e031d91c19 | ||
|
|
6366a67c21 | ||
|
|
281be31eb3 | ||
|
|
8fcbe1a105 | ||
|
|
8692489326 | ||
|
|
c7771bb0dd | ||
|
|
e1281754fe | ||
|
|
c8425f832c | ||
|
|
67e3bac583 | ||
|
|
73282c9c4d | ||
|
|
fc80505ecc | ||
|
|
d1472532d3 | ||
|
|
01c5f6eaa8 | ||
|
|
19b89983a1 | ||
|
|
92a6906e6a | ||
|
|
661d96c336 | ||
|
|
93d352b809 | ||
|
|
bcd9c39509 | ||
|
|
43d0016125 | ||
|
|
0d93125664 | ||
|
|
ace7903bc3 | ||
|
|
f14fde2373 | ||
|
|
4d31a13fb2 | ||
|
|
3a2b836f0e | ||
|
|
215f731498 | ||
|
|
0d8caeec34 | ||
|
|
d7628a4d29 | ||
|
|
9d7a0de4c1 | ||
|
|
7113cc33f1 | ||
|
|
e7b0327e08 | ||
|
|
248de41d70 | ||
|
|
c5b7cc070e | ||
|
|
bcdc6bb46b | ||
|
|
32e65ed301 | ||
|
|
57753c7303 | ||
|
|
4437e8d8d6 | ||
|
|
a4c03e3d7b | ||
|
|
2137e197fc | ||
|
|
7669c14274 | ||
|
|
8eca1b0f13 | ||
|
|
908063d830 | ||
|
|
7d46c78082 | ||
|
|
6368bebf12 | ||
|
|
3905c3355b | ||
|
|
d2c0cafeb7 | ||
|
|
737da73dd6 | ||
|
|
f3142a7d91 | ||
|
|
e892c51b9c | ||
|
|
e67ab57ca3 | ||
|
|
2d08da79e9 | ||
|
|
27d7feaf95 | ||
|
|
240bb25dbe | ||
|
|
9a092ec015 | ||
|
|
f706081ea4 | ||
|
|
7fe3cb7b29 | ||
|
|
539acd9fc5 | ||
|
|
4b51e0f935 | ||
|
|
2761cf1bf5 | ||
|
|
bf3731bed4 | ||
|
|
3fe561bc93 | ||
|
|
277db1c1af | ||
|
|
dbb07bc3f5 | ||
|
|
64eaf7ca5a | ||
|
|
ea3e9698df | ||
|
|
d407c22ee7 | ||
|
|
4fd458900b | ||
|
|
3f6ed72a6b | ||
|
|
3a6ec68a32 | ||
|
|
7b7bb5803f | ||
|
|
263cdc50db | ||
|
|
c59e221bf1 | ||
|
|
67f7e53237 | ||
|
|
219c7ec812 | ||
|
|
4dbb274d8a | ||
|
|
e27855b225 | ||
|
|
7f1bdc5541 | ||
|
|
9b6256d0fc | ||
|
|
781a6b118a | ||
|
|
d84a859f4f | ||
|
|
09cb31a172 | ||
|
|
11f5bbf83d | ||
|
|
5d2a806ac6 | ||
|
|
74cac0f86f | ||
|
|
326f2affa4 | ||
|
|
9fa0edcbc9 | ||
|
|
4f5bd08b20 | ||
|
|
0988f53c70 | ||
|
|
ff09b8c1ee | ||
|
|
2b2057a56b | ||
|
|
38024a50dc | ||
|
|
067892c4f1 | ||
|
|
8e3a9c9585 | ||
|
|
f4414a0631 | ||
|
|
550e2c0d08 | ||
|
|
d68b631919 | ||
|
|
96fca8b4ec | ||
|
|
7a18c37b39 | ||
|
|
a1c4475c0d | ||
|
|
18219646a0 | ||
|
|
4e026588f4 | ||
|
|
defdc92b57 | ||
|
|
a071deaf61 | ||
|
|
8e2d165756 | ||
|
|
92f39f7b89 | ||
|
|
d2d707a6fa | ||
|
|
f8fa69f817 | ||
|
|
7304d82416 | ||
|
|
3fc0faaebb | ||
|
|
d068f846e8 | ||
|
|
f3130ce70b | ||
|
|
9ef47a43a4 | ||
|
|
2c77b24ced | ||
|
|
627ce4ea34 | ||
|
|
e0f0164b16 | ||
|
|
3b92d99277 | ||
|
|
529ba30b1a | ||
|
|
bb344bbd8f | ||
|
|
dc33c1afe1 | ||
|
|
8f548962b7 | ||
|
|
2d5b698f0b | ||
|
|
9e08609f85 | ||
|
|
f78ab085b5 | ||
|
|
bbc6bda843 | ||
|
|
0dc92fbb2d | ||
|
|
5e2c14e7be | ||
|
|
ed38db3370 | ||
|
|
69ecda5082 | ||
|
|
4e1303823b | ||
|
|
2dfb615d7b | ||
|
|
403d9691cb | ||
|
|
71af1a9566 | ||
|
|
8f22def8f7 | ||
|
|
3e226f0a5e | ||
|
|
06d071dd94 | ||
|
|
c22df3b823 | ||
|
|
5dc78dd858 | ||
|
|
f2c8e73891 | ||
|
|
98449fec51 | ||
|
|
ff4d275f22 | ||
|
|
63d601610d | ||
|
|
49a0841533 | ||
|
|
51bbecc419 | ||
|
|
3e6c57d5d3 | ||
|
|
30940916bd | ||
|
|
51a52a7286 | ||
|
|
e8243af20b | ||
|
|
140e6204be | ||
|
|
86af63cd39 | ||
|
|
6ecd0bcb32 | ||
|
|
df65ed8696 | ||
|
|
30baf8d101 | ||
|
|
f156bea1b7 | ||
|
|
05aae4764b | ||
|
|
5ac8c42fad | ||
|
|
c149f4f301 | ||
|
|
3a782003ed | ||
|
|
abef2cc422 | ||
|
|
5cf2a50269 | ||
|
|
3c4e3035fd | ||
|
|
0d08bfd6ff | ||
|
|
28454cb57d | ||
|
|
8754f776d8 | ||
|
|
b3d3e07c55 | ||
|
|
a4dc2b872b | ||
|
|
9adf500cf3 | ||
|
|
e260c42a13 | ||
|
|
277999adef | ||
|
|
b88cacf03e | ||
|
|
bd5c98298c | ||
|
|
e1951a32bb | ||
|
|
875a9c4c2e | ||
|
|
c577d01207 | ||
|
|
2c582fbc4e | ||
|
|
1e6bd2d968 | ||
|
|
a4eec25447 | ||
|
|
798f1a7050 | ||
|
|
285af8c4b4 | ||
|
|
cf808674bf | ||
|
|
873cbc3c64 | ||
|
|
a9aa234a64 | ||
|
|
899b5ec6cf | ||
|
|
80df9053b3 | ||
|
|
8cc4639ea6 | ||
|
|
6b92f830ff | ||
|
|
170f11771b | ||
|
|
70c9d78536 | ||
|
|
d6a9d6c59e | ||
|
|
83ecf84392 | ||
|
|
4853ec0281 | ||
|
|
bdee54bd10 | ||
|
|
c8252e7e0b | ||
|
|
bb90a4e4a9 | ||
|
|
8caab103d8 | ||
|
|
2df89f4b0f | ||
|
|
e4aedcd22c | ||
|
|
9fb7037174 | ||
|
|
4152bdc698 | ||
|
|
f3d025bd75 | ||
|
|
f6d101e7ad | ||
|
|
d383e3b92c | ||
|
|
d51f82d1b5 | ||
|
|
b759ba8a3d | ||
|
|
0ec9acf0f0 | ||
|
|
763063e741 | ||
|
|
4f345fdee7 | ||
|
|
ea38519a12 | ||
|
|
85b42b22f4 | ||
|
|
3284393aba | ||
|
|
7904f92c9e | ||
|
|
ec1e9ac98d | ||
|
|
68f4e005e4 | ||
|
|
c6093ad782 | ||
|
|
ec14527545 | ||
|
|
2cc0107dbf | ||
|
|
aec0973196 | ||
|
|
6f6a4a842c | ||
|
|
eaa0fdaeba | ||
|
|
dd191a9d4b | ||
|
|
bf2a9f3835 | ||
|
|
8d83c967d3 | ||
|
|
b48cfbefba | ||
|
|
cc24485503 | ||
|
|
eb8b92fce7 | ||
|
|
3f129b570c | ||
|
|
053d940d0a | ||
|
|
3b5fdc3fb0 | ||
|
|
db529f06b8 | ||
|
|
502deda376 | ||
|
|
08dd04c527 | ||
|
|
4ef14ea6e2 | ||
|
|
bb29f9f990 | ||
|
|
f3cb625802 | ||
|
|
60bca14b37 | ||
|
|
30368d5526 | ||
|
|
1bee66548a | ||
|
|
c31b9f430f | ||
|
|
2d42baac35 | ||
|
|
e26f7aacc4 | ||
|
|
0ffc2899dc | ||
|
|
897dba9f07 | ||
|
|
44f2f37bd4 | ||
|
|
df01547eab | ||
|
|
bd299e96b2 | ||
|
|
d234a1870b | ||
|
|
1a135aa0b0 | ||
|
|
0ed2af464c | ||
|
|
d5e1405cbe | ||
|
|
2302db4dc7 | ||
|
|
82f5fb507d | ||
|
|
59a11188df | ||
|
|
93dad29ec6 | ||
|
|
385e40540c | ||
|
|
0e954e4764 | ||
|
|
652faa1a13 | ||
|
|
e44934cf87 | ||
|
|
1e9c9e01e5 | ||
|
|
a312abdeb8 | ||
|
|
af22bf3501 | ||
|
|
d22743dad0 | ||
|
|
37b8cfaeba | ||
|
|
a114492223 | ||
|
|
69e823d612 | ||
|
|
d910b7af7d | ||
|
|
ffdabace5e | ||
|
|
b480b117a9 | ||
|
|
a665d532c3 | ||
|
|
b530d175e7 | ||
|
|
422b1bd066 | ||
|
|
79e74d0ebb | ||
|
|
070d204d9b | ||
|
|
175570b7ed | ||
|
|
a1744b5822 | ||
|
|
a6d6ded9a5 | ||
|
|
bda6426bf7 | ||
|
|
551bd39889 | ||
|
|
fded427c6a | ||
|
|
7840d53ecf | ||
|
|
52709e8051 | ||
|
|
1d4a0fb091 | ||
|
|
59e90123ea | ||
|
|
044f5512e2 | ||
|
|
1c91ec9dfa | ||
|
|
e7f87c08e1 | ||
|
|
ef8a0c93ea | ||
|
|
2079b4292e | ||
|
|
00ed221b5a | ||
|
|
1b9824ae46 | ||
|
|
b20ffca3e2 | ||
|
|
7a6a766e0a | ||
|
|
a6227f6c3a | ||
|
|
ed6c8a95d7 | ||
|
|
ac2c38735d | ||
|
|
cec2999983 | ||
|
|
82359ceb22 | ||
|
|
be1d32cade | ||
|
|
a69537ea13 | ||
|
|
59a2e1bcbc | ||
|
|
d71c4d129c | ||
|
|
955ae76cb3 | ||
|
|
65b80da60b | ||
|
|
7bdcbc1775 | ||
|
|
f6c9bfc0e8 | ||
|
|
5e94650645 | ||
|
|
cbae738882 | ||
|
|
75e9c863f6 | ||
|
|
2b4f61f294 | ||
|
|
5b3904e66b | ||
|
|
6161f54111 | ||
|
|
c75c6b4204 | ||
|
|
1f24432172 | ||
|
|
a0c8a9e8ed | ||
|
|
57184a8ed9 | ||
|
|
238a49b6f0 | ||
|
|
a520d97752 | ||
|
|
edaef4e6b0 | ||
|
|
822ee634c4 | ||
|
|
352cea1659 | ||
|
|
6841de5e4b | ||
|
|
89cab57f77 | ||
|
|
08fe6393d8 | ||
|
|
2bb415c47f | ||
|
|
f5fc92747e | ||
|
|
b0389cb77d | ||
|
|
eb01106751 | ||
|
|
f854d4a737 | ||
|
|
7a5d6391b8 | ||
|
|
52fdeefeaa | ||
|
|
809c953931 | ||
|
|
dce3b94d77 | ||
|
|
37c45f1f21 | ||
|
|
38a3699285 | ||
|
|
96004553d8 | ||
|
|
49e0a6efec | ||
|
|
a16397ecd8 | ||
|
|
08ff39c0c9 | ||
|
|
c815d28b68 | ||
|
|
15a6c2d2a1 | ||
|
|
80d9c3ec8b | ||
|
|
4a724ce40e | ||
|
|
5ef8b91db8 | ||
|
|
3e29793d04 | ||
|
|
5e39efa45b | ||
|
|
b8aacc29cd | ||
|
|
ee646c8dd0 | ||
|
|
65b0b947c9 | ||
|
|
c263c59346 | ||
|
|
3061eed647 | ||
|
|
5c140e5570 | ||
|
|
3d3c6cc495 | ||
|
|
4c47fbc964 | ||
|
|
2f5af733ba | ||
|
|
f234637e53 | ||
|
|
9236e27e86 | ||
|
|
1c06067d0d | ||
|
|
eff2a3c3a3 | ||
|
|
8ed63d63a4 | ||
|
|
06ea31d0ab | ||
|
|
603c865129 | ||
|
|
44830589ab | ||
|
|
0fc9ec5538 | ||
|
|
6f6d3ce520 | ||
|
|
4afd41877f | ||
|
|
ee572a13c8 | ||
|
|
8f78e71b6d | ||
|
|
8d4d47b548 | ||
|
|
80afc31ff8 | ||
|
|
0bf4d398ab | ||
|
|
f9e7ca869f | ||
|
|
8db12fe897 | ||
|
|
9bc1b44b0d | ||
|
|
4ff002b9fb | ||
|
|
ee6c23e6c2 | ||
|
|
027667be53 | ||
|
|
36c2ecb64f | ||
|
|
a71bb03f23 | ||
|
|
4b53cd583d | ||
|
|
fdea1abf70 | ||
|
|
a3a069234b | ||
|
|
6c4a51d56e | ||
|
|
0b976a1843 | ||
|
|
0ee24b9bce | ||
|
|
64d33fac5d | ||
|
|
3cca94b268 | ||
|
|
291d88a72f | ||
|
|
036b708d99 | ||
|
|
71f5fe1ece | ||
|
|
d00ab4a326 | ||
|
|
40679560a6 | ||
|
|
a5a9ca7d3b | ||
|
|
1f9349fb71 | ||
|
|
c9c802d3fc | ||
|
|
cbd9181b7e | ||
|
|
e92779981f | ||
|
|
846de82bb4 | ||
|
|
09cff3f4fe | ||
|
|
ec1f00e59b | ||
|
|
a5d3ac8444 | ||
|
|
3aa42389ef | ||
|
|
4050166738 | ||
|
|
523dc6da6d | ||
|
|
426653a9d7 | ||
|
|
910f78dd74 | ||
|
|
611cf852aa | ||
|
|
c179e447a6 | ||
|
|
573c539956 | ||
|
|
9e64571de0 | ||
|
|
63bb2da4d8 | ||
|
|
573e1ad4b1 | ||
|
|
c114cbc9af | ||
|
|
f10e4f88b6 | ||
|
|
a92a7cbb9c | ||
|
|
9b78857894 | ||
|
|
edf745232f | ||
|
|
5659898331 | ||
|
|
f00084f28b | ||
|
|
3a0bb6b19a | ||
|
|
f0a00ab2f2 | ||
|
|
6620b9ec72 | ||
|
|
e84200b847 | ||
|
|
e6e1805c5f | ||
|
|
be2b6bfdc9 | ||
|
|
8814f34dc1 | ||
|
|
09ce297352 | ||
|
|
4c38867768 | ||
|
|
23978aee81 | ||
|
|
fddd5fd045 | ||
|
|
084a820de3 | ||
|
|
c06a71bfbe | ||
|
|
044d45a0ff | ||
|
|
4c798ce3b4 | ||
|
|
107127afb7 | ||
|
|
d3cfab1391 | ||
|
|
1e9caecbcb | ||
|
|
fb54d34788 | ||
|
|
16816a1202 | ||
|
|
48d5342601 | ||
|
|
46d86766c4 | ||
|
|
6b1c939b67 | ||
|
|
65c762f1e1 | ||
|
|
4fde67fa50 | ||
|
|
f52708a20f | ||
|
|
16931f724b | ||
|
|
8f77b1cdd2 | ||
|
|
10e64fd548 | ||
|
|
d32e7f5ad7 | ||
|
|
8612ac592d | ||
|
|
b8bf567514 | ||
|
|
c32032757e | ||
|
|
1cb69e6f5c | ||
|
|
f5fac096c0 | ||
|
|
a26419557f | ||
|
|
980af4aa5b | ||
|
|
2565c5c15b | ||
|
|
5604bb238e | ||
|
|
a1d5a19e24 | ||
|
|
77201ade34 | ||
|
|
49d3a58a9e | ||
|
|
937c229b2e | ||
|
|
5b6814d6ad | ||
|
|
37508d1f1e | ||
|
|
bea0b17c9e | ||
|
|
30e02383a5 | ||
|
|
ec92e91ddc | ||
|
|
cc7d83fa94 | ||
|
|
17ba21cfe4 | ||
|
|
f1d40a3c7c | ||
|
|
275d658616 | ||
|
|
15e1f4349b | ||
|
|
f30c50cec5 | ||
|
|
805a177673 | ||
|
|
e410d47565 | ||
|
|
7ef2d5e86f | ||
|
|
3c95e00e8a | ||
|
|
b9d2e4d897 | ||
|
|
cb9f4e621f | ||
|
|
7c6600895e | ||
|
|
c0d80ab996 | ||
|
|
ffbda7fe64 | ||
|
|
8b201d8077 | ||
|
|
9e2776af0e | ||
|
|
3fa5d6c794 | ||
|
|
3ade72266c | ||
|
|
349eff0df7 | ||
|
|
a9db99ac52 | ||
|
|
e7d686461e | ||
|
|
dd69ca5a81 | ||
|
|
e332573fe1 | ||
|
|
dcc081a594 | ||
|
|
75f1e36b44 | ||
|
|
b3617cfd86 | ||
|
|
a381d959f2 | ||
|
|
ae03df4bc4 | ||
|
|
9d25b52208 | ||
|
|
d48c872913 | ||
|
|
4936de29e7 | ||
|
|
3463e81dda | ||
|
|
a3cd5bf170 | ||
|
|
6bd47b8662 | ||
|
|
cc3efcc3ab | ||
|
|
0be8d0d385 | ||
|
|
c3584111d6 | ||
|
|
095e04cb0d | ||
|
|
ef313dc8c5 | ||
|
|
c272584fec | ||
|
|
f20c7deaf1 | ||
|
|
08d42a0507 | ||
|
|
89efa9a8b1 | ||
|
|
fae1a398bd | ||
|
|
8213885491 | ||
|
|
da09a915f2 | ||
|
|
2a2ccea24e | ||
|
|
ed6298ad17 | ||
|
|
252c821cb3 | ||
|
|
8440308470 | ||
|
|
49518b71ab | ||
|
|
702de29549 | ||
|
|
757a95123d | ||
|
|
6ab46bb8db | ||
|
|
ddb9350ea9 | ||
|
|
03571b82be | ||
|
|
75600b6b53 | ||
|
|
35e1d1e2d8 | ||
|
|
a4f925d822 | ||
|
|
3edb7d538f | ||
|
|
b5a38ca96b | ||
|
|
cd16676911 | ||
|
|
d7ef7eb484 | ||
|
|
2105bae1fc | ||
|
|
0c265c0f52 | ||
|
|
cd8982b645 | ||
|
|
c0de8afaf3 | ||
|
|
62244f01c2 | ||
|
|
2b4ab19d47 | ||
|
|
4b9424eb20 | ||
|
|
c4d69ea8a1 | ||
|
|
a3f28e221f | ||
|
|
765891cc4e | ||
|
|
dec0f7aa84 | ||
|
|
44b3554a11 | ||
|
|
9f13edbe4a | ||
|
|
3d6c4adda9 | ||
|
|
38c851f4cf | ||
|
|
e1c3ec25ab | ||
|
|
542962bc69 | ||
|
|
ae0321778f | ||
|
|
570a6430ad | ||
|
|
83791a26c3 | ||
|
|
2118973251 | ||
|
|
70354f9f5e | ||
|
|
536b1220fd | ||
|
|
b6517250c7 | ||
|
|
a811ae25dc | ||
|
|
29429874b3 | ||
|
|
99e87dded3 | ||
|
|
84cf391faa | ||
|
|
f0469d829a | ||
|
|
6fd8dc44fb | ||
|
|
6123d3cb50 | ||
|
|
516e989464 | ||
|
|
085a9b9267 | ||
|
|
d9b30ab090 | ||
|
|
7ab1c6c7ad | ||
|
|
1afea1b650 | ||
|
|
8efe88201e | ||
|
|
b4f70cb98b | ||
|
|
98f4e49669 | ||
|
|
e0f62c178f | ||
|
|
6d02bec4c7 | ||
|
|
42a320064c | ||
|
|
002757225a | ||
|
|
db63be7909 | ||
|
|
3444fe87fb | ||
|
|
fac9b2393f | ||
|
|
f17ddb6770 | ||
|
|
ea9e05568e | ||
|
|
e30f3fee88 | ||
|
|
7d65141137 | ||
|
|
64fe617c63 | ||
|
|
b2174bc9c0 | ||
|
|
7a9efa7930 | ||
|
|
9dd0c47d0b | ||
|
|
992e1d0059 | ||
|
|
3d0a377e26 | ||
|
|
9f5ce04229 | ||
|
|
a9617f97b6 | ||
|
|
0a8c922d92 | ||
|
|
40de253b3a | ||
|
|
ce61ada623 | ||
|
|
06b2775131 | ||
|
|
4ad5b756e4 | ||
|
|
509ee64fc9 | ||
|
|
7fc1994339 | ||
|
|
22a2098c34 | ||
|
|
0cc307fbd9 | ||
|
|
69731f6642 | ||
|
|
ce2d1c4e83 | ||
|
|
ad6ea1691e | ||
|
|
2ea2a4c831 | ||
|
|
67c18c77d0 | ||
|
|
813415302a | ||
|
|
cbea0b9378 | ||
|
|
d93e57a3f9 | ||
|
|
f38646593c | ||
|
|
9598218a94 | ||
|
|
afdd1a98c1 | ||
|
|
9cae25d1eb | ||
|
|
4ffb0adb78 | ||
|
|
52648acdc8 | ||
|
|
f9664f224d | ||
|
|
0a929f7a0b | ||
|
|
3e35e6e488 | ||
|
|
af7f5f42b6 | ||
|
|
f27407bbf9 | ||
|
|
214c677032 | ||
|
|
2bbecf4292 | ||
|
|
0541a34201 | ||
|
|
cf63d1b2a7 | ||
|
|
85ba4e0142 | ||
|
|
9b24d26972 | ||
|
|
0970cc8736 | ||
|
|
616d301083 | ||
|
|
162053ed8d | ||
|
|
f9371899a1 | ||
|
|
56b60fab4b | ||
|
|
b91a2dd0bb | ||
|
|
83f386347f | ||
|
|
6eb1e31070 | ||
|
|
e3c538a991 | ||
|
|
908ed493cc | ||
|
|
a5e8b81ee3 | ||
|
|
c4f2210cc5 | ||
|
|
6d72d538a6 | ||
|
|
279ec88351 | ||
|
|
8a09c99f36 | ||
|
|
56161250de | ||
|
|
41a49b014a | ||
|
|
8339e28cfe | ||
|
|
b3d5fb71f4 | ||
|
|
94b71353ef | ||
|
|
3e17b8fccc | ||
|
|
40428f592d | ||
|
|
49e98cde4c | ||
|
|
47ad707bba | ||
|
|
bf84879134 | ||
|
|
b7cdb6d586 | ||
|
|
088b10f4c2 | ||
|
|
eff6b98813 | ||
|
|
949fc7bdd7 | ||
|
|
44cfe3e340 | ||
|
|
2b13472419 | ||
|
|
9d5471722f | ||
|
|
0447ee7b96 | ||
|
|
cd58e6129c | ||
|
|
f48291b70c | ||
|
|
2a472af7b8 | ||
|
|
927a678056 | ||
|
|
2565ffab25 | ||
|
|
cb70ac6932 | ||
|
|
e8d90dbf4b | ||
|
|
6db372133d | ||
|
|
f220250ada | ||
|
|
4ac2cfba61 | ||
|
|
0df65a106d | ||
|
|
0fefdb458f | ||
|
|
8aab725782 | ||
|
|
c5d9e7e391 | ||
|
|
3569987c81 | ||
|
|
10a2275c34 | ||
|
|
017836cffa | ||
|
|
eaf143dd8a | ||
|
|
03e0f1eb21 | ||
|
|
06282f02fd | ||
|
|
973097f025 | ||
|
|
e52a04e341 | ||
|
|
61f272495d | ||
|
|
0d170222a6 | ||
|
|
7edfcd5c63 | ||
|
|
5b6cc5af6d | ||
|
|
05d569ee44 | ||
|
|
a40f491c93 | ||
|
|
e78cefd759 | ||
|
|
07c9f0de9d | ||
|
|
1efb81456b | ||
|
|
fec83fa975 | ||
|
|
1634c9df78 | ||
|
|
14fb38f952 | ||
|
|
1d9cc12984 | ||
|
|
98b561929f | ||
|
|
f513f4e53a | ||
|
|
67a661c19f | ||
|
|
2fb1d5900d | ||
|
|
59a3968fd2 | ||
|
|
8e577b01bc | ||
|
|
7d44f8e871 | ||
|
|
8d2dfdf2c9 | ||
|
|
dabc34e0f9 | ||
|
|
3525a9d7ee | ||
|
|
61887c061b | ||
|
|
e4fd1d5f5a | ||
|
|
afe54df843 | ||
|
|
dddb0bb24b | ||
|
|
37578d8b39 | ||
|
|
2f29473efc | ||
|
|
f29139e853 | ||
|
|
87152877b2 | ||
|
|
8af00d2b78 | ||
|
|
a3dbca90d5 | ||
|
|
e07928062f | ||
|
|
ec19159580 | ||
|
|
b7d60dc7bb | ||
|
|
fab4399b8c | ||
|
|
a447a9aeff | ||
|
|
319e65af05 | ||
|
|
3e10640c04 | ||
|
|
405ec12940 | ||
|
|
730086b0f0 | ||
|
|
1040b255c7 | ||
|
|
bf2d61c6fd | ||
|
|
64485167e9 | ||
|
|
31adc221d9 | ||
|
|
7e6543c4cd | ||
|
|
ac9a0f0dbf | ||
|
|
699d294ac1 | ||
|
|
1cfbd62266 | ||
|
|
02ddc20c87 | ||
|
|
520e567390 | ||
|
|
144e7b0616 | ||
|
|
fe8e99138d | ||
|
|
e0abfee370 | ||
|
|
66a0f18410 | ||
|
|
3181bdcb9b | ||
|
|
e1adc3a6b2 | ||
|
|
7a76efa629 | ||
|
|
216f7d912a | ||
|
|
d373f1fc1d | ||
|
|
36a0f745cd | ||
|
|
ab189a75ab | ||
|
|
f4476100f2 | ||
|
|
6bdab62358 | ||
|
|
009a677e0d | ||
|
|
2e47817adf | ||
|
|
176a291ed2 | ||
|
|
1350b44ecf | ||
|
|
1875222e93 | ||
|
|
439f233ccc | ||
|
|
a91dad35db | ||
|
|
6f745762bb | ||
|
|
f0065cda13 | ||
|
|
8a0d4854e8 | ||
|
|
b3fff2d779 | ||
|
|
754b0e9b91 | ||
|
|
3139ad0d4d | ||
|
|
3272505891 | ||
|
|
0991e398bb | ||
|
|
ac8b27fcb1 | ||
|
|
5b108efde4 | ||
|
|
f2884343b3 | ||
|
|
16bc7b48b5 | ||
|
|
9efa897d0d | ||
|
|
d8a6c0a91b | ||
|
|
7e3db843cd | ||
|
|
bb65b82c56 | ||
|
|
bb686a2236 | ||
|
|
fc803c75a6 | ||
|
|
812e977e62 | ||
|
|
5a5a6a6968 | ||
|
|
f7c133da00 | ||
|
|
4c56c89afc | ||
|
|
9361470070 | ||
|
|
ab3149257b | ||
|
|
2e38cf2a4b | ||
|
|
2be1288cac | ||
|
|
082d4b5a7e | ||
|
|
c111a65622 | ||
|
|
e89c66a224 | ||
|
|
85212c57e8 | ||
|
|
d6ceeb915d | ||
|
|
bc57c7710f | ||
|
|
9768653df7 | ||
|
|
59eb75021b | ||
|
|
d905ed33fe | ||
|
|
7a80610300 | ||
|
|
d37e7bcc25 | ||
|
|
5809608bd2 | ||
|
|
2e65e27189 | ||
|
|
fd6d814ea4 | ||
|
|
51adf815aa | ||
|
|
56e05dab02 | ||
|
|
2e9a349dd0 |
@@ -24,12 +24,3 @@
|
||||
</rule>
|
||||
<--!>
|
||||
]]>
|
||||
|
||||
<rule>
|
||||
<pattern>flock \(</pattern>
|
||||
<message>
|
||||
<id>flockSemanticsWarning</id>
|
||||
<severity>warning</severity>
|
||||
<summary>flock has a fallback implemented in terms of fcntl; ensure that the fcntl semantics will apply (see http://0pointer.de/blog/projects/locking.html)</summary>
|
||||
</message>
|
||||
</rule>
|
||||
|
||||
@@ -8,7 +8,3 @@ varFuncNullUB
|
||||
// the warning being suppressed. In other words this unmatchedSuppression
|
||||
// warnings are false positives.
|
||||
unmatchedSuppression
|
||||
|
||||
memleak:src/env_universal_common.cpp
|
||||
flockSemanticsWarning:src/env_universal_common.cpp
|
||||
flockSemanticsWarning:src/history.cpp
|
||||
|
||||
@@ -7,6 +7,7 @@ end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
max_line_length = 100
|
||||
|
||||
[{Makefile,*.in}]
|
||||
indent_style = tab
|
||||
|
||||
20
.gitattributes
vendored
20
.gitattributes
vendored
@@ -13,30 +13,16 @@
|
||||
# omit from git archive
|
||||
.gitattributes export-ignore
|
||||
.gitignore export-ignore
|
||||
.travis.yml export-ignore
|
||||
fish.spec.in export-ignore
|
||||
/build_tools/make_svn_completions.fish export-ignore
|
||||
/build_tools/make_hg_completions.fish export-ignore
|
||||
/build_tools/make_vcs_completions.fish export-ignore
|
||||
/build_tools/make_vcs_completions_generic.fish export-ignore
|
||||
/build_tools/osx_package_resources export-ignore
|
||||
/build_tools/osx_package_resources/* export-ignore
|
||||
/build_tools/make_csv_completions.fish export-ignore
|
||||
/build_tools/osx_distribution.xml export-ignore
|
||||
/build_tools/make_tarball.sh export-ignore
|
||||
/build_tools/osx_package_scripts export-ignore
|
||||
/build_tools/osx_package_scripts/* export-ignore
|
||||
/build_tools/make_pkg.sh export-ignore
|
||||
/build_tools/make_darcs_completions.fish export-ignore
|
||||
/debian export-ignore
|
||||
/debian/* export-ignore
|
||||
/.github export-ignore
|
||||
/.github/* export-ignore
|
||||
|
||||
# for linguist; let github identify our project as C++ instead of C due to pcre2
|
||||
/pcre2-10.21/ linguist-vendored
|
||||
/pcre2-10.21/* linguist-vendored
|
||||
/pcre2-10.22/ linguist-vendored
|
||||
/pcre2-10.22/* linguist-vendored
|
||||
angular.js linguist-vendored
|
||||
/doc_src/* linguist-documentation
|
||||
*.fish linguist-language=fish
|
||||
tests/*.in linguist-language=fish
|
||||
tests/*.in linguist-language=fish
|
||||
|
||||
25
.github/ISSUE_TEMPLATE.md
vendored
25
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,21 +1,14 @@
|
||||
<!-- check if this problem is already solved! github.com/issues?q=is:issue+user:fish-shell -->
|
||||
- [ ] Have you checked if problem occurs with [fish 2.4.0](/fish-shell/fish-shell/releases/tag/2.4.0)?
|
||||
- [ ] Tried fish without third-party customizations *(check `sh -c 'env HOME=$(mktemp -d) fish'`)*?
|
||||
<!--
|
||||
Please tell us which fish version you are using by executing the following:
|
||||
|
||||
**fish version installed** *(`fish --version`)*:
|
||||
fish --version
|
||||
echo $version
|
||||
|
||||
**OS/terminal used**:
|
||||
Please tell us which operating system and terminal you are using. The output of `uname -a` and `echo $TERM` may be helpful in this regard although other commands might be relevant in your specific situation.
|
||||
|
||||
Talk about the the issue here.
|
||||
Please tell us if you tried fish without third-party customizations by executing this command and whether it affected the behavior you are reporting:
|
||||
|
||||
## Reproduction steps
|
||||
1. step one
|
||||
2. …
|
||||
sh -c 'env HOME=$(mktemp -d) fish'
|
||||
|
||||
<!-- Hard to explain? Post a screen recording on asciinema.org then link it here -->
|
||||
|
||||
## Results
|
||||
```console
|
||||
~ $ math 2 + 2
|
||||
5
|
||||
```
|
||||
Tell us how to reproduce the problem. Including an asciinema.org recording is useful for problems that involve the visual display of fish output such as its prompt.
|
||||
-->
|
||||
|
||||
3
.github/PULL_REQUEST_TEMPLATE.md
vendored
3
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -6,5 +6,6 @@ Fixes issue #
|
||||
|
||||
## TODOs:
|
||||
<!-- Just check off what what we know been done so far. We can help you with this stuff. -->
|
||||
- [ ] Changes to fish usage are reflected in user documenation/manpages.
|
||||
- [ ] Changes to fish usage are reflected in user documentation/manpages.
|
||||
- [ ] Tests have been added for regressions fixed
|
||||
- [ ] User-visible changes noted in CHANGELOG.md
|
||||
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -88,7 +88,7 @@ messages.pot
|
||||
/tests/*.tmp.*
|
||||
/share/pkgconfig
|
||||
|
||||
# xcode
|
||||
# xcode
|
||||
## Build generated
|
||||
build/
|
||||
DerivedData/
|
||||
@@ -97,3 +97,5 @@ xcuserdata/
|
||||
*.xccheckout
|
||||
*.xcscmblueprin
|
||||
|
||||
# This is left over when building fish 3
|
||||
muparser-*/
|
||||
|
||||
22
.oclint
22
.oclint
@@ -26,6 +26,28 @@ rule-configurations:
|
||||
- key: RAII_CUSTOM_CLASSES
|
||||
value: scoped_lock scoped_buffer_t builtin_commandline_scoped_transient_t scoped_push
|
||||
|
||||
# We're slightly more persmissive regarding the total number of lines in a
|
||||
# function. Default is 50.
|
||||
- key: LONG_METHOD
|
||||
value: 60
|
||||
|
||||
# We're slightly more persmissive regarding the number of non-comment
|
||||
# lines in a function. Default is 30.
|
||||
- key: NCSS_METHOD
|
||||
value: 40
|
||||
|
||||
# We're willing to allow slighly more linearly independent paths through a
|
||||
# function. Most of our code has a lot of `switch` blocks or consecutive
|
||||
# `if` tests that are straightforward to interpret but which increase this
|
||||
# metric. Default is 10.
|
||||
- key: CYCLOMATIC_COMPLEXITY
|
||||
value: 14
|
||||
|
||||
# We're willing to allow slighly more execution paths through a function.
|
||||
# Default is 200.
|
||||
- key: NPATH_COMPLEXITY
|
||||
value: 300
|
||||
|
||||
disable-rules:
|
||||
#
|
||||
# A few instances of "useless parentheses" errors are meaningful. Mostly
|
||||
|
||||
@@ -55,9 +55,7 @@ matrix:
|
||||
script:
|
||||
- autoreconf
|
||||
- ./configure --prefix=$HOME/prefix || cat config.log
|
||||
- make -j2
|
||||
- make install
|
||||
- make test DESTDIR=$HOME/prefix/ SHOW_INTERACTIVE_LOG=1
|
||||
- make -j2 && make test DESTDIR=$HOME/prefix/ SHOW_INTERACTIVE_LOG=1
|
||||
|
||||
notifications:
|
||||
# Some items are encrypted so that notifications from other repositories
|
||||
|
||||
25
BSDmakefile
Normal file
25
BSDmakefile
Normal file
@@ -0,0 +1,25 @@
|
||||
JARG =
|
||||
GMAKE = "gmake"
|
||||
#When gmake is called from another make instance, -w is automatically added
|
||||
#which causes extraneous messages about directory changes to be emitted.
|
||||
#--no-print-directory silences these messages.
|
||||
GARGS = "--no-print-directory"
|
||||
|
||||
.if "$(.MAKE.JOBS)" != ""
|
||||
JARG = -j$(.MAKE.JOBS)
|
||||
.endif
|
||||
|
||||
#by default bmake will cd into ./obj first
|
||||
.OBJDIR: ./
|
||||
|
||||
.PHONY: FRC
|
||||
$(.TARGETS): FRC
|
||||
$(GMAKE) $(GARGS) $(.TARGETS:S,.DONE,,) $(JARG)
|
||||
|
||||
.DONE .DEFAULT: .SILENT
|
||||
$(GMAKE) $(GARGS) $(.TARGETS:S,.DONE,,) $(JARG)
|
||||
|
||||
.ERROR: .SILENT
|
||||
if ! which $(GMAKE) > /dev/null; then \
|
||||
echo "GNU Make is required!"; \
|
||||
fi
|
||||
145
CHANGELOG.md
145
CHANGELOG.md
@@ -1,3 +1,140 @@
|
||||
# fish 2.7.1 (released December 23, 2017)
|
||||
|
||||
This release of fish fixes an issue where iTerm 2 on macOS would display a warning about paste bracketing being left on when starting a new fish session (#4521).
|
||||
|
||||
If you are upgrading from version 2.6.0 or before, please also review the release notes for 2.7.0 and 2.7b1 (included below).
|
||||
|
||||
--
|
||||
|
||||
# fish 2.7.0 (released November 23, 2017)
|
||||
|
||||
There are no major changes between 2.7b1 and 2.7.0. If you are upgrading from version 2.6.0 or before, please also review the release notes for 2.7b1 (included below).
|
||||
|
||||
Xcode builds and macOS packages could not be produced with 2.7b1, but this is fixed in 2.7.0.
|
||||
|
||||
--
|
||||
|
||||
# fish 2.7b1 (released October 31, 2017)
|
||||
|
||||
## Notable improvements
|
||||
- A new `cdh` (change directory using recent history) command provides a more friendly alternative to prevd/nextd and pushd/popd (#2847).
|
||||
- A new `argparse` command is available to allow fish script to parse arguments with the same behavior as builtin commands. This also includes the `fish_opt` helper command. (#4190).
|
||||
- Invalid array indexes are now silently ignored (#826, #4127).
|
||||
- Improvements to the debugging facility, including a prompt specific to the debugger (`fish_breakpoint_prompt`) and a `status is-breakpoint` subcommand (#1310).
|
||||
- `string` supports new `lower` and `upper` subcommands, for altering the case of strings (#4080). The case changing is not locale-aware yet.
|
||||
- `string escape` has a new `--style=xxx` flag where `xxx` can be `script`, `var`, or `url` (#4150), and can be reversed with `string unescape` (#3543).
|
||||
- History can now be split into sessions with the `fish_history` variable, or not saved to disk at all (#102).
|
||||
- Read history is now controlled by the `fish_history` variable rather than the `--mode-name` flag (#1504).
|
||||
- `command` now supports an `--all` flag to report all directories with the command. `which` is no longer a runtime dependency (#2778).
|
||||
- fish can run commands before starting an interactive session using the new `--init-command`/`-C` options (#4164).
|
||||
- `set` has a new `--show` option to show lots of information about variables (#4265).
|
||||
|
||||
## Other significant changes
|
||||
- The `COLUMNS` and `LINES` environment variables are now correctly set the first time `fish_prompt` is run (#4141).
|
||||
- `complete`'s `--no-files` option works as intended (#112).
|
||||
- `echo -h` now correctly echoes `-h` in line with other shells (#4120).
|
||||
- The `export` compatibility function now returns zero on success, rather than always returning 1 (#4435).
|
||||
- Stop converting empty elements in MANPATH to "." (#4158). The behavior being changed was introduced in fish 2.6.0.
|
||||
- `count -h` and `count --help` now return 1 rather than produce command help output (#4189).
|
||||
- An attempt to `read` which stops because too much data is available still defines the variables given as parameters (#4180).
|
||||
- A regression in fish 2.4.0 which prevented `pushd +1` from working has been fixed (#4091).
|
||||
- A regression in fish 2.6.0 where multiple `read` commands in non-interactive scripts were broken has been fixed (#4206).
|
||||
- A regression in fish 2.6.0 involving universal variables with side-effects at startup such as `set -U fish_escape_delay_ms 10` has been fixed (#4196).
|
||||
- Added completions for:
|
||||
- `as` (#4130)
|
||||
- `cdh` (#2847)
|
||||
- `dhcpd` (#4115)
|
||||
- `ezjail-admin` (#4324)
|
||||
- Fabric's `fab` (#4153)
|
||||
- `grub-file` (#4119)
|
||||
- `grub-install` (#4119)
|
||||
- `jest` (#4142)
|
||||
- `kdeconnect-cli`
|
||||
- `magneto` (#4043, #4108)
|
||||
- `mdadm` (#4198)
|
||||
- `passwd` (#4209)
|
||||
- `pip` and `pipenv` (#4448)
|
||||
- `s3cmd` (#4332)
|
||||
- `sbt` (#4347)
|
||||
- `snap` (#4215)
|
||||
- Sublime Text 3's `subl` (#4277)
|
||||
- Lots of improvements to completions.
|
||||
- Updated Chinese and French translations.
|
||||
|
||||
---
|
||||
|
||||
# fish 2.6.0 (released June 3, 2017)
|
||||
|
||||
Since the beta release of fish 2.6b1, fish version 2.6.0 contains a number of minor fixes, new completions for `magneto` (#4043), and improvements to the documentation.
|
||||
|
||||
## Known issues
|
||||
|
||||
- Apple macOS Sierra 10.12.5 introduced a problem with launching web browsers from other programs using AppleScript. This affects the fish Web configuration (`fish_config`); users on these platforms will need to manually open the address displayed in the terminal, such as by copying and pasting it into a browser. This problem will be fixed with macOS 10.12.6.
|
||||
|
||||
If you are upgrading from version 2.5.0 or before, please also review the release notes for 2.6b1 (included below).
|
||||
|
||||
---
|
||||
|
||||
# fish 2.6b1 (released May 14, 2017)
|
||||
|
||||
## Notable fixes and improvements
|
||||
|
||||
- Jobs running in the background can now be removed from the list of jobs with the new `disown` builtin, which behaves like the same command in other shells (#2810).
|
||||
- Command substitutions now have access to the terminal, like in other shells. This allows tools like `fzf` to work properly (#1362, #3922).
|
||||
- In cases where the operating system does not report the size of the terminal, the `COLUMNS` and `LINES` environment variables are used; if they are unset, a default of 80x24 is assumed.
|
||||
- New French (#3772 & #3788) and improved German (#3834) translations.
|
||||
- fish no longer depends on the `which` external command.
|
||||
|
||||
## Other significant changes
|
||||
|
||||
- Performance improvements in launching processes, including major reductions in signal blocking. Although this has been heavily tested, it may cause problems in some circumstances; set the `FISH_NO_SIGNAL_BLOCK` variable to 0 in your fish configuration file to return to the old behaviour (#2007).
|
||||
- Performance improvements in prompts and functions that set lots of colours (#3793).
|
||||
- The Delete key no longer deletes backwards (a regression in 2.5.0).
|
||||
- `functions` supports a new `--details` option, which identifies where the function was loaded from (#3295), and a `--details --verbose` option which includes the function description (#597).
|
||||
- `read` will read up to 10 MiB by default, leaving the target variable empty and exiting with status 122 if the line is too long. You can set a different limit with the `FISH_READ_BYTE_LIMIT` variable.
|
||||
- `read` supports a new `--silent` option to hide the characters typed (#838), for when reading sensitive data from the terminal. `read` also now accepts simple strings for the prompt (rather than scripts) with the new `-P` and `--prompt-str` options (#802).
|
||||
- `export` and `setenv` now understand colon-separated `PATH`, `CDPATH` and `MANPATH` variables.
|
||||
- `setenv` is no longer a simple alias for `set -gx` and will complain, just like the csh version, if given more than one value (#4103).
|
||||
- `bind` supports a new `--list-modes` option (#3872).
|
||||
- `bg` will check all of its arguments before backgrounding any jobs; any invalid arguments will cause a failure, but non-existent (eg recently exited) jobs are ignored (#3909).
|
||||
- `funced` warns if the function being edited has not been modified (#3961).
|
||||
- `printf` correctly outputs "long long" integers (#3352).
|
||||
- `status` supports a new `current-function` subcommand to print the current function name (#1743).
|
||||
- `string` supports a new `repeat` subcommand (#3864). `string match` supports a new `--entire` option to emit the entire line matched by a pattern (#3957). `string replace` supports a new `--filter` option to only emit lines which underwent a replacement (#3348).
|
||||
- `test` supports the `-k` option to test for sticky bits (#733).
|
||||
- `umask` understands symbolic modes (#738).
|
||||
- Empty components in the `CDPATH`, `MANPATH` and `PATH` variables are now converted to "." (#2106, #3914).
|
||||
- New versions of ncurses (6.0 and up) wipe terminal scrollback buffers with certain commands; the `C-l` binding tries to avoid this (#2855).
|
||||
- Some systems' `su` implementations do not set the `USER` environment variable; it is now reset for root users (#3916).
|
||||
- Under terminals which support it, bracketed paste is enabled, escaping problematic characters for security and convience (#3871). Inside single quotes (`'`), single quotes and backslashes in pasted text are escaped (#967). The `fish_clipboard_paste` function (bound to `C-v` by default) is still the recommended pasting method where possible as it includes this functionality and more.
|
||||
- Processes in pipelines are no longer signalled as soon as one command in the pipeline has completed (#1926). This behaviour matches other shells mre closely.
|
||||
- All functions requiring Python work with whichever version of Python is installed (#3970). Python 3 is preferred, but Python 2.6 remains the minimum version required.
|
||||
- The color of the cancellation character can be controlled by the `fish_color_cancel` variable (#3963).
|
||||
- Added completions for:
|
||||
- `caddy` (#4008)
|
||||
- `castnow` (#3744)
|
||||
- `climate` (#3760)
|
||||
- `flatpak`
|
||||
- `gradle` (#3859)
|
||||
- `gsettings` (#4001)
|
||||
- `helm` (#3829)
|
||||
- `i3-msg` (#3787)
|
||||
- `ipset` (#3924)
|
||||
- `jq` (#3804)
|
||||
- `light` (#3752)
|
||||
- `minikube` (#3778)
|
||||
- `mocha` (#3828)
|
||||
- `mkdosfs` (#4017)
|
||||
- `pv` (#3773)
|
||||
- `setsid` (#3791)
|
||||
- `terraform` (#3960)
|
||||
- `usermod` (#3775)
|
||||
- `xinput`
|
||||
- `yarn` (#3816)
|
||||
- Improved completions for `adb` (#3853), `apt` (#3771), `bzr` (#3769), `dconf`, `git` (including #3743), `grep` (#3789), `go` (#3789), `help` (#3789), `hg` (#3975), `htop` (#3789), `killall` (#3996), `lua`, `man` (#3762), `mount` (#3764 & #3841), `obnam` (#3924), `perl` (#3856), `portmaster` (#3950), `python` (#3840), `ssh` (#3781), `scp` (#3781), `systemctl` (#3757) and `udisks` (#3764).
|
||||
|
||||
---
|
||||
|
||||
# fish 2.5.0 (released February 3, 2017)
|
||||
|
||||
There are no major changes between 2.5b1 and 2.5.0. If you are upgrading from version 2.4.0 or before, please also review the release notes for 2.5b1 (included below).
|
||||
@@ -6,6 +143,8 @@ There are no major changes between 2.5b1 and 2.5.0. If you are upgrading from ve
|
||||
|
||||
- The Home, End, Insert, Delete, Page Up and Page Down keys work in Vi-style key bindings (#3731).
|
||||
|
||||
---
|
||||
|
||||
# fish 2.5b1 (released January 14, 2017)
|
||||
|
||||
## Platform Changes
|
||||
@@ -45,7 +184,7 @@ This is only necessary on 10.6. OS X 10.7 and later include the required library
|
||||
- A new key bindings preset, `fish_hybrid_key_bindings`, including all the Emacs-style and Vi-style bindings, which behaves like `fish_vi_key_bindings` in fish 2.3.0 (#3556).
|
||||
- `function` now returns an error when called with invalid options, rather than defining the function anyway (#3574). This was a regression present in fish 2.3 and 2.4.0.
|
||||
- fish no longer prints a warning when it identifies a running instance of an old version (2.1.0 and earlier). Changes to universal variables may not propagate between these old versions and 2.5b1.
|
||||
- Improved compatiblity with Android (#3585), MSYS/mingw (#2360), Solaris (#3456, #3340)
|
||||
- Improved compatiblity with Android (#3585), MSYS/mingw (#2360), and Solaris (#3456, #3340).
|
||||
- Like other shells, the `test` builting now returns an error for numeric operations on invalid integers (#3346, #3581).
|
||||
- `complete` no longer recognises `--authoritative` and `--unauthoritative` options, and they are marked as obsolete.
|
||||
- `status` accepts subcommands, and should be used like `status is-interactive`. The old options continue to be supported for the foreseeable future (#3526), although only one subcommand or option can be specified at a time.
|
||||
@@ -514,7 +653,7 @@ Bug Fixes
|
||||
* **fish_indent is fixed.** In particular, the `funced` and `funcsave` functions work again.
|
||||
* A SIGTERM now ends the whole execution stack again (resolving #13).
|
||||
* Bumped the __fish_config_interactive version number so the default fish_color_autosuggestion kicks in.
|
||||
* fish_config better handles combined term256 and classic colors like "555 yellow".
|
||||
* fish_config better handles combined term256 and classic colors like "555 yellow".
|
||||
|
||||
New Features
|
||||
------------
|
||||
@@ -572,4 +711,4 @@ The large number of forks relative to bash are due to fish's insanely expensive
|
||||
|
||||
The large reduction in lstat() numbers is due to fish no longer needing to call ttyname() on OS X.
|
||||
|
||||
We've got some work to do to be as lean as bash, but we're on the right track.
|
||||
We've got some work to do to be as lean as bash, but we're on the right track.
|
||||
|
||||
@@ -1,17 +1,23 @@
|
||||
|
||||
# Guidelines For Developers
|
||||
|
||||
This document provides guidelines for making changes to the fish-shell project. This includes rules for how to format the code, naming conventions, etc. It also includes recommended best practices such as creating a Travis-CI account so you can verify your changes pass all the tests before making a pull-request.
|
||||
This document provides guidelines for making changes to the fish-shell project. This includes rules for how to format the code, naming conventions, etcetera. Generally known as the style of the code. It also includes recommended best practices such as creating a Travis-CI account so you can verify your changes pass all the tests before making a pull-request.
|
||||
|
||||
See the bottom of this document for help on installing the linting and style reformatting tools discussed in the following sections.
|
||||
|
||||
Fish source should limit the C++ features it uses to those available in C++03. That allows fish to use a few components from [C++TR1](https://en.wikipedia.org/wiki/C%2B%2B_Technical_Report_1) such as `shared_ptr`. It also allows fish to be built and run on OS X Snow Leopard (released in 2009); the oldest OS X release we still support.
|
||||
Fish source should limit the C++ features it uses to those available in C++11. It should not use exceptions.
|
||||
|
||||
Before introducing a new dependency, please make it optional with graceful failure if possible. Add
|
||||
any new dependencies to the README.md under the *Running* and/or *Building* sections.
|
||||
|
||||
## Versioning
|
||||
|
||||
The fish version is constructed by the *build_tools/git_version_gen.sh* script. For developers the version is the branch name plus the output of `git describe --always --dirty`. Normally the main part of the version will be the closest annotated tag. Which itself is usually the most recent release number (e.g., `2.6.0`).
|
||||
|
||||
## Include What You Use
|
||||
|
||||
You should not depend on symbols being visible to a `*.cpp` module from `#include` statements inside another header file. In other words if your module does `#include "common.h"` and that header does `#include "signal.h"` your module should pretend that sub-include is not present. It should instead directly `#include "signal.h"` if it needs any symbol from that header. That makes the actual dependencies much clearer. It also makes it easy to modify the headers included by a specific header file without having to worry that will break any module (or header) that includes a particular header.
|
||||
You should not depend on symbols being visible to a `*.cpp` module from `#include` statements inside another header file. In other words if your module does `#include "common.h"` and that header does `#include "signal.h"` your module should not assume the sub-include is present. It should instead directly `#include "signal.h"` if it needs any symbol from that header. That makes the actual dependencies much clearer. It also makes it easy to modify the headers included by a specific header file without having to worry that will break any module (or header) that includes a particular header.
|
||||
|
||||
To help enforce this rule the `make lint` (and `make lint-all`) command will run the [include-what-you-use](http://include-what-you-use.org/) tool. The IWYU you project is on [github](https://github.com/include-what-you-use/include-what-you-use).
|
||||
To help enforce this rule the `make lint` (and `make lint-all`) command will run the [include-what-you-use](http://include-what-you-use.org/) tool. You can find the IWYU project on [github](https://github.com/include-what-you-use/include-what-you-use).
|
||||
|
||||
To install the tool on OS X you'll need to add a [formula](https://github.com/jasonmp85/homebrew-iwyu) then install it:
|
||||
|
||||
@@ -24,7 +30,7 @@ On Ubuntu you can install it via `sudo apt-get install iwyu`.
|
||||
|
||||
## Lint Free Code
|
||||
|
||||
Automated analysis tools like cppcheck and oclint can point out potential bugs. They also help ensure the code has a consistent style and that it avoids patterns that tend to confuse people.
|
||||
Automated analysis tools like cppcheck and oclint can point out potential bugs or code that is extremely hard to understand. They also help ensure the code has a consistent style and that it avoids patterns that tend to confuse people.
|
||||
|
||||
Ultimately we want lint free code. However, at the moment a lot of cleanup is required to reach that goal. For now simply try to avoid introducing new lint.
|
||||
|
||||
@@ -32,6 +38,8 @@ To make linting the code easy there are two make targets: `lint` and `lint-all`.
|
||||
|
||||
Fish has custom cppcheck rules in the file `.cppcheck.rule`. These help catch mistakes such as using `wcwidth()` rather than `fish_wcwidth()`. Please add a new rule if you find similar mistakes being made.
|
||||
|
||||
Fish also depends on `diff` and `expect` for its tests.
|
||||
|
||||
### Dealing With Lint Warnings
|
||||
|
||||
You are strongly encouraged to address a lint warning by refactoring the code, changing variable names, or whatever action is implied by the warning.
|
||||
@@ -94,7 +102,25 @@ If you use Emacs: TBD
|
||||
|
||||
### Configuring Your Editor for Fish Scripts
|
||||
|
||||
If you use ViM: TBD
|
||||
If you use ViM: Install [vim-fish](https://github.com/dag/vim-fish), make sure you have syntax and filetype functionality in `~/.vimrc`:
|
||||
|
||||
```
|
||||
syntax enable
|
||||
filetype plugin indent on
|
||||
```
|
||||
|
||||
Then turn on some options for nicer display of fish scripts in `~/.vim/ftplugin/fish.vim`:
|
||||
|
||||
```
|
||||
" Set up :make to use fish for syntax checking.
|
||||
compiler fish
|
||||
|
||||
" Set this to have long lines wrap inside comments.
|
||||
setlocal textwidth=79
|
||||
|
||||
" Enable folding of block structures in fish.
|
||||
setlocal foldmethod=expr
|
||||
```
|
||||
|
||||
If you use Emacs: Install [fish-mode](https://github.com/wwwjfy/emacs-fish) (also available in melpa and melpa-stable) and `(setq-default indent-tabs-mode nil)` for it (via a hook or in `use-package`s ":init" block). It can also be made to run fish_indent via e.g.
|
||||
|
||||
@@ -113,9 +139,11 @@ code to ignore
|
||||
// clang-format on
|
||||
```
|
||||
|
||||
However, as I write this there are no places in the code where we use this and I can't think of any legitimate reasons for exempting blocks of code from clang-format.
|
||||
|
||||
## Fish Script Style Guide
|
||||
|
||||
1. Fish scripts such as those in the *share/functions* and *tests* directories should be formatted using the `fish_indent` command.
|
||||
1. All fish scripts, such as those in the *share/functions* and *tests* directories, should be formatted using the `fish_indent` command.
|
||||
|
||||
1. Function names should be all lowercase with undescores separating words. Private functions should begin with an underscore. The first word should be `fish` if the function is unique to fish.
|
||||
|
||||
@@ -125,7 +153,7 @@ code to ignore
|
||||
|
||||
1. The [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html) forms the basis of the fish C++ style guide. There are two major deviations for the fish project. First, a four, rather than two, space indent. Second, line lengths up to 100, rather than 80, characters.
|
||||
|
||||
1. The `clang-format` command is authoritative with respect to indentation, whitespace around operators, etc. **Note**: this rule should be ignored at this time. After the code is cleaned up this rule will become mandatory.
|
||||
1. The `clang-format` command is authoritative with respect to indentation, whitespace around operators, etc.
|
||||
|
||||
1. All names in code should be `small_snake_case`. No Hungarian notation is used. Classes and structs names should be followed by `_t`.
|
||||
|
||||
@@ -135,13 +163,13 @@ code to ignore
|
||||
|
||||
1. Comments should always use the C++ style; i.e., each line of the comment should begin with a `//` and should be limited to 100 characters. Comments that do not begin a line should be separated from the previous text by two spaces.
|
||||
|
||||
1. Comments that document the purpose of a function or class should begin with three slashes, `///`, so that OS X Xcode (and possibly other ideas) will extract the comment and show it in the "Quick Help" window when the cursor is on the symbol.
|
||||
1. Comments that document the purpose of a function or class should begin with three slashes, `///`, so that OS X Xcode (and possibly other IDE's) will extract the comment and show it in the "Quick Help" window when the cursor is on the symbol.
|
||||
|
||||
## Testing
|
||||
|
||||
The source code for fish includes a large collection of tests. If you are making any changes to fish, running these tests is highly recommended to make sure the behaviour remains consistent.
|
||||
The source code for fish includes a large collection of tests. If you are making any changes to fish, running these tests is mandatory to make sure the behaviour remains consistent and regressions are not introduced. Even if you don't run the tests they will be run via the [Travis CI](https://travis-ci.org/fish-shell/fish-shell) service.
|
||||
|
||||
You are also strongly encouraged to add tests when changing the functionality of fish. Especially if you are fixing a bug to help ensure there are no regressions in the future (i.e., we don't reintroduce the bug).
|
||||
You are strongly encouraged to add tests when changing the functionality of fish. Especially if you are fixing a bug to help ensure there are no regressions in the future (i.e., we don't reintroduce the bug).
|
||||
|
||||
### Local testing
|
||||
|
||||
@@ -151,7 +179,7 @@ Running the tests is only supported from the autotools build and not xcodebuild.
|
||||
|
||||
autoconf
|
||||
./configure
|
||||
make test [gmake on BSD]
|
||||
make test # or "gmake test" on BSD
|
||||
|
||||
### Travis CI Build and Test
|
||||
|
||||
@@ -206,11 +234,7 @@ To install the hook, put it in .git/hooks/pre-push and make it executable.
|
||||
|
||||
### Coverity Scan
|
||||
|
||||
We use Coverity's static analysis tool which offers free access to open source projects. While access to the tool itself is
|
||||
restricted, fish-shell organization members should know that they can login
|
||||
[here with their GitHub account](https://scan.coverity.com/projects/fish-shell-fish-shell?tab=overview).
|
||||
Currently, tests are triggered upon merging the `master` branch into `coverity_scan_master`.
|
||||
Even if you are not a fish developer, you can keep an eye on our statistics there.
|
||||
We use Coverity's static analysis tool which offers free access to open source projects. While access to the tool itself is restricted, fish-shell organization members should know that they can login [here](https://scan.coverity.com/projects/fish-shell-fish-shell?tab=overview) with their GitHub account. Currently, tests are triggered upon merging the `master` branch into `coverity_scan_master`. Even if you are not a fish developer, you can keep an eye on our statistics there.
|
||||
|
||||
## Installing the Required Tools
|
||||
|
||||
@@ -243,13 +267,36 @@ brew install clang-format
|
||||
To install the reformatting tool on Linux distros that use Apt:
|
||||
|
||||
```
|
||||
apt-cache search clang-format
|
||||
apt-cache install clang-format
|
||||
```
|
||||
|
||||
That will list the versions available. Pick the newest one available (3.6 for Ubuntu 14.04 as I write this) and install it:
|
||||
That will list the versions available. Pick the newest one available (3.9 for Ubuntu 16.10 as I write this) and install it:
|
||||
|
||||
```
|
||||
sudo apt-get install clang-format-3.6
|
||||
sudo ln -s /usr/bin/clang-format-3.6 /usr/bin/clang-format
|
||||
sudo apt-get install clang-format-3.9
|
||||
sudo ln -s /usr/bin/clang-format-3.9 /usr/bin/clang-format
|
||||
```
|
||||
|
||||
## Message Translations
|
||||
|
||||
Fish uses the GNU gettext library to translate messages from english to other languages. To create or update a translation run `make po/[LANGUAGE CODE].po`. Where `LANGUAGE CODE` is the two letter ISO 639-1 language code of the language you are translating to. For example, `de` for German. You'll need to have the `xgettext`, `msgfmt` and `msgmerge` commands installed to do this.
|
||||
|
||||
All messages in fish script must be enclosed in single or double quote characters. They must also be translated via a subcommand. This means that the following are not valid:
|
||||
|
||||
```
|
||||
echo (_ hello)
|
||||
_ "goodbye"
|
||||
```
|
||||
|
||||
Those should be written like this:
|
||||
|
||||
```
|
||||
echo (_ "hello")
|
||||
echo (_ "goodbye")
|
||||
```
|
||||
|
||||
Note that you can use either single or double quotes to enclose the message to be translated. You can also optionally include spaces after the opening parentheses and before the closing paren.
|
||||
|
||||
Be cautious about blindly updating an existing translation file. Trivial changes to an existing message (e.g., changing the punctuation) will cause existing translations to be removed. That is because the tools do literal string matching. Which means that in general you need to carefully review any recommended deletions.
|
||||
|
||||
See the [wiki](https://github.com/fish-shell/fish-shell/wiki/Translations) for more details.
|
||||
|
||||
2
Doxyfile
2
Doxyfile
@@ -837,7 +837,7 @@ RECURSIVE = NO
|
||||
# Note that relative paths are relative to the directory from which doxygen is
|
||||
# run.
|
||||
|
||||
EXCLUDE =
|
||||
EXCLUDE =
|
||||
|
||||
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
|
||||
# directories that are symbolic links (a Unix file system feature) are excluded
|
||||
|
||||
463
Makefile.in
463
Makefile.in
@@ -70,7 +70,7 @@ extra_confdir = @extra_confdir@
|
||||
# pcre2
|
||||
#
|
||||
PCRE2_WIDTH = @WCHAR_T_BITS@
|
||||
PCRE2_DIR = pcre2-10.21
|
||||
PCRE2_DIR = pcre2-10.22
|
||||
PCRE2_LIBDIR = $(PCRE2_DIR)/.libs
|
||||
PCRE2_LIB = $(PCRE2_LIBDIR)/libpcre2-$(PCRE2_WIDTH).a
|
||||
PCRE2_H = $(PCRE2_DIR)/src/pcre2.h
|
||||
@@ -98,26 +98,30 @@ HAVE_DOXYGEN=@HAVE_DOXYGEN@
|
||||
#
|
||||
# All objects that the system needs to build fish, except fish.o
|
||||
#
|
||||
FISH_OBJS := obj/autoload.o obj/builtin.o obj/builtin_commandline.o \
|
||||
obj/builtin_complete.o obj/builtin_jobs.o obj/builtin_printf.o \
|
||||
obj/builtin_set.o obj/builtin_set_color.o obj/builtin_string.o \
|
||||
FISH_OBJS := obj/autoload.o obj/builtin.o obj/builtin_bg.o obj/builtin_bind.o obj/builtin_block.o \
|
||||
obj/builtin_builtin.o obj/builtin_cd.o obj/builtin_command.o \
|
||||
obj/builtin_commandline.o obj/builtin_complete.o obj/builtin_contains.o \
|
||||
obj/builtin_disown.o obj/builtin_echo.o obj/builtin_emit.o \
|
||||
obj/builtin_exit.o obj/builtin_fg.o obj/builtin_function.o \
|
||||
obj/builtin_functions.o obj/builtin_argparse.o obj/builtin_history.o \
|
||||
obj/builtin_jobs.o obj/builtin_printf.o obj/builtin_pwd.o \
|
||||
obj/builtin_random.o obj/builtin_read.o obj/builtin_realpath.o \
|
||||
obj/builtin_return.o obj/builtin_set.o obj/builtin_set_color.o \
|
||||
obj/builtin_source.o obj/builtin_status.o obj/builtin_string.o \
|
||||
obj/builtin_test.o obj/builtin_ulimit.o obj/color.o obj/common.o \
|
||||
obj/complete.o obj/env.o obj/env_universal_common.o obj/event.o \
|
||||
obj/exec.o obj/expand.o obj/fallback.o obj/fish_version.o \
|
||||
obj/function.o obj/highlight.o obj/history.o obj/input.o \
|
||||
obj/input_common.o obj/intern.o obj/io.o obj/iothread.o obj/kill.o \
|
||||
obj/output.o obj/pager.o obj/parse_execution.o \
|
||||
obj/parse_productions.o obj/parse_tree.o obj/parse_util.o \
|
||||
obj/parser.o obj/parser_keywords.o obj/path.o obj/postfork.o \
|
||||
obj/proc.o obj/reader.o obj/sanity.o obj/screen.o obj/signal.o \
|
||||
obj/tokenizer.o obj/utf8.o obj/util.o obj/wcstringutil.o \
|
||||
obj/wgetopt.o obj/wildcard.o obj/wutil.o
|
||||
obj/complete.o obj/env.o obj/env_universal_common.o obj/event.o obj/exec.o \
|
||||
obj/expand.o obj/fallback.o obj/fish_version.o obj/function.o obj/highlight.o \
|
||||
obj/history.o obj/input.o obj/input_common.o obj/intern.o obj/io.o \
|
||||
obj/iothread.o obj/kill.o obj/output.o obj/pager.o obj/parse_execution.o \
|
||||
obj/parse_productions.o obj/parse_tree.o obj/parse_util.o obj/parser.o \
|
||||
obj/parser_keywords.o obj/path.o obj/postfork.o obj/proc.o obj/reader.o \
|
||||
obj/sanity.o obj/screen.o obj/signal.o obj/tokenizer.o obj/utf8.o obj/util.o \
|
||||
obj/wcstringutil.o obj/wgetopt.o obj/wildcard.o obj/wutil.o
|
||||
|
||||
FISH_INDENT_OBJS := obj/fish_indent.o obj/print_help.o $(FISH_OBJS)
|
||||
|
||||
FISH_KEYREAD_OBJS := obj/fish_key_reader.o obj/print_help.o $(FISH_OBJS)
|
||||
|
||||
|
||||
#
|
||||
# All objects that the system needs to build fish_tests
|
||||
#
|
||||
@@ -165,7 +169,7 @@ TEST_IN := $(wildcard tests/test*.in)
|
||||
#
|
||||
# Files in ./share/completions/
|
||||
#
|
||||
COMPLETIONS_DIR_FILES := $(wildcard share/completions/*.fish) share/completions/..fish
|
||||
COMPLETIONS_DIR_FILES := $(wildcard share/completions/*.fish)
|
||||
|
||||
#
|
||||
# Files in ./share/functions/
|
||||
@@ -181,7 +185,7 @@ PROGRAMS := fish fish_indent fish_key_reader
|
||||
# Manual pages to install
|
||||
#
|
||||
MANUALS := $(addsuffix .1, $(addprefix share/man/man1/, $(PROGRAMS)))
|
||||
HELP_MANPAGES := $(wildcard share/man/man1/*.1)
|
||||
HELP_MANPAGES = $(wildcard share/man/man1/*.1)
|
||||
|
||||
# Determine which man pages we don't want to install
|
||||
# On OS X, don't install a man page for open, since we defeat fish's open
|
||||
@@ -190,15 +194,21 @@ HELP_MANPAGES := $(wildcard share/man/man1/*.1)
|
||||
# tarball includes this page, we need to skip it in the Makefile too (see
|
||||
# https://github.com/fish-shell/fish-shell/issues/2561).
|
||||
ifeq ($(shell uname), Darwin)
|
||||
HELP_MANPAGES := $(filter-out share/man/man1/open.1, $(HELP_MANPAGES))
|
||||
CONDEMNED_PAGES := open.1
|
||||
HELP_MANPAGES = $(filter-out share/man/man1/open.1, $(wildcard share/man/man1/*.1))
|
||||
endif
|
||||
|
||||
#
|
||||
# All translation message catalogs
|
||||
# All translation message catalogs, filter files based on LINGUAS.
|
||||
#
|
||||
TRANSLATIONS_SRC := $(wildcard po/*.po)
|
||||
ifdef HAVE_GETTEXT
|
||||
ifeq ($(HAVE_GETTEXT), 1)
|
||||
TRANSLATIONS := $(TRANSLATIONS_SRC:.po=.gmo)
|
||||
ifdef LINGUAS
|
||||
TRANSLATIONS_ALL := $(TRANSLATIONS)
|
||||
TRANSLATIONS_WANTED = $(patsubst %,po/%.gmo,$(LINGUAS))
|
||||
TRANSLATIONS = $(filter $(TRANSLATIONS_WANTED),$(TRANSLATIONS_ALL))
|
||||
endif
|
||||
else
|
||||
TRANSLATIONS :=
|
||||
endif
|
||||
@@ -243,13 +253,13 @@ sgr0 := $(shell ( tput sgr0 || tput me) 2> /dev/null )
|
||||
# Cool trick: `make show-$var` (e.g. make show-HAVE_DOXYGEN) to quickly see what $var is.
|
||||
#
|
||||
show-%:
|
||||
@echo " $* = $(em)$(cyan)'$(subst ',''',$($*))'$(sgr0)" ||:
|
||||
-@echo " $* = $(em)$(cyan)'$(subst ',''',$($*))'$(sgr0)"
|
||||
#
|
||||
# Make everything needed for installing fish
|
||||
#
|
||||
all: show-CXX show-CXXFLAGS $(PROGRAMS) $(user_doc) $(share_man) $(TRANSLATIONS) fish.pc share/__fish_build_paths.fish
|
||||
ifneq (,$(findstring install,$(MAKECMDGOALS)))
|
||||
# Fish has been built, but if the goal was 'install', we aren't done yet and this output isnt't desirable
|
||||
# Fish has been built, but if the goal was 'install', we aren't done yet and this output isnt't desirable
|
||||
@echo "$(green)fish has now been built.$(sgr0)"
|
||||
@echo "Run $(yellow)$(notdir $(MAKE)) install$(sgr0) to install fish.$(sgr0)"
|
||||
endif
|
||||
@@ -343,14 +353,14 @@ test: test-prep install-force test_low_level test_high_level
|
||||
# We want the various tests to run serially so their output doesn't mix
|
||||
# We can do that by adding ordering dependencies based on what goals are being used.
|
||||
#
|
||||
test_goals := test_low_level test_fishscript test_interactive
|
||||
test_goals := test_low_level test_invocation test_fishscript test_interactive
|
||||
|
||||
#
|
||||
# The following variables define targets that depend on the tests. If any more targets
|
||||
# are added that depend, directly or indirectly, on tests, they need to be recorded here.
|
||||
#
|
||||
test_test_deps = test_low_level $(test_high_level_test_deps)
|
||||
test_high_level_test_deps = test_fishscript test_interactive
|
||||
test_high_level_test_deps = test_invocation test_fishscript test_interactive
|
||||
|
||||
active_test_goals = $(filter $(test_goals),$(foreach a,$(or $(MAKECMDGOALS),$(.DEFAULT_GOAL)),$(a) $($(a)_test_deps)))
|
||||
filter_up_to = $(eval b:=1)$(foreach a,$(2),$(and $(b),$(if $(subst $(1),,$(a)),$(a),$(eval b:=))))
|
||||
@@ -362,9 +372,15 @@ test_low_level: fish_tests $(call filter_up_to,test_low_level,$(active_test_goal
|
||||
env XDG_DATA_HOME=test/data XDG_CONFIG_HOME=test/home ./fish_tests
|
||||
.PHONY: test_low_level
|
||||
|
||||
test_high_level: test_fishscript test_interactive
|
||||
test_high_level: DESTDIR = $(PWD)/test/root/
|
||||
test_high_level: prefix = .
|
||||
test_high_level: test-prep install-force test_invocation test_fishscript test_interactive
|
||||
.PHONY: test_high_level
|
||||
|
||||
test_invocation: $(call filter_up_to,test_invocation,$(active_test_goals))
|
||||
cd tests; ./invocation.sh
|
||||
.PHONY: test_invocation
|
||||
|
||||
test_fishscript: $(call filter_up_to,test_fishscript,$(active_test_goals))
|
||||
cd tests; ../test/root/bin/fish test.fish
|
||||
.PHONY: test_fishscript
|
||||
@@ -373,6 +389,7 @@ test_interactive: $(call filter_up_to,test_interactive,$(active_test_goals))
|
||||
cd tests; ../test/root/bin/fish interactive.fish
|
||||
.PHONY: test_interactive
|
||||
|
||||
|
||||
#
|
||||
# commands.hdr collects documentation on all commands, functions and
|
||||
# builtins
|
||||
@@ -380,7 +397,7 @@ test_interactive: $(call filter_up_to,test_interactive,$(active_test_goals))
|
||||
doc_src/commands.hdr:$(HELP_SRC) doc_src/commands.hdr.in |
|
||||
@echo " CAT AWK $(em)$@$(sgr0)"
|
||||
$v rm -f command_list.tmp command_list_toc.tmp $@
|
||||
$v for i in $(sort $(HELP_SRC)); do \
|
||||
$v for i in `printf "%s\n" $(HELP_SRC) | LC_ALL=C.UTF-8 sort`; do \
|
||||
echo "<hr>" >>command_list.tmp; \
|
||||
cat $$i >>command_list.tmp; \
|
||||
echo >>command_list.tmp; \
|
||||
@@ -440,7 +457,7 @@ lexicon.txt: doc_src/commands.hdr $(FUNCTIONS_DIR_FILES) $(COMPLETIONS_DIR_FILES
|
||||
-e "s|'\(.*\)'|func \1|p";
|
||||
$v $(SED) <share/functions/__fish_config_interactive.fish >>lexicon.tmp -n \
|
||||
-e '/set_default/s/.*\(fish_[a-z][a-z_]*\).*$$/clrv \1/p'; \
|
||||
$(SED) <lexicon_filter.in >>lexicon.tmp -n \
|
||||
$(SED) <lexicon_filter.in >>lexicon.tmp -n \
|
||||
-e '/^#.!#/s/^#.!# \(.... [a-z][a-z_]*\)/\1/p';
|
||||
$v mv lexicon.tmp lexicon.txt; rm -f lexicon_catalog.tmp lexicon_catalog.txt;
|
||||
|
||||
@@ -465,7 +482,7 @@ lexicon_filter: lexicon.txt lexicon_filter.in | show-SED
|
||||
else \
|
||||
WORDBL='\\<'; WORDBR='\\>'; \
|
||||
fi; $(SED) <lexicon.txt >>$@.tmp -n -e "s|^\([a-z][a-z][a-z][a-z]\) \([a-z_-]*\)$$|s,$$WORDBL\2$$WORDBR,@\1{\2},g|p" -e '$$G;s/.*\n/b tidy/p';
|
||||
$v mv $@.tmp $@; test -x $@ || chmod a+x $@;
|
||||
$v mv $@.tmp $@; test -x $@ || chmod a+x $@;
|
||||
|
||||
|
||||
#
|
||||
@@ -508,13 +525,12 @@ doc.h: $(HDR_FILES)
|
||||
-e "s,@prefix\@,$(prefix),g" \
|
||||
-e "s,@fish_build_version\@,$(FISH_BUILD_VERSION),g" \
|
||||
|
||||
|
||||
#
|
||||
# Compile translation files to binary format
|
||||
# Compile translation files to binary format.
|
||||
#
|
||||
%.gmo:
|
||||
@echo " msgfmt $(em)$@$(sgr0)"
|
||||
$v msgfmt -o $@ $*.po
|
||||
$v msgfmt --use-fuzzy -o $@ $*.po
|
||||
|
||||
#
|
||||
# Update existing po file or copy messages.pot
|
||||
@@ -530,10 +546,14 @@ doc.h: $(HDR_FILES)
|
||||
#
|
||||
# Create a template translation object
|
||||
#
|
||||
messages.pot: $(wildcard src/*.cpp src/*.h share/completions/*.fish share/functions/*.fish)
|
||||
messages.pot: fish $(wildcard src/*.cpp src/*.h share/completions/*.fish share/functions/*.fish)
|
||||
@echo " xgettext $(em)$@$(sgr0)"
|
||||
xgettext -k_ -kN_ $(wildcard src/*.cpp src/*.h) -o messages.pot
|
||||
$v xgettext -j -k_ -kN_ -k--description -LShell --from-code=UTF-8 $(wildcard share/completions/*.fish share/functions/*.fish) share/fish.config -o messages.pot
|
||||
$v xgettext -k -k_ -kN_ -LC++ --no-wrap -o messages.pot src/*.cpp src/*.h
|
||||
$v rm -rf /tmp/fish
|
||||
$v ./fish build_tools/fish_xgettext.fish
|
||||
$v xgettext -j -k -kN_ -LShell --from-code=UTF-8 -cDescription --no-wrap -o messages.pot /tmp/fish/explicit/share/*.fish /tmp/fish/explicit/share/*/*.fish
|
||||
$v xgettext -j -k -kN_ -LShell --from-code=UTF-8 -cDescription --no-wrap -o messages.pot /tmp/fish/implicit/share/*.fish /tmp/fish/implicit/share/*/*.fish
|
||||
$v rm -rf /tmp/fish
|
||||
|
||||
ifdef EXTRA_PCRE2
|
||||
src/builtin_string.cpp: $(PCRE2_H)
|
||||
@@ -608,20 +628,21 @@ check-legacy-binaries:
|
||||
.PHONY: check-legacy-binaries
|
||||
|
||||
install: all install-force | check-legacy-binaries
|
||||
@echo
|
||||
@echo
|
||||
@echo "$(bo)fish is now installed on your system.$(sgr0)"
|
||||
@echo "To run fish, type $(bo)$(green)fish$(sgr0) in your terminal."
|
||||
@echo "$(T_YELLOW)Even if you are already in fish, you should now start a new fish session.$(sgr0)"
|
||||
@echo
|
||||
@if type chsh >/dev/null 2>&1; then \
|
||||
echo To use fish as your login shell:; \
|
||||
grep -q -- "$(DESTDIR)$(bindir)/fish" /etc/shells || echo \* add the line \'$(DESTDIR)$(bindir)/fish\' to the file \'/etc/shells\'; \
|
||||
echo " * run $(yellow)chsh -s $(DESTDIR)$(bindir)/fish$(sgr0)"; \
|
||||
grep -q -- "$(DESTDIR)$(bindir)/fish" /etc/shells || echo -e " * add the line '$(DESTDIR)$(bindir)/fish' to the file '/etc/shells':" \
|
||||
"\n echo '$(DESTDIR)$(bindir)/fish' | sudo tee -a /etc/shells > /dev/null"; \
|
||||
echo " * run '$(yellow)chsh -s $(DESTDIR)$(bindir)/fish$(sgr0)'"; \
|
||||
echo; \
|
||||
fi;
|
||||
@if type chcon >/dev/null 2>&1; then \
|
||||
echo If you have SELinux enabled, you may need to manually update the security policy:; \
|
||||
echo \* use the command \'chcon -t shell_exec_t $(DESTDIR)$(bindir)/fish\'.; \
|
||||
echo \ \* use the command \'chcon -t shell_exec_t $(DESTDIR)$(bindir)/fish\'; \
|
||||
echo; \
|
||||
fi;
|
||||
@echo "To set your colors, run $(green)$(bo)fish_config$(sgr0)"
|
||||
@@ -637,15 +658,13 @@ install: all install-force | check-legacy-binaries
|
||||
xcode-install:
|
||||
rm -Rf /tmp/fish_build
|
||||
xcrun xcodebuild install DSTROOT=/tmp/fish_build
|
||||
ditto /tmp/fish_build
|
||||
ditto /tmp/fish_build /
|
||||
.PHONY: xcode-install
|
||||
|
||||
#
|
||||
# Actually do the installation. These '||true', '||:' lines are to prevent installs
|
||||
# from failing for (e.g.) missing man pages or extra_dirs outside the
|
||||
# writeable prefix.
|
||||
# Actually do the installation.
|
||||
#
|
||||
install-force: all install-translations | show-datadir show-sysconfdir show-extra_completionsdir show-extra_functionsdir show-extra_confdir show-mandir
|
||||
install-force: all install-translations install-doc | show-datadir show-sysconfdir show-extra_completionsdir show-extra_functionsdir show-extra_confdir show-mandir
|
||||
$v $(INSTALL) -m 755 -d $(DESTDIR)$(bindir)
|
||||
$v for i in $(PROGRAMS); do\
|
||||
$(INSTALL) -m 755 $$i $(DESTDIR)$(bindir);\
|
||||
@@ -671,61 +690,33 @@ install-force: all install-translations | show-datadir show-sysconfdir show-extr
|
||||
$v $(INSTALL) -m 644 share/__fish_build_paths.fish $(DESTDIR)$(datadir)/fish/
|
||||
$v $(INSTALL) -m 755 -d $(DESTDIR)$(datadir)/pkgconfig
|
||||
@echo "Creating placeholder vendor/'extra_' directories"
|
||||
$v $(INSTALL) -m 755 -d $(DESTDIR)$(extra_completionsdir) ||:
|
||||
$v $(INSTALL) -m 755 -d $(DESTDIR)$(extra_functionsdir) ||:
|
||||
$v $(INSTALL) -m 755 -d $(DESTDIR)$(extra_confdir) ||:
|
||||
-$v $(INSTALL) -m 755 -d $(DESTDIR)$(extra_completionsdir)
|
||||
-$v $(INSTALL) -m 755 -d $(DESTDIR)$(extra_functionsdir)
|
||||
-$v $(INSTALL) -m 755 -d $(DESTDIR)$(extra_confdir)
|
||||
@echo "Installing pkgconfig file"
|
||||
$v $(INSTALL) -m 644 fish.pc $(DESTDIR)$(datadir)/pkgconfig
|
||||
@echo "Installing the $(bo)fish completion library$(sgr0)...";
|
||||
$v for i in $(COMPLETIONS_DIR_FILES:%='%'); do \
|
||||
$(INSTALL) -m 644 $$i $(DESTDIR)$(datadir)/fish/completions/; \
|
||||
done;
|
||||
$v $(INSTALL) -m 644 $(COMPLETIONS_DIR_FILES:%='%') $(DESTDIR)$(datadir)/fish/completions/
|
||||
@echo "Installing $(bo)fish functions$(sgr0)";
|
||||
$v for i in $(FUNCTIONS_DIR_FILES:%='%'); do \
|
||||
$(INSTALL) -m 644 $$i $(DESTDIR)$(datadir)/fish/functions/; \
|
||||
done;
|
||||
$v $(INSTALL) -m 644 $(FUNCTIONS_DIR_FILES:%='%') $(DESTDIR)$(datadir)/fish/functions/
|
||||
@echo "Installing $(bo)man pages$(sgr0)";
|
||||
$v $(INSTALL) -m 644 share/groff/* $(DESTDIR)$(datadir)/fish/groff/
|
||||
$v for i in $(HELP_MANPAGES); do \
|
||||
$(INSTALL) -m 644 $$i $(DESTDIR)$(datadir)/fish/man/man1/; \
|
||||
done;
|
||||
$v test -z "$(wildcard share/man/man1/*.1)" || $(INSTALL) -m 644 $(filter-out $(addprefix share/man/man1/, $(CONDEMNED_PAGES)), $(wildcard share/man/man1/*.1)) $(DESTDIR)$(datadir)/fish/man/man1/
|
||||
@echo "Installing helper tools";
|
||||
$v for i in $(wildcard share/tools/*.py); do\
|
||||
$(INSTALL) -m 755 $$i $(DESTDIR)$(datadir)/fish/tools/; \
|
||||
done;
|
||||
$v for i in share/tools/web_config/*.*; do\
|
||||
$(INSTALL) -m 644 $$i $(DESTDIR)$(datadir)/fish/tools/web_config/; \
|
||||
true; \
|
||||
done;
|
||||
$v for i in share/tools/web_config/js/*.*; do\
|
||||
$(INSTALL) -m 644 $$i $(DESTDIR)$(datadir)/fish/tools/web_config/js/; \
|
||||
true; \
|
||||
done;
|
||||
$v for i in share/tools/web_config/partials/*; do\
|
||||
$(INSTALL) -m 644 $$i $(DESTDIR)$(datadir)/fish/tools/web_config/partials/; \
|
||||
true; \
|
||||
done;
|
||||
$v for i in share/tools/web_config/sample_prompts/*.fish; do\
|
||||
$(INSTALL) -m 644 $$i $(DESTDIR)$(datadir)/fish/tools/web_config/sample_prompts/; \
|
||||
true; \
|
||||
done;
|
||||
$v for i in share/tools/web_config/*.py; do\
|
||||
$(INSTALL) -m 755 $$i $(DESTDIR)$(datadir)/fish/tools/web_config/; \
|
||||
true; \
|
||||
done;
|
||||
@echo "Installing online user documentation";
|
||||
$v $(INSTALL) -m 755 -d $(DESTDIR)$(docdir)
|
||||
$v for i in user_doc/html/* CHANGELOG.md; do \
|
||||
if test -f $$i; then \
|
||||
$(INSTALL) -m 644 $$i $(DESTDIR)$(docdir); \
|
||||
fi; \
|
||||
done;
|
||||
$v $(INSTALL) -m 755 share/tools/*.py $(DESTDIR)$(datadir)/fish/tools/
|
||||
$v $(INSTALL) -m 644 share/tools/web_config/*.* $(DESTDIR)$(datadir)/fish/tools/web_config/
|
||||
$v $(INSTALL) -m 644 share/tools/web_config/js/*.* $(DESTDIR)$(datadir)/fish/tools/web_config/js/
|
||||
$v $(INSTALL) -m 644 share/tools/web_config/partials/* $(DESTDIR)$(datadir)/fish/tools/web_config/partials/
|
||||
$v $(INSTALL) -m 644 share/tools/web_config/sample_prompts/*.fish $(DESTDIR)$(datadir)/fish/tools/web_config/sample_prompts/
|
||||
$v $(INSTALL) -m 755 share/tools/web_config/*.py $(DESTDIR)$(datadir)/fish/tools/web_config/
|
||||
@echo "Installing more man pages";
|
||||
$v $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1;
|
||||
$v for i in $(MANUALS); do \
|
||||
$(INSTALL) -m 644 $$i $(DESTDIR)$(mandir)/man1/; \
|
||||
true; \
|
||||
done;
|
||||
@echo "Installing miscellaneous helper resources";
|
||||
$v $(INSTALL) -m 644 share/lynx.lss $(DESTDIR)$(datadir)/fish/
|
||||
.PHONY: install-force
|
||||
|
||||
#
|
||||
@@ -735,26 +726,19 @@ uninstall: uninstall-translations | show-prefix show-bindir show-sysconfdir show
|
||||
@echo
|
||||
@echo "$(bo)$(yellow)Uninstalling fish$(sgr0) from configured \$$prefix: $(bo)$(prefix)$(sgr0)"
|
||||
@echo
|
||||
@echo "Deleting programs: [ $(bo)$(PROGRAMS)$(sgr0) ] in $(em)$(bindir)$(sgr0)"
|
||||
-$v for i in $(PROGRAMS); do \
|
||||
rm -f $(DESTDIR)$(bindir)/$$i; \
|
||||
done;
|
||||
@echo "Deleting configuration: $(bo)$(DESTDIR)$(sysconfdir)/fish/*$(sgr0)"
|
||||
-$v rm -rf $(DESTDIR)$(sysconfdir)/fish
|
||||
@echo
|
||||
@echo "In 5 seconds, $(red)all data$(sgr0) (includes functions, completions, tools) in"
|
||||
@echo $$"\t$(bo)$(DESTDIR)$(datadir)/fish$(sgr0) will be deleted!"
|
||||
@echo
|
||||
@echo $$"If you put things there, $(red)stop now!$(sgr0) $(bo)\\c"
|
||||
@echo $$"$(bo)5$(sgr0) \\c"
|
||||
@echo $$'\t$(bo)$(DESTDIR)$(datadir)/fish$(sgr0) will be deleted!'
|
||||
@echo
|
||||
@echo "If you put things there, $(red)stop now!$(sgr0)"
|
||||
@echo "$(bo)5$(sgr0)"
|
||||
@sleep 1
|
||||
@echo $$"$(bo)4$(sgr0) \\c"
|
||||
@echo "$(bo)4$(sgr0)"
|
||||
@sleep 1
|
||||
@echo $$"$(bo)3$(sgr0) \\c"
|
||||
@echo "$(bo)3$(sgr0)"
|
||||
@sleep 1
|
||||
@echo $$"$(bo)2$(sgr0) \\c"
|
||||
@echo "$(bo)2$(sgr0)"
|
||||
@sleep 1
|
||||
@echo $$"$(bo)1$(sgr0) \\c"
|
||||
@echo "$(bo)1$(sgr0)"
|
||||
@sleep 1
|
||||
@echo ...
|
||||
@sleep 2
|
||||
@@ -762,31 +746,32 @@ uninstall: uninstall-translations | show-prefix show-bindir show-sysconfdir show
|
||||
-$v if test -d $(DESTDIR)$(datadir)/fish; then \
|
||||
rm -rf $(DESTDIR)$(datadir)/fish; \
|
||||
fi
|
||||
@echo
|
||||
@echo "Deleting programs: [ $(bo)$(PROGRAMS)$(sgr0) ] in $(em)$(bindir)$(sgr0)"
|
||||
-$v for i in $(PROGRAMS); do \
|
||||
rm -f $(DESTDIR)$(bindir)/$$i; \
|
||||
done;
|
||||
@echo "Deleting configuration: $(bo)$(DESTDIR)$(sysconfdir)/fish/*$(sgr0)"
|
||||
-$v rm -rf $(DESTDIR)$(sysconfdir)/fish
|
||||
@echo "Deleting documentation: $(bo)$(DESTDIR)$(docdir)/*$(sgr0)"
|
||||
-$v if test -d $(DESTDIR)$(docdir); then \
|
||||
rm -rf $(DESTDIR)$(docdir);\
|
||||
fi
|
||||
@echo
|
||||
@echo "Deleting pkgconfig file: $(bo)$(DESTDIR)$(datadir)/pkgconfig/fish.pc$(sgr0)"
|
||||
-$v if test -f $(DESTDIR)$(datadir)/pkgconfig/fish.pc; then \
|
||||
rm -f $(DESTDIR)$(datadir)/pkgconfig/fish.pc;\
|
||||
fi
|
||||
@echo "Deleting [ $(bo)"$(notdir $(MANUALS))"$(sgr0) ] in $(em)$(mandir)/man1$(sgr0)"
|
||||
-$v for i in $(notdir $(MANUALS)); do \
|
||||
rm -f "$(DESTDIR)$(mandir)/man1/$$i" ;\
|
||||
done
|
||||
@echo
|
||||
@echo $$"Deleting \\c"
|
||||
@echo "[ $(bo)"$(basename $(MANUALS))$(sgr0) $$"] in \\c"
|
||||
@echo "$(em)$(mandir)/man1$(sgr0)"
|
||||
-$v for i in $(MANUALS); do \
|
||||
rm -rf "$(DESTDIR)$(mandir)/man1/"$$$(basename $i)$$$(wildcard .*);
|
||||
done;
|
||||
@echo
|
||||
@echo "$(green)Fish (likely) unintalled$(sgr0)"
|
||||
@echo "$(green)Fish (likely) uninstalled$(sgr0)"
|
||||
@echo
|
||||
@echo "$(bo)./configure --prefix=$(sgr0) to uninstall fish from a different prefix"
|
||||
.PHONY: uninstall
|
||||
|
||||
install-translations: $(TRANSLATIONS) | show-HAVE_GETTEXT
|
||||
ifdef HAVE_GETTEXT
|
||||
ifeq ($(HAVE_GETTEXT), 1)
|
||||
@echo "Installing translations..."
|
||||
$v for i in $(TRANSLATIONS); do \
|
||||
$(INSTALL) -m 755 -d $(DESTDIR)$(localedir)/`basename $$i .gmo`/LC_MESSAGES; \
|
||||
@@ -799,6 +784,15 @@ uninstall-translations: show-DESTDIR show-localedir
|
||||
$v rm -f $(DESTDIR)$(localedir)/*/LC_MESSAGES/fish.mo
|
||||
.PHONY: uninstall-translations
|
||||
|
||||
install-doc: $(user_doc)
|
||||
@echo "Installing online user documentation";
|
||||
$v $(INSTALL) -m 755 -d $(DESTDIR)$(docdir)
|
||||
$v for i in user_doc/html/* CHANGELOG.md; do \
|
||||
if test -f $$i; then \
|
||||
$(INSTALL) -m 644 $$i $(DESTDIR)$(docdir); \
|
||||
fi; \
|
||||
done;
|
||||
|
||||
#
|
||||
# The build rules for all the commands
|
||||
#
|
||||
@@ -806,7 +800,7 @@ uninstall-translations: show-DESTDIR show-localedir
|
||||
#
|
||||
# How basic files get compiled
|
||||
#
|
||||
obj/%.o: src/%.cpp | show-CXX show-CXXFLAGS show-CPPFLAGS obj
|
||||
obj/%.o: src/%.cpp | show-CXX show-CXXFLAGS show-CPPFLAGS obj
|
||||
@echo " CXX $(em)$@$(sgr0)"
|
||||
$v $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@
|
||||
|
||||
@@ -847,7 +841,7 @@ fish_indent: $(FISH_INDENT_OBJS) $(EXTRA_PCRE2)
|
||||
$v $(CXX) $(CXXFLAGS) $(LDFLAGS) $(FISH_INDENT_OBJS) $(LIBS) -o $@
|
||||
|
||||
#
|
||||
# Build the fish_key_reader program to show input from the terminal.
|
||||
# Build the fish_key_reader program to show input from the terminal.
|
||||
#
|
||||
fish_key_reader: $(FISH_KEYREAD_OBJS) $(EXTRA_PCRE2)
|
||||
@echo " CXX LD $(em)$@$(sgr0)"
|
||||
@@ -864,7 +858,7 @@ fish_key_reader: $(FISH_KEYREAD_OBJS) $(EXTRA_PCRE2)
|
||||
# exactly the files that result in objects, leaving the #include'd files
|
||||
# behind.
|
||||
#
|
||||
depend: | show-MKDIR_P
|
||||
depend: | show-MKDIR_P
|
||||
@echo " CXX LD $(em)$@$(sgr0)"
|
||||
$v $(MKDIR_P) /tmp/fish_make_depend/src
|
||||
# This is ran only once in a blue moon - full verbosity so we are reminded what it does.
|
||||
@@ -900,8 +894,8 @@ style-all:
|
||||
# Restore the source tree to the state right after extracting a tarball.
|
||||
#
|
||||
distclean: clean
|
||||
$v test ! -f $(PCRE2_DIR)/Makefile || \
|
||||
$(MAKE) V=$(V) -C $(PCRE2_DIR) distclean ||:
|
||||
-$v test ! -f $(PCRE2_DIR)/Makefile || \
|
||||
$(MAKE) V=$(V) -C $(PCRE2_DIR) distclean
|
||||
$v rm -rf config.status config.log config.h Makefile autom4te.cache aclocal.m4
|
||||
.PHONY: distclean
|
||||
|
||||
@@ -918,12 +912,12 @@ clean:
|
||||
# PCRE's make clean has a few slightly annoying exceptions to the V= rule. If V=0
|
||||
# send all output to /dev/null - unless there's an error, in which case run it again not silenced.
|
||||
ifeq ($(V), 0 )
|
||||
@test ! -f $(PCRE2_DIR)/Makefile || \
|
||||
$(MAKE) -C $(PCRE2_DIR) clean ||:
|
||||
-@test ! -f $(PCRE2_DIR)/Makefile || \
|
||||
$(MAKE) -C $(PCRE2_DIR) clean
|
||||
else
|
||||
@test ! -f $(PCRE2_DIR)/Makefile || \
|
||||
$(MAKE) -s -C $(PCRE2_DIR) clean > /dev/null || \
|
||||
$(MAKE) -s -C $(PCRE2_DIR) clean ||:
|
||||
-@test ! -f $(PCRE2_DIR)/Makefile || \
|
||||
$(MAKE) -s -C $(PCRE2_DIR) clean > /dev/null || \
|
||||
$(MAKE) -s -C $(PCRE2_DIR) clean
|
||||
endif
|
||||
$v rm -f obj/*.o *.o doc.h doc.tmp
|
||||
$v rm -f doc_src/*.doxygen doc_src/*.cpp doc_src/*.o doc_src/commands.hdr
|
||||
@@ -951,76 +945,180 @@ V0 := @
|
||||
V1 :=
|
||||
v = $(V$(V))
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
# DO NOT DELETE THIS LINE -- `make depend` depends on it.
|
||||
|
||||
obj/autoload.o: config.h src/autoload.h src/common.h src/fallback.h
|
||||
obj/autoload.o: src/signal.h src/lru.h src/env.h src/exec.h src/wutil.h
|
||||
obj/builtin.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin.o: src/signal.h src/builtin_commandline.h src/builtin_complete.h
|
||||
obj/builtin.o: src/builtin_jobs.h src/builtin_printf.h src/builtin_set.h
|
||||
obj/builtin.o: src/builtin_set_color.h src/builtin_string.h
|
||||
obj/builtin.o: src/builtin_test.h src/builtin_ulimit.h src/complete.h
|
||||
obj/builtin.o: src/env.h src/event.h src/exec.h src/expand.h
|
||||
obj/builtin.o: src/parse_constants.h src/function.h src/highlight.h
|
||||
obj/builtin.o: src/color.h src/history.h src/wutil.h src/input.h src/intern.h
|
||||
obj/builtin.o: src/io.h src/parse_util.h src/tokenizer.h src/parser.h
|
||||
obj/builtin.o: src/parse_tree.h src/proc.h src/parser_keywords.h src/path.h
|
||||
obj/builtin.o: src/reader.h src/wcstringutil.h src/wgetopt.h
|
||||
obj/builtin.o: src/signal.h src/builtin_bg.h src/builtin_bind.h
|
||||
obj/builtin.o: src/builtin_block.h src/builtin_builtin.h src/builtin_cd.h
|
||||
obj/builtin.o: src/builtin_command.h src/builtin_commandline.h
|
||||
obj/builtin.o: src/builtin_complete.h src/builtin_contains.h
|
||||
obj/builtin.o: src/builtin_disown.h src/builtin_echo.h src/builtin_emit.h
|
||||
obj/builtin.o: src/builtin_exit.h src/builtin_fg.h src/builtin_functions.h
|
||||
obj/builtin.o: src/builtin_argparse.h src/builtin_history.h src/builtin_jobs.h
|
||||
obj/builtin.o: src/builtin_printf.h src/builtin_pwd.h src/builtin_random.h
|
||||
obj/builtin.o: src/builtin_read.h src/builtin_realpath.h src/builtin_return.h
|
||||
obj/builtin.o: src/builtin_set.h src/builtin_set_color.h src/builtin_source.h
|
||||
obj/builtin.o: src/builtin_status.h src/builtin_string.h src/builtin_test.h
|
||||
obj/builtin.o: src/builtin_ulimit.h src/complete.h src/exec.h src/intern.h
|
||||
obj/builtin.o: src/io.h src/parse_constants.h src/parse_util.h
|
||||
obj/builtin.o: src/tokenizer.h src/parser.h src/event.h src/expand.h
|
||||
obj/builtin.o: src/parse_tree.h src/proc.h src/reader.h src/highlight.h
|
||||
obj/builtin.o: src/color.h src/env.h src/wgetopt.h src/wutil.h
|
||||
obj/builtin_bg.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_bg.o: src/signal.h src/builtin_bg.h src/io.h src/proc.h
|
||||
obj/builtin_bg.o: src/parse_tree.h src/parse_constants.h src/tokenizer.h
|
||||
obj/builtin_bg.o: src/wutil.h
|
||||
obj/builtin_bind.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_bind.o: src/signal.h src/builtin_bind.h src/input.h src/io.h
|
||||
obj/builtin_bind.o: src/wgetopt.h src/wutil.h
|
||||
obj/builtin_block.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_block.o: src/signal.h src/builtin_block.h src/event.h src/io.h
|
||||
obj/builtin_block.o: src/parser.h src/expand.h src/parse_constants.h
|
||||
obj/builtin_block.o: src/parse_tree.h src/tokenizer.h src/proc.h
|
||||
obj/builtin_block.o: src/wgetopt.h src/wutil.h
|
||||
obj/builtin_builtin.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_builtin.o: src/signal.h src/builtin_builtin.h src/io.h
|
||||
obj/builtin_builtin.o: src/wgetopt.h src/wutil.h
|
||||
obj/builtin_cd.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_cd.o: src/signal.h src/builtin_cd.h src/env.h src/io.h
|
||||
obj/builtin_cd.o: src/parser.h src/event.h src/expand.h src/parse_constants.h
|
||||
obj/builtin_cd.o: src/parse_tree.h src/tokenizer.h src/proc.h src/path.h
|
||||
obj/builtin_cd.o: src/wutil.h
|
||||
obj/builtin_command.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_command.o: src/signal.h src/builtin_command.h src/io.h src/path.h
|
||||
obj/builtin_command.o: src/env.h src/wgetopt.h src/wutil.h
|
||||
obj/builtin_commandline.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_commandline.o: src/signal.h src/input.h src/env.h src/io.h
|
||||
obj/builtin_commandline.o: src/parse_util.h src/parse_constants.h
|
||||
obj/builtin_commandline.o: src/signal.h src/input.h src/builtin_bind.h
|
||||
obj/builtin_commandline.o: src/io.h src/parse_util.h src/parse_constants.h
|
||||
obj/builtin_commandline.o: src/tokenizer.h src/proc.h src/parse_tree.h
|
||||
obj/builtin_commandline.o: src/reader.h src/complete.h src/highlight.h
|
||||
obj/builtin_commandline.o: src/color.h src/util.h src/wgetopt.h src/wutil.h
|
||||
obj/builtin_commandline.o: src/color.h src/env.h src/util.h src/wgetopt.h
|
||||
obj/builtin_commandline.o: src/wutil.h
|
||||
obj/builtin_complete.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_complete.o: src/signal.h src/complete.h src/env.h src/io.h
|
||||
obj/builtin_complete.o: src/parse_constants.h src/parse_util.h
|
||||
obj/builtin_complete.o: src/tokenizer.h src/parser.h src/event.h src/expand.h
|
||||
obj/builtin_complete.o: src/parse_tree.h src/proc.h src/reader.h
|
||||
obj/builtin_complete.o: src/highlight.h src/color.h src/wgetopt.h src/wutil.h
|
||||
obj/builtin_contains.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_contains.o: src/signal.h src/builtin_contains.h src/io.h
|
||||
obj/builtin_contains.o: src/wgetopt.h src/wutil.h
|
||||
obj/builtin_disown.o: config.h src/signal.h src/builtin.h src/common.h
|
||||
obj/builtin_disown.o: src/fallback.h src/builtin_disown.h src/io.h
|
||||
obj/builtin_disown.o: src/parser.h src/event.h src/expand.h
|
||||
obj/builtin_disown.o: src/parse_constants.h src/parse_tree.h src/tokenizer.h
|
||||
obj/builtin_disown.o: src/proc.h src/wutil.h
|
||||
obj/builtin_echo.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_echo.o: src/signal.h src/builtin_echo.h src/io.h src/wgetopt.h
|
||||
obj/builtin_echo.o: src/wutil.h
|
||||
obj/builtin_emit.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_emit.o: src/signal.h src/builtin_emit.h src/event.h src/io.h
|
||||
obj/builtin_emit.o: src/wutil.h
|
||||
obj/builtin_exit.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_exit.o: src/signal.h src/builtin_exit.h src/io.h src/proc.h
|
||||
obj/builtin_exit.o: src/parse_tree.h src/parse_constants.h src/tokenizer.h
|
||||
obj/builtin_exit.o: src/reader.h src/complete.h src/highlight.h src/color.h
|
||||
obj/builtin_exit.o: src/env.h src/wgetopt.h src/wutil.h
|
||||
obj/builtin_fg.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_fg.o: src/signal.h src/builtin_fg.h src/env.h src/io.h src/proc.h
|
||||
obj/builtin_fg.o: src/parse_tree.h src/parse_constants.h src/tokenizer.h
|
||||
obj/builtin_fg.o: src/reader.h src/complete.h src/highlight.h src/color.h
|
||||
obj/builtin_fg.o: src/wutil.h
|
||||
obj/builtin_function.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_function.o: src/signal.h src/builtin_function.h src/complete.h
|
||||
obj/builtin_function.o: src/event.h src/function.h src/env.h src/io.h
|
||||
obj/builtin_function.o: src/parser.h src/expand.h src/parse_constants.h
|
||||
obj/builtin_function.o: src/parse_tree.h src/tokenizer.h src/proc.h
|
||||
obj/builtin_function.o: src/parser_keywords.h src/wgetopt.h src/wutil.h
|
||||
obj/builtin_functions.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_functions.o: src/signal.h src/builtin_functions.h src/env.h
|
||||
obj/builtin_functions.o: src/event.h src/function.h src/io.h
|
||||
obj/builtin_functions.o: src/parser_keywords.h src/proc.h src/parse_tree.h
|
||||
obj/builtin_functions.o: src/parse_constants.h src/tokenizer.h src/wgetopt.h
|
||||
obj/builtin_functions.o: src/wutil.h
|
||||
obj/builtin_argparse.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_argparse.o: src/signal.h src/builtin_argparse.h src/env.h
|
||||
obj/builtin_argparse.o: src/expand.h src/parse_constants.h src/io.h
|
||||
obj/builtin_argparse.o: src/wgetopt.h src/wutil.h
|
||||
obj/builtin_history.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_history.o: src/signal.h src/builtin_history.h src/history.h
|
||||
obj/builtin_history.o: src/wutil.h src/io.h src/reader.h src/complete.h
|
||||
obj/builtin_history.o: src/highlight.h src/color.h src/env.h
|
||||
obj/builtin_history.o: src/parse_constants.h src/wgetopt.h
|
||||
obj/builtin_jobs.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_jobs.o: src/signal.h src/io.h src/proc.h src/parse_tree.h
|
||||
obj/builtin_jobs.o: src/parse_constants.h src/tokenizer.h src/wgetopt.h
|
||||
obj/builtin_jobs.o: src/wutil.h
|
||||
obj/builtin_printf.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_printf.o: src/signal.h src/io.h src/proc.h src/parse_tree.h
|
||||
obj/builtin_printf.o: src/parse_constants.h src/tokenizer.h src/wutil.h
|
||||
obj/builtin_printf.o: src/signal.h src/io.h src/wutil.h
|
||||
obj/builtin_pwd.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_pwd.o: src/signal.h src/builtin_pwd.h src/io.h src/wutil.h
|
||||
obj/builtin_random.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_random.o: src/signal.h src/builtin_random.h src/io.h src/wutil.h
|
||||
obj/builtin_read.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_read.o: src/signal.h src/builtin_read.h src/complete.h src/env.h
|
||||
obj/builtin_read.o: src/event.h src/expand.h src/parse_constants.h
|
||||
obj/builtin_read.o: src/highlight.h src/color.h src/history.h src/wutil.h
|
||||
obj/builtin_read.o: src/io.h src/proc.h src/parse_tree.h src/tokenizer.h
|
||||
obj/builtin_read.o: src/reader.h src/wcstringutil.h src/wgetopt.h
|
||||
obj/builtin_realpath.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_realpath.o: src/signal.h src/builtin_realpath.h src/io.h
|
||||
obj/builtin_realpath.o: src/wutil.h
|
||||
obj/builtin_return.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_return.o: src/signal.h src/builtin_return.h src/io.h src/parser.h
|
||||
obj/builtin_return.o: src/event.h src/expand.h src/parse_constants.h
|
||||
obj/builtin_return.o: src/parse_tree.h src/tokenizer.h src/proc.h
|
||||
obj/builtin_return.o: src/wgetopt.h src/wutil.h
|
||||
obj/builtin_set.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_set.o: src/signal.h src/env.h src/expand.h src/parse_constants.h
|
||||
obj/builtin_set.o: src/io.h src/proc.h src/parse_tree.h src/tokenizer.h
|
||||
obj/builtin_set.o: src/wgetopt.h src/wutil.h
|
||||
obj/builtin_set_color.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_set_color.o: src/signal.h src/color.h src/io.h src/output.h
|
||||
obj/builtin_set_color.o: src/proc.h src/parse_tree.h src/parse_constants.h
|
||||
obj/builtin_set_color.o: src/tokenizer.h src/wgetopt.h src/wutil.h
|
||||
obj/builtin_set_color.o: src/signal.h src/color.h src/env.h src/io.h
|
||||
obj/builtin_set_color.o: src/output.h src/wgetopt.h src/wutil.h
|
||||
obj/builtin_source.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_source.o: src/signal.h src/builtin_source.h src/env.h
|
||||
obj/builtin_source.o: src/intern.h src/io.h src/parser.h src/event.h
|
||||
obj/builtin_source.o: src/expand.h src/parse_constants.h src/parse_tree.h
|
||||
obj/builtin_source.o: src/tokenizer.h src/proc.h src/reader.h src/complete.h
|
||||
obj/builtin_source.o: src/highlight.h src/color.h src/wutil.h
|
||||
obj/builtin_status.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_status.o: src/signal.h src/builtin_status.h src/io.h src/parser.h
|
||||
obj/builtin_status.o: src/event.h src/expand.h src/parse_constants.h
|
||||
obj/builtin_status.o: src/parse_tree.h src/tokenizer.h src/proc.h
|
||||
obj/builtin_status.o: src/wgetopt.h src/wutil.h
|
||||
obj/builtin_string.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_string.o: src/signal.h src/io.h src/parse_util.h
|
||||
obj/builtin_string.o: src/parse_constants.h src/tokenizer.h src/wgetopt.h
|
||||
obj/builtin_string.o: src/wildcard.h src/complete.h src/expand.h src/wutil.h
|
||||
obj/builtin_test.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_test.o: src/signal.h src/io.h src/proc.h src/parse_tree.h
|
||||
obj/builtin_test.o: src/parse_constants.h src/tokenizer.h src/wutil.h
|
||||
obj/builtin_test.o: src/signal.h src/io.h src/wutil.h
|
||||
obj/builtin_ulimit.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/builtin_ulimit.o: src/signal.h src/io.h src/util.h src/wgetopt.h
|
||||
obj/builtin_ulimit.o: src/wutil.h
|
||||
obj/color.o: config.h src/color.h src/common.h src/fallback.h src/signal.h
|
||||
obj/common.o: config.h src/signal.h src/common.h src/fallback.h src/expand.h
|
||||
obj/common.o: src/parse_constants.h src/wildcard.h src/complete.h src/wutil.h
|
||||
obj/common.o: config.h src/common.h src/fallback.h src/signal.h src/env.h
|
||||
obj/common.o: src/expand.h src/parse_constants.h src/proc.h src/io.h
|
||||
obj/common.o: src/parse_tree.h src/tokenizer.h src/wildcard.h src/complete.h
|
||||
obj/common.o: src/wutil.h
|
||||
obj/complete.o: config.h src/autoload.h src/common.h src/fallback.h
|
||||
obj/complete.o: src/signal.h src/lru.h src/builtin.h src/complete.h src/env.h
|
||||
obj/complete.o: src/exec.h src/expand.h src/parse_constants.h src/function.h
|
||||
obj/complete.o: src/event.h src/iothread.h src/parse_tree.h src/tokenizer.h
|
||||
obj/complete.o: src/parse_util.h src/parser.h src/proc.h src/io.h src/path.h
|
||||
obj/complete.o: src/util.h src/wildcard.h src/wutil.h
|
||||
obj/env.o: config.h src/common.h src/fallback.h src/signal.h src/env.h
|
||||
obj/env.o: src/env_universal_common.h src/wutil.h src/event.h src/expand.h
|
||||
obj/env.o: src/parse_constants.h src/fish_version.h src/history.h src/input.h
|
||||
obj/env.o: src/input_common.h src/path.h src/proc.h src/io.h src/parse_tree.h
|
||||
obj/env.o: config.h src/builtin_bind.h src/common.h src/fallback.h
|
||||
obj/env.o: src/signal.h src/env.h src/env_universal_common.h src/wutil.h
|
||||
obj/env.o: src/event.h src/expand.h src/parse_constants.h src/fish_version.h
|
||||
obj/env.o: src/history.h src/input.h src/input_common.h src/output.h
|
||||
obj/env.o: src/color.h src/path.h src/proc.h src/io.h src/parse_tree.h
|
||||
obj/env.o: src/tokenizer.h src/reader.h src/complete.h src/highlight.h
|
||||
obj/env.o: src/color.h src/sanity.h
|
||||
obj/env.o: src/sanity.h src/screen.h
|
||||
obj/env_universal_common.o: config.h src/common.h src/fallback.h src/signal.h
|
||||
obj/env_universal_common.o: src/env.h src/env_universal_common.h src/wutil.h
|
||||
obj/env_universal_common.o: src/utf8.h src/util.h
|
||||
obj/env_universal_common.o: src/path.h src/utf8.h src/util.h
|
||||
obj/event.o: config.h src/signal.h src/common.h src/fallback.h src/event.h
|
||||
obj/event.o: src/input_common.h src/io.h src/parser.h src/expand.h
|
||||
obj/event.o: src/parse_constants.h src/parse_tree.h src/tokenizer.h
|
||||
@@ -1039,17 +1137,17 @@ obj/fallback.o: config.h src/signal.h src/common.h src/fallback.h src/util.h
|
||||
obj/fish.o: config.h src/builtin.h src/common.h src/fallback.h src/signal.h
|
||||
obj/fish.o: src/env.h src/event.h src/expand.h src/parse_constants.h
|
||||
obj/fish.o: src/fish_version.h src/function.h src/history.h src/wutil.h
|
||||
obj/fish.o: src/input.h src/io.h src/parser.h src/parse_tree.h
|
||||
obj/fish.o: src/tokenizer.h src/proc.h src/path.h src/reader.h src/complete.h
|
||||
obj/fish.o: src/highlight.h src/color.h
|
||||
obj/fish.o: src/io.h src/parser.h src/parse_tree.h src/tokenizer.h src/proc.h
|
||||
obj/fish.o: src/path.h src/reader.h src/complete.h src/highlight.h
|
||||
obj/fish.o: src/color.h
|
||||
obj/fish_indent.o: config.h src/color.h src/common.h src/fallback.h
|
||||
obj/fish_indent.o: src/signal.h src/env.h src/fish_version.h src/highlight.h
|
||||
obj/fish_indent.o: src/input.h src/output.h src/parse_constants.h
|
||||
obj/fish_indent.o: src/parse_tree.h src/tokenizer.h src/print_help.h
|
||||
obj/fish_indent.o: src/wutil.h
|
||||
obj/fish_indent.o: src/output.h src/parse_constants.h src/parse_tree.h
|
||||
obj/fish_indent.o: src/tokenizer.h src/print_help.h src/wutil.h
|
||||
obj/fish_key_reader.o: config.h src/signal.h src/common.h src/fallback.h
|
||||
obj/fish_key_reader.o: src/env.h src/input.h src/input_common.h
|
||||
obj/fish_key_reader.o: src/print_help.h src/proc.h src/io.h src/parse_tree.h
|
||||
obj/fish_key_reader.o: src/env.h src/fish_version.h src/input.h
|
||||
obj/fish_key_reader.o: src/builtin_bind.h src/input_common.h src/print_help.h
|
||||
obj/fish_key_reader.o: src/proc.h src/io.h src/parse_tree.h
|
||||
obj/fish_key_reader.o: src/parse_constants.h src/tokenizer.h src/reader.h
|
||||
obj/fish_key_reader.o: src/complete.h src/highlight.h src/color.h src/wutil.h
|
||||
obj/fish_tests.o: config.h src/signal.h src/builtin.h src/common.h
|
||||
@@ -1057,10 +1155,11 @@ obj/fish_tests.o: src/fallback.h src/color.h src/complete.h src/env.h
|
||||
obj/fish_tests.o: src/env_universal_common.h src/wutil.h src/event.h
|
||||
obj/fish_tests.o: src/expand.h src/parse_constants.h src/function.h
|
||||
obj/fish_tests.o: src/highlight.h src/history.h src/input.h
|
||||
obj/fish_tests.o: src/input_common.h src/io.h src/iothread.h src/lru.h
|
||||
obj/fish_tests.o: src/pager.h src/reader.h src/screen.h src/parse_tree.h
|
||||
obj/fish_tests.o: src/tokenizer.h src/parse_util.h src/parser.h src/proc.h
|
||||
obj/fish_tests.o: src/path.h src/utf8.h src/wcstringutil.h src/wildcard.h
|
||||
obj/fish_tests.o: src/builtin_bind.h src/input_common.h src/io.h
|
||||
obj/fish_tests.o: src/iothread.h src/lru.h src/pager.h src/reader.h
|
||||
obj/fish_tests.o: src/screen.h src/parse_tree.h src/tokenizer.h
|
||||
obj/fish_tests.o: src/parse_util.h src/parser.h src/proc.h src/path.h
|
||||
obj/fish_tests.o: src/utf8.h src/util.h src/wcstringutil.h src/wildcard.h
|
||||
obj/fish_version.o: src/fish_version.h
|
||||
obj/function.o: config.h src/autoload.h src/common.h src/fallback.h
|
||||
obj/function.o: src/signal.h src/lru.h src/env.h src/event.h src/function.h
|
||||
@@ -1076,13 +1175,13 @@ obj/highlight.o: src/wildcard.h src/complete.h
|
||||
obj/history.o: config.h src/common.h src/fallback.h src/signal.h src/env.h
|
||||
obj/history.o: src/history.h src/wutil.h src/io.h src/iothread.h src/lru.h
|
||||
obj/history.o: src/parse_constants.h src/parse_tree.h src/tokenizer.h
|
||||
obj/history.o: src/path.h src/reader.h src/complete.h src/highlight.h
|
||||
obj/history.o: src/color.h
|
||||
obj/history.o: src/parse_util.h src/path.h src/reader.h src/complete.h
|
||||
obj/history.o: src/highlight.h src/color.h
|
||||
obj/input.o: config.h src/common.h src/fallback.h src/signal.h src/env.h
|
||||
obj/input.o: src/event.h src/input.h src/input_common.h src/io.h src/output.h
|
||||
obj/input.o: src/color.h src/parser.h src/expand.h src/parse_constants.h
|
||||
obj/input.o: src/event.h src/input.h src/builtin_bind.h src/input_common.h
|
||||
obj/input.o: src/io.h src/parser.h src/expand.h src/parse_constants.h
|
||||
obj/input.o: src/parse_tree.h src/tokenizer.h src/proc.h src/reader.h
|
||||
obj/input.o: src/complete.h src/highlight.h src/wutil.h
|
||||
obj/input.o: src/complete.h src/highlight.h src/color.h src/wutil.h
|
||||
obj/input_common.o: config.h src/common.h src/fallback.h src/signal.h
|
||||
obj/input_common.o: src/env.h src/env_universal_common.h src/wutil.h
|
||||
obj/input_common.o: src/input_common.h src/iothread.h src/util.h
|
||||
@@ -1090,7 +1189,7 @@ obj/intern.o: config.h src/common.h src/fallback.h src/signal.h src/intern.h
|
||||
obj/io.o: config.h src/common.h src/fallback.h src/signal.h src/exec.h
|
||||
obj/io.o: src/io.h src/wutil.h
|
||||
obj/iothread.o: config.h src/signal.h src/common.h src/fallback.h
|
||||
obj/iothread.o: src/iothread.h
|
||||
obj/iothread.o: src/iothread.h src/wutil.h
|
||||
obj/kill.o: config.h src/common.h src/fallback.h src/signal.h
|
||||
obj/output.o: config.h src/color.h src/common.h src/fallback.h src/signal.h
|
||||
obj/output.o: src/env.h src/output.h src/wutil.h
|
||||
@@ -1098,13 +1197,13 @@ obj/pager.o: config.h src/common.h src/fallback.h src/signal.h src/complete.h
|
||||
obj/pager.o: src/highlight.h src/color.h src/env.h src/pager.h src/reader.h
|
||||
obj/pager.o: src/parse_constants.h src/screen.h src/util.h src/wutil.h
|
||||
obj/parse_execution.o: config.h src/builtin.h src/common.h src/fallback.h
|
||||
obj/parse_execution.o: src/signal.h src/complete.h src/env.h src/event.h
|
||||
obj/parse_execution.o: src/exec.h src/expand.h src/parse_constants.h
|
||||
obj/parse_execution.o: src/function.h src/io.h src/parse_execution.h
|
||||
obj/parse_execution.o: src/parse_tree.h src/tokenizer.h src/proc.h
|
||||
obj/parse_execution.o: src/parse_util.h src/parser.h src/path.h src/reader.h
|
||||
obj/parse_execution.o: src/highlight.h src/color.h src/util.h src/wildcard.h
|
||||
obj/parse_execution.o: src/wutil.h
|
||||
obj/parse_execution.o: src/signal.h src/builtin_function.h src/complete.h
|
||||
obj/parse_execution.o: src/env.h src/event.h src/exec.h src/expand.h
|
||||
obj/parse_execution.o: src/parse_constants.h src/function.h src/io.h
|
||||
obj/parse_execution.o: src/parse_execution.h src/parse_tree.h src/tokenizer.h
|
||||
obj/parse_execution.o: src/proc.h src/parse_util.h src/parser.h src/path.h
|
||||
obj/parse_execution.o: src/reader.h src/highlight.h src/color.h src/util.h
|
||||
obj/parse_execution.o: src/wildcard.h src/wutil.h
|
||||
obj/parse_productions.o: config.h src/common.h src/fallback.h src/signal.h
|
||||
obj/parse_productions.o: src/parse_constants.h src/parse_productions.h
|
||||
obj/parse_productions.o: src/parse_tree.h src/tokenizer.h
|
||||
@@ -1140,18 +1239,18 @@ obj/proc.o: src/sanity.h src/util.h src/wutil.h
|
||||
obj/reader.o: config.h src/signal.h src/color.h src/common.h src/fallback.h
|
||||
obj/reader.o: src/complete.h src/env.h src/event.h src/exec.h src/expand.h
|
||||
obj/reader.o: src/parse_constants.h src/function.h src/highlight.h
|
||||
obj/reader.o: src/history.h src/wutil.h src/input.h src/input_common.h
|
||||
obj/reader.o: src/intern.h src/io.h src/iothread.h src/kill.h src/output.h
|
||||
obj/reader.o: src/pager.h src/reader.h src/screen.h src/parse_tree.h
|
||||
obj/reader.o: src/tokenizer.h src/parse_util.h src/parser.h src/proc.h
|
||||
obj/reader.o: src/sanity.h src/util.h
|
||||
obj/reader.o: src/history.h src/wutil.h src/input.h src/builtin_bind.h
|
||||
obj/reader.o: src/input_common.h src/intern.h src/io.h src/iothread.h
|
||||
obj/reader.o: src/kill.h src/output.h src/pager.h src/reader.h src/screen.h
|
||||
obj/reader.o: src/parse_tree.h src/tokenizer.h src/parse_util.h src/parser.h
|
||||
obj/reader.o: src/proc.h src/sanity.h src/util.h
|
||||
obj/sanity.o: config.h src/common.h src/fallback.h src/signal.h src/history.h
|
||||
obj/sanity.o: src/wutil.h src/kill.h src/proc.h src/io.h src/parse_tree.h
|
||||
obj/sanity.o: src/parse_constants.h src/tokenizer.h src/reader.h
|
||||
obj/sanity.o: src/complete.h src/highlight.h src/color.h src/env.h
|
||||
obj/sanity.o: src/sanity.h
|
||||
obj/screen.o: config.h src/common.h src/fallback.h src/signal.h
|
||||
obj/screen.o: src/highlight.h src/color.h src/env.h src/output.h src/pager.h
|
||||
obj/screen.o: config.h src/common.h src/fallback.h src/signal.h src/env.h
|
||||
obj/screen.o: src/highlight.h src/color.h src/output.h src/pager.h
|
||||
obj/screen.o: src/complete.h src/reader.h src/parse_constants.h src/screen.h
|
||||
obj/screen.o: src/util.h
|
||||
obj/signal.o: config.h src/signal.h src/common.h src/fallback.h src/event.h
|
||||
|
||||
188
README.md
188
README.md
@@ -1,36 +1,145 @@
|
||||
[fish](http://fishshell.com/) - the friendly interactive shell [](https://travis-ci.org/fish-shell/fish-shell)
|
||||
[fish](https://fishshell.com/) - the friendly interactive shell [](https://travis-ci.org/fish-shell/fish-shell)
|
||||
================================================
|
||||
|
||||
fish is a smart and user-friendly command line shell for OS X, Linux, and the rest of the family. fish includes features like syntax highlighting, autosuggest-as-you-type, and fancy tab completions that just work, with no configuration required.
|
||||
fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family.
|
||||
fish includes features like syntax highlighting, autosuggest-as-you-type, and fancy tab completions
|
||||
that just work, with no configuration required.
|
||||
|
||||
For more on fish's design philosophy, see the [design document](http://fishshell.com/docs/current/design.html).
|
||||
For more on fish's design philosophy, see the [design document](https://fishshell.com/docs/current/design.html).
|
||||
|
||||
## Quick Start
|
||||
|
||||
fish generally works like other shells, like bash or zsh. A few important differences can be found at <http://fishshell.com/docs/current/tutorial.html> by searching for the magic phrase "unlike other shells".
|
||||
fish generally works like other shells, like bash or zsh. A few important differences can be found at <https://fishshell.com/docs/current/tutorial.html> by searching for the magic phrase "unlike other shells".
|
||||
|
||||
Detailed user documentation is available by running `help` within fish, and also at <http://fishshell.com/docs/current/index.html>
|
||||
Detailed user documentation is available by running `help` within fish, and also at <https://fishshell.com/docs/current/index.html>
|
||||
|
||||
## Getting fish
|
||||
|
||||
### macOS
|
||||
|
||||
fish can be installed:
|
||||
|
||||
* using [Homebrew](http://brew.sh/): `brew install fish`
|
||||
* using [MacPorts](https://www.macports.org/): `sudo port install fish`
|
||||
* using the [installer from fishshell.com](https://fishshell.com/)
|
||||
* as a [standalone app from fishshell.com](https://fishshell.com/)
|
||||
|
||||
### Packages for Linux
|
||||
|
||||
Packages for Debian, Fedora, openSUSE, and Red Hat Enterprise Linux/CentOS are available from the
|
||||
[openSUSE Build
|
||||
Service](https://software.opensuse.org/download.html?project=shells%3Afish%3Arelease%3A2&package=fish).
|
||||
|
||||
Packages for Ubuntu are available from the [fish
|
||||
PPA](https://launchpad.net/~fish-shell/+archive/ubuntu/release-2), and can be installed using the
|
||||
following commands:
|
||||
|
||||
```
|
||||
sudo apt-add-repository ppa:fish-shell/release-2
|
||||
sudo apt-get update
|
||||
sudo apt-get install fish
|
||||
```
|
||||
|
||||
Instructions for other distributions may be found at [fishshell.com](https://fishshell.com).
|
||||
|
||||
### Windows
|
||||
|
||||
fish can be installed using [Cygwin](https://cygwin.com/) Setup (under the **Shells** category).
|
||||
|
||||
fish can be installed into Windows Subsystem for Linux using the instructions under *Packages for
|
||||
Linux* for the appropriate image (eg Ubuntu).
|
||||
|
||||
### Building from source
|
||||
|
||||
If packages are not available for your platform, GPG-signed tarballs are available from
|
||||
[fishshell.com](https://fishshell.com/) and [fish-shell on
|
||||
GitHub](https://github.com/fish-shell/fish-shell/releases).
|
||||
|
||||
See the *Building* section for instructions.
|
||||
|
||||
## Running fish
|
||||
|
||||
Once installed, run `fish` from your current shell to try fish out!
|
||||
|
||||
### Dependencies
|
||||
|
||||
Running fish requires:
|
||||
|
||||
* a curses implementation such as ncurses (libraries and the `tput` command)
|
||||
* PCRE2 library - a copy is included with fish
|
||||
* gettext (library and `gettext` command), if compiled with translation support
|
||||
* basic system utilities including `basename`, `cat`, `cut`, `date`, `dircolors`, `dirname`, `ls`,
|
||||
`mkdir`, `mkfifo`, `mktemp`, `rm`, `seq`, `sort`, `stat`, `stty`, `tail`, `tr`, `tty`, `uname`,
|
||||
`uniq`, `wc`, and `whoami`
|
||||
* a number of common UNIX utilities:
|
||||
* `awk`
|
||||
* `bc`, the "basic calculator" program
|
||||
* `find`
|
||||
* `grep`
|
||||
* `hostname`
|
||||
* `kill`
|
||||
* `ps`
|
||||
* `sed`
|
||||
|
||||
The following optional features also have specific requirements:
|
||||
|
||||
* builtin commands that have the `--help` option or print usage messages require `nroff` and
|
||||
`ul` (manual page formatters) to do so
|
||||
* completion generation from manual pages requires Python 2.7, 3.3 or greater, and possibly the
|
||||
`backports.lzma` module for Python 2.7
|
||||
* the `fish_config` Web configuration tool requires Python 2.7, 3.3 or greater, and a web browser
|
||||
* system clipboard integration (with the default Ctrl-V and Ctrl-X bindings) require either the
|
||||
`xsel` or `pbcopy`/`pbpaste` utilities
|
||||
* prompts which support showing VCS information (Git, Mercurial or Subversion) require these
|
||||
utilities
|
||||
|
||||
### Switching to fish
|
||||
|
||||
If you wish to use fish as your default shell, use the following command:
|
||||
|
||||
chsh -s /usr/local/bin/fish
|
||||
|
||||
chsh will prompt you for your password, and change your default shell. Substitute `/usr/local/bin/fish` with whatever path to fish is in your `/etc/shells` file.
|
||||
|
||||
Use the following command if you didn't already add your fish path to `/etc/shells`.
|
||||
|
||||
echo /usr/local/bin/fish | sudo tee -a /etc/shells
|
||||
|
||||
To switch your default shell back, you can run:
|
||||
|
||||
chsh -s /bin/bash
|
||||
|
||||
Substitute `/bin/bash` with `/bin/tcsh` or `/bin/zsh` as appropriate.
|
||||
|
||||
You may need to logout/login for the change (chsh) to take effect.
|
||||
|
||||
## Building
|
||||
|
||||
fish requires a C++11 compiler. It builds successfully with g++ 4.8 or later, or with clang 3.3 or later.
|
||||
### Dependencies
|
||||
|
||||
fish can be built using autotools or Xcode. autoconf 2.60 or later, as well as automake 1.13 or later, are required to build from git versions. These are not required to build from released tarballs.
|
||||
Compiling fish requires:
|
||||
|
||||
fish depends on a curses implementation, such as ncurses. The headers and libraries are required for building.
|
||||
* a C++11 compiler (g++ 4.8 or later, or clang 3.3 or later)
|
||||
* either GNU Make (all platforms) or Xcode (macOS only)
|
||||
* a curses implementation such as ncurses (headers and libraries)
|
||||
* PCRE2 (headers and libraries) - a copy is included with fish
|
||||
* gettext (headers and libraries) - optional, for translation support
|
||||
|
||||
fish requires PCRE2 due to the regular expression support contained in the `string` builtin. A copy is included with the source code, and will be used automatically if it does not already exist on your system.
|
||||
Compiling from git (that is, not a released tarball) also requires:
|
||||
|
||||
fish requires gettext for translation support.
|
||||
* either Xcode (macOS only) or the following Autotools utilities (all platforms):
|
||||
* autoconf 2.60 or later
|
||||
* automake 1.13 or later
|
||||
* Doxygen (1.8.7 or later) - optional, for documentation
|
||||
|
||||
Building the documentation requires Doxygen 1.8.7 or newer.
|
||||
### Building from source
|
||||
|
||||
### Autotools Build
|
||||
|
||||
autoreconf --no-recursive [if building from Git]
|
||||
./configure
|
||||
make [gmake on BSD]
|
||||
sudo make install
|
||||
```bash
|
||||
autoreconf --no-recursive #if building from Git
|
||||
./configure
|
||||
make
|
||||
sudo make install
|
||||
```
|
||||
|
||||
### Xcode Development Build
|
||||
|
||||
@@ -41,8 +150,9 @@ Building the documentation requires Doxygen 1.8.7 or newer.
|
||||
|
||||
xcodebuild install
|
||||
sudo ditto /tmp/fish.dst /
|
||||
sudo make install-doc
|
||||
|
||||
## Help, it didn't build!
|
||||
### Help, it didn't build!
|
||||
|
||||
If fish reports that it could not find curses, try installing a curses development package and build again.
|
||||
|
||||
@@ -54,52 +164,12 @@ On RedHat, CentOS, or Amazon EC2:
|
||||
|
||||
sudo yum install ncurses-devel
|
||||
|
||||
## Runtime Dependencies
|
||||
|
||||
fish requires a curses implementation, such as ncurses, to run.
|
||||
|
||||
fish requires PCRE2 due to the regular expression support contained in the `string` builtin. A bundled version will be compiled in automatically at build time if required.
|
||||
|
||||
fish requires a number of utilities to operate, which should be present on any Unix, GNU/Linux or OS X system. These include (but are not limited to) hostname, grep, awk, sed, which, and getopt. fish also requires the bc program.
|
||||
|
||||
Translation support requires the gettext program.
|
||||
|
||||
Usage output for builtin functions is generated on-demand from the installed manpages using `nroff` and `ul`.
|
||||
|
||||
Some optional features of fish, such as the manual page completion parser and the web configuration tool, require Python.
|
||||
|
||||
In order to generate completions from man pages compressed with either lzma or xz, you may need to install an extra Python package. Python versions prior to 2.6 are not supported. To process lzma-compresed manpages, backports.lzma is needed for Python 3.2 or older. From version 3.3 onwards, Python already includes the required module.
|
||||
|
||||
## Packages for Linux
|
||||
|
||||
Instructions on how to find builds for several Linux distros are at <https://github.com/fish-shell/fish-shell/wiki/Nightly-builds>
|
||||
|
||||
## Switching to fish
|
||||
|
||||
If you wish to use fish as your default shell, use the following command:
|
||||
|
||||
chsh -s /usr/local/bin/fish
|
||||
|
||||
chsh will prompt you for your password, and change your default shell. Substitute "/usr/local/bin/fish" with whatever path to fish is in your /etc/shells file.
|
||||
|
||||
Use the following command if you didn't already add your fish path to /etc/shells.
|
||||
|
||||
echo /usr/local/bin/fish | sudo tee -a /etc/shells
|
||||
|
||||
To switch your default shell back, you can run:
|
||||
|
||||
chsh -s /bin/bash
|
||||
|
||||
Substitute /bin/bash with /bin/tcsh or /bin/zsh as appropriate.
|
||||
|
||||
You may need to logout/login for the change (chsh) to take effect.
|
||||
|
||||
## Contributing Changes to the Code
|
||||
|
||||
See the [Guide for Developers](CONTRIBUTING.md).
|
||||
|
||||
## Contact Us
|
||||
|
||||
Questions, comments, rants and raves can be posted to the official fish mailing list at <https://lists.sourceforge.net/lists/listinfo/fish-users> or join us on our [gitter.im channel](https://gitter.im/fish-shell/fish-shell) or IRC channel [#fish at irc.oftc.net](https://webchat.oftc.net/?channels=fish). Or use the [fish tag on Stackoverflow](https://stackoverflow.com/questions/tagged/fish).
|
||||
Questions, comments, rants and raves can be posted to the official fish mailing list at <https://lists.sourceforge.net/lists/listinfo/fish-users> or join us on our [gitter.im channel](https://gitter.im/fish-shell/fish-shell) or IRC channel [#fish at irc.oftc.net](https://webchat.oftc.net/?channels=fish). Or use the [fish tag on Stackoverflow](https://stackoverflow.com/questions/tagged/fish) for questions related to fish script and the [fish tag on Superuser](https://superuser.com/questions/tagged/fish) for all other questions (e.g., customizing colors, changing key bindings).
|
||||
|
||||
Found a bug? Have an awesome idea? Please open an issue on this github page.
|
||||
|
||||
42
build_tools/fish_xgettext.fish
Executable file
42
build_tools/fish_xgettext.fish
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env fish
|
||||
#
|
||||
# This script was originally motivated to work around a quirk (or bug depending on your viewpoint)
|
||||
# of the xgettext command. See https://lists.gnu.org/archive/html/bug-gettext/2014-11/msg00006.html.
|
||||
# However, it turns out that even if that quirk did not exist we would still need something like
|
||||
# this script to properly extract descriptions. That's because we need to normalize the strings to
|
||||
# a format that xgettext will handle correctly. Also, `xgettext -LShell` doesn't correctly extract
|
||||
# all the strings we want translated. So we extract and normalize all such strings into a format
|
||||
# that `xgettext` can handle.
|
||||
|
||||
# This regex handles descriptions for `complete` and `function` statements. These messages are not
|
||||
# particularly important to translate. Hence the "implicit" label.
|
||||
set implicit_regex '(?:^| +)(?:complete|function) .*? (?:-d|--description) (([\'"]).+?(?<!\\\\)\\2).*'
|
||||
|
||||
# This regex handles explicit requests to translate a message. These are more important to translate
|
||||
# than messages which should be implicitly translated.
|
||||
set explicit_regex '.*\( *_ (([\'"]).+?(?<!\\\\)\\2) *\).*'
|
||||
|
||||
mkdir -p /tmp/fish/implicit/share/completions /tmp/fish/implicit/share/functions
|
||||
mkdir -p /tmp/fish/explicit/share/completions /tmp/fish/explicit/share/functions
|
||||
|
||||
for f in share/config.fish share/completions/*.fish share/functions/*.fish
|
||||
# Extract explicit attempts to translate a message. That is, those that are of the form
|
||||
# `(_ "message")`.
|
||||
string replace --filter --regex $explicit_regex 'echo $1' <$f | fish >/tmp/fish/explicit/$f.tmp ^/dev/null
|
||||
while read description
|
||||
echo 'N_ "'(string replace --all '"' '\\"' -- $description)'"'
|
||||
end </tmp/fish/explicit/$f.tmp >/tmp/fish/explicit/$f
|
||||
rm /tmp/fish/explicit/$f.tmp
|
||||
|
||||
# Handle `complete` / `function` description messages. The `| fish` is subtle. It basically
|
||||
# avoids the need to use `source` with a command substituion that could affect the current
|
||||
# shell.
|
||||
string replace --filter --regex $implicit_regex 'echo $1' <$f | fish >/tmp/fish/implicit/$f.tmp ^/dev/null
|
||||
while read description
|
||||
# We don't use `string escape` as shown in the next comment because it produces output that
|
||||
# is not parsed correctly by xgettext. Instead just escape double-quotes and quote the
|
||||
# resulting string.
|
||||
echo 'N_ "'(string replace --all '"' '\\"' -- $description)'"'
|
||||
end </tmp/fish/implicit/$f.tmp >/tmp/fish/implicit/$f
|
||||
rm /tmp/fish/implicit/$f.tmp
|
||||
end
|
||||
@@ -1,6 +1,6 @@
|
||||
# Map file for the include-what-you-use tool on OS X. For some reason
|
||||
# the version installed by HomeBrew doesn't have useful mappings for the
|
||||
# system provided private headers.
|
||||
# system provided headers. This also has mappings for FreeBSD.
|
||||
[
|
||||
{ include: ["<sys/_pthread/_pthread_once_t.h>", "private", "<pthread.h>", "public"] },
|
||||
{ include: ["<sys/_pthread/_pthread_mutex_t.h>", "private", "<pthread.h>", "public"] },
|
||||
@@ -9,6 +9,7 @@
|
||||
{ include: ["<sys/_pthread/_pthread_cond_t.h>", "private", "<pthread.h>", "public"] },
|
||||
{ include: ["<sys/_pthread/_pthread_t.h>", "private", "<pthread.h>", "public"] },
|
||||
{ include: ["<sys/_pthread/_pthread_key_t.h>", "private", "<pthread.h>", "public"] },
|
||||
{ include: ["<sys/_pthreadtypes.h>", "private", "<pthread.h>", "public"] },
|
||||
{ include: ["<sys/_types/_posix_vdisable.h>", "private", "<pthread.h>", "public"] },
|
||||
{ include: ["<sys/_types/_time_t.h>", "private", "<time.h>", "public"] },
|
||||
{ include: ["<sys/_types/_suseconds_t.h>", "private", "<time.h>", "public"] },
|
||||
@@ -20,6 +21,7 @@
|
||||
{ include: ["<sys/_types/_seek_set.h>", "private", "<fcntl.h>", "public"] },
|
||||
{ include: ["<sys/_types/_mbstate_t.h>", "private", "<wchar.h>", "public"] },
|
||||
{ include: ["<iosfwd>", "private", "<string>", "public"] },
|
||||
{ include: ["<sys/_stdint.h>", "private", "<stdint.h>", "public"] },
|
||||
{ include: ["<sys/_types/_s_ifmt.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<sys/_types/_size_t.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<sys/_types/_size_t.h>", "private", "<stdlib.h>", "public"] },
|
||||
@@ -51,32 +53,35 @@
|
||||
{ include: ["<sys/signal.h>", "private", "<signal.h>", "public"] },
|
||||
{ include: ["<strings.h>", "private", "<string.h>", "public"] },
|
||||
{ include: ["<sys/termios.h>", "private", "<termios.h>", "public"] },
|
||||
{ include: ["<sys/_termios.h>", "private", "<termios.h>", "public"] },
|
||||
{ include: ["<sys/ttycom.h>", "private", "<termios.h>", "public"] },
|
||||
{ include: ["<sys/syslimits.h>", "private", "<limits.h>", "public"] },
|
||||
{ include: ["<i386/limits.h>", "private", "<limits.h>", "public"] },
|
||||
{ include: ["<sys/limits.h>", "private", "<limits.h>", "public"] },
|
||||
{ include: ["<sys/_types/_wint_t.h>", "private", "<stddef.h>", "public"] },
|
||||
{ include: ["<sys/_select.h>", "private", "<select.h>", "public"] },
|
||||
{ include: ["<sys/cdefs.h>", "private", "<unistd.h>", "public"] },
|
||||
{ include: ["<istream>", "private", "<iostream>", "public"] },
|
||||
{ include: ["<sys/_endian.h>", "private", "<netinet/in.h>", "public"] },
|
||||
{ include: ["<sys/_types/_timespec.h>", "private", "<time.h>", "public"] },
|
||||
{ include: ["<sys/_timespec.h>", "private", "<time.h>", "public"] },
|
||||
{ include: ["<sys/spawn.h>", "private", "<spawn.h>", "public"] },
|
||||
{ include: ["<sys/dirent.h>", "private", "<dirent.h>", "public"] },
|
||||
# { include: ["<>", "private", "<>", "public"] },
|
||||
|
||||
{ symbol: ["sig_atomic_t", "private", "<csignal>", "public"] },
|
||||
{ symbol: ["va_end", "private", "<stdarg.h>", "public"] },
|
||||
{ symbol: ["va_list", "private", "<stdarg.h>", "public"] },
|
||||
{ symbol: ["va_start", "private", "<stdarg.h>", "public"] },
|
||||
{ symbol: ["NULL", "private", "<stddef.h>", "public"] },
|
||||
{ symbol: ["NULL", "private", "<stdlib.h>", "public"] },
|
||||
{ symbol: ["NULL", "private", "<stdio.h>", "public"] },
|
||||
{ symbol: ["NULL", "private", "<unistd.h>", "public"] },
|
||||
{ symbol: ["off_t", "private", "<unistd.h>", "public"] },
|
||||
{ symbol: ["size_t", "private", "<unistd.h>", "public"] },
|
||||
{ symbol: ["size_t", "private", "<stddef.h>", "public"] },
|
||||
{ symbol: ["size_t", "private", "<stdlib.h>", "public"] },
|
||||
{ symbol: ["off_t", "private", "<sys/types.h>", "public"] },
|
||||
{ symbol: ["size_t", "private", "<sys/types.h>", "public"] },
|
||||
{ symbol: ["ssize_t", "private", "<sys/types.h>", "public"] },
|
||||
{ symbol: ["size_t", "private", "<stddef.h>", "public"] },
|
||||
{ symbol: ["ssize_t", "private", "<stddef.h>", "public"] },
|
||||
{ symbol: ["intptr_t", "private", "<unistd.h>", "public"] },
|
||||
{ symbol: ["ssize_t", "private", "<unistd.h>", "public"] },
|
||||
{ symbol: ["gid_t", "private", "<unistd.h>", "public"] },
|
||||
{ symbol: ["uid_t", "private", "<unistd.h>", "public"] },
|
||||
{ symbol: ["pid_t", "private", "<unistd.h>", "public"] },
|
||||
@@ -84,12 +89,13 @@
|
||||
{ symbol: ["uid_t", "private", "<sys/types.h>", "public"] },
|
||||
{ symbol: ["gid_t", "private", "<sys/types.h>", "public"] },
|
||||
{ symbol: ["timeval", "private", "<sys/time.h>", "public"] },
|
||||
{ symbol: ["uint32_t", "private", "<sys/types.h>", "public"] },
|
||||
{ symbol: ["__uint32_t", "private", "<stdint.h>", "public"] },
|
||||
{ symbol: ["uint32_t", "private", "<stdint.h>", "public"] },
|
||||
{ symbol: ["intptr_t", "private", "<stdint.h>", "public"] },
|
||||
{ symbol: ["size_t", "private", "<stdint.h>", "public"] },
|
||||
{ symbol: ["tparm", "private", "<ncurses.h>", "public"] },
|
||||
{ symbol: ["tigetflag", "private", "<ncurses.h>", "public"] },
|
||||
{ symbol: ["ERR", "private", "<ncurses.h>", "public"] },
|
||||
{ symbol: ["OK", "private", "<ncurses.h>", "public"] },
|
||||
{ symbol: ["select", "private", "<sys/select.h>", "public"] },
|
||||
{ symbol: ["_LIBCPP_VERSION", "private", "<stddef.h>", "public"] },
|
||||
{ symbol: ["_LIBCPP_VERSION", "private", "<unistd.h>", "public"] },
|
||||
|
||||
@@ -35,13 +35,15 @@ for arg in $argv
|
||||
set cppcheck_args $cppcheck_args $arg
|
||||
else if string match -q -- '-I*' $arg
|
||||
set cppcheck_args $cppcheck_args $arg
|
||||
else if string match -q -- '-iquote*' $arg
|
||||
set cppcheck_args $cppcheck_args $arg
|
||||
end
|
||||
end
|
||||
|
||||
# Not sure when this became necessary but without these flags cppcheck no longer works on macOS.
|
||||
# It complains that "Cppcheck cannot find all the include files." It appears that cppcheck used
|
||||
# to, but no longer, recognizes the -iquote flag. So switch to hardcoding the appropriate -I flags.
|
||||
set cppcheck_args $cppcheck_args -I . -I ./src
|
||||
# It complains that "Cppcheck cannot find all the include files." Adding these include paths should
|
||||
# be harmless everywhere else.
|
||||
set cppcheck_args $cppcheck_args -I /usr/include -I .
|
||||
|
||||
if test "$machine_type" = "x86_64"
|
||||
set cppcheck_args -D__x86_64__ -D__LP64__ $cppcheck_args
|
||||
@@ -69,17 +71,14 @@ end
|
||||
|
||||
# We now have a list of files to check so run the linters.
|
||||
if set -q c_files[1]
|
||||
if type -q iwyu
|
||||
if type -q include-what-you-use
|
||||
echo
|
||||
echo ========================================
|
||||
echo Running IWYU
|
||||
echo ========================================
|
||||
# The stderr to stdout redirection is because cppcheck, incorrectly IMHO, writes its
|
||||
# diagnostic messages to stderr. Anyone running this who wants to capture its output will
|
||||
# expect those messages to be written to stdout.
|
||||
for c_file in $c_files
|
||||
switch $kernel_name
|
||||
case Darwin
|
||||
case Darwin FreeBSD
|
||||
include-what-you-use -Xiwyu --no_default_mappings -Xiwyu \
|
||||
--mapping_file=build_tools/iwyu.osx.imp --std=c++11 \
|
||||
$cppcheck_args $c_file 2>&1
|
||||
@@ -87,7 +86,7 @@ if set -q c_files[1]
|
||||
include-what-you-use -Xiwyu --mapping_file=build_tools/iwyu.linux.imp \
|
||||
$cppcheck_args $c_file 2>&1
|
||||
case '*' # hope for the best
|
||||
include-what-you-use $cppcheck_args $c_file 2>&1
|
||||
include-what-you-use --std=c++11 $cppcheck_args $c_file 2>&1
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -114,7 +113,7 @@ if set -q c_files[1]
|
||||
|
||||
echo
|
||||
echo ========================================
|
||||
echo 'Running `cppcheck --check-config` to identify missing includes similar problems.'
|
||||
echo 'Running `cppcheck --check-config` to identify missing includes and similar problems.'
|
||||
echo 'Ignore unmatchedSuppression warnings as they are probably false positives we'
|
||||
echo 'cannot suppress.'
|
||||
echo ========================================
|
||||
@@ -135,14 +134,14 @@ if set -q c_files[1]
|
||||
oclint-xcodebuild xcodebuild.log >/dev/null
|
||||
end
|
||||
if test $all = yes
|
||||
oclint-json-compilation-database -e '/pcre2-10.21/' -- -enable-global-analysis 2>&1
|
||||
oclint-json-compilation-database -e '/pcre2-10.22/' -- -enable-global-analysis 2>&1
|
||||
else
|
||||
set i_files
|
||||
for f in $c_files
|
||||
set i_files $i_files -i $f
|
||||
end
|
||||
echo oclint-json-compilation-database -e '/pcre2-10.21/' $i_files
|
||||
oclint-json-compilation-database -e '/pcre2-10.21/' $i_files 2>&1
|
||||
echo oclint-json-compilation-database -e '/pcre2-10.22/' $i_files
|
||||
oclint-json-compilation-database -e '/pcre2-10.22/' $i_files 2>&1
|
||||
end
|
||||
else
|
||||
# Presumably we're on Linux or other platform not requiring special
|
||||
|
||||
34
build_tools/list_committers_since.fish
Executable file
34
build_tools/list_committers_since.fish
Executable file
@@ -0,0 +1,34 @@
|
||||
#! /usr/bin/env fish
|
||||
|
||||
set TAG $argv[1]
|
||||
|
||||
if test -z "$TAG"
|
||||
echo "Tag name required."
|
||||
exit 1
|
||||
end
|
||||
|
||||
if not contains -- $TAG (git tag)
|
||||
echo "$TAG is not a valid tag name."
|
||||
exit 1
|
||||
end
|
||||
|
||||
set committers_to_tag (mktemp)
|
||||
set committers_from_tag (mktemp)
|
||||
|
||||
# You might think it would be better to case-insensitively sort/compare the names
|
||||
# to produce a more natural-looking list.
|
||||
# Unicode collation tables mean that this is fraught with danger; for example, the
|
||||
# "“" character will not case-fold in UTF-8 locales. sort suggests using the C locale!
|
||||
|
||||
git log "$TAG" --format="%aN" --reverse | sort | uniq > $committers_to_tag
|
||||
git log "$TAG".. --format="%aN" --reverse | sort | uniq > $committers_from_tag
|
||||
|
||||
echo New committers:
|
||||
echo (comm -13 $committers_to_tag $committers_from_tag)','
|
||||
|
||||
echo
|
||||
|
||||
echo Returning committers:
|
||||
echo (comm -12 $committers_to_tag $committers_from_tag)','
|
||||
|
||||
rm $committers_to_tag $committers_from_tag
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/usr/bin/env fish
|
||||
#
|
||||
# This file produces command specific completions for csv. Meant to be executed
|
||||
# from the root directory (so the completions get put in the right place).
|
||||
|
||||
. build_tools/make_vcs_completions_generic.fish
|
||||
|
||||
write_completions csv >share/completions/csv.fish
|
||||
@@ -1,12 +0,0 @@
|
||||
#!/usr/bin/env fish
|
||||
#
|
||||
# This file produces command specific completions for darcs. Meant to be
|
||||
# executed from the root directory (so the completions get put in the right
|
||||
# place).
|
||||
|
||||
. build_tools/make_vcs_completions_generic.fish
|
||||
|
||||
set darcs_comp 'complete -c darcs -n "not __fish_use_subcommand" -a "(test -f _darcs/prefs/repos; and cat _darcs/prefs/repos)" --description "Darcs repo"'
|
||||
set darcs_comp $darcs_comp 'complete -c darcs -a "test predist boringfile binariesfile" -n "contains setpref (commandline -poc)" --description "Set the specified option" -x'
|
||||
|
||||
write_completions darcs $darcs_comp >share/completions/darcs.fish
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/usr/bin/env fish
|
||||
#
|
||||
# This file produces command specific completions for hg. Meant to be executed
|
||||
# from the root directory (so the completions get put in the right place).
|
||||
|
||||
. build_tools/make_vcs_completions_generic.fish
|
||||
|
||||
write_completions hg >share/completions/hg.fish
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/usr/bin/env fish
|
||||
#
|
||||
# This file produces command specific completions for svn. Meant to be executed
|
||||
# from the root directory (so the completions get put in the right place).
|
||||
|
||||
. build_tools/make_vcs_completions_generic.fish
|
||||
|
||||
write_completions svn >share/completions/svn.fish
|
||||
@@ -1,9 +0,0 @@
|
||||
#!/usr/bin/env fish
|
||||
#
|
||||
# This file produces command specific completions for hg, darcs and a
|
||||
# few other vcs systems.
|
||||
|
||||
build_tools/make_darcs_completions.fish
|
||||
build_tools/make_hg_completions.fish
|
||||
build_tools/make_svn_completions.fish
|
||||
build_tools/make_csv_completions.fish
|
||||
@@ -1,229 +0,0 @@
|
||||
#!/usr/bin/env fish
|
||||
#
|
||||
# This file provides generic functions for generating specific completions for
|
||||
# hg, darcs and a few other vcs systems. It uses the fact that all these
|
||||
# systems have a somewhat uniform command line help mechanism.
|
||||
#
|
||||
|
||||
function cap
|
||||
set res (echo $argv |cut -c 1|tr a-z A-Z)(echo $argv |cut -c 2-)
|
||||
echo $res
|
||||
end
|
||||
|
||||
#
|
||||
# Escapes the single quote (') character and removes trailing whitespace from $argv
|
||||
#
|
||||
|
||||
function esc
|
||||
echo $argv | sed -e "s/\(['\\\]\)/\\\\\1/g" | sed -e 's/ *$//' | sed -e 's/ .*//'
|
||||
end
|
||||
|
||||
|
||||
#
|
||||
# This function formats a list of completion information into a set of fish completions
|
||||
#
|
||||
# The first argument is the condition string, which will be copied to
|
||||
# the resulting commandline verbatim
|
||||
#
|
||||
# Remaining arguments are tab separated lists of completion
|
||||
# information. Each list contains four elements, the short switch, the
|
||||
# long switch, the argument and the description.
|
||||
#
|
||||
|
||||
function complete_from_list
|
||||
|
||||
set condition $argv[1]
|
||||
set -e argv[1]
|
||||
|
||||
for j in $argv
|
||||
set exploded (echo $j|tr \t \n)
|
||||
set short $exploded[1]
|
||||
set long $exploded[2]
|
||||
set arg $exploded[3]
|
||||
set desc (cap (esc $exploded[4]))
|
||||
|
||||
set str
|
||||
|
||||
switch $short
|
||||
case '-?'
|
||||
set str $str -s (printf "%s\n" $short|cut -c 2)
|
||||
end
|
||||
|
||||
switch $long
|
||||
case '--?*'
|
||||
set str $str -l (printf "%s\n" $long|cut -c 3-)
|
||||
end
|
||||
|
||||
switch $arg
|
||||
case '=DIRECTORY' ' dir'
|
||||
set str $str -x -a "'(__fish_complete_directories (commandline -ct))'"
|
||||
|
||||
case '=COMMAND'
|
||||
set str $str -x -a "'(__fish_complete_command)'"
|
||||
|
||||
case '=USERNAME' ' <user>'
|
||||
set str $str -x -a "'(__fish_complete_users)'"
|
||||
|
||||
case '=FILENAME' '=FILE' ' <file>'
|
||||
set str $str -r
|
||||
|
||||
case ' arg'
|
||||
set str $str -x
|
||||
|
||||
case ' (*):'
|
||||
set str $str -x -a \'(echo $arg| sed -e "s/ (\(.*\)):/\1/" |tr '/' ' ')\'
|
||||
|
||||
case '?*'
|
||||
set str $str -x
|
||||
if not set -q unknown
|
||||
set -g unknown
|
||||
end
|
||||
if not contains $arg $unknown
|
||||
echo "Don't know how to handle arguments of type '$arg'" >&2
|
||||
set unknown $unknown $arg
|
||||
end
|
||||
end
|
||||
|
||||
switch $desc
|
||||
case '?*'
|
||||
set str $str --description \'$desc\'
|
||||
end
|
||||
|
||||
echo complete -c $cmd $condition $str
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
function write_completions
|
||||
|
||||
set -g cmd $argv[1]; or return 1
|
||||
|
||||
echo "Making completions for $cmd" >&2
|
||||
|
||||
|
||||
echo '
|
||||
#
|
||||
# Completions for the '$cmd' command
|
||||
# This file was autogenerated by the file make_vcs_completions.fish
|
||||
# which is shipped with the fish source code.
|
||||
#
|
||||
|
||||
#
|
||||
# Completions from commandline
|
||||
#
|
||||
'
|
||||
set -e argv[1]
|
||||
|
||||
while count $argv >/dev/null
|
||||
echo $argv[1]
|
||||
set -e argv[1]
|
||||
end
|
||||
|
||||
|
||||
eval "function cmd; $cmd \$argv; end"
|
||||
|
||||
set -l cmd_str
|
||||
|
||||
switch $cmd
|
||||
case svn
|
||||
|
||||
function list_subcommand
|
||||
set cmd1 '\([^ ]*\)'
|
||||
set cmd2 '\([^,)]*\)'
|
||||
set cmdn '\(, \([^,)]*\)\|\)'
|
||||
set svn_re '^ *'$cmd1'\( ('$cmd2$cmdn$cmdn')\|\).*$'
|
||||
cmd help|sed -ne 's/'$svn_re'/\1\n\3\n\5\n\7/p'| grep .
|
||||
end
|
||||
|
||||
function list_subcommand_help
|
||||
set short_exp '\(-.\|\)'
|
||||
set long_exp '\(--[^ =,]*\)'
|
||||
set arg_exp '\(\|[= ][^ ][^ ]*\)'
|
||||
set desc_exp '\([\t ]*:[\t ]*\|\)\([^ ].*[^.]\)'
|
||||
set re "^ *$short_exp *$long_exp$arg_exp *$desc_exp\(\|\\.\)\$"
|
||||
cmd help $argv | sed -n -e 's/'$re'/\1\t\2\t\3\t\5/p'
|
||||
end
|
||||
|
||||
for i in (list_subcommand)
|
||||
|
||||
set desc (cmd help $i|head -n 3| sed -e 's/usage:.*//'| tr \n \ | sed -e 's/[^:]*: *\(.*[^.]\)\(\|\\.\)$/\1/')
|
||||
set desc (esc $desc)
|
||||
set cmd_str $cmd_str "-a $i --description '$desc'"
|
||||
end
|
||||
|
||||
case cvs
|
||||
|
||||
function list_subcommand
|
||||
cmd --help-commands 2>| sed -n -e 's/^ *\([^ ][^ ]*\) .*$/\1/p'
|
||||
end
|
||||
|
||||
set short_exp '\(-.\)'
|
||||
set arg_exp '\(\| [^ \t][^ \t]*\)'
|
||||
set desc_exp '\([\t ]*:[\t ]*\|\)\([^ ].*\)'
|
||||
set -g re '^[ \t]*'$short_exp$arg_exp'[ \t]*'$desc_exp'$'
|
||||
|
||||
function list_subcommand_help
|
||||
#'s/^[ \t]*\(-.\)[ \t]\([^- \t][^ \t]*\)*[ \t]*\([^-].*\)$/\1\t\2\t\3/p'
|
||||
|
||||
cmd -H $argv 2>| sed -n -e 's/'$re'/\1\t\t\2\t\4/p'
|
||||
end
|
||||
|
||||
echo '
|
||||
#
|
||||
# Global switches
|
||||
#
|
||||
'
|
||||
|
||||
complete_from_list "-n '__fish_use_subcommand'" (cmd --help-options 2>| sed -n -e 's/'$re'/\1\t\t\2\t\4/p')
|
||||
|
||||
set cmd_str_internal (cmd --help-commands 2>| sed -n -e 's/^ *\([^ ][^ ]*\)[\t ]*\([^ ].*\)$/\1\t\2/p')
|
||||
for i in $cmd_str_internal
|
||||
set exploded (echo $i|tr \t \n)
|
||||
set cmd_str $cmd_str "-a $exploded[1] --description '"(esc $exploded[2])"'"
|
||||
end
|
||||
|
||||
case '*'
|
||||
|
||||
function list_subcommand
|
||||
cmd help | sed -n -e 's/^ *\([^ ][^ ]*\) .*$/\1/p'
|
||||
end
|
||||
|
||||
function list_subcommand_help
|
||||
set -l short_exp '\(-.\|\)\( [^ -][^ ]*\|\)'
|
||||
set -l long_exp '\(--[^ =,]*\)'
|
||||
set -l arg_exp '\(\|[= ][^ ][^ ]*\)'
|
||||
set -l desc_exp '\([\t ]*:[\t ]*\|\)\([^ ].*[^.]\)'
|
||||
set -l re "^ *$short_exp *$long_exp$arg_exp *$desc_exp\(\|\\.\)\$"
|
||||
|
||||
cmd help $argv | sed -n -e 's/'$re'/\1\t\3\t\4\t\6/p'
|
||||
end
|
||||
|
||||
set cmd_str (cmd help | sed -n -e 's/^ *\([^ ][^ ]*\)[\t ]*\([^ ].*[^.]\)\(\|\\.\)$/-a \1 --description \'\2\'/p')
|
||||
|
||||
end
|
||||
|
||||
echo '
|
||||
#
|
||||
# subcommands
|
||||
#
|
||||
'
|
||||
|
||||
printf "complete -c $cmd -n '__fish_use_subcommand' -x %s\n" $cmd_str
|
||||
|
||||
for i in (list_subcommand)
|
||||
|
||||
echo '
|
||||
|
||||
#
|
||||
# Completions for the \''$i'\' subcommand
|
||||
#
|
||||
'
|
||||
|
||||
complete_from_list "-n 'contains \\'$i\\' (commandline -poc)'" (list_subcommand_help $i)
|
||||
end
|
||||
|
||||
echo \n\n
|
||||
|
||||
end
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
\f0\fs30 \cf0 Fish is a smart and user friendly command line shell. For more information, visit {\field{\*\fldinst{HYPERLINK "https://fishshell.com"}}{\fldrslt https://fishshell.com}}\
|
||||
\
|
||||
fish will be installed into
|
||||
fish will be installed into
|
||||
\f1\fs26 /usr/local/
|
||||
\f0\fs30 , and fish will be added to
|
||||
\f0\fs30 , and fish will be added to
|
||||
\f1\fs26 /etc/shells
|
||||
\f0\fs30 if necessary.\
|
||||
\
|
||||
Your default shell will
|
||||
Your default shell will
|
||||
\i not
|
||||
\i0 be changed. To make fish your default, run:\
|
||||
\
|
||||
|
||||
@@ -79,7 +79,6 @@ if set -q c_files[1]
|
||||
cp $file $file.new # preserves mode bits
|
||||
clang-format $file >$file.new
|
||||
if cmp --quiet $file $file.new
|
||||
echo $file was correctly formatted
|
||||
rm $file.new
|
||||
else
|
||||
echo $file was NOT correctly formatted
|
||||
@@ -107,7 +106,6 @@ if set -q f_files[1]
|
||||
cp $file $file.new # preserves mode bits
|
||||
fish_indent <$file >$file.new
|
||||
if cmp --quiet $file $file.new
|
||||
echo $file was correctly formatted
|
||||
rm $file.new
|
||||
else
|
||||
echo $file was NOT correctly formatted
|
||||
|
||||
71
configure.ac
71
configure.ac
@@ -37,7 +37,7 @@ AC_SUBST(EXTRA_PCRE2)
|
||||
AC_MSG_CHECKING([if autoreconf needs to be run])
|
||||
if test configure -ot configure.ac; then
|
||||
AC_MSG_RESULT([yes])
|
||||
if which autoreconf >/dev/null; then
|
||||
if command -v autoreconf >/dev/null; then
|
||||
# No need to provide any error messages if autoreconf fails, the
|
||||
# shell and autconf should take care of that themselves
|
||||
AC_MSG_NOTICE([running autoreconf --no-recursive])
|
||||
@@ -68,7 +68,7 @@ fi
|
||||
AC_MSG_CHECKING([if autoheader needs to be run])
|
||||
if test ! -f ./config.h.in -o config.h.in -ot configure.ac; then
|
||||
AC_MSG_RESULT([yes])
|
||||
if which autoheader >/dev/null; then
|
||||
if command -v autoheader >/dev/null; then
|
||||
AC_MSG_NOTICE([running autoheader])
|
||||
autoheader || exit 1
|
||||
else
|
||||
@@ -217,11 +217,12 @@ CXXFLAGS="$CXXFLAGS -fno-exceptions"
|
||||
|
||||
|
||||
#
|
||||
# -Wall is there to keep me on my toes
|
||||
# But signed comparison warnings are way too aggressive
|
||||
# Set some warning flags
|
||||
# Don't warn about missing field initializers, it has too many
|
||||
# false positives for code like `struct termios tmodes = {};`
|
||||
#
|
||||
|
||||
CXXFLAGS="$CXXFLAGS -Wextra"
|
||||
CXXFLAGS="$CXXFLAGS -Wextra -Wno-missing-field-initializers"
|
||||
|
||||
#
|
||||
# This is needed in order to get the really cool backtraces on Linux
|
||||
@@ -326,6 +327,25 @@ AC_CHECK_FUNCS( dirfd )
|
||||
|
||||
AC_CHECK_DECL( [mkostemp], [ AC_CHECK_FUNCS([mkostemp]) ] )
|
||||
|
||||
#
|
||||
# Although setupterm is linkable thanks to SEARCH_LIBS above, some
|
||||
# builds of ncurses include the actual headers in a different package
|
||||
#
|
||||
AC_CHECK_DECL( [setupterm], , [AC_MSG_ERROR([Could not find a curses implementation, needed to build fish. If this is Linux, try running 'sudo apt-get install libncurses5-dev' or 'sudo yum install ncurses-devel'])], [
|
||||
#if HAVE_NCURSES_H
|
||||
#include <ncurses.h>
|
||||
#elif HAVE_NCURSES_CURSES_H
|
||||
#include <ncurses/curses.h>
|
||||
#else
|
||||
#include <curses.h>
|
||||
#endif
|
||||
#if HAVE_TERM_H
|
||||
#include <term.h>
|
||||
#elif HAVE_NCURSES_TERM_H
|
||||
#include <ncurses/term.h>
|
||||
#endif
|
||||
] )
|
||||
|
||||
dnl AC_CHECK_FUNCS uses C linkage, but sometimes (Solaris!) the behaviour is
|
||||
dnl different with C++.
|
||||
AC_MSG_CHECKING([for wcsdup])
|
||||
@@ -397,6 +417,17 @@ fi
|
||||
# features that Autoconf doesn't tell us about
|
||||
#
|
||||
|
||||
dnl AC_CHECK_FUNCS uses C linkage, but sometimes (Solaris!) the behaviour is
|
||||
dnl different with C++.
|
||||
AC_MSG_CHECKING([if ctermid_r() available])
|
||||
AC_TRY_LINK( [ #include <stdio.h> ],
|
||||
[ char buf[L_ctermid]; char *foo = ctermid_r(buf); ],
|
||||
[ AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(HAVE_CTERMID_R, 1, Define to 1 if you have the `ctermid_r' function.)
|
||||
],
|
||||
[AC_MSG_RESULT(no)],
|
||||
)
|
||||
|
||||
#
|
||||
# Check if struct winsize and TIOCGWINSZ exist
|
||||
#
|
||||
@@ -548,34 +579,6 @@ else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
|
||||
# Check that threads actually work on Solaris
|
||||
AC_MSG_CHECKING([for threadsafe errno])
|
||||
AC_RUN_IFELSE(
|
||||
[AC_LANG_PROGRAM([
|
||||
#include <errno.h>
|
||||
#include <pthread.h>
|
||||
#include <signal.h>
|
||||
|
||||
void *thread1_func(void *p_arg)
|
||||
{
|
||||
errno = 1;
|
||||
return 0;
|
||||
}
|
||||
],[
|
||||
errno = 0;
|
||||
pthread_t t1;
|
||||
pthread_create(&t1, NULL, thread1_func, NULL);
|
||||
pthread_join(t1, NULL);
|
||||
return errno;
|
||||
])],
|
||||
[AC_MSG_RESULT(yes)],
|
||||
[
|
||||
AC_MSG_RESULT(no)
|
||||
AC_MSG_FAILURE([errno is not threadsafe - check your compiler settings])
|
||||
],
|
||||
[AC_MSG_RESULT(crosscompiling, skipped)]
|
||||
)
|
||||
|
||||
pcre2_min_version=10.21
|
||||
EXTRA_PCRE2=
|
||||
AC_ARG_WITH(
|
||||
@@ -659,7 +662,7 @@ if test "x$included_pcre2" = "xyes"; then
|
||||
AC_MSG_NOTICE([using included PCRE2 library])
|
||||
# unfortunately these get added to the global configuration
|
||||
ac_configure_args="$ac_configure_args --disable-pcre2-8 --enable-pcre2-$WCHAR_T_BITS --disable-shared"
|
||||
AC_CONFIG_SUBDIRS([pcre2-10.21])
|
||||
AC_CONFIG_SUBDIRS([pcre2-10.22])
|
||||
|
||||
PCRE2_CXXFLAGS='-I$(PCRE2_DIR)/src'
|
||||
PCRE2_LIBS='-L$(PCRE2_LIBDIR) -lpcre2-$(PCRE2_WIDTH)'
|
||||
|
||||
4
debian/control
vendored
4
debian/control
vendored
@@ -6,8 +6,8 @@ Uploaders: David Adam <zanchey@ucc.gu.uwa.edu.au>
|
||||
Build-Depends: debhelper (>= 9.0.0), libncurses5-dev, autoconf, autotools-dev, dh-autoreconf, gettext
|
||||
# When libpcre2-dev is available on all supported Debian versions, add a dependency on that.
|
||||
Standards-Version: 3.9.4
|
||||
Homepage: http://fishshell.com/
|
||||
Vcs-Git: git://github.com/fish-shell/fish-shell.git
|
||||
Homepage: https://fishshell.com/
|
||||
Vcs-Git: https://github.com/fish-shell/fish-shell.git
|
||||
Vcs-Browser: https://github.com/fish-shell/fish-shell
|
||||
|
||||
Package: fish
|
||||
|
||||
@@ -8,7 +8,7 @@ While the documentation is pretty robust to variations in the documentation sour
|
||||
|
||||
## Line breaks and wrapping
|
||||
|
||||
Contrary to the rest of the fish source code, the documentation greatly benefits from the use of long lines and soft wrapping. It allows paragraphs to be treated as complete blocks by Doxygen, means that the semantic filter can see complete lines when deciding on how to apply syntax highlighting, and means that man pages will consistently wrap to the width of the users console in advanced pagers, such as 'most'.
|
||||
Contrary to the rest of the fish source code, the documentation greatly benefits from the use of long lines and soft wrapping. It allows paragraphs to be treated as complete blocks by Doxygen, means that the semantic filter can see complete lines when deciding on how to apply syntax highlighting, and means that man pages will consistently wrap to the width of the users console in advanced pagers, such as 'most'.
|
||||
|
||||
## Doxygen special commands and aliases
|
||||
|
||||
@@ -16,7 +16,7 @@ While Markdown syntax forms the basis of the documentation content, there are so
|
||||
|
||||
### Structure: \\page, \\section and \\subsection
|
||||
|
||||
Use of Doxygen sections markers are important, as these determine what will be eventually output as a web page, man page or included in the developer docs.
|
||||
Use of Doxygen sections markers are important, as these determine what will be eventually output as a web page, man page or included in the developer docs.
|
||||
|
||||
Currently the make process for the documentation is quite convoluted, but basically the HTML docs are produced from a single, compiled file, doc.h. This contains a number of \\page markers that produce the various pages used in the documentation. The format of a \\page mark is:
|
||||
|
||||
@@ -156,7 +156,7 @@ The following can be used in \\fish blocks to render some fish scenarios. These
|
||||
<m>: <m>Matched</m> items, such as tab completions.
|
||||
<sm>: Matched items <sm>searched</sm> for, like grep results.
|
||||
<bs>: Render the contents with a preceding backslash. Useful when presenting output.
|
||||
<error>: <error>This would be shown as an error.</error>
|
||||
<eror>: <eror>This would be shown as an error. (Note eror, not error).</eror>
|
||||
<asis>: <asis>This text will not be parsed for fish markup.</asis>
|
||||
<outp>: <outp>This would be rendered as command/script output.</outp>
|
||||
{{ and }}: Required when wanting curly braces in regular expression example.
|
||||
@@ -175,7 +175,7 @@ ___ (3 underscores): Display a cursor.
|
||||
Graphical keyboard shortcuts can be defined using the following special commands. These allow for the different text requirements across the html and man pages. The HTML uses CSS to create a keyboard style, whereas the man page would display the key as text.
|
||||
|
||||
- `@key{lable}`
|
||||
Displays a key with a purely textual lable, such as: 'Tab', 'Page Up', 'Page Down', 'Home', 'End', 'F1', 'F19' and so on.
|
||||
Displays a key with a purely textual lable, such as: 'Tab', 'Page Up', 'Page Down', 'Home', 'End', 'F1', 'F19' and so on.
|
||||
|
||||
- `@key{modifier,lable}`
|
||||
Displays a keystroke requiring the use of a 'modifier' key, such as 'Control-A', 'Shift-X', 'Alt-Tab' etc.
|
||||
@@ -204,7 +204,7 @@ Some useful Unicode/HTML5 entities:
|
||||
Tested on:
|
||||
- Ubuntu 14.04 with Doxygen 1.8.8, built from [GitHub source](https://github.com/doxygen/doxygen.git).
|
||||
- CentOS 6.5 with Doxygen 1.8.8, built from [GitHub source](https://github.com/doxygen/doxygen.git).
|
||||
- Mac OS X 10.9 with Homebrew install Doxygen 1.8.7 and 1.8.8.
|
||||
- Mac OS X 10.9 with Homebrew install Doxygen 1.8.7 and 1.8.8.
|
||||
|
||||
Graphviz was also installed in all the above testing.
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ COMMAND1; and COMMAND2
|
||||
|
||||
`and` statements may be used as part of the condition in an <a href="#if">`if`</a> or <a href="#while">`while`</a> block. See the documentation for <a href="#if">`if`</a> and <a href="#while">`while`</a> for examples.
|
||||
|
||||
`and` does not change the current exit status. The exit status of the last foreground command to exit can always be accessed using the <a href="index.html#variables-status">$status</a> variable.
|
||||
`and` does not change the current exit status itself, but the command it runs most likely will. The exit status of the last foreground command to exit can always be accessed using the <a href="index.html#variables-status">$status</a> variable.
|
||||
|
||||
\subsection and-example Example
|
||||
|
||||
|
||||
129
doc_src/argparse.txt
Normal file
129
doc_src/argparse.txt
Normal file
@@ -0,0 +1,129 @@
|
||||
\section argparse argparse - parse options passed to a fish script or function
|
||||
|
||||
\subsection argparse-synopsis Synopsis
|
||||
\fish{synopsis}
|
||||
argparse [OPTIONS] OPTION_SPEC... -- [ARG...]
|
||||
\endfish
|
||||
|
||||
\subsection argparse-description Description
|
||||
|
||||
This command makes it easy for fish scripts and functions to handle arguments in a manner 100% identical to how fish builtin commands handle their arguments. You pass a sequence of arguments that define the options recognized, followed by a literal `--`, then the arguments to be parsed (which might also include a literal `--`). More on this in the <a href="#argparse-usage">usage</a> section below.
|
||||
|
||||
Each OPTION_SPEC can be written in the domain specific language <a href="#argparse-option-specs">described below</a> or created using the companion <a href="#fish-opt">`fish_opt`</a> command. All OPTION_SPECs must appear after any argparse flags and before the `--` that separates them from the arguments to be parsed.
|
||||
|
||||
Each option that is seen in the ARG list will result in a var name of the form `_flag_X`, where `X` is the short flag letter and the long flag name. The OPTION_SPEC always requires a short flag even if it can't be used. So there will always be `_flag_X` var set using the short flag letter if the corresponding short or long flag is seen. The long flag name var (e.g., `_flag_help`) will only be defined, obviously, if the OPTION_SPEC includes a long flag name.
|
||||
|
||||
For example `_flag_h` and `_flag_help` if `-h` or `--help` is seen. The var will be set with local scope (i.e., as if the script had done `set -l _flag_X`). If the flag is a boolean (that is, does not have an associated value) the values are the short and long flags seen. If the option is not a boolean flag the values will be zero or more values corresponding to the values collected when the ARG list is processed. If the flag was not seen the flag var will not be set.
|
||||
|
||||
The following `argparse` options are available. They must appear before all OPTION_SPECs:
|
||||
|
||||
- `-n` or `--name` is the command name to insert into any error messages. If you don't provide this value `argparse` will be used.
|
||||
|
||||
- `-x` or `--exclusive` should be followed by a comma separated list of short of long options that are mutually exclusive. You can use this option more than once to define multiple sets of mutually exclusive options.
|
||||
|
||||
- `-N` or `--min-args` is followed by an integer that defines the minimum number of acceptable non-option arguments. The default is zero.
|
||||
|
||||
- `-X` or `--max-args` is followed by an integer that defines the maximum number of acceptable non-option arguments. The default is infinity.
|
||||
|
||||
- `-s` or `--stop-nonopt` causes scanning the arguments to stop as soon as the first non-option argument is seen. Using this arg is equivalent to calling the C function `getopt_long()` with the short options starting with a `+` symbol. This is sometimes known as "POSIXLY CORRECT". If this flag is not used then arguments are reordered (i.e., permuted) so that all non-option arguments are moved after option arguments. This mode has several uses but the main one is to implement a command that has subcommands.
|
||||
|
||||
- `-h` or `--help` displays help about using this command.
|
||||
|
||||
\subsection argparse-usage Usage
|
||||
|
||||
Using this command involves passing two sets of arguments separated by `--`. The first set consists of one or more option specifications (`OPTION_SPEC` above) and options that modify the behavior of `argparse`. These must be listed before the `--` argument. The second set are the arguments to be parsed in accordance with the option specifications. They occur after the `--` argument and can be empty. More about this below but here is a simple example that might be used in a function named `my_function`:
|
||||
|
||||
\fish
|
||||
argparse --name=my_function 'h/help' 'n/name:' -- $argv
|
||||
or return
|
||||
\endfish
|
||||
|
||||
If `$argv` is empty then there is nothing to parse and `argparse` returns zero to indicate success. If `$argv` is not empty then it is checked for flags `-h`, `--help`, `-n` and `--name`. If they are found they are removed from the arguments and local variables (more on this <a href="argparse-local-variables">below</a>) are set so the script can determine which options were seen. Assuming `$argv` doesn't have any errors, such as a missing mandatory value for an option, then `argparse` exits with status zero. Otherwise it writes appropriate error messages to stderr and exits with a status of one.
|
||||
|
||||
Not including a `--` argument is an error condition. You do not have to include any arguments after the `--` but you must include the `--`. For example, this is acceptable:
|
||||
|
||||
\fish
|
||||
set -l argv
|
||||
argparse 'h/help' 'n/name' -- $argv
|
||||
\endfish
|
||||
|
||||
But this is not:
|
||||
|
||||
\fish
|
||||
set -l argv
|
||||
argparse 'h/help' 'n/name' $argv
|
||||
\endfish
|
||||
|
||||
The first `--` seen is what allows the `argparse` command to reliably seperate the option specifications from the command arguments.
|
||||
|
||||
\subsection argparse-option-specs Option Specifications
|
||||
|
||||
Each option specification is a string composed of
|
||||
|
||||
- A short flag letter (which is mandatory). It must be an alphanumeric or "#". The "#" character is special and means that a flag of the form `-123` is valid. The short flag "#" must be followed by "-" (since the short name isn't otherwise valid since `_flag_#` is not a valid var name) and must but followed by a long flag name with no modifiers.
|
||||
|
||||
- A `/` if the short flag can be used by someone invoking your command else `-` if it should not be exposed as a valid short flag. If there is no long flag name these characters should be omitted. You can also specify a '#' to indicate the short and long flag names can be used and the value can be specified as an implicit int; i.e., a flag of the form `-NNN`.
|
||||
|
||||
- A long flag name which is optional. If not present then only the short flag letter can be used.
|
||||
|
||||
- Nothing if the flag is a boolean that takes no argument or is an implicit int flag, else
|
||||
|
||||
- `=` if it requires a value and only the last instance of the flag is saved, else
|
||||
|
||||
- `=?` it takes an optional value and only the last instance of the flag is saved, else
|
||||
|
||||
- `=+` if it requires a value each instance of the flag is saved.
|
||||
|
||||
- Optionally a `!` followed by fish script to validate the value. Typically this will be a function to run. If the return status is zero the value for the flag is valid. If non-zero the value is invalid. Any error messages should be written to stdout (not stderr). See the section on <a href="#arparse-validation">Flag Value Validation</a> for more information.
|
||||
|
||||
See the <a href="#fish-opt">`fish_opt`</a> command for a friendlier but more verbose way to create option specifications.
|
||||
|
||||
In the following examples if a flag is not seen when parsing the arguments then the corresponding _flag_X var(s) will not be set.
|
||||
|
||||
\subsection argparse-validation Flag Value Validation
|
||||
|
||||
It is common to want to validate the the value provided for an option satisfies some criteria. For example, that it is a valid integer within a specific range. You can always do this after `argparse` returns but you can also request that `argparse` perform the validation by executing arbitrary fish script. To do so simply append an `!` (exclamation-mark) then the fish script to be run. When that code is executed three vars will be defined:
|
||||
|
||||
- `_argparse_cmd` will be set to the value of the value of the `argparse --name` value.
|
||||
|
||||
- `_flag_name` will be set to the short or long flag that being processed.
|
||||
|
||||
- `_flag_value` will be set to the value associated with the flag being processed.
|
||||
|
||||
If you do this via a function it should be defined with the `--no-scope-shadowing` flag. Otherwise it won't have access to those variables.
|
||||
|
||||
The script should write any error messages to stdout, not stderr. It should return a status of zero if the flag value is valid otherwise a non-zero status to indicate it is invalid.
|
||||
|
||||
Fish ships with a `_validate_int` function that accepts a `--min` and `--max` flag. Let's say your command accepts a `-m` or `--max` flag and the minimum allowable value is zero and the maximum is 5. You would define the option like this: `m/max=!_validate_int --min 0 --max 5`. The default if you just call `_validate_int` without those flags is to simply check that the value is a valid integer with no limits on the min or max value allowed.
|
||||
|
||||
\subsection argparse-optspec-examples Example OPTION_SPECs
|
||||
|
||||
Some OPTION_SPEC examples:
|
||||
|
||||
- `h/help` means that both `-h` and `--help` are valid. The flag is a boolean and can be used more than once. If either flag is used then `_flag_h` and `_flag_help` will be set to the count of how many times either flag was seen.
|
||||
|
||||
- `h-help` means that only `--help` is valid. The flag is a boolean and can be used more than once. If the long flag is used then `_flag_h` and `_flag_help` will be set to the count of how many times the long flag was seen.
|
||||
|
||||
- `n/name=` means that both `-n` and `--name` are valid. It requires a value and can be used at most once. If the flag is seen then `_flag_n` and `_flag_name` will be set with the single mandatory value associated with the flag.
|
||||
|
||||
- `n/name=?` means that both `-n` and `--name` are valid. It accepts an optional value and can be used at most once. If the flag is seen then `_flag_n` and `_flag_name` will be set with the value associated with the flag if one was provided else it will be set with no values.
|
||||
|
||||
- `n-name=+` means that only `--name` is valid. It requires a value and can be used more than once. If the flag is seen then `_flag_n` and `_flag_name` will be set with the values associated with each occurrence of the flag.
|
||||
|
||||
- `x` means that only `-x` is valid. It is a boolean can can be used more than once. If it is seen then `_flag_x` will be set to the count of how many times the flag was seen.
|
||||
|
||||
- `x=`, `x=?`, and `x=+` are similar to the n/name examples above but there is no long flag alternative to the short flag `-x`.
|
||||
|
||||
- `x-` is not valid since there is no long flag name and therefore the short flag, `-x`, has to be usable. This is obviously true whether or not the specification also includes one of `:`, `::`, `+`.
|
||||
|
||||
- `#-max` means that flags matching the regex "^--?\d+$" are valid. When seen they are assigned to the variable `_flag_max`. This allows any valid positive or negative integer to be specified by prefixing it with a single "-". Many commands support this idiom. For example `head -3 /a/file` to emit only the first three lines of /a/file.
|
||||
|
||||
- `n#max` means that flags matching the regex "^--?\d+$" are valid. When seen they are assigned to the variables `_flag_n` and `_flag_max`. This allows any valid positive or negative integer to be specified by prefixing it with a single "-". Many commands support this idiom. For example `head -3 /a/file` to emit only the first three lines of /a/file. You can also specify the value using either flag: `-n NNN` or `--max NNN` in this example.
|
||||
|
||||
After parsing the arguments the `argv` var is set with local scope to any values not already consumed during flag processing. If there are not unbound values the var is set but `count $argv` will be zero.
|
||||
|
||||
If an error occurs during argparse processing it will exit with a non-zero status and appropriate error messages are written to stderr.
|
||||
|
||||
\subsection argparse-notes Notes
|
||||
|
||||
Prior to the addition of this builtin command in the 2.7.0 release there were two main ways to parse the arguments passed to a fish script or function. One way was to use the OS provided `getopt` command. The problem with that is that the GNU and BSD implementations are not compatible. Which makes using that external command difficult other than in trivial situations. The other way is to iterate over `$argv` and use the fish `switch` statement to decide how to handle the argument. That, however, involves a huge amount of boilerplate code. It is also borderline impossible to implement the same behavior as builtin commands.
|
||||
@@ -13,7 +13,7 @@ The block is unconditionally executed. `begin; ...; end` is equivalent to `if tr
|
||||
|
||||
`begin` is used to group a number of commands into a block. This allows the introduction of a new variable scope, redirection of the input or output of a set of commands as a group, or to specify precedence when using the conditional commands like `and`.
|
||||
|
||||
`begin` does not change the current exit status.
|
||||
`begin` does not change the current exit status itself. After the block has completed, `$status` will be set to the status returned by the most recent command.
|
||||
|
||||
|
||||
\subsection begin-example Example
|
||||
|
||||
@@ -11,7 +11,17 @@ bg [PID...]
|
||||
|
||||
The PID of the desired process is usually found by using <a href="index.html#expand-process">process expansion</a>.
|
||||
|
||||
When at least one of the arguments isn't a valid job specifier (i.e. PID),
|
||||
`bg` will print an error without backgrounding anything.
|
||||
|
||||
When all arguments are valid job specifiers, bg will background all matching jobs that exist.
|
||||
|
||||
\subsection bg-example Example
|
||||
|
||||
`bg %1` will put the job with job ID 1 in the background.
|
||||
|
||||
`bg 123 456 789` will background 123, 456 and 789.
|
||||
|
||||
If only 123 and 789 exist, it will still background them and print an error about 456.
|
||||
|
||||
`bg 123 banana` or `bg banana 123` will complain that "banana" is not a valid job specifier.
|
||||
|
||||
@@ -7,6 +7,7 @@ bind [(-M | --mode) MODE] [(-m | --sets-mode) NEW_MODE]
|
||||
bind [(-M | --mode) MODE] [(-k | --key)] SEQUENCE
|
||||
bind (-K | --key-names) [(-a | --all)]
|
||||
bind (-f | --function-names)
|
||||
bind (-L | --list-modes)
|
||||
bind (-e | --erase) [(-M | --mode) MODE]
|
||||
(-a | --all | [(-k | --key)] SEQUENCE [SEQUENCE...])
|
||||
\endfish
|
||||
@@ -27,7 +28,7 @@ When `COMMAND` is a shellscript command, it is a good practice to put the actual
|
||||
|
||||
If such a script produces output, the script needs to finish by calling `commandline -f repaint` in order to tell fish that a repaint is in order.
|
||||
|
||||
When multiple `COMMAND`s are provided, they are all run in the specified order when the key is pressed.
|
||||
When multiple `COMMAND`s are provided, they are all run in the specified order when the key is pressed. Note that special input functions cannot be combined with ordinary shell script commands. The commands must be entirely a sequence of special input functions (from `bind -f`) or all shell script commands (i.e., valid fish script).
|
||||
|
||||
If no `SEQUENCE` is provided, all bindings (or just the bindings in the specified `MODE`) are printed. If `SEQUENCE` is provided without `COMMAND`, just the binding matching that sequence is printed.
|
||||
|
||||
@@ -43,6 +44,8 @@ The following parameters are available:
|
||||
|
||||
- `-f` or `--function-names` Display a list of available input functions
|
||||
|
||||
- `-L` or `--list-modes` Display a list of defined bind modes
|
||||
|
||||
- `-M MODE` or `--mode MODE` Specify a bind mode that the bind is used in. Defaults to "default"
|
||||
|
||||
- `-m NEW_MODE` or `--sets-mode NEW_MODE` Change the current mode to `NEW_MODE` after this binding is executed
|
||||
|
||||
@@ -39,3 +39,8 @@ emit foo
|
||||
block -e
|
||||
# 'foo fired' will now be printed
|
||||
\endfish
|
||||
|
||||
|
||||
\subsection block-notes Notes
|
||||
|
||||
Note that events are only received from the current fish process as there is no way to send events from one fish process to another.
|
||||
|
||||
@@ -14,7 +14,7 @@ If `DIRECTORY` is a relative path, the paths found in the `CDPATH` environment v
|
||||
|
||||
Note that the shell will attempt to change directory without requiring `cd` if the name of a directory is provided (starting with `.`, `/` or `~`, or ending with `/`).
|
||||
|
||||
Fish also ships a wrapper function around the builtin `cd` that understands `cd -` as changing to the previous directory. See also <a href="commands.html#prevd">`prevd`</a>. This wrapper function maintains a history of the 25 most recently visited directories in the `$dirprev` and `$dirnext` global variables.
|
||||
Fish also ships a wrapper function around the builtin `cd` that understands `cd -` as changing to the previous directory. See also <a href="commands.html#prevd">`prevd`</a>. This wrapper function maintains a history of the 25 most recently visited directories in the `$dirprev` and `$dirnext` global variables. If you make those universal variables your `cd` history is shared among all fish instances.
|
||||
|
||||
\subsection cd-example Examples
|
||||
|
||||
@@ -25,3 +25,7 @@ cd
|
||||
cd /usr/src/fish-shell
|
||||
# changes the working directory to /usr/src/fish-shell
|
||||
\endfish
|
||||
|
||||
\subsection cd-see-also See Also
|
||||
|
||||
See also the <a href="commands.html#cdh">`cdh`</a> command for changing to a recently visited directory.
|
||||
|
||||
16
doc_src/cdh.txt
Normal file
16
doc_src/cdh.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
\section cdh cdh - change to a recently visited directory
|
||||
|
||||
\subsection cdh-synopsis Synopsis
|
||||
\fish{synopsis}
|
||||
cdh [ directory ]
|
||||
\endfish
|
||||
|
||||
\subsection cdh-description Description
|
||||
|
||||
`cdh` with no arguments presents a list of recently visited directories. You can then select one of the entries by letter or number. You can also press @key{tab} to use the completion pager to select an item from the list. If you give it a single argument it is equivalent to `cd directory`.
|
||||
|
||||
Note that the `cd` command limits directory history to the 25 most recently visited directories. The history is stored in the `$dirprev` and `$dirnext` variables which this command manipulates. If you make those universal variables your `cd` history is shared among all fish instances.
|
||||
|
||||
\subsection cdh-see-also See Also
|
||||
|
||||
See also the <a href="commands.html#prevd">`prevd`</a> and <a href="commands.html#pushd">`pushd`</a> commands which also work with the recent `cd` history and are provided for compatibility with other shells.
|
||||
@@ -11,7 +11,9 @@ command [OPTIONS] COMMANDNAME [ARGS...]
|
||||
|
||||
The following options are available:
|
||||
|
||||
- `-s` or `--search` returns the name of the disk file that would be executed, or nothing if no file with the specified name could be found in the `$PATH`.
|
||||
- `-a` or `--all` returns all the external commands that are found in `$PATH` in the order they are found.
|
||||
|
||||
- `-s` or `--search` returns the name of the external command that would be executed, or nothing if no file with the specified name could be found in the `$PATH`.
|
||||
|
||||
With the `-s` option, `command` treats every argument as a separate command to look up and sets the exit status to 0 if any of the specified commands were found, or 1 if no commands could be found. Additionally passing a `-q` or `--quiet` option prevents any paths from being printed, like the `type -q`, for testing only the exit status.
|
||||
|
||||
|
||||
@@ -62,13 +62,13 @@ Examples:
|
||||
|
||||
- Fish allows the user to set various syntax highlighting colors. This is needed because fish does not know what colors the terminal uses by default, which might make some things unreadable. The proper solution would be for text color preferences to be defined centrally by the user for all programs, and for the terminal emulator to send these color properties to fish.
|
||||
|
||||
- Fish does not allow you to set the history filename, the number of history entries, different language substyles or any number of other common shell configuration options.
|
||||
- Fish does not allow you to set the number of history entries, different language substyles or any number of other common shell configuration options.
|
||||
|
||||
A special note on the evils of configurability is the long list of very useful features found in some shells, that are not turned on by default. Both zsh and bash support command-specific completions, but no such completions are shipped with bash by default, and they are turned off by default in zsh. Other features that zsh supports that are disabled by default include tab-completion of strings containing wildcards, a sane completion pager and a history file.
|
||||
|
||||
\section user The law of user focus
|
||||
|
||||
When designing a program, one should first think about how to make a intuitive and powerful program. Implementation issues should only be considered once a user interface has been designed.
|
||||
When designing a program, one should first think about how to make an intuitive and powerful program. Implementation issues should only be considered once a user interface has been designed.
|
||||
|
||||
Rationale:
|
||||
|
||||
|
||||
26
doc_src/disown.txt
Normal file
26
doc_src/disown.txt
Normal file
@@ -0,0 +1,26 @@
|
||||
\section disown disown - remove a process from the list of jobs
|
||||
|
||||
\subsection disown-synopsis Synopsis
|
||||
\fish{synopsis}
|
||||
disown [ PID ... ]
|
||||
\endfish
|
||||
|
||||
\subsection disown-description Description
|
||||
|
||||
`disown` removes the specified <a href="index.html#syntax-job-control">job</a> from the list of jobs. The job itself continues to exist, but fish does not keep track of it any longer.
|
||||
|
||||
Jobs in the list of jobs are sent a hang-up signal when fish terminates, which usually causes the job to terminate; `disown` allows these processes to continue regardless.
|
||||
|
||||
If no process is specified, the most recently-used job is removed (like `bg` and `fg`). If one or more `PID`s are specified, jobs with the specified process IDs are removed from the job list. Invalid jobs are ignored and a warning is printed.
|
||||
|
||||
If a job is stopped, it is sent a signal to continue running, and a warning is printed. It is not possible to use the `bg` builtin to continue a job once it has been disowned.
|
||||
|
||||
The PID of the desired process is usually found by using <a href="index.html#expand-process">process expansion</a>, which can specify jobs or search by process name.
|
||||
|
||||
`disown` returns 0 if all specified jobs were disowned successfully, and 1 if any problems were encountered.
|
||||
|
||||
\subsection disown-example Example
|
||||
|
||||
`firefox &; disown` will start the Firefox web browser in the background and remove it from the job list, meaning it will not be closed when the fish process is closed.
|
||||
|
||||
`disown (jobs -p)` removes all jobs from the job list without terminating them.
|
||||
@@ -20,4 +20,9 @@ function event_test --on-event test_event
|
||||
end
|
||||
|
||||
emit test_event something
|
||||
|
||||
|
||||
\subsection emit-notes Notes
|
||||
|
||||
Note that events are only sent to the current fish process as there is no way to send events from one fish process to another.
|
||||
\endfish
|
||||
|
||||
@@ -16,4 +16,4 @@ switch VALUE; [case [WILDCARD...]; [COMMANDS...]; ...] end
|
||||
For more information, read the
|
||||
documentation for the block constructs, such as `if`, `for` and `while`.
|
||||
|
||||
The `end` command does not change the current exit status.
|
||||
The `end` command does not change the current exit status. Instead, the status after it will be the status returned by the most recent command.
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
- <a href='#faq-subcommand'>How do I run a subcommand? The backtick doesn't work!</a>
|
||||
- <a href='#faq-exit-status'>How do I get the exit status of a command?</a>
|
||||
- <a href='#faq-single-env'>How do I set an environment variable for just one command?</a>
|
||||
- <a href='#faq-exported-uvar'>Why doesn't `set -Ux` (exported universal varables) seem to work?</a>
|
||||
- <a href='#faq-customize-colors'>How do I customize my syntax highlighting colors?</a>
|
||||
- <a href='#faq-update-manpage-completions'>How do I update man page completions?</a>
|
||||
- <a href='#faq-cwd-symlink'>Why does cd, pwd and other fish commands always resolve symlinked directories to their canonical path?</a>
|
||||
@@ -23,6 +24,8 @@
|
||||
- <a href='#faq-titlebar'>I'm seeing weird output before each prompt when using screen. What's wrong?</a>
|
||||
- <a href='#faq-greeting'>How do I change the greeting message?</a>
|
||||
- <a href='#faq-history'>Why doesn't history substitution ("!$" etc.) work?</a>
|
||||
- <a href='#faq-find-braces'>Why do I get a missing argument error with `find ... {}`?</a>
|
||||
- <a href='#faq-cd-minus'>How can I use `-` as a shortcut for `cd -`?</a>
|
||||
- <a href='#faq-uninstalling'>How do I uninstall fish?</a>
|
||||
- <a href='#faq-third-party'>Where can I find extra tools for fish?</a>
|
||||
|
||||
@@ -85,6 +88,25 @@ end
|
||||
|
||||
Use the `$status` variable. This replaces the `$?` variable used in some other shells.
|
||||
|
||||
\fish{cli-dark}
|
||||
somecommand
|
||||
if test $status -eq 7
|
||||
echo "That's my lucky number!"
|
||||
end
|
||||
\endfish
|
||||
|
||||
If you are just interested in success or failure, you can run the command directly as the if-condition:
|
||||
|
||||
\fish{cli-dark}
|
||||
if somecommand
|
||||
echo "Command succeeded"
|
||||
else
|
||||
echo "Command failed"
|
||||
end
|
||||
\endfish
|
||||
|
||||
See the documentation for <a href="commands.html#test">`test`</a> and <a href="commands.html#if">`if`</a> for more information.
|
||||
|
||||
<hr>
|
||||
\section faq-single-env How do I set an environment variable for just one command?
|
||||
|
||||
@@ -103,6 +125,26 @@ begin
|
||||
end
|
||||
\endfish
|
||||
|
||||
\section faq-exported-uvar Why doesn't `set -Ux` (exported universal variables) seem to work?
|
||||
|
||||
A global variable of the same name already exists.
|
||||
|
||||
Environment variables such as `EDITOR` or `TZ` can be set universally using `set -Ux`. However, if
|
||||
there is an environment variable already set before fish starts (such as by login scripts or system
|
||||
administrators), it is imported into fish as a global variable. The <a
|
||||
href="index.html#variables-scope">variable scopes</a> are searched from the "inside out", which
|
||||
means that local variables are checked first, followed by global variables, and finally universal
|
||||
variables.
|
||||
|
||||
This means that the global value takes precedence over the universal value.
|
||||
|
||||
To avoid this problem, consider changing the setting which fish inherits. If this is not possible,
|
||||
add a statement to your <a href="index.html#">user initilization file</a> (usually
|
||||
`~/.config/fish/config.fish`):
|
||||
|
||||
\fish{cli-dark}
|
||||
set -gx EDITOR vim
|
||||
\endfish
|
||||
|
||||
\section faq-customize-colors How do I customize my syntax highlighting colors?
|
||||
|
||||
@@ -183,7 +225,7 @@ Change the value of the variable `fish_greeting` or create a `fish_greeting` fun
|
||||
set fish_greeting
|
||||
\endfish
|
||||
|
||||
|
||||
<hr>
|
||||
\section faq-history Why doesn't history substitution ("!$" etc.) work?
|
||||
|
||||
Because history substitution is an awkward interface that was invented before interactive line editing was even possible. Fish drops it in favor of perfecting the interactive history recall interface. Switching requires a small change of habits: if you want to modify an old line/word, first recall it, then edit. E.g. don't type "sudo !!" - first press Up, then Home, then type "sudo ".
|
||||
@@ -202,6 +244,30 @@ Fish history recall is very simple yet effective:
|
||||
|
||||
See <a href='index.html#editor'>documentation</a> for more details about line editing in fish.
|
||||
|
||||
<hr>
|
||||
\section faq-find-braces Why do I get a missing argument error with `find ... {}`?
|
||||
|
||||
Running `find ... -exec ... {}` produces an error:
|
||||
|
||||
find: missing argument to '-exec'
|
||||
|
||||
The problem is caused by the empty braces, which are subject to <a href="index.html#expand-brace">brace expansion</a>.
|
||||
|
||||
Quote the empty braces to achieve the desired effect:
|
||||
|
||||
\fish{cli-dark}
|
||||
find ... -exec ... '{{}}'
|
||||
\endfish
|
||||
|
||||
<hr>
|
||||
\section faq-cd-minus How can I use `-` as a shortcut for `cd -`?
|
||||
|
||||
In fish versions prior to 2.5.0 it was possible to create a function named `-` that would do `cd -`. Changes in the 2.5.0 release included several bug fixes that enforce the rule that a bare hyphen is not a valid function (or variable) name. However, you can achieve the same effect via an abbreviation:
|
||||
|
||||
\fish{cli-dark}
|
||||
abbr -a -- - 'cd -'
|
||||
\endfish
|
||||
|
||||
<hr>
|
||||
\section faq-uninstalling Uninstalling fish
|
||||
|
||||
|
||||
@@ -13,6 +13,8 @@ The following options are available:
|
||||
|
||||
- `-c` or `--command=COMMANDS` evaluate the specified commands instead of reading from the commandline
|
||||
|
||||
- `-C` or `--init-command=COMMANDS` evaluate the specified commands after reading the configuration, before running the command specified by `-c` or reading interactive input
|
||||
|
||||
- `-d` or `--debug-level=DEBUG_LEVEL` specify the verbosity level of fish. A higher number means higher verbosity. The default level is 1.
|
||||
|
||||
- `-i` or `--interactive` specify that fish is to run in interactive mode
|
||||
|
||||
30
doc_src/fish_breakpoint_prompt.txt
Normal file
30
doc_src/fish_breakpoint_prompt.txt
Normal file
@@ -0,0 +1,30 @@
|
||||
\section fish_breakpoint_prompt fish_breakpoint_prompt - define the appearance of the command line prompt when in the context of a `breakpoint` command
|
||||
|
||||
\subsection fish_breakpoint_prompt-synopsis Synopsis
|
||||
\fish{synopsis}
|
||||
function fish_breakpoint_prompt
|
||||
...
|
||||
end
|
||||
\endfish
|
||||
|
||||
\subsection fish_breakpoint_prompt-description Description
|
||||
|
||||
By defining the `fish_breakpoint_prompt` function, the user can choose a custom prompt when asking for input in response to a `breakpoint` command. The `fish_breakpoint_prompt` function is executed when the prompt is to be shown, and the output is used as a prompt.
|
||||
|
||||
The exit status of commands within `fish_breakpoint_prompt` will not modify the value of <a href="index.html#variables-status">$status</a> outside of the `fish_breakpoint_prompt` function.
|
||||
|
||||
`fish` ships with a default version of this function that displays the function name and line number of the current execution context.
|
||||
|
||||
|
||||
\subsection fish_breakpoint_prompt-example Example
|
||||
|
||||
A simple prompt that is a simplified version of the default debugging prompt:
|
||||
|
||||
\fish
|
||||
function fish_breakpoint_prompt -d "Write out the debug prompt"
|
||||
set -l function (status current-function)
|
||||
set -l line (status current-line-number)
|
||||
set -l prompt "$function:$line >"
|
||||
echo -ns (set_color $fish_color_status) "BP $prompt" (set_color normal) ' '
|
||||
end
|
||||
\endfish
|
||||
@@ -21,6 +21,8 @@ The following options are available:
|
||||
|
||||
- `-h` or `--help` prints usage information.
|
||||
|
||||
- `-v` or `--version` prints fish_key_reader's version and exits.
|
||||
|
||||
\subsection fish_key_reader-usage-notes Usage Notes
|
||||
|
||||
The delay in milliseconds since the previous character was received is included in the diagnostic information written to stderr. This information may be useful to determine the optimal `fish_escape_delay_ms` setting or learn the amount of lag introduced by tools like `ssh`, `mosh` or `tmux`.
|
||||
|
||||
@@ -2,10 +2,36 @@
|
||||
|
||||
\subsection fish_mode_prompt-synopsis Synopsis
|
||||
|
||||
fish_mode_prompt will output the mode indicator for use in vi-mode.
|
||||
The fish_mode_prompt function will output the mode indicator for use in vi-mode.
|
||||
|
||||
\subsection fish_mode_prompt-description Description
|
||||
|
||||
The output of `fish_mode_prompt` will be displayed in the mode indicator position to the left of the regular prompt.
|
||||
The default `fish_mode_prompt` function will output indicators about the current Vi editor mode displayed to the left of the regular prompt. Define your own function to customize the appearance of the mode indicator. You can also define an empty `fish_mode_prompt` function to remove the Vi mode indicators. The `$fish_bind_mode variable` can be used to determine the current mode. It
|
||||
will be one of `default`, `insert`, `replace_one`, or `visual`.
|
||||
|
||||
Multiple lines are not supported in `fish_mode_prompt`.
|
||||
\subsection fish_mode_prompt-example Example
|
||||
|
||||
\fish
|
||||
function fish_mode_prompt
|
||||
switch $fish_bind_mode
|
||||
case default
|
||||
set_color --bold red
|
||||
echo 'N'
|
||||
case insert
|
||||
set_color --bold green
|
||||
echo 'I'
|
||||
case replace_one
|
||||
set_color --bold green
|
||||
echo 'R'
|
||||
case visual
|
||||
set_color --bold brmagenta
|
||||
echo 'V'
|
||||
case '*'
|
||||
set_color --bold red
|
||||
echo '?'
|
||||
end
|
||||
set_color normal
|
||||
end
|
||||
\endfish
|
||||
|
||||
Outputting multiple lines is not supported in `fish_mode_prompt`.
|
||||
|
||||
54
doc_src/fish_opt.txt
Normal file
54
doc_src/fish_opt.txt
Normal file
@@ -0,0 +1,54 @@
|
||||
\section fish_opt fish_opt - create an option spec for the argparse command
|
||||
|
||||
\subsection fish_opt-synopsis Synopsis
|
||||
\fish{synopsis}
|
||||
fish_opt [ -h | --help ]
|
||||
fish_opt ( -s X | --short=X ) [ -l LONG | --long=LONG ] [ --long-only ] \
|
||||
[ -o | --optional-val ] [ -r | --required-val ] [ --multiple-vals ]
|
||||
\endfish
|
||||
|
||||
\subsection fish_opt-description Description
|
||||
|
||||
This command provides a way to produce option specifications suitable for use with the <a href="#argparse">`argparse`</a> command. You can, of course, write the option specs by hand without using this command. But you might prefer to use this for the clarity it provides.
|
||||
|
||||
The following `argparse` options are available:
|
||||
|
||||
- `-s` or `--short` takes a single letter that is used as the short flag in the option being defined. This option is mandatory.
|
||||
|
||||
- `-l` or `--long` takes a string that is used as the long flag in the option being defined. This option is optional and has no default. If no long flag is defined then only the short flag will be allowed when parsing arguments using the option spec.
|
||||
|
||||
- `--long-only` means the option spec being defined will only allow the long flag name to be used. The short flag name must still be defined (i.e., `--short` must be specified) but it cannot be used when parsing args using this option spec.
|
||||
|
||||
- `-o` or `--optional` means the option being defined can take a value but it is optional rather than required. If the option is seen more than once when parsing arguments only the last value seen is saved. This means the resulting flag variable created by `argparse` will zero elements if no value was given with the option else it will have exactly one element.
|
||||
|
||||
- `-r` or `--required` means the option being defined requires a value. If the option is seen more than once when parsing arguments only the last value seen is saved. This means the resulting flag variable created by `argparse` will have exactly one element.
|
||||
|
||||
- `--multiple-vals` means the option being defined requires a value each time it is seen. Each instance is stored. This means the resulting flag variable created by `argparse` will have one element for each instance of this option in the args.
|
||||
|
||||
- `-h` or `--help` displays help about using this command.
|
||||
|
||||
\subsection fish_opt-examples Examples
|
||||
|
||||
Define a single option spec for the boolean help flag:
|
||||
|
||||
\fish
|
||||
set -l options (fish_opt -s h -l help)
|
||||
argparse $options -- $argv
|
||||
\endfish
|
||||
|
||||
Same as above but with a second flag that requires a value:
|
||||
|
||||
\fish
|
||||
set -l options (fish_opt -s h -l help)
|
||||
set options $options (fish_opt -s m -l max --required-val)
|
||||
argparse $options -- $argv
|
||||
\endfish
|
||||
|
||||
Same as above but with a third flag that can be given multiple times saving the value of each instance seen and only the long flag name (`--token`) can be used:
|
||||
|
||||
\fish
|
||||
set -l options (fish_opt --short=h --long=help)
|
||||
set options $options (fish_opt --short=m --long=max --required-val)
|
||||
set options $options (fish_opt --short=t --long=token --multiple-vals --long-only)
|
||||
argparse $options -- $argv
|
||||
\endfish
|
||||
@@ -9,10 +9,10 @@ funced [OPTIONS] NAME
|
||||
|
||||
`funced` provides an interface to edit the definition of the function `NAME`.
|
||||
|
||||
If the `$VISUAL` environment variable is set, it will be used as the program to edit the function. If `$VISUAL` is unset but `$EDITOR` is set, that will be used. Otherwise, a built-in editor will be used.
|
||||
If the `$VISUAL` environment variable is set, it will be used as the program to edit the function. If `$VISUAL` is unset but `$EDITOR` is set, that will be used. Otherwise, a built-in editor will be used. Note that to enter a literal newline using the built-in editor you should press @key{Alt,Enter}. Pressing @key{Enter} signals that you are done editing the function. This does not apply to an external editor like emacs or vim.
|
||||
|
||||
If there is no function called `NAME` a new function will be created with the specified name
|
||||
|
||||
- `-e command` or `--editor command` Open the function body inside the text editor given by the command (for example, "vi"). The command 'fish' will use the built-in editor.
|
||||
- `-e command` or `--editor command` Open the function body inside the text editor given by the command (for example, `-e vi`). The special command `fish` will use the built-in editor (same as specifying `-i`).
|
||||
|
||||
- `-i` or `--interactive` Open function body in the built-in editor.
|
||||
- `-i` or `--interactive` Force opening the function body in the built-in editor even if `$VISUAL` or `$EDITOR` is defined.
|
||||
|
||||
@@ -91,3 +91,7 @@ end
|
||||
|
||||
This will beep when the most recent job completes.
|
||||
|
||||
|
||||
\subsection function-notes Notes
|
||||
|
||||
Note that events are only received from the current fish process as there is no way to send events from one fish process to another.
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
\subsection functions-synopsis Synopsis
|
||||
\fish{synopsis}
|
||||
functions [ -a | --all ] [ -n | --names ]
|
||||
functions [ -D | --details ] [ -v ] FUNCTION
|
||||
functions -c OLDNAME NEWNAME
|
||||
functions -d DESCRIPTION FUNCTION
|
||||
functions [ -e | -q ] FUNCTIONS...
|
||||
@@ -14,7 +15,7 @@ functions [ -e | -q ] FUNCTIONS...
|
||||
|
||||
The following options are available:
|
||||
|
||||
- `-a` or `--all` lists all functions, even those whose name start with an underscore.
|
||||
- `-a` or `--all` lists all functions, even those whose name starts with an underscore.
|
||||
|
||||
- `-c OLDNAME NEWNAME` or `--copy OLDNAME NEWNAME` creates a new function named NEWNAME, using the definition of the OLDNAME function.
|
||||
|
||||
@@ -22,10 +23,22 @@ The following options are available:
|
||||
|
||||
- `-e` or `--erase` causes the specified functions to be erased.
|
||||
|
||||
- `-D` or `--details` reports the path name where each function is defined or could be autoloaded, `stdin` if the function was defined interactively or on the command line or by reading stdin, and `n/a` if the function isn't available. If the `--verbose` option is also specified then five lines are written:
|
||||
|
||||
-# the pathname as already described,
|
||||
-# `autoloaded`, `not-autoloaded` or `n/a`,
|
||||
-# the line number within the file or zero if not applicable,
|
||||
-# `scope-shadowing` if the function shadows the vars in the calling function (the normal case if it wasn't defined with `--no-scope-shadowing`), else `no-scope-shadowing`, or `n/a` if the function isn't defined,
|
||||
-# the function description minimally escaped so it is a single line or `n/a` if the function isn't defined.
|
||||
|
||||
You should not assume that only five lines will be written since we may add additional information to the output in the future.
|
||||
|
||||
- `-n` or `--names` lists the names of all defined functions.
|
||||
|
||||
- `-q` or `--query` tests if the specified functions exist.
|
||||
|
||||
- `-v` or `--verbose` will make some output more verbose.
|
||||
|
||||
The default behavior of `functions`, when called with no arguments, is to print the names of all defined functions. Unless the `-a` option is given, no functions starting with underscores are not included in the output.
|
||||
|
||||
If any non-option parameters are given, the definition of the specified functions are printed.
|
||||
|
||||
@@ -49,17 +49,27 @@ These flags can appear before or immediately after one of the sub-commands liste
|
||||
\subsection history-examples Example
|
||||
|
||||
\fish
|
||||
history --clear
|
||||
history clear
|
||||
# Deletes all history items
|
||||
|
||||
history --search --contains "foo"
|
||||
history search --contains "foo"
|
||||
# Outputs a list of all previous commands containing the string "foo".
|
||||
|
||||
history --delete --prefix "foo"
|
||||
history delete --prefix "foo"
|
||||
# Interactively deletes commands which start with "foo" from the history.
|
||||
# You can select more than one entry by entering their IDs seperated by a space.
|
||||
\endfish
|
||||
|
||||
\subsection customizing-the-histfile Customizing the name of the history file
|
||||
|
||||
By default interactive commands are logged to `$XDG_DATA_HOME/fish/fish_history` (typically `~/.local/share/fish/fish_history`).
|
||||
|
||||
You can set the `fish_history` variable to another name for the current shell session. The default value (when the variable is unset) is `fish` which corresponds to `$XDG_DATA_HOME/fish/fish_history`. If you set it to e.g. `fun`, the history would be written to `$XDG_DATA_HOME/fish/fun_history`. An empty string means history will not be stored at all. This is similar to the private session features in web browsers.
|
||||
|
||||
You can change `fish_history` at any time (by using `set -x fish_history "session_name"`) and it will take effect right away. If you set it to `"default"`, it will use the default session name (which is `"fish"`).
|
||||
|
||||
Other shells such as bash and zsh use a variable named `HISTFILE` for a similar purpose. Fish uses a different name to avoid conflicts and signal that the behavior is different (session name instead of a file path). Also, if you set the var to anything other than `fish` or `default` it will inhibit importing the bash history. That's because the most common use case for this feature is to avoid leaking private or sensitive history when giving a presentation.
|
||||
|
||||
\subsection history-notes Notes
|
||||
|
||||
If you specify both `--prefix` and `--contains` the last flag seen is used.
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
\section introduction Introduction
|
||||
|
||||
This is the documentation for `fish`, the friendly interactive shell. `fish` is a user friendly commandline shell intended mostly for interactive use. A shell is a program used to execute other programs. For the latest information on `fish`, please visit the <a href="http://fishshell.com/">`fish` homepage</a>.
|
||||
This is the documentation for `fish`, the friendly interactive shell. `fish` is a user friendly commandline shell intended mostly for interactive use. A shell is a program used to execute other programs. For the latest information on `fish`, please visit the <a href="https://fishshell.com/">`fish` homepage</a>.
|
||||
|
||||
|
||||
\section syntax Syntax overview
|
||||
@@ -106,6 +106,7 @@ Some characters can not be written directly on the command line. For these chara
|
||||
- '<code>\\\></code>' escapes the more than character
|
||||
- '<code>\\^</code>' escapes the circumflex character
|
||||
- '<code>\\&</code>' escapes the ampersand character
|
||||
- '<code>\\|</code>' escapes the vertical bar character
|
||||
- '<code>\\;</code>' escapes the semicolon character
|
||||
- '<code>\\"</code>' escapes the quote character
|
||||
- '<code>\\'</code>' escapes the apostrophe character
|
||||
@@ -580,7 +581,7 @@ Be careful when you try to use braces to separate variable names from text. The
|
||||
|
||||
\subsection expand-index-range Index range expansion
|
||||
|
||||
Both command substitution and shell variable expansion support accessing only specific items by providing a set of indices in square brackets. It's often needed to access a sequence of elements. To do this, use the range operator '`..`' for this. A range '`a..b`', where range limits 'a' and 'b' are integer numbers, is expanded into a sequence of indices '`a a+1 a+2 ... b`' or '`a a-1 a-2 ... b`' depending on which of 'a' or 'b' is higher. The negative range limits are calculated from the end of the array or command substitution.
|
||||
Both command substitution and shell variable expansion support accessing only specific items by providing a set of indices in square brackets. It's often needed to access a sequence of elements. To do this, use the range operator '`..`' for this. A range '`a..b`', where range limits 'a' and 'b' are integer numbers, is expanded into a sequence of indices '`a a+1 a+2 ... b`' or '`a a-1 a-2 ... b`' depending on which of 'a' or 'b' is higher. The negative range limits are calculated from the end of the array or command substitution. Note that invalid indexes for either end are silently clamped to one or the size of the array as appropriate.
|
||||
|
||||
Some examples:
|
||||
|
||||
@@ -667,11 +668,22 @@ Example:
|
||||
If the current directory contains the files 'foo' and 'bar', the command `echo a(ls){1,2,3} ` will output 'abar1 abar2 abar3 afoo1 afoo2 afoo3'.
|
||||
|
||||
|
||||
\section identifiers Shell variable and function names
|
||||
|
||||
The names given to shell objects such as variables and function names are known as "identifiers". Each type of identifier has rules that define the valid sequence of characters which compose the identifier.
|
||||
|
||||
A variable name cannot be empty. It can contain only letters, digits, and underscores. It may begin and end with any of those characters.
|
||||
|
||||
A function name cannot be empty. It may not begin with a hyphen ("-") and may not contain a slash ("/"). All other characters, including a space, are valid.
|
||||
|
||||
A bind mode name (e.g., `bind -m abc ...`) is restricted to the rules for valid variable names.
|
||||
|
||||
|
||||
\section variables Shell variables
|
||||
|
||||
Shell variables are named pieces of data, which can be created, deleted and their values changed and used by the user. Variables may optionally be "exported", so that a copy of the variable is available to any subprocesses the shell creates. An exported variable is referred to as an "environment variable".
|
||||
|
||||
To set a variable value, use the <a href="commands.html#set">`set` command</a>.
|
||||
To set a variable value, use the <a href="commands.html#set">`set` command</a>. A variable name can not be empty and can contain only letters, digits, and underscores. It may begin and end with any of those characters.
|
||||
|
||||
Example:
|
||||
|
||||
@@ -681,7 +693,7 @@ After a variable has been set, you can use the value of a variable in the shell
|
||||
|
||||
Example:
|
||||
|
||||
To use the value of the variable `smurf`, write `$` (dollar symbol) followed by the name of the variable, like `echo Smurfs are usually $smurf_color`, which would print the result 'Smurfs are usually blue'.
|
||||
To use the value of the variable `smurf_color`, write `$` (dollar symbol) followed by the name of the variable, like `echo Smurfs are usually $smurf_color`, which would print the result 'Smurfs are usually blue'.
|
||||
|
||||
|
||||
\subsection variables-scope Variable scope
|
||||
@@ -767,7 +779,7 @@ Variables can be explicitly set to be exported with the `-x` or `--export` switc
|
||||
|
||||
`echo $PATH[3]`
|
||||
|
||||
Note that array indices start at 1 in `fish`, not 0, as is more common in other languages. This is because many common Unix tools like `seq` are more suited to such use.
|
||||
Note that array indices start at 1 in `fish`, not 0, as is more common in other languages. This is because many common Unix tools like `seq` are more suited to such use. An invalid index is silently ignored resulting in no value being substituted (not an empty string).
|
||||
|
||||
If you do not use any brackets, all the elements of the array will be written as separate items. This means you can easily iterate over an array using this syntax:
|
||||
|
||||
@@ -811,9 +823,19 @@ The user can change the settings of `fish` by changing the values of certain var
|
||||
|
||||
- A large number of variable starting with the prefixes `fish_color` and `fish_pager_color.` See <a href='#variables-color'>Variables for changing highlighting colors</a> for more information.
|
||||
|
||||
- `fish_escape_delay_ms` overrides the default timeout of 300ms (default key bindings) or 10ms (vi key bindings) after seeing an escape character before giving up on matching a key binding. See the documentation for the <a href='bind.html#special-case-escape'>bind</a> builtin command. This delay facilitates using escape as a meta key.
|
||||
|
||||
- `fish_greeting`, the greeting message printed on startup.
|
||||
|
||||
- `fish_escape_delay_ms` overrides the default timeout of 300ms (default key bindings) or 10ms (vi key bindings) after seeing an escape character before giving up on matching a key binding. See the documentation for the <a href='bind.html#special-case-escape'>bind</a> builtin command. This delay facilitates using escape as a meta key.
|
||||
- `fish_history`, the current history session name. If set, all subsequent commands within an
|
||||
interactive fish session will be logged to a separate file identified by the value of the
|
||||
variable. If unset, or set to `default`, the default session name "fish" is used. If set to an
|
||||
empty string, history is not saved to disk (but is still available within the interactive
|
||||
session).
|
||||
|
||||
- `fish_user_paths`, an array of directories that are prepended to `PATH`. This can be a universal variable.
|
||||
|
||||
- `umask`, the current file creation mask. The preferred way to change the umask variable is through the <a href="commands.html#umask">umask function</a>. An attempt to set umask to an invalid value will always fail.
|
||||
|
||||
- `BROWSER`, the user's preferred web browser. If this variable is set, fish will use the specified browser instead of the system default browser to display the fish documentation.
|
||||
|
||||
@@ -821,12 +843,8 @@ The user can change the settings of `fish` by changing the values of certain var
|
||||
|
||||
- `LANG`, `LC_ALL`, `LC_COLLATE`, `LC_CTYPE`, `LC_MESSAGES`, `LC_MONETARY`, `LC_NUMERIC` and `LC_TIME` set the language option for the shell and subprograms. See the section <a href='#variables-locale'>Locale variables</a> for more information.
|
||||
|
||||
- `fish_user_paths`, an array of directories that are prepended to `PATH`. This can be a universal variable.
|
||||
|
||||
- `PATH`, an array of directories in which to search for commands
|
||||
|
||||
- `umask`, the current file creation mask. The preferred way to change the umask variable is through the <a href="commands.html#umask">umask function</a>. An attempt to set umask to an invalid value will always fail.
|
||||
|
||||
`fish` also sends additional information to the user through the values of certain environment variables. The user cannot change the values of most of these variables.
|
||||
|
||||
- `_`, the name of the currently running command.
|
||||
@@ -849,12 +867,10 @@ The user can change the settings of `fish` by changing the values of certain var
|
||||
|
||||
- `FISH_VERSION`, the version of the currently running fish
|
||||
|
||||
- `COLUMNS`, the current width of the terminal
|
||||
|
||||
- `LINES`, the current height of the terminal
|
||||
|
||||
- `SHLVL`, the level of nesting of shells
|
||||
|
||||
- `COLUMNS` and `LINES`, the current size of the terminal in height and width. These values are only used by fish if the operating system does not report the size of the terminal. Both variables must be set in that case otherwise a default of 80x24 will be used. They are updated when the window size changes.
|
||||
|
||||
The names of these variables are mostly derived from the csh family of shells and differ from the ones used by Bourne style shells such as bash.
|
||||
|
||||
Variables whose name are in uppercase are exported to the commands started by fish, while those in lowercase are not exported. This rule is not enforced by fish, but it is good coding practice to use casing to distinguish between exported and unexported variables. `fish` also uses several variables internally. Such variables are prefixed with the string `__FISH` or `__fish.` These should never be used by the user. Changing their value may break fish.
|
||||
@@ -867,17 +883,21 @@ Fish stores the exit status of the last process in the last job to exit in the `
|
||||
|
||||
If `fish` encounters a problem while executing a command, the status variable may also be set to a specific value:
|
||||
|
||||
- 1 is the generally the exit status from fish builtin commands if they were supplied with invalid arguments
|
||||
- 0 is generally the exit status of fish commands if they successfully performed the requested operation.
|
||||
|
||||
- 123 means that the command was not executed because the command name contained invalid characters
|
||||
- 1 is generally the exit status of fish commands if they failed to perform the requested operation.
|
||||
|
||||
- 124 means that the command was not executed because none of the wildcards in the command produced any matches
|
||||
- 121 is generally the exit status of fish commands if they were supplied with invalid arguments.
|
||||
|
||||
- 125 means that while an executable with the specified name was located, the operating system could not actually execute the command
|
||||
- 123 means that the command was not executed because the command name contained invalid characters.
|
||||
|
||||
- 126 means that while a file with the specified name was located, it was not executable
|
||||
- 124 means that the command was not executed because none of the wildcards in the command produced any matches.
|
||||
|
||||
- 127 means that no function, builtin or command with the given name could be located
|
||||
- 125 means that while an executable with the specified name was located, the operating system could not actually execute the command.
|
||||
|
||||
- 126 means that while a file with the specified name was located, it was not executable.
|
||||
|
||||
- 127 means that no function, builtin or command with the given name could be located.
|
||||
|
||||
If a process exits through a signal, the exit status will be 128 plus the number of the signal.
|
||||
|
||||
@@ -920,6 +940,8 @@ The following variables are available to change the highlighting colors in fish:
|
||||
|
||||
- `fish_color_host`, the color used to print the current host system in some of fish default prompts
|
||||
|
||||
- `fish_color_cancel`, the color for the '^C' indicator on a canceled command
|
||||
|
||||
Additionally, the following variables are available to change the highlighting in the completion pager:
|
||||
|
||||
- `fish_pager_color_prefix`, the color of the prefix string, i.e. the string that is to be completed
|
||||
@@ -979,7 +1001,7 @@ Some bindings are shared between emacs- and vi-mode because they aren't text edi
|
||||
|
||||
- @key{Alt,←,Left} and @key{Alt,→,Right} move the cursor one word left or right, or moves forward/backward in the directory history if the command line is empty. If the cursor is already at the end of the line, and an autosuggestion is available, @key{Alt,→,Right} (or @key{Alt,F}) accepts the first word in the suggestion.
|
||||
|
||||
- @cursor_key{↑,Up} and @cursor_key{↓,Down} search the command history for the previous/next command containing the string that was specified on the commandline before the search was started. If the commandline was empty when the search started, all commands match. See the <a href='#history'>history</a> section for more information on history searching.
|
||||
- @cursor_key{↑,Up} and @cursor_key{↓,Down} (or @key{Control,P} and @key{Control,N} for emacs aficionados) search the command history for the previous/next command containing the string that was specified on the commandline before the search was started. If the commandline was empty when the search started, all commands match. See the <a href='#history'>history</a> section for more information on history searching.
|
||||
|
||||
- @key{Alt,↑,Up} and @key{Alt,↓,Down} search the command history for the previous/next token containing the token under the cursor before the search was started. If the commandline was not on a token when the search started, all tokens match. See the <a href='#history'>history</a> section for more information on history searching.
|
||||
|
||||
@@ -1076,7 +1098,7 @@ Command mode is also known as normal mode.
|
||||
|
||||
- @key{p} pastes text from the <a href="#killring">killring</a>.
|
||||
|
||||
- @key{u} undoes the most recent action.
|
||||
- @key{u} search history backwards.
|
||||
|
||||
- @key{[} and @key{]} search the command history for the previous/next token containing the token under the cursor before the search was started. See the <a href='#history'>history</a> section for more information on history searching.
|
||||
|
||||
@@ -1102,6 +1124,8 @@ Command mode is also known as normal mode.
|
||||
|
||||
`fish` uses an Emacs style kill ring for copy and paste functionality. Use @key{Control,K} to cut from the current cursor position to the end of the line. The string that is cut (a.k.a. killed) is inserted into a linked list of kills, called the kill ring. To paste the latest value from the kill ring use @key{Control,Y}. After pasting, use @key{Alt,Y} to rotate to the previous kill.
|
||||
|
||||
Copy and paste from outside are also supported, both via the @key{Control,X} / @key{Control,V} bindings and via the terminal's paste function, for which fish enables "Bracketed Paste Mode". When pasting inside single quotes, pasted single quotes and backslashes are automatically escaped so that the result can be used as a single token simply by closing the quote after.
|
||||
|
||||
\subsection history-search Searchable history
|
||||
|
||||
After a command has been entered, it is inserted at the end of a history list. Any duplicate history items are automatically removed. By pressing the up and down keys, the user can search forwards and backwards in the history. If the current command line is not empty when starting a history search, only the commands containing the string entered into the command line are shown.
|
||||
@@ -1112,7 +1136,10 @@ History searches can be aborted by pressing the escape key.
|
||||
|
||||
Prefixing the commandline with a space will prevent the entire line from being stored in the history.
|
||||
|
||||
The history is stored in the file `~/.local/share/fish/fish_history` (or `$XDG_DATA_HOME/fish/fish_history` if that variable is set).
|
||||
The command history is stored in the file `~/.local/share/fish/fish_history` (or
|
||||
`$XDG_DATA_HOME/fish/fish_history` if that variable is set) by default. However, you can set the
|
||||
`fish_history` environment variable to change the name of the history session (resulting in a
|
||||
`<session>_history` file); both before starting the shell and while the shell is running.
|
||||
|
||||
Examples:
|
||||
|
||||
@@ -1160,6 +1187,7 @@ Configuration files are evaluated in the following order:
|
||||
- `/usr/share/fish/vendor_conf.d` (set at compile time; by default, `$__fish_datadir/conf.d`)
|
||||
|
||||
If there are multiple files with the same name in these directories, only the first will be executed.
|
||||
They are executed in order of their filename, sorted (like globs) in a natural order (i.e. "01" sorts before "2").
|
||||
|
||||
- User initialization, usually in `~/.config/fish/config.fish` (controlled by the `XDG_CONFIG_HOME` environment variable).
|
||||
|
||||
@@ -1167,6 +1195,8 @@ These paths are controlled by parameters set at build, install, or run time, and
|
||||
|
||||
This wide search may be confusing. If you are unsure where to put your own customisations, use `~/.config/fish/config.fish`.
|
||||
|
||||
Note that ~/.config/fish/config.fish is sourced _after_ the snippets. This is so users can copy snippets and override some of their behavior.
|
||||
|
||||
These files are all executed on the startup of every shell. If you want to run a command only on starting an interactive shell, use the exit status of the command `status --is-interactive` to determine if the shell is interactive. If you want to run a command only when using a login shell, use `status --is-login` instead. This will speed up the starting of non-interactive or non-login shells.
|
||||
|
||||
If you are developing another program, you may wish to install configuration which is run for all users of the fish shell on a system. This is discouraged; if not carefully written, they may have side-effects or slow the startup of the shell. Additionally, users of other shells will not benefit from the Fish-specific configuration. However, if they are absolutely required, you may install them to the "vendor" configuration directory. As this path may vary from system to system, the `pkgconfig` framework should be used to discover this path with the output of `pkg-config --variable confdir fish`.
|
||||
@@ -1267,9 +1297,11 @@ For more information on how to define new event handlers, see the documentation
|
||||
|
||||
\subsection debugging Debugging fish scripts
|
||||
|
||||
Fish includes a built in debugger. The debugger allows you to stop execution of a script at an arbitrary point and launch a prompt. This prompt can then be used to check or change the value of any variables or perform any shellscript command. To resume normal execution of the script, simply exit the prompt.
|
||||
Fish includes a built in debugging facility. The debugger allows you to stop execution of a script at an arbitrary point. When this happens you are presented with an interactive prompt. At this prompt you can execute any fish command (there are no debug commands as such). For example, you can check or change the value of any variables using `printf` and `set`. As another example, you can run `status print-stack-trace` to see how this breakpoint was reached. To resume normal execution of the script, simply type `exit` or [ctrl-D].
|
||||
|
||||
To start the debugger, simply call the builtin command `breakpoint`. The default action of the TRAP signal is to call this builtin, so a running script can be debugged by sending it the TRAP signal. Once in the debugger, it is easy to insert new breakpoints by using the funced function to edit the definition of a function.
|
||||
To start a debug session simply run the builtin command `breakpoint` at the point in a function or script where you wish to gain control. Also, the default action of the TRAP signal is to call this builtin. So a running script can be debugged by sending it the TRAP signal with the `kill` command. Once in the debugger, it is easy to insert new breakpoints by using the funced function to edit the definition of a function.
|
||||
|
||||
Note: At the moment the debug prompt is identical to your normal fish prompt. This can make it hard to recognize that you've entered a debug session. <a hread="https://github.com/fish-shell/fish-shell/issues/1310">Issue 1310</a> is open to improve this.
|
||||
|
||||
|
||||
\section issues Common issues with fish
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
\endhtmlonly
|
||||
|
||||
`fish` Copyright © 2005-2009 Axel Liljencrantz. `fish` is released under the GNU General Public License, version 2.
|
||||
`fish` Copyright © 2005-2009 Axel Liljencrantz. `fish` is released under the GNU General Public License, version 2.
|
||||
|
||||
`fish` includes other code licensed under the GNU General Public License, version 2, including GNU `printf`:
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
\subsection math-synopsis Synopsis
|
||||
\fish{synopsis}
|
||||
math [-sN] EXPRESSION
|
||||
math [-sN | --scale=N] [--] EXPRESSION
|
||||
\endfish
|
||||
|
||||
\subsection math-description Description
|
||||
@@ -13,7 +13,7 @@ For a description of the syntax supported by math, see the manual for the bc pro
|
||||
|
||||
The following options are available:
|
||||
|
||||
- `-sN` Sets the scale of the result. `N` must be an integer and defaults to zero. This simply sets bc's `scale` variable to the provided value. Note that you cannot put a space between `-s` and `N`.
|
||||
- `-sN` or `--scale=N` sets the scale of the result. `N` must be an integer and defaults to zero. This simply sets bc's `scale` variable to the provided value.
|
||||
|
||||
\subsection return-values Return Values
|
||||
|
||||
@@ -33,4 +33,6 @@ If invalid options or no expression is provided the return `status` is two. If t
|
||||
|
||||
\subsection math-cautions Cautions
|
||||
|
||||
You should always place a `--` flag separator before the expression. 99.99% of the time you'll get the desired result without the separator. Something like `math -10.0 / 2` will fail because the negative floating point value gets treated as an invalid flag. But `math -10 / 2` will work because negative integers are special-cased.
|
||||
|
||||
Note that the modulo operator (`x % y`) is not well defined for floating point arithmetic. The `bc` command produces a nonsensical result rather than emit an error and fail in that case. It doesn't matter if the arguments are integers; e.g., `10 % 4`. You'll still get an incorrect result. Do not use the `-sN` flag with N greater than zero if you want sensible answers when using the modulo operator.
|
||||
|
||||
@@ -13,6 +13,8 @@ If the `-l` or `--list` flag is specified, the current directory history is also
|
||||
|
||||
Note that the `cd` command limits directory history to the 25 most recently visited directories. The history is stored in the `$dirprev` and `$dirnext` variables which this command manipulates.
|
||||
|
||||
You may be interested in the <a href="commands.html#cdh">`cdh`</a> command which provides a more intuitive way to navigate to recently visited directories.
|
||||
|
||||
\subsection nextd-example Example
|
||||
|
||||
\fish
|
||||
|
||||
@@ -12,7 +12,7 @@ COMMAND1; or COMMAND2
|
||||
`or` statements may be used as part of the condition in an <a href="#if">`and`</a> or <a href="#while">`while`</a> block. See the documentation
|
||||
for <a href="#if">`if`</a> and <a href="#while">`while`</a> for examples.
|
||||
|
||||
`or` does not change the current exit status. The exit status of the last foreground command to exit can always be accessed using the <a href="index.html#variables-status">$status</a> variable.
|
||||
`or` does not change the current exit status itself, but the command it runs most likely will. The exit status of the last foreground command to exit can always be accessed using the <a href="index.html#variables-status">$status</a> variable.
|
||||
|
||||
\subsection or-example Example
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ popd
|
||||
|
||||
`popd` removes the top directory from the directory stack and changes the working directory to the new top directory. Use <a href="#pushd">`pushd`</a> to add directories to the stack.
|
||||
|
||||
You may be interested in the <a href="commands.html#cdh">`cdh`</a> command which provides a more intuitive way to navigate to recently visited directories.
|
||||
|
||||
\subsection popd-example Example
|
||||
|
||||
|
||||
@@ -13,6 +13,8 @@ If the `-l` or `--list` flag is specified, the current history is also displayed
|
||||
|
||||
Note that the `cd` command limits directory history to the 25 most recently visited directories. The history is stored in the `$dirprev` and `$dirnext` variables which this command manipulates.
|
||||
|
||||
You may be interested in the <a href="commands.html#cdh">`cdh`</a> command which provides a more intuitive way to navigate to recently visited directories.
|
||||
|
||||
\subsection prevd-example Example
|
||||
|
||||
\fish
|
||||
|
||||
@@ -2,17 +2,20 @@
|
||||
|
||||
\subsection psub-synopsis Synopsis
|
||||
\fish{synopsis}
|
||||
COMMAND1 ( COMMAND2 | psub [-f] [-s SUFFIX])
|
||||
COMMAND1 ( COMMAND2 | psub [-F | --fifo] [-f | --file] [-s SUFFIX])
|
||||
\endfish
|
||||
|
||||
\subsection psub-description Description
|
||||
|
||||
Posix shells feature a syntax that is a mix between command substitution and piping, called process substitution. It is used to send the output of a command into the calling command, much like command substitution, but with the difference that the output is not sent through commandline arguments but through a named pipe, with the filename of the named pipe sent as an argument to the calling program. `psub` combined with a regular command substitution provides the same functionality.
|
||||
Some shells (e.g., ksh, bash) feature a syntax that is a mix between command substitution and piping, called process substitution. It is used to send the output of a command into the calling command, much like command substitution, but with the difference that the output is not sent through commandline arguments but through a named pipe, with the filename of the named pipe sent as an argument to the calling program. `psub` combined with a regular command substitution provides the same functionality.
|
||||
|
||||
If the `-f` or `--file` switch is given to `psub`, `psub` will use a regular file instead of a named pipe to communicate with the calling process. This will cause `psub` to be significantly slower when large amounts of data are involved, but has the advantage that the reading process can seek in the stream.
|
||||
The following options are available:
|
||||
|
||||
If the `-s` or `---suffix` switch is given, `psub` will append SUFFIX to the filename.
|
||||
- `-f` or `--file` will cause psub to use a regular file instead of a named pipe to communicate with the calling process. This will cause `psub` to be significantly slower when large amounts of data are involved, but has the advantage that the reading process can seek in the stream. This is the default.
|
||||
|
||||
- `-F` or `--fifo` will cause psub to use a named pipe rather than a file. You should only use this if the command produces no more than 8 KiB of output. The limit on the amount of data a FIFO can buffer varies with the OS but is typically 8 KiB, 16 KiB or 64 KiB. If you use this option and the command on the left of the psub pipeline produces more output a deadlock is likely to occur.
|
||||
|
||||
- `-s` or `--suffix` will append SUFFIX to the filename.
|
||||
|
||||
\subsection psub-example Example
|
||||
|
||||
@@ -20,6 +23,6 @@ If the `-s` or `---suffix` switch is given, `psub` will append SUFFIX to the fil
|
||||
diff (sort a.txt | psub) (sort b.txt | psub)
|
||||
# shows the difference between the sorted versions of files `a.txt` and `b.txt`.
|
||||
|
||||
source-highlight -f esc (cpp main.c | psub -s .c)
|
||||
source-highlight -f esc (cpp main.c | psub -f -s .c)
|
||||
# highlights `main.c` after preprocessing as a C source.
|
||||
\endfish
|
||||
|
||||
@@ -17,6 +17,8 @@ Without arguments, it exchanges the top two directories in the stack.
|
||||
|
||||
See also `dirs` and `dirs -c`.
|
||||
|
||||
You may be interested in the <a href="commands.html#cdh">`cdh`</a> command which provides a more intuitive way to navigate to recently visited directories.
|
||||
|
||||
\subsection pushd-example Example
|
||||
|
||||
\fish
|
||||
|
||||
@@ -7,7 +7,7 @@ read [OPTIONS] [VARIABLES...]
|
||||
|
||||
\subsection read-description Description
|
||||
|
||||
`read` reads one line from standard input and stores the result in one or more shell variables.
|
||||
`read` reads from standard input and stores the result in one or more shell variables. By default, one line (terminated by a newline) is read into each variable. Alternatively, a null character or a maximum number of characters can be used to terminate the input. Unlike other shells, there is no default variable (such as `REPLY`) for storing the result.
|
||||
|
||||
The following options are available:
|
||||
|
||||
@@ -15,14 +15,17 @@ The following options are available:
|
||||
|
||||
- `-g` or `--global` makes the variables global.
|
||||
|
||||
- `-i` or `--silent` makes the characters typed obfuscated. This is useful for reading things like passwords or other sensitive information. Note that in bash the short flag is `-s`. We can't use that due to the existing use as an alias for `--shell`.
|
||||
|
||||
- `-l` or `--local` makes the variables local.
|
||||
|
||||
- `-m NAME` or `--mode-name=NAME` specifies that the name NAME should be used to save/load the history file. If NAME is fish, the regular fish history will be available.
|
||||
|
||||
- `-n NCHARS` or `--nchars=NCHARS` causes `read` to return after reading NCHARS characters rather than waiting for a complete line of input.
|
||||
- `-n NCHARS` or `--nchars=NCHARS` makes `read` return after reading NCHARS characters or the end of
|
||||
the line, whichever comes first.
|
||||
|
||||
- `-p PROMPT_CMD` or `--prompt=PROMPT_CMD` uses the output of the shell command `PROMPT_CMD` as the prompt for the interactive mode. The default prompt command is <code>set_color green; echo read; set_color normal; echo "> "</code>.
|
||||
|
||||
- `-P PROMPT_STR` or `--prompt-str=PROMPT_STR` uses the string as the prompt for the interactive mode. It is equivalent to <code>echo PROMPT_STR</code> and is provided solely to avoid the need to frame the prompt as a command. All special characters in the string are automatically escaped before being passed to the <code>echo</code> command.
|
||||
|
||||
- `-R RIGHT_PROMPT_CMD` or `--right-prompt=RIGHT_PROMPT_CMD` uses the output of the shell command `RIGHT_PROMPT_CMD` as the right prompt for the interactive mode. There is no default right prompt command.
|
||||
|
||||
- `-s` or `--shell` enables syntax highlighting, tab completions and command termination suitable for entering shellscript code in the interactive mode.
|
||||
@@ -33,9 +36,10 @@ The following options are available:
|
||||
|
||||
- `-x` or `--export` exports the variables to child processes.
|
||||
|
||||
- `-a` or `--array` stores the result as an array.
|
||||
- `-a` or `--array` stores the result as an array in a single variable.
|
||||
|
||||
- `-z` or `--null` reads up to NUL instead of newline. Disables interactive mode.
|
||||
- `-z` or `--null` marks the end of the line with the NUL character, instead of newline. This also
|
||||
disables interactive mode.
|
||||
|
||||
`read` reads a single line of input from stdin, breaks it into tokens based on the `IFS` shell variable, and then assigns one token to each variable specified in `VARIABLES`. If there are more tokens than variables, the complete remainder is assigned to the last variable. As a special case, if `IFS` is set to the empty string, each character of the input is considered a separate token.
|
||||
|
||||
@@ -43,7 +47,14 @@ If `-a` or `--array` is provided, only one variable name is allowed and the toke
|
||||
|
||||
See the documentation for `set` for more details on the scoping rules for variables.
|
||||
|
||||
When read reaches the end-of-file (EOF) instead of the separator, it returns 1. If not, it returns 0.
|
||||
When `read` reaches the end-of-file (EOF) instead of the terminator, the exit status is set to 1.
|
||||
Otherwise, it is set to 0.
|
||||
|
||||
In order to protect the shell from consuming too many system resources, `read` will only consume a maximum of 10 MiB (1048576 bytes); if the terminator is not reached before this limit then VARIABLE is set to empty and the exit status is set to 122. This limit can be altered with the `FISH_READ_BYTE_LIMIT` variable. If set to 0 (zero), the limit is removed.
|
||||
|
||||
\subsection read-history Using another read history file
|
||||
|
||||
The `read` command supported the `-m` and `--mode-name` flags in fish versions prior to 2.7.0 to specify an alternative read history file. Those flags are now deprecated and ignored. Instead, set the `fish_history` variable to specify a history session ID. That will affect both the `read` history file and the fish command history file. You can set it to an empty string to specify that no history should be read or written. This is useful for presentations where you do not want possibly private or sensitive history to be exposed to the audience but do want history relevant to the presentation to be available.
|
||||
|
||||
\subsection read-example Example
|
||||
|
||||
|
||||
@@ -8,13 +8,14 @@ set [OPTIONS] VARIABLE_NAME[INDICES]... VALUES...
|
||||
set ( -q | --query ) [SCOPE_OPTIONS] VARIABLE_NAMES...
|
||||
set ( -e | --erase ) [SCOPE_OPTIONS] VARIABLE_NAME
|
||||
set ( -e | --erase ) [SCOPE_OPTIONS] VARIABLE_NAME[INDICES]...
|
||||
set ( -S | --show ) [SCOPE_OPTIONS] [VARIABLE_NAME]...
|
||||
\endfish
|
||||
|
||||
\subsection set-description Description
|
||||
|
||||
`set` manipulates <a href="index.html#variables">shell variables</a>.
|
||||
|
||||
If set is called with no arguments, the names and values of all shell variables are printed. If some of the scope or export flags have been given, only the variables matching the specified scope are printed.
|
||||
If set is called with no arguments, the names and values of all shell variables are printed in sorted order. If some of the scope or export flags have been given, only the variables matching the specified scope are printed.
|
||||
|
||||
With both variable names and values provided, `set` assigns the variable `VARIABLE_NAME` the values `VALUES...`.
|
||||
|
||||
@@ -37,14 +38,16 @@ The following options are available:
|
||||
|
||||
- `-q` or `--query` test if the specified variable names are defined. Does not output anything, but the builtins exit status is the number of variables specified that were not defined.
|
||||
|
||||
- `-n` or `--names` List only the names of all defined variables, not their value
|
||||
- `-n` or `--names` List only the names of all defined variables, not their value. The names are guaranteed to be sorted.
|
||||
|
||||
- `-S` or `--show` Shows information about the given variables. If no variable names are given then all variables are shown in sorted order. No other flags can be used with this option. The information shown includes whether or not it is set in each of the local, global, and universal scopes. If it is set in one of those scopes whether or not it is exported is reported. The individual elements are also shown along with the length of each element.
|
||||
|
||||
- `-L` or `--long` do not abbreviate long values when printing set variables
|
||||
|
||||
|
||||
If a variable is set to more than one value, the variable will be an array with the specified elements. If a variable is set to zero elements, it will become an array with zero elements.
|
||||
|
||||
If the variable name is one or more array elements, such as `PATH[1 3 7]`, only those array elements specified will be changed. When array indices are specified to `set`, multiple arguments may be used to specify additional indexes, e.g. `set PATH[1] PATH[4] /bin /sbin`. If you specify a negative index when expanding or assigning to an array variable, the index will be calculated from the end of the array. For example, the index -1 means the last index of an array.
|
||||
If the variable name is one or more array elements, such as `PATH[1 3 7]`, only those array elements specified will be changed. If you specify a negative index when expanding or assigning to an array variable, the index will be calculated from the end of the array. For example, the index -1 means the last index of an array.
|
||||
|
||||
The scoping rules when creating or updating a variable are:
|
||||
|
||||
@@ -70,7 +73,7 @@ In erase mode, if variable indices are specified, only the specified slices of t
|
||||
|
||||
`set` requires all options to come before any other arguments. For example, `set flags -l` will have the effect of setting the value of the variable `flags` to '-l', not making the variable local.
|
||||
|
||||
In assignment mode, `set` exits with a non-zero exit status if variable assignments could not be successfully performed. If the variable assignments were performed, the exit status is unchanged. This allows simultaneous capture of the output and exit status of a subcommand, e.g. `if set output (command)`. In query mode, the exit status is the number of variables that were not found. In erase mode, `set` exits with a zero exit status in case of success, with a non-zero exit status if the commandline was invalid, if the variable was write-protected or if the variable did not exist.
|
||||
In assignment mode, `set` does not modify the exit status. This allows simultaneous capture of the output and exit status of a subcommand, e.g. `if set output (command)`. In query mode, the exit status is the number of variables that were not found. In erase mode, `set` exits with a zero exit status in case of success, with a non-zero exit status if the commandline was invalid, if the variable was write-protected or if the variable did not exist.
|
||||
|
||||
|
||||
\subsection set-example Example
|
||||
@@ -87,8 +90,8 @@ set -e smurf
|
||||
set PATH[4] ~/bin
|
||||
# Changes the fourth element of the $PATH array to ~/bin
|
||||
|
||||
if set python_path (which python)
|
||||
if set python_path (type -p python)
|
||||
echo "Python is at $python_path"
|
||||
end
|
||||
# Outputs the path to Python if `which` returns true.
|
||||
# Outputs the path to Python if `type -p` returns true.
|
||||
\endfish
|
||||
|
||||
@@ -6,13 +6,15 @@ status
|
||||
status is-login
|
||||
status is-interactive
|
||||
status is-block
|
||||
status is-breakpoint
|
||||
status is-command-substitution
|
||||
status is-no-job-control
|
||||
status is-full-job-control
|
||||
status is-interactive-job-control
|
||||
status current-filename
|
||||
status current-line-number
|
||||
status print-stack-trace
|
||||
status filename
|
||||
status function
|
||||
status line-number
|
||||
status stack-trace
|
||||
status job-control CONTROL-TYPE
|
||||
\endfish
|
||||
|
||||
@@ -26,6 +28,8 @@ The following operations (sub-commands) are available:
|
||||
|
||||
- `is-block` returns 0 if fish is currently executing a block of code. Also `-b` or `--is-block`.
|
||||
|
||||
- `is-breakpoint` returns 0 if fish is currently showing a prompt in the context of a `breakpoint` command. See also the `fish_breakpoint_prompt` function.
|
||||
|
||||
- `is-interactive` returns 0 if fish is interactive - that is, connected to a keyboard. Also `-i` or `--is-interactive`.
|
||||
|
||||
- `is-login` returns 0 if fish is a login shell - that is, if fish should perform login tasks such as setting up the PATH. Also `-l` or `--is-login`.
|
||||
@@ -36,13 +40,16 @@ The following operations (sub-commands) are available:
|
||||
|
||||
- `is-no-job-control` returns 0 if no job control is enabled. Also `--is-no-job-control` (no short flag).
|
||||
|
||||
- `current-filename` prints the filename of the currently running script. Also `-f` or `--current-filename`.
|
||||
- `filename` prints the filename of the currently running script. Also `current-filename`, `-f` or `--current-filename`.
|
||||
|
||||
- `current-line-number` prints the line number of the currently running script. Also `-n` or `--current-line-number`.
|
||||
- `function` prints the name of the currently called function if able, when missing displays "Not a
|
||||
function" (or equivalent translated string). Also `current-function`, `-u` or `--current-function`.
|
||||
|
||||
- `line-number` prints the line number of the currently running script. Also `current-line-number`, `-n` or `--current-line-number`.
|
||||
|
||||
- `job-control CONTROL-TYPE` sets the job control type, which can be `none`, `full`, or `interactive`. Also `-j CONTROL-TYPE` or `--job-control=CONTROL-TYPE`.
|
||||
|
||||
- `print-stack-trace` prints a stack trace of all function calls on the call stack. Also `-t` or `--print-stack-trace`.
|
||||
- `stack-trace` prints a stack trace of all function calls on the call stack. Also `print-stack-trace`, `-t` or `--print-stack-trace`.
|
||||
|
||||
\subsection status-notes Notes
|
||||
|
||||
|
||||
@@ -2,19 +2,24 @@
|
||||
|
||||
\subsection string-synopsis Synopsis
|
||||
\fish{synopsis}
|
||||
string escape [(-n | --no-quoted)] [--style=xxx] [STRING...]
|
||||
string join [(-q | --quiet)] SEP [STRING...]
|
||||
string length [(-q | --quiet)] [STRING...]
|
||||
string sub [(-s | --start) START] [(-l | --length) LENGTH] [(-q | --quiet)]
|
||||
[STRING...]
|
||||
string lower [(-q | --quiet)] [STRING...]
|
||||
string match [(-a | --all)] [((-e | --entire)] [(-i | --ignore-case)] [(-r | --regex)]
|
||||
[(-n | --index)] [(-q | --quiet)] [(-v | --invert)] PATTERN [STRING...]
|
||||
string repeat [(-n | --count) COUNT] [(-m | --max) MAX] [(-N | --no-newline)]
|
||||
[(-q | --quiet)] [STRING...]
|
||||
string replace [(-a | --all)] [(-f | --filter)] [(-i | --ignore-case)] [(-r | --regex)]
|
||||
[(-q | --quiet)] PATTERN REPLACEMENT [STRING...]
|
||||
string split [(-m | --max) MAX] [(-r | --right)] [(-q | --quiet)] SEP
|
||||
[STRING...]
|
||||
string join [(-q | --quiet)] SEP [STRING...]
|
||||
string sub [(-s | --start) START] [(-l | --length) LENGTH] [(-q | --quiet)]
|
||||
[STRING...]
|
||||
string trim [(-l | --left)] [(-r | --right)] [(-c | --chars CHARS)]
|
||||
[(-q | --quiet)] [STRING...]
|
||||
string escape [(-n | --no-quoted)] [STRING...]
|
||||
string match [(-a | --all)] [(-i | --ignore-case)] [(-r | --regex)]
|
||||
[(-n | --index)] [(-q | --quiet)] [(-v | --invert)] PATTERN [STRING...]
|
||||
string replace [(-a | --all)] [(-i | --ignore-case)] [(-r | --regex)]
|
||||
[(-q | --quiet)] PATTERN REPLACEMENT [STRING...]
|
||||
string unescape [--style=xxx] [STRING...]
|
||||
string upper [(-q | --quiet)] [STRING...]
|
||||
\endfish
|
||||
|
||||
|
||||
@@ -28,25 +33,75 @@ Arguments beginning with `-` are normally interpreted as switches; `--` causes t
|
||||
|
||||
Most subcommands accept a `-q` or `--quiet` switch, which suppresses the usual output but exits with the documented status.
|
||||
|
||||
In addition to the exit codes documented below, all the string subcommands exit with a value of 2 to indicate that an error occurred.
|
||||
The following subcommands are available.
|
||||
|
||||
The following subcommands are available:
|
||||
\subsection string-escape "escape" subcommand
|
||||
|
||||
- `length` reports the length of each string argument in characters. Exit status: 0 if at least one non-empty STRING was given, or 1 otherwise.
|
||||
`string escape` escapes each STRING in one of three ways. The first is `--style=script`. This is the default. It alters the string such that it can be passed back to `eval` to produce the original argument again. By default, all special characters are escaped, and quotes are used to simplify the output when possible. If `-n` or `--no-quoted` is given, the simplifying quoted format is not used. Exit status: 0 if at least one string was escaped, or 1 otherwise.
|
||||
|
||||
- `sub` prints a substring of each string argument. The start of the substring can be specified with `-s` or `--start` followed by a 1-based index value. Positive index values are relative to the start of the string and negative index values are relative to the end of the string. The default start value is 1. The length of the substring can be specified with `-l` or `--length`. If the length is not specified, the substring continues to the end of each STRING. Exit status: 0 if at least one substring operation was performed, 1 otherwise.
|
||||
The second is `--style=var` which ensures the string can be used as a variable name by hex encoding any non-alphanumeric characters. The string is first converted to UTF-8 before being encoded.
|
||||
|
||||
- `split` splits each STRING on the separator SEP, which can be an empty string. If `-m` or `--max` is specified, at most MAX splits are done on each STRING. If `-r` or `--right` is given, splitting is performed right-to-left. This is useful in combination with `-m` or `--max`. Exit status: 0 if at least one split was performed, or 1 otherwise.
|
||||
The third is `--style=url` which ensures the string can be used as a URL by hex encoding any character which is not legal in a URL. The string is first converted to UTF-8 before being encoded.
|
||||
|
||||
- `join` joins its STRING arguments into a single string separated by SEP, which can be an empty string. Exit status: 0 if at least one join was performed, or 1 otherwise.
|
||||
`string unescape` performs the inverse of the `string escape` command. If the string to be unescaped is not properly formatted it is ignored. For example, doing `string unescape --style=var (string escape --style=var $str)` will return the original string.
|
||||
|
||||
- `trim` removes leading and trailing whitespace from each STRING. If `-l` or `--left` is given, only leading whitespace is removed. If `-r` or `--right` is given, only trailing whitespace is trimmed. The `-c` or `--chars` switch causes the characters in CHARS to be removed instead of whitespace. Exit status: 0 if at least one character was trimmed, or 1 otherwise.
|
||||
\subsection string-join "join" subcommand
|
||||
|
||||
- `escape` escapes each STRING such that it can be passed back to `eval` to produce the original argument again. By default, all special characters are escaped, and quotes are used to simplify the output when possible. If `-n` or `--no-quoted` is given, the simplifying quoted format is not used. Exit status: 0 if at least one string was escaped, or 1 otherwise.
|
||||
`string join` joins its STRING arguments into a single string separated by SEP, which can be an empty string. Exit status: 0 if at least one join was performed, or 1 otherwise.
|
||||
|
||||
- `match` tests each STRING against PATTERN and prints matching substrings. Only the first match for each STRING is reported unless `-a` or `--all` is given, in which case all matches are reported. Matching can be made case-insensitive with `-i` or `--ignore-case`. If `-n` or `--index` is given, each match is reported as a 1-based start position and a length. By default, PATTERN is interpreted as a glob pattern matched against each entire STRING argument. A glob pattern is only considered a valid match if it matches the entire STRING. If `-r` or `--regex` is given, PATTERN is interpreted as a Perl-compatible regular expression, which does not have to match the entire STRING. For a regular expression containing capturing groups, multiple items will be reported for each match, one for the entire match and one for each capturing group. If --invert or -v is used the selected lines will be only those which do not match the given glob pattern or regular expression. Exit status: 0 if at least one match was found, or 1 otherwise.
|
||||
\subsection string-length "length" subcommand
|
||||
|
||||
- `replace` is similar to `match` but replaces non-overlapping matching substrings with a replacement string and prints the result. By default, PATTERN is treated as a literal substring to be matched. If `-r` or `--regex` is given, PATTERN is interpreted as a Perl-compatible regular expression, and REPLACEMENT can contain C-style escape sequences like `\t` as well as references to capturing groups by number or name as `$n` or `${n}`. Exit status: 0 if at least one replacement was performed, or 1 otherwise.
|
||||
`string length` reports the length of each string argument in characters. Exit status: 0 if at least one non-empty STRING was given, or 1 otherwise.
|
||||
|
||||
\subsection string-lower "lower" subcommand
|
||||
|
||||
`string lower` converts each string argument to lowercase. Exit status: 0 if at least one string was converted to lowercase, else 1. This means that in conjunction with the `-q` flag you can readily test whether a string is already lowercase.
|
||||
|
||||
\subsection string-match "match" subcommand
|
||||
|
||||
`string match` tests each STRING against PATTERN and prints matching substrings. Only the first match for each STRING is reported unless `-a` or `--all` is given, in which case all matches are reported.
|
||||
|
||||
If you specify the `-e` or `--entire` then each matching string is printed including any prefix or suffix not matched by the pattern (equivalent to `grep` without the `-o` flag). You can, obviously, achieve the same result by prepending and appending `*` or `.*` depending on whether or not you have specified the `--regex` flag. The `--entire` flag is simply a way to avoid having to complicate the pattern in that fashion and make the intent of the `string match` clearer. Without `--entire` and `--regex`, a PATTERN will need to match the entire STRING before it will be reported.
|
||||
|
||||
Matching can be made case-insensitive with `--ignore-case` or `-i`.
|
||||
|
||||
If `--index` or `-n` is given, each match is reported as a 1-based start position and a length. By default, PATTERN is interpreted as a glob pattern matched against each entire STRING argument. A glob pattern is only considered a valid match if it matches the entire STRING.
|
||||
|
||||
If `--regex` or `-r` is given, PATTERN is interpreted as a Perl-compatible regular expression, which does not have to match the entire STRING. For a regular expression containing capturing groups, multiple items will be reported for each match, one for the entire match and one for each capturing group. With this, only the matching part of the STRING will be reported, unless `--entire` is given.
|
||||
|
||||
If `--invert` or `-v` is used the selected lines will be only those which do not match the given glob pattern or regular expression.
|
||||
|
||||
Exit status: 0 if at least one match was found, or 1 otherwise.
|
||||
|
||||
\subsection string-repeat "repeat" subcommand
|
||||
|
||||
`string repeat` repeats the STRING `-n` or `--count` times. The `-m` or `--max` option will limit the number of outputed char (excluding the newline). This option can be used by itself or in conjuction with `--count`. If both `--count` and `--max` are present, max char will be outputed unless the final repeated string size is less than max, in that case, the string will repeat until count has been reached. Both `--count` and `--max` will accept a number greater than or equal to zero, in the case of zero, nothing will be outputed. If `-N` or `--no-newline` is given, the output won't contain a newline character at the end. Exit status: 0 if yielded string is not empty, 1 otherwise.
|
||||
|
||||
\subsection string-replace "replace" subcommand
|
||||
|
||||
`string replace` is similar to `string match` but replaces non-overlapping matching substrings with a replacement string and prints the result. By default, PATTERN is treated as a literal substring to be matched.
|
||||
|
||||
If `-r` or `--regex` is given, PATTERN is interpreted as a Perl-compatible regular expression, and REPLACEMENT can contain C-style escape sequences like `\t` as well as references to capturing groups by number or name as `$n` or `${n}`.
|
||||
|
||||
If you specify the `-f` or `--filter` flag then each input string is printed only if a replacement was done. This is useful where you would otherwise use this idiom: `a_cmd | string match pattern | string replace pattern new_pattern`. You can instead just write `a_cmd | string replace --filter pattern new_pattern`.
|
||||
|
||||
Exit status: 0 if at least one replacement was performed, or 1 otherwise.
|
||||
|
||||
\subsection string-split "split" subcommand
|
||||
|
||||
`string split` splits each STRING on the separator SEP, which can be an empty string. If `-m` or `--max` is specified, at most MAX splits are done on each STRING. If `-r` or `--right` is given, splitting is performed right-to-left. This is useful in combination with `-m` or `--max`. Exit status: 0 if at least one split was performed, or 1 otherwise.
|
||||
|
||||
\subsection string-sub "sub" subcommand
|
||||
|
||||
`string sub` prints a substring of each string argument. The start of the substring can be specified with `-s` or `--start` followed by a 1-based index value. Positive index values are relative to the start of the string and negative index values are relative to the end of the string. The default start value is 1. The length of the substring can be specified with `-l` or `--length`. If the length is not specified, the substring continues to the end of each STRING. Exit status: 0 if at least one substring operation was performed, 1 otherwise.
|
||||
|
||||
\subsection string-trim "trim" subcommand
|
||||
|
||||
`string trim` removes leading and trailing whitespace from each STRING. If `-l` or `--left` is given, only leading whitespace is removed. If `-r` or `--right` is given, only trailing whitespace is trimmed. The `-c` or `--chars` switch causes the characters in CHARS to be removed instead of whitespace. Exit status: 0 if at least one character was trimmed, or 1 otherwise.
|
||||
|
||||
\subsection string-upper "upper" subcommand
|
||||
|
||||
`string upper` converts each string argument to uppercase. Exit status: 0 if at least one string was converted to uppercase, else 1. This means that in conjunction with the `-q` flag you can readily test whether a string is already uppercase.
|
||||
|
||||
\subsection regular-expressions Regular Expressions
|
||||
|
||||
@@ -111,6 +166,11 @@ In general, special characters are special by default, so `a+` matches one or mo
|
||||
<bs>cg</bs>
|
||||
\endfish
|
||||
|
||||
\fish{cli-dark}
|
||||
>_ string escape --style=var 'a1 b2'\\u6161
|
||||
<bs>a1_20b2__c_E6_85_A1</bs>
|
||||
\endfish
|
||||
|
||||
\subsection string-example-match-glob Match Glob Examples
|
||||
|
||||
\fish{cli-dark}
|
||||
@@ -124,7 +184,23 @@ In general, special characters are special by default, so `a+` matches one or mo
|
||||
<outp>Axxb</outp>
|
||||
|
||||
>_ echo 'ok?' | string match '*\\?'
|
||||
>_ <outp>ok?</outp>
|
||||
<outp>ok?</outp>
|
||||
|
||||
# Note that only the second STRING will match here.
|
||||
>_ string match 'foo' 'foo1' 'foo' 'foo2'
|
||||
<outp>foo</outp>
|
||||
|
||||
>_ string match -e 'foo' 'foo1' 'foo' 'foo2'
|
||||
<outp>foo1
|
||||
foo
|
||||
foo2
|
||||
</outp>
|
||||
|
||||
>_ string match 'foo?' 'foo1' 'foo' 'foo2'
|
||||
<outp>foo1
|
||||
foo
|
||||
foo2
|
||||
</outp>
|
||||
\endfish
|
||||
|
||||
\subsection string-example-match-regex Match Regex Examples
|
||||
@@ -190,3 +266,19 @@ In general, special characters are special by default, so `a+` matches one or mo
|
||||
<outp>put a</outp>
|
||||
<outp>here</outp>
|
||||
\endfish
|
||||
|
||||
\subsection string-example-repeat Repeat Examples
|
||||
|
||||
\fish{cli-dark}
|
||||
>_ string repeat -n 2 'foo '
|
||||
<outp>foo foo</outp>
|
||||
|
||||
>_ echo foo | string repeat -n 2
|
||||
<outp>foofoo</outp>
|
||||
|
||||
>_ string repeat -n 2 -m 5 'foo'
|
||||
<outp>foofo</outp>
|
||||
|
||||
>_ string repeat -m 5 'foo'
|
||||
<outp>foofo</outp>
|
||||
\endfish
|
||||
|
||||
@@ -14,6 +14,8 @@ The first form (`test`) is preferred. For compatibility with other shells, the s
|
||||
|
||||
This test is mostly POSIX-compatible.
|
||||
|
||||
When using a variable as an argument for a test operator you should almost always enclose it in double-quotes. There are only two situations it is safe to omit the quote marks. The first is when the argument is a literal string with no whitespace or other characters special to the shell (e.g., semicolon). For example, `test -b /my/file`. The second is using a variable that expands to exactly one element including if that element is the empty string (e.g., `set x ''`). If the variable is not set, set but with no value, or set to more than one value you must enclose it in double-quotes. For example, `test "$x" = "$y"`. Since it is always safe to enclose variables in double-quotes when used as `test` arguments that is the recommended practice.
|
||||
|
||||
\subsection test-files Operators for files and directories
|
||||
|
||||
- `-b FILE` returns true if `FILE` is a block device.
|
||||
@@ -30,6 +32,8 @@ This test is mostly POSIX-compatible.
|
||||
|
||||
- `-G FILE` returns true if `FILE` exists and has the same group ID as the current user.
|
||||
|
||||
- `-k FILE` returns true if `FILE` has the sticky bit set. If the OS does not support the concept it returns false. See https://en.wikipedia.org/wiki/Sticky_bit.
|
||||
|
||||
- `-L FILE` returns true if `FILE` is a symbolic link.
|
||||
|
||||
- `-O FILE` returns true if `FILE` exists and is owned by the current user.
|
||||
@@ -135,6 +139,22 @@ if test $status -eq 0
|
||||
end
|
||||
\endfish
|
||||
|
||||
The previous test can likewise be inverted:
|
||||
|
||||
\fish
|
||||
if test ! $status -eq 0
|
||||
echo "Previous command failed"
|
||||
end
|
||||
\endfish
|
||||
|
||||
which is logically equivalent to the following:
|
||||
|
||||
\fish
|
||||
if test $status -ne 0
|
||||
echo "Previous command failed"
|
||||
end
|
||||
\endfish
|
||||
|
||||
\subsection test-standards Standards
|
||||
|
||||
`test` implements a subset of the <a href="http://www.unix.com/man-page/POSIX/1/test/">IEEE Std 1003.1-2008 (POSIX.1) standard</a>. The following exceptions apply:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
\subsection trap-synopsis Synopsis
|
||||
\fish{synopsis}
|
||||
trap [OPTIONS] [[ARG] SIGSPEC ... ]
|
||||
trap [OPTIONS] [[ARG] REASON ... ]
|
||||
\endfish
|
||||
|
||||
\subsection trap-description Description
|
||||
@@ -13,25 +13,25 @@ The following parameters are available:
|
||||
|
||||
- `ARG` is the command to be executed on signal delivery.
|
||||
|
||||
- `SIGSPEC` is the name of the signal to trap.
|
||||
- `REASON` is the name of the event to trap. For example, a signal like `INT` or `SIGINT`, or the special symbol `EXIT`.
|
||||
|
||||
- `-l` or `--list-signals` prints a list of signal names.
|
||||
|
||||
- `-p` or `--print` prints all defined signal handlers.
|
||||
|
||||
If `ARG` and `SIGSPEC` are both specified, `ARG` is the command to be executed when the signal specified by `SIGSPEC` is delivered.
|
||||
If `ARG` and `REASON` are both specified, `ARG` is the command to be executed when the event specified by `REASON` occurs (e.g., the signal is delivered).
|
||||
|
||||
If `ARG` is absent (and there is a single SIGSPEC) or -, each specified signal is reset to its original disposition (the value it had upon entrance to the shell). If `ARG` is the null string the signal specified by each `SIGSPEC` is ignored by the shell and by the commands it invokes.
|
||||
If `ARG` is absent (and there is a single REASON) or -, each specified signal is reset to its original disposition (the value it had upon entrance to the shell). If `ARG` is the null string the signal specified by each `REASON` is ignored by the shell and by the commands it invokes.
|
||||
|
||||
If `ARG` is not present and `-p` has been supplied, then the trap commands associated with each `SIGSPEC` are displayed. If no arguments are supplied or if only `-p` is given, `trap` prints the list of commands associated with each signal.
|
||||
If `ARG` is not present and `-p` has been supplied, then the trap commands associated with each `REASON` are displayed. If no arguments are supplied or if only `-p` is given, `trap` prints the list of commands associated with each signal.
|
||||
|
||||
Signal names are case insensitive and the `SIG` prefix is optional.
|
||||
|
||||
The return status is 1 if any `SIGSPEC` is invalid; otherwise trap returns 0.
|
||||
The return status is 1 if any `REASON` is invalid; otherwise trap returns 0.
|
||||
|
||||
\subsection trap-example Example
|
||||
|
||||
\fish
|
||||
trap "status --print-stack-trace" SIGUSR1
|
||||
# Prints a stack trace each time the SIGUSR1 signal is sent to the shell.
|
||||
\endfish
|
||||
\endfish
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
- <a href="#tut_exports">Shell Variables</a>
|
||||
- <a href="#tut_lists">Lists</a>
|
||||
- <a href="#tut_command_substitutions">Command Substitutions</a>
|
||||
- <a href="#tut_semicolon">Separating Commands (Semicolon)</a>
|
||||
- <a href="#tut_combiners">Combiners (And, Or, Not)</a>
|
||||
- <a href="#tut_conditionals">Conditionals (If, Else, Switch)</a>
|
||||
- <a href="#tut_functions">Functions</a>
|
||||
@@ -300,6 +301,8 @@ Other variables, like `$PATH`, really do have multiple values. During variable e
|
||||
<outp>/usr/bin /bin /usr/sbin /sbin /usr/local/bin</outp>
|
||||
\endfish
|
||||
|
||||
Note that there are three environment variables that are automatically split on colons to become lists when fish starts running: `PATH`, `CDPATH`, `MANPATH`. Conversely, they are joined on colons when exported to subcommands. All other environment variables (e.g., `LD_LIBRARY_PATH`) which have similar semantics are treated as simple strings.
|
||||
|
||||
Lists cannot contain other lists: there is no recursion. A variable is a list of strings, full stop.
|
||||
|
||||
Get the length of a list with `count`:
|
||||
@@ -389,6 +392,31 @@ Command substitutions are not expanded within quotes. Instead, you can temporari
|
||||
<outp>testing_1360099791.txt</outp>
|
||||
\endfish
|
||||
|
||||
Unlike other shells, fish does not split command substitutions on any whitespace (like spaces or tabs), only newlines. This can be an issue with commands like `pkg-config` that print what is meant to be multiple arguments on a single line. To split it on spaces too, use `string split`.
|
||||
|
||||
\fish{cli-dark}
|
||||
>_ printf '%s\n' (pkg-config --libs gio-2.0)
|
||||
<outp>-lgio-2.0 -lgobject-2.0 -lglib-2.0</outp>
|
||||
>_ printf '%s\n' (pkg-config --libs gio-2.0 | string split " ")
|
||||
<outp>-lgio-2.0
|
||||
-lgobject-2.0
|
||||
-lglib-2.0</outp>
|
||||
\endfish
|
||||
|
||||
|
||||
\section tut_semicolon Separating Commands (Semicolon)
|
||||
Like other shells, fish allows multiple commands either on separate lines or the same line.
|
||||
|
||||
To write them on the same line, use the semicolon (";"). That means the following two examples are equivalent:
|
||||
|
||||
\fish
|
||||
echo fish; echo chips
|
||||
|
||||
# or
|
||||
echo fish
|
||||
echo chips
|
||||
\endfish
|
||||
|
||||
|
||||
\section tut_combiners Combiners (And, Or, Not)
|
||||
|
||||
@@ -399,6 +427,14 @@ Unlike other shells, `fish` does not have special syntax like && or || t
|
||||
<outp>Backup failed</outp>
|
||||
\endfish
|
||||
|
||||
As mentioned in <a href="#tut_semicolon">the section on the semicolon</a>, this can also be written in multiple lines, like so:
|
||||
|
||||
\fish
|
||||
cp file1.txt file1_bak.txt
|
||||
and echo "Backup successful"
|
||||
or echo "Backup failed"
|
||||
\endfish
|
||||
|
||||
|
||||
\section tut_conditionals Conditionals (If, Else, Switch)
|
||||
|
||||
@@ -414,6 +450,16 @@ else
|
||||
end
|
||||
\endfish
|
||||
|
||||
<a href="#tut_combiners">Combiners</a> can also be used to make more complex conditions, like
|
||||
|
||||
\fish
|
||||
if grep fish /etc/shells; and command -sq fish
|
||||
echo fish is installed and configured
|
||||
end
|
||||
\endfish
|
||||
|
||||
For even more complex conditions, use `begin` and `end` to group parts of them.
|
||||
|
||||
There is also a `switch` command:
|
||||
|
||||
\fish{cli-dark}
|
||||
@@ -535,6 +581,12 @@ To prepend /usr/local/bin and /usr/sbin to `$PATH`, you can write:
|
||||
>_ set PATH /usr/local/bin /usr/sbin $PATH
|
||||
\endfish
|
||||
|
||||
To remove /usr/local/bin from `$PATH`, you can write:
|
||||
|
||||
\fish{cli-dark}
|
||||
>_ set PATH (string match -v /usr/local/bin $PATH)
|
||||
\end{fish}
|
||||
|
||||
You can do so directly in `config.fish`, like you might do in other shells with `.profile`. See [this example](#path_example).
|
||||
|
||||
A faster way is to modify the `$fish_user_paths` [universal variable](#tut_universal), which is automatically prepended to `$PATH`. For example, to permanently add `/usr/local/bin` to your `$PATH`, you could write:
|
||||
|
||||
@@ -23,6 +23,8 @@ The following options are available:
|
||||
|
||||
- `-q` or `--quiet` suppresses all output; this is useful when testing the exit status.
|
||||
|
||||
The `-q`, `-p`, `-t` and `-P` flags (and their long flag aliases) are mutually exclusive. Only one can be specified at a time.
|
||||
|
||||
|
||||
\subsection type-example Example
|
||||
|
||||
|
||||
@@ -215,7 +215,7 @@ tt, code, pre, .fish {
|
||||
.cli-dark .prompt { color: #999; }
|
||||
.cli-dark .cursor { border-bottom: 2px solid #3F3; }
|
||||
.cli-dark .underline { color: #00afff; text-decoration: underline; }
|
||||
.cli-dark .error, .cli-dark .error .path { color: #f33; font-weight: bold; }
|
||||
.cli-dark .error, .cli-dark .error .path { color: #f55; font-weight: bold; }
|
||||
|
||||
|
||||
/*Menus*/
|
||||
|
||||
@@ -9,7 +9,7 @@ $extrastylesheet
|
||||
</head>
|
||||
<body>
|
||||
<div id="top" class="qindex"><!-- do not close this div here, it is closed by doxygen! -->
|
||||
<a href="http://fishshell.com/"><code>fish</code> shell</a>
|
||||
<a href="https://fishshell.com/"><code>fish</code> shell</a>
|
||||
|
|
||||
<a href="index.html">Documentation</a>
|
||||
|
|
||||
|
||||
@@ -6,5 +6,5 @@ confdir=@extra_confdir@
|
||||
|
||||
Name: fish
|
||||
Description: fish, the friendly interactive shell
|
||||
URL: http://fishshell.com/
|
||||
URL: https://fishshell.com/
|
||||
Version: @fish_build_version@
|
||||
|
||||
@@ -6,7 +6,7 @@ Release: 0.%{?dist}
|
||||
|
||||
License: GPL-2.0
|
||||
Group: System/Shells
|
||||
URL: http://fishshell.com/
|
||||
URL: https://fishshell.com/
|
||||
|
||||
Source0: %{name}_@VERSION@.orig.tar.gz
|
||||
BuildRequires: ncurses-devel gettext gcc-c++ autoconf
|
||||
@@ -15,11 +15,14 @@ BuildRequires: ncurses-devel gettext gcc-c++ autoconf
|
||||
BuildRequires: gcc48 gcc48-c++
|
||||
%endif
|
||||
|
||||
%if 0%{?is_opensuse} || 0%{?fedora}
|
||||
BuildRequires: pcre2-devel
|
||||
%endif
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
|
||||
Requires: bc
|
||||
Requires: python
|
||||
Requires: which
|
||||
Requires: man
|
||||
|
||||
%if 0%{?rhel_version} >= 700 || 0%{?centos_version} >= 700 || 0%{?fedora} || 0%{?is_opensuse}
|
||||
|
||||
@@ -69,24 +69,8 @@
|
||||
/* Begin PBXBuildFile section */
|
||||
63A2C0E91CC60F3B00973404 /* pcre2_find_bracket.c in Sources */ = {isa = PBXBuildFile; fileRef = 63A2C0E81CC5F9FB00973404 /* pcre2_find_bracket.c */; };
|
||||
9C7A55271DCD651F0049C25D /* fallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853E13B3ACEE0099B651 /* fallback.cpp */; };
|
||||
9C7A55281DCD65540049C25D /* builtin_commandline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853013B3ACEE0099B651 /* builtin_commandline.cpp */; };
|
||||
9C7A55291DCD65540049C25D /* builtin_complete.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853113B3ACEE0099B651 /* builtin_complete.cpp */; };
|
||||
9C7A552A1DCD65540049C25D /* builtin_jobs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853213B3ACEE0099B651 /* builtin_jobs.cpp */; };
|
||||
9C7A552B1DCD65540049C25D /* builtin_set.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853313B3ACEE0099B651 /* builtin_set.cpp */; };
|
||||
9C7A552C1DCD65540049C25D /* builtin_set_color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0C861EA16CC7054003B5A04 /* builtin_set_color.cpp */; };
|
||||
9C7A552D1DCD65540049C25D /* builtin_ulimit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853413B3ACEE0099B651 /* builtin_ulimit.cpp */; };
|
||||
9C7A552E1DCD65540049C25D /* builtin_printf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0CA63F316FC275F00093BD4 /* builtin_printf.cpp */; };
|
||||
9C7A552F1DCD65820049C25D /* util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855E13B3ACEE0099B651 /* util.cpp */; };
|
||||
9C7A55361DCD71330049C25D /* autoload.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0C6FCC914CFA4B0004CE8AD /* autoload.cpp */; };
|
||||
9C7A55371DCD71330049C25D /* builtin_commandline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853013B3ACEE0099B651 /* builtin_commandline.cpp */; };
|
||||
9C7A55381DCD71330049C25D /* builtin_complete.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853113B3ACEE0099B651 /* builtin_complete.cpp */; };
|
||||
9C7A55391DCD71330049C25D /* builtin_jobs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853213B3ACEE0099B651 /* builtin_jobs.cpp */; };
|
||||
9C7A553A1DCD71330049C25D /* builtin_set.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853313B3ACEE0099B651 /* builtin_set.cpp */; };
|
||||
9C7A553B1DCD71330049C25D /* builtin_set_color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0C861EA16CC7054003B5A04 /* builtin_set_color.cpp */; };
|
||||
9C7A553C1DCD71330049C25D /* builtin_ulimit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853413B3ACEE0099B651 /* builtin_ulimit.cpp */; };
|
||||
9C7A553D1DCD71330049C25D /* builtin_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0F3373A1506DE3C00ECEFC0 /* builtin_test.cpp */; };
|
||||
9C7A553E1DCD71330049C25D /* builtin_printf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0CA63F316FC275F00093BD4 /* builtin_printf.cpp */; };
|
||||
9C7A553F1DCD71330049C25D /* builtin_string.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D04F7F7B1BA4BF4000B0F227 /* builtin_string.cpp */; };
|
||||
9C7A55401DCD71330049C25D /* color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0B6B0FE14E88BA400AD6C10 /* color.cpp */; };
|
||||
9C7A55411DCD71330049C25D /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853613B3ACEE0099B651 /* common.cpp */; };
|
||||
9C7A55421DCD71330049C25D /* event.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853B13B3ACEE0099B651 /* event.cpp */; };
|
||||
@@ -100,7 +84,6 @@
|
||||
9C7A554A1DCD71330049C25D /* screen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855A13B3ACEE0099B651 /* screen.cpp */; };
|
||||
9C7A554B1DCD71330049C25D /* signal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855C13B3ACEE0099B651 /* signal.cpp */; };
|
||||
9C7A554C1DCD71330049C25D /* utf8.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0C9733718DE5449002D7C81 /* utf8.cpp */; };
|
||||
9C7A554D1DCD71330049C25D /* builtin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853513B3ACEE0099B651 /* builtin.cpp */; };
|
||||
9C7A554E1DCD71330049C25D /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0854413B3ACEE0099B651 /* function.cpp */; };
|
||||
9C7A554F1DCD71330049C25D /* complete.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853713B3ACEE0099B651 /* complete.cpp */; };
|
||||
9C7A55501DCD71330049C25D /* env.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853A13B3ACEE0099B651 /* env.cpp */; };
|
||||
@@ -134,8 +117,43 @@
|
||||
9C7A557D1DCD71890049C25D /* fish_key_reader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9C7A557C1DCD717C0049C25D /* fish_key_reader.cpp */; };
|
||||
9C7A557E1DCD71CD0049C25D /* print_help.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855613B3ACEE0099B651 /* print_help.cpp */; };
|
||||
9C7A55811DCD739C0049C25D /* fish_key_reader in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9C7A55721DCD71330049C25D /* fish_key_reader */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||
9CC8D8C51F7AF0D40095062A /* lynx.lss in Copy Files */ = {isa = PBXBuildFile; fileRef = 9CC8D8C41F7AF0610095062A /* lynx.lss */; };
|
||||
CB0F034C1F156FE3001827D3 /* builtin_argparse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CB0F034A1F156FE3001827D3 /* builtin_argparse.cpp */; };
|
||||
CB0F034D1F156FE3001827D3 /* builtin_argparse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CB0F034A1F156FE3001827D3 /* builtin_argparse.cpp */; };
|
||||
CB0F034E1F156FE3001827D3 /* builtin_argparse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CB0F034A1F156FE3001827D3 /* builtin_argparse.cpp */; };
|
||||
D001B5EE1F041CBD000838CC /* builtin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F592F1F041AE4003EE978 /* builtin.cpp */; };
|
||||
D001B5F01F041CBD000838CC /* builtin_ulimit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59311F041AE4003EE978 /* builtin_ulimit.cpp */; };
|
||||
D001B5F21F041CBD000838CC /* builtin_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59331F041AE4003EE978 /* builtin_test.cpp */; };
|
||||
D001B5F41F041CBD000838CC /* builtin_string.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59351F041AE4003EE978 /* builtin_string.cpp */; };
|
||||
D001B5F61F041CBD000838CC /* builtin_status.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59371F041AE4003EE978 /* builtin_status.cpp */; };
|
||||
D001B5F81F041CBD000838CC /* builtin_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59391F041AE4003EE978 /* builtin_source.cpp */; };
|
||||
D001B5FA1F041CBD000838CC /* builtin_set.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F593B1F041AE4003EE978 /* builtin_set.cpp */; };
|
||||
D001B5FC1F041CBD000838CC /* builtin_set_color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F593D1F041AE4003EE978 /* builtin_set_color.cpp */; };
|
||||
D001B5FE1F041CBD000838CC /* builtin_return.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F593F1F041AE4003EE978 /* builtin_return.cpp */; };
|
||||
D001B6001F041CBD000838CC /* builtin_realpath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59411F041AE4003EE978 /* builtin_realpath.cpp */; };
|
||||
D001B6021F041CBD000838CC /* builtin_read.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59431F041AE4003EE978 /* builtin_read.cpp */; };
|
||||
D001B6041F041CBD000838CC /* builtin_random.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59451F041AE4003EE978 /* builtin_random.cpp */; };
|
||||
D001B6061F041CBD000838CC /* builtin_pwd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59471F041AE4003EE978 /* builtin_pwd.cpp */; };
|
||||
D001B6081F041CBD000838CC /* builtin_printf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59491F041AE4003EE978 /* builtin_printf.cpp */; };
|
||||
D001B60A1F041CBD000838CC /* builtin_jobs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F594B1F041AE4003EE978 /* builtin_jobs.cpp */; };
|
||||
D001B60C1F041CBD000838CC /* builtin_history.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F594D1F041AE4003EE978 /* builtin_history.cpp */; };
|
||||
D001B60E1F041CBD000838CC /* builtin_functions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F594F1F041AE4003EE978 /* builtin_functions.cpp */; };
|
||||
D001B6101F041CBD000838CC /* builtin_function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59511F041AE4003EE978 /* builtin_function.cpp */; };
|
||||
D001B6121F041CBD000838CC /* builtin_fg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59531F041AE4003EE978 /* builtin_fg.cpp */; };
|
||||
D001B6141F041CBD000838CC /* builtin_exit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59551F041AE4003EE978 /* builtin_exit.cpp */; };
|
||||
D001B6161F041CBD000838CC /* builtin_emit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59571F041AE4003EE978 /* builtin_emit.cpp */; };
|
||||
D001B6181F041CBD000838CC /* builtin_echo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59591F041AE4003EE978 /* builtin_echo.cpp */; };
|
||||
D001B61A1F041CBD000838CC /* builtin_disown.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F595B1F041AE4003EE978 /* builtin_disown.cpp */; };
|
||||
D001B61C1F041CBD000838CC /* builtin_contains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F595D1F041AE4003EE978 /* builtin_contains.cpp */; };
|
||||
D001B61E1F041CBD000838CC /* builtin_complete.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F595F1F041AE4003EE978 /* builtin_complete.cpp */; };
|
||||
D001B6201F041CBD000838CC /* builtin_commandline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59611F041AE4003EE978 /* builtin_commandline.cpp */; };
|
||||
D001B6221F041CBD000838CC /* builtin_command.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59631F041AE4003EE978 /* builtin_command.cpp */; };
|
||||
D001B6241F041CBD000838CC /* builtin_cd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59651F041AE4003EE978 /* builtin_cd.cpp */; };
|
||||
D001B6261F041CBD000838CC /* builtin_builtin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59671F041AE4003EE978 /* builtin_builtin.cpp */; };
|
||||
D001B6281F041CBD000838CC /* builtin_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59691F041AE4003EE978 /* builtin_block.cpp */; };
|
||||
D001B62A1F041CBD000838CC /* builtin_bind.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F596B1F041AE4003EE978 /* builtin_bind.cpp */; };
|
||||
D001B62C1F041CBD000838CC /* builtin_bg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F596D1F041AE4003EE978 /* builtin_bg.cpp */; };
|
||||
D00769121990137800CA4627 /* autoload.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0C6FCC914CFA4B0004CE8AD /* autoload.cpp */; };
|
||||
D00769131990137800CA4627 /* builtin_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0F3373A1506DE3C00ECEFC0 /* builtin_test.cpp */; };
|
||||
D00769141990137800CA4627 /* color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0B6B0FE14E88BA400AD6C10 /* color.cpp */; };
|
||||
D00769151990137800CA4627 /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853613B3ACEE0099B651 /* common.cpp */; };
|
||||
D00769161990137800CA4627 /* event.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853B13B3ACEE0099B651 /* event.cpp */; };
|
||||
@@ -149,7 +167,6 @@
|
||||
D007691E1990137800CA4627 /* screen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855A13B3ACEE0099B651 /* screen.cpp */; };
|
||||
D007691F1990137800CA4627 /* signal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855C13B3ACEE0099B651 /* signal.cpp */; };
|
||||
D00769201990137800CA4627 /* utf8.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0C9733718DE5449002D7C81 /* utf8.cpp */; };
|
||||
D00769211990137800CA4627 /* builtin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853513B3ACEE0099B651 /* builtin.cpp */; };
|
||||
D00769221990137800CA4627 /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0854413B3ACEE0099B651 /* function.cpp */; };
|
||||
D00769231990137800CA4627 /* complete.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853713B3ACEE0099B651 /* complete.cpp */; };
|
||||
D00769241990137800CA4627 /* env.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853A13B3ACEE0099B651 /* env.cpp */; };
|
||||
@@ -179,33 +196,19 @@
|
||||
D0076943199013B900CA4627 /* fish_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0854113B3ACEE0099B651 /* fish_tests.cpp */; };
|
||||
D00F63F119137E9D00FCCDEC /* fish_version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D00F63F019137E9D00FCCDEC /* fish_version.cpp */; settings = {COMPILER_FLAGS = "-I$(DERIVED_FILE_DIR)"; }; };
|
||||
D00F63F219137E9D00FCCDEC /* fish_version.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D00F63F019137E9D00FCCDEC /* fish_version.cpp */; settings = {COMPILER_FLAGS = "-I$(DERIVED_FILE_DIR)"; }; };
|
||||
D01243591CD3DAD100C64313 /* builtin_commandline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853013B3ACEE0099B651 /* builtin_commandline.cpp */; };
|
||||
D012435A1CD3DAD100C64313 /* builtin_complete.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853113B3ACEE0099B651 /* builtin_complete.cpp */; };
|
||||
D012435B1CD3DAD100C64313 /* builtin_jobs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853213B3ACEE0099B651 /* builtin_jobs.cpp */; };
|
||||
D012435C1CD3DAD100C64313 /* builtin_set.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853313B3ACEE0099B651 /* builtin_set.cpp */; };
|
||||
D012435D1CD3DAD100C64313 /* builtin_set_color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0C861EA16CC7054003B5A04 /* builtin_set_color.cpp */; };
|
||||
D012435E1CD3DAD100C64313 /* builtin_ulimit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853413B3ACEE0099B651 /* builtin_ulimit.cpp */; };
|
||||
D012435F1CD3DAD100C64313 /* builtin_printf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0CA63F316FC275F00093BD4 /* builtin_printf.cpp */; };
|
||||
D01243601CD3DAE200C64313 /* builtin_commandline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853013B3ACEE0099B651 /* builtin_commandline.cpp */; };
|
||||
D01243611CD3DAE200C64313 /* builtin_complete.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853113B3ACEE0099B651 /* builtin_complete.cpp */; };
|
||||
D01243621CD3DAE200C64313 /* builtin_jobs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853213B3ACEE0099B651 /* builtin_jobs.cpp */; };
|
||||
D01243631CD3DAE200C64313 /* builtin_set.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853313B3ACEE0099B651 /* builtin_set.cpp */; };
|
||||
D01243641CD3DAE200C64313 /* builtin_set_color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0C861EA16CC7054003B5A04 /* builtin_set_color.cpp */; };
|
||||
D01243651CD3DAE200C64313 /* builtin_ulimit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853413B3ACEE0099B651 /* builtin_ulimit.cpp */; };
|
||||
D01243661CD3DAE200C64313 /* builtin_printf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0CA63F316FC275F00093BD4 /* builtin_printf.cpp */; };
|
||||
D01243681CD4015600C64313 /* util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855E13B3ACEE0099B651 /* util.cpp */; };
|
||||
D01243691CD4015C00C64313 /* util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855E13B3ACEE0099B651 /* util.cpp */; };
|
||||
D012436A1CD4018100C64313 /* fallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853E13B3ACEE0099B651 /* fallback.cpp */; };
|
||||
D012436B1CD4019700C64313 /* fallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853E13B3ACEE0099B651 /* fallback.cpp */; };
|
||||
D01A2D24169B736200767098 /* man1 in Copy Files */ = {isa = PBXBuildFile; fileRef = D01A2D23169B730A00767098 /* man1 */; };
|
||||
D01A2D25169B737700767098 /* man1 in CopyFiles */ = {isa = PBXBuildFile; fileRef = D01A2D23169B730A00767098 /* man1 */; };
|
||||
D02DE6831FB2CD5E0049D8D8 /* builtin_argparse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CB0F034A1F156FE3001827D3 /* builtin_argparse.cpp */; };
|
||||
D030FBEF1A4A382000F7ADA0 /* input.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0854A13B3ACEE0099B651 /* input.cpp */; };
|
||||
D030FBF01A4A382B00F7ADA0 /* event.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853B13B3ACEE0099B651 /* event.cpp */; };
|
||||
D030FBF11A4A384000F7ADA0 /* output.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855113B3ACEE0099B651 /* output.cpp */; };
|
||||
D030FBF21A4A384A00F7ADA0 /* signal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855C13B3ACEE0099B651 /* signal.cpp */; };
|
||||
D030FBF31A4A386A00F7ADA0 /* reader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855813B3ACEE0099B651 /* reader.cpp */; };
|
||||
D030FBF41A4A38F300F7ADA0 /* autoload.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0C6FCC914CFA4B0004CE8AD /* autoload.cpp */; };
|
||||
D030FBF51A4A38F300F7ADA0 /* builtin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853513B3ACEE0099B651 /* builtin.cpp */; };
|
||||
D030FBF61A4A38F300F7ADA0 /* color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0B6B0FE14E88BA400AD6C10 /* color.cpp */; };
|
||||
D030FBF71A4A38F300F7ADA0 /* complete.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853713B3ACEE0099B651 /* complete.cpp */; };
|
||||
D030FBF81A4A38F300F7ADA0 /* env_universal_common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853813B3ACEE0099B651 /* env_universal_common.cpp */; };
|
||||
@@ -235,14 +238,11 @@
|
||||
D030FC121A4A38F300F7ADA0 /* wcstringutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0F5B46319CFCDE80090665E /* wcstringutil.cpp */; };
|
||||
D030FC131A4A38F300F7ADA0 /* wgetopt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855F13B3ACEE0099B651 /* wgetopt.cpp */; };
|
||||
D030FC141A4A38F300F7ADA0 /* wildcard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0856013B3ACEE0099B651 /* wildcard.cpp */; };
|
||||
D030FC151A4A391900F7ADA0 /* builtin_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0F3373A1506DE3C00ECEFC0 /* builtin_test.cpp */; };
|
||||
D031890C15E36E4600D9CC39 /* base in Resources */ = {isa = PBXBuildFile; fileRef = D031890915E36D9800D9CC39 /* base */; };
|
||||
D032388B1849D1980032CF2C /* pager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D03238891849D1980032CF2C /* pager.cpp */; };
|
||||
D033781115DC6D4C00A634BA /* completions in CopyFiles */ = {isa = PBXBuildFile; fileRef = D025C02715D1FEA100B9DB63 /* completions */; };
|
||||
D033781215DC6D5200A634BA /* functions in CopyFiles */ = {isa = PBXBuildFile; fileRef = D025C02815D1FEA100B9DB63 /* functions */; };
|
||||
D033781315DC6D5400A634BA /* tools in CopyFiles */ = {isa = PBXBuildFile; fileRef = D025C02915D1FEA100B9DB63 /* tools */; };
|
||||
D04F7F7C1BA4BF4000B0F227 /* builtin_string.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D04F7F7B1BA4BF4000B0F227 /* builtin_string.cpp */; };
|
||||
D04F7F7D1BA4BF4000B0F227 /* builtin_string.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D04F7F7B1BA4BF4000B0F227 /* builtin_string.cpp */; };
|
||||
D04F7FD51BA4E3AC00B0F227 /* pcre2_compile.c in Sources */ = {isa = PBXBuildFile; fileRef = D04F7F8D1BA4DCD900B0F227 /* pcre2_compile.c */; };
|
||||
D04F7FD61BA4E3AC00B0F227 /* pcre2_config.c in Sources */ = {isa = PBXBuildFile; fileRef = D04F7F901BA4DCE900B0F227 /* pcre2_config.c */; };
|
||||
D04F7FD71BA4E3AC00B0F227 /* pcre2_context.c in Sources */ = {isa = PBXBuildFile; fileRef = D04F7F931BA4DCFA00B0F227 /* pcre2_context.c */; };
|
||||
@@ -264,13 +264,108 @@
|
||||
D04F7FE71BA4E3AC00B0F227 /* pcre2_ucd.c in Sources */ = {isa = PBXBuildFile; fileRef = D04F7FBA1BA4DDEB00B0F227 /* pcre2_ucd.c */; };
|
||||
D04F7FE81BA4E3AC00B0F227 /* pcre2_valid_utf.c in Sources */ = {isa = PBXBuildFile; fileRef = D04F7FBB1BA4DDEB00B0F227 /* pcre2_valid_utf.c */; };
|
||||
D04F7FE91BA4E3AC00B0F227 /* pcre2_xclass.c in Sources */ = {isa = PBXBuildFile; fileRef = D04F7FBC1BA4DDEB00B0F227 /* pcre2_xclass.c */; };
|
||||
D04F7FF01BA4E5B900B0F227 /* builtin_string.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D04F7F7B1BA4BF4000B0F227 /* builtin_string.cpp */; };
|
||||
D04F7FF11BA4E68200B0F227 /* libpcre2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D04F7FD01BA4E29300B0F227 /* libpcre2.a */; };
|
||||
D04F7FF21BA4E68A00B0F227 /* libpcre2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D04F7FD01BA4E29300B0F227 /* libpcre2.a */; };
|
||||
D04F7FF41BA4E6F300B0F227 /* pcre2_auto_possess.c in Sources */ = {isa = PBXBuildFile; fileRef = D04F7FF31BA4E6F300B0F227 /* pcre2_auto_possess.c */; };
|
||||
D04F7FF91BA4E87B00B0F227 /* pcre2_chartables.c.dist in Sources */ = {isa = PBXBuildFile; fileRef = D04F7FF71BA4E82C00B0F227 /* pcre2_chartables.c.dist */; };
|
||||
D04F7FFA1BA4E9A400B0F227 /* libpcre2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D04F7FD01BA4E29300B0F227 /* libpcre2.a */; };
|
||||
D052D80B1868F7FC003ABCBD /* parse_execution.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D052D8091868F7FC003ABCBD /* parse_execution.cpp */; };
|
||||
D05F596E1F041AE4003EE978 /* builtin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F592F1F041AE4003EE978 /* builtin.cpp */; };
|
||||
D05F596F1F041AE4003EE978 /* builtin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F592F1F041AE4003EE978 /* builtin.cpp */; };
|
||||
D05F59701F041AE4003EE978 /* builtin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F592F1F041AE4003EE978 /* builtin.cpp */; };
|
||||
D05F59711F041AE4003EE978 /* builtin_ulimit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59311F041AE4003EE978 /* builtin_ulimit.cpp */; };
|
||||
D05F59721F041AE4003EE978 /* builtin_ulimit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59311F041AE4003EE978 /* builtin_ulimit.cpp */; };
|
||||
D05F59731F041AE4003EE978 /* builtin_ulimit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59311F041AE4003EE978 /* builtin_ulimit.cpp */; };
|
||||
D05F59741F041AE4003EE978 /* builtin_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59331F041AE4003EE978 /* builtin_test.cpp */; };
|
||||
D05F59751F041AE4003EE978 /* builtin_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59331F041AE4003EE978 /* builtin_test.cpp */; };
|
||||
D05F59761F041AE4003EE978 /* builtin_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59331F041AE4003EE978 /* builtin_test.cpp */; };
|
||||
D05F59771F041AE4003EE978 /* builtin_string.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59351F041AE4003EE978 /* builtin_string.cpp */; };
|
||||
D05F59781F041AE4003EE978 /* builtin_string.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59351F041AE4003EE978 /* builtin_string.cpp */; };
|
||||
D05F59791F041AE4003EE978 /* builtin_string.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59351F041AE4003EE978 /* builtin_string.cpp */; };
|
||||
D05F597A1F041AE4003EE978 /* builtin_status.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59371F041AE4003EE978 /* builtin_status.cpp */; };
|
||||
D05F597B1F041AE4003EE978 /* builtin_status.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59371F041AE4003EE978 /* builtin_status.cpp */; };
|
||||
D05F597C1F041AE4003EE978 /* builtin_status.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59371F041AE4003EE978 /* builtin_status.cpp */; };
|
||||
D05F597D1F041AE4003EE978 /* builtin_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59391F041AE4003EE978 /* builtin_source.cpp */; };
|
||||
D05F597E1F041AE4003EE978 /* builtin_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59391F041AE4003EE978 /* builtin_source.cpp */; };
|
||||
D05F597F1F041AE4003EE978 /* builtin_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59391F041AE4003EE978 /* builtin_source.cpp */; };
|
||||
D05F59801F041AE4003EE978 /* builtin_set.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F593B1F041AE4003EE978 /* builtin_set.cpp */; };
|
||||
D05F59811F041AE4003EE978 /* builtin_set.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F593B1F041AE4003EE978 /* builtin_set.cpp */; };
|
||||
D05F59821F041AE4003EE978 /* builtin_set.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F593B1F041AE4003EE978 /* builtin_set.cpp */; };
|
||||
D05F59831F041AE4003EE978 /* builtin_set_color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F593D1F041AE4003EE978 /* builtin_set_color.cpp */; };
|
||||
D05F59841F041AE4003EE978 /* builtin_set_color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F593D1F041AE4003EE978 /* builtin_set_color.cpp */; };
|
||||
D05F59851F041AE4003EE978 /* builtin_set_color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F593D1F041AE4003EE978 /* builtin_set_color.cpp */; };
|
||||
D05F59861F041AE4003EE978 /* builtin_return.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F593F1F041AE4003EE978 /* builtin_return.cpp */; };
|
||||
D05F59871F041AE4003EE978 /* builtin_return.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F593F1F041AE4003EE978 /* builtin_return.cpp */; };
|
||||
D05F59881F041AE4003EE978 /* builtin_return.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F593F1F041AE4003EE978 /* builtin_return.cpp */; };
|
||||
D05F59891F041AE4003EE978 /* builtin_realpath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59411F041AE4003EE978 /* builtin_realpath.cpp */; };
|
||||
D05F598A1F041AE4003EE978 /* builtin_realpath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59411F041AE4003EE978 /* builtin_realpath.cpp */; };
|
||||
D05F598B1F041AE4003EE978 /* builtin_realpath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59411F041AE4003EE978 /* builtin_realpath.cpp */; };
|
||||
D05F598C1F041AE4003EE978 /* builtin_read.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59431F041AE4003EE978 /* builtin_read.cpp */; };
|
||||
D05F598D1F041AE4003EE978 /* builtin_read.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59431F041AE4003EE978 /* builtin_read.cpp */; };
|
||||
D05F598E1F041AE4003EE978 /* builtin_read.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59431F041AE4003EE978 /* builtin_read.cpp */; };
|
||||
D05F598F1F041AE4003EE978 /* builtin_random.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59451F041AE4003EE978 /* builtin_random.cpp */; };
|
||||
D05F59901F041AE4003EE978 /* builtin_random.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59451F041AE4003EE978 /* builtin_random.cpp */; };
|
||||
D05F59911F041AE4003EE978 /* builtin_random.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59451F041AE4003EE978 /* builtin_random.cpp */; };
|
||||
D05F59921F041AE4003EE978 /* builtin_pwd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59471F041AE4003EE978 /* builtin_pwd.cpp */; };
|
||||
D05F59931F041AE4003EE978 /* builtin_pwd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59471F041AE4003EE978 /* builtin_pwd.cpp */; };
|
||||
D05F59941F041AE4003EE978 /* builtin_pwd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59471F041AE4003EE978 /* builtin_pwd.cpp */; };
|
||||
D05F59951F041AE4003EE978 /* builtin_printf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59491F041AE4003EE978 /* builtin_printf.cpp */; };
|
||||
D05F59961F041AE4003EE978 /* builtin_printf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59491F041AE4003EE978 /* builtin_printf.cpp */; };
|
||||
D05F59971F041AE4003EE978 /* builtin_printf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59491F041AE4003EE978 /* builtin_printf.cpp */; };
|
||||
D05F59981F041AE4003EE978 /* builtin_jobs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F594B1F041AE4003EE978 /* builtin_jobs.cpp */; };
|
||||
D05F59991F041AE4003EE978 /* builtin_jobs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F594B1F041AE4003EE978 /* builtin_jobs.cpp */; };
|
||||
D05F599A1F041AE4003EE978 /* builtin_jobs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F594B1F041AE4003EE978 /* builtin_jobs.cpp */; };
|
||||
D05F599B1F041AE4003EE978 /* builtin_history.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F594D1F041AE4003EE978 /* builtin_history.cpp */; };
|
||||
D05F599C1F041AE4003EE978 /* builtin_history.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F594D1F041AE4003EE978 /* builtin_history.cpp */; };
|
||||
D05F599D1F041AE4003EE978 /* builtin_history.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F594D1F041AE4003EE978 /* builtin_history.cpp */; };
|
||||
D05F599E1F041AE4003EE978 /* builtin_functions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F594F1F041AE4003EE978 /* builtin_functions.cpp */; };
|
||||
D05F599F1F041AE4003EE978 /* builtin_functions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F594F1F041AE4003EE978 /* builtin_functions.cpp */; };
|
||||
D05F59A01F041AE4003EE978 /* builtin_functions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F594F1F041AE4003EE978 /* builtin_functions.cpp */; };
|
||||
D05F59A11F041AE4003EE978 /* builtin_function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59511F041AE4003EE978 /* builtin_function.cpp */; };
|
||||
D05F59A21F041AE4003EE978 /* builtin_function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59511F041AE4003EE978 /* builtin_function.cpp */; };
|
||||
D05F59A31F041AE4003EE978 /* builtin_function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59511F041AE4003EE978 /* builtin_function.cpp */; };
|
||||
D05F59A41F041AE4003EE978 /* builtin_fg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59531F041AE4003EE978 /* builtin_fg.cpp */; };
|
||||
D05F59A51F041AE4003EE978 /* builtin_fg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59531F041AE4003EE978 /* builtin_fg.cpp */; };
|
||||
D05F59A61F041AE4003EE978 /* builtin_fg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59531F041AE4003EE978 /* builtin_fg.cpp */; };
|
||||
D05F59A71F041AE4003EE978 /* builtin_exit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59551F041AE4003EE978 /* builtin_exit.cpp */; };
|
||||
D05F59A81F041AE4003EE978 /* builtin_exit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59551F041AE4003EE978 /* builtin_exit.cpp */; };
|
||||
D05F59A91F041AE4003EE978 /* builtin_exit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59551F041AE4003EE978 /* builtin_exit.cpp */; };
|
||||
D05F59AA1F041AE4003EE978 /* builtin_emit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59571F041AE4003EE978 /* builtin_emit.cpp */; };
|
||||
D05F59AB1F041AE4003EE978 /* builtin_emit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59571F041AE4003EE978 /* builtin_emit.cpp */; };
|
||||
D05F59AC1F041AE4003EE978 /* builtin_emit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59571F041AE4003EE978 /* builtin_emit.cpp */; };
|
||||
D05F59AD1F041AE4003EE978 /* builtin_echo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59591F041AE4003EE978 /* builtin_echo.cpp */; };
|
||||
D05F59AE1F041AE4003EE978 /* builtin_echo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59591F041AE4003EE978 /* builtin_echo.cpp */; };
|
||||
D05F59AF1F041AE4003EE978 /* builtin_echo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59591F041AE4003EE978 /* builtin_echo.cpp */; };
|
||||
D05F59B01F041AE4003EE978 /* builtin_disown.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F595B1F041AE4003EE978 /* builtin_disown.cpp */; };
|
||||
D05F59B11F041AE4003EE978 /* builtin_disown.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F595B1F041AE4003EE978 /* builtin_disown.cpp */; };
|
||||
D05F59B21F041AE4003EE978 /* builtin_disown.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F595B1F041AE4003EE978 /* builtin_disown.cpp */; };
|
||||
D05F59B31F041AE4003EE978 /* builtin_contains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F595D1F041AE4003EE978 /* builtin_contains.cpp */; };
|
||||
D05F59B41F041AE4003EE978 /* builtin_contains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F595D1F041AE4003EE978 /* builtin_contains.cpp */; };
|
||||
D05F59B51F041AE4003EE978 /* builtin_contains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F595D1F041AE4003EE978 /* builtin_contains.cpp */; };
|
||||
D05F59B61F041AE4003EE978 /* builtin_complete.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F595F1F041AE4003EE978 /* builtin_complete.cpp */; };
|
||||
D05F59B71F041AE4003EE978 /* builtin_complete.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F595F1F041AE4003EE978 /* builtin_complete.cpp */; };
|
||||
D05F59B81F041AE4003EE978 /* builtin_complete.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F595F1F041AE4003EE978 /* builtin_complete.cpp */; };
|
||||
D05F59B91F041AE4003EE978 /* builtin_commandline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59611F041AE4003EE978 /* builtin_commandline.cpp */; };
|
||||
D05F59BA1F041AE4003EE978 /* builtin_commandline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59611F041AE4003EE978 /* builtin_commandline.cpp */; };
|
||||
D05F59BB1F041AE4003EE978 /* builtin_commandline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59611F041AE4003EE978 /* builtin_commandline.cpp */; };
|
||||
D05F59BC1F041AE4003EE978 /* builtin_command.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59631F041AE4003EE978 /* builtin_command.cpp */; };
|
||||
D05F59BD1F041AE4003EE978 /* builtin_command.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59631F041AE4003EE978 /* builtin_command.cpp */; };
|
||||
D05F59BE1F041AE4003EE978 /* builtin_command.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59631F041AE4003EE978 /* builtin_command.cpp */; };
|
||||
D05F59BF1F041AE4003EE978 /* builtin_cd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59651F041AE4003EE978 /* builtin_cd.cpp */; };
|
||||
D05F59C01F041AE4003EE978 /* builtin_cd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59651F041AE4003EE978 /* builtin_cd.cpp */; };
|
||||
D05F59C11F041AE4003EE978 /* builtin_cd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59651F041AE4003EE978 /* builtin_cd.cpp */; };
|
||||
D05F59C21F041AE4003EE978 /* builtin_builtin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59671F041AE4003EE978 /* builtin_builtin.cpp */; };
|
||||
D05F59C31F041AE4003EE978 /* builtin_builtin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59671F041AE4003EE978 /* builtin_builtin.cpp */; };
|
||||
D05F59C41F041AE4003EE978 /* builtin_builtin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59671F041AE4003EE978 /* builtin_builtin.cpp */; };
|
||||
D05F59C51F041AE4003EE978 /* builtin_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59691F041AE4003EE978 /* builtin_block.cpp */; };
|
||||
D05F59C61F041AE4003EE978 /* builtin_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59691F041AE4003EE978 /* builtin_block.cpp */; };
|
||||
D05F59C71F041AE4003EE978 /* builtin_block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F59691F041AE4003EE978 /* builtin_block.cpp */; };
|
||||
D05F59C81F041AE4003EE978 /* builtin_bind.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F596B1F041AE4003EE978 /* builtin_bind.cpp */; };
|
||||
D05F59C91F041AE4003EE978 /* builtin_bind.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F596B1F041AE4003EE978 /* builtin_bind.cpp */; };
|
||||
D05F59CA1F041AE4003EE978 /* builtin_bind.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F596B1F041AE4003EE978 /* builtin_bind.cpp */; };
|
||||
D05F59CB1F041AE4003EE978 /* builtin_bg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F596D1F041AE4003EE978 /* builtin_bg.cpp */; };
|
||||
D05F59CC1F041AE4003EE978 /* builtin_bg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F596D1F041AE4003EE978 /* builtin_bg.cpp */; };
|
||||
D05F59CD1F041AE4003EE978 /* builtin_bg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D05F596D1F041AE4003EE978 /* builtin_bg.cpp */; };
|
||||
D07B247315BCC15700D4ADB4 /* add-shell in Resources */ = {isa = PBXBuildFile; fileRef = D07B247215BCC15700D4ADB4 /* add-shell */; };
|
||||
D07B247615BCC4BE00D4ADB4 /* install.sh in Resources */ = {isa = PBXBuildFile; fileRef = D07B247515BCC4BE00D4ADB4 /* install.sh */; };
|
||||
D07D266A15E33B86009E43F6 /* config.fish in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0C4FD9415A7D7EE00212EF1 /* config.fish */; };
|
||||
@@ -304,7 +399,6 @@
|
||||
D0D02A7915983888008E62BD /* intern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0854B13B3ACEE0099B651 /* intern.cpp */; };
|
||||
D0D02A7B15983928008E62BD /* env_universal_common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853813B3ACEE0099B651 /* env_universal_common.cpp */; };
|
||||
D0D02A7C159839D5008E62BD /* autoload.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0C6FCC914CFA4B0004CE8AD /* autoload.cpp */; };
|
||||
D0D02A7D159839D5008E62BD /* builtin_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0F3373A1506DE3C00ECEFC0 /* builtin_test.cpp */; };
|
||||
D0D02A7E159839D5008E62BD /* color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0B6B0FE14E88BA400AD6C10 /* color.cpp */; };
|
||||
D0D02A7F159839D5008E62BD /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853613B3ACEE0099B651 /* common.cpp */; };
|
||||
D0D02A80159839D5008E62BD /* event.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853B13B3ACEE0099B651 /* event.cpp */; };
|
||||
@@ -327,7 +421,6 @@
|
||||
D0D02ADB159864C2008E62BD /* tokenizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0855D13B3ACEE0099B651 /* tokenizer.cpp */; };
|
||||
D0D02ADC159864D5008E62BD /* libncurses.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D02A8C15983CFA008E62BD /* libncurses.dylib */; };
|
||||
D0D2694915983772005D9B9C /* function.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0854413B3ACEE0099B651 /* function.cpp */; };
|
||||
D0D2694A15983779005D9B9C /* builtin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0853513B3ACEE0099B651 /* builtin.cpp */; };
|
||||
D0F019F115A977140034B3B1 /* fish in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0D2693C159835CA005D9B9C /* fish */; };
|
||||
D0F019F315A977290034B3B1 /* fish_indent in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0D02AD01598642A008E62BD /* fish_indent */; };
|
||||
D0F019F815A977AB0034B3B1 /* config.fish in CopyFiles */ = {isa = PBXBuildFile; fileRef = D0CBD580159EE48F0024809C /* config.fish */; };
|
||||
@@ -511,6 +604,7 @@
|
||||
dstPath = "${INSTALL_PATH}/share/fish";
|
||||
dstSubfolderSpec = 0;
|
||||
files = (
|
||||
9CC8D8C51F7AF0D40095062A /* lynx.lss in Copy Files */,
|
||||
D07D267215E34171009E43F6 /* config.fish in Copy Files */,
|
||||
D07D266C15E33B86009E43F6 /* completions in Copy Files */,
|
||||
D07D266D15E33B86009E43F6 /* functions in Copy Files */,
|
||||
@@ -558,16 +652,12 @@
|
||||
4E142D731B56B5D7008783C8 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = config.h; path = ../osx/config.h; sourceTree = "<group>"; };
|
||||
63A2C0E81CC5F9FB00973404 /* pcre2_find_bracket.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pcre2_find_bracket.c; sourceTree = "<group>"; };
|
||||
9C7A55721DCD71330049C25D /* fish_key_reader */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = fish_key_reader; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
9C7A55731DCD716F0049C25D /* builtin_commandline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_commandline.h; sourceTree = "<group>"; };
|
||||
9C7A55741DCD716F0049C25D /* builtin_complete.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_complete.h; sourceTree = "<group>"; };
|
||||
9C7A55751DCD716F0049C25D /* builtin_jobs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_jobs.h; sourceTree = "<group>"; };
|
||||
9C7A55761DCD716F0049C25D /* builtin_printf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_printf.h; sourceTree = "<group>"; };
|
||||
9C7A55771DCD716F0049C25D /* builtin_set_color.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_set_color.h; sourceTree = "<group>"; };
|
||||
9C7A55781DCD716F0049C25D /* builtin_set.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_set.h; sourceTree = "<group>"; };
|
||||
9C7A55791DCD716F0049C25D /* builtin_string.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_string.h; sourceTree = "<group>"; };
|
||||
9C7A557A1DCD716F0049C25D /* builtin_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_test.h; sourceTree = "<group>"; };
|
||||
9C7A557B1DCD716F0049C25D /* builtin_ulimit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_ulimit.h; sourceTree = "<group>"; };
|
||||
9C7A557C1DCD717C0049C25D /* fish_key_reader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fish_key_reader.cpp; sourceTree = "<group>"; };
|
||||
9CC8D8C41F7AF0610095062A /* lynx.lss */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = lynx.lss; path = share/lynx.lss; sourceTree = "<group>"; };
|
||||
CB0F034A1F156FE3001827D3 /* builtin_argparse.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_argparse.cpp; sourceTree = "<group>"; };
|
||||
CB0F034B1F156FE3001827D3 /* builtin_argparse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_argparse.h; sourceTree = "<group>"; };
|
||||
CBB7725B1F14964100780A21 /* fish-shell */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "fish-shell"; sourceTree = "<group>"; };
|
||||
CBB7725C1F1496AF00780A21 /* fish-shell */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "fish-shell"; sourceTree = "<group>"; };
|
||||
D00769421990137800CA4627 /* fish_tests */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = fish_tests; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D00F63F019137E9D00FCCDEC /* fish_version.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fish_version.cpp; sourceTree = "<group>"; };
|
||||
D01A2D23169B730A00767098 /* man1 */ = {isa = PBXFileReference; lastKnownFileType = text; name = man1; path = pages_for_manpath/man1; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
@@ -578,7 +668,6 @@
|
||||
D03238891849D1980032CF2C /* pager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pager.cpp; sourceTree = "<group>"; };
|
||||
D032388A1849D1980032CF2C /* pager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pager.h; sourceTree = "<group>"; };
|
||||
D03EE83814DF88B200FC7150 /* lru.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lru.h; sourceTree = "<group>"; };
|
||||
D04F7F7B1BA4BF4000B0F227 /* builtin_string.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_string.cpp; sourceTree = "<group>"; };
|
||||
D04F7F8D1BA4DCD900B0F227 /* pcre2_compile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pcre2_compile.c; sourceTree = "<group>"; };
|
||||
D04F7F901BA4DCE900B0F227 /* pcre2_config.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pcre2_config.c; sourceTree = "<group>"; };
|
||||
D04F7F931BA4DCFA00B0F227 /* pcre2_context.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pcre2_context.c; sourceTree = "<group>"; };
|
||||
@@ -605,12 +694,75 @@
|
||||
D04F7FF71BA4E82C00B0F227 /* pcre2_chartables.c.dist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = pcre2_chartables.c.dist; sourceTree = "<group>"; };
|
||||
D052D8091868F7FC003ABCBD /* parse_execution.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parse_execution.cpp; sourceTree = "<group>"; };
|
||||
D052D80A1868F7FC003ABCBD /* parse_execution.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parse_execution.h; sourceTree = "<group>"; };
|
||||
D05F592E1F041AE4003EE978 /* builtin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin.h; sourceTree = "<group>"; };
|
||||
D05F592F1F041AE4003EE978 /* builtin.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin.cpp; sourceTree = "<group>"; };
|
||||
D05F59301F041AE4003EE978 /* builtin_ulimit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_ulimit.h; sourceTree = "<group>"; };
|
||||
D05F59311F041AE4003EE978 /* builtin_ulimit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_ulimit.cpp; sourceTree = "<group>"; };
|
||||
D05F59321F041AE4003EE978 /* builtin_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_test.h; sourceTree = "<group>"; };
|
||||
D05F59331F041AE4003EE978 /* builtin_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_test.cpp; sourceTree = "<group>"; };
|
||||
D05F59341F041AE4003EE978 /* builtin_string.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_string.h; sourceTree = "<group>"; };
|
||||
D05F59351F041AE4003EE978 /* builtin_string.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_string.cpp; sourceTree = "<group>"; };
|
||||
D05F59361F041AE4003EE978 /* builtin_status.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_status.h; sourceTree = "<group>"; };
|
||||
D05F59371F041AE4003EE978 /* builtin_status.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_status.cpp; sourceTree = "<group>"; };
|
||||
D05F59381F041AE4003EE978 /* builtin_source.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_source.h; sourceTree = "<group>"; };
|
||||
D05F59391F041AE4003EE978 /* builtin_source.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_source.cpp; sourceTree = "<group>"; };
|
||||
D05F593A1F041AE4003EE978 /* builtin_set.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_set.h; sourceTree = "<group>"; };
|
||||
D05F593B1F041AE4003EE978 /* builtin_set.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_set.cpp; sourceTree = "<group>"; };
|
||||
D05F593C1F041AE4003EE978 /* builtin_set_color.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_set_color.h; sourceTree = "<group>"; };
|
||||
D05F593D1F041AE4003EE978 /* builtin_set_color.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_set_color.cpp; sourceTree = "<group>"; };
|
||||
D05F593E1F041AE4003EE978 /* builtin_return.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_return.h; sourceTree = "<group>"; };
|
||||
D05F593F1F041AE4003EE978 /* builtin_return.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_return.cpp; sourceTree = "<group>"; };
|
||||
D05F59401F041AE4003EE978 /* builtin_realpath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_realpath.h; sourceTree = "<group>"; };
|
||||
D05F59411F041AE4003EE978 /* builtin_realpath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_realpath.cpp; sourceTree = "<group>"; };
|
||||
D05F59421F041AE4003EE978 /* builtin_read.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_read.h; sourceTree = "<group>"; };
|
||||
D05F59431F041AE4003EE978 /* builtin_read.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_read.cpp; sourceTree = "<group>"; };
|
||||
D05F59441F041AE4003EE978 /* builtin_random.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_random.h; sourceTree = "<group>"; };
|
||||
D05F59451F041AE4003EE978 /* builtin_random.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_random.cpp; sourceTree = "<group>"; };
|
||||
D05F59461F041AE4003EE978 /* builtin_pwd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_pwd.h; sourceTree = "<group>"; };
|
||||
D05F59471F041AE4003EE978 /* builtin_pwd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_pwd.cpp; sourceTree = "<group>"; };
|
||||
D05F59481F041AE4003EE978 /* builtin_printf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_printf.h; sourceTree = "<group>"; };
|
||||
D05F59491F041AE4003EE978 /* builtin_printf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_printf.cpp; sourceTree = "<group>"; };
|
||||
D05F594A1F041AE4003EE978 /* builtin_jobs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_jobs.h; sourceTree = "<group>"; };
|
||||
D05F594B1F041AE4003EE978 /* builtin_jobs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_jobs.cpp; sourceTree = "<group>"; };
|
||||
D05F594C1F041AE4003EE978 /* builtin_history.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_history.h; sourceTree = "<group>"; };
|
||||
D05F594D1F041AE4003EE978 /* builtin_history.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_history.cpp; sourceTree = "<group>"; };
|
||||
D05F594E1F041AE4003EE978 /* builtin_functions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_functions.h; sourceTree = "<group>"; };
|
||||
D05F594F1F041AE4003EE978 /* builtin_functions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_functions.cpp; sourceTree = "<group>"; };
|
||||
D05F59501F041AE4003EE978 /* builtin_function.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_function.h; sourceTree = "<group>"; };
|
||||
D05F59511F041AE4003EE978 /* builtin_function.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_function.cpp; sourceTree = "<group>"; };
|
||||
D05F59521F041AE4003EE978 /* builtin_fg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_fg.h; sourceTree = "<group>"; };
|
||||
D05F59531F041AE4003EE978 /* builtin_fg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_fg.cpp; sourceTree = "<group>"; };
|
||||
D05F59541F041AE4003EE978 /* builtin_exit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_exit.h; sourceTree = "<group>"; };
|
||||
D05F59551F041AE4003EE978 /* builtin_exit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_exit.cpp; sourceTree = "<group>"; };
|
||||
D05F59561F041AE4003EE978 /* builtin_emit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_emit.h; sourceTree = "<group>"; };
|
||||
D05F59571F041AE4003EE978 /* builtin_emit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_emit.cpp; sourceTree = "<group>"; };
|
||||
D05F59581F041AE4003EE978 /* builtin_echo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_echo.h; sourceTree = "<group>"; };
|
||||
D05F59591F041AE4003EE978 /* builtin_echo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_echo.cpp; sourceTree = "<group>"; };
|
||||
D05F595A1F041AE4003EE978 /* builtin_disown.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_disown.h; sourceTree = "<group>"; };
|
||||
D05F595B1F041AE4003EE978 /* builtin_disown.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_disown.cpp; sourceTree = "<group>"; };
|
||||
D05F595C1F041AE4003EE978 /* builtin_contains.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_contains.h; sourceTree = "<group>"; };
|
||||
D05F595D1F041AE4003EE978 /* builtin_contains.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_contains.cpp; sourceTree = "<group>"; };
|
||||
D05F595E1F041AE4003EE978 /* builtin_complete.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_complete.h; sourceTree = "<group>"; };
|
||||
D05F595F1F041AE4003EE978 /* builtin_complete.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_complete.cpp; sourceTree = "<group>"; };
|
||||
D05F59601F041AE4003EE978 /* builtin_commandline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_commandline.h; sourceTree = "<group>"; };
|
||||
D05F59611F041AE4003EE978 /* builtin_commandline.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_commandline.cpp; sourceTree = "<group>"; };
|
||||
D05F59621F041AE4003EE978 /* builtin_command.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_command.h; sourceTree = "<group>"; };
|
||||
D05F59631F041AE4003EE978 /* builtin_command.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_command.cpp; sourceTree = "<group>"; };
|
||||
D05F59641F041AE4003EE978 /* builtin_cd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_cd.h; sourceTree = "<group>"; };
|
||||
D05F59651F041AE4003EE978 /* builtin_cd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_cd.cpp; sourceTree = "<group>"; };
|
||||
D05F59661F041AE4003EE978 /* builtin_builtin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_builtin.h; sourceTree = "<group>"; };
|
||||
D05F59671F041AE4003EE978 /* builtin_builtin.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_builtin.cpp; sourceTree = "<group>"; };
|
||||
D05F59681F041AE4003EE978 /* builtin_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_block.h; sourceTree = "<group>"; };
|
||||
D05F59691F041AE4003EE978 /* builtin_block.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_block.cpp; sourceTree = "<group>"; };
|
||||
D05F596A1F041AE4003EE978 /* builtin_bind.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_bind.h; sourceTree = "<group>"; };
|
||||
D05F596B1F041AE4003EE978 /* builtin_bind.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_bind.cpp; sourceTree = "<group>"; };
|
||||
D05F596C1F041AE4003EE978 /* builtin_bg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin_bg.h; sourceTree = "<group>"; };
|
||||
D05F596D1F041AE4003EE978 /* builtin_bg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_bg.cpp; sourceTree = "<group>"; };
|
||||
D07B247215BCC15700D4ADB4 /* add-shell */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = "add-shell"; path = "build_tools/osx_package_scripts/add-shell"; sourceTree = "<group>"; };
|
||||
D07B247515BCC4BE00D4ADB4 /* install.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = install.sh; path = osx/install.sh; sourceTree = "<group>"; };
|
||||
D0879AC616BF9A1A00E98E56 /* fish_term_icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = fish_term_icon.icns; path = osx/fish_term_icon.icns; sourceTree = "<group>"; };
|
||||
D09B1C1914FC7B5B00F91077 /* postfork.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = postfork.cpp; sourceTree = "<group>"; };
|
||||
D09B1C1A14FC7B5B00F91077 /* postfork.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = postfork.h; sourceTree = "<group>"; };
|
||||
D0A0850313B3ACEE0099B651 /* builtin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = builtin.h; sourceTree = "<group>"; };
|
||||
D0A0850413B3ACEE0099B651 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = "<group>"; };
|
||||
D0A0850513B3ACEE0099B651 /* complete.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = complete.h; sourceTree = "<group>"; };
|
||||
D0A0850713B3ACEE0099B651 /* env_universal_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = env_universal_common.h; sourceTree = "<group>"; };
|
||||
@@ -644,12 +796,6 @@
|
||||
D0A0852713B3ACEE0099B651 /* wgetopt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wgetopt.h; sourceTree = "<group>"; };
|
||||
D0A0852813B3ACEE0099B651 /* wildcard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wildcard.h; sourceTree = "<group>"; };
|
||||
D0A0852913B3ACEE0099B651 /* wutil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wutil.h; sourceTree = "<group>"; };
|
||||
D0A0853013B3ACEE0099B651 /* builtin_commandline.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_commandline.cpp; sourceTree = "<group>"; };
|
||||
D0A0853113B3ACEE0099B651 /* builtin_complete.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_complete.cpp; sourceTree = "<group>"; };
|
||||
D0A0853213B3ACEE0099B651 /* builtin_jobs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_jobs.cpp; sourceTree = "<group>"; };
|
||||
D0A0853313B3ACEE0099B651 /* builtin_set.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_set.cpp; sourceTree = "<group>"; };
|
||||
D0A0853413B3ACEE0099B651 /* builtin_ulimit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_ulimit.cpp; sourceTree = "<group>"; };
|
||||
D0A0853513B3ACEE0099B651 /* builtin.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = builtin.cpp; sourceTree = "<group>"; };
|
||||
D0A0853613B3ACEE0099B651 /* common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = common.cpp; sourceTree = "<group>"; };
|
||||
D0A0853713B3ACEE0099B651 /* complete.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = complete.cpp; sourceTree = "<group>"; };
|
||||
D0A0853813B3ACEE0099B651 /* env_universal_common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = env_universal_common.cpp; sourceTree = "<group>"; };
|
||||
@@ -696,10 +842,8 @@
|
||||
D0C52F361765284C00BFAB82 /* parse_tree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parse_tree.h; sourceTree = "<group>"; };
|
||||
D0C6FCC914CFA4B0004CE8AD /* autoload.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = autoload.cpp; sourceTree = "<group>"; };
|
||||
D0C6FCCB14CFA4B7004CE8AD /* autoload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = autoload.h; sourceTree = "<group>"; };
|
||||
D0C861EA16CC7054003B5A04 /* builtin_set_color.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_set_color.cpp; sourceTree = "<group>"; };
|
||||
D0C9733718DE5449002D7C81 /* utf8.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = utf8.cpp; sourceTree = "<group>"; };
|
||||
D0C9733A18DE5451002D7C81 /* utf8.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utf8.h; sourceTree = "<group>"; };
|
||||
D0CA63F316FC275F00093BD4 /* builtin_printf.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_printf.cpp; sourceTree = "<group>"; };
|
||||
D0CBD580159EE48F0024809C /* config.fish */ = {isa = PBXFileReference; lastKnownFileType = text; name = config.fish; path = share/config.fish; sourceTree = "<group>"; };
|
||||
D0CBD583159EEE010024809C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
D0CBD586159EF0E10024809C /* launch_fish.scpt */ = {isa = PBXFileReference; lastKnownFileType = file; name = launch_fish.scpt; path = osx/launch_fish.scpt; sourceTree = "<group>"; };
|
||||
@@ -710,7 +854,6 @@
|
||||
D0D02AFA159871B2008E62BD /* osx_fish_launcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = osx_fish_launcher.m; path = osx/osx_fish_launcher.m; sourceTree = "<group>"; };
|
||||
D0D2693C159835CA005D9B9C /* fish */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = fish; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0D9B2B318555D92001AE279 /* parse_constants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = parse_constants.h; sourceTree = "<group>"; };
|
||||
D0F3373A1506DE3C00ECEFC0 /* builtin_test.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = builtin_test.cpp; sourceTree = "<group>"; };
|
||||
D0F5B46319CFCDE80090665E /* wcstringutil.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wcstringutil.cpp; sourceTree = "<group>"; };
|
||||
D0F5B46419CFCDE80090665E /* wcstringutil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wcstringutil.h; sourceTree = "<group>"; };
|
||||
D0FE8EE6179CA8A5008C9F21 /* parse_productions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parse_productions.h; sourceTree = "<group>"; };
|
||||
@@ -817,7 +960,7 @@
|
||||
D04F7FF71BA4E82C00B0F227 /* pcre2_chartables.c.dist */,
|
||||
);
|
||||
name = pcre;
|
||||
path = "pcre2-10.21/src";
|
||||
path = "pcre2-10.22/src";
|
||||
sourceTree = SOURCE_ROOT;
|
||||
};
|
||||
D08A328E17B4455100F3A533 /* fish_tests */ = {
|
||||
@@ -830,6 +973,8 @@
|
||||
D0A084F013B3AC130099B651 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CBB7725C1F1496AF00780A21 /* fish-shell */,
|
||||
CBB7725B1F14964100780A21 /* fish-shell */,
|
||||
D0D02A91159845EF008E62BD /* Sources */,
|
||||
D0D02AFC159871BF008E62BD /* Launcher */,
|
||||
D0D02A8E15983D5F008E62BD /* Libraries */,
|
||||
@@ -852,30 +997,76 @@
|
||||
D0D02A91159845EF008E62BD /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CB0F034A1F156FE3001827D3 /* builtin_argparse.cpp */,
|
||||
CB0F034B1F156FE3001827D3 /* builtin_argparse.h */,
|
||||
9C7A557C1DCD717C0049C25D /* fish_key_reader.cpp */,
|
||||
9C7A55731DCD716F0049C25D /* builtin_commandline.h */,
|
||||
9C7A55741DCD716F0049C25D /* builtin_complete.h */,
|
||||
9C7A55751DCD716F0049C25D /* builtin_jobs.h */,
|
||||
9C7A55761DCD716F0049C25D /* builtin_printf.h */,
|
||||
9C7A55771DCD716F0049C25D /* builtin_set_color.h */,
|
||||
9C7A55781DCD716F0049C25D /* builtin_set.h */,
|
||||
9C7A55791DCD716F0049C25D /* builtin_string.h */,
|
||||
9C7A557A1DCD716F0049C25D /* builtin_test.h */,
|
||||
9C7A557B1DCD716F0049C25D /* builtin_ulimit.h */,
|
||||
4E142D731B56B5D7008783C8 /* config.h */,
|
||||
D0C6FCCB14CFA4B7004CE8AD /* autoload.h */,
|
||||
D0C6FCC914CFA4B0004CE8AD /* autoload.cpp */,
|
||||
D0A0850313B3ACEE0099B651 /* builtin.h */,
|
||||
D0A0853013B3ACEE0099B651 /* builtin_commandline.cpp */,
|
||||
D0A0853113B3ACEE0099B651 /* builtin_complete.cpp */,
|
||||
D0A0853213B3ACEE0099B651 /* builtin_jobs.cpp */,
|
||||
D0A0853313B3ACEE0099B651 /* builtin_set.cpp */,
|
||||
D0C861EA16CC7054003B5A04 /* builtin_set_color.cpp */,
|
||||
D0A0853413B3ACEE0099B651 /* builtin_ulimit.cpp */,
|
||||
D0F3373A1506DE3C00ECEFC0 /* builtin_test.cpp */,
|
||||
D0CA63F316FC275F00093BD4 /* builtin_printf.cpp */,
|
||||
D04F7F7B1BA4BF4000B0F227 /* builtin_string.cpp */,
|
||||
D0A0853513B3ACEE0099B651 /* builtin.cpp */,
|
||||
D05F592E1F041AE4003EE978 /* builtin.h */,
|
||||
D05F592F1F041AE4003EE978 /* builtin.cpp */,
|
||||
D05F59301F041AE4003EE978 /* builtin_ulimit.h */,
|
||||
D05F59311F041AE4003EE978 /* builtin_ulimit.cpp */,
|
||||
D05F59321F041AE4003EE978 /* builtin_test.h */,
|
||||
D05F59331F041AE4003EE978 /* builtin_test.cpp */,
|
||||
D05F59341F041AE4003EE978 /* builtin_string.h */,
|
||||
D05F59351F041AE4003EE978 /* builtin_string.cpp */,
|
||||
D05F59361F041AE4003EE978 /* builtin_status.h */,
|
||||
D05F59371F041AE4003EE978 /* builtin_status.cpp */,
|
||||
D05F59381F041AE4003EE978 /* builtin_source.h */,
|
||||
D05F59391F041AE4003EE978 /* builtin_source.cpp */,
|
||||
D05F593A1F041AE4003EE978 /* builtin_set.h */,
|
||||
D05F593B1F041AE4003EE978 /* builtin_set.cpp */,
|
||||
D05F593C1F041AE4003EE978 /* builtin_set_color.h */,
|
||||
D05F593D1F041AE4003EE978 /* builtin_set_color.cpp */,
|
||||
D05F593E1F041AE4003EE978 /* builtin_return.h */,
|
||||
D05F593F1F041AE4003EE978 /* builtin_return.cpp */,
|
||||
D05F59401F041AE4003EE978 /* builtin_realpath.h */,
|
||||
D05F59411F041AE4003EE978 /* builtin_realpath.cpp */,
|
||||
D05F59421F041AE4003EE978 /* builtin_read.h */,
|
||||
D05F59431F041AE4003EE978 /* builtin_read.cpp */,
|
||||
D05F59441F041AE4003EE978 /* builtin_random.h */,
|
||||
D05F59451F041AE4003EE978 /* builtin_random.cpp */,
|
||||
D05F59461F041AE4003EE978 /* builtin_pwd.h */,
|
||||
D05F59471F041AE4003EE978 /* builtin_pwd.cpp */,
|
||||
D05F59481F041AE4003EE978 /* builtin_printf.h */,
|
||||
D05F59491F041AE4003EE978 /* builtin_printf.cpp */,
|
||||
D05F594A1F041AE4003EE978 /* builtin_jobs.h */,
|
||||
D05F594B1F041AE4003EE978 /* builtin_jobs.cpp */,
|
||||
D05F594C1F041AE4003EE978 /* builtin_history.h */,
|
||||
D05F594D1F041AE4003EE978 /* builtin_history.cpp */,
|
||||
D05F594E1F041AE4003EE978 /* builtin_functions.h */,
|
||||
D05F594F1F041AE4003EE978 /* builtin_functions.cpp */,
|
||||
D05F59501F041AE4003EE978 /* builtin_function.h */,
|
||||
D05F59511F041AE4003EE978 /* builtin_function.cpp */,
|
||||
D05F59521F041AE4003EE978 /* builtin_fg.h */,
|
||||
D05F59531F041AE4003EE978 /* builtin_fg.cpp */,
|
||||
D05F59541F041AE4003EE978 /* builtin_exit.h */,
|
||||
D05F59551F041AE4003EE978 /* builtin_exit.cpp */,
|
||||
D05F59561F041AE4003EE978 /* builtin_emit.h */,
|
||||
D05F59571F041AE4003EE978 /* builtin_emit.cpp */,
|
||||
D05F59581F041AE4003EE978 /* builtin_echo.h */,
|
||||
D05F59591F041AE4003EE978 /* builtin_echo.cpp */,
|
||||
D05F595A1F041AE4003EE978 /* builtin_disown.h */,
|
||||
D05F595B1F041AE4003EE978 /* builtin_disown.cpp */,
|
||||
D05F595C1F041AE4003EE978 /* builtin_contains.h */,
|
||||
D05F595D1F041AE4003EE978 /* builtin_contains.cpp */,
|
||||
D05F595E1F041AE4003EE978 /* builtin_complete.h */,
|
||||
D05F595F1F041AE4003EE978 /* builtin_complete.cpp */,
|
||||
D05F59601F041AE4003EE978 /* builtin_commandline.h */,
|
||||
D05F59611F041AE4003EE978 /* builtin_commandline.cpp */,
|
||||
D05F59621F041AE4003EE978 /* builtin_command.h */,
|
||||
D05F59631F041AE4003EE978 /* builtin_command.cpp */,
|
||||
D05F59641F041AE4003EE978 /* builtin_cd.h */,
|
||||
D05F59651F041AE4003EE978 /* builtin_cd.cpp */,
|
||||
D05F59661F041AE4003EE978 /* builtin_builtin.h */,
|
||||
D05F59671F041AE4003EE978 /* builtin_builtin.cpp */,
|
||||
D05F59681F041AE4003EE978 /* builtin_block.h */,
|
||||
D05F59691F041AE4003EE978 /* builtin_block.cpp */,
|
||||
D05F596A1F041AE4003EE978 /* builtin_bind.h */,
|
||||
D05F596B1F041AE4003EE978 /* builtin_bind.cpp */,
|
||||
D05F596C1F041AE4003EE978 /* builtin_bg.h */,
|
||||
D05F596D1F041AE4003EE978 /* builtin_bg.cpp */,
|
||||
D0B6B0FF14E88BA400AD6C10 /* color.h */,
|
||||
D0B6B0FE14E88BA400AD6C10 /* color.cpp */,
|
||||
D0A0850413B3ACEE0099B651 /* common.h */,
|
||||
@@ -973,6 +1164,7 @@
|
||||
D0D02AAB15985C14008E62BD /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
9CC8D8C41F7AF0610095062A /* lynx.lss */,
|
||||
D0879AC616BF9A1A00E98E56 /* fish_term_icon.icns */,
|
||||
D07B247215BCC15700D4ADB4 /* add-shell */,
|
||||
D0CBD586159EF0E10024809C /* launch_fish.scpt */,
|
||||
@@ -1369,18 +1561,42 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D001B5EE1F041CBD000838CC /* builtin.cpp in Sources */,
|
||||
D02DE6831FB2CD5E0049D8D8 /* builtin_argparse.cpp in Sources */,
|
||||
D001B5F01F041CBD000838CC /* builtin_ulimit.cpp in Sources */,
|
||||
D001B5F21F041CBD000838CC /* builtin_test.cpp in Sources */,
|
||||
D001B5F41F041CBD000838CC /* builtin_string.cpp in Sources */,
|
||||
D001B5F61F041CBD000838CC /* builtin_status.cpp in Sources */,
|
||||
D001B5F81F041CBD000838CC /* builtin_source.cpp in Sources */,
|
||||
D001B5FA1F041CBD000838CC /* builtin_set.cpp in Sources */,
|
||||
D001B5FC1F041CBD000838CC /* builtin_set_color.cpp in Sources */,
|
||||
D001B5FE1F041CBD000838CC /* builtin_return.cpp in Sources */,
|
||||
D001B6001F041CBD000838CC /* builtin_realpath.cpp in Sources */,
|
||||
D001B6021F041CBD000838CC /* builtin_read.cpp in Sources */,
|
||||
D001B6041F041CBD000838CC /* builtin_random.cpp in Sources */,
|
||||
D001B6061F041CBD000838CC /* builtin_pwd.cpp in Sources */,
|
||||
D001B6081F041CBD000838CC /* builtin_printf.cpp in Sources */,
|
||||
D001B60A1F041CBD000838CC /* builtin_jobs.cpp in Sources */,
|
||||
D001B60C1F041CBD000838CC /* builtin_history.cpp in Sources */,
|
||||
D001B60E1F041CBD000838CC /* builtin_functions.cpp in Sources */,
|
||||
D001B6101F041CBD000838CC /* builtin_function.cpp in Sources */,
|
||||
D001B6121F041CBD000838CC /* builtin_fg.cpp in Sources */,
|
||||
D001B6141F041CBD000838CC /* builtin_exit.cpp in Sources */,
|
||||
D001B6161F041CBD000838CC /* builtin_emit.cpp in Sources */,
|
||||
D001B6181F041CBD000838CC /* builtin_echo.cpp in Sources */,
|
||||
D001B61A1F041CBD000838CC /* builtin_disown.cpp in Sources */,
|
||||
D001B61C1F041CBD000838CC /* builtin_contains.cpp in Sources */,
|
||||
D001B61E1F041CBD000838CC /* builtin_complete.cpp in Sources */,
|
||||
D001B6201F041CBD000838CC /* builtin_commandline.cpp in Sources */,
|
||||
D001B6221F041CBD000838CC /* builtin_command.cpp in Sources */,
|
||||
D001B6241F041CBD000838CC /* builtin_cd.cpp in Sources */,
|
||||
D001B6261F041CBD000838CC /* builtin_builtin.cpp in Sources */,
|
||||
D001B6281F041CBD000838CC /* builtin_block.cpp in Sources */,
|
||||
D001B62A1F041CBD000838CC /* builtin_bind.cpp in Sources */,
|
||||
D001B62C1F041CBD000838CC /* builtin_bg.cpp in Sources */,
|
||||
9C7A557E1DCD71CD0049C25D /* print_help.cpp in Sources */,
|
||||
9C7A557D1DCD71890049C25D /* fish_key_reader.cpp in Sources */,
|
||||
9C7A55361DCD71330049C25D /* autoload.cpp in Sources */,
|
||||
9C7A55371DCD71330049C25D /* builtin_commandline.cpp in Sources */,
|
||||
9C7A55381DCD71330049C25D /* builtin_complete.cpp in Sources */,
|
||||
9C7A55391DCD71330049C25D /* builtin_jobs.cpp in Sources */,
|
||||
9C7A553A1DCD71330049C25D /* builtin_set.cpp in Sources */,
|
||||
9C7A553B1DCD71330049C25D /* builtin_set_color.cpp in Sources */,
|
||||
9C7A553C1DCD71330049C25D /* builtin_ulimit.cpp in Sources */,
|
||||
9C7A553D1DCD71330049C25D /* builtin_test.cpp in Sources */,
|
||||
9C7A553E1DCD71330049C25D /* builtin_printf.cpp in Sources */,
|
||||
9C7A553F1DCD71330049C25D /* builtin_string.cpp in Sources */,
|
||||
9C7A55401DCD71330049C25D /* color.cpp in Sources */,
|
||||
9C7A55411DCD71330049C25D /* common.cpp in Sources */,
|
||||
9C7A55421DCD71330049C25D /* event.cpp in Sources */,
|
||||
@@ -1394,7 +1610,6 @@
|
||||
9C7A554A1DCD71330049C25D /* screen.cpp in Sources */,
|
||||
9C7A554B1DCD71330049C25D /* signal.cpp in Sources */,
|
||||
9C7A554C1DCD71330049C25D /* utf8.cpp in Sources */,
|
||||
9C7A554D1DCD71330049C25D /* builtin.cpp in Sources */,
|
||||
9C7A554E1DCD71330049C25D /* function.cpp in Sources */,
|
||||
9C7A554F1DCD71330049C25D /* complete.cpp in Sources */,
|
||||
9C7A55501DCD71330049C25D /* env.cpp in Sources */,
|
||||
@@ -1431,18 +1646,21 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
9C7A552F1DCD65820049C25D /* util.cpp in Sources */,
|
||||
9C7A55281DCD65540049C25D /* builtin_commandline.cpp in Sources */,
|
||||
9C7A55291DCD65540049C25D /* builtin_complete.cpp in Sources */,
|
||||
9C7A552A1DCD65540049C25D /* builtin_jobs.cpp in Sources */,
|
||||
9C7A552B1DCD65540049C25D /* builtin_set.cpp in Sources */,
|
||||
9C7A552C1DCD65540049C25D /* builtin_set_color.cpp in Sources */,
|
||||
9C7A552D1DCD65540049C25D /* builtin_ulimit.cpp in Sources */,
|
||||
9C7A552E1DCD65540049C25D /* builtin_printf.cpp in Sources */,
|
||||
D05F59971F041AE4003EE978 /* builtin_printf.cpp in Sources */,
|
||||
D05F59A31F041AE4003EE978 /* builtin_function.cpp in Sources */,
|
||||
9C7A55271DCD651F0049C25D /* fallback.cpp in Sources */,
|
||||
D05F59CA1F041AE4003EE978 /* builtin_bind.cpp in Sources */,
|
||||
D05F59AF1F041AE4003EE978 /* builtin_echo.cpp in Sources */,
|
||||
D05F59A61F041AE4003EE978 /* builtin_fg.cpp in Sources */,
|
||||
D00769121990137800CA4627 /* autoload.cpp in Sources */,
|
||||
D00769131990137800CA4627 /* builtin_test.cpp in Sources */,
|
||||
D05F59BE1F041AE4003EE978 /* builtin_command.cpp in Sources */,
|
||||
D05F59AC1F041AE4003EE978 /* builtin_emit.cpp in Sources */,
|
||||
D00769141990137800CA4627 /* color.cpp in Sources */,
|
||||
D05F59731F041AE4003EE978 /* builtin_ulimit.cpp in Sources */,
|
||||
D05F59C71F041AE4003EE978 /* builtin_block.cpp in Sources */,
|
||||
D05F59CD1F041AE4003EE978 /* builtin_bg.cpp in Sources */,
|
||||
D00769151990137800CA4627 /* common.cpp in Sources */,
|
||||
D05F59B21F041AE4003EE978 /* builtin_disown.cpp in Sources */,
|
||||
D00769161990137800CA4627 /* event.cpp in Sources */,
|
||||
D00769171990137800CA4627 /* input_common.cpp in Sources */,
|
||||
D00769181990137800CA4627 /* io.cpp in Sources */,
|
||||
@@ -1450,39 +1668,59 @@
|
||||
D007691A1990137800CA4627 /* parse_util.cpp in Sources */,
|
||||
D007691B1990137800CA4627 /* path.cpp in Sources */,
|
||||
D007691C1990137800CA4627 /* parse_execution.cpp in Sources */,
|
||||
D05F59881F041AE4003EE978 /* builtin_return.cpp in Sources */,
|
||||
D007691D1990137800CA4627 /* postfork.cpp in Sources */,
|
||||
D05F598E1F041AE4003EE978 /* builtin_read.cpp in Sources */,
|
||||
D007691E1990137800CA4627 /* screen.cpp in Sources */,
|
||||
D007691F1990137800CA4627 /* signal.cpp in Sources */,
|
||||
D05F59C41F041AE4003EE978 /* builtin_builtin.cpp in Sources */,
|
||||
D05F59BB1F041AE4003EE978 /* builtin_commandline.cpp in Sources */,
|
||||
D05F59C11F041AE4003EE978 /* builtin_cd.cpp in Sources */,
|
||||
D05F59701F041AE4003EE978 /* builtin.cpp in Sources */,
|
||||
D00769201990137800CA4627 /* utf8.cpp in Sources */,
|
||||
D00769211990137800CA4627 /* builtin.cpp in Sources */,
|
||||
D05F599A1F041AE4003EE978 /* builtin_jobs.cpp in Sources */,
|
||||
D00769221990137800CA4627 /* function.cpp in Sources */,
|
||||
D00769231990137800CA4627 /* complete.cpp in Sources */,
|
||||
D00769241990137800CA4627 /* env.cpp in Sources */,
|
||||
D05F59A01F041AE4003EE978 /* builtin_functions.cpp in Sources */,
|
||||
D00769251990137800CA4627 /* exec.cpp in Sources */,
|
||||
D00769261990137800CA4627 /* expand.cpp in Sources */,
|
||||
D05F59941F041AE4003EE978 /* builtin_pwd.cpp in Sources */,
|
||||
D00769271990137800CA4627 /* fish_version.cpp in Sources */,
|
||||
D00769281990137800CA4627 /* highlight.cpp in Sources */,
|
||||
D00769291990137800CA4627 /* history.cpp in Sources */,
|
||||
D007692A1990137800CA4627 /* kill.cpp in Sources */,
|
||||
D007692B1990137800CA4627 /* parser.cpp in Sources */,
|
||||
D05F59791F041AE4003EE978 /* builtin_string.cpp in Sources */,
|
||||
D05F597C1F041AE4003EE978 /* builtin_status.cpp in Sources */,
|
||||
D007692C1990137800CA4627 /* parser_keywords.cpp in Sources */,
|
||||
D007692D1990137800CA4627 /* proc.cpp in Sources */,
|
||||
D007692E1990137800CA4627 /* reader.cpp in Sources */,
|
||||
D007692F1990137800CA4627 /* sanity.cpp in Sources */,
|
||||
CB0F034E1F156FE3001827D3 /* builtin_argparse.cpp in Sources */,
|
||||
D05F597F1F041AE4003EE978 /* builtin_source.cpp in Sources */,
|
||||
D05F59B51F041AE4003EE978 /* builtin_contains.cpp in Sources */,
|
||||
D05F59911F041AE4003EE978 /* builtin_random.cpp in Sources */,
|
||||
D00769301990137800CA4627 /* tokenizer.cpp in Sources */,
|
||||
D05F59761F041AE4003EE978 /* builtin_test.cpp in Sources */,
|
||||
D05F599D1F041AE4003EE978 /* builtin_history.cpp in Sources */,
|
||||
D0F5B46619CFCEBC0090665E /* wcstringutil.cpp in Sources */,
|
||||
D05F59B81F041AE4003EE978 /* builtin_complete.cpp in Sources */,
|
||||
D00769311990137800CA4627 /* wildcard.cpp in Sources */,
|
||||
D00769321990137800CA4627 /* wgetopt.cpp in Sources */,
|
||||
D00769331990137800CA4627 /* wutil.cpp in Sources */,
|
||||
D00769341990137800CA4627 /* input.cpp in Sources */,
|
||||
D04F7F7D1BA4BF4000B0F227 /* builtin_string.cpp in Sources */,
|
||||
D05F59821F041AE4003EE978 /* builtin_set.cpp in Sources */,
|
||||
D00769351990137800CA4627 /* output.cpp in Sources */,
|
||||
D00769361990137800CA4627 /* intern.cpp in Sources */,
|
||||
D05F59A91F041AE4003EE978 /* builtin_exit.cpp in Sources */,
|
||||
D00769371990137800CA4627 /* env_universal_common.cpp in Sources */,
|
||||
D05F59851F041AE4003EE978 /* builtin_set_color.cpp in Sources */,
|
||||
D00769381990137800CA4627 /* pager.cpp in Sources */,
|
||||
D007693A1990137800CA4627 /* parse_tree.cpp in Sources */,
|
||||
D007693B1990137800CA4627 /* parse_productions.cpp in Sources */,
|
||||
D0076943199013B900CA4627 /* fish_tests.cpp in Sources */,
|
||||
D05F598B1F041AE4003EE978 /* builtin_realpath.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -1521,42 +1759,62 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D05F59BD1F041AE4003EE978 /* builtin_command.cpp in Sources */,
|
||||
D030FBF41A4A38F300F7ADA0 /* autoload.cpp in Sources */,
|
||||
D030FBF51A4A38F300F7ADA0 /* builtin.cpp in Sources */,
|
||||
D01243591CD3DAD100C64313 /* builtin_commandline.cpp in Sources */,
|
||||
D012435A1CD3DAD100C64313 /* builtin_complete.cpp in Sources */,
|
||||
D012435B1CD3DAD100C64313 /* builtin_jobs.cpp in Sources */,
|
||||
D012435C1CD3DAD100C64313 /* builtin_set.cpp in Sources */,
|
||||
D012435D1CD3DAD100C64313 /* builtin_set_color.cpp in Sources */,
|
||||
D012435E1CD3DAD100C64313 /* builtin_ulimit.cpp in Sources */,
|
||||
D030FC151A4A391900F7ADA0 /* builtin_test.cpp in Sources */,
|
||||
D012435F1CD3DAD100C64313 /* builtin_printf.cpp in Sources */,
|
||||
D04F7FF01BA4E5B900B0F227 /* builtin_string.cpp in Sources */,
|
||||
D05F59BA1F041AE4003EE978 /* builtin_commandline.cpp in Sources */,
|
||||
D030FBF61A4A38F300F7ADA0 /* color.cpp in Sources */,
|
||||
D0D02AD81598649E008E62BD /* common.cpp in Sources */,
|
||||
D030FBF71A4A38F300F7ADA0 /* complete.cpp in Sources */,
|
||||
D030FBF81A4A38F300F7ADA0 /* env_universal_common.cpp in Sources */,
|
||||
D030FBF91A4A38F300F7ADA0 /* env.cpp in Sources */,
|
||||
D030FBF01A4A382B00F7ADA0 /* event.cpp in Sources */,
|
||||
D05F59B11F041AE4003EE978 /* builtin_disown.cpp in Sources */,
|
||||
D030FBFA1A4A38F300F7ADA0 /* exec.cpp in Sources */,
|
||||
D05F597E1F041AE4003EE978 /* builtin_source.cpp in Sources */,
|
||||
D05F597B1F041AE4003EE978 /* builtin_status.cpp in Sources */,
|
||||
D05F59811F041AE4003EE978 /* builtin_set.cpp in Sources */,
|
||||
D030FBFB1A4A38F300F7ADA0 /* expand.cpp in Sources */,
|
||||
D030FBFC1A4A38F300F7ADA0 /* parse_productions.cpp in Sources */,
|
||||
D030FBFD1A4A38F300F7ADA0 /* parse_tree.cpp in Sources */,
|
||||
D05F598A1F041AE4003EE978 /* builtin_realpath.cpp in Sources */,
|
||||
D05F59931F041AE4003EE978 /* builtin_pwd.cpp in Sources */,
|
||||
D030FBFE1A4A38F300F7ADA0 /* parse_execution.cpp in Sources */,
|
||||
D05F59A81F041AE4003EE978 /* builtin_exit.cpp in Sources */,
|
||||
D012436B1CD4019700C64313 /* fallback.cpp in Sources */,
|
||||
D05F59CC1F041AE4003EE978 /* builtin_bg.cpp in Sources */,
|
||||
D05F59AB1F041AE4003EE978 /* builtin_emit.cpp in Sources */,
|
||||
D05F59961F041AE4003EE978 /* builtin_printf.cpp in Sources */,
|
||||
D030FC001A4A38F300F7ADA0 /* function.cpp in Sources */,
|
||||
CB0F034D1F156FE3001827D3 /* builtin_argparse.cpp in Sources */,
|
||||
D05F59C61F041AE4003EE978 /* builtin_block.cpp in Sources */,
|
||||
D05F59C91F041AE4003EE978 /* builtin_bind.cpp in Sources */,
|
||||
D05F599C1F041AE4003EE978 /* builtin_history.cpp in Sources */,
|
||||
D05F599F1F041AE4003EE978 /* builtin_functions.cpp in Sources */,
|
||||
D030FC011A4A38F300F7ADA0 /* highlight.cpp in Sources */,
|
||||
D05F59841F041AE4003EE978 /* builtin_set_color.cpp in Sources */,
|
||||
D05F59AE1F041AE4003EE978 /* builtin_echo.cpp in Sources */,
|
||||
D05F59721F041AE4003EE978 /* builtin_ulimit.cpp in Sources */,
|
||||
D05F59781F041AE4003EE978 /* builtin_string.cpp in Sources */,
|
||||
D030FC021A4A38F300F7ADA0 /* history.cpp in Sources */,
|
||||
D030FC031A4A38F300F7ADA0 /* input_common.cpp in Sources */,
|
||||
D030FBEF1A4A382000F7ADA0 /* input.cpp in Sources */,
|
||||
D05F59A21F041AE4003EE978 /* builtin_function.cpp in Sources */,
|
||||
D05F59871F041AE4003EE978 /* builtin_return.cpp in Sources */,
|
||||
D05F59901F041AE4003EE978 /* builtin_random.cpp in Sources */,
|
||||
D030FC041A4A38F300F7ADA0 /* intern.cpp in Sources */,
|
||||
D030FC051A4A38F300F7ADA0 /* io.cpp in Sources */,
|
||||
D030FC061A4A38F300F7ADA0 /* iothread.cpp in Sources */,
|
||||
D05F59751F041AE4003EE978 /* builtin_test.cpp in Sources */,
|
||||
D030FC071A4A38F300F7ADA0 /* kill.cpp in Sources */,
|
||||
D030FBF11A4A384000F7ADA0 /* output.cpp in Sources */,
|
||||
D05F59B41F041AE4003EE978 /* builtin_contains.cpp in Sources */,
|
||||
D030FC081A4A38F300F7ADA0 /* pager.cpp in Sources */,
|
||||
D030FC091A4A38F300F7ADA0 /* parse_util.cpp in Sources */,
|
||||
D0D02AD9159864A6008E62BD /* parser_keywords.cpp in Sources */,
|
||||
D05F59A51F041AE4003EE978 /* builtin_fg.cpp in Sources */,
|
||||
D05F596F1F041AE4003EE978 /* builtin.cpp in Sources */,
|
||||
D05F598D1F041AE4003EE978 /* builtin_read.cpp in Sources */,
|
||||
D05F59C31F041AE4003EE978 /* builtin_builtin.cpp in Sources */,
|
||||
D030FC0A1A4A38F300F7ADA0 /* parser.cpp in Sources */,
|
||||
D030FC0B1A4A38F300F7ADA0 /* path.cpp in Sources */,
|
||||
D030FC0C1A4A38F300F7ADA0 /* postfork.cpp in Sources */,
|
||||
@@ -1574,6 +1832,9 @@
|
||||
D0D02ADA159864AB008E62BD /* wutil.cpp in Sources */,
|
||||
D01243691CD4015C00C64313 /* util.cpp in Sources */,
|
||||
D0D02AD615986492008E62BD /* fish_indent.cpp in Sources */,
|
||||
D05F59C01F041AE4003EE978 /* builtin_cd.cpp in Sources */,
|
||||
D05F59991F041AE4003EE978 /* builtin_jobs.cpp in Sources */,
|
||||
D05F59B71F041AE4003EE978 /* builtin_complete.cpp in Sources */,
|
||||
D00F63F219137E9D00FCCDEC /* fish_version.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@@ -1583,19 +1844,21 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0D02A7C159839D5008E62BD /* autoload.cpp in Sources */,
|
||||
D01243601CD3DAE200C64313 /* builtin_commandline.cpp in Sources */,
|
||||
D01243611CD3DAE200C64313 /* builtin_complete.cpp in Sources */,
|
||||
D01243621CD3DAE200C64313 /* builtin_jobs.cpp in Sources */,
|
||||
D01243631CD3DAE200C64313 /* builtin_set.cpp in Sources */,
|
||||
D01243641CD3DAE200C64313 /* builtin_set_color.cpp in Sources */,
|
||||
D01243651CD3DAE200C64313 /* builtin_ulimit.cpp in Sources */,
|
||||
D0D02A7D159839D5008E62BD /* builtin_test.cpp in Sources */,
|
||||
D01243661CD3DAE200C64313 /* builtin_printf.cpp in Sources */,
|
||||
D04F7F7C1BA4BF4000B0F227 /* builtin_string.cpp in Sources */,
|
||||
D05F59951F041AE4003EE978 /* builtin_printf.cpp in Sources */,
|
||||
D05F59A11F041AE4003EE978 /* builtin_function.cpp in Sources */,
|
||||
D0D02A7E159839D5008E62BD /* color.cpp in Sources */,
|
||||
D05F59C81F041AE4003EE978 /* builtin_bind.cpp in Sources */,
|
||||
D05F59AD1F041AE4003EE978 /* builtin_echo.cpp in Sources */,
|
||||
D05F59A41F041AE4003EE978 /* builtin_fg.cpp in Sources */,
|
||||
D0D02A7F159839D5008E62BD /* common.cpp in Sources */,
|
||||
D05F59BC1F041AE4003EE978 /* builtin_command.cpp in Sources */,
|
||||
D05F59AA1F041AE4003EE978 /* builtin_emit.cpp in Sources */,
|
||||
D0D02A80159839D5008E62BD /* event.cpp in Sources */,
|
||||
D05F59711F041AE4003EE978 /* builtin_ulimit.cpp in Sources */,
|
||||
D05F59C51F041AE4003EE978 /* builtin_block.cpp in Sources */,
|
||||
D05F59CB1F041AE4003EE978 /* builtin_bg.cpp in Sources */,
|
||||
D0D02A81159839D5008E62BD /* input_common.cpp in Sources */,
|
||||
D05F59B01F041AE4003EE978 /* builtin_disown.cpp in Sources */,
|
||||
D0D02A82159839D5008E62BD /* io.cpp in Sources */,
|
||||
D0D02A83159839D5008E62BD /* iothread.cpp in Sources */,
|
||||
D0D02A84159839D5008E62BD /* parse_util.cpp in Sources */,
|
||||
@@ -1603,38 +1866,59 @@
|
||||
D052D80B1868F7FC003ABCBD /* parse_execution.cpp in Sources */,
|
||||
D0D02A86159839D5008E62BD /* postfork.cpp in Sources */,
|
||||
D0D02A87159839D5008E62BD /* screen.cpp in Sources */,
|
||||
D05F59861F041AE4003EE978 /* builtin_return.cpp in Sources */,
|
||||
D0D02A88159839D5008E62BD /* signal.cpp in Sources */,
|
||||
D05F598C1F041AE4003EE978 /* builtin_read.cpp in Sources */,
|
||||
D0C9733818DE5449002D7C81 /* utf8.cpp in Sources */,
|
||||
D0D2694A15983779005D9B9C /* builtin.cpp in Sources */,
|
||||
D0D2694915983772005D9B9C /* function.cpp in Sources */,
|
||||
D05F59C21F041AE4003EE978 /* builtin_builtin.cpp in Sources */,
|
||||
D05F59B91F041AE4003EE978 /* builtin_commandline.cpp in Sources */,
|
||||
D05F59BF1F041AE4003EE978 /* builtin_cd.cpp in Sources */,
|
||||
D05F596E1F041AE4003EE978 /* builtin.cpp in Sources */,
|
||||
D0D02A67159837AD008E62BD /* complete.cpp in Sources */,
|
||||
D05F59981F041AE4003EE978 /* builtin_jobs.cpp in Sources */,
|
||||
D0D02A69159837B2008E62BD /* env.cpp in Sources */,
|
||||
D0D02A6A1598381A008E62BD /* exec.cpp in Sources */,
|
||||
D0F5B46519CFCDE80090665E /* wcstringutil.cpp in Sources */,
|
||||
D05F599E1F041AE4003EE978 /* builtin_functions.cpp in Sources */,
|
||||
D0D02A6B1598381F008E62BD /* expand.cpp in Sources */,
|
||||
D012436A1CD4018100C64313 /* fallback.cpp in Sources */,
|
||||
D05F59921F041AE4003EE978 /* builtin_pwd.cpp in Sources */,
|
||||
D00F63F119137E9D00FCCDEC /* fish_version.cpp in Sources */,
|
||||
D0D02A6C15983829008E62BD /* highlight.cpp in Sources */,
|
||||
D0D02A6D1598382C008E62BD /* history.cpp in Sources */,
|
||||
D0D02A6E15983838008E62BD /* kill.cpp in Sources */,
|
||||
D0D02A6F1598383E008E62BD /* parser.cpp in Sources */,
|
||||
D05F59771F041AE4003EE978 /* builtin_string.cpp in Sources */,
|
||||
D05F597A1F041AE4003EE978 /* builtin_status.cpp in Sources */,
|
||||
D0D02A8F15983D8F008E62BD /* parser_keywords.cpp in Sources */,
|
||||
D0D02A7015983842008E62BD /* proc.cpp in Sources */,
|
||||
D0D02A7115983848008E62BD /* reader.cpp in Sources */,
|
||||
D0D02A721598384C008E62BD /* sanity.cpp in Sources */,
|
||||
CB0F034C1F156FE3001827D3 /* builtin_argparse.cpp in Sources */,
|
||||
D05F597D1F041AE4003EE978 /* builtin_source.cpp in Sources */,
|
||||
D05F59B31F041AE4003EE978 /* builtin_contains.cpp in Sources */,
|
||||
D05F598F1F041AE4003EE978 /* builtin_random.cpp in Sources */,
|
||||
D0D02A7315983852008E62BD /* tokenizer.cpp in Sources */,
|
||||
D05F59741F041AE4003EE978 /* builtin_test.cpp in Sources */,
|
||||
D05F599B1F041AE4003EE978 /* builtin_history.cpp in Sources */,
|
||||
D0D02A7415983857008E62BD /* wildcard.cpp in Sources */,
|
||||
D05F59B61F041AE4003EE978 /* builtin_complete.cpp in Sources */,
|
||||
D0D02A751598385E008E62BD /* wgetopt.cpp in Sources */,
|
||||
D0D02A7615983869008E62BD /* wutil.cpp in Sources */,
|
||||
D0D02A7715983875008E62BD /* input.cpp in Sources */,
|
||||
D0D02A781598387E008E62BD /* output.cpp in Sources */,
|
||||
D05F59801F041AE4003EE978 /* builtin_set.cpp in Sources */,
|
||||
D0D02A7915983888008E62BD /* intern.cpp in Sources */,
|
||||
D0D02A7B15983928008E62BD /* env_universal_common.cpp in Sources */,
|
||||
D05F59A71F041AE4003EE978 /* builtin_exit.cpp in Sources */,
|
||||
D032388B1849D1980032CF2C /* pager.cpp in Sources */,
|
||||
D05F59831F041AE4003EE978 /* builtin_set_color.cpp in Sources */,
|
||||
D0D02A89159839DF008E62BD /* fish.cpp in Sources */,
|
||||
D0C52F371765284C00BFAB82 /* parse_tree.cpp in Sources */,
|
||||
D0FE8EE8179FB760008C9F21 /* parse_productions.cpp in Sources */,
|
||||
D01243681CD4015600C64313 /* util.cpp in Sources */,
|
||||
D05F59891F041AE4003EE978 /* builtin_realpath.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -1743,7 +2027,6 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
LLVM_LTO = YES_THIN;
|
||||
@@ -1769,7 +2052,6 @@
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
COPY_PHASE_STRIP = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
LLVM_LTO = YES_THIN;
|
||||
@@ -1880,7 +2162,7 @@
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_ENABLE_CPP_EXCEPTIONS = NO;
|
||||
@@ -2008,7 +2290,6 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
COPY_PHASE_STRIP = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
EXECUTABLE_NAME = fish_launcher;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
@@ -2042,7 +2323,6 @@
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
COPY_PHASE_STRIP = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
LLVM_LTO = YES_THIN;
|
||||
@@ -2066,7 +2346,6 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
LLVM_LTO = YES_THIN;
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
language = ""
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
@@ -36,6 +37,7 @@
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
language = ""
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
language = ""
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
@@ -36,6 +37,7 @@
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
language = ""
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
|
||||
@@ -135,9 +135,9 @@ s|<sm [^>]*>|@smtc{|
|
||||
s|</sm>|}|
|
||||
#.
|
||||
# ERrOR
|
||||
s|<error>|@eror{|
|
||||
s|<error [^>]*>|@eror{|
|
||||
s|</error>|}|
|
||||
s|<eror>|@eror{|
|
||||
s|<eror [^>]*>|@eror{|
|
||||
s|</eror>|}|
|
||||
#.
|
||||
# AsIs - protect from auto-formatting
|
||||
s|<asis>|@asis{|
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>2.5.0</string>
|
||||
<string>2.7.1</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>0.1</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
/* Define to 1 if you have the `clock_gettime' function. */
|
||||
/* #undef HAVE_CLOCK_GETTIME */
|
||||
|
||||
/* Define to 1 if you have the `ctermid_r' function. */
|
||||
#define HAVE_CTERMID_R 1
|
||||
|
||||
/* Define to 1 if you have the <curses.h> header file. */
|
||||
#define HAVE_CURSES_H 1
|
||||
|
||||
@@ -197,7 +200,7 @@
|
||||
#define PACKAGE_NAME "fish"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "fish 2.5.0"
|
||||
#define PACKAGE_STRING "fish 2.7.1"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "fish"
|
||||
@@ -206,7 +209,7 @@
|
||||
#define PACKAGE_URL ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "2.5.0"
|
||||
#define PACKAGE_VERSION "2.7.1"
|
||||
|
||||
/* The size of `wchar_t', as computed by sizeof. */
|
||||
#define SIZEOF_WCHAR_T 4
|
||||
|
||||
@@ -112,6 +112,9 @@ sure both macros are undefined; an emulation function will then be used. */
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/wait.h> header file. */
|
||||
#define HAVE_SYS_WAIT_H 1
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
@@ -170,6 +173,9 @@ sure both macros are undefined; an emulation function will then be used. */
|
||||
overflow caused by enormously large patterns. */
|
||||
#define MAX_NAME_SIZE 32
|
||||
|
||||
/* Defining NEVER_BACKSLASH_C locks out the use of \C in all patterns. */
|
||||
/* #undef NEVER_BACKSLASH_C */
|
||||
|
||||
/* The value of NEWLINE_DEFAULT determines the default newline character
|
||||
sequence. PCRE2 client programs can override this by selecting other values
|
||||
at run time. The valid values are 1 (CR), 2 (LF), 3 (CRLF), 4 (ANY), and 5
|
||||
@@ -186,7 +192,7 @@ sure both macros are undefined; an emulation function will then be used. */
|
||||
#define PACKAGE_NAME "PCRE2"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "PCRE2 10.20"
|
||||
#define PACKAGE_STRING "PCRE2 10.22"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "pcre2"
|
||||
@@ -195,7 +201,7 @@ sure both macros are undefined; an emulation function will then be used. */
|
||||
#define PACKAGE_URL ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "10.20"
|
||||
#define PACKAGE_VERSION "10.22"
|
||||
|
||||
/* The value of PARENS_NEST_LIMIT specifies the maximum depth of nested
|
||||
parentheses (of any kind) in a pattern. This limits the amount of system
|
||||
@@ -234,7 +240,7 @@ sure both macros are undefined; an emulation function will then be used. */
|
||||
#define PCRE2_EXP_DEFN __attribute__ ((visibility ("default")))
|
||||
|
||||
/* Define to any value if linking statically (TODO: make nice with Libtool) */
|
||||
#define PCRE2_STATIC 1
|
||||
/* #undef PCRE2_STATIC */
|
||||
|
||||
/* Define to necessary symbol if this constant uses a non-standard name on
|
||||
your system. */
|
||||
@@ -260,6 +266,9 @@ sure both macros are undefined; an emulation function will then be used. */
|
||||
is able to handle .gz files. */
|
||||
/* #undef SUPPORT_LIBZ */
|
||||
|
||||
/* Define to any value to enable callout script support in pcre2grep. */
|
||||
#define SUPPORT_PCRE2GREP_CALLOUT /**/
|
||||
|
||||
/* Define to any value to enable JIT support in pcre2grep. */
|
||||
/* #undef SUPPORT_PCRE2GREP_JIT */
|
||||
|
||||
@@ -267,10 +276,10 @@ sure both macros are undefined; an emulation function will then be used. */
|
||||
/* #undef SUPPORT_PCRE2_16 */
|
||||
|
||||
/* Define to any value to enable the 32 bit PCRE2 library. */
|
||||
#define SUPPORT_PCRE2_32 /**/
|
||||
/* #undef SUPPORT_PCRE2_32 */
|
||||
|
||||
/* Define to any value to enable the 8 bit PCRE2 library. */
|
||||
/* #undef SUPPORT_PCRE2_8 */
|
||||
#define SUPPORT_PCRE2_8 /**/
|
||||
|
||||
/* Define to any value to enable support for Unicode and UTF encoding. This
|
||||
will work even in an EBCDIC environment, but it is incompatible with the
|
||||
@@ -282,7 +291,7 @@ sure both macros are undefined; an emulation function will then be used. */
|
||||
/* #undef SUPPORT_VALGRIND */
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "10.20"
|
||||
#define VERSION "10.22"
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
/* #undef const */
|
||||
|
||||
@@ -42,9 +42,9 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||
/* The current PCRE version information. */
|
||||
|
||||
#define PCRE2_MAJOR 10
|
||||
#define PCRE2_MINOR 21
|
||||
#define PCRE2_MINOR 22
|
||||
#define PCRE2_PRERELEASE
|
||||
#define PCRE2_DATE 2016-01-12
|
||||
#define PCRE2_DATE 2016-07-29
|
||||
|
||||
/* When an application links to a PCRE DLL in Windows, the symbols that are
|
||||
imported have to be identified as such. When building PCRE2, the appropriate
|
||||
@@ -146,7 +146,8 @@ sanity checks). */
|
||||
#define PCRE2_DFA_RESTART 0x00000040u
|
||||
#define PCRE2_DFA_SHORTEST 0x00000080u
|
||||
|
||||
/* These are additional options for pcre2_substitute(). */
|
||||
/* These are additional options for pcre2_substitute(), which passes any others
|
||||
through to pcre2_match(). */
|
||||
|
||||
#define PCRE2_SUBSTITUTE_GLOBAL 0x00000100u
|
||||
#define PCRE2_SUBSTITUTE_EXTENDED 0x00000200u
|
||||
@@ -154,6 +155,11 @@ sanity checks). */
|
||||
#define PCRE2_SUBSTITUTE_UNKNOWN_UNSET 0x00000800u
|
||||
#define PCRE2_SUBSTITUTE_OVERFLOW_LENGTH 0x00001000u
|
||||
|
||||
/* A further option for pcre2_match(), not allowed for pcre2_dfa_match(),
|
||||
ignored for pcre2_jit_match(). */
|
||||
|
||||
#define PCRE2_NO_JIT 0x00002000u
|
||||
|
||||
/* Newline and \R settings, for use in compile contexts. The newline values
|
||||
must be kept in step with values set in config.h and both sets must all be
|
||||
greater than zero. */
|
||||
@@ -245,6 +251,7 @@ numbers must not be changed. */
|
||||
#define PCRE2_ERROR_BADSUBSTITUTION (-59)
|
||||
#define PCRE2_ERROR_BADSUBSPATTERN (-60)
|
||||
#define PCRE2_ERROR_TOOMANYREPLACE (-61)
|
||||
#define PCRE2_ERROR_BADSERIALIZEDDATA (-62)
|
||||
|
||||
/* Request types for pcre2_pattern_info() */
|
||||
|
||||
@@ -436,7 +443,9 @@ PCRE2_EXP_DECL int pcre2_set_recursion_memory_management( \
|
||||
PCRE2_EXP_DECL \
|
||||
pcre2_code *pcre2_compile(PCRE2_SPTR, PCRE2_SIZE, uint32_t, \
|
||||
int *, PCRE2_SIZE *, pcre2_compile_context *); \
|
||||
PCRE2_EXP_DECL void pcre2_code_free(pcre2_code *);
|
||||
PCRE2_EXP_DECL void pcre2_code_free(pcre2_code *); \
|
||||
PCRE2_EXP_DECL \
|
||||
pcre2_code *pcre2_code_copy(const pcre2_code *);
|
||||
|
||||
|
||||
/* Functions that give information about a compiled pattern. */
|
||||
@@ -585,6 +594,7 @@ pcre2_compile are called by application code. */
|
||||
/* Functions: the complete list in alphabetical order */
|
||||
|
||||
#define pcre2_callout_enumerate PCRE2_SUFFIX(pcre2_callout_enumerate_)
|
||||
#define pcre2_code_copy PCRE2_SUFFIX(pcre2_code_copy_)
|
||||
#define pcre2_code_free PCRE2_SUFFIX(pcre2_code_free_)
|
||||
#define pcre2_compile PCRE2_SUFFIX(pcre2_compile_)
|
||||
#define pcre2_compile_context_copy PCRE2_SUFFIX(pcre2_compile_context_copy_)
|
||||
|
||||
@@ -71,6 +71,9 @@
|
||||
# 2015-07-16 PH updated for new pcre2_find_bracket source module
|
||||
# 2015-08-24 PH correct C_FLAGS setting (patch from Roy Ivy III)
|
||||
# 2015-10=16 PH added support for never-backslash-C
|
||||
# 2016-03-01 PH applied Chris Wilson's patch for MSVC static
|
||||
# 2016-06-24 PH applied Chris Wilson's second patch, putting the first under
|
||||
# a new option instead of being unconditional.
|
||||
|
||||
PROJECT(PCRE2 C)
|
||||
|
||||
@@ -157,6 +160,9 @@ SET(PCRE2_SUPPORT_JIT OFF CACHE BOOL
|
||||
SET(PCRE2_SUPPORT_PCRE2GREP_JIT ON CACHE BOOL
|
||||
"Enable use of Just-in-time compiling in pcre2grep.")
|
||||
|
||||
SET(PCRE2_SUPPORT_PCRE2GREP_CALLOUT ON CACHE BOOL
|
||||
"Enable callout string support in pcre2grep.")
|
||||
|
||||
SET(PCRE2_SUPPORT_UNICODE ON CACHE BOOL
|
||||
"Enable support for Unicode and UTF-8/UTF-16/UTF-32 encoding.")
|
||||
|
||||
@@ -184,6 +190,9 @@ IF (MINGW)
|
||||
ENDIF(MINGW)
|
||||
|
||||
IF(MSVC)
|
||||
OPTION(PCRE_STATIC_RUNTIME OFF CACHE BOOL
|
||||
"ON=Compile against the static runtime (/MT)."
|
||||
OFF)
|
||||
OPTION(INSTALL_MSVC_PDB
|
||||
"ON=Install .pdb files built by MSVC, if generated"
|
||||
OFF)
|
||||
@@ -272,6 +281,10 @@ IF(PCRE2_SUPPORT_PCRE2GREP_JIT)
|
||||
SET(SUPPORT_PCRE2GREP_JIT 1)
|
||||
ENDIF(PCRE2_SUPPORT_PCRE2GREP_JIT)
|
||||
|
||||
IF(PCRE2_SUPPORT_PCRE2GREP_CALLOUT)
|
||||
SET(SUPPORT_PCRE2GREP_CALLOUT 1)
|
||||
ENDIF(PCRE2_SUPPORT_PCRE2GREP_CALLOUT)
|
||||
|
||||
IF(PCRE2_SUPPORT_VALGRIND)
|
||||
SET(SUPPORT_VALGRIND 1)
|
||||
ENDIF(PCRE2_SUPPORT_VALGRIND)
|
||||
@@ -456,6 +469,18 @@ SET(PCRE2POSIX_SOURCES
|
||||
ENDIF (EXISTS ${PROJECT_SOURCE_DIR}/pcre2posix.rc)
|
||||
ENDIF(MSVC AND NOT PCRE2_STATIC)
|
||||
|
||||
# Fix static compilation with MSVC: https://bugs.exim.org/show_bug.cgi?id=1681
|
||||
# This code was taken from the CMake wiki, not from WebM.
|
||||
|
||||
IF(MSVC AND PCRE2_STATIC_RUNTIME)
|
||||
MESSAGE(STATUS "** MSVC and PCRE2_STATIC_RUNTIME: modifying compiler flags to use static runtime library")
|
||||
foreach(flag_var
|
||||
CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
|
||||
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO)
|
||||
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
|
||||
endforeach()
|
||||
ENDIF(MSVC AND PCRE2_STATIC_RUNTIME)
|
||||
|
||||
# Build setup
|
||||
|
||||
ADD_DEFINITIONS(-DHAVE_CONFIG_H)
|
||||
@@ -740,6 +765,7 @@ IF(PCRE2_SHOW_REPORT)
|
||||
MESSAGE(STATUS " Build static libs ............... : ${BUILD_STATIC_LIBS}")
|
||||
MESSAGE(STATUS " Build pcre2grep ................. : ${PCRE2_BUILD_PCRE2GREP}")
|
||||
MESSAGE(STATUS " Enable JIT in pcre2grep ......... : ${PCRE2_SUPPORT_PCRE2GREP_JIT}")
|
||||
MESSAGE(STATUS " Enable callouts in pcre2grep .... : ${PCRE2_SUPPORT_PCRE2GREP_CALLOUT}")
|
||||
MESSAGE(STATUS " Buffer size for pcre2grep ....... : ${PCRE2GREP_BUFSIZE}")
|
||||
MESSAGE(STATUS " Build tests (implies pcre2test . : ${PCRE2_BUILD_TESTS}")
|
||||
MESSAGE(STATUS " and pcre2grep)")
|
||||
178
pcre2-10.21/ChangeLog → pcre2-10.22/ChangeLog
vendored
178
pcre2-10.21/ChangeLog → pcre2-10.22/ChangeLog
vendored
@@ -1,6 +1,182 @@
|
||||
Change Log for PCRE2
|
||||
--------------------
|
||||
|
||||
|
||||
Version 10.22 29-July-2016
|
||||
--------------------------
|
||||
|
||||
1. Applied Jason Hood's patches to RunTest.bat and testdata/wintestoutput3
|
||||
to fix problems with running the tests under Windows.
|
||||
|
||||
2. Implemented a facility for quoting literal characters within hexadecimal
|
||||
patterns in pcre2test, to make it easier to create patterns with just a few
|
||||
non-printing characters.
|
||||
|
||||
3. Binary zeros are not supported in pcre2test input files. It now detects them
|
||||
and gives an error.
|
||||
|
||||
4. Updated the valgrind parameters in RunTest: (a) changed smc-check=all to
|
||||
smc-check=all-non-file; (b) changed obj:* in the suppression file to obj:??? so
|
||||
that it matches only unknown objects.
|
||||
|
||||
5. Updated the maintenance script maint/ManyConfigTests to make it easier to
|
||||
select individual groups of tests.
|
||||
|
||||
6. When the POSIX wrapper function regcomp() is called, the REG_NOSUB option
|
||||
used to set PCRE2_NO_AUTO_CAPTURE when calling pcre2_compile(). However, this
|
||||
disables the use of back references (and subroutine calls), which are supported
|
||||
by other implementations of regcomp() with RE_NOSUB. Therefore, REG_NOSUB no
|
||||
longer causes PCRE2_NO_AUTO_CAPTURE to be set, though it still ignores nmatch
|
||||
and pmatch when regexec() is called.
|
||||
|
||||
7. Because of 6 above, pcre2test has been modified with a new modifier called
|
||||
posix_nosub, to call regcomp() with REG_NOSUB. Previously the no_auto_capture
|
||||
modifier had this effect. That option is now ignored when the POSIX API is in
|
||||
use.
|
||||
|
||||
8. Minor tidies to the pcre2demo.c sample program, including more comments
|
||||
about its 8-bit-ness.
|
||||
|
||||
9. Detect unmatched closing parentheses and give the error in the pre-scan
|
||||
instead of later. Previously the pre-scan carried on and could give a
|
||||
misleading incorrect error message. For example, /(?J)(?'a'))(?'a')/ gave a
|
||||
message about invalid duplicate group names.
|
||||
|
||||
10. It has happened that pcre2test was accidentally linked with another POSIX
|
||||
regex library instead of libpcre2-posix. In this situation, a call to regcomp()
|
||||
(in the other library) may succeed, returning zero, but of course putting its
|
||||
own data into the regex_t block. In one example the re_pcre2_code field was
|
||||
left as NULL, which made pcre2test think it had not got a compiled POSIX regex,
|
||||
so it treated the next line as another pattern line, resulting in a confusing
|
||||
error message. A check has been added to pcre2test to see if the data returned
|
||||
from a successful call of regcomp() are valid for PCRE2's regcomp(). If they
|
||||
are not, an error message is output and the pcre2test run is abandoned. The
|
||||
message points out the possibility of a mis-linking. Hopefully this will avoid
|
||||
some head-scratching the next time this happens.
|
||||
|
||||
11. A pattern such as /(?<=((?C)0))/, which has a callout inside a lookbehind
|
||||
assertion, caused pcre2test to output a very large number of spaces when the
|
||||
callout was taken, making the program appearing to loop.
|
||||
|
||||
12. A pattern that included (*ACCEPT) in the middle of a sufficiently deeply
|
||||
nested set of parentheses of sufficient size caused an overflow of the
|
||||
compiling workspace (which was diagnosed, but of course is not desirable).
|
||||
|
||||
13. Detect missing closing parentheses during the pre-pass for group
|
||||
identification.
|
||||
|
||||
14. Changed some integer variable types and put in a number of casts, following
|
||||
a report of compiler warnings from Visual Studio 2013 and a few tests with
|
||||
gcc's -Wconversion (which still throws up a lot).
|
||||
|
||||
15. Implemented pcre2_code_copy(), and added pushcopy and #popcopy to pcre2test
|
||||
for testing it.
|
||||
|
||||
16. Change 66 for 10.21 introduced the use of snprintf() in PCRE2's version of
|
||||
regerror(). When the error buffer is too small, my version of snprintf() puts a
|
||||
binary zero in the final byte. Bug #1801 seems to show that other versions do
|
||||
not do this, leading to bad output from pcre2test when it was checking for
|
||||
buffer overflow. It no longer assumes a binary zero at the end of a too-small
|
||||
regerror() buffer.
|
||||
|
||||
17. Fixed typo ("&&" for "&") in pcre2_study(). Fortunately, this could not
|
||||
actually affect anything, by sheer luck.
|
||||
|
||||
18. Two minor fixes for MSVC compilation: (a) removal of apparently incorrect
|
||||
"const" qualifiers in pcre2test and (b) defining snprintf as _snprintf for
|
||||
older MSVC compilers. This has been done both in src/pcre2_internal.h for most
|
||||
of the library, and also in src/pcre2posix.c, which no longer includes
|
||||
pcre2_internal.h (see 24 below).
|
||||
|
||||
19. Applied Chris Wilson's patch (Bugzilla #1681) to CMakeLists.txt for MSVC
|
||||
static compilation. Subsequently applied Chris Wilson's second patch, putting
|
||||
the first patch under a new option instead of being unconditional when
|
||||
PCRE_STATIC is set.
|
||||
|
||||
20. Updated pcre2grep to set stdout as binary when run under Windows, so as not
|
||||
to convert \r\n at the ends of reflected lines into \r\r\n. This required
|
||||
ensuring that other output that is written to stdout (e.g. file names) uses the
|
||||
appropriate line terminator: \r\n for Windows, \n otherwise.
|
||||
|
||||
21. When a line is too long for pcre2grep's internal buffer, show the maximum
|
||||
length in the error message.
|
||||
|
||||
22. Added support for string callouts to pcre2grep (Zoltan's patch with PH
|
||||
additions).
|
||||
|
||||
23. RunTest.bat was missing a "set type" line for test 22.
|
||||
|
||||
24. The pcre2posix.c file was including pcre2_internal.h, and using some
|
||||
"private" knowledge of the data structures. This is unnecessary; the code has
|
||||
been re-factored and no longer includes pcre2_internal.h.
|
||||
|
||||
25. A racing condition is fixed in JIT reported by Mozilla.
|
||||
|
||||
26. Minor code refactor to avoid "array subscript is below array bounds"
|
||||
compiler warning.
|
||||
|
||||
27. Minor code refactor to avoid "left shift of negative number" warning.
|
||||
|
||||
28. Add a bit more sanity checking to pcre2_serialize_decode() and document
|
||||
that it expects trusted data.
|
||||
|
||||
29. Fix typo in pcre2_jit_test.c
|
||||
|
||||
30. Due to an oversight, pcre2grep was not making use of JIT when available.
|
||||
This is now fixed.
|
||||
|
||||
31. The RunGrepTest script is updated to use the valgrind suppressions file
|
||||
when testing with JIT under valgrind (compare 10.21/51 below). The suppressions
|
||||
file is updated so that is now the same as for PCRE1: it suppresses the
|
||||
Memcheck warnings Addr16 and Cond in unknown objects (that is, JIT-compiled
|
||||
code). Also changed smc-check=all to smc-check=all-non-file as was done for
|
||||
RunTest (see 4 above).
|
||||
|
||||
32. Implemented the PCRE2_NO_JIT option for pcre2_match().
|
||||
|
||||
33. Fix typo that gave a compiler error when JIT not supported.
|
||||
|
||||
34. Fix comment describing the returns from find_fixedlength().
|
||||
|
||||
35. Fix potential negative index in pcre2test.
|
||||
|
||||
36. Calls to pcre2_get_error_message() with error numbers that are never
|
||||
returned by PCRE2 functions were returning empty strings. Now the error code
|
||||
PCRE2_ERROR_BADDATA is returned. A facility has been added to pcre2test to
|
||||
show the texts for given error numbers (i.e. to call pcre2_get_error_message()
|
||||
and display what it returns) and a few representative error codes are now
|
||||
checked in RunTest.
|
||||
|
||||
37. Added "&& !defined(__INTEL_COMPILER)" to the test for __GNUC__ in
|
||||
pcre2_match.c, in anticipation that this is needed for the same reason it was
|
||||
recently added to pcrecpp.cc in PCRE1.
|
||||
|
||||
38. Using -o with -M in pcre2grep could cause unnecessary repeated output when
|
||||
the match extended over a line boundary, as it tried to find more matches "on
|
||||
the same line" - but it was already over the end.
|
||||
|
||||
39. Allow \C in lookbehinds and DFA matching in UTF-32 mode (by converting it
|
||||
to the same code as '.' when PCRE2_DOTALL is set).
|
||||
|
||||
40. Fix two clang compiler warnings in pcre2test when only one code unit width
|
||||
is supported.
|
||||
|
||||
41. Upgrade RunTest to automatically re-run test 2 with a large (64M) stack if
|
||||
it fails when running the interpreter with a 16M stack (and if changing the
|
||||
stack size via pcre2test is possible). This avoids having to manually set a
|
||||
large stack size when testing with clang.
|
||||
|
||||
42. Fix register overwite in JIT when SSE2 acceleration is enabled.
|
||||
|
||||
43. Detect integer overflow in pcre2test pattern and data repetition counts.
|
||||
|
||||
44. In pcre2test, ignore "allcaptures" after DFA matching.
|
||||
|
||||
45. Fix unaligned accesses on x86. Patch by Marc Mutz.
|
||||
|
||||
46. Fix some more clang compiler warnings.
|
||||
|
||||
|
||||
Version 10.21 12-January-2016
|
||||
-----------------------------
|
||||
|
||||
@@ -371,7 +547,7 @@ space or a #-type comment that was followed by (?-x), which turns off
|
||||
PCRE2_EXTENDED, and there was no subsequent (?x) to turn it on again,
|
||||
pcre2_compile() assumed that (?-x) applied to the whole pattern and
|
||||
consequently mis-compiled it. This bug was found by the LLVM fuzzer. The fix
|
||||
for this bug means that a setting of any of the (?imsxU) options at the start
|
||||
for this bug means that a setting of any of the (?imsxJU) options at the start
|
||||
of a pattern is no longer transferred to the options that are returned by
|
||||
PCRE2_INFO_ALLOPTIONS. In fact, this was an anachronism that should have
|
||||
changed when the effects of those options were all moved to compile time.
|
||||
7
pcre2-10.21/HACKING → pcre2-10.22/HACKING
vendored
7
pcre2-10.21/HACKING → pcre2-10.22/HACKING
vendored
@@ -228,6 +228,11 @@ OP_ASSERT_ACCEPT is used when (*ACCEPT) is encountered within an assertion.
|
||||
This ends the assertion, not the entire pattern match. The assertion (?!) is
|
||||
always optimized to OP_FAIL.
|
||||
|
||||
OP_ALLANY is used for '.' when PCRE2_DOTALL is set. It is also used for \C in
|
||||
non-UTF modes and in UTF-32 mode (since one code unit still equals one
|
||||
character). Another use is for [^] when empty classes are permitted
|
||||
(PCRE2_ALLOW_EMPTY_CLASS is set).
|
||||
|
||||
|
||||
Backtracking control verbs with optional data
|
||||
---------------------------------------------
|
||||
@@ -601,4 +606,4 @@ not a real opcode, but is used to check that tables indexed by opcode are the
|
||||
correct length, in order to catch updating errors.
|
||||
|
||||
Philip Hazel
|
||||
June 2015
|
||||
June 2016
|
||||
@@ -25,6 +25,7 @@ dist_html_DATA = \
|
||||
doc/html/pcre2-config.html \
|
||||
doc/html/pcre2.html \
|
||||
doc/html/pcre2_callout_enumerate.html \
|
||||
doc/html/pcre2_code_copy.html \
|
||||
doc/html/pcre2_code_free.html \
|
||||
doc/html/pcre2_compile.html \
|
||||
doc/html/pcre2_compile_context_copy.html \
|
||||
@@ -105,6 +106,7 @@ dist_man_MANS = \
|
||||
doc/pcre2-config.1 \
|
||||
doc/pcre2.3 \
|
||||
doc/pcre2_callout_enumerate.3 \
|
||||
doc/pcre2_code_copy.3 \
|
||||
doc/pcre2_code_free.3 \
|
||||
doc/pcre2_compile.3 \
|
||||
doc/pcre2_compile_context_copy.3 \
|
||||
@@ -568,6 +570,7 @@ EXTRA_DIST += \
|
||||
testdata/greplist \
|
||||
testdata/grepoutput \
|
||||
testdata/grepoutput8 \
|
||||
testdata/grepoutputC \
|
||||
testdata/grepoutputN \
|
||||
testdata/greppatN4 \
|
||||
testdata/testinput1 \
|
||||
@@ -832,6 +832,7 @@ dist_html_DATA = \
|
||||
doc/html/pcre2-config.html \
|
||||
doc/html/pcre2.html \
|
||||
doc/html/pcre2_callout_enumerate.html \
|
||||
doc/html/pcre2_code_copy.html \
|
||||
doc/html/pcre2_code_free.html \
|
||||
doc/html/pcre2_compile.html \
|
||||
doc/html/pcre2_compile_context_copy.html \
|
||||
@@ -912,6 +913,7 @@ dist_man_MANS = \
|
||||
doc/pcre2-config.1 \
|
||||
doc/pcre2.3 \
|
||||
doc/pcre2_callout_enumerate.3 \
|
||||
doc/pcre2_code_copy.3 \
|
||||
doc/pcre2_code_free.3 \
|
||||
doc/pcre2_compile.3 \
|
||||
doc/pcre2_compile_context_copy.3 \
|
||||
@@ -1053,16 +1055,17 @@ EXTRA_DIST = m4/ax_pthread.m4 m4/pcre2_visibility.m4 \
|
||||
testdata/grepfilelist testdata/grepinput testdata/grepinput3 \
|
||||
testdata/grepinput8 testdata/grepinputv testdata/grepinputx \
|
||||
testdata/greplist testdata/grepoutput testdata/grepoutput8 \
|
||||
testdata/grepoutputN testdata/greppatN4 testdata/testinput1 \
|
||||
testdata/testinput2 testdata/testinput3 testdata/testinput4 \
|
||||
testdata/testinput5 testdata/testinput6 testdata/testinput7 \
|
||||
testdata/testinput8 testdata/testinput9 testdata/testinput10 \
|
||||
testdata/testinput11 testdata/testinput12 testdata/testinput13 \
|
||||
testdata/testinput14 testdata/testinput15 testdata/testinput16 \
|
||||
testdata/testinput17 testdata/testinput18 testdata/testinput19 \
|
||||
testdata/testinput20 testdata/testinput21 testdata/testinput22 \
|
||||
testdata/testinput23 testdata/testinputEBC \
|
||||
testdata/testoutput1 testdata/testoutput2 testdata/testoutput3 \
|
||||
testdata/grepoutputC testdata/grepoutputN testdata/greppatN4 \
|
||||
testdata/testinput1 testdata/testinput2 testdata/testinput3 \
|
||||
testdata/testinput4 testdata/testinput5 testdata/testinput6 \
|
||||
testdata/testinput7 testdata/testinput8 testdata/testinput9 \
|
||||
testdata/testinput10 testdata/testinput11 testdata/testinput12 \
|
||||
testdata/testinput13 testdata/testinput14 testdata/testinput15 \
|
||||
testdata/testinput16 testdata/testinput17 testdata/testinput18 \
|
||||
testdata/testinput19 testdata/testinput20 testdata/testinput21 \
|
||||
testdata/testinput22 testdata/testinput23 \
|
||||
testdata/testinputEBC testdata/testoutput1 \
|
||||
testdata/testoutput2 testdata/testoutput3 \
|
||||
testdata/testoutput3A testdata/testoutput3B \
|
||||
testdata/testoutput4 testdata/testoutput5 testdata/testoutput6 \
|
||||
testdata/testoutput7 testdata/testoutput8-16-2 \
|
||||
22
pcre2-10.21/NEWS → pcre2-10.22/NEWS
vendored
22
pcre2-10.21/NEWS → pcre2-10.22/NEWS
vendored
@@ -1,6 +1,28 @@
|
||||
News about PCRE2 releases
|
||||
-------------------------
|
||||
|
||||
Version 10.22 29-July-2016
|
||||
--------------------------
|
||||
|
||||
1. ChangeLog has the details of a number of bug fixes.
|
||||
|
||||
2. The POSIX wrapper function regcomp() did not used to support back references
|
||||
and subroutine calls if called with the REG_NOSUB option. It now does.
|
||||
|
||||
3. A new function, pcre2_code_copy(), is added, to make a copy of a compiled
|
||||
pattern.
|
||||
|
||||
4. Support for string callouts is added to pcre2grep.
|
||||
|
||||
5. Added the PCRE2_NO_JIT option to pcre2_match().
|
||||
|
||||
6. The pcre2_get_error_message() function now returns with a negative error
|
||||
code if the error number it is given is unknown.
|
||||
|
||||
7. Several updates have been made to pcre2test and test scripts (see
|
||||
ChangeLog).
|
||||
|
||||
|
||||
Version 10.21 12-January-2016
|
||||
-----------------------------
|
||||
|
||||
19
pcre2-10.21/README → pcre2-10.22/README
vendored
19
pcre2-10.21/README → pcre2-10.22/README
vendored
@@ -168,15 +168,12 @@ library. They are also documented in the pcre2build man page.
|
||||
built. If you want only the 16-bit or 32-bit library, use --disable-pcre2-8
|
||||
to disable building the 8-bit library.
|
||||
|
||||
. If you want to include support for just-in-time compiling, which can give
|
||||
large performance improvements on certain platforms, add --enable-jit to the
|
||||
"configure" command. This support is available only for certain hardware
|
||||
. If you want to include support for just-in-time (JIT) compiling, which can
|
||||
give large performance improvements on certain platforms, add --enable-jit to
|
||||
the "configure" command. This support is available only for certain hardware
|
||||
architectures. If you try to enable it on an unsupported architecture, there
|
||||
will be a compile time error.
|
||||
|
||||
. When JIT support is enabled, pcre2grep automatically makes use of it, unless
|
||||
you add --disable-pcre2grep-jit to the "configure" command.
|
||||
|
||||
. If you do not want to make use of the support for UTF-8 Unicode character
|
||||
strings in the 8-bit library, UTF-16 Unicode character strings in the 16-bit
|
||||
library, or UTF-32 Unicode character strings in the 32-bit library, you can
|
||||
@@ -324,6 +321,14 @@ library. They are also documented in the pcre2build man page.
|
||||
running "make" to build PCRE2. There is more information about coverage
|
||||
reporting in the "pcre2build" documentation.
|
||||
|
||||
. When JIT support is enabled, pcre2grep automatically makes use of it, unless
|
||||
you add --disable-pcre2grep-jit to the "configure" command.
|
||||
|
||||
. On non-Windows sytems there is support for calling external scripts during
|
||||
matching in the pcre2grep command via PCRE2's callout facility with string
|
||||
arguments. This support can be disabled by adding --disable-pcre2grep-callout
|
||||
to the "configure" command.
|
||||
|
||||
. The pcre2grep program currently supports only 8-bit data files, and so
|
||||
requires the 8-bit PCRE2 library. It is possible to compile pcre2grep to use
|
||||
libz and/or libbz2, in order to read .gz and .bz2 files (respectively), by
|
||||
@@ -840,4 +845,4 @@ The distribution should contain the files listed below.
|
||||
Philip Hazel
|
||||
Email local part: ph10
|
||||
Email domain: cam.ac.uk
|
||||
Last updated: 16 October 2015
|
||||
Last updated: 01 April 2016
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user