mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-05-09 17:01:16 -03:00
Compare commits
727 Commits
Integratio
...
Integratio
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
54360d8cfe | ||
|
|
0b0d0e7799 | ||
|
|
c9c311fbdb | ||
|
|
e4ce5ca24f | ||
|
|
01fb830bf5 | ||
|
|
c18614552d | ||
|
|
9701d5cc7b | ||
|
|
a5f6382d77 | ||
|
|
b2f047421d | ||
|
|
dfe7813c02 | ||
|
|
ddbf63c46f | ||
|
|
c8fe0e53dd | ||
|
|
7bcae09674 | ||
|
|
9f23f619c9 | ||
|
|
070ef6fd5b | ||
|
|
5a8be61954 | ||
|
|
7fdbbe0711 | ||
|
|
8af6bb4436 | ||
|
|
31432c3535 | ||
|
|
e9543617f6 | ||
|
|
9c85dce863 | ||
|
|
bf3466d82c | ||
|
|
3eb7a8fa09 | ||
|
|
dcb39af8c0 | ||
|
|
8a2d6a9752 | ||
|
|
cc31cda835 | ||
|
|
b560daac21 | ||
|
|
8a7b30d3f0 | ||
|
|
d474368ea5 | ||
|
|
7e962d6f22 | ||
|
|
a26f68d63f | ||
|
|
bff6a6e66a | ||
|
|
f490b56378 | ||
|
|
dc6b538f56 | ||
|
|
4f397e86d7 | ||
|
|
d5ca88d42d | ||
|
|
f48fec31d6 | ||
|
|
0f65d9306b | ||
|
|
bb47dfcabc | ||
|
|
170a5ea31c | ||
|
|
4f95c4b8ac | ||
|
|
36352c0370 | ||
|
|
6d322dff73 | ||
|
|
fe8727fb71 | ||
|
|
44baf0f9bd | ||
|
|
4acfdcb0a0 | ||
|
|
e8ed45ecd3 | ||
|
|
3c0de01c07 | ||
|
|
1d418365b5 | ||
|
|
a3d0ea5c7f | ||
|
|
d35cbb6594 | ||
|
|
3663726689 | ||
|
|
cda415cb5d | ||
|
|
36f320598e | ||
|
|
d8497f0f1e | ||
|
|
f464704884 | ||
|
|
ea3e144f2d | ||
|
|
14efcb7cc5 | ||
|
|
4ffc6e02b7 | ||
|
|
f33ece11ac | ||
|
|
92e14d7e4a | ||
|
|
a5034874ab | ||
|
|
37c4247cb7 | ||
|
|
c07c98ac05 | ||
|
|
851e449347 | ||
|
|
213ef3ee56 | ||
|
|
30e56c0237 | ||
|
|
5d4fffcae4 | ||
|
|
8d40bf325d | ||
|
|
488a09fffb | ||
|
|
22558f9e7b | ||
|
|
b71aa8f9e8 | ||
|
|
8b9102d9fe | ||
|
|
4e1226a313 | ||
|
|
91a311c156 | ||
|
|
7fd3079bb6 | ||
|
|
f7f39b8c90 | ||
|
|
d389b22afc | ||
|
|
17f5727e7e | ||
|
|
61388cff02 | ||
|
|
d2739f10e1 | ||
|
|
a863f74fc4 | ||
|
|
41bf002049 | ||
|
|
632a209685 | ||
|
|
ce6e9b52ce | ||
|
|
0c23b5652a | ||
|
|
40a83e4018 | ||
|
|
53f1ebaf6b | ||
|
|
386f2bdcf4 | ||
|
|
c5b17b5310 | ||
|
|
36fe172932 | ||
|
|
94aeb47f63 | ||
|
|
ce1c9f3a65 | ||
|
|
45ae726d4f | ||
|
|
cd84587c3a | ||
|
|
c0c2e1d4fa | ||
|
|
d17f2585fa | ||
|
|
b05c09429d | ||
|
|
7ec205d59c | ||
|
|
b485d95808 | ||
|
|
eeea3f3b3c | ||
|
|
ca929e088e | ||
|
|
92dd6de73c | ||
|
|
01fa31f313 | ||
|
|
662ba60d63 | ||
|
|
f843eb3d31 | ||
|
|
e9b5505169 | ||
|
|
c2a8de4873 | ||
|
|
503edf2d49 | ||
|
|
4c34ba9959 | ||
|
|
204e79105a | ||
|
|
98470ab608 | ||
|
|
93bea5b321 | ||
|
|
2c8bc05826 | ||
|
|
8b1625be2b | ||
|
|
d71b97c2cf | ||
|
|
76c73aa8ce | ||
|
|
02ba7933e0 | ||
|
|
be0bd999ad | ||
|
|
92e3a3c8ef | ||
|
|
96ebfaaf87 | ||
|
|
30b71fbb78 | ||
|
|
fc3cd77c2f | ||
|
|
22c20f36cb | ||
|
|
46ab1a155c | ||
|
|
29b9e6705a | ||
|
|
ed7bf83b56 | ||
|
|
0a6dc2addb | ||
|
|
05b52eaa0b | ||
|
|
e14ae90cc8 | ||
|
|
06c658dd5e | ||
|
|
85cd372a4e | ||
|
|
f9115b5ef1 | ||
|
|
9d69f44550 | ||
|
|
c57b30cba1 | ||
|
|
bb754c2085 | ||
|
|
f7c6426b21 | ||
|
|
90e535f66f | ||
|
|
af95813514 | ||
|
|
82b298dcc5 | ||
|
|
ae32d0288b | ||
|
|
b17ebb4551 | ||
|
|
6faa2f9866 | ||
|
|
0335921c3c | ||
|
|
af0a2add10 | ||
|
|
87a532f533 | ||
|
|
fa837a2e4a | ||
|
|
f0125734d0 | ||
|
|
c0c8fffd50 | ||
|
|
2822dfc92d | ||
|
|
87fd9bca02 | ||
|
|
3d6cb59b31 | ||
|
|
6936e64b34 | ||
|
|
f78f51e2a7 | ||
|
|
578e4e8207 | ||
|
|
f7daa5884a | ||
|
|
f0e884075c | ||
|
|
363fa0a598 | ||
|
|
9f6ba5db7a | ||
|
|
cac3b239e3 | ||
|
|
b0716885bc | ||
|
|
a0623e870b | ||
|
|
7ce042ccff | ||
|
|
30f26b62e6 | ||
|
|
e89057b70c | ||
|
|
1bc887cd9f | ||
|
|
6b1801063b | ||
|
|
b895a50bb2 | ||
|
|
4b740d1fb6 | ||
|
|
e54b30d138 | ||
|
|
4b2d1c9acf | ||
|
|
8ca3adaa91 | ||
|
|
2345bea5c1 | ||
|
|
443fc66048 | ||
|
|
eeb42f5e54 | ||
|
|
35bee00802 | ||
|
|
3702616b60 | ||
|
|
3e30857e99 | ||
|
|
f37995c676 | ||
|
|
5328d6b83c | ||
|
|
172541c689 | ||
|
|
cfefaaf4ee | ||
|
|
0893134543 | ||
|
|
4f596536f5 | ||
|
|
2047351723 | ||
|
|
476ffe12f6 | ||
|
|
a872d9c299 | ||
|
|
b0184f1476 | ||
|
|
cb22354f83 | ||
|
|
4d04125fa1 | ||
|
|
ecaba64056 | ||
|
|
4906a5f390 | ||
|
|
f76e620be8 | ||
|
|
bfee664af3 | ||
|
|
4e2d2c125c | ||
|
|
f25d5a0f52 | ||
|
|
6d81e2b8a4 | ||
|
|
df0d0ae80a | ||
|
|
044efef577 | ||
|
|
8f0ea07eab | ||
|
|
b93ac10dda | ||
|
|
c99386a375 | ||
|
|
5dd959070c | ||
|
|
df10ffab9c | ||
|
|
9b5625a66b | ||
|
|
6f53709b65 | ||
|
|
9daffc7080 | ||
|
|
790968120d | ||
|
|
386c698d45 | ||
|
|
f3e93f0666 | ||
|
|
2a119ff082 | ||
|
|
2dbc7ddcb8 | ||
|
|
710addde16 | ||
|
|
ef5d3232e4 | ||
|
|
dc02587ac4 | ||
|
|
077a0e1b47 | ||
|
|
816857ead2 | ||
|
|
1248642996 | ||
|
|
a5e31cb0f1 | ||
|
|
27c88c870b | ||
|
|
67a594c12c | ||
|
|
e46978fedb | ||
|
|
7e0e745958 | ||
|
|
43515e1298 | ||
|
|
ccd62ff44b | ||
|
|
744da2cab2 | ||
|
|
b36414152b | ||
|
|
93b9e7443e | ||
|
|
b1f576deae | ||
|
|
01f09cf4c1 | ||
|
|
d68320a3c6 | ||
|
|
00cb9ce80a | ||
|
|
afa266a7ea | ||
|
|
3f9bd72bca | ||
|
|
fb845cdb72 | ||
|
|
8277f6a1ba | ||
|
|
d7604dcc99 | ||
|
|
71e1e38426 | ||
|
|
b77e2a67f8 | ||
|
|
e75fc8452f | ||
|
|
6c8ecab44b | ||
|
|
5da3d2f27b | ||
|
|
d51a1e4fe2 | ||
|
|
ee26eafc25 | ||
|
|
acfd380176 | ||
|
|
3a08a24259 | ||
|
|
0a51b17716 | ||
|
|
b12c413c28 | ||
|
|
375de96016 | ||
|
|
49008d7a1c | ||
|
|
e1ab6494cd | ||
|
|
5afd939f3e | ||
|
|
644ea82c2f | ||
|
|
450d4be88f | ||
|
|
3669805627 | ||
|
|
46fba342db | ||
|
|
5eedb0ee9c | ||
|
|
325f047803 | ||
|
|
c76f896f69 | ||
|
|
88688d02b2 | ||
|
|
ec292ec51b | ||
|
|
3a7a6f16ef | ||
|
|
3d0ea5fe79 | ||
|
|
d252704fdb | ||
|
|
dfe363c945 | ||
|
|
799d8ddfc4 | ||
|
|
99351fcb44 | ||
|
|
9bd5257dda | ||
|
|
10ae6d8b26 | ||
|
|
2fa4bd8fd7 | ||
|
|
3468fbc605 | ||
|
|
34ca8fd213 | ||
|
|
8140f74d75 | ||
|
|
1d2fff9686 | ||
|
|
b53f42970c | ||
|
|
4fbc476b19 | ||
|
|
9aad3781fb | ||
|
|
23ea77be76 | ||
|
|
51e25e5a8d | ||
|
|
113145e52a | ||
|
|
f9355a0b86 | ||
|
|
eb0d04d7ff | ||
|
|
b2be50f081 | ||
|
|
190fb4a665 | ||
|
|
20f28c2ef3 | ||
|
|
e00c70c5fe | ||
|
|
6b99af05a5 | ||
|
|
2df263fa26 | ||
|
|
06003f82ae | ||
|
|
f08ac969e9 | ||
|
|
fb3c839a15 | ||
|
|
e3187b2361 | ||
|
|
1e27910b60 | ||
|
|
09291735e6 | ||
|
|
512506f0f9 | ||
|
|
8cb560dc7e | ||
|
|
b2b327fec4 | ||
|
|
013506dfd5 | ||
|
|
bd2b7764c7 | ||
|
|
ba12bcad33 | ||
|
|
8b06d2ad66 | ||
|
|
a6cd12a7f1 | ||
|
|
6e0521e23f | ||
|
|
d895f876b4 | ||
|
|
bb6ce9d142 | ||
|
|
0ef811f8b8 | ||
|
|
7c6a3e7026 | ||
|
|
34a2ce2646 | ||
|
|
9abbc5f06c | ||
|
|
3ca5ca77fa | ||
|
|
733e960c11 | ||
|
|
14c7cfa84b | ||
|
|
2f0cb2a32b | ||
|
|
bd33e11599 | ||
|
|
3c4e322ec1 | ||
|
|
755d0089f3 | ||
|
|
ee599bdd5c | ||
|
|
a8d911bd39 | ||
|
|
85c346d6ad | ||
|
|
7a343a8665 | ||
|
|
40b4732f94 | ||
|
|
3cd1ef23ab | ||
|
|
efbbe5129f | ||
|
|
8326bdc9af | ||
|
|
ceedc6f345 | ||
|
|
f839282ac0 | ||
|
|
e99c6104fe | ||
|
|
d68c37b726 | ||
|
|
e3ac6d3fe2 | ||
|
|
b7c96417d1 | ||
|
|
9a442673e6 | ||
|
|
0fb434d372 | ||
|
|
163e16f546 | ||
|
|
9b4938e2c2 | ||
|
|
67f6a48a78 | ||
|
|
89c96c2114 | ||
|
|
52d8fdccff | ||
|
|
de076f00f8 | ||
|
|
30065d101b | ||
|
|
5a1a25bfbe | ||
|
|
cf393a264d | ||
|
|
70d798f6ed | ||
|
|
ca15a22cd1 | ||
|
|
86d9e5251a | ||
|
|
417d53a58f | ||
|
|
497b3f51c8 | ||
|
|
080e3efd1b | ||
|
|
71cf516f58 | ||
|
|
08fc19484f | ||
|
|
f966248f16 | ||
|
|
e597df70d7 | ||
|
|
c79e9c7d4e | ||
|
|
75e7784f18 | ||
|
|
8e7f0e781d | ||
|
|
528b9fdcf2 | ||
|
|
edee3e5eb2 | ||
|
|
c9caee37b4 | ||
|
|
bc693bd4e0 | ||
|
|
dff384e42d | ||
|
|
cd422e5d78 | ||
|
|
ca6cda20a3 | ||
|
|
3d8e8a8715 | ||
|
|
af0f9e5308 | ||
|
|
88cb616c1b | ||
|
|
63120a9962 | ||
|
|
807dc82a75 | ||
|
|
1fb4cc0e76 | ||
|
|
6a36144587 | ||
|
|
0045b46af8 | ||
|
|
47fbfdca3e | ||
|
|
772e35562a | ||
|
|
e42f593553 | ||
|
|
9642fcb589 | ||
|
|
7e58a3982a | ||
|
|
431589a16a | ||
|
|
cbee315b1b | ||
|
|
84b08a4fe3 | ||
|
|
c429a585e4 | ||
|
|
68e167d576 | ||
|
|
262452d0b1 | ||
|
|
7e08679f1b | ||
|
|
dda890cf88 | ||
|
|
44cde9e0e9 | ||
|
|
d7bc20c933 | ||
|
|
d69a68e265 | ||
|
|
534c1287ca | ||
|
|
81dee16d69 | ||
|
|
e5011fbcdf | ||
|
|
0f5bfeead2 | ||
|
|
a47b4b0e95 | ||
|
|
02f578a82d | ||
|
|
dfb4998778 | ||
|
|
ea71f0b610 | ||
|
|
a3e9e179eb | ||
|
|
0f3b4d2bd8 | ||
|
|
ceee1ebfd9 | ||
|
|
046174397b | ||
|
|
a6ec2dc3ed | ||
|
|
6ec83568b5 | ||
|
|
b2a2705df4 | ||
|
|
0d6bdb38e6 | ||
|
|
02cef2da23 | ||
|
|
9c53019d95 | ||
|
|
7a4065eb9f | ||
|
|
13eb302f3c | ||
|
|
6122ae83a6 | ||
|
|
fa78a7101c | ||
|
|
5d680f6dbc | ||
|
|
290e936322 | ||
|
|
ecf4517ffe | ||
|
|
eb834f47ef | ||
|
|
db2c128b24 | ||
|
|
e0a627f99d | ||
|
|
8070cd81d6 | ||
|
|
00291c1c5a | ||
|
|
10661bb024 | ||
|
|
f9edcbbbe2 | ||
|
|
7365b6bd0c | ||
|
|
d66d51f101 | ||
|
|
bc8ec46ef9 | ||
|
|
3a0d417b9e | ||
|
|
7e56d6385e | ||
|
|
db0176b884 | ||
|
|
f63f6e54fa | ||
|
|
7cf6ef675a | ||
|
|
29664c42a0 | ||
|
|
8dc4b0d4b2 | ||
|
|
cb74f0f60e | ||
|
|
d8dd718695 | ||
|
|
4424909801 | ||
|
|
a243580cfa | ||
|
|
693d6879d3 | ||
|
|
ad7e9a8d56 | ||
|
|
d0fdc82fdf | ||
|
|
82c56bc64b | ||
|
|
098f6d01c4 | ||
|
|
4b0f1cf85b | ||
|
|
7ac32e45cb | ||
|
|
8e21d5de92 | ||
|
|
f04644f749 | ||
|
|
7ab65595cb | ||
|
|
2cabcf4ad4 | ||
|
|
20d36f16d3 | ||
|
|
dc58edd521 | ||
|
|
e6d4ac5ee2 | ||
|
|
0ca103686f | ||
|
|
cfe3fc301c | ||
|
|
cbe97ac1a1 | ||
|
|
3cecc1f475 | ||
|
|
9f0c31611c | ||
|
|
d70be18c42 | ||
|
|
1be3fe6633 | ||
|
|
7b17d20099 | ||
|
|
ab1db7ebee | ||
|
|
723d689679 | ||
|
|
cd6a9ee522 | ||
|
|
a5e0555e83 | ||
|
|
1499ade89c | ||
|
|
0310d3bd8c | ||
|
|
02375982df | ||
|
|
5435f60f31 | ||
|
|
b72ed1fa8c | ||
|
|
3a7719015d | ||
|
|
0ee03cbf98 | ||
|
|
67339caa33 | ||
|
|
d77c20b09a | ||
|
|
d910aa15fe | ||
|
|
5d20750aaa | ||
|
|
c4e322d3ad | ||
|
|
222a07e907 | ||
|
|
9d2092bf9f | ||
|
|
4d49c902ac | ||
|
|
65ed22d5a6 | ||
|
|
09f9d71bb2 | ||
|
|
059e11078c | ||
|
|
8829bb1364 | ||
|
|
e30db95baa | ||
|
|
970d895aca | ||
|
|
c9b3220160 | ||
|
|
10575d895d | ||
|
|
67f3c01396 | ||
|
|
536d6cebd9 | ||
|
|
7a97095583 | ||
|
|
f37dafdf52 | ||
|
|
c84137aec8 | ||
|
|
f1dc1cd92b | ||
|
|
41f2344cea | ||
|
|
a965a71079 | ||
|
|
913624cbfa | ||
|
|
220fd418a7 | ||
|
|
5dda908c1f | ||
|
|
b7f45c3783 | ||
|
|
3a6e239437 | ||
|
|
fcbeddc3eb | ||
|
|
7ef40f4e53 | ||
|
|
2fafb13eaa | ||
|
|
90ee810c73 | ||
|
|
1357f5a364 | ||
|
|
9f21e3792a | ||
|
|
0b385f145c | ||
|
|
32a585a52b | ||
|
|
410d92ed61 | ||
|
|
53e865b654 | ||
|
|
57f289850c | ||
|
|
63a851cfd6 | ||
|
|
24d6f6d066 | ||
|
|
db1ec847f9 | ||
|
|
aee9d2c9d7 | ||
|
|
22e0702e8d | ||
|
|
29c38d73a2 | ||
|
|
8d11bb9f86 | ||
|
|
8d6735cb41 | ||
|
|
3d74b160b3 | ||
|
|
2768d2ea06 | ||
|
|
bb11999bf7 | ||
|
|
5bf1b0e5f5 | ||
|
|
3d19b549c8 | ||
|
|
bfb5fec330 | ||
|
|
0d257fd651 | ||
|
|
ebde55f704 | ||
|
|
f23464001f | ||
|
|
0882e0cb95 | ||
|
|
763c620d0b | ||
|
|
2871096f9c | ||
|
|
a918397da2 | ||
|
|
8e88b29eeb | ||
|
|
aaaea44714 | ||
|
|
ffe5736abb | ||
|
|
d79a5a3152 | ||
|
|
ffcfe73299 | ||
|
|
2885c085d8 | ||
|
|
7af9e1f5c5 | ||
|
|
980fb59232 | ||
|
|
9ad3488b5d | ||
|
|
8f420b9272 | ||
|
|
d55b226f19 | ||
|
|
95635a5982 | ||
|
|
91962d8aa2 | ||
|
|
d1208386d2 | ||
|
|
d7a4838a54 | ||
|
|
6d6f67ee67 | ||
|
|
987f7cafd3 | ||
|
|
b883e59ee9 | ||
|
|
79fa4d5c4a | ||
|
|
23de5908cf | ||
|
|
0d5ef3f43e | ||
|
|
2a8309458d | ||
|
|
2418daebf3 | ||
|
|
53c506f109 | ||
|
|
7d1f45e25f | ||
|
|
1bad956633 | ||
|
|
2f51088bfb | ||
|
|
0a40dcdb44 | ||
|
|
6b92fdd18d | ||
|
|
b9848538e3 | ||
|
|
475439fa0b | ||
|
|
8fba36b242 | ||
|
|
8b44358c53 | ||
|
|
dac8483f7e | ||
|
|
46f4819ffa | ||
|
|
c238ad35bd | ||
|
|
309e10e7a2 | ||
|
|
dc470bcad3 | ||
|
|
49d9883b3e | ||
|
|
2606cfe72d | ||
|
|
85e701f422 | ||
|
|
5accc7c6c5 | ||
|
|
60317190bd | ||
|
|
6594c061be | ||
|
|
432c0058a9 | ||
|
|
7c24369454 | ||
|
|
46be5ac468 | ||
|
|
30ea7cc3f8 | ||
|
|
573b3797a5 | ||
|
|
a0b3b8ac4c | ||
|
|
4d63ebde15 | ||
|
|
9cee3f13a1 | ||
|
|
8dc74de92e | ||
|
|
21fc2decd7 | ||
|
|
9192bf1db5 | ||
|
|
7c2c516353 | ||
|
|
db18449f4c | ||
|
|
44757c81af | ||
|
|
d0aa461587 | ||
|
|
504b32f61b | ||
|
|
6a5d89669e | ||
|
|
e39628bbe9 | ||
|
|
f5dcb6a0cb | ||
|
|
14187f9e3f | ||
|
|
9225b16d12 | ||
|
|
00e32a0909 | ||
|
|
73f2992a2e | ||
|
|
d55113b5b5 | ||
|
|
51468b7646 | ||
|
|
ff1d651415 | ||
|
|
149e601743 | ||
|
|
a998921f39 | ||
|
|
3daccf3c22 | ||
|
|
c63c88262b | ||
|
|
fbe2cdc3c7 | ||
|
|
b60ef72c3d | ||
|
|
d2e79cf6f6 | ||
|
|
a38d5504ac | ||
|
|
76d24aa1bc | ||
|
|
a7605d584b | ||
|
|
4244a6e6fe | ||
|
|
b055b8440c | ||
|
|
14d7b1a0fa | ||
|
|
3626c39398 | ||
|
|
0d1d324e9f | ||
|
|
100eef4e42 | ||
|
|
59c8800c4d | ||
|
|
1d101ef3d0 | ||
|
|
ac47100a7d | ||
|
|
01e5ca5c96 | ||
|
|
28228627fc | ||
|
|
1c6f6df2b3 | ||
|
|
bc6cc4c105 | ||
|
|
4481692037 | ||
|
|
1cdf386822 | ||
|
|
d4b5620bb3 | ||
|
|
4246cfa95c | ||
|
|
22cc0515c9 | ||
|
|
79f342b954 | ||
|
|
527e5f52ba | ||
|
|
42068931c7 | ||
|
|
e1a706bd77 | ||
|
|
d97c22df2d | ||
|
|
3ad5c7c289 | ||
|
|
fc44cffac5 | ||
|
|
5c8763be0e | ||
|
|
ee44879d4d | ||
|
|
c14bac4284 | ||
|
|
0aa7fd95b8 | ||
|
|
fa53563733 | ||
|
|
835176ef32 | ||
|
|
ed086fb1c8 | ||
|
|
c76d866317 | ||
|
|
9d742a4fa1 | ||
|
|
dc8d31a12a | ||
|
|
8d6b88eb5d | ||
|
|
80250c0729 | ||
|
|
ca912f157e | ||
|
|
716706bd9f | ||
|
|
61a614b612 | ||
|
|
3d6f995a9c | ||
|
|
ea945cc437 | ||
|
|
13d7432368 | ||
|
|
ed8d1040ba | ||
|
|
4f619c966b | ||
|
|
483b798863 | ||
|
|
b19bfc0dd3 | ||
|
|
8b2cf81f17 | ||
|
|
da17420cdf | ||
|
|
08c29727e0 | ||
|
|
45c6ac0208 | ||
|
|
7378871768 | ||
|
|
d3f155d895 | ||
|
|
075811e588 | ||
|
|
aa8840b423 | ||
|
|
58d7c4b388 | ||
|
|
a897ef0025 | ||
|
|
fb1443a885 | ||
|
|
fde26d4049 | ||
|
|
b32bf22616 | ||
|
|
b064da8d38 | ||
|
|
ba5a55b754 | ||
|
|
bd2b107d37 | ||
|
|
4c84224d06 | ||
|
|
74d3aa582b | ||
|
|
85b136314b | ||
|
|
8fc6011741 | ||
|
|
5092904ea3 | ||
|
|
3e24ae80b3 | ||
|
|
ffad7b0b29 | ||
|
|
d93bbfd486 | ||
|
|
32c241f51b | ||
|
|
690ceeeaa7 | ||
|
|
ea02da35d4 | ||
|
|
cea65599e6 | ||
|
|
6c329e8a83 | ||
|
|
5fa8370c13 | ||
|
|
96a28df018 | ||
|
|
e08039a2bd | ||
|
|
108d66211f | ||
|
|
87d5fa054d | ||
|
|
ac68c0c878 | ||
|
|
bc35ca6366 | ||
|
|
df10b53c0c | ||
|
|
c2f9d60eb1 | ||
|
|
c4c7983497 | ||
|
|
1f06e5f0b9 | ||
|
|
daa217f533 | ||
|
|
e67505bead | ||
|
|
7ebafa53f6 | ||
|
|
e6ad48ea1b | ||
|
|
ba5a22e2ce | ||
|
|
f5241da836 | ||
|
|
8ab980b793 | ||
|
|
dcef1a5593 | ||
|
|
5df8fab463 | ||
|
|
b8817215dc | ||
|
|
f28a1c58f3 | ||
|
|
2f8d0e9aba | ||
|
|
bd4622a0d0 | ||
|
|
9aeed0dc06 | ||
|
|
c93e38380a | ||
|
|
a10a79c6d0 | ||
|
|
61c0ca9dd9 | ||
|
|
ba1008b750 | ||
|
|
8558561650 | ||
|
|
f034d8ba3a | ||
|
|
8eb342ad3c | ||
|
|
21e927d24e | ||
|
|
5f849d0264 | ||
|
|
671c0515d4 | ||
|
|
b5b8d9010e | ||
|
|
ea3d9c36a5 | ||
|
|
706bfa70c1 | ||
|
|
8e103c231e | ||
|
|
9569f51e83 | ||
|
|
6431c0de16 | ||
|
|
85799ee86e | ||
|
|
0993141334 | ||
|
|
46840ae375 | ||
|
|
59f0261dba | ||
|
|
7ad6a90ea2 |
@@ -6,3 +6,5 @@
|
||||
BasedOnStyle: Google
|
||||
ColumnLimit: 100
|
||||
IndentWidth: 4
|
||||
# We don't want OCLint pragmas to be reformatted.
|
||||
CommentPragmas: '^!OCLINT'
|
||||
|
||||
18
.cppcheck.rule
Normal file
18
.cppcheck.rule
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0"?>
|
||||
<rule version="1">
|
||||
<pattern> wcwidth \(</pattern>
|
||||
<message>
|
||||
<id>wcwidthForbidden</id>
|
||||
<severity>warning</severity>
|
||||
<summary>Always use fish_wcwidth rather than wcwidth.</summary>
|
||||
</message>
|
||||
</rule>
|
||||
|
||||
<rule version="1">
|
||||
<pattern> wcswidth \(</pattern>
|
||||
<message>
|
||||
<id>wcswidthForbidden</id>
|
||||
<severity>warning</severity>
|
||||
<summary>Always use fish_wcswidth rather than wcswidth.</summary>
|
||||
</message>
|
||||
</rule>
|
||||
21
.editorconfig
Normal file
21
.editorconfig
Normal file
@@ -0,0 +1,21 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
indent_size = 4
|
||||
indent_style = space
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[{Makefile,*.in}]
|
||||
indent_style = tab
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[*.{sh,ac}]
|
||||
indent_size = 2
|
||||
|
||||
[Dockerfile]
|
||||
indent_size = 2
|
||||
29
.gitattributes
vendored
29
.gitattributes
vendored
@@ -1,25 +1,42 @@
|
||||
# normalize newlines
|
||||
* text=auto
|
||||
*.fish text
|
||||
*.bat eol=crlf
|
||||
|
||||
# let git show off diff hunk headers, help git diff -L:
|
||||
# https://git-scm.com/docs/gitattributes
|
||||
*.cpp diff=cpp
|
||||
*.py diff=py
|
||||
# add a [diff "fish"] to git config with pattern
|
||||
*.fish diff=fish
|
||||
|
||||
# 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/description-pak 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/terminal_logo.png export-ignore
|
||||
/build_tools/osx_package_resources/welcome.rtf 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/make_deb.sh export-ignore
|
||||
/build_tools/osx_package_scripts export-ignore
|
||||
/build_tools/osx_package_scripts/add-shell export-ignore
|
||||
/build_tools/osx_package_scripts/postinstall 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
|
||||
angular.js linguist-vendored
|
||||
/doc_src/* linguist-documentation
|
||||
*.fish linguist-language=fish
|
||||
tests/*.in linguist-language=fish
|
||||
49
.github/ISSUE_TEMPLATE.md
vendored
49
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,40 +1,21 @@
|
||||
<!--
|
||||
Thanks for helping to make fish better!
|
||||
<!-- 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.3.1](/fish-shell/fish-shell/releases/tag/2.3.1)?
|
||||
- [ ] Tried fish without third-party customizations *(check `sh -c 'env HOME=$(mktemp -d) fish'`)*?
|
||||
|
||||
If you are asking for help with fish, or you've found a bug:
|
||||
- Make sure it's not a known or solved issue, by searching https://github.com/fish-shell/fish-shell/issues
|
||||
- Fill in the following information carefully:
|
||||
**fish version installed** *(`fish --version`)*:
|
||||
|
||||
-->
|
||||
**OS/terminal used**:
|
||||
|
||||
[Please include a short description of the problem here]
|
||||
Talk about the the issue here.
|
||||
|
||||
### Reproduction Steps:
|
||||
## Reproduction steps
|
||||
1. step one
|
||||
2. …
|
||||
|
||||
1. [First Step]
|
||||
2. [Second Step]
|
||||
3. [Other Steps...]
|
||||
<!-- Hard to explain? Post a screen recording on asciinema.org then link it here -->
|
||||
|
||||
### Expected behavior:
|
||||
|
||||
[Describe expected behavior here]
|
||||
|
||||
### Observed behavior:
|
||||
|
||||
[Describe observed behavior here]
|
||||
|
||||
### Additional information:
|
||||
|
||||
[ Other useful information, such as:
|
||||
When did this problem start?
|
||||
Does this happen all the time?
|
||||
Has anything changed on your system recently?
|
||||
]
|
||||
|
||||
|
||||
---
|
||||
Fish version: [from the output of fish --version]
|
||||
|
||||
Operating system: [your operating system and how you installed fish e.g. Homebrew, Ubuntu PPA, distribution package]
|
||||
|
||||
Terminal or terminal emulator: [e.g. PuTTy, iTerm2, GNOME Terminal, VT220]
|
||||
## Results
|
||||
```console
|
||||
~ $ math 2 + 2
|
||||
5
|
||||
```
|
||||
|
||||
10
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
10
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
## Description
|
||||
|
||||
Talk about your changes here.
|
||||
|
||||
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.
|
||||
- [ ] Tests have been added for regressions fixed
|
||||
125
.gitignore
vendored
125
.gitignore
vendored
@@ -1,43 +1,98 @@
|
||||
*.o
|
||||
*~
|
||||
*.exe
|
||||
*.xccheckout
|
||||
# Note that some of the patterns below should be in an individual's
|
||||
# ~/.config/git/ignore file. For example, ".DS_Store" from people working on
|
||||
# MacOS.
|
||||
|
||||
.DS_Store
|
||||
# File extensions that should never be checked in regardless of which project
|
||||
# directory they reside in.
|
||||
*.exe
|
||||
*.app
|
||||
*.out
|
||||
*.so
|
||||
*.dylib
|
||||
*.dll
|
||||
*.lai
|
||||
*.la
|
||||
*.a
|
||||
*.lib
|
||||
*.o
|
||||
*.obj
|
||||
*.lo
|
||||
*.slo
|
||||
*.d
|
||||
*.gch
|
||||
*.pch
|
||||
*.xccheckout
|
||||
*~
|
||||
*~HEAD
|
||||
*bak
|
||||
*.new
|
||||
*.orig
|
||||
*.log
|
||||
.Trash-*
|
||||
*.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
._*
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
Desktop.ini
|
||||
|
||||
|
||||
# These file names can appear anywhere in the hierarchy. They tend to be OS
|
||||
# or build system artifacts.
|
||||
autom4te.cache
|
||||
Makefile
|
||||
autom4te.cache/
|
||||
build/
|
||||
command_list.txt
|
||||
command_list_toc.txt
|
||||
confdefs.h
|
||||
config.h
|
||||
config.cache
|
||||
config.h.in
|
||||
config.log
|
||||
config.status
|
||||
configure
|
||||
doc/
|
||||
doc.h
|
||||
doc_src/commands.hdr
|
||||
doc_src/index.hdr
|
||||
po/*.gmo
|
||||
fish
|
||||
fish_indent
|
||||
fish_tests
|
||||
fish.pc
|
||||
seq
|
||||
set_color
|
||||
share/__fish_build_paths.fish
|
||||
share/man/
|
||||
toc.txt
|
||||
user_doc/
|
||||
xcuserdata
|
||||
test/
|
||||
FISH-BUILD-VERSION-FILE
|
||||
version
|
||||
messages.pot
|
||||
lexicon.txt
|
||||
lexicon_filter
|
||||
lexicon.log
|
||||
.directory
|
||||
.fuse_hidden*
|
||||
|
||||
|
||||
# Directories that only contain transitory files from building and testing.
|
||||
/doc/
|
||||
/obj/
|
||||
/share/man/
|
||||
/share/doc/
|
||||
/test/
|
||||
/user_doc/
|
||||
|
||||
# File names that can appear in the project root that represent artifacts from
|
||||
# building and testing.
|
||||
/FISH-BUILD-VERSION-FILE
|
||||
/command_list.txt
|
||||
/command_list_toc.txt
|
||||
/compile_commands.json
|
||||
/confdefs.h
|
||||
/doc.h
|
||||
/fish
|
||||
/fish.pc
|
||||
/fish_indent
|
||||
/fish_key_reader
|
||||
/fish_tests
|
||||
/lexicon.txt
|
||||
/lexicon_filter
|
||||
/toc.txt
|
||||
/version
|
||||
|
||||
# File names that can appear below the project root that represent artifacts
|
||||
# from building and testing.
|
||||
/doc_src/commands.hdr
|
||||
/doc_src/index.hdr
|
||||
/po/*.gmo
|
||||
/share/__fish_build_paths.fish
|
||||
/tests/*.tmp.*
|
||||
/share/pkgconfig
|
||||
|
||||
# xcode
|
||||
## Build generated
|
||||
build/
|
||||
DerivedData/
|
||||
compile_commands.json
|
||||
xcodebuild.log
|
||||
xcuserdata/
|
||||
*.moved-aside
|
||||
*.xccheckout
|
||||
*.xcscmblueprin
|
||||
|
||||
|
||||
49
.oclint
49
.oclint
@@ -1,8 +1,53 @@
|
||||
rules:
|
||||
rule-configurations:
|
||||
#
|
||||
# This is the default value (as of the time I wrote this) but I'm making
|
||||
# it explicit since it needs to agree with the value used by clang-format.
|
||||
# Thus, if we ever change the fish style to allow longer lines this should
|
||||
# be changed (as well as the corresponding clang-format config).
|
||||
# Thus, if we ever change the fish style to allow longer or shorter lines
|
||||
# this should be changed (as well as the corresponding .clang-format file).
|
||||
#
|
||||
- key: LONG_LINE
|
||||
value: 100
|
||||
#
|
||||
# The default limit for the length of variable names is 20. Long names are
|
||||
# problematic but twenty chars results in way too many errors. So increase
|
||||
# the limit to something more reasonable.
|
||||
#
|
||||
- key: LONG_VARIABLE_NAME
|
||||
value: 30
|
||||
#
|
||||
# This allows us to avoid peppering our code with inline comments such as
|
||||
#
|
||||
# scoped_lock locker(m_lock); //!OCLINT(side-effect)
|
||||
#
|
||||
# Specifically, this config key tells oclint that the named classes have
|
||||
# RAII behavior so the local vars are actually used.
|
||||
#
|
||||
- key: RAII_CUSTOM_CLASSES
|
||||
value: scoped_lock scoped_buffer_t builtin_commandline_scoped_transient_t scoped_push
|
||||
|
||||
disable-rules:
|
||||
#
|
||||
# A few instances of "useless parentheses" errors are meaningful. Mostly
|
||||
# in the context of the `return` statement. Unfortunately the vast
|
||||
# majority would result in removing parentheses that decreases
|
||||
# readability. So we're going to ignore this warning and rely on humans to
|
||||
# notice when the parentheses are truly not needed.
|
||||
#
|
||||
# Also, some macro expansions, such as FD_SET(), trigger this warning and
|
||||
# we don't want to suppress each of those individually.
|
||||
#
|
||||
- UselessParentheses
|
||||
#
|
||||
# OCLint wants variable names to be at least three characters in length.
|
||||
# Which would be fine if it supported a reasonable set of exceptions
|
||||
# (e.g., "i", "j", "k") and allowed adding additional exceptions to match
|
||||
# conventions employed by a project. Since it doesn't, and thus generates
|
||||
# a lot of really annoying warnings, we're going to disable this rule.
|
||||
#
|
||||
- ShortVariableName
|
||||
#
|
||||
# This rule flags perfectly reasonable conditions like `if (!some_condition)`
|
||||
# and is therefore just noise. Disable this rule.
|
||||
#
|
||||
- InvertedLogic
|
||||
|
||||
33
.travis.yml
33
.travis.yml
@@ -1,5 +1,6 @@
|
||||
language: cpp
|
||||
sudo: false
|
||||
dist: trusty
|
||||
sudo: required
|
||||
|
||||
matrix:
|
||||
include:
|
||||
@@ -12,9 +13,23 @@ matrix:
|
||||
- expect
|
||||
- gettext
|
||||
- libncurses5-dev
|
||||
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- bc
|
||||
- expect
|
||||
- gettext
|
||||
- lib32ncurses5-dev
|
||||
- g++-multilib
|
||||
env:
|
||||
- CXXFLAGS="-g -m32" CFLAGS="-g -m32"
|
||||
- os: linux
|
||||
compiler: clang
|
||||
env:
|
||||
- CXXFLAGS="-g -fno-omit-frame-pointer -fsanitize=address" ASAN_OPTIONS=check_initialization_order=1:detect_stack_use_after_return=1:detect_leaks=1
|
||||
before_install: export CXX=clang++-3.8
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
@@ -27,16 +42,14 @@ matrix:
|
||||
- expect
|
||||
- gettext
|
||||
- libncurses5-dev
|
||||
env:
|
||||
- CXXFLAGS="-g -fno-omit-frame-pointer -fsanitize=address"
|
||||
- ASAN_OPTIONS=check_initialization_order=1:detect_stack_use_after_return=1:detect_leaks=1
|
||||
before_install: export CXX=clang++-3.8
|
||||
|
||||
- os: osx
|
||||
osx_image: xcode8
|
||||
before_install:
|
||||
- brew update
|
||||
- brew install pcre2 # use system PCRE2
|
||||
|
||||
- brew outdated xctool || brew upgrade xctool # for xcode... soon.
|
||||
env:
|
||||
- CXXFLAGS="-g -lstdc++"
|
||||
fast_finish: true
|
||||
|
||||
script:
|
||||
@@ -59,5 +72,5 @@ notifications:
|
||||
skip_join: true
|
||||
webhooks:
|
||||
urls:
|
||||
#- https://webhooks.gitter.im/e/61821cec3015bf0f8bb1
|
||||
secure: fPfOmxnC3MCsfR1oocVFeWLawGcRZkn+8fNHlSOeZ+SqqoZfcCHgQTvQ22TqmVl1yvkXbNlaXjo6dbVzTOAh7r7H0bRMEKBVh3dQS7wqjB1sKivpXd8PAS3BTj5MQpGeJzdHnDuwVlwDktGtfHfhGeq1Go/4IosOq8u+6RTe28g=
|
||||
#- https://webhooks.gitter.im/e/61821cec3015bf0f8bb1
|
||||
secure: fPfOmxnC3MCsfR1oocVFeWLawGcRZkn+8fNHlSOeZ+SqqoZfcCHgQTvQ22TqmVl1yvkXbNlaXjo6dbVzTOAh7r7H0bRMEKBVh3dQS7wqjB1sKivpXd8PAS3BTj5MQpGeJzdHnDuwVlwDktGtfHfhGeq1Go/4IosOq8u+6RTe28g=
|
||||
|
||||
77
CHANGELOG.md
77
CHANGELOG.md
@@ -1,3 +1,80 @@
|
||||
# fish 2.4.0 (released November 8, 2016)
|
||||
|
||||
There are no major changes between 2.4b1 and 2.4.0.
|
||||
|
||||
## Notable fixes and improvements
|
||||
- The documentation is now generated properly and with the correct version identifier.
|
||||
- Automatic cursor changes are now only enabled on the subset of XTerm versions known to support them, resolving a problem where older versions printed garbage to the terminal before and after every prompt (#3499).
|
||||
- Improved the title set in Apple Terminal.app.
|
||||
- Added completions for `defaults` and improved completions for `diskutil` (#3478).
|
||||
|
||||
# fish 2.4b1 (released October 18, 2016)
|
||||
|
||||
## Significant changes
|
||||
- The clipboard integration has been revamped with explicit bindings. The killring commands no longer copy from, or paste to, the X11 clipboard - use the new copy (`C-x`) and paste (`C-v`) bindings instead. The clipboard is now available on OS X as well as systems using X11 (e.g. Linux). (#3061)
|
||||
- `history` uses subcommands (`history delete`) rather than options (`history --delete`) for its actions (#3367). You can no longer specify multiple actions via flags (e.g., `history --delete --save something`).
|
||||
- New `history` options have been added, including `--max=n` to limit the number of history entries, `--show-time` option to show timestamps (#3175, #3244), and `--null` to null terminate history entries in the search output.
|
||||
- `history search` is now case-insensitive by default (which also affects `history delete`) (#3236).
|
||||
- `history delete` now correctly handles multiline commands (#31).
|
||||
- Vi-style bindings no longer include all of the default emacs-style bindings; instead, they share some definitions (#3068).
|
||||
- If there is no locale set in the environment, various known system configuration files will be checked for a default. If no locale can be found, `en_US-UTF.8` will be used (#277).
|
||||
- A number followed by a caret (e.g. `5^`) is no longer treated as a redirection (#1873).
|
||||
- The `$version` special variable can be overwritten, so that it can be used for other purposes if required.
|
||||
|
||||
## Notable fixes and improvements
|
||||
- The `fish_realpath` builtin has been renamed to `realpath` and made compatible with GNU `realpath` when run without arguments (#3400). It is used only for systems without a `realpath` or `grealpath` utility (#3374).
|
||||
- Improved color handling on terminals/consoles with 8-16 colors, particularly the use of bright named color (#3176, #3260).
|
||||
- `fish_indent` can now read from files given as arguments, rather than just standard input (#3037).
|
||||
- Fuzzy tab completions behave in a less surprising manner (#3090, #3211).
|
||||
- `jobs` should only print its header line once (#3127).
|
||||
- Wildcards in redirections are highlighted appropriately (#2789).
|
||||
- Suggestions will be offered more often, like after removing characters (#3069).
|
||||
- `history --merge` now correctly interleaves items in chronological order (#2312).
|
||||
- Options for `fish_indent` have been aligned with the other binaries - in particular, `-d` now means `--debug`. The `--dump` option has been renamed to `--dump-parse-tree` (#3191).
|
||||
- The display of bindings in the Web-based configuration has been greatly improved (#3325), as has the rendering of prompts (#2924).
|
||||
- fish should no longer hang using 100% CPU in the C locale (#3214).
|
||||
- A bug in FreeBSD 11 & 12, Dragonfly BSD & illumos prevented fish from working correctly on these platforms under UTF-8 locales; fish now avoids the buggy behaviour (#3050).
|
||||
- Prompts which show git repository information (via `__fish_git_prompt`) are faster in large repositories (#3294) and slow filesystems (#3083).
|
||||
- fish 2.3.0 reintroduced a problem where the greeting was printed even when using `read`; this has been corrected again (#3261).
|
||||
- Vi mode changes the cursor depending on the current mode (#3215).
|
||||
- Command lines with escaped space characters at the end tab-complete correctly (#2447).
|
||||
- Added completions for:
|
||||
- `arcanist` (#3256)
|
||||
- `connmanctl` (#3419)
|
||||
- `figlet` (#3378)
|
||||
- `mdbook` (#3378)
|
||||
- `ninja` (#3415)
|
||||
- `p4`, the Perforce client (#3314)
|
||||
- `pygmentize` (#3378)
|
||||
- `ranger` (#3378)
|
||||
- Improved completions for `aura` (#3297), `abbr` (#3267), `brew` (#3309), `chown` (#3380, #3383),`cygport` (#3392), `git` (#3274, #3226, #3225, #3094, #3087, #3035, #3021, #2982, #3230), `kill & `pkill` (#3200), `screen` (#3271), `wget` (#3470), and `xz` (#3378).
|
||||
- Distributors, packagers and developers will notice that the build process produces more succinct output by default; use `make V=1` to get verbose output (#3248).
|
||||
- Improved compatibility with minor platforms including musl (#2988), Cygwin (#2993), Android (#3441, #3442), Haiku (#3322) and Solaris .
|
||||
|
||||
---
|
||||
|
||||
# fish 2.3.1 (released July 3, 2016)
|
||||
|
||||
This is a functionality and bugfix release. This release does not contain all the changes to fish since the last release, but fixes a number of issues directly affecting users at present and includes a small number of new features.
|
||||
|
||||
## Significant changes
|
||||
- A new `fish_key_reader` binary for decoding interactive keypresses (#2991).
|
||||
- `fish_mode_prompt` has been updated to reflect the changes in the way the Vi input mode is set up (#3067), making this more reliable.
|
||||
- `fish_config` can now properly be launched from the OS X app bundle (#3140).
|
||||
|
||||
## Notable fixes and improvements
|
||||
|
||||
- Extra lines were sometimes inserted into the output under Windows (Cygwin and Microsoft Windows Subsystem for Linux) due to TTY timestamps not being updated (#2859).
|
||||
- The `string` builtin's `match` mode now handles the combination of `-rnv` (match, invert and count) correctly (#3098).
|
||||
- Improvements to TTY special character handling (#3064), locale handling (#3124) and terminal environment variable handling (#3060).
|
||||
- Work towards handling the terminal modes for external commands launched from initialisation files (#2980).
|
||||
- Ease the upgrade path from fish 2.2.0 and before by warning users to restart fish if the `string` builtin is not available (#3057).
|
||||
- `type -a` now syntax-colorizes function source output.
|
||||
- Added completions for `alsamixer`, `godoc`, `gofmt`, `goimports`, `gorename`, `lscpu`, `mkdir`, `modinfo`, `netctl-auto`, `poweroff`, `termite`, `udisksctl` and `xz` (#3123).
|
||||
- Improved completions for `apt` (#3097), `aura` (#3102),`git` (#3114), `npm` (#3158), `string` and `suspend` (#3154).
|
||||
|
||||
---
|
||||
|
||||
# fish 2.3.0 (released May 20, 2016)
|
||||
|
||||
There are no significant changes between 2.3.0 and 2.3b2.
|
||||
|
||||
112
CONTRIBUTING.md
112
CONTRIBUTING.md
@@ -1,9 +1,27 @@
|
||||
|
||||
# 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.
|
||||
|
||||
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.
|
||||
|
||||
## 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.
|
||||
|
||||
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 install the tool on OS X you'll need to add a [formula](https://github.com/jasonmp85/homebrew-iwyu) then install it:
|
||||
|
||||
```
|
||||
brew tap jasonmp85/iwyu
|
||||
brew install iwyu
|
||||
```
|
||||
|
||||
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.
|
||||
@@ -12,6 +30,8 @@ Ultimately we want lint free code. However, at the moment a lot of cleanup is re
|
||||
|
||||
To make linting the code easy there are two make targets: `lint` and `lint-all`. The latter does just what the name implies. The former will lint any modified but not committed `*.cpp` files. If there is no uncommitted work it will lint the files in the most recent commit.
|
||||
|
||||
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.
|
||||
|
||||
### 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.
|
||||
@@ -40,7 +60,9 @@ The following sections discuss the specific rules for the style that should be u
|
||||
make style
|
||||
```
|
||||
|
||||
before commiting your change. If you've already committed your changes that's okay since it will then check the files in the most recent commit. This can be useful after you've merged someone elses change and want to check that it's style is acceptable.
|
||||
before commiting your change. That will run `git-clang-format` to rewrite just the lines you're modifying.
|
||||
|
||||
If you've already committed your changes that's okay since it will then check the files in the most recent commit. This can be useful after you've merged someone elses change and want to check that it's style is acceptable. However, in that case it will run `clang-format` to ensure the entire file, not just the lines modified by the commit, conform to the style.
|
||||
|
||||
If you want to check the style of the entire code base run
|
||||
|
||||
@@ -48,7 +70,40 @@ If you want to check the style of the entire code base run
|
||||
make style-all
|
||||
```
|
||||
|
||||
### Suppressing Reformatting of the Code
|
||||
That command will refuse to restyle any files if you have uncommitted changes.
|
||||
|
||||
### Configuring Your Editor for Fish C++ Code
|
||||
|
||||
#### ViM
|
||||
|
||||
As of ViM 7.4 it does not recognize triple-slash comments as used by Doxygen and the OS X Xcode IDE to flag comments that explain the following C symbol. This means the `gq` key binding to reformat such comments doesn't behave as expected. You can fix that by adding the following to your vimrc:
|
||||
|
||||
```
|
||||
autocmd Filetype c,cpp setlocal comments^=:///
|
||||
```
|
||||
|
||||
If you use ViM I recommend the [vim-clang-format plugin](https://github.com/rhysd/vim-clang-format) by [@rhysd](https://github.com/rhysd).
|
||||
|
||||
You can also get ViM to provide reasonably correct behavior by installing
|
||||
|
||||
http://www.vim.org/scripts/script.php?script_id=2636
|
||||
|
||||
#### Emacs
|
||||
|
||||
If you use Emacs: TBD
|
||||
|
||||
### Configuring Your Editor for Fish Scripts
|
||||
|
||||
If you use ViM: TBD
|
||||
|
||||
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.
|
||||
|
||||
```elisp
|
||||
(add-hook 'fish-mode-hook (lambda ()
|
||||
(add-hook 'before-save-hook 'fish_indent-before-save)))
|
||||
```
|
||||
|
||||
### Suppressing Reformatting of C++ Code
|
||||
|
||||
If you have a good reason for doing so you can tell `clang-format` to not reformat a block of code by enclosing it in comments like this:
|
||||
|
||||
@@ -60,11 +115,11 @@ code to ignore
|
||||
|
||||
## Fish Script Style Guide
|
||||
|
||||
Fish scripts such as those in the *share/functions* and *tests* directories should be formatted using the `fish_indent` command.
|
||||
1. Fish scripts such as those in the *share/functions* and *tests* directories should be formatted using the `fish_indent` command.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
The first word of global variable names should generally be `fish` for public vars or `_fish` for private vars to minimize the possibility of name clashes with user defined vars.
|
||||
1. The first word of global variable names should generally be `fish` for public vars or `_fish` for private vars to minimize the possibility of name clashes with user defined vars.
|
||||
|
||||
## C++ Style Guide
|
||||
|
||||
@@ -80,6 +135,8 @@ The first word of global variable names should generally be `fish` for public va
|
||||
|
||||
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.
|
||||
|
||||
## 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.
|
||||
@@ -110,6 +167,51 @@ You'll receive an email when the tests are complete telling you whether or not a
|
||||
|
||||
You'll find the configuration used to control Travis in the `.travis.yml` file.
|
||||
|
||||
### Git hooks
|
||||
|
||||
Since developers sometimes forget to run the tests, it can be helpful to use git hooks (see githooks(5)) to automate it.
|
||||
|
||||
One possibility is a pre-push hook script like this one:
|
||||
|
||||
```sh
|
||||
#!/bin/sh
|
||||
#### A pre-push hook for the fish-shell project
|
||||
# This will run the tests when a push to master is detected, and will stop that if the tests fail
|
||||
# Save this as .git/hooks/pre-push and make it executable
|
||||
|
||||
protected_branch='master'
|
||||
|
||||
# Git gives us lines like "refs/heads/frombranch SOMESHA1 refs/heads/tobranch SOMESHA1"
|
||||
# We're only interested in the branches
|
||||
while read from _ to _; do
|
||||
if [ "x$to" = "xrefs/heads/$protected_branch" ]; then
|
||||
isprotected=1
|
||||
fi
|
||||
done
|
||||
if [ "x$isprotected" = x1 ]; then
|
||||
echo "Running tests before push to master"
|
||||
make test
|
||||
RESULT=$?
|
||||
if [ $RESULT -ne 0 ]; then
|
||||
echo "Tests failed for a push to master, we can't let you do that" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
exit 0
|
||||
```
|
||||
|
||||
This will check if the push is to the master branch and, if it is, will run `make test` and only allow the push if that succeeds. In some circumstances it might be advisable to circumvent it with `git push --no-verify`, but usually that should not be necessary.
|
||||
|
||||
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.
|
||||
|
||||
## Installing the Required Tools
|
||||
|
||||
### Installing the Linting Tools
|
||||
|
||||
6
Doxyfile
6
Doxyfile
@@ -289,7 +289,7 @@ TCL_SUBST =
|
||||
# members will be omitted, etc.
|
||||
# The default value is: NO.
|
||||
|
||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||
OPTIMIZE_OUTPUT_FOR_C = NO
|
||||
|
||||
# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
|
||||
# Python sources only. Doxygen will then generate output that is more tailored
|
||||
@@ -822,7 +822,7 @@ INPUT_ENCODING = UTF-8
|
||||
# *.qsf, *.as and *.js.
|
||||
|
||||
FILE_PATTERNS = *.h \
|
||||
*.c
|
||||
*.cpp
|
||||
|
||||
# The RECURSIVE tag can be used to specify whether or not subdirectories should
|
||||
# be searched for input files as well.
|
||||
@@ -837,7 +837,7 @@ RECURSIVE = NO
|
||||
# Note that relative paths are relative to the directory from which doxygen is
|
||||
# run.
|
||||
|
||||
EXCLUDE = print_help.c
|
||||
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
|
||||
|
||||
@@ -741,7 +741,7 @@ CITE_BIB_FILES =
|
||||
# messages are off.
|
||||
# The default value is: NO.
|
||||
|
||||
QUIET = NO
|
||||
QUIET = YES
|
||||
|
||||
# The WARNINGS tag can be used to turn on/off the warning messages that are
|
||||
# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
|
||||
|
||||
@@ -741,7 +741,7 @@ CITE_BIB_FILES =
|
||||
# messages are off.
|
||||
# The default value is: NO.
|
||||
|
||||
QUIET = NO
|
||||
QUIET = YES
|
||||
|
||||
# The WARNINGS tag can be used to turn on/off the warning messages that are
|
||||
# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
|
||||
|
||||
1160
Makefile.in
1160
Makefile.in
File diff suppressed because it is too large
Load Diff
12
README.md
12
README.md
@@ -13,9 +13,9 @@ Detailed user documentation is available by running `help` within fish, and also
|
||||
|
||||
## Building
|
||||
|
||||
fish is written in a sane subset of C++98, with a few components from C++TR1. It builds successfully with g++ 4.2 or later, and with clang. It also will build as C++11.
|
||||
Fish can be built using a C++11 environment but only requires C++03. It builds successfully with g++ 4.2 or later, and with clang. This allows fish to run on older systems such as OS X Snow Leopard (released in 2009).
|
||||
|
||||
fish can be built using autotools or Xcode. autoconf 2.60 or later is required to build from git versions, but is not required for releases.
|
||||
Fish can be built using autotools or Xcode. autoconf 2.60 or later is required to build from git versions, but is not required for releases.
|
||||
|
||||
fish depends on a curses implementation, such as ncurses. The headers and libraries are required for building.
|
||||
|
||||
@@ -64,9 +64,11 @@ fish requires a number of utilities to operate, which should be present on any U
|
||||
|
||||
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. For Python versions 2.6 to 3.2 you need to install the module `backports.lzma`. How to install it depends on your system and how you installed Python. Most Linux distributions should include it as a package named `backports-lzma` (or similar). From version 3.3 onwards, Python already includes the required module.
|
||||
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
|
||||
|
||||
@@ -82,7 +84,7 @@ chsh will prompt you for your password, and change your default shell. Substitut
|
||||
|
||||
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
|
||||
echo /usr/local/bin/fish | sudo tee -a /etc/shells
|
||||
|
||||
To switch your default shell back, you can run:
|
||||
|
||||
@@ -90,6 +92,8 @@ To switch your default shell back, you can run:
|
||||
|
||||
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).
|
||||
|
||||
@@ -46,6 +46,9 @@ echo " input filter: $INPUTFILTER"
|
||||
echo " output directory: $OUTPUTDIR"
|
||||
echo " skipping: $CONDEMNED_PAGES"
|
||||
|
||||
#Until now the makefile likely has been affecting our output, reset for upcoming warnings
|
||||
tput sgr0
|
||||
|
||||
# Make sure INPUTDIR is found
|
||||
if test ! -d "$INPUTDIR"; then
|
||||
echo >&2 "Could not find input directory '${INPUTDIR}'"
|
||||
@@ -132,13 +135,18 @@ if test "$RESULT" = 0 ; then
|
||||
fi
|
||||
|
||||
# Destroy TMPLOC
|
||||
echo "Cleaning up '$TMPLOC'"
|
||||
if test "$RESULT" -ne 0; then
|
||||
echo "Cleaning up '$TMPLOC'"
|
||||
fi
|
||||
rm -Rf "$TMPLOC"
|
||||
|
||||
if test "$RESULT" = 0; then
|
||||
# Tell the user what we did
|
||||
echo "Output man pages into '${OUTPUTDIR}'"
|
||||
if test "$RESULT" -ne 0; then
|
||||
tput smso 2> /dev/null || true
|
||||
echo "Doxygen failed creating manpages. See the output log for details."
|
||||
tput sgr0 2> /dev/null || true
|
||||
else
|
||||
echo "Doxygen failed. See the output log for details."
|
||||
tput bold 2> /dev/null || true
|
||||
echo Built manpages
|
||||
tput sgr0 2> /dev/null || true
|
||||
fi
|
||||
exit $RESULT
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
#!/usr/local/bin/fish
|
||||
|
||||
cppcheck --enable=all --std=posix --quiet .
|
||||
cppcheck --enable=all --std=posix --quiet ./src/
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
This is the_ridiculous'fish s delightful fork of, fish friendly interactive shell. For more information, visit http://ridiculousfish.com/shell/ .
|
||||
|
||||
This installer will install fish, but will not modify your /etc/shells file or your default shell. I trust you know how to do that yourself if you care to!
|
||||
28
build_tools/iwyu.linux.imp
Normal file
28
build_tools/iwyu.linux.imp
Normal file
@@ -0,0 +1,28 @@
|
||||
# Map file for the include-what-you-use tool on Linux.
|
||||
[
|
||||
{ include: ["<bits/fcntl-linux.h>", "private", "<fcntl.h>", "public"] },
|
||||
{ include: ["<bits/mman-linux.h>", "private", "<sys/mman.h>", "public"] },
|
||||
{ include: ["<bits/socket-linux.h>", "private", "<sys/socket.h>", "public"] },
|
||||
{ include: ["<bits/socket_type.h>", "private", "<sys/socket.h>", "public"] },
|
||||
{ include: ["<bits/local_lim.h>", "private", "<limits.h>", "public"] },
|
||||
{ include: ["<tr1/memory>", "public", "<memory>", "public"] },
|
||||
{ include: ["<features.h>", "public", "<stdio.h>", "public"] },
|
||||
{ include: ["<features.h>", "public", "<stddef.h>", "public"] },
|
||||
{ include: ["<features.h>", "public", "<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: ["intmax_t", "private", "<sys/stdint.h>", "public"] },
|
||||
{ symbol: ["intmax_t", "private", "<sys/types.h>", "public"] },
|
||||
{ symbol: ["uint32_t", "private", "<sys/stdint.h>", "public"] },
|
||||
{ symbol: ["uint32_t", "private", "<sys/types.h>", "public"] },
|
||||
{ symbol: ["uint64_t", "private", "<sys/stdint.h>", "public"] },
|
||||
{ symbol: ["uint64_t", "private", "<sys/types.h>", "public"] },
|
||||
{ symbol: ["uintmax_t", "private", "<sys/stdint.h>", "public"] },
|
||||
{ symbol: ["uintmax_t", "private", "<sys/types.h>", "public"] },
|
||||
{ symbol: ["clock_gettime", "private", "<sys/time.h>", "public"] },
|
||||
{ symbol: ["timespec", "private", "<sys/time.h>", "public"] },
|
||||
{ symbol: ["memset", "private", "<string.h>", "public"] },
|
||||
{ symbol: ["strerror", "private", "<string.h>", "public"] },
|
||||
]
|
||||
98
build_tools/iwyu.osx.imp
Normal file
98
build_tools/iwyu.osx.imp
Normal file
@@ -0,0 +1,98 @@
|
||||
# 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.
|
||||
[
|
||||
{ include: ["<sys/_pthread/_pthread_once_t.h>", "private", "<pthread.h>", "public"] },
|
||||
{ include: ["<sys/_pthread/_pthread_mutex_t.h>", "private", "<pthread.h>", "public"] },
|
||||
{ include: ["<sys/_pthread/_pthread_rwlock_t.h>", "private", "<pthread.h>", "public"] },
|
||||
{ include: ["<sys/_pthread/_pthread_mutexattr_t.h>", "private", "<pthread.h>", "public"] },
|
||||
{ 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/_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"] },
|
||||
{ include: ["<sys/_types/_suseconds_t.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<sys/errno.h>", "private", "<errno.h>", "public"] },
|
||||
{ include: ["<sys/unistd.h>", "private", "<unistd.h>", "public"] },
|
||||
{ include: ["<_wctype.h>", "private", "<wctype.h>", "public"] },
|
||||
{ include: ["<sys/fcntl.h>", "private", "<fcntl.h>", "public"] },
|
||||
{ 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/_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"] },
|
||||
{ include: ["<sys/_types/_mode_t.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<sys/_types/_pid_t.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<sys/_types/_fd_def.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<sys/_types/_fd_isset.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<sys/_types/_fd_set.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<sys/_types/_fd_zero.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<sys/_types/_timeval.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<sys/_types/_uid_t.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<_types/_intmax_t.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<_types/_uintmax_t.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<_types/_uint8_t.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<sys/_types/_int32_t.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<_types/_uint64_t.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<sys/_types/_uintptr_t.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<sys/_types/_dev_t.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<sys/_types/_ino_t.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<sys/_types/_va_list.h>", "private", "<stdio.h>", "public"] },
|
||||
{ include: ["<__functional_base>", "private", "<memory>", "public"] },
|
||||
{ include: ["<__functional_base>", "private", "<vector>", "public"] },
|
||||
{ include: ["<__functional_base>", "private", "<string>", "public"] },
|
||||
{ include: ["<__tree>", "private", "<map>", "public"] },
|
||||
{ include: ["<__tree>", "private", "<set>", "public"] },
|
||||
{ include: ["<_types/_uint32_t.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<sys/_types/_va_list.h>", "private", "<sys/types.h>", "public"] },
|
||||
{ include: ["<sys/_types/_sigset_t.h>", "private", "<signal.h>", "public"] },
|
||||
{ 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/ttycom.h>", "private", "<termios.h>", "public"] },
|
||||
{ include: ["<sys/syslimits.h>", "private", "<limits.h>", "public"] },
|
||||
{ include: ["<i386/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/spawn.h>", "private", "<spawn.h>", "public"] },
|
||||
{ include: ["<sys/dirent.h>", "private", "<dirent.h>", "public"] },
|
||||
# { include: ["<>", "private", "<>", "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: ["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"] },
|
||||
{ symbol: ["pid_t", "private", "<sys/types.h>", "public"] },
|
||||
{ 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: ["intptr_t", "private", "<stdint.h>", "public"] },
|
||||
{ symbol: ["size_t", "private", "<stdint.h>", "public"] },
|
||||
{ symbol: ["tparm", "private", "<ncurses.h>", "public"] },
|
||||
{ symbol: ["ERR", "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"] },
|
||||
{ symbol: ["MB_CUR_MAX", "private", "<xlocale.h>", "public"] },
|
||||
{ symbol: ["MB_CUR_MAX", "private", "<stdlib.h>", "public"] },
|
||||
]
|
||||
@@ -7,6 +7,8 @@ set cppchecks warning,performance,portability,information,missingInclude
|
||||
set cppcheck_args
|
||||
set c_files
|
||||
set all no
|
||||
set kernel_name (uname -s)
|
||||
set machine_type (uname -m)
|
||||
|
||||
set -gx CXX $argv[1]
|
||||
set -e argv[1]
|
||||
@@ -17,15 +19,27 @@ if test "$argv[1]" = "--all"
|
||||
set -e argv[1]
|
||||
end
|
||||
|
||||
if test $kernel_name = Linux
|
||||
# This is an awful hack. However, the include-what-you-use program spews lots of errors like
|
||||
# /usr/include/unistd.h:226:10: fatal error: 'stddef.h' file not found
|
||||
# if we don't explicitly tell it where to find the system headers on Linux. See
|
||||
# http://stackoverflow.com/questions/19642590/libtooling-cant-find-stddef-h-nor-other-headers/
|
||||
set -l sys_includes (eval $CXX -v -c src/builtin.cpp 2>&1 | \
|
||||
sed -n -e '/^#include <...> search/,/^End of search list/s/^ *//p')[2..-2]
|
||||
set -x CPLUS_INCLUDE_PATH (string join ':' $sys_includes)
|
||||
end
|
||||
|
||||
# We only want -D and -I options to be passed thru to cppcheck.
|
||||
for arg in $argv
|
||||
if string match -q -- '-D*' $arg
|
||||
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
|
||||
if test (uname -m) = "x86_64"
|
||||
if test "$machine_type" = "x86_64"
|
||||
set cppcheck_args -D__x86_64__ -D__LP64__ $cppcheck_args
|
||||
end
|
||||
|
||||
@@ -34,33 +48,51 @@ if test $all = yes
|
||||
else
|
||||
# We haven't been asked to lint all the source. If there are uncommitted
|
||||
# changes lint those, else lint the files in the most recent commit.
|
||||
set pending (git status --porcelain --short --untracked-files=all | sed -e 's/^ *//')
|
||||
if set -q pending[1]
|
||||
# There are pending changes so lint those files.
|
||||
for arg in $pending
|
||||
set files $files (string split -m 1 ' ' $arg)[2]
|
||||
end
|
||||
else
|
||||
# Select (cached files) (modified but not cached, and untracked files)
|
||||
set files (git diff-index --cached HEAD --name-only) (git ls-files --exclude-standard --others --modified)
|
||||
if not set -q files[1]
|
||||
# No pending changes so lint the files in the most recent commit.
|
||||
set files (git show --word-diff=porcelain --name-only --pretty=oneline head)[2..-1]
|
||||
set files (git diff-tree --no-commit-id --name-only -r HEAD)
|
||||
end
|
||||
|
||||
# Extract just the C/C++ files.
|
||||
set c_files (string match -r '.*\.c(?:pp)?$' -- $files)
|
||||
# Extract just the C/C++ files that exist.
|
||||
set c_files
|
||||
for file in (string match -r '.*\.c(?:pp)?$' -- $files)
|
||||
test -f $file; and set c_files $c_files $file
|
||||
end
|
||||
end
|
||||
|
||||
# We now have a list of files to check so run the linters.
|
||||
if set -q c_files[1]
|
||||
if type -q iwyu
|
||||
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
|
||||
include-what-you-use -Xiwyu --no_default_mappings -Xiwyu --mapping_file=build_tools/iwyu.osx.imp $cppcheck_args --std=c++11 $c_file 2>&1
|
||||
case Linux
|
||||
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
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if type -q cppcheck
|
||||
echo
|
||||
echo ========================================
|
||||
echo Running cppcheck
|
||||
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.
|
||||
cppcheck -q --verbose --std=posix --std=c11 --language=c++ --template "[{file}:{line}]: {severity} ({id}): {message}" --suppress=missingIncludeSystem --inline-suppr --enable=$cppchecks $cppcheck_args $c_files 2>& 1
|
||||
# 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.
|
||||
cppcheck -q --verbose --std=posix --language=c++ --template "[{file}:{line}]: {severity} ({id}): {message}" --suppress=missingIncludeSystem --inline-suppr --enable=$cppchecks --rule-file=.cppcheck.rule $cppcheck_args $c_files 2>&1
|
||||
end
|
||||
|
||||
if type -q oclint
|
||||
@@ -68,29 +100,28 @@ if set -q c_files[1]
|
||||
echo ========================================
|
||||
echo Running oclint
|
||||
echo ========================================
|
||||
# The stderr to stdout redirection is because oclint, incorrectly
|
||||
# writes its final summary counts of the errors detected to stderr.
|
||||
# Anyone running this who wants to capture its output will expect those
|
||||
# messages to be written to stdout.
|
||||
if test (uname -s) = "Darwin"
|
||||
# The stderr to stdout redirection is because oclint, incorrectly writes its final summary
|
||||
# counts of the errors detected to stderr. Anyone running this who wants to capture its
|
||||
# output will expect those messages to be written to stdout.
|
||||
if test "$kernel_name" = "Darwin"
|
||||
if not test -f compile_commands.json
|
||||
xcodebuild > xcodebuild.log
|
||||
oclint-xcodebuild xcodebuild.log > /dev/null
|
||||
xcodebuild >xcodebuild.log
|
||||
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.21/' -- -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
|
||||
oclint-json-compilation-database -e '/pcre2-10.21/' $i_files 2>&1
|
||||
end
|
||||
else
|
||||
# Presumably we're on Linux or other platform not requiring special
|
||||
# handling for oclint to work.
|
||||
oclint $c_files -- $argv 2>& 1
|
||||
oclint $c_files -- $argv 2>&1
|
||||
end
|
||||
end
|
||||
else
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Terminate on error
|
||||
set -e
|
||||
|
||||
sudo rm -Rf /tmp/fishfish
|
||||
mkdir /tmp/fishfish
|
||||
git archive --format=tar fish_fish | tar -x -C /tmp/fishfish
|
||||
mkdir /tmp/fishfish/doc-pak
|
||||
cp README INSTALL CHANGELOG release_notes.html /tmp/fishfish/doc-pak/
|
||||
cp build_tools/description-pak /tmp/fishfish/
|
||||
cd /tmp/fishfish
|
||||
autoconf
|
||||
./configure
|
||||
make -j 3
|
||||
sudo checkinstall --default --pakdir ~/fish_built/ --pkgversion 0.9 make install
|
||||
mv ~/fish_built/fishfish_0.9-1_i386.deb ~/fish_built/fishfish_0.9_i386.deb
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
#!/bin/sh
|
||||
|
||||
VERSION=`sed -E -n 's/^.*PACKAGE_VERSION "([0-9.]+)"/\1/p' osx/config.h`
|
||||
# Script to produce an OS X installer .pkg and .app(.zip)
|
||||
|
||||
VERSION=`git describe --always --dirty 2>/dev/null`
|
||||
if test -z "$VERSION" ; then
|
||||
echo "Could not get version from osx/config.h"
|
||||
exit 1
|
||||
echo "Could not get version from git"
|
||||
VERSION=`sed -E -n 's/^.*PACKAGE_VERSION "([0-9a-z.\-]+)"/\1/p' osx/config.h`
|
||||
if test -z "$VERSION"; then
|
||||
echo "Could not get version from osx/config.h"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Version is $VERSION"
|
||||
@@ -11,20 +17,25 @@ echo "Version is $VERSION"
|
||||
set -x
|
||||
|
||||
make distclean
|
||||
rm -Rf /tmp/fish_pkg
|
||||
|
||||
#Exit on error
|
||||
set -e
|
||||
|
||||
mkdir -p /tmp/fish_pkg/root /tmp/fish_pkg/intermediates /tmp/fish_pkg/dst
|
||||
xcodebuild install -scheme install_tree -configuration Release DSTROOT=/tmp/fish_pkg/root/
|
||||
pkgbuild --scripts build_tools/osx_package_scripts --root /tmp/fish_pkg/root/ --identifier 'com.ridiculousfish.fish-shell-pkg' --version "$VERSION" /tmp/fish_pkg/intermediates/fish.pkg
|
||||
PKGDIR=`mktemp -d`
|
||||
|
||||
productbuild --package-path /tmp/fish_pkg/intermediates --distribution build_tools/osx_distribution.xml --resources build_tools/osx_package_resources/ ~/fish_built/fish.pkg
|
||||
OUTPUT_PATH=${FISH_ARTEFACT_PATH:-~/fish_built}
|
||||
|
||||
mkdir -p $PKGDIR/root $PKGDIR/intermediates $PKGDIR/dst
|
||||
xcodebuild install -scheme install_tree -configuration Release DSTROOT=$PKGDIR/root/
|
||||
pkgbuild --scripts build_tools/osx_package_scripts --root $PKGDIR/root/ --identifier 'com.ridiculousfish.fish-shell-pkg' --version "$VERSION" $PKGDIR/intermediates/fish.pkg
|
||||
|
||||
productbuild --package-path $PKGDIR/intermediates --distribution build_tools/osx_distribution.xml --resources build_tools/osx_package_resources/ $OUTPUT_PATH/fish-$VERSION.pkg
|
||||
|
||||
|
||||
# Make the app
|
||||
xcodebuild -scheme fish.app -configuration Release DSTROOT=/tmp/fish_app/
|
||||
rm -f ~/fish_built/fish.app.zip
|
||||
xcodebuild -scheme fish.app -configuration Release DSTROOT=/tmp/fish_app/ SYMROOT=DerivedData/fish/Build/Products
|
||||
|
||||
cd DerivedData/fish/Build/Products/Release/
|
||||
zip -r ~/fish_built/fish.app.zip fish.app
|
||||
zip -r $OUTPUT_PATH/fish-$VERSION.app.zip fish.app
|
||||
|
||||
rm -r $PKGDIR
|
||||
|
||||
@@ -4,27 +4,43 @@
|
||||
# We use git to output a tree. But we also want to build the user documentation
|
||||
# and put that in the tarball, so that nobody needs to have doxygen installed
|
||||
# to build it.
|
||||
# Outputs to $FISH_ARTEFACT_PATH or ~/fish_built by default
|
||||
|
||||
# Exit on error
|
||||
set -e
|
||||
|
||||
# We wil generate a tarball with a prefix "fish"
|
||||
# We wil generate a tarball with a prefix "fish-VERSION"
|
||||
# git can do that automatically for us via git-archive
|
||||
# but to get the documentation in, we need to make a symlink called "fish"
|
||||
# but to get the documentation in, we need to make a symlink called "fish-VERSION"
|
||||
# and tar from that, so that the documentation gets the right prefix
|
||||
|
||||
# We need GNU tar as that supports the --mtime option
|
||||
# BSD tar supports --mtree but keeping them in sync sounds too hard
|
||||
TAR=notfound
|
||||
for try in tar gtar gnutar; do
|
||||
if $try -Pcf /dev/null --mtime now /dev/null >/dev/null 2>&1; then
|
||||
TAR=$try
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$TAR" = "notfound" ]; then
|
||||
echo 'No suitable tar (supporting --mtime) found as tar/gtar/gnutar in PATH'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get the current directory, which we'll use for symlinks
|
||||
wd="$PWD"
|
||||
|
||||
# The name of the prefix, which is the directory that you get when you untar
|
||||
prefix="fish"
|
||||
|
||||
# Get the version from git-describe
|
||||
VERSION=`git describe --dirty 2>/dev/null`
|
||||
prefix="$prefix-$VERSION"
|
||||
|
||||
# The name of the prefix, which is the directory that you get when you untar
|
||||
prefix="fish-$VERSION"
|
||||
|
||||
# The path where we will output the tar file
|
||||
path=~/fish_built/$prefix.tar
|
||||
# Defaults to ~/fish_built
|
||||
path=${FISH_ARTEFACT_PATH:-~/fish_built}/$prefix.tar
|
||||
|
||||
# Clean up stuff we've written before
|
||||
rm -f "$path" "$path".gz
|
||||
@@ -39,20 +55,25 @@ autoconf
|
||||
./configure --with-doxygen
|
||||
make doc share/man
|
||||
echo $VERSION > version
|
||||
cd /tmp
|
||||
rm -f "$prefix"
|
||||
|
||||
PREFIX_TMPDIR=`mktemp -d`
|
||||
cd $PREFIX_TMPDIR
|
||||
|
||||
ln -s "$wd" "$prefix"
|
||||
TAR_APPEND="gnutar --append --file=$path --mtime=now --owner=0 --group=0 --mode=g+w,a+rX"
|
||||
TAR_APPEND="$TAR --append --file=$path --mtime=now --owner=0 --group=0 --mode=g+w,a+rX"
|
||||
$TAR_APPEND --no-recursion "$prefix"/user_doc
|
||||
$TAR_APPEND "$prefix"/user_doc/html "$prefix"/share/man
|
||||
$TAR_APPEND "$prefix"/version
|
||||
$TAR_APPEND "$prefix"/configure "$prefix"/config.h.in
|
||||
rm -f "$prefix"/version
|
||||
rm -f "$prefix"
|
||||
rm "$prefix"/version
|
||||
unlink "$prefix"
|
||||
|
||||
cd -
|
||||
rmdir $PREFIX_TMPDIR
|
||||
|
||||
# gzip it
|
||||
gzip "$path"
|
||||
|
||||
# Output what we did, and the sha1 hash
|
||||
echo "Tarball written to $path".gz
|
||||
openssl sha1 "$path".gz
|
||||
openssl dgst -sha256 "$path".gz
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 35 KiB |
@@ -1,15 +1,16 @@
|
||||
{\rtf1\ansi\ansicpg1252\cocoartf1187\cocoasubrtf370
|
||||
{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset0 Monaco;}
|
||||
{\rtf1\ansi\ansicpg1252\cocoartf1485\cocoasubrtf410
|
||||
{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;\f1\fnil\fcharset0 Menlo-Regular;}
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
{\*\expandedcolortbl;\csgenericrgb\c100000\c100000\c100000;}
|
||||
{\info
|
||||
{\author dlkfjslfjsfdlkfk}}\margl1440\margr1440\vieww10800\viewh8400\viewkind0
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
|
||||
|
||||
\f0\fs30 \cf0 The fish shell is a smart and user friendly command line shell. For more information, visit {\field{\*\fldinst{HYPERLINK "http://fishshell.com"}}{\fldrslt http://fishshell.com}}.\
|
||||
\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.\
|
||||
\
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
# This runs C++ files and fish scripts (*.fish) through their respective code
|
||||
# formatting programs.
|
||||
#
|
||||
set git_clang_format no
|
||||
set c_files
|
||||
set f_files
|
||||
set all no
|
||||
@@ -21,37 +22,64 @@ if set -q argv[1]
|
||||
end
|
||||
|
||||
if test $all = yes
|
||||
set files (git status --porcelain --short --untracked-files=all | sed -e 's/^ *[^ ]* *//')
|
||||
if set -q files[1]
|
||||
echo
|
||||
echo You have uncommited changes. Cowardly refusing to restyle the entire code base.
|
||||
echo
|
||||
exit 1
|
||||
end
|
||||
set c_files src/*.h src/*.cpp
|
||||
set f_files ***.fish
|
||||
# For now we don't restyle all the fish scripts. That's because `fish_indent` still has some
|
||||
# problems with its output that require manual intervention. Not to mention that very few of the
|
||||
# fish scripts even conform to `fish_indent` output at this time. When `fish_indent` output is
|
||||
# deemed acceptable as a default and all the fish scripts have been restyled this comment should
|
||||
# be removed and the following statement uncommented.
|
||||
# set f_files share/***.fish
|
||||
else
|
||||
# We haven't been asked to reformat all the source. If there are uncommitted
|
||||
# changes reformat those, else reformat the files in the most recent commit.
|
||||
set pending (git status --porcelain --short --untracked-files=all | sed -e 's/^ *//')
|
||||
if count $pending > /dev/null
|
||||
# There are pending changes so lint those files.
|
||||
for arg in $pending
|
||||
set files $files (string split -m 1 ' ' $arg)[2]
|
||||
end
|
||||
# We haven't been asked to reformat all the source. If there are uncommitted changes reformat
|
||||
# those using `git clang-format`. Else reformat the files in the most recent commit.
|
||||
# Select (cached files) (modified but not cached, and untracked files)
|
||||
set files (git diff-index --cached HEAD --name-only) (git ls-files --exclude-standard --others --modified)
|
||||
if set -q files[1]
|
||||
set git_clang_format yes
|
||||
else
|
||||
# No pending changes so lint the files in the most recent commit.
|
||||
set files (git show --name-only --pretty=oneline head | tail --lines=+2)
|
||||
set files (git diff-tree --no-commit-id --name-only -r HEAD)
|
||||
end
|
||||
|
||||
# Extract just the C/C++ files.
|
||||
set c_files (string match -r '^.*\.(?:c|cpp|h)$' -- $files)
|
||||
# Extract just the C/C++ files that exist.
|
||||
set c_files
|
||||
for file in (string match -r '^.*\.(?:c|cpp|h)$' -- $files)
|
||||
test -f $file; and set c_files $c_files $file
|
||||
end
|
||||
# Extract just the fish files.
|
||||
set f_files (string match -r '^.*\.fish$' -- $files)
|
||||
end
|
||||
|
||||
# Run the C++ reformatter if we have any C++ files.
|
||||
if set -q c_files[1]
|
||||
if type -q clang-format
|
||||
if test $git_clang_format = yes
|
||||
if type -q git-clang-format
|
||||
echo
|
||||
echo ========================================
|
||||
echo Running git-clang-format
|
||||
echo ========================================
|
||||
git add $c_files
|
||||
git-clang-format
|
||||
else
|
||||
echo
|
||||
echo 'WARNING: Cannot find git-clang-format command'
|
||||
echo
|
||||
end
|
||||
else if type -q clang-format
|
||||
echo
|
||||
echo ========================================
|
||||
echo Running clang-format
|
||||
echo ========================================
|
||||
for file in $c_files
|
||||
clang-format $file > $file.new
|
||||
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
|
||||
@@ -78,7 +106,8 @@ if set -q f_files[1]
|
||||
echo Running fish_indent
|
||||
echo ========================================
|
||||
for file in $f_files
|
||||
fish_indent < $file > $file.new
|
||||
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
|
||||
|
||||
381
configure.ac
381
configure.ac
@@ -14,7 +14,7 @@ AC_PREREQ([2.60])
|
||||
AC_INIT(fish,
|
||||
m4_esyscmd([cut -f 3 -d ' ' FISH-BUILD-VERSION-FILE | tr -d '\n']),
|
||||
fish-users@lists.sourceforge.net)
|
||||
|
||||
ac_clean_files=a.out.dSYM
|
||||
#
|
||||
# List of output variables produced by this configure script
|
||||
#
|
||||
@@ -25,7 +25,6 @@ AC_SUBST(LDFLAGS_FISH)
|
||||
AC_SUBST(WCHAR_T_BITS)
|
||||
AC_SUBST(EXTRA_PCRE2)
|
||||
|
||||
|
||||
#
|
||||
# If needed, run autoconf to regenerate the configure file
|
||||
#
|
||||
@@ -50,7 +49,7 @@ if test configure -ot configure.ac; then
|
||||
AC_MSG_ERROR(
|
||||
[cannot find the autoconf program in your path.
|
||||
This program needs to be run whenever the configure.ac file is modified.
|
||||
Please install it and try again.]
|
||||
Please install autoconf and try again.]
|
||||
)
|
||||
fi
|
||||
else
|
||||
@@ -75,7 +74,7 @@ if test ! -f ./config.h.in -o config.h.in -ot configure.ac; then
|
||||
AC_MSG_ERROR(
|
||||
[cannot find the autoheader program in your path.
|
||||
This program needs to be run whenever the configure.ac file is modified.
|
||||
Please install it and try again.]
|
||||
Please install autotools and try again.]
|
||||
)
|
||||
fi
|
||||
else
|
||||
@@ -86,20 +85,24 @@ fi
|
||||
# Set up various programs needed for install
|
||||
# Note AC_PROG_CXX sets CXXFLAGS if not set, which we want
|
||||
# So ensure this happens before we modify CXXFLAGS below
|
||||
#
|
||||
|
||||
AC_PROG_CXX([g++ c++])
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_SED
|
||||
# Do CC also, because PCRE2 will use it.
|
||||
AC_PROG_CC
|
||||
AC_PROG_CC_STDC # c99
|
||||
AC_PROG_CXX
|
||||
AC_LANG(C++)
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_LN_S
|
||||
AC_PROG_MKDIR_P
|
||||
AC_PROG_AWK
|
||||
AC_PROG_FGREP
|
||||
AC_PROG_SED
|
||||
AC_USE_SYSTEM_EXTENSIONS
|
||||
|
||||
echo "CXXFLAGS: $CXXFLAGS"
|
||||
|
||||
#
|
||||
# Tell autoconf to create config.h header
|
||||
#
|
||||
AC_CONFIG_HEADERS(config.h)
|
||||
AC_CANONICAL_TARGET
|
||||
|
||||
|
||||
#
|
||||
@@ -197,8 +200,7 @@ AS_IF([test "$use_doxygen" != "no"],
|
||||
# where off_t can be either 32 or 64 bit, the latter size is used. On
|
||||
# other systems, this should do nothing. (Hopefully)
|
||||
#
|
||||
|
||||
CXXFLAGS="$CXXFLAGS -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64"
|
||||
AC_SYS_LARGEFILE
|
||||
|
||||
|
||||
# fish does not use exceptions
|
||||
@@ -211,12 +213,11 @@ CXXFLAGS="$CXXFLAGS -fno-exceptions"
|
||||
# But signed comparison warnings are way too aggressive
|
||||
#
|
||||
|
||||
CXXFLAGS="$CXXFLAGS -Wall -Wno-sign-compare"
|
||||
CXXFLAGS="$CXXFLAGS -Wextra"
|
||||
|
||||
#
|
||||
# This is needed in order to get the really cool backtraces on Linux
|
||||
#
|
||||
|
||||
AC_MSG_CHECKING([for -rdynamic linker flag])
|
||||
prev_LDFLAGS="$LDFLAGS"
|
||||
LDFLAGS="$LDFLAGS -rdynamic"
|
||||
@@ -230,100 +231,6 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],
|
||||
])
|
||||
LDFLAGS="$prev_LDFLAGS"
|
||||
|
||||
|
||||
#
|
||||
# If we are compiling against glibc, set some flags to work around
|
||||
# some rather stupid attempts to hide prototypes for *wprintf
|
||||
# functions, as well as prototypes of various gnu extensions.
|
||||
#
|
||||
|
||||
AC_MSG_CHECKING([if we are compiling against glibc])
|
||||
AC_RUN_IFELSE(
|
||||
[
|
||||
AC_LANG_PROGRAM(
|
||||
[
|
||||
#include <stdlib.h>
|
||||
#ifdef __GLIBC__
|
||||
#define STATUS 0
|
||||
#else
|
||||
#define STATUS 1
|
||||
#endif
|
||||
],
|
||||
[
|
||||
return STATUS;
|
||||
]
|
||||
)
|
||||
],
|
||||
[glibc=yes],
|
||||
[glibc=no]
|
||||
)
|
||||
|
||||
if test "$glibc" = yes; then
|
||||
AC_MSG_RESULT(yes)
|
||||
|
||||
#
|
||||
# This gives us access to prototypes for gnu extensions and C99
|
||||
# functions if we are compiling agains glibc. All GNU extensions
|
||||
# that are used must have a fallback implementation available in
|
||||
# fallback.h, in order to keep fish working on non-gnu platforms.
|
||||
#
|
||||
|
||||
CXXFLAGS="$CXXFLAGS -D_GNU_SOURCE=1 -D_ISO99_SOURCE=1"
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
|
||||
|
||||
#
|
||||
# Test cpu for special handling of ppc
|
||||
#
|
||||
# This is used to skip use of tputs on ppc systems, since it seemed to
|
||||
# be broken, at least on older debin-based systems. This is obviously
|
||||
# not the right way to to detect whether this workaround should be
|
||||
# used, since it catches far to many systems, but I do not have the
|
||||
# hardware available to narrow this problem down, and in practice, it
|
||||
# seems that tputs is never really needed.
|
||||
#
|
||||
|
||||
AC_CANONICAL_TARGET
|
||||
|
||||
if test $target_cpu = powerpc; then
|
||||
AC_DEFINE([TPUTS_KLUDGE],[1],[Evil kludge to get Power based machines to work])
|
||||
fi
|
||||
|
||||
|
||||
#
|
||||
# Solaris-specific flags go here
|
||||
#
|
||||
|
||||
AC_MSG_CHECKING([if we are under Solaris])
|
||||
case $target_os in
|
||||
solaris*)
|
||||
AC_DEFINE( __EXTENSIONS__, 1, [Macro to enable additional prototypes under Solaris])
|
||||
AC_MSG_RESULT(yes)
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT(no)
|
||||
;;
|
||||
esac
|
||||
|
||||
#
|
||||
# BSD-specific flags go here
|
||||
#
|
||||
|
||||
AC_MSG_CHECKING([if we are under BSD])
|
||||
case $target_os in
|
||||
*bsd*)
|
||||
AC_DEFINE( __BSD_VISIBLE, 1, [Macro to enable additional prototypes under BSD])
|
||||
AC_DEFINE( _NETBSD_SOURCE, 1, [Macro to enable additional prototypes under BSD])
|
||||
AC_MSG_RESULT(yes)
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT(no)
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
#
|
||||
# See if Linux procfs is present. This is used to get extra
|
||||
# information about running processes.
|
||||
@@ -331,18 +238,6 @@ esac
|
||||
|
||||
AC_CHECK_FILES([/proc/self/stat])
|
||||
|
||||
|
||||
#
|
||||
# This is ued to tell the wgetopt library to translate strings. This
|
||||
# way wgetopt can be dropped into any project without requiring i18n.
|
||||
#
|
||||
|
||||
AC_DEFINE(
|
||||
[HAVE_TRANSLATE_H],
|
||||
[1],
|
||||
[Define to 1 if the wgettext function should be used for translating strings.]
|
||||
)
|
||||
|
||||
# Disable curses macros that conflict with the STL
|
||||
AC_DEFINE([NCURSES_NOMACROS], [1], [Define to 1 to disable ncurses macros that conflict with the STL])
|
||||
AC_DEFINE([NOMACROS], [1], [Define to 1 to disable curses macros that conflict with the STL])
|
||||
@@ -360,8 +255,7 @@ AC_SEARCH_LIBS( nanosleep, rt, , [AC_MSG_ERROR([Cannot find the rt library, need
|
||||
AC_SEARCH_LIBS( shm_open, rt, , [AC_MSG_ERROR([Cannot find the rt library, needed to build this package.] )] )
|
||||
AC_SEARCH_LIBS( pthread_create, pthread, , [AC_MSG_ERROR([Cannot find the pthread library, needed to build this package.] )] )
|
||||
AC_SEARCH_LIBS( setupterm, [ncurses tinfo curses], , [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'])] )
|
||||
AC_SEARCH_LIBS( [nan], [m], [AC_DEFINE( [HAVE_NAN], [1], [Define to 1 if you have the nan function])] )
|
||||
AC_SEARCH_LIBS( [backtrace_symbols_fd], [execinfo] )
|
||||
AC_SEARCH_LIBS( [dladdr], [dl] )
|
||||
|
||||
if test x$local_gettext != xno; then
|
||||
AC_SEARCH_LIBS( gettext, intl,,)
|
||||
@@ -387,128 +281,10 @@ AC_CHECK_SIZEOF(wchar_t)
|
||||
WCHAR_T_BITS=`expr 8 \* $ac_cv_sizeof_wchar_t`
|
||||
AC_DEFINE_UNQUOTED([WCHAR_T_BITS], [$WCHAR_T_BITS], [The size of wchar_t in bits.])
|
||||
|
||||
|
||||
#
|
||||
# On some platforms (Solaris 10) adding -std=c99 in turn requires that
|
||||
# _POSIX_C_SOURCE be defined to 200112L otherwise several
|
||||
# POSIX-specific, non-ISO-C99 types/prototypes are made unavailable
|
||||
# e.g. siginfo_t. Defining _XOPEN_SOURCE to 600 is compatible with
|
||||
# the _POSIX_C_SOURCE value and provides a little assurance that
|
||||
# extension functions' prototypes are available, e.g. killpg().
|
||||
#
|
||||
# Some other platforms (OS X), will remove types/prototypes/macros
|
||||
# e.g. SIGWINCH if either _POSIX_C_SOURCE or _XOPEN_SOURCE is defined.
|
||||
#
|
||||
# This test adds these macros only if they enable a program that uses
|
||||
# both Posix and non-standard features to compile, and that program
|
||||
# does not compile without these macros.
|
||||
#
|
||||
# We try to make everyone happy.
|
||||
#
|
||||
# The ordering of the various autoconf tests is very critical as well:
|
||||
#
|
||||
# * This test needs to be run _after_ header detection tests, so that
|
||||
# the proper headers are included.
|
||||
#
|
||||
# * This test needs to be run _before_ testing for the presense of any
|
||||
# prototypes or other language functinality.
|
||||
#
|
||||
# * This test should be (but does not need to be) run after the
|
||||
# conditional definition of __EXTENSIONS__, to avoid redundant tests.
|
||||
#
|
||||
|
||||
XCXXFLAGS="$CXXFLAGS"
|
||||
|
||||
echo checking how to use -D_XOPEN_SOURCE=600 and -D_POSIX_C_SOURCE=200112L...
|
||||
local_found_posix_switch=no
|
||||
|
||||
for i in "" "-D_POSIX_C_SOURCE=200112L" "-D_XOPEN_SOURCE=600 -D_POSIX_C_SOURCE=200112L"; do
|
||||
|
||||
AC_MSG_CHECKING( if switches \"$i\" works)
|
||||
CXXFLAGS="$XCXXFLAGS $i"
|
||||
|
||||
#
|
||||
# Try to run this program, which should test various extensions
|
||||
# and Posix functionality. If this program works, then everything
|
||||
# should work. Hopefully.
|
||||
#
|
||||
|
||||
AC_TRY_LINK(
|
||||
[
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
/* POSIX, C89 and C99: POSIX extends this header.
|
||||
* For: kill(), killpg(), siginfo_t, sigset_t,
|
||||
* struct sigaction, sigemptyset(), sigaction(),
|
||||
* SIGIO and SIGWINCH. */
|
||||
#include <signal.h>
|
||||
|
||||
#ifdef HAVE_SIGINFO_H
|
||||
/* Neither POSIX, C89 nor C99: Solaris-specific (others?).
|
||||
* For: siginfo_t (also defined by signal.h when in
|
||||
* POSIX/extensions mode). */
|
||||
#include <siginfo.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SYS_IOCTL_H
|
||||
/* As above (under at least Linux and FreeBSD). */
|
||||
#include <sys/ioctl.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_TERMIOS_H
|
||||
#include <termios.h>
|
||||
#endif
|
||||
],
|
||||
[
|
||||
/* Avert high-level optimisation, by making the program's
|
||||
* return value depend on all tested identifiers. */
|
||||
long ret = 0;
|
||||
/* POSIX only: might be unhidden by _POSIX_C_SOURCE. */
|
||||
struct sigaction sa;
|
||||
sigset_t ss;
|
||||
siginfo_t info;
|
||||
ret += (long)(void *)&info + kill( 0, 0 ) +
|
||||
sigaction( 0, &sa, 0 ) + sigemptyset( &ss );
|
||||
/* Extended-POSIX: might be unhidden by _XOPEN_SOURCE. */
|
||||
ret += killpg( 0, 0 );
|
||||
/* Non-standard: might be hidden by the macros. */
|
||||
{
|
||||
struct winsize termsize;
|
||||
ret += (long)(void *)&termsize;
|
||||
ret += SIGWINCH + TIOCGWINSZ + SIGIO;
|
||||
}
|
||||
return ret;
|
||||
|
||||
],
|
||||
local_cv_use__posix_c_source=yes,
|
||||
local_cv_use__posix_c_source=no,
|
||||
)
|
||||
|
||||
if test x$local_cv_use__posix_c_source = xyes; then
|
||||
AC_MSG_RESULT( yes )
|
||||
local_found_posix_switch=yes
|
||||
break;
|
||||
else
|
||||
AC_MSG_RESULT( no )
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
#
|
||||
# We didn't find any combination of switches that worked - revert to
|
||||
# no switches and hope that the fallbacks work. A warning will be
|
||||
# printed at the end of the configure script.
|
||||
#
|
||||
|
||||
if test ! x$local_found_posix_switch = xyes; then
|
||||
CXXFLAGS="$XCXXFLAGS"
|
||||
fi
|
||||
|
||||
#
|
||||
# Detect nanoseconds fields in struct stat
|
||||
#
|
||||
AC_CHECK_MEMBERS([struct stat.st_ctime_nsec])
|
||||
AC_CHECK_MEMBERS([struct stat.st_mtimespec.tv_nsec])
|
||||
AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec])
|
||||
|
||||
@@ -518,19 +294,20 @@ AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec])
|
||||
AC_STRUCT_DIRENT_D_TYPE
|
||||
|
||||
#
|
||||
# Check for presense of various functions used by fish
|
||||
# Check for presence of various functions used by fish
|
||||
#
|
||||
|
||||
AC_CHECK_FUNCS( wcsdup wcsndup wcslen wcscasecmp wcsncasecmp fwprintf )
|
||||
AC_CHECK_FUNCS( futimes wcwidth wcswidth wcstok fputwc fgetwc )
|
||||
AC_CHECK_FUNCS( wcstol wcslcat wcslcpy lrand48_r killpg )
|
||||
AC_CHECK_FUNCS( backtrace backtrace_symbols_fd sysconf getifaddrs )
|
||||
AC_CHECK_FUNCS( wcsndup )
|
||||
AC_CHECK_FUNCS( futimes )
|
||||
AC_CHECK_FUNCS( wcslcpy lrand48_r killpg )
|
||||
AC_CHECK_FUNCS( backtrace_symbols getifaddrs )
|
||||
AC_CHECK_FUNCS( futimens clock_gettime )
|
||||
AC_CHECK_FUNCS( getpwent )
|
||||
|
||||
AC_CHECK_DECL( [mkostemp], [ AC_CHECK_FUNCS([mkostemp]) ] )
|
||||
|
||||
if test x$local_gettext != xno; then
|
||||
AC_CHECK_FUNCS( gettext dcgettext )
|
||||
AC_CHECK_FUNCS( gettext )
|
||||
|
||||
#
|
||||
# The Makefile also needs to know if we have gettext, so it knows if
|
||||
@@ -544,45 +321,6 @@ fi
|
||||
# features that Autoconf doesn't tell us about
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# Check if realpath accepts null for its second argument
|
||||
#
|
||||
|
||||
AC_MSG_CHECKING([if realpath accepts null for its second argument])
|
||||
AC_RUN_IFELSE(
|
||||
[
|
||||
AC_LANG_PROGRAM(
|
||||
[
|
||||
#include <limits.h>
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
],
|
||||
[
|
||||
int status;
|
||||
char *res;
|
||||
res = realpath( "somefile", 0 );
|
||||
status = !(res != 0 || errno == ENOENT);
|
||||
exit( status );
|
||||
]
|
||||
)
|
||||
],
|
||||
[have_realpath_null=yes],
|
||||
[have_realpath_null=no]
|
||||
)
|
||||
|
||||
if test "$have_realpath_null" = yes; then
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(
|
||||
[HAVE_REALPATH_NULL],
|
||||
[1],
|
||||
[Define to 1 if realpath accepts null for its second argument.]
|
||||
)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
|
||||
|
||||
#
|
||||
# Check if struct winsize and TIOCGWINSZ exist
|
||||
#
|
||||
@@ -616,41 +354,6 @@ AC_LINK_IFELSE(
|
||||
)
|
||||
|
||||
|
||||
#
|
||||
# If we have a fwprintf in libc, test that it actually works. As of
|
||||
# March 2006, it is broken under DragonFly BSD.
|
||||
#
|
||||
|
||||
if test "$ac_cv_func_fwprintf" = yes; then
|
||||
|
||||
AC_MSG_CHECKING([if fwprintf is broken])
|
||||
AC_RUN_IFELSE(
|
||||
[
|
||||
AC_LANG_PROGRAM(
|
||||
[
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <locale.h>
|
||||
#include <wchar.h>
|
||||
],
|
||||
[
|
||||
setlocale( LC_ALL, "" );
|
||||
fwprintf( stderr, L"%ls%ls", L"", L"fish:" );
|
||||
]
|
||||
)
|
||||
],
|
||||
[
|
||||
AC_MSG_RESULT(no)
|
||||
],
|
||||
[
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_DEFINE([HAVE_BROKEN_FWPRINTF], [1], [Define to 1 one if the implemented fwprintf is broken])
|
||||
]
|
||||
)
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Check for _nl_msg_cat_cntr symbol
|
||||
AC_MSG_CHECKING([for _nl_msg_cat_cntr symbol])
|
||||
AC_TRY_LINK(
|
||||
@@ -658,6 +361,7 @@ AC_TRY_LINK(
|
||||
#if HAVE_LIBINTL_H
|
||||
#include <libintl.h>
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
],
|
||||
[
|
||||
extern int _nl_msg_cat_cntr;
|
||||
@@ -678,30 +382,6 @@ else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
|
||||
# Check for __environ symbol
|
||||
AC_MSG_CHECKING([for __environ symbol])
|
||||
AC_TRY_LINK(
|
||||
[
|
||||
#include <unistd.h>
|
||||
],
|
||||
[
|
||||
extern char **__environ;
|
||||
char **tmp = __environ;
|
||||
exit(tmp!=0);
|
||||
],
|
||||
have___environ=yes,
|
||||
have___environ=no
|
||||
)
|
||||
if test "$have___environ" = yes; then
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(
|
||||
[HAVE___ENVIRON],
|
||||
[1],
|
||||
[Define to 1 if the __environ symbol is exported.]
|
||||
)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
|
||||
# Check for sys_errlist
|
||||
AC_MSG_CHECKING([for sys_errlist array])
|
||||
@@ -815,7 +495,7 @@ if test "x$included_pcre2" != "xyes"; then
|
||||
XLIBS="$LIBS"
|
||||
LIBS="$LIBS "`$PCRE2_CONFIG --libs$WCHAR_T_BITS 2>/dev/null`
|
||||
XCXXFLAGS="$CXXFLAGS"
|
||||
CXXFLAGS="$CXXFLAGS"`$PCRE2_CONFIG --cflags`
|
||||
CXXFLAGS="$CXXFLAGS "`$PCRE2_CONFIG --cflags`
|
||||
|
||||
# cheat a bit here. the exact library is determined by $WCHAR_T_BITS,
|
||||
# and so AC_CHECK_LIB won't work (can't use a variable as library name)
|
||||
@@ -912,11 +592,4 @@ AC_ARG_WITH([extra-confdir],
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_OUTPUT
|
||||
|
||||
if test ! x$local_found_posix_switch = xyes; then
|
||||
echo "Can't find a combination of switches to enable common extensions like detecting window size."
|
||||
echo "Some fish features may be disabled."
|
||||
fi
|
||||
|
||||
echo "fish is now configured."
|
||||
echo "Use 'make' and 'make install' to build and install fish."
|
||||
|
||||
|
||||
19
debian/control
vendored
19
debian/control
vendored
@@ -2,8 +2,9 @@ Source: fish
|
||||
Section: shells
|
||||
Priority: extra
|
||||
Maintainer: ridiculous_fish <corydoras@ridiculousfish.com>
|
||||
Uploaders: David Adam <zanchey@ucc.gu.uwa.edu.au>, Siteshwar Vashisht <siteshwar@gmail.com>
|
||||
Uploaders: David Adam <zanchey@ucc.gu.uwa.edu.au>
|
||||
Build-Depends: debhelper (>= 8.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
|
||||
@@ -11,13 +12,25 @@ Vcs-Browser: https://github.com/fish-shell/fish-shell
|
||||
|
||||
Package: fish
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, passwd (>= 4.0.3-10), bc, gettext-base, man-db
|
||||
Recommends: python (>=2.6), xsel (>=1.2.0), xdg-utils
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, fish-common (= ${source:Version}), passwd (>= 4.0.3-10), bc, gettext-base, man-db
|
||||
Recommends: xsel (>=1.2.0), xdg-utils
|
||||
Description: friendly interactive shell
|
||||
Fish is a command-line shell for modern systems, focusing on user-friendliness,
|
||||
sensibility and discoverability in interactive use. The syntax is simple, but
|
||||
not POSIX compliant.
|
||||
|
||||
Package: fish-common
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}
|
||||
Recommends: fish, python (>=2.6), xdg-utils
|
||||
Replaces: fish (<= 2.1.1.dfsg-2)
|
||||
Description: friendly interactive shell (architecture-independent files)
|
||||
Fish is a command-line shell for modern systems, focusing on user-friendliness,
|
||||
sensibility and discoverability in interactive use. The syntax is simple, but
|
||||
not POSIX compliant.
|
||||
.
|
||||
This package contains the common fish files shared by all architectures.
|
||||
|
||||
Package: fish-dbg
|
||||
Architecture: any
|
||||
Section: debug
|
||||
|
||||
60
debian/copyright
vendored
60
debian/copyright
vendored
@@ -1,6 +1,7 @@
|
||||
This work was packaged for Debian by David Adam <zanchey@ucc.gu.uwa.edu.au>
|
||||
on Thu, 14 Jun 2012 20:33:34 +0800, based on work by James Vega
|
||||
<jamessan@jamessan.com>.
|
||||
<jamessan@jamessan.com>. Modifications from the downstream Debian maintainer,
|
||||
Tristan Seligmann <mithrandi@debian.org>, have also been included.
|
||||
|
||||
It was downloaded from:
|
||||
|
||||
@@ -23,12 +24,12 @@ Copyright (C) 2005-2008 Axel Liljencrantz
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License version 2 as
|
||||
published by the Free Software Foundation.
|
||||
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
|
||||
@@ -37,11 +38,41 @@ Copyright (C) 2005-2008 Axel Liljencrantz
|
||||
On Debian systems, the complete text of the GNU General
|
||||
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
|
||||
|
||||
Fish contains code under the BSD license, namely versions of the
|
||||
two functions strlcat and strlcpy, modified for use with wide
|
||||
character strings.
|
||||
Fish contains code from the PCRE2 library to support regular expressions. This
|
||||
code, created by Philip Hazel, is distributed under the terms of the BSD
|
||||
license. Copyright © 1997-2015 University of Cambridge.
|
||||
|
||||
Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
- Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
- Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
- Neither the name of the University of Cambridge nor the names of any
|
||||
contributors may be used to endorse or promote products derived from this
|
||||
software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Fish also contains small amounts of code under the OpenBSD license, namely a
|
||||
version of the function strlcpy, modified for use with wide character strings.
|
||||
This code is copyrighted by Todd C. Miller (1998). It also contains code from
|
||||
tmux, copyrighted by Nicholas Marriott <nicm@users.sourceforge.net> (2007), and
|
||||
made available under an identical license.
|
||||
|
||||
Permission to use, copy, modify, and distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -55,20 +86,6 @@ character strings.
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
The XSel command, written and copyrighted by Conrad Parker, is
|
||||
distributed together with, and used by fish. It is released under the MIT
|
||||
license.
|
||||
|
||||
It is Copyright (C) 2001 Conrad Parker <conrad@vergenet.net>
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software
|
||||
and its documentation for any purpose is hereby granted without fee,
|
||||
provided that the above copyright notice appear in all copies and that
|
||||
both that copyright notice and this permission notice appear in
|
||||
supporting documentation. No representations are made about the
|
||||
suitability of this software for any purpose. It is provided "as is"
|
||||
without express or implied warranty.
|
||||
|
||||
Fish contains code from the glibc library, namely the wcstok function
|
||||
in fallback.c. This code is licensed under the LGPL.
|
||||
|
||||
@@ -79,5 +96,6 @@ The Debian packaging is:
|
||||
|
||||
Copyright (C) 2005 James Vega <jamessan@jamessan.com>
|
||||
Copyright (C) 2012 David Adam <zanchey@ucc.gu.uwa.edu.au>
|
||||
Copyright (C) 2015 Tristan Seligmann <mithrandi@debian.org>
|
||||
|
||||
and is licensed under the GPL version 2, see above.
|
||||
|
||||
@@ -9,4 +9,3 @@ Format: HTML
|
||||
Index: /usr/share/doc/fish/index.html
|
||||
Files: /usr/share/doc/fish/*.html
|
||||
|
||||
|
||||
1
debian/fish-common.docs
vendored
Normal file
1
debian/fish-common.docs
vendored
Normal file
@@ -0,0 +1 @@
|
||||
README.md
|
||||
2
debian/fish-common.install
vendored
Normal file
2
debian/fish-common.install
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
debian/tmp/etc
|
||||
debian/tmp/usr/share
|
||||
4
debian/fish-common.lintian-overrides
vendored
Normal file
4
debian/fish-common.lintian-overrides
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
# These directories are intentionally empty.
|
||||
fish-common: package-contains-empty-directory usr/share/fish/vendor_completions.d/
|
||||
fish-common: package-contains-empty-directory usr/share/fish/vendor_conf.d/
|
||||
fish-common: package-contains-empty-directory usr/share/fish/vendor_functions.d/
|
||||
1
debian/fish.install
vendored
Normal file
1
debian/fish.install
vendored
Normal file
@@ -0,0 +1 @@
|
||||
debian/tmp/usr/bin
|
||||
0
debian/postinst → debian/fish.postinst
vendored
0
debian/postinst → debian/fish.postinst
vendored
0
debian/postrm → debian/fish.postrm
vendored
0
debian/postrm → debian/fish.postrm
vendored
0
debian/prerm → debian/fish.prerm
vendored
0
debian/prerm → debian/fish.prerm
vendored
3
debian/rules
vendored
3
debian/rules
vendored
@@ -12,9 +12,6 @@ DPKG_EXPORT_BUILDFLAGS = 1
|
||||
%:
|
||||
dh $@ --with autotools-dev,autoreconf
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install --destdir=debian/fish
|
||||
|
||||
override_dh_installdocs:
|
||||
dh_installdocs --link-doc=fish
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Formatting guide for fish docs
|
||||
|
||||
The fish documentation has been updated to support Doxygen 1.8.7+, and while the main benefit of this change is extensive Markdown support, the addition of a fish lexicon and syntax filter, combined with semantic markup rules allows for automatic formatting enhancements across the HTML user_docs, the developer docs and the man pages.
|
||||
The fish documentation has been updated to support Doxygen 1.8.7+, and while the main benefit of this change is extensive Markdown support, the addition of a fish lexicon and syntax filter, combined with semantic markup rules allows for automatic formatting enhancements across the HTML user_docs and man pages.
|
||||
|
||||
Initially my motivation was to fix a problem with long options ([Issue #1557](https://github.com/fish-shell/fish-shell/issues/1557) on GitHub), but as I worked on fixing the issue I realised there was an opportunity to simplify, reinforce and clarify the current documentation, hopefully making further contribution easier and cleaner, while allowing the documentation examples to presented more clearly with less author effort.
|
||||
|
||||
@@ -60,14 +60,10 @@ which is then transformed by Doxygen into an HTML version (`make doc`):
|
||||
|
||||
`<span class="command">echo</span> <span class="argument">hello</span> <span class="argument">world</span>`
|
||||
|
||||
A man page version (`make share/man`):
|
||||
And a man page version (`make share/man`):
|
||||
|
||||
__echo__ hello world
|
||||
|
||||
And a simple HTML version for the developer docs (`make doc`) and the LATEX/PDF manual (`make doc/refman.pdf`):
|
||||
|
||||
`echo hello world`
|
||||
|
||||
### Fonts
|
||||
|
||||
In older browsers, it was easy to set the fonts used for the three basic type styles (serif, sans-serif and monospace). Modern browsers have removed these options in their respective quests for simplification, assuming the content author will provide suitable styles for the content in the site's CSS, or the end user will provide overriding styles manually. Doxygen's default styling is very simple and most users will just accept this default.
|
||||
@@ -154,21 +150,25 @@ The following can be used in \\fish blocks to render some fish scenarios. These
|
||||
|
||||
### Custom formatting tags
|
||||
|
||||
- `<s>`: auto\<s\>suggestion\</s\>.
|
||||
- `<m>`: \<m\>Matched\</m\> items, such as tab completions.
|
||||
- `<sm>`: Matched items \<sm\>searched\<sm\> for, like grep results.
|
||||
- `<error>`: \<error\>This would be shown as an error.\</error\>
|
||||
- `<asis>`: \<asis\>This test will not be parsed for fish markup.\</asis\>
|
||||
- `<outp>`: \<outp\>This would be rendered as command/script output.\</outp\>
|
||||
- `<bs>`: Render the contents with a preceding backslash. Useful when presenting output.
|
||||
- `{{` and `}}`: Required when wanting curly braces in regular expression example.
|
||||
```html
|
||||
<u>: <u>These words are underlined.</u>
|
||||
<s>: auto<s>suggestion</s>.
|
||||
<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>
|
||||
<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.
|
||||
```
|
||||
|
||||
### Prompts and cursors
|
||||
|
||||
- `>_`: Display a basic prompt.
|
||||
- `~>_`: Display a prompt with a the home directory as the current working directory.
|
||||
- `___` (3 underscores): Display a cursor.
|
||||
|
||||
```html
|
||||
>_: Display a basic prompt.
|
||||
~>_: Display a prompt with a the home directory as the current working directory.
|
||||
___ (3 underscores): Display a cursor.
|
||||
```
|
||||
|
||||
### Keyboard shortcuts: @key{} and @cursor_key{}
|
||||
|
||||
@@ -250,15 +250,4 @@ end
|
||||
# NOT PORTABLE! Paths would be need to be updated on other systems.
|
||||
```
|
||||
|
||||
### Developer docs and LATEX/PDF output
|
||||
|
||||
- HTML developer docs tested on Ubuntu 14.04, CentOS 6.5 and Mac OS X 10.9.
|
||||
- LATEX/PDF reference manual tested on Mac OS X 10.9 using MacTEX. PDF production returns an error (due to Doxygen's use of an outdated 'float' package), but manual PDF output is ok.
|
||||
|
||||
### Future changes
|
||||
|
||||
1. The documentation creation process would be better if it could be modularised further and moved out of the makefile into a number of supporting scripts. This would allow both the automake and Xcode build processes to use the documentation scripts directly.
|
||||
2. Remove the Doxygen dependency entirely for the user documentation. This would be very acheivable now that the bulk of the documentation is in Markdown.
|
||||
3. It would be useful to gauge what parts of the documentation are actually used by users. Judging by the amount of 'missing comment' errors during the developer docs build phase, this aspect of the docs has been rather neglected. If it is not longer used or useful, then this could change the future direction of the documentation and significantly streamline the process.
|
||||
|
||||
#### Author: Mark Griffiths [@GitHub](https://github.com/MarkGriffiths)
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
\subsection abbr-synopsis Synopsis
|
||||
\fish{synopsis}
|
||||
abbr -a word phrase...
|
||||
abbr -s
|
||||
abbr -l
|
||||
abbr -e word
|
||||
abbr --add word phrase...
|
||||
abbr --show
|
||||
abbr --list
|
||||
abbr --erase word
|
||||
\endfish
|
||||
|
||||
\subsection abbr-description Description
|
||||
@@ -14,11 +14,24 @@ abbr -e word
|
||||
|
||||
Abbreviations are user-defined character sequences or words that are replaced with longer phrases after they are entered. For example, a frequently-run command such as `git checkout` can be abbreviated to `gco`. After entering `gco` and pressing @key{Space} or @key{Enter}, the full text `git checkout` will appear in the command line.
|
||||
|
||||
Abbreviations are stored using universal variables. You can create abbreviations directly on the command line, and they will be saved automatically. Calling `abbr -a` in config.fish will lead to slightly worse startup performance.
|
||||
Abbreviations are stored in a variable named `fish_user_abbreviations`. This is automatically created as a universal variable the first time an abbreviation is created. If you want your abbreviations to be private to a particular fish session you can put the following in your *~/.config/fish/config.fish* file before you define your first abbrevation:
|
||||
|
||||
\fish
|
||||
if status --is-interactive
|
||||
set -g fish_user_abbreviations
|
||||
abbr --add first 'echo my first abbreviation'
|
||||
abbr --add second 'echo my second abbreviation'
|
||||
# etcetera
|
||||
end
|
||||
\endfish
|
||||
|
||||
You can create abbreviations directly on the command line and they will be saved automatically and made visible to other fish sessions if `fish_user_abbreviations` is a universal variable. If you keep the variable as universal, `abbr --add` statements in <a href="tutorial.html#tut_startup">config.fish</a> will do nothing but slow down startup slightly.
|
||||
|
||||
\subsection abbr-options Options
|
||||
|
||||
The following parameters are available:
|
||||
|
||||
- `-a WORD PHRASE` or `--add WORD PHRASE` Adds a new abbreviation, where WORD will be expanded to PHRASE.
|
||||
- `-a WORD PHRASE` or `--add WORD PHRASE` Adds a new abbreviation, causing WORD to be expanded to PHRASE.
|
||||
|
||||
- `-s` or `--show` Show all abbreviated words and their expanded phrases in a manner suitable for export and import.
|
||||
|
||||
|
||||
@@ -9,12 +9,10 @@ COMMAND1; and COMMAND2
|
||||
|
||||
`and` is used to execute a command if the current exit status (as set by the previous command) is 0.
|
||||
|
||||
`and` 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.
|
||||
`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.
|
||||
|
||||
|
||||
\subsection and-example Example
|
||||
|
||||
The following code runs the `make` command to build a program. If the build succeeds, `make`'s exit status is 0, and the program is installed. If either step fails, the exit status is 1, and `make clean` is run, which removes the files created by the build process.
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 12 KiB |
@@ -131,7 +131,7 @@ The following special input functions are available:
|
||||
\subsection bind-example Examples
|
||||
|
||||
\fish
|
||||
bind \cd 'exit'
|
||||
bind <asis>\\cd</asis> 'exit'
|
||||
\endfish
|
||||
Causes `fish` to exit when @key{Control,D} is pressed.
|
||||
|
||||
@@ -142,7 +142,7 @@ Performs a history search when the @key{Page Up} key is pressed.
|
||||
|
||||
\fish
|
||||
set -g fish_key_bindings fish_vi_key_bindings
|
||||
bind -M insert \cc kill-whole-line force-repaint
|
||||
bind -M insert \\cc kill-whole-line force-repaint
|
||||
\endfish
|
||||
Turns on Vi key bindings and rebinds @key{Control,C} to clear the input line.
|
||||
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
This directory is for images relevant to the fish brand.
|
||||
|
||||
The logo.psd and logo.svg files were created by Steve Stagg
|
||||
(http://github.com/stestagg). They were uploaded to SickerMule by Andrei
|
||||
Zvonimir Crnković (https://github.com/andreicek). See
|
||||
|
||||
https://www.stickermule.com/marketplace/tags/shell
|
||||
https://www.stickermule.com/marketplace/3507-fish-shell-sticker-die-cut
|
||||
https://www.stickermule.com/marketplace/3508-fish-shell-sticker-square-cut
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 109 KiB |
@@ -53,7 +53,7 @@ the fish manual.
|
||||
|
||||
- `-x` or `--exclusive` implies both `-r` and `-f`.
|
||||
|
||||
- `-w WRAPPED_COMMAND` or `--wraps=WRAPPED_COMMAND` causes the specified command to inherit completions from the wrapped command (See blow for details).
|
||||
- `-w WRAPPED_COMMAND` or `--wraps=WRAPPED_COMMAND` causes the specified command to inherit completions from the wrapped command (See below for details).
|
||||
|
||||
- `-n` or `--condition` specifies a shell command that must return 0 if the completion is to be used. This makes it possible to specify completions that should only be used in some cases.
|
||||
|
||||
|
||||
@@ -55,6 +55,6 @@ echo 'Hello World'
|
||||
Print hello world to stdout
|
||||
|
||||
\fish
|
||||
echo -e 'Top\nBottom'
|
||||
echo -e 'Top\\nBottom'
|
||||
\endfish
|
||||
Print Top and Bottom on separate lines, using an escape sequence
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
- <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-uninstalling'>How do I uninstall fish?</a>
|
||||
- <a href='#faq-third-party'>Where can I find extra tools for fish?</a>
|
||||
|
||||
\htmlonly[block]
|
||||
</div>
|
||||
@@ -220,6 +221,18 @@ rm -f fish fish_indent
|
||||
|
||||
Fish reserves the <a href="http://www.unicode.org/faq/private_use.html">Unicode private-use character range</a> from U+F600 thru U+F73F for internal use. Any attempt to feed characters in that range to fish will result in them being replaced by the Unicode "replacement character" U+FFFD. This includes both interactive input as well as any file read by fish (but not programs run by fish).
|
||||
|
||||
<hr>
|
||||
\section faq-third-party Where can I find extra tools for fish?
|
||||
|
||||
The fish user community extends fish in unique and useful ways via scripts that aren't always appropriate for bundling with the fish package. Typically because they solve a niche problem unlikely to appeal to a broad audience. You can find those extensions, including prompts, themes and useful functions, in various third-party repositories. These include:
|
||||
|
||||
- <a href="https://github.com/fisherman/fisherman">Fisherman</a>
|
||||
- <a href="https://github.com/tuvistavie/fundle">Fundle</a>
|
||||
- <a href="https://github.com/oh-my-fish/oh-my-fish">Oh My Fish</a>
|
||||
- <a href="https://github.com/justinmayer/tacklebox">Tacklebox</a>
|
||||
|
||||
This is not an exhaustive list and the fish project has no opinion regarding the merits of the repositories listed above or the scripts found therein. We mention these only because you may find within them a solution to a need you have such as supporting the `&&` and `||` operators or improved integration with other tools that you use.
|
||||
|
||||
\htmlonly[block]
|
||||
</div>
|
||||
\endhtmlonly
|
||||
|
||||
@@ -9,7 +9,7 @@ fg [PID]
|
||||
|
||||
`fg` brings the specified <a href="index.html#syntax-job-control">job</a> to the foreground, resuming it if it is stopped. While a foreground job is executed, fish is suspended. If no job is specified, the last job to be used is put in the foreground. If PID is specified, the job with the specified group ID is put in the foreground.
|
||||
|
||||
The PID of the desired process is usually found by using <a href="index.html#expand-process">process expansion</a>.
|
||||
The PID of the desired process is usually found by using <a href="index.html#expand-process">process expansion</a>. Fish is capable of expanding far more than just the numeric PID, including referencing itself and finding PIDs by name.
|
||||
|
||||
|
||||
\subsection fg-example Example
|
||||
|
||||
@@ -25,4 +25,6 @@ The following options are available:
|
||||
|
||||
- `-v` or `--version` display version and exit
|
||||
|
||||
- `-D` or `--debug-stack-frames=DEBUG_LEVEL` specify how many stack frames to display when debug messages are written. The default is zero. A value of 3 or 4 is usually sufficient to gain insight into how a given debug call was reached but you can specify a value up to 128.
|
||||
|
||||
The fish exit status is generally the exit status of the last foreground command. If fish is exiting because of a parse error, the exit status is 127.
|
||||
|
||||
@@ -7,16 +7,22 @@ fish_indent [OPTIONS]
|
||||
|
||||
\subsection fish_indent-description Description
|
||||
|
||||
`fish_indent` is used to indent a piece of fish code. `fish_indent` reads commands from standard input and outputs them to standard output.
|
||||
`fish_indent` is used to indent a piece of fish code. `fish_indent` reads commands from standard input and outputs them to standard output or a specified file.
|
||||
|
||||
The following options are available:
|
||||
|
||||
- `-d` or `--dump` dumps information about the parsed fish commands to stderr
|
||||
- `-w` or `--write` indents a specified file and immediately writes to that file.
|
||||
|
||||
- `-i` or `--no-indent` do not indent commands; only reformat to one job per line
|
||||
- `-i` or `--no-indent` do not indent commands; only reformat to one job per line.
|
||||
|
||||
- `-v` or `--version` displays the current fish version and then exits
|
||||
- `-v` or `--version` displays the current fish version and then exits.
|
||||
|
||||
- `--ansi` colorizes the output using ANSI escape sequences, appropriate for the current $TERM, using the colors defined in the environment (such as `$fish_color_command`).
|
||||
|
||||
- `--html` outputs HTML, which supports syntax highlighting if the appropriate CSS is defined. The CSS class names are the same as the variable names, such as `fish_color_command`
|
||||
- `--html` outputs HTML, which supports syntax highlighting if the appropriate CSS is defined. The CSS class names are the same as the variable names, such as `fish_color_command`.
|
||||
|
||||
- `-d` or `--debug-level=DEBUG_LEVEL` enables debug output and specifies a verbosity level (like `fish -d`). Defaults to 0.
|
||||
|
||||
- `-D` or `--debug-stack-frames=DEBUG_LEVEL` specify how many stack frames to display when debug messages are written. The default is zero. A value of 3 or 4 is usually sufficient to gain insight into how a given debug call was reached but you can specify a value up to 128.
|
||||
|
||||
- `--dump-parse-tree` dumps information about the parsed statements to stderr. This is likely to be of interest only to people working on the fish source code.
|
||||
|
||||
33
doc_src/fish_key_reader.txt
Normal file
33
doc_src/fish_key_reader.txt
Normal file
@@ -0,0 +1,33 @@
|
||||
\section fish_key_reader fish_key_reader - explore what characters keyboard keys send
|
||||
|
||||
\subsection fish_key_reader-synopsis Synopsis
|
||||
\fish{synopsis}
|
||||
fish_key_reader [OPTIONS]
|
||||
\endfish
|
||||
|
||||
\subsection fish_key_reader-description Description
|
||||
|
||||
`fish_key_reader` is used to study input received from the terminal and can help with key binds. The program is interactive and works on standard input. Individual characters themselves and their hexadecimal values are displayed.
|
||||
|
||||
The tool will write an example `bind` command matching the character sequence captured to stdout. If the character sequence matches a special key name (see `bind --key-names`), both `bind CHARS ...` and `bind -k KEYNAME ...` usage will be shown. Additional details about the characters received, such as the delay between chars, are written to stderr.
|
||||
|
||||
The following options are available:
|
||||
|
||||
- `-c` or `--continuous` begins a session where multiple key sequences can be inspected. By default the program exits after capturing a single key sequence.
|
||||
|
||||
- `-d` or `--debug-level=DEBUG_LEVEL` enables debug output and specifies a verbosity level (like `fish -d`). Defaults to 0.
|
||||
|
||||
- `-D` or `--debug-stack-frames=DEBUG_LEVEL` specify how many stack frames to display when debug messages are written. The default is zero. A value of 3 or 4 is usually sufficient to gain insight into how a given debug call was reached but you can specify a value up to 128.
|
||||
|
||||
- `-h` or `--help` prints usage information.
|
||||
|
||||
\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`.
|
||||
|
||||
`fish_key_reader` intentionally disables handling of many signals. To terminate `fish_key_reader` in `--continuous` mode do:
|
||||
|
||||
- press `Ctrl-C` twice, or
|
||||
- press `Ctrl-D` twice, or
|
||||
- type `exit`, or
|
||||
- type `quit`
|
||||
11
doc_src/fish_mode_prompt.txt
Normal file
11
doc_src/fish_mode_prompt.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
\section fish_mode_prompt fish_mode_prompt - define the appearance of the mode indicator
|
||||
|
||||
\subsection fish_mode_prompt-synopsis Synopsis
|
||||
|
||||
fish_mode_prompt 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.
|
||||
|
||||
Multiple lines are not supported in `fish_mode_prompt`.
|
||||
@@ -1,13 +0,0 @@
|
||||
\section fish_realpath fish_realpath - Convert a path to an absolute path without symlinks
|
||||
|
||||
\subsection fish_realpath-synopsis Synopsis
|
||||
\fish{synopsis}
|
||||
fish_realpath path
|
||||
\endfish
|
||||
|
||||
\subsection fish_realpath-description Description
|
||||
|
||||
This is an implementation of the external realpath command that doesn't support any options. It's meant to be used only by scripts which need to be portable. In general scripts shouldn't invoke this directly. They should just use `realpath` which will fallback to this builtin if an external command cannot be found.
|
||||
|
||||
If the path is invalid no translated path will be written to stdout and an error will be reported.
|
||||
This implementation behaves like the GNU command being invoked with `--canonicalize-existing`.
|
||||
@@ -7,4 +7,6 @@ fish_vi_mode
|
||||
|
||||
\subsection fish_vi_mode-description Description
|
||||
|
||||
This function is deprecated. Please call `fish_vi_key_bindings directly`
|
||||
|
||||
`fish_vi_mode` enters a vi-like command editing mode. To always start in vi mode, add `fish_vi_mode` to your `config.fish` file.
|
||||
|
||||
@@ -2,33 +2,51 @@
|
||||
|
||||
\subsection history-synopsis Synopsis
|
||||
\fish{synopsis}
|
||||
history ( --merge | --save | --clear )
|
||||
history ( --search | --delete ) [ --prefix "prefix string" | --contains "search string" ]
|
||||
history search [ --show-time ] [ --case-sensitive ] [ --exact | --prefix | --contains ] [ --max=n ] [ --null ] [ "search string"... ]
|
||||
history delete [ --show-time ] [ --case-sensitive ] [ --exact | --prefix | --contains ] "search string"...
|
||||
history merge
|
||||
history save
|
||||
history clear
|
||||
history ( -h | --help )
|
||||
\endfish
|
||||
|
||||
\subsection history-description Description
|
||||
|
||||
`history` is used to list, search and delete the history of commands used.
|
||||
`history` is used to search, delete, and otherwise manipulate the history of interactive commands.
|
||||
|
||||
Note that for backwards compatibility each subcommand can also be specified as a long option. For example, rather than `history search` you can type `history --search`. Those long options are deprecated and will be removed in a future release.
|
||||
|
||||
The following operations (sub-commands) are available:
|
||||
|
||||
- `search` returns history items matching the search string. If no search string is provided it returns all history items. This is the default operation if no other operation is specified. You only have to explicitly say `history search` if you wish to search for one of the subcommands. The `--contains` search option will be used if you don't specify a different search option. Entries are ordered newest to oldest. If stdout is attached to a tty the output will be piped through your pager by the history function. The history builtin simply writes the results to stdout.
|
||||
|
||||
- `delete` deletes history items. Without the `--prefix` or `--contains` options, the exact match of the specified text will be deleted. If you don't specify `--exact` a prompt will be displayed before any items are deleted asking you which entries are to be deleted. You can enter the word "all" to delete all matching entries. You can enter a single ID (the number in square brackets) to delete just that single entry. You can enter more than one ID separated by a space to delete multiple entries. Just press [enter] to not delete anything. Note that the interactive delete behavior is a feature of the history function. The history builtin only supports `--exact --case-sensitive` deletion.
|
||||
|
||||
- `merge` immediately incorporates history changes from other sessions. Ordinarily `fish` ignores history changes from sessions started after the current one. This command applies those changes immediately.
|
||||
|
||||
- `save` immediately writes all changes to the history file. The shell automatically saves the history file; this option is provided for internal use and should not normally need to be used by the user.
|
||||
|
||||
- `clear` clears the history file. A prompt is displayed before the history is erased asking you to confirm you really want to clear all history unless `builtin history` is used.
|
||||
|
||||
The following options are available:
|
||||
- `--merge` immediately incorporates history changes from other sessions. Ordinarily `fish` ignores history changes from sessions started after the current one. This command applies those changes immediately.
|
||||
|
||||
- `--save` saves all changes in the history file. The shell automatically saves the history file; this option is provided for internal use.
|
||||
These flags can appear before or immediately after one of the sub-commands listed above.
|
||||
|
||||
- `--clear` clears the history file. A prompt is displayed before the history is erased.
|
||||
- `-C` or `--case-sensitive` does a case-sensitive search. The default is case-insensitive. Note that prior to fish 2.4.0 the default was case-sensitive.
|
||||
|
||||
- `--search` returns history items in keeping with the `--prefix` or `--contains` options.
|
||||
- `-c` or `--contains` searches or deletes items in the history that contain the specified text string. This is the default for the `--search` flag. This is not currently supported by the `--delete` flag.
|
||||
|
||||
- `--delete` deletes history items.
|
||||
- `-e` or `--exact` searches or deletes items in the history that exactly match the specified text string. This is the default for the `--delete` flag. Note that the match is case-insensitive by default. If you really want an exact match, including letter case, you must use the `-C` or `--case-sensitive` flag.
|
||||
|
||||
- `--prefix` searches or deletes items in the history that begin with the specified text string.
|
||||
- `-p` or `--prefix` searches or deletes items in the history that begin with the specified text string. This is not currently supported by the `--delete` flag.
|
||||
|
||||
- `--contains` searches or deletes items in the history that contain the specified text string.
|
||||
- `-t` or `--show-time` prepends each history entry with the date and time the entry was recorded . By default it uses the strftime format `# %c%n`. You can specify another format; e.g., `--show-time='%Y-%m-%d %H:%M:%S '` or `--show-time='%a%I%p'`. The short option, `-t` doesn't accept a stftime format string; it only uses the default format. Any strftime format is allowed, including `%s` to get the raw UNIX seconds since the epoch. Note that `--with-time` is also allowed but is deprecated and will be removed at a future date.
|
||||
|
||||
If `--search` is specified without `--contains` or `--prefix`, `--contains` will be assumed.
|
||||
- `-z` or `--null` causes history entries written by the search operations to be terminated by a NUL character rather than a newline. This allows the output to be processed by `read -z` to correctly handle multiline history entries.
|
||||
|
||||
If `--delete` is specified without `--contains` or `--prefix`, only a history item which exactly matches the parameter will be erased. No prompt will be given. If `--delete` is specified with either of these parameters, an interactive prompt will be displayed before any items are deleted.
|
||||
- `-<number>` `-n <number>` or `--max=<number>` limits the matched history items to the first "n" matching entries. This is only valid for `history search`.
|
||||
|
||||
- `-h` or `--help` display help for this command.
|
||||
|
||||
\subsection history-examples Example
|
||||
|
||||
@@ -40,5 +58,11 @@ history --search --contains "foo"
|
||||
# Outputs a list of all previous commands containing the string "foo".
|
||||
|
||||
history --delete --prefix "foo"
|
||||
# Interactively deletes the record of previous commands which start with "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.
|
||||
|
||||
\subsection history-notes Notes
|
||||
|
||||
If you specify both `--prefix` and `--contains` the last flag seen is used.
|
||||
|
||||
\endfish
|
||||
|
||||
@@ -12,11 +12,10 @@ end
|
||||
|
||||
`if` will execute the command `CONDITION`. If the condition's exit status is 0, the commands `COMMANDS_TRUE` will execute. If the exit status is not 0 and `else` is given, `COMMANDS_FALSE` will be executed.
|
||||
|
||||
You can use <a href="#and">`and`</a> or <a href="#and">`or`</a> in the condition. See the second example below.
|
||||
You can use <a href="#and">`and`</a> or <a href="#or">`or`</a> in the condition. See the second example below.
|
||||
|
||||
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 if-example Example
|
||||
|
||||
The following code will print `foo.txt exists` if the file foo.txt exists and is a regular file, otherwise it will print `bar.txt exists` if the file bar.txt exists and is a regular file, otherwise it will print `foo.txt and bar.txt do not exist`.
|
||||
|
||||
@@ -146,6 +146,8 @@ An example of a file redirection is `echo hello > output.txt`, which directs the
|
||||
- To append standard output to a file, write `>>DESTINATION_FILE`
|
||||
- To append standard error to a file, write `^^DESTINATION_FILE`
|
||||
|
||||
- To not overwrite ("clobber") an existing file, write '>?DESTINATION' or '^?DESTINATION'
|
||||
|
||||
`DESTINATION` can be one of the following:
|
||||
|
||||
- A filename. The output will be written to the specified file.
|
||||
@@ -504,7 +506,7 @@ A dollar sign followed by a string of characters is expanded into the value of t
|
||||
|
||||
Undefined and empty variables expand to nothing.
|
||||
|
||||
To separate a variable name from text it should immediately be followed by, encase the variable within quotes.
|
||||
To separate a variable name from text encase the variable within double-quotes or braces.
|
||||
|
||||
Examples:
|
||||
\fish
|
||||
@@ -522,7 +524,7 @@ echo The plural of $WORD is {$WORD}s
|
||||
|
||||
Note that without the quotes or braces, fish will try to expand a variable called `$WORDs`, which may not exist.
|
||||
|
||||
The latter syntax `{$WORD}` works by exploiting <a href="#expand-brace">brace expansion</a>; care should be taken with array variables and undefined variables, as these expand as a <a href="#cartesian-product">cartesian product</a>, so undefined variables eliminate the string.
|
||||
The latter syntax `{$WORD}` works by exploiting <a href="#expand-brace">brace expansion</a>; care should be taken with zero-element array variables and undefined variables, as these expand as a <a href="#cartesian-product">cartesian product</a>, so they eliminate the string.
|
||||
|
||||
Variable expansion is the only type of expansion performed on double quoted strings. There is, however, an important difference in how variables are expanded when quoted and when unquoted. An unquoted variable expansion will result in a variable number of arguments. For example, if the variable `$foo` has zero elements or is undefined, the argument `$foo` will expand to zero elements. If the variable $foo is an array of five elements, the argument `$foo` will expand to five elements. When quoted, like `"$foo"`, a variable expansion will always result in exactly one argument. Undefined variables will expand to the empty string, and array variables will be concatenated using the space character.
|
||||
|
||||
@@ -637,7 +639,7 @@ This form of expansion is useful for commands like kill and fg, which take proce
|
||||
|
||||
Example:
|
||||
|
||||
`fg %ema` will search for a process whose command line begins with the letters 'ema', such as emacs, and if found, put it in the foreground.
|
||||
`fg %%ema` will search for a process whose command line begins with the letters 'ema', such as emacs, and if found, put it in the foreground.
|
||||
|
||||
`kill -s SIGINT %3` will send the SIGINT signal to the job with job ID 3.
|
||||
|
||||
@@ -811,7 +813,7 @@ The user can change the settings of `fish` by changing the values of certain var
|
||||
|
||||
- `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.
|
||||
|
||||
- `CDPATH`, an array of directories in which to search for the new directory for the `cd` builtin. By default, the fish configuration defines `CDPATH` to be a universal variable with the values `.` and `~`.
|
||||
- `CDPATH`, an array of directories in which to search for the new directory for the `cd` builtin.
|
||||
|
||||
- `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.
|
||||
|
||||
@@ -841,6 +843,14 @@ The user can change the settings of `fish` by changing the values of certain var
|
||||
|
||||
- `CMD_DURATION`, the runtime of the last command in milliseconds.
|
||||
|
||||
- `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
|
||||
|
||||
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.
|
||||
@@ -943,33 +953,34 @@ For a list of all builtins, functions and commands shipped with fish, see the <a
|
||||
|
||||
The `fish` editor features copy and paste, a searchable history and many editor functions that can be bound to special keyboard shortcuts.
|
||||
|
||||
Similar to bash, fish has Emacs and Vi editing modes. The default editing mode is Emacs. You can switch to Vi mode with `fish_vi_key_bindings` and switch back with `fish_default_key_bindings`.
|
||||
Similar to bash, fish has Emacs and Vi editing modes. The default editing mode is Emacs. You can switch to Vi mode with `fish_vi_key_bindings` and switch back with `fish_default_key_bindings`. You can also make your own key bindings by creating a function and setting $fish_key_bindings to its name. For example:
|
||||
|
||||
\fish
|
||||
function hybrid_bindings --description "Vi-style bindings that inherit emacs-style bindings in all modes"
|
||||
for mode in default insert visual
|
||||
fish_default_key_bindings -M $mode
|
||||
end
|
||||
fish_vi_key_bindings --no-erase
|
||||
end
|
||||
set -g fish_key_bindings hybrid_bindings
|
||||
\endfish
|
||||
|
||||
\subsection emacs-mode Emacs mode commands
|
||||
\subsection shared-binds Shared bindings
|
||||
|
||||
Some bindings are shared between emacs- and vi-mode because they aren't text editing bindings or because what Vi/Vim does for a particular key doesn't make sense for a shell.
|
||||
|
||||
- @key{Tab} <a href="#completion">completes</a> the current token. @key{Shift, Tab} completes the current token and starts the pager's search mode.
|
||||
|
||||
- @key{Home} or @key{Control,A} moves the cursor to the beginning of the line.
|
||||
|
||||
- @key{End} or @key{Control,E} moves to the end of line. If the cursor is already at the end of the line, and an autosuggestion is available, @key{End} or @key{Control,E} accepts the autosuggestion.
|
||||
|
||||
- @cursor_key{←,Left} (or @key{Control,B}) and @cursor_key{→,Right} (or @key{Control,F}) move the cursor left or right by one character. If the cursor is already at the end of the line, and an autosuggestion is available, the @cursor_key{→,Right} key and the @key{Control,F} combination accept the suggestion.
|
||||
|
||||
- @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.
|
||||
|
||||
- @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.
|
||||
|
||||
- @key{Delete} and @key{Backspace} removes one character forwards or backwards respectively.
|
||||
|
||||
- @key{Control,C} deletes the entire line.
|
||||
|
||||
- @key{Control,D} delete one character to the right of the cursor. If the command line is empty, @key{Control,D} will exit fish.
|
||||
|
||||
- @key{Control,K} moves contents from the cursor to the end of line to the <a href="#killring">killring</a>.
|
||||
|
||||
- @key{Control,U} moves contents from the beginning of line to the cursor to the <a href="#killring">killring</a>.
|
||||
|
||||
- @key{Control,L} clears and repaints the screen.
|
||||
@@ -978,18 +989,30 @@ Similar to bash, fish has Emacs and Vi editing modes. The default editing mode i
|
||||
|
||||
- @key{Alt,D} moves the next word to the <a href="#killring">killring</a>.
|
||||
|
||||
- @key{Alt,W} prints a short description of the command under the cursor.
|
||||
- @key{Alt,H} (or @key{F1}) shows the manual page for the current command, if one exists.
|
||||
|
||||
- @key{Alt,L} lists the contents of the current directory, unless the cursor is over a directory argument, in which case the contents of that directory will be listed.
|
||||
|
||||
- @key{Alt,P} adds the string '`| less;`' to the end of the job under the cursor. The result is that the output of the command will be paged.
|
||||
|
||||
- @key{Alt,W} prints a short description of the command under the cursor.
|
||||
|
||||
\subsection emacs-mode Emacs mode commands
|
||||
|
||||
- @key{Home} or @key{Control,A} moves the cursor to the beginning of the line.
|
||||
|
||||
- @key{End} or @key{Control,E} moves to the end of line. If the cursor is already at the end of the line, and an autosuggestion is available, @key{End} or @key{Control,E} accepts the autosuggestion.
|
||||
|
||||
- @cursor_key{←,Left} (or @key{Control,B}) and @cursor_key{→,Right} (or @key{Control,F}) move the cursor left or right by one character. If the cursor is already at the end of the line, and an autosuggestion is available, the @cursor_key{→,Right} key and the @key{Control,F} combination accept the suggestion.
|
||||
|
||||
- @key{Delete} and @key{Backspace} removes one character forwards or backwards respectively.
|
||||
|
||||
- @key{Control,K} moves contents from the cursor to the end of line to the <a href="#killring">killring</a>.
|
||||
|
||||
- @key{Alt,C} capitalizes the current word.
|
||||
|
||||
- @key{Alt,U} makes the current word uppercase.
|
||||
|
||||
- @key{Alt,H} (or @key{F1}) shows the manual page for the current command, if one exists.
|
||||
|
||||
- @key{Control, t} transposes the last two characters
|
||||
|
||||
- @key{Alt,t} transposes the last two words
|
||||
@@ -1000,7 +1023,22 @@ You can change these key bindings using the <a href="commands.html#bind">bind</a
|
||||
|
||||
\subsection vi-mode Vi mode commands
|
||||
|
||||
Vi mode allows for the use of Vi-like commands at the prompt. Initially, <a href="#vi-mode-insert">insert mode</a> is active. @key{Escape} enters <a href="#vi-mode-command">command mode</a>. The commands available in command, insert and visual mode are described below. Vi mode builds on top of <a href="#emacs-mode">Emacs mode</a>, so all keybindings mentioned there that do not contradict the ones mentioned here also work.
|
||||
Vi mode allows for the use of Vi-like commands at the prompt. Initially, <a href="#vi-mode-insert">insert mode</a> is active. @key{Escape} enters <a href="#vi-mode-command">command mode</a>. The commands available in command, insert and visual mode are described below. Vi mode shares <a href="#shared-binds">some bindings</a> with <a href="#emacs-mode">Emacs mode</a>.
|
||||
|
||||
It is also possible to add all emacs-mode bindings to vi-mode by using something like
|
||||
|
||||
\fish
|
||||
function fish_user_key_bindings
|
||||
# Execute this once per mode that emacs bindings should be used in
|
||||
fish_default_key_bindings -M insert
|
||||
# Without an argument, fish_vi_key_bindings will default to
|
||||
# resetting all bindings.
|
||||
# The argument specifies the initial mode (insert, "default" or visual).
|
||||
fish_vi_key_bindings insert
|
||||
end
|
||||
\endfish
|
||||
|
||||
When in vi-mode, the <a href="fish_mode_prompt.html">`fish_mode_prompt`</a> function will display a mode indicator to the left of the prompt. The `fish_vi_cursor` function will be used to change the cursor's shape depending on the mode in supported terminals. To disable this feature, override it with an empty function.
|
||||
|
||||
\subsubsection vi-mode-command Command mode
|
||||
|
||||
@@ -1030,22 +1068,19 @@ Command mode is also known as normal mode.
|
||||
|
||||
- @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.
|
||||
|
||||
- @key{Control, X} copies the current buffer to the system's clipboard, @key{Control, V} inserts the clipboard contents.
|
||||
- @key{Control,C} deletes the entire line.
|
||||
|
||||
- @key{Backspace} moves the cursor left.
|
||||
|
||||
\subsubsection vi-mode-insert Insert mode
|
||||
|
||||
- @key{Tab} <a href="#completion">completes</a> the current token.
|
||||
|
||||
- @key{Escape} or @key{Control,C} enters <a href="#vi-mode-command">command mode</a>.
|
||||
|
||||
- @cursor_key{↑,Up} and @cursor_key{↓,Down} search the command history. See the <a href='#history'>history</a> section for more information on history searching.
|
||||
|
||||
- @key{Control,W} moves the previous word to the <a href="#killring">killring</a>.
|
||||
|
||||
- @key{Control,U} moves contents from the beginning of line to the cursor to the <a href="#killring">killring</a>.
|
||||
|
||||
- @key{Control,x} moves the cursor to the end of the line. If an autosuggestion is available, it will be accepted completely.
|
||||
|
||||
- @key{Backspace} removes one character to the left.
|
||||
|
||||
\subsubsection vi-mode-visual Visual mode
|
||||
|
||||
- @cursor_key{←,Left} and @cursor_key{→,Right} extend the selection backward/forward by one character.
|
||||
@@ -1060,9 +1095,6 @@ 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.
|
||||
|
||||
If the environment variable `DISPLAY` is set and the `xsel` program is installed, `fish` will try to connect to the X Windows server specified by this variable, and use the clipboard on the X server for copying and pasting.
|
||||
|
||||
|
||||
\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.
|
||||
@@ -1073,7 +1105,7 @@ 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 `~/.config/fish/fish_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).
|
||||
|
||||
Examples:
|
||||
|
||||
@@ -1110,15 +1142,15 @@ Note that functions cannot be started in the background. Functions that are stop
|
||||
|
||||
\section initialization Initialization files
|
||||
|
||||
On startup, Fish evaluates a number of configuration files, which can be used to control the behavior of the shell.
|
||||
On startup, Fish evaluates a number of configuration files, which can be used to control the behavior of the shell. The location of these configuration variables is controlled by a number of environment variables, and their default or usual location is given below.
|
||||
|
||||
Configuration files are evaluated in the following order:
|
||||
- Configuration shipped with fish, which should not be edited, usually `/usr/share/fish/config.fish`.
|
||||
- System-wide configuration files, where administrators can include initialization that should be run for all users on the system - similar to `/etc/profile` for POSIX-style shells - usually `/etc/fish/config.fish`;
|
||||
- Configuration shipped with fish, which should not be edited, in `$__fish_datadir/config.fish` (usually `/usr/share/fish/config.fish`).
|
||||
- System-wide configuration files, where administrators can include initialization that should be run for all users on the system - similar to `/etc/profile` for POSIX-style shells - in `$__fish_sysconfdir` (usually `/etc/fish/config.fish`);
|
||||
- Configuration snippets in files ending in `.fish`, in the directories:
|
||||
- `~/.config/fish/conf.d/`
|
||||
- `/etc/fish/conf.d`
|
||||
- `/usr/share/fish/vendor_conf.d`
|
||||
- `$XDG_CONFIG_HOME/fish/conf.d` (by default, `~/.config/fish/conf.d/`)
|
||||
- `$__fish_sysconfdir/conf.d` (by default, `/etc/fish/conf.d`)
|
||||
- `/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.
|
||||
|
||||
@@ -1126,7 +1158,7 @@ Configuration files are evaluated in the following order:
|
||||
|
||||
These paths are controlled by parameters set at build, install, or run time, and may vary from the defaults listed above.
|
||||
|
||||
This wide search may be confusing. If you are unsure, use `~/.config/fish/config.fish`.
|
||||
This wide search may be confusing. If you are unsure where to put your own customisations, use `~/.config/fish/config.fish`.
|
||||
|
||||
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.
|
||||
|
||||
@@ -1138,7 +1170,7 @@ If you want to add the directory `~/linux/bin` to your PATH variable when using
|
||||
|
||||
\fish
|
||||
if status --is-login
|
||||
set PATH $PATH ~/linux/bin
|
||||
set -x PATH $PATH ~/linux/bin
|
||||
end
|
||||
\endfish
|
||||
|
||||
@@ -1192,6 +1224,10 @@ function fish_title
|
||||
end
|
||||
\endfish
|
||||
|
||||
\subsection prompt Programmable prompt
|
||||
|
||||
When fish waits for input, it will display a prompt by evaluating the `fish_prompt` and `fish_right_prompt` functions. The output of the former is displayed on the left and the latter's output on the right side of the terminal. The output of `fish_mode_prompt` will be prepended on the left, though the default function only does this when in <a href="index.html#vi-mode">vi-mode</a>.
|
||||
|
||||
\subsection greeting Configurable greeting
|
||||
|
||||
If a function named `fish_greeting` exists, it will be run when entering interactive mode. Otherwise, if an environment variable named `fish_greeting` exists, it will be printed.
|
||||
|
||||
@@ -134,9 +134,9 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
----
|
||||
|
||||
|
||||
## License for wcslcat and wcslcpy, and code derived from tmux
|
||||
## License for wcslcpy and code derived from tmux
|
||||
|
||||
`fish` also contains small amounts of code under the OpenBSD license, namely versions of the two functions strlcat and strlcpy, modified for use with wide character strings. This code is copyrighted by Todd C. Miller (1998). It also contains code from [tmux](http://tmux.sourceforge.net), copyrighted by Nicholas Marriott <nicm@users.sourceforge.net> (2007), and made available under an identical license.
|
||||
`fish` also contains small amounts of code under the OpenBSD license, namely a version of the function strlcpy, modified for use with wide character strings. This code is copyrighted by Todd C. Miller (1998). It also contains code from [tmux](http://tmux.sourceforge.net), copyrighted by Nicholas Marriott <nicm@users.sourceforge.net> (2007), and made available under an identical license.
|
||||
|
||||
The OpenBSD license is included below.
|
||||
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
|
||||
\section math math - Perform mathematics calculations
|
||||
|
||||
\subsection math-synopsis Synopsis
|
||||
\fish{synopsis}
|
||||
math EXPRESSION
|
||||
math [-sN] EXPRESSION
|
||||
\endfish
|
||||
|
||||
\subsection math-description Description
|
||||
@@ -12,9 +11,26 @@ math EXPRESSION
|
||||
|
||||
For a description of the syntax supported by math, see the manual for the bc program. Keep in mind that parameter expansion takes place on any expressions before they are evaluated. This can be very useful in order to perform calculations involving shell variables or the output of command substitutions, but it also means that parenthesis have to be escaped.
|
||||
|
||||
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`.
|
||||
|
||||
\subsection return-values Return Values
|
||||
|
||||
If invalid options or no expression is provided the return `status` is two. If the expression is invalid the return `status` is three. If bc returns a result of `0` (literally, not `0.0` or similar variants) the return `status` is one otherwise it's zero.
|
||||
|
||||
\subsection math-example Examples
|
||||
|
||||
`math 1+1` outputs 2.
|
||||
|
||||
`math $status-128` outputs the numerical exit status of the last command minus 128.
|
||||
|
||||
`math 10 / 6` outputs `1`.
|
||||
|
||||
`math -s0 10.0 / 6.0` outputs `1`.
|
||||
|
||||
`math -s3 10 / 6` outputs `1.666`.
|
||||
|
||||
\subsection math-cautions Cautions
|
||||
|
||||
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.
|
||||
|
||||
@@ -53,7 +53,7 @@ printf also knows a number of backslash escapes:
|
||||
- `\uhhhh` 16-bit Unicode character (hhhh is 4 digits)
|
||||
- `\Uhhhhhhhh` 32-bit Unicode character (hhhhhhhh is 8 digits)
|
||||
|
||||
The `format' argument is re-used as many times as necessary to convert all of the given arguments. If a format specifier is not appropriate for the given argument, an error is printed. For example, `printf '%d' "102.234"` produces an error, as "102.234" cannot be formatted as an integer.
|
||||
The `format` argument is re-used as many times as necessary to convert all of the given arguments. If a format specifier is not appropriate for the given argument, an error is printed. For example, `printf '%d' "102.234"` produces an error, as "102.234" cannot be formatted as an integer.
|
||||
|
||||
This file has been imported from the printf in GNU Coreutils version 6.9. If you would like to use a newer version of printf, for example the one shipped with your OS, try `command printf`.
|
||||
|
||||
|
||||
12
doc_src/realpath.txt
Normal file
12
doc_src/realpath.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
\section realpath realpath - Convert a path to an absolute path without symlinks
|
||||
|
||||
\subsection realpath-synopsis Synopsis
|
||||
\fish{synopsis}
|
||||
realpath path
|
||||
\endfish
|
||||
|
||||
\subsection realpath-description Description
|
||||
|
||||
This is implemented as a function and a builtin. The function will attempt to use an external realpath command if one can be found. Otherwise it falls back to the builtin. The builtin does not support any options. It's meant to be used only by scripts which need to be portable. The builtin implementation behaves like GNU realpath when invoked without any options (which is the most common use case). In general scripts should not invoke the builtin directly. They should just use `realpath`.
|
||||
|
||||
If the path is invalid no translated path will be written to stdout and an error will be reported.
|
||||
@@ -2,34 +2,35 @@
|
||||
|
||||
\subsection set_color-synopsis Synopsis
|
||||
\fish{synopsis}
|
||||
set_color [OPTIONS] [COLOR]
|
||||
set_color [OPTIONS] VALUE
|
||||
\endfish
|
||||
|
||||
\subsection set_color-description Description
|
||||
|
||||
`set_color` changes the foreground and/or background color of the terminal. `COLOR` is one of `black`, `red`, `green`, `brown`, `yellow`, `blue`, `magenta`, `purple`, `cyan`, `brred`, `brgreen`, `brbrown`, `bryellow`, `brblue`, `brmagenta`, `brpurple`, `brcyan`, `white`. The `br`, bright, forms are most useful as background colors. The special color `normal` resets the background and foreground to whatever is normal for your terminal.
|
||||
`set_color` is used to control the color and styling of text in the terminal. `VALUE` corresponds to a reserved color name such as *red* or a RGB color value given as 3 or 6 hexadecimal digits. The *br*-, as in 'bright', forms are full-brightness variants of the 8 standard-brightness colors on many terminals. *brblack* has higher brightness than *black* - towards gray. A special keyword *normal* resets text formatting to terminal defaults.
|
||||
|
||||
You can also specify an RGB value with three or six hex digits, such as A0FF33 or f2f. `fish` will choose the closest supported color. A three digit value is equivalent to specifying each digit twice; e.g., `#2BC` is the same as `#22BBCC`. Hex RGB values can be in lower or uppercase, optionally prefixed with the pound-sign character. Depending on the capabilities of your terminal the actual color may be approximated by the closest known matching color in the [ANSI X3.64](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) color palette.
|
||||
Valid colors include:
|
||||
|
||||
- *black*, *red*, *green*, *yellow*, *blue*, *magenta*, *cyan*, *white*
|
||||
- *brblack*, *brred*, *brgreen*, *bryellow*, *brblue*, *brmagenta*, *brcyan*, *brwhite*
|
||||
|
||||
An RGB value with three or six hex digits, such as A0FF33 or f2f can be used. `fish` will choose the closest supported color. A three digit value is equivalent to specifying each digit twice; e.g., `set_color 2BC` is the same as `set_color 22BBCC`. Hexadecimal RGB values can be in lower or uppercase. Depending on the capabilities of your terminal (and the level of support `set_color` has for it) the actual color may be approximated by a nearby matching reserved color name or `set_color` may not have an effect on color. A second color may be given as a desired fallback color. e.g. `set_color 124212` *brblue* will instruct set_color to use *brblue* if a terminal is not capable of the exact shade of grey desired. This is very useful when an 8 or 16 color terminal might otherwise not use a color.
|
||||
|
||||
The following options are available:
|
||||
|
||||
- `-b`, `--background` `COLOR` sets the background color.
|
||||
|
||||
- `-c`, `--print-colors` prints a list of all valid color names.
|
||||
|
||||
- `-o`, `--bold` sets bold or extra bright mode.
|
||||
|
||||
- `-b`, `--background` *COLOR* sets the background color.
|
||||
- `-c`, `--print-colors` prints a list of the 16 named colors.
|
||||
- `-o`, `--bold` sets bold mode.
|
||||
- `-u`, `--underline` sets underlined mode.
|
||||
|
||||
Calling `set_color normal` will set the terminal background and foreground colors to the defaults for the terminal.
|
||||
Using the *normal* keyword will reset foreground, background, and all formatting back to default.
|
||||
|
||||
Some terminals use the `--bold` escape sequence to switch to a brighter color set rather than bolding the characters. This only applies to the foreground color. You should probably use the `br` color name variants listed above for both the foreground and background "bright" colors rather than use this option. The only use for this option is on a black&white terminal (e.g., a DEC VT220) to select foreground black text that is bolder than the normal text.
|
||||
\subsection set_color-notes Notes
|
||||
|
||||
Not all terminal emulators support all these features.
|
||||
|
||||
Note 1: Setting either color to "normal" will reset both background and foreground colors to whatever is the default for the terminal.
|
||||
|
||||
Note 2: Setting the background color only affects subsequently written characters. Fish provides no way to set the background color for the entire terminal window. Configuring the window background color (and other attributes such as its opacity) has to be done using whatever mechanisms the terminal provides.
|
||||
1. Using the *normal* keyword will reset both background and foreground colors to whatever is the default for the terminal.
|
||||
2. Setting the background color only affects subsequently written characters. Fish provides no way to set the background color for the entire terminal window. Configuring the window background color (and other attributes such as its opacity) has to be done using whatever mechanisms the terminal provides.
|
||||
3. Some terminals use the `--bold` escape sequence to switch to a brighter color set rather than increasing the weight of text.
|
||||
4. `set_color` works by printing sequences of characters to *stdout*. If used in command substitution or a pipe, these characters will also be captured. This may or may not be desirable. Checking the exit code of `isatty stdout` before using `set_color` can be useful to decide not to colorize output in a script.
|
||||
|
||||
\subsection set_color-example Examples
|
||||
|
||||
@@ -37,13 +38,15 @@ Note 2: Setting the background color only affects subsequently written character
|
||||
set_color red; echo "Roses are red"
|
||||
set_color blue; echo "Violets are blue"
|
||||
set_color 62A; echo "Eggplants are dark purple"
|
||||
set_color normal; echo "Normal is nice" # This will reset background, too
|
||||
set_color normal; echo "Normal is nice" # Resets the background too
|
||||
\endfish
|
||||
|
||||
\subsection set_color-detection Terminal Capability Detection
|
||||
|
||||
Fish uses a heuristic to decide if your terminal supports the 256 color palette (as opposed to the more limited 16 color palette of older terminals). If you've done the equivalent of `set fish_term256 1` that will be true. If the $TERM value contains "256color" (e.g., "xterm-256color") that will be true. If your $TERM value is "xterm" and $TERM_PROGRAM is not set to "Apple_Terminal" that will be true. If your terminal supports the full 256 color palette (which is pretty much every color terminal emulator written in the past decade) you should ensure one of the aforementioned conditions is true.
|
||||
Fish uses a heuristic to decide if a terminal supports the 256-color palette as opposed to the more limited 16 color palette of older terminals. Support can be forced on by setting `fish_term256` to *1*. If `$TERM` contains "256color" (e.g., *xterm-256color*), 256-color support is enabled. If `$TERM` contains *xterm*, 256 color support is enabled (except for MacOS: `$TERM_PROGRAM` and `$TERM_PROGRAM_VERSION` are used to detect Terminal.app from MacOS 10.6; support is disabled here it because it is known that it reports `xterm` and only supports 16 colors.
|
||||
|
||||
Many terminals support 24-bit (i.e., true-color) color escape sequences. This includes modern xterms, Gnome Terminal, KDE Konsole, and iTerm2. Fish currently does some limited attempts to detect whether a given `$TERM` supports 24-bit colors. You can explicitly enable that support via `set fish_term24bit 1`. If you do so fish will not map your RGB color values to the closest known matching color in the ANSI X3.64 color palette.
|
||||
If terminfo reports 256 color support for a terminal, support will always be enabled. To debug color palette problems, `tput colors` may be useful to see the number of colors in terminfo for a terminal. Fish launched as `fish -d2` will include diagnostic messages that indicate the color support mode in use.
|
||||
|
||||
The `set_color` command uses the terminfo database to look up how to change terminal colors on whatever terminal is in use. Some systems have old and incomplete terminfo databases, and may lack color information for terminals that support it. Fish will use the [ANSI X3.64](https://en.wikipedia.org/wiki/ANSI_escape_code) escape sequences if the terminfo definition says less than 256 colors are supported; otherwise it will use the terminfo definition.
|
||||
Many terminals support 24-bit (i.e., true-color) color escape sequences. This includes modern xterm, Gnome Terminal, Konsole, and iTerm2. Fish attempts to detect such terminals through various means in `config.fish` You can explicitly force that support via `set fish_term24bit 1`.
|
||||
|
||||
The `set_color` command uses the terminfo database to look up how to change terminal colors on whatever terminal is in use. Some systems have old and incomplete terminfo databases, and may lack color information for terminals that support it. Fish will assume that all terminals can use the [ANSI X3.64](https://en.wikipedia.org/wiki/ANSI_escape_code) escape sequences if the terminfo definition indicates a color below 16 is not supported.
|
||||
|
||||
@@ -42,12 +42,17 @@ The following subcommands are available:
|
||||
|
||||
- `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.
|
||||
|
||||
- `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-quote` is given, the simplifying quoted format is not used. Exit status: 0 if at least one string was escaped, or 1 otherwise.
|
||||
- `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.
|
||||
|
||||
- `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. If `-r` or `--regex` is given, PATTERN is interpreted as a Perl-compatible regular expression. 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.
|
||||
- `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.
|
||||
|
||||
- `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.
|
||||
|
||||
\subsection regular-expressions Regular Expressions
|
||||
|
||||
Both the `match` and `replace` subcommand support regular expressions when used with the `-r` or `--regex` option. The dialect is that of PCRE2.
|
||||
|
||||
In general, special characters are special by default, so `a+` matches one or more "a"s, while `a\+` matches an "a" and then a "+". `(a+)` matches one or more "a"s in a capturing group (`(?:XXXX)` denotes a non-capturing group). For the replacement parameter of `replace`, `$n` refers to the n-th group of the match. In the match parameter, `\n` (e.g. `\1`) refers back to groups.
|
||||
|
||||
\subsection string-example Examples
|
||||
|
||||
@@ -120,6 +125,13 @@ The following subcommands are available:
|
||||
|
||||
>_ echo 'ok?' | string match '*\\?'
|
||||
>_ <outp>ok?</outp>
|
||||
\endfish
|
||||
|
||||
\subsection string-example-match-regex Match Regex Examples
|
||||
|
||||
\fish{cli-dark}
|
||||
>_ string match -r 'cat|dog|fish' 'nice dog'
|
||||
<outp>dog</outp>
|
||||
|
||||
>_ string match -r -v "c.*[12]" {cat,dog}(seq 1 4)
|
||||
<outp>dog1</outp>
|
||||
@@ -128,13 +140,6 @@ The following subcommands are available:
|
||||
<outp>dog3</outp>
|
||||
<outp>cat4</outp>
|
||||
<outp>dog4</outp>
|
||||
\endfish
|
||||
|
||||
\subsection string-example-match-regex Match Regex Examples
|
||||
|
||||
\fish{cli-dark}
|
||||
>_ string match -r 'cat|dog|fish' 'nice dog'
|
||||
<outp>dog</outp>
|
||||
|
||||
>_ string match -r '(\\d\\d?):(\\d\\d):(\\d\\d)' <asis>2:34:56</asis>
|
||||
<outp>2:34:56</outp>
|
||||
|
||||
@@ -10,8 +10,6 @@ suspend [--force]
|
||||
`suspend` suspends execution of the current shell by sending it a
|
||||
SIGTSTP signal, returning to the controlling process. It can be
|
||||
resumed later by sending it a SIGCONT. In order to prevent suspending
|
||||
a shell that doesn't have a controlling process, it will not suspend a
|
||||
the shell if it is a login shell or if `$SHLVL` is less
|
||||
`$suspend_minimum_SHLVL`, which defaults to three. This test is
|
||||
skipped if the `--force` option is given or the shell is not
|
||||
interactive.
|
||||
a shell that doesn't have a controlling process, it will not suspend
|
||||
the shell if it is a login shell. This requirement is bypassed
|
||||
if the `--force` option is given or the shell is not interactive.
|
||||
@@ -99,7 +99,7 @@ Commands can be chained with semicolons.
|
||||
You'll quickly notice that `fish` performs syntax highlighting as you type. Invalid commands are colored red by default:
|
||||
|
||||
\fish{cli-dark}
|
||||
>_ <error>/bin/mkd</error>
|
||||
>_ <eror>/bin/mkd</eror>
|
||||
\endfish
|
||||
|
||||
A command may be invalid because it does not exist, or refers to a file that you cannot execute. When the command becomes valid, it is shown in a different color:
|
||||
@@ -170,7 +170,7 @@ stdin and stdout can be redirected via the familiar < and >. Unlike other
|
||||
`fish` suggests commands as you type, and shows the suggestion to the right of the cursor, in gray. For example:
|
||||
|
||||
\fish{cli-dark}
|
||||
>_ <error>/bin/h</error><s>___ostname</s>
|
||||
>_ <eror>/bin/h</eror><s>___ostname</s>
|
||||
\endfish
|
||||
|
||||
It knows about paths and options:
|
||||
@@ -182,7 +182,7 @@ It knows about paths and options:
|
||||
And history too. Type a command once, and you can re-summon it by just typing a few letters:
|
||||
|
||||
\fish{cli-dark}
|
||||
>_ <error>r</error><s>___sync -avze ssh . myname@somelonghost.com:/some/long/path/doo/dee/doo/dee/doo</s>
|
||||
>_ <eror>r<</eror><s>___sync -avze ssh . myname@somelonghost.com:/some/long/path/doo/dee/doo/dee/doo</s>
|
||||
\endfish
|
||||
|
||||
To accept the autosuggestion, hit @cursor_key{→,right arrow} or @key{Control,F}. To accept a single word of the autosuggestion, @key{Alt,→} (right arrow). If the autosuggestion is not what you want, just ignore it.
|
||||
@@ -194,14 +194,14 @@ To accept the autosuggestion, hit @cursor_key{→,right arrow} or @key{Contro
|
||||
Press @key{Tab}, and `fish` will attempt to complete the command, argument, or path:
|
||||
|
||||
\fish{cli-dark}
|
||||
>_ <error>/pri</error> @key{Tab} → /private/
|
||||
>_ <eror>/pri</eror> @key{Tab} → /private/
|
||||
\endfish
|
||||
|
||||
If there's more than one possibility, it will list them:
|
||||
|
||||
\fish{cli-dark}
|
||||
>_ <error>~/stuff/s</error> @key{Tab}
|
||||
<outp><m>~/stuff/s</m>cript.sh <i>(Executable, 4.8kB)</i> <m>~/stuff/s</m>ources/ <i>(Directory)</i></outp>
|
||||
>_ <eror>~/stuff/s</eror> @key{Tab}
|
||||
<outp><mtch>~/stuff/s</outp>cript.sh <i>(Executable, 4.8kB)</i> \mtch{~/stuff/s</mtch>ources/ <i>(Directory)</i>}
|
||||
\endfish
|
||||
|
||||
Hit tab again to cycle through the possibilities.
|
||||
@@ -211,7 +211,7 @@ Hit tab again to cycle through the possibilities.
|
||||
\fish{cli-dark}
|
||||
>_ git merge pr @key{Tab} → git merge prompt_designer
|
||||
>_ git checkout b @key{Tab}
|
||||
<outp><m>b</m>uiltin_list_io_merge <i>(Branch)</i> <m>b</m>uiltin_set_color <i>(Branch)</i> <m>b</m>usted_events <i>(Tag)</i></outp>
|
||||
<outp><mtch>b</outp>uiltin_list_io_merge <i>(Branch)</i> \mtch{b</mtch>uiltin_set_color <i>(Branch)</i> <mtch>b</mtch>usted_events <i>(Tag)</i>}
|
||||
\endfish
|
||||
|
||||
Try hitting tab and see what `fish` can do!
|
||||
@@ -275,7 +275,7 @@ Unlike other shells, `fish` does not have an export command. Instead, a variable
|
||||
\fish{cli-dark}
|
||||
>_ set -x MyVariable SomeValue
|
||||
>_ env | grep MyVariable
|
||||
<outp><sm>MyVariable</sm>=SomeValue</outp>
|
||||
<outp><m>MyVariablem</outp>=SomeValue</m>
|
||||
\endfish
|
||||
|
||||
You can erase a variable with `-e` or `--erase`
|
||||
|
||||
@@ -9,7 +9,6 @@ html, body {
|
||||
color: #111;
|
||||
}
|
||||
body {
|
||||
text-rendering: optimizeLegibility;
|
||||
overflow: hidden;
|
||||
}
|
||||
.logo {
|
||||
@@ -96,9 +95,6 @@ a { color: #3d5cb3; }
|
||||
.fish_right_bar ul li {
|
||||
margin-bottom: 0.6rem;
|
||||
}
|
||||
.fish_right_bar p > code {
|
||||
display: inline-block;
|
||||
}
|
||||
/* Typography */
|
||||
p { margin: 1rem 0; }
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
@@ -271,5 +267,3 @@ tt, code, pre, .fish {
|
||||
position: absolute;
|
||||
left: -2rem;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ while CONDITION; COMMANDS...; end
|
||||
|
||||
If the exit status of `CONDITION` is non-zero on the first iteration, `COMMANDS` will not be executed at all.
|
||||
|
||||
You can use <a href="#and">`and`</a> or <a href="#and">`or`</a> for complex conditions. Even more complex control can be achieved with `while true` containing a <a href="#break">break</a>.
|
||||
You can use <a href="#and">`and`</a> or <a href="#or">`or`</a> for complex conditions. Even more complex control can be achieved with `while true` containing a <a href="#break">break</a>.
|
||||
|
||||
\subsection while-example Example
|
||||
|
||||
|
||||
@@ -9,6 +9,6 @@
|
||||
# ...
|
||||
# end
|
||||
# To include configuration only for interactive shells, use
|
||||
# if status --is-interactiv
|
||||
# if status --is-interactive
|
||||
# ...
|
||||
# end
|
||||
|
||||
@@ -112,6 +112,24 @@
|
||||
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 */; };
|
||||
D030FBEF1A4A382000F7ADA0 /* input.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D0A0854A13B3ACEE0099B651 /* input.cpp */; };
|
||||
@@ -551,7 +569,6 @@
|
||||
D0A0854B13B3ACEE0099B651 /* intern.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = intern.cpp; sourceTree = "<group>"; };
|
||||
D0A0854C13B3ACEE0099B651 /* io.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = io.cpp; sourceTree = "<group>"; };
|
||||
D0A0854D13B3ACEE0099B651 /* iothread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = iothread.cpp; sourceTree = "<group>"; };
|
||||
D0A0854E13B3ACEE0099B651 /* key_reader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = key_reader.cpp; sourceTree = "<group>"; };
|
||||
D0A0854F13B3ACEE0099B651 /* kill.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = kill.cpp; sourceTree = "<group>"; };
|
||||
D0A0855113B3ACEE0099B651 /* output.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = output.cpp; sourceTree = "<group>"; };
|
||||
D0A0855213B3ACEE0099B651 /* parse_util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = parse_util.cpp; sourceTree = "<group>"; };
|
||||
@@ -787,7 +804,6 @@
|
||||
D0A0854D13B3ACEE0099B651 /* iothread.cpp */,
|
||||
D0A0851813B3ACEE0099B651 /* kill.h */,
|
||||
D0A0854F13B3ACEE0099B651 /* kill.cpp */,
|
||||
D0A0854E13B3ACEE0099B651 /* key_reader.cpp */,
|
||||
D03EE83814DF88B200FC7150 /* lru.h */,
|
||||
D0A0851A13B3ACEE0099B651 /* output.h */,
|
||||
D0A0855113B3ACEE0099B651 /* output.cpp */,
|
||||
@@ -984,7 +1000,7 @@
|
||||
D0A084F213B3AC130099B651 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0730;
|
||||
LastUpgradeCheck = 0800;
|
||||
TargetAttributes = {
|
||||
D008D0C41BC58F8800841177 = {
|
||||
CreatedOnToolsVersion = 7.0.1;
|
||||
@@ -1205,7 +1221,7 @@
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "cd \"${SRCROOT}\" ;\n# Run build_documentation.sh\n# Do this in a subshell so that we keep going even if it calls exit\nif [ -f lexicon_filter ] ; then\n export INPUT_FILTER=./lexicon_filter\nelse\n echo \"build_documentation:0: warning: lexicon_filter not found, ignoring it\" >&2\nfi\n\n( . \"./build_tools/build_documentation.sh\" \"./Doxyfile.help\" \"./doc_src\" \"$BUILT_PRODUCTS_DIR\" )\n\n# Copy certain files into man1, destined for share/man/man1 (instead of share/fish/man/man1)\n# These copies will fail if the documentation did not build; that's OK\n# We want to create the directory even if the documentation did not build, so that the Xcode build can still succeed\nmanpathdir=\"${BUILT_PRODUCTS_DIR}/pages_for_manpath/man1\"\necho \"Copying pages destined for manpath into $manpathdir\"\nrm -Rf \"$manpathdir\"\nmkdir -p \"$manpathdir\"\nfor manpage in fish.1 set_color.1 fishd.1 fish_indent.1; do\n manpagepath=\"${BUILT_PRODUCTS_DIR}/man/man1/${manpage}\"\n test -f \"$manpagepath\" && cp \"$manpagepath\" \"${BUILT_PRODUCTS_DIR}/pages_for_manpath/man1/\"\ndone\n\n# Always succeed\ntrue\n";
|
||||
shellScript = "cd \"${SRCROOT}\" ;\n# Run build_documentation.sh\n# Do this in a subshell so that we keep going even if it calls exit\nif [ -f lexicon_filter ] ; then\n export INPUT_FILTER=./lexicon_filter\nelse\n echo \"build_documentation:0: warning: lexicon_filter not found, ignoring it\" >&2\nfi\n\n( . \"./build_tools/build_documentation.sh\" \"./Doxyfile.help\" \"./doc_src\" \"$BUILT_PRODUCTS_DIR\" )\n\n# Copy certain files into man1, destined for share/man/man1 (instead of share/fish/man/man1)\n# These copies will fail if the documentation did not build; that's OK\n# We want to create the directory even if the documentation did not build, so that the Xcode build can still succeed\nmanpathdir=\"${BUILT_PRODUCTS_DIR}/pages_for_manpath/man1\"\necho \"Copying pages destined for manpath into $manpathdir\"\nrm -Rf \"$manpathdir\"\nmkdir -p \"$manpathdir\"\nfor manpage in fish.1 fish_indent.1; do\n manpagepath=\"${BUILT_PRODUCTS_DIR}/man/man1/${manpage}\"\n test -f \"$manpagepath\" && cp \"$manpagepath\" \"${BUILT_PRODUCTS_DIR}/pages_for_manpath/man1/\"\ndone\n\n# Always succeed\ntrue\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
@@ -1298,8 +1314,15 @@
|
||||
files = (
|
||||
D030FBF41A4A38F300F7ADA0 /* autoload.cpp in Sources */,
|
||||
D030FBF51A4A38F300F7ADA0 /* builtin.cpp in Sources */,
|
||||
D04F7FF01BA4E5B900B0F227 /* builtin_string.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 */,
|
||||
D030FBF61A4A38F300F7ADA0 /* color.cpp in Sources */,
|
||||
D0D02AD81598649E008E62BD /* common.cpp in Sources */,
|
||||
D030FBF71A4A38F300F7ADA0 /* complete.cpp in Sources */,
|
||||
@@ -1311,6 +1334,7 @@
|
||||
D030FBFC1A4A38F300F7ADA0 /* parse_productions.cpp in Sources */,
|
||||
D030FBFD1A4A38F300F7ADA0 /* parse_tree.cpp in Sources */,
|
||||
D030FBFE1A4A38F300F7ADA0 /* parse_execution.cpp in Sources */,
|
||||
D012436B1CD4019700C64313 /* fallback.cpp in Sources */,
|
||||
D030FC001A4A38F300F7ADA0 /* function.cpp in Sources */,
|
||||
D030FC011A4A38F300F7ADA0 /* highlight.cpp in Sources */,
|
||||
D030FC021A4A38F300F7ADA0 /* history.cpp in Sources */,
|
||||
@@ -1339,6 +1363,7 @@
|
||||
D030FC131A4A38F300F7ADA0 /* wgetopt.cpp in Sources */,
|
||||
D030FC141A4A38F300F7ADA0 /* wildcard.cpp in Sources */,
|
||||
D0D02ADA159864AB008E62BD /* wutil.cpp in Sources */,
|
||||
D01243691CD4015C00C64313 /* util.cpp in Sources */,
|
||||
D0D02AD615986492008E62BD /* fish_indent.cpp in Sources */,
|
||||
D00F63F219137E9D00FCCDEC /* fish_version.cpp in Sources */,
|
||||
);
|
||||
@@ -1349,7 +1374,15 @@
|
||||
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 */,
|
||||
D0D02A7E159839D5008E62BD /* color.cpp in Sources */,
|
||||
D0D02A7F159839D5008E62BD /* common.cpp in Sources */,
|
||||
D0D02A80159839D5008E62BD /* event.cpp in Sources */,
|
||||
@@ -1370,6 +1403,7 @@
|
||||
D0D02A6A1598381A008E62BD /* exec.cpp in Sources */,
|
||||
D0F5B46519CFCDE80090665E /* wcstringutil.cpp in Sources */,
|
||||
D0D02A6B1598381F008E62BD /* expand.cpp in Sources */,
|
||||
D012436A1CD4018100C64313 /* fallback.cpp in Sources */,
|
||||
D00F63F119137E9D00FCCDEC /* fish_version.cpp in Sources */,
|
||||
D0D02A6C15983829008E62BD /* highlight.cpp in Sources */,
|
||||
D0D02A6D1598382C008E62BD /* history.cpp in Sources */,
|
||||
@@ -1384,7 +1418,6 @@
|
||||
D0D02A751598385E008E62BD /* wgetopt.cpp in Sources */,
|
||||
D0D02A7615983869008E62BD /* wutil.cpp in Sources */,
|
||||
D0D02A7715983875008E62BD /* input.cpp in Sources */,
|
||||
D04F7F7C1BA4BF4000B0F227 /* builtin_string.cpp in Sources */,
|
||||
D0D02A781598387E008E62BD /* output.cpp in Sources */,
|
||||
D0D02A7915983888008E62BD /* intern.cpp in Sources */,
|
||||
D0D02A7B15983928008E62BD /* env_universal_common.cpp in Sources */,
|
||||
@@ -1392,6 +1425,7 @@
|
||||
D0D02A89159839DF008E62BD /* fish.cpp in Sources */,
|
||||
D0C52F371765284C00BFAB82 /* parse_tree.cpp in Sources */,
|
||||
D0FE8EE8179FB760008C9F21 /* parse_productions.cpp in Sources */,
|
||||
D01243681CD4015600C64313 /* util.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -1511,10 +1545,23 @@
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_ENABLE_CPP_EXCEPTIONS = NO;
|
||||
GCC_ENABLE_CPP_RTTI = NO;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"LOCALEDIR=\\\"/usr/local/share/locale\\\"",
|
||||
"PREFIX=L\\\"/usr/local\\\"",
|
||||
@@ -1524,7 +1571,10 @@
|
||||
"DOCDIR=L\\\"/usr/local/share/doc\\\"",
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_LABEL = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
@@ -1726,9 +1776,23 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_ENABLE_CPP_EXCEPTIONS = NO;
|
||||
GCC_ENABLE_CPP_RTTI = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"LOCALEDIR=\\\"/usr/local/share/locale\\\"",
|
||||
@@ -1740,7 +1804,10 @@
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_LABEL = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
@@ -1759,10 +1826,23 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_ENABLE_CPP_EXCEPTIONS = NO;
|
||||
GCC_ENABLE_CPP_RTTI = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"LOCALEDIR=\\\"/usr/local/share/locale\\\"",
|
||||
"PREFIX=L\\\"/usr/local\\\"",
|
||||
@@ -1772,7 +1852,10 @@
|
||||
"DOCDIR=L\\\"/usr/local/share/doc\\\"",
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_LABEL = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0800"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0800"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0800"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0800"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
LastUpgradeVersion = "0800"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
||||
354
install-sh
354
install-sh
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2011-11-20.07; # UTC
|
||||
scriptversion=2013-12-25.23; # UTC
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
@@ -41,19 +41,15 @@ scriptversion=2011-11-20.07; # UTC
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch.
|
||||
|
||||
tab=' '
|
||||
nl='
|
||||
'
|
||||
IFS=" "" $nl"
|
||||
IFS=" $tab$nl"
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
# Set DOITPROG to "echo" to test this script.
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit=${DOITPROG-}
|
||||
if test -z "$doit"; then
|
||||
doit_exec=exec
|
||||
else
|
||||
doit_exec=$doit
|
||||
fi
|
||||
doit_exec=${doit:-exec}
|
||||
|
||||
# Put in absolute file names if you don't have them in your path;
|
||||
# or use environment vars.
|
||||
@@ -68,17 +64,6 @@ mvprog=${MVPROG-mv}
|
||||
rmprog=${RMPROG-rm}
|
||||
stripprog=${STRIPPROG-strip}
|
||||
|
||||
posix_glob='?'
|
||||
initialize_posix_glob='
|
||||
test "$posix_glob" != "?" || {
|
||||
if (set -f) 2>/dev/null; then
|
||||
posix_glob=
|
||||
else
|
||||
posix_glob=:
|
||||
fi
|
||||
}
|
||||
'
|
||||
|
||||
posix_mkdir=
|
||||
|
||||
# Desired mode of installed file.
|
||||
@@ -97,7 +82,7 @@ dir_arg=
|
||||
dst_arg=
|
||||
|
||||
copy_on_change=false
|
||||
no_target_directory=
|
||||
is_target_a_directory=possibly
|
||||
|
||||
usage="\
|
||||
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
@@ -137,46 +122,57 @@ while test $# -ne 0; do
|
||||
-d) dir_arg=true;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift;;
|
||||
shift;;
|
||||
|
||||
--help) echo "$usage"; exit $?;;
|
||||
|
||||
-m) mode=$2
|
||||
case $mode in
|
||||
*' '* | *' '* | *'
|
||||
'* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
case $mode in
|
||||
*' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift;;
|
||||
shift;;
|
||||
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-t) dst_arg=$2
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
shift;;
|
||||
-t)
|
||||
is_target_a_directory=always
|
||||
dst_arg=$2
|
||||
# Protect names problematic for 'test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-T) no_target_directory=true;;
|
||||
-T) is_target_a_directory=never;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
|
||||
--) shift
|
||||
break;;
|
||||
--) shift
|
||||
break;;
|
||||
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# We allow the use of options -d and -T together, by making -d
|
||||
# take the precedence; this is for compatibility with GNU install.
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
if test -n "$dst_arg"; then
|
||||
echo "$0: target directory not allowed when installing a directory." >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
||||
# When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
@@ -207,6 +203,15 @@ if test $# -eq 0; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
if test $# -gt 1 || test "$is_target_a_directory" = always; then
|
||||
if test ! -d "$dst_arg"; then
|
||||
echo "$0: $dst_arg: Is not a directory." >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
do_exit='(exit $ret); exit $ret'
|
||||
trap "ret=129; $do_exit" 1
|
||||
@@ -223,16 +228,16 @@ if test -z "$dir_arg"; then
|
||||
|
||||
*[0-7])
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw='% 200'
|
||||
u_plus_rw='% 200'
|
||||
fi
|
||||
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||
*)
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw=,u+rw
|
||||
u_plus_rw=,u+rw
|
||||
fi
|
||||
cp_umask=$mode$u_plus_rw;;
|
||||
esac
|
||||
@@ -269,41 +274,15 @@ do
|
||||
# If destination is a directory, append the input filename; won't work
|
||||
# if double slashes aren't ignored.
|
||||
if test -d "$dst"; then
|
||||
if test -n "$no_target_directory"; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
if test "$is_target_a_directory" = never; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dstdir=$dst
|
||||
dst=$dstdir/`basename "$src"`
|
||||
dstdir_status=0
|
||||
else
|
||||
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||
dstdir=`
|
||||
(dirname "$dst") 2>/dev/null ||
|
||||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$dst" : 'X\(//\)[^/]' \| \
|
||||
X"$dst" : 'X\(//\)$' \| \
|
||||
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
|
||||
echo X"$dst" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)[^/].*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\).*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
s/.*/./; q'
|
||||
`
|
||||
|
||||
dstdir=`dirname "$dst"`
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
fi
|
||||
@@ -314,74 +293,74 @@ do
|
||||
if test $dstdir_status != 0; then
|
||||
case $posix_mkdir in
|
||||
'')
|
||||
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||
umask=`umask`
|
||||
case $stripcmd.$umask in
|
||||
# Optimize common cases.
|
||||
*[2367][2367]) mkdir_umask=$umask;;
|
||||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||
umask=`umask`
|
||||
case $stripcmd.$umask in
|
||||
# Optimize common cases.
|
||||
*[2367][2367]) mkdir_umask=$umask;;
|
||||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||
;;
|
||||
*)
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||
;;
|
||||
*)
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
|
||||
if (umask $mkdir_umask &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/d" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
if (umask $mkdir_umask &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/d" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
if
|
||||
$posix_mkdir && (
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
)
|
||||
then :
|
||||
else
|
||||
@@ -391,53 +370,51 @@ do
|
||||
# directory the slow way, step by step, checking for races as we go.
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix='/';;
|
||||
[-=\(\)!]*) prefix='./';;
|
||||
*) prefix='';;
|
||||
/*) prefix='/';;
|
||||
[-=\(\)!]*) prefix='./';;
|
||||
*) prefix='';;
|
||||
esac
|
||||
|
||||
eval "$initialize_posix_glob"
|
||||
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
$posix_glob set -f
|
||||
set -f
|
||||
set fnord $dstdir
|
||||
shift
|
||||
$posix_glob set +f
|
||||
set +f
|
||||
IFS=$oIFS
|
||||
|
||||
prefixes=
|
||||
|
||||
for d
|
||||
do
|
||||
test X"$d" = X && continue
|
||||
test X"$d" = X && continue
|
||||
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
done
|
||||
|
||||
if test -n "$prefixes"; then
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -472,15 +449,12 @@ do
|
||||
|
||||
# If -C, don't bother to copy if it wouldn't change the file.
|
||||
if $copy_on_change &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
|
||||
eval "$initialize_posix_glob" &&
|
||||
$posix_glob set -f &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
set -f &&
|
||||
set X $old && old=:$2:$4:$5:$6 &&
|
||||
set X $new && new=:$2:$4:$5:$6 &&
|
||||
$posix_glob set +f &&
|
||||
|
||||
set +f &&
|
||||
test "$old" = "$new" &&
|
||||
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
||||
then
|
||||
@@ -493,24 +467,24 @@ do
|
||||
# to itself, or perhaps because mv is so ancient that it does not
|
||||
# support -f.
|
||||
{
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
}
|
||||
fi || exit 1
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
# art text processor from the 70's. Who's sed? sed's dead, baby, sed's dead.*
|
||||
# by Mark Griffiths <mark@thebespokepixel.com> *but quite portable
|
||||
#.
|
||||
# Finds /fish../endfish blocks in documentation source files and enhances
|
||||
# Finds \fish..\endfish blocks in documentation source files and enhances
|
||||
# markup. Requires that the four character word 'classes' declared here are
|
||||
# added to Doxyfiles as aliases i.e.:
|
||||
#.
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>2.3.0</string>
|
||||
<string>2.4.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>0.1</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
|
||||
98
osx/config.h
98
osx/config.h
@@ -1,14 +1,8 @@
|
||||
/* config.h. Generated from config.h.in by configure. */
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define to 1 if you have the `backtrace' function. */
|
||||
#define HAVE_BACKTRACE 1
|
||||
|
||||
/* Define to 1 if you have the `backtrace_symbols_fd' function. */
|
||||
#define HAVE_BACKTRACE_SYMBOLS_FD 1
|
||||
|
||||
/* Define to 1 one if the implemented fwprintf is broken */
|
||||
/* #undef HAVE_BROKEN_FWPRINTF */
|
||||
/* Define to 1 if you have the `backtrace_symbols' function. */
|
||||
#define HAVE_BACKTRACE_SYMBOLS 1
|
||||
|
||||
/* Define to 1 if you have the `clock_gettime' function. */
|
||||
/* #undef HAVE_CLOCK_GETTIME */
|
||||
@@ -16,9 +10,6 @@
|
||||
/* Define to 1 if you have the <curses.h> header file. */
|
||||
#define HAVE_CURSES_H 1
|
||||
|
||||
/* Define to 1 if you have the `dcgettext' function. */
|
||||
/* #undef HAVE_DCGETTEXT */
|
||||
|
||||
/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
|
||||
*/
|
||||
#define HAVE_DIRENT_H 1
|
||||
@@ -26,27 +17,21 @@
|
||||
/* Define to 1 if you have the <execinfo.h> header file. */
|
||||
#define HAVE_EXECINFO_H 1
|
||||
|
||||
/* Define to 1 if you have the `fgetwc' function. */
|
||||
#define HAVE_FGETWC 1
|
||||
|
||||
/* Define to 1 if you have the `fputwc' function. */
|
||||
#define HAVE_FPUTWC 1
|
||||
|
||||
/* Define to 1 if you have the `futimens' function. */
|
||||
/* #undef HAVE_FUTIMENS */
|
||||
|
||||
/* Define to 1 if you have the `futimes' function. */
|
||||
#define HAVE_FUTIMES 1
|
||||
|
||||
/* Define to 1 if you have the `fwprintf' function. */
|
||||
#define HAVE_FWPRINTF 1
|
||||
|
||||
/* Define to 1 if you have the `getifaddrs' function. */
|
||||
#define HAVE_GETIFADDRS 1
|
||||
|
||||
/* Define to 1 if you have the <getopt.h> header file. */
|
||||
#define HAVE_GETOPT_H 1
|
||||
|
||||
/* Define to 1 if you have the `getpwent' function. */
|
||||
#define HAVE_GETPWENT 1
|
||||
|
||||
/* Define to 1 if you have the `gettext' function. */
|
||||
/* #undef HAVE_GETTEXT */
|
||||
|
||||
@@ -68,9 +53,6 @@
|
||||
/* Define to 1 if you have the `mkostemp' function. */
|
||||
/* #undef HAVE_MKOSTEMP */
|
||||
|
||||
/* Define to 1 if you have the nan function */
|
||||
#define HAVE_NAN 1
|
||||
|
||||
/* Define to 1 if you have the <ncurses/curses.h> header file. */
|
||||
/* #undef HAVE_NCURSES_CURSES_H */
|
||||
|
||||
@@ -83,9 +65,6 @@
|
||||
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
|
||||
/* #undef HAVE_NDIR_H */
|
||||
|
||||
/* Define to 1 if realpath accepts null for its second argument. */
|
||||
#define HAVE_REALPATH_NULL 1
|
||||
|
||||
/* Define to 1 if you have the <siginfo.h> header file. */
|
||||
/* #undef HAVE_SIGINFO_H */
|
||||
|
||||
@@ -110,15 +89,15 @@
|
||||
/* Define to 1 if `d_type' is a member of `struct dirent'. */
|
||||
#define HAVE_STRUCT_DIRENT_D_TYPE 1
|
||||
|
||||
/* Define to 1 if `st_ctime_nsec' is a member of `struct stat'. */
|
||||
/* #undef HAVE_STRUCT_STAT_ST_CTIME_NSEC */
|
||||
|
||||
/* Define to 1 if `st_mtimespec.tv_nsec' is a member of `struct stat'. */
|
||||
#define HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC 1
|
||||
|
||||
/* Define to 1 if `st_mtim.tv_nsec' is a member of `struct stat'. */
|
||||
/* #undef HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC */
|
||||
|
||||
/* Define to 1 if you have the `sysconf' function. */
|
||||
#define HAVE_SYSCONF 1
|
||||
|
||||
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
|
||||
*/
|
||||
/* #undef HAVE_SYS_DIR_H */
|
||||
@@ -154,46 +133,15 @@
|
||||
/* Define to 1 if you have the <term.h> header file. */
|
||||
#define HAVE_TERM_H 1
|
||||
|
||||
/* Define to 1 if the wgettext function should be used for translating
|
||||
strings. */
|
||||
#define HAVE_TRANSLATE_H 1
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Define to 1 if you have the `wcscasecmp' function. */
|
||||
#define HAVE_WCSCASECMP 1
|
||||
|
||||
/* Define to 1 if you have the `wcsdup' function. */
|
||||
#define HAVE_WCSDUP 1
|
||||
|
||||
/* Define to 1 if you have the `wcslcat' function. */
|
||||
#define HAVE_WCSLCAT 1
|
||||
|
||||
/* Define to 1 if you have the `wcslcpy' function. */
|
||||
#define HAVE_WCSLCPY 1
|
||||
|
||||
/* Define to 1 if you have the `wcslen' function. */
|
||||
#define HAVE_WCSLEN 1
|
||||
|
||||
/* Define to 1 if you have the `wcsncasecmp' function. */
|
||||
#define HAVE_WCSNCASECMP 1
|
||||
|
||||
/* Define to 1 if you have the `wcsndup' function. */
|
||||
/* #undef HAVE_WCSNDUP */
|
||||
|
||||
/* Define to 1 if you have the `wcstok' function. */
|
||||
#define HAVE_WCSTOK 1
|
||||
|
||||
/* Define to 1 if you have the `wcstol' function. */
|
||||
#define HAVE_WCSTOL 1
|
||||
|
||||
/* Define to 1 if you have the `wcswidth' function. */
|
||||
#define HAVE_WCSWIDTH 1
|
||||
|
||||
/* Define to 1 if you have the `wcwidth' function. */
|
||||
#define HAVE_WCWIDTH 1
|
||||
|
||||
/* Define to 1 if the winsize struct and TIOCGWINSZ macro exist */
|
||||
#define HAVE_WINSIZE 1
|
||||
|
||||
@@ -206,9 +154,6 @@
|
||||
/* Define to 1 if the _sys_errs array is available. */
|
||||
/* #undef HAVE__SYS__ERRS */
|
||||
|
||||
/* Define to 1 if the __environ symbol is exported. */
|
||||
/* #undef HAVE___ENVIRON */
|
||||
|
||||
/* Define to 1 to disable ncurses macros that conflict with the STL */
|
||||
#define NCURSES_NOMACROS 1
|
||||
|
||||
@@ -222,7 +167,7 @@
|
||||
#define PACKAGE_NAME "fish"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "fish 2.3.0"
|
||||
#define PACKAGE_STRING "fish 2.4.0"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "fish"
|
||||
@@ -231,7 +176,7 @@
|
||||
#define PACKAGE_URL ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "2.3.0"
|
||||
#define PACKAGE_VERSION "2.4.0"
|
||||
|
||||
/* The size of `wchar_t', as computed by sizeof. */
|
||||
#define SIZEOF_WCHAR_T 4
|
||||
@@ -242,9 +187,6 @@
|
||||
/* Define to 1 if tparm accepts a fixed amount of paramters. */
|
||||
/* #undef TPARM_SOLARIS_KLUDGE */
|
||||
|
||||
/* Evil kludge to get Power based machines to work */
|
||||
/* #undef TPUTS_KLUDGE */
|
||||
|
||||
/* Perform string translations with gettext */
|
||||
/* #undef USE_GETTEXT */
|
||||
|
||||
@@ -273,12 +215,20 @@
|
||||
/* The size of wchar_t in bits. */
|
||||
#define WCHAR_T_BITS 32
|
||||
|
||||
/* Enable large inode numbers on Mac OS X 10.5. */
|
||||
#ifndef _DARWIN_USE_64_BIT_INODE
|
||||
# define _DARWIN_USE_64_BIT_INODE 1
|
||||
#endif
|
||||
|
||||
/* Number of bits in a file offset, on hosts where this is settable. */
|
||||
/* #undef _FILE_OFFSET_BITS */
|
||||
|
||||
/* Define for large files, on AIX-style hosts. */
|
||||
/* #undef _LARGE_FILES */
|
||||
|
||||
/* Define to 1 if on MINIX. */
|
||||
/* #undef _MINIX */
|
||||
|
||||
/* Macro to enable additional prototypes under BSD */
|
||||
/* #undef _NETBSD_SOURCE */
|
||||
|
||||
/* Define to 2 if the system does not provide POSIX.1 features except with
|
||||
this defined. */
|
||||
/* #undef _POSIX_1_SOURCE */
|
||||
@@ -286,12 +236,6 @@
|
||||
/* Define to 1 if you need to in order for `stat' and other things to work. */
|
||||
/* #undef _POSIX_SOURCE */
|
||||
|
||||
/* Macro to enable additional prototypes under BSD */
|
||||
/* #undef __BSD_VISIBLE */
|
||||
|
||||
/* Macro to enable additional prototypes under Solaris */
|
||||
#define __EXTENSIONS__ 1
|
||||
|
||||
#if __GNUC__ >= 3
|
||||
#ifndef __warn_unused
|
||||
#define __warn_unused __attribute__ ((warn_unused_result))
|
||||
|
||||
Binary file not shown.
524
pcre2-10.21/RunTest.bat
vendored
524
pcre2-10.21/RunTest.bat
vendored
@@ -1,524 +0,0 @@
|
||||
@echo off
|
||||
@rem
|
||||
@rem MS Windows batch file to run pcre2test on testfiles with the correct
|
||||
@rem options. This file must use CRLF linebreaks to function properly,
|
||||
@rem and requires both pcre2test and pcre2grep.
|
||||
@rem
|
||||
@rem ------------------------ HISTORY ----------------------------------
|
||||
@rem This file was originally contributed to PCRE1 by Ralf Junker, and touched
|
||||
@rem up by Daniel Richard G. Tests 10-12 added by Philip H.
|
||||
@rem Philip H also changed test 3 to use "wintest" files.
|
||||
@rem
|
||||
@rem Updated by Tom Fortmann to support explicit test numbers on the command
|
||||
@rem line. Added argument validation and added error reporting.
|
||||
@rem
|
||||
@rem Sheri Pierce added logic to skip feature dependent tests
|
||||
@rem tests 4 5 7 10 12 14 19 and 22 require Unicode support
|
||||
@rem 8 requires Unicode and link size 2
|
||||
@rem 16 requires absence of jit support
|
||||
@rem 17 requires presence of jit support
|
||||
@rem Sheri P also added override tests for study and jit testing
|
||||
@rem Zoltan Herczeg added libpcre16 support
|
||||
@rem Zoltan Herczeg added libpcre32 support
|
||||
@rem -------------------------------------------------------------------
|
||||
@rem
|
||||
@rem The file was converted for PCRE2 by PH, February 2015.
|
||||
@rem Updated for new test 14 (moving others up a number), August 2015.
|
||||
@rem Tidied and updated for new tests 21, 22, 23 by PH, October 2015.
|
||||
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
if [%srcdir%]==[] (
|
||||
if exist testdata\ set srcdir=.)
|
||||
if [%srcdir%]==[] (
|
||||
if exist ..\testdata\ set srcdir=..)
|
||||
if [%srcdir%]==[] (
|
||||
if exist ..\..\testdata\ set srcdir=..\..)
|
||||
if NOT exist %srcdir%\testdata\ (
|
||||
Error: echo distribution testdata folder not found!
|
||||
call :conferror
|
||||
exit /b 1
|
||||
goto :eof
|
||||
)
|
||||
|
||||
if [%pcre2test%]==[] set pcre2test=.\pcre2test.exe
|
||||
|
||||
echo source dir is %srcdir%
|
||||
echo pcre2test=%pcre2test%
|
||||
|
||||
if NOT exist %pcre2test% (
|
||||
echo Error: %pcre2test% not found!
|
||||
echo.
|
||||
call :conferror
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
%pcre2test% -C linksize >NUL
|
||||
set link_size=%ERRORLEVEL%
|
||||
%pcre2test% -C pcre2-8 >NUL
|
||||
set support8=%ERRORLEVEL%
|
||||
%pcre2test% -C pcre2-16 >NUL
|
||||
set support16=%ERRORLEVEL%
|
||||
%pcre2test% -C pcre2-32 >NUL
|
||||
set support32=%ERRORLEVEL%
|
||||
%pcre2test% -C unicode >NUL
|
||||
set unicode=%ERRORLEVEL%
|
||||
%pcre2test% -C jit >NUL
|
||||
set jit=%ERRORLEVEL%
|
||||
%pcre2test% -C backslash-C >NUL
|
||||
set supportBSC=%ERRORLEVEL%
|
||||
|
||||
if %support8% EQU 1 (
|
||||
if not exist testout8 md testout8
|
||||
if not exist testoutjit8 md testoutjit8
|
||||
)
|
||||
|
||||
if %support16% EQU 1 (
|
||||
if not exist testout16 md testout16
|
||||
if not exist testoutjit16 md testoutjit16
|
||||
)
|
||||
|
||||
if %support16% EQU 1 (
|
||||
if not exist testout32 md testout32
|
||||
if not exist testoutjit32 md testoutjit32
|
||||
)
|
||||
|
||||
set do1=no
|
||||
set do2=no
|
||||
set do3=no
|
||||
set do4=no
|
||||
set do5=no
|
||||
set do6=no
|
||||
set do7=no
|
||||
set do8=no
|
||||
set do9=no
|
||||
set do10=no
|
||||
set do11=no
|
||||
set do12=no
|
||||
set do13=no
|
||||
set do14=no
|
||||
set do15=no
|
||||
set do16=no
|
||||
set do17=no
|
||||
set do18=no
|
||||
set do19=no
|
||||
set do20=no
|
||||
set do21=no
|
||||
set do22=no
|
||||
set do23=no
|
||||
set all=yes
|
||||
|
||||
for %%a in (%*) do (
|
||||
set valid=no
|
||||
for %%v in (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23) do if %%v == %%a set valid=yes
|
||||
if "!valid!" == "yes" (
|
||||
set do%%a=yes
|
||||
set all=no
|
||||
) else (
|
||||
echo Invalid test number - %%a!
|
||||
echo Usage %0 [ test_number ] ...
|
||||
echo Where test_number is one or more optional test numbers 1 through 23, default is all tests.
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
set failed="no"
|
||||
|
||||
if "%all%" == "yes" (
|
||||
set do1=yes
|
||||
set do2=yes
|
||||
set do3=yes
|
||||
set do4=yes
|
||||
set do5=yes
|
||||
set do6=yes
|
||||
set do7=yes
|
||||
set do8=yes
|
||||
set do9=yes
|
||||
set do10=yes
|
||||
set do11=yes
|
||||
set do12=yes
|
||||
set do13=yes
|
||||
set do14=yes
|
||||
set do15=yes
|
||||
set do16=yes
|
||||
set do17=yes
|
||||
set do18=yes
|
||||
set do19=yes
|
||||
set do20=yes
|
||||
set do21=yes
|
||||
set do22=yes
|
||||
set do23=yes
|
||||
)
|
||||
|
||||
@echo RunTest.bat's pcre2test output is written to newly created subfolders
|
||||
@echo named testout{8,16,32} and testoutjit{8,16,32}.
|
||||
@echo.
|
||||
|
||||
set mode=
|
||||
set bits=8
|
||||
|
||||
:nextMode
|
||||
if "%mode%" == "" (
|
||||
if %support8% EQU 0 goto modeSkip
|
||||
echo.
|
||||
echo ---- Testing 8-bit library ----
|
||||
echo.
|
||||
)
|
||||
if "%mode%" == "-16" (
|
||||
if %support16% EQU 0 goto modeSkip
|
||||
echo.
|
||||
echo ---- Testing 16-bit library ----
|
||||
echo.
|
||||
)
|
||||
if "%mode%" == "-32" (
|
||||
if %support32% EQU 0 goto modeSkip
|
||||
echo.
|
||||
echo ---- Testing 32-bit library ----
|
||||
echo.
|
||||
)
|
||||
if "%do1%" == "yes" call :do1
|
||||
if "%do2%" == "yes" call :do2
|
||||
if "%do3%" == "yes" call :do3
|
||||
if "%do4%" == "yes" call :do4
|
||||
if "%do5%" == "yes" call :do5
|
||||
if "%do6%" == "yes" call :do6
|
||||
if "%do7%" == "yes" call :do7
|
||||
if "%do8%" == "yes" call :do8
|
||||
if "%do9%" == "yes" call :do9
|
||||
if "%do10%" == "yes" call :do10
|
||||
if "%do11%" == "yes" call :do11
|
||||
if "%do12%" == "yes" call :do12
|
||||
if "%do13%" == "yes" call :do13
|
||||
if "%do14%" == "yes" call :do14
|
||||
if "%do15%" == "yes" call :do15
|
||||
if "%do16%" == "yes" call :do16
|
||||
if "%do17%" == "yes" call :do17
|
||||
if "%do18%" == "yes" call :do18
|
||||
if "%do19%" == "yes" call :do19
|
||||
if "%do20%" == "yes" call :do20
|
||||
if "%do21%" == "yes" call :do21
|
||||
if "%do22%" == "yes" call :do22
|
||||
if "%do23%" == "yes" call :do23
|
||||
:modeSkip
|
||||
if "%mode%" == "" (
|
||||
set mode=-16
|
||||
set bits=16
|
||||
goto nextMode
|
||||
)
|
||||
if "%mode%" == "-16" (
|
||||
set mode=-32
|
||||
set bits=32
|
||||
goto nextMode
|
||||
)
|
||||
|
||||
@rem If mode is -32, testing is finished
|
||||
if %failed% == "yes" (
|
||||
echo In above output, one or more of the various tests failed!
|
||||
exit /b 1
|
||||
)
|
||||
echo All OK
|
||||
goto :eof
|
||||
|
||||
:runsub
|
||||
@rem Function to execute pcre2test and compare the output
|
||||
@rem Arguments are as follows:
|
||||
@rem
|
||||
@rem 1 = test number
|
||||
@rem 2 = outputdir
|
||||
@rem 3 = test name use double quotes
|
||||
@rem 4 - 9 = pcre2test options
|
||||
|
||||
if [%1] == [] (
|
||||
echo Missing test number argument!
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if [%2] == [] (
|
||||
echo Missing outputdir!
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if [%3] == [] (
|
||||
echo Missing test name argument!
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
set testinput=testinput%1
|
||||
set testoutput=testoutput%1
|
||||
if exist %srcdir%\testdata\win%testinput% (
|
||||
set testinput=wintestinput%1
|
||||
set testoutput=wintestoutput%1
|
||||
)
|
||||
|
||||
echo Test %1: %3
|
||||
%pcre2test% %mode% %4 %5 %6 %7 %8 %9 %srcdir%\testdata\%testinput% >%2%bits%\%testoutput%
|
||||
if errorlevel 1 (
|
||||
echo. failed executing command-line:
|
||||
echo. %pcre2test% %mode% %4 %5 %6 %7 %8 %9 %srcdir%\testdata\%testinput% ^>%2%bits%\%testoutput%
|
||||
set failed="yes"
|
||||
goto :eof
|
||||
)
|
||||
|
||||
set type=
|
||||
if [%1]==[8] (
|
||||
set type=-%bits%
|
||||
)
|
||||
if [%1]==[11] (
|
||||
set type=-%bits%
|
||||
)
|
||||
if [%1]==[12] (
|
||||
set type=-%bits%
|
||||
)
|
||||
if [%1]==[14] (
|
||||
set type=-%bits%
|
||||
)
|
||||
|
||||
fc /n %srcdir%\testdata\%testoutput%%type% %2%bits%\%testoutput% >NUL
|
||||
|
||||
if errorlevel 1 (
|
||||
echo. failed comparison: fc /n %srcdir%\testdata\%testoutput% %2%bits%\%testoutput%
|
||||
if [%1]==[2] (
|
||||
echo.
|
||||
echo ** Test 2 requires a lot of stack. PCRE2 can be configured to
|
||||
echo ** use heap for recursion. Otherwise, to pass Test 2
|
||||
echo ** you generally need to allocate 8 mb stack to PCRE2.
|
||||
echo ** See the 'pcre2stack' page for a discussion of PCRE2's
|
||||
echo ** stack usage.
|
||||
echo.
|
||||
)
|
||||
if [%1]==[3] (
|
||||
echo.
|
||||
echo ** Test 3 failure usually means french locale is not
|
||||
echo ** available on the system, rather than a bug or problem with PCRE2.
|
||||
echo.
|
||||
goto :eof
|
||||
)
|
||||
|
||||
set failed="yes"
|
||||
goto :eof
|
||||
)
|
||||
|
||||
echo. Passed.
|
||||
goto :eof
|
||||
|
||||
:do1
|
||||
call :runsub 1 testout "Main non-UTF, non-UCP functionality (Compatible with Perl >= 5.10)" -q
|
||||
if %jit% EQU 1 call :runsub 1 testoutjit "Test with JIT Override" -q -jit
|
||||
goto :eof
|
||||
|
||||
:do2
|
||||
call :runsub 2 testout "API, errors, internals, and non-Perl stuff" -q
|
||||
if %jit% EQU 1 call :runsub 2 testoutjit "Test with JIT Override" -q -jit
|
||||
goto :eof
|
||||
|
||||
:do3
|
||||
call :runsub 3 testout "Locale-specific features" -q
|
||||
if %jit% EQU 1 call :runsub 3 testoutjit "Test with JIT Override" -q -jit
|
||||
goto :eof
|
||||
|
||||
:do4
|
||||
if %unicode% EQU 0 (
|
||||
echo Test 4 Skipped due to absence of Unicode support.
|
||||
goto :eof
|
||||
)
|
||||
call :runsub 4 testout "UTF-%bits% and Unicode property support - (Compatible with Perl >= 5.10)" -q
|
||||
if %jit% EQU 1 call :runsub 4 testoutjit "Test with JIT Override" -q -jit
|
||||
goto :eof
|
||||
|
||||
:do5
|
||||
if %unicode% EQU 0 (
|
||||
echo Test 5 Skipped due to absence of Unicode support.
|
||||
goto :eof
|
||||
)
|
||||
call :runsub 5 testout "API, internals, and non-Perl stuff for UTF-%bits% and UCP" -q
|
||||
if %jit% EQU 1 call :runsub 5 testoutjit "Test with JIT Override" -q -jit
|
||||
goto :eof
|
||||
|
||||
:do6
|
||||
call :runsub 6 testout "DFA matching main non-UTF, non-UCP functionality" -q
|
||||
goto :eof
|
||||
|
||||
:do7
|
||||
if %unicode% EQU 0 (
|
||||
echo Test 7 Skipped due to absence of Unicode support.
|
||||
goto :eof
|
||||
)
|
||||
call :runsub 7 testout "DFA matching with UTF-%bits% and Unicode property support" -q
|
||||
goto :eof
|
||||
|
||||
:do8
|
||||
if NOT %link_size% EQU 2 (
|
||||
echo Test 8 Skipped because link size is not 2.
|
||||
goto :eof
|
||||
)
|
||||
if %unicode% EQU 0 (
|
||||
echo Test 8 Skipped due to absence of Unicode support.
|
||||
goto :eof
|
||||
)
|
||||
call :runsub 8 testout "Internal offsets and code size tests" -q
|
||||
goto :eof
|
||||
|
||||
:do9
|
||||
if NOT %bits% EQU 8 (
|
||||
echo Test 9 Skipped when running 16/32-bit tests.
|
||||
goto :eof
|
||||
)
|
||||
call :runsub 9 testout "Specials for the basic 8-bit library" -q
|
||||
if %jit% EQU 1 call :runsub 9 testoutjit "Test with JIT Override" -q -jit
|
||||
goto :eof
|
||||
|
||||
:do10
|
||||
if NOT %bits% EQU 8 (
|
||||
echo Test 10 Skipped when running 16/32-bit tests.
|
||||
goto :eof
|
||||
)
|
||||
if %unicode% EQU 0 (
|
||||
echo Test 10 Skipped due to absence of Unicode support.
|
||||
goto :eof
|
||||
)
|
||||
call :runsub 10 testout "Specials for the 8-bit library with Unicode support" -q
|
||||
if %jit% EQU 1 call :runsub 10 testoutjit "Test with JIT Override" -q -jit
|
||||
goto :eof
|
||||
|
||||
:do11
|
||||
if %bits% EQU 8 (
|
||||
echo Test 11 Skipped when running 8-bit tests.
|
||||
goto :eof
|
||||
)
|
||||
call :runsub 11 testout "Specials for the basic 16/32-bit library" -q
|
||||
if %jit% EQU 1 call :runsub 11 testoutjit "Test with JIT Override" -q -jit
|
||||
goto :eof
|
||||
|
||||
:do12
|
||||
if %bits% EQU 8 (
|
||||
echo Test 12 Skipped when running 8-bit tests.
|
||||
goto :eof
|
||||
)
|
||||
if %unicode% EQU 0 (
|
||||
echo Test 12 Skipped due to absence of Unicode support.
|
||||
goto :eof
|
||||
)
|
||||
call :runsub 12 testout "Specials for the 16/32-bit library with Unicode support" -q
|
||||
if %jit% EQU 1 call :runsub 12 testoutjit "Test with JIT Override" -q -jit
|
||||
goto :eof
|
||||
|
||||
:do13
|
||||
if %bits% EQU 8 (
|
||||
echo Test 13 Skipped when running 8-bit tests.
|
||||
goto :eof
|
||||
)
|
||||
call :runsub 13 testout "DFA specials for the basic 16/32-bit library" -q
|
||||
goto :eof
|
||||
|
||||
:do14
|
||||
if %unicode% EQU 0 (
|
||||
echo Test 14 Skipped due to absence of Unicode support.
|
||||
goto :eof
|
||||
)
|
||||
call :runsub 14 testout "DFA specials for UTF and UCP support" -q
|
||||
goto :eof
|
||||
|
||||
:do15
|
||||
call :runsub 15 testout "Non-JIT limits and other non_JIT tests" -q
|
||||
goto :eof
|
||||
|
||||
:do16
|
||||
if %jit% EQU 1 (
|
||||
echo Test 16 Skipped due to presence of JIT support.
|
||||
goto :eof
|
||||
)
|
||||
call :runsub 16 testout "JIT-specific features when JIT is not available" -q
|
||||
goto :eof
|
||||
|
||||
:do17
|
||||
if %jit% EQU 0 (
|
||||
echo Test 17 Skipped due to absence of JIT support.
|
||||
goto :eof
|
||||
)
|
||||
call :runsub 17 testout "JIT-specific features when JIT is available" -q
|
||||
goto :eof
|
||||
|
||||
:do18
|
||||
if %bits% EQU 16 (
|
||||
echo Test 18 Skipped when running 16-bit tests.
|
||||
goto :eof
|
||||
)
|
||||
if %bits% EQU 32 (
|
||||
echo Test 18 Skipped when running 32-bit tests.
|
||||
goto :eof
|
||||
)
|
||||
call :runsub 18 testout "POSIX interface, excluding UTF-8 and UCP" -q
|
||||
goto :eof
|
||||
|
||||
:do19
|
||||
if %bits% EQU 16 (
|
||||
echo Test 19 Skipped when running 16-bit tests.
|
||||
goto :eof
|
||||
)
|
||||
if %bits% EQU 32 (
|
||||
echo Test 19 Skipped when running 32-bit tests.
|
||||
goto :eof
|
||||
)
|
||||
if %unicode% EQU 0 (
|
||||
echo Test 19 Skipped due to absence of Unicode support.
|
||||
goto :eof
|
||||
)
|
||||
call :runsub 19 testout "POSIX interface with UTF-8 and UCP" -q
|
||||
goto :eof
|
||||
|
||||
:do20
|
||||
call :runsub 20 testout "Serialization tests" -q
|
||||
goto :eof
|
||||
|
||||
:do21
|
||||
if %supportBSC% EQU 0 (
|
||||
echo Test 21 Skipped due to absence of backslash-C support.
|
||||
goto :eof
|
||||
)
|
||||
call :runsub 21 testout "Backslash-C tests without UTF" -q
|
||||
call :runsub 21 testout "Backslash-C tests without UTF (DFA)" -q -dfa
|
||||
if %jit% EQU 1 call :runsub 21 testoutjit "Test with JIT Override" -q -jit
|
||||
goto :eof
|
||||
|
||||
:do22
|
||||
if %supportBSC% EQU 0 (
|
||||
echo Test 22 Skipped due to absence of backslash-C support.
|
||||
goto :eof
|
||||
)
|
||||
if %unicode% EQU 0 (
|
||||
echo Test 22 Skipped due to absence of Unicode support.
|
||||
goto :eof
|
||||
)
|
||||
call :runsub 22 testout "Backslash-C tests with UTF" -q
|
||||
if %jit% EQU 1 call :runsub 22 testoutjit "Test with JIT Override" -q -jit
|
||||
goto :eof
|
||||
|
||||
:do23
|
||||
if %supportBSC% EQU 1 (
|
||||
echo Test 23 Skipped due to presence of backslash-C support.
|
||||
goto :eof
|
||||
)
|
||||
call :runsub 23 testout "Backslash-C disabled test" -q
|
||||
goto :eof
|
||||
|
||||
:conferror
|
||||
@echo.
|
||||
@echo Either your build is incomplete or you have a configuration error.
|
||||
@echo.
|
||||
@echo If configured with cmake and executed via "make test" or the MSVC "RUN_TESTS"
|
||||
@echo project, pcre2_test.bat defines variables and automatically calls RunTest.bat.
|
||||
@echo For manual testing of all available features, after configuring with cmake
|
||||
@echo and building, you can run the built pcre2_test.bat. For best results with
|
||||
@echo cmake builds and tests avoid directories with full path names that include
|
||||
@echo spaces for source or build.
|
||||
@echo.
|
||||
@echo Otherwise, if the build dir is in a subdir of the source dir, testdata needed
|
||||
@echo for input and verification should be found automatically when (from the
|
||||
@echo location of the the built exes) you call RunTest.bat. By default RunTest.bat
|
||||
@echo runs all tests compatible with the linked pcre2 library but it can be given
|
||||
@echo a test number as an argument.
|
||||
@echo.
|
||||
@echo If the build dir is not under the source dir you can either copy your exes
|
||||
@echo to the source folder or copy RunTest.bat and the testdata folder to the
|
||||
@echo location of your built exes and then run RunTest.bat.
|
||||
@echo.
|
||||
goto :eof
|
||||
12
po/de.po
12
po/de.po
@@ -1056,8 +1056,8 @@ msgid "'for' block"
|
||||
msgstr "'for'-Block"
|
||||
|
||||
#: parser.cpp:77 parse_constants.h:265
|
||||
msgid "Block created by breakpoint"
|
||||
msgstr ""
|
||||
msgid "block created by breakpoint"
|
||||
msgstr "block created by breakpoint"
|
||||
|
||||
#: parser.cpp:82 parse_constants.h:272
|
||||
msgid "'if' conditional block"
|
||||
@@ -1097,8 +1097,8 @@ msgid "'begin' unconditional block"
|
||||
msgstr "'begin' unbedingter Block"
|
||||
|
||||
#: parser.cpp:127 parse_constants.h:325
|
||||
msgid "Block created by the . builtin"
|
||||
msgstr ""
|
||||
msgid "block created by the . builtin"
|
||||
msgstr "block created by the . builtin"
|
||||
|
||||
#: parser.cpp:132 parse_constants.h:330
|
||||
#, fuzzy
|
||||
@@ -1291,8 +1291,8 @@ msgstr ""
|
||||
|
||||
#: reader.cpp:4115
|
||||
#, c-format
|
||||
msgid "Unknown keybinding %d"
|
||||
msgstr "Unbekannte Tastenkombination %d"
|
||||
msgid "Unknown key binding 0x%X"
|
||||
msgstr "Unbekannte Tastenkombination 0x%X"
|
||||
|
||||
#: reader.cpp:4226
|
||||
#, fuzzy
|
||||
|
||||
12
po/en.po
12
po/en.po
@@ -1050,8 +1050,8 @@ msgid "'for' block"
|
||||
msgstr "“for” block"
|
||||
|
||||
#: parser.cpp:77 parse_constants.h:265
|
||||
msgid "Block created by breakpoint"
|
||||
msgstr "Block created by breakpoint"
|
||||
msgid "block created by breakpoint"
|
||||
msgstr "block created by breakpoint"
|
||||
|
||||
#: parser.cpp:82 parse_constants.h:272
|
||||
msgid "'if' conditional block"
|
||||
@@ -1090,8 +1090,8 @@ msgid "'begin' unconditional block"
|
||||
msgstr "“begin” unconditional block"
|
||||
|
||||
#: parser.cpp:127 parse_constants.h:325
|
||||
msgid "Block created by the . builtin"
|
||||
msgstr "Block created by the . builtin"
|
||||
msgid "block created by the . builtin"
|
||||
msgstr "block created by the . builtin"
|
||||
|
||||
#: parser.cpp:132 parse_constants.h:330
|
||||
msgid "event handler block"
|
||||
@@ -1284,8 +1284,8 @@ msgstr ""
|
||||
|
||||
#: reader.cpp:4115
|
||||
#, c-format
|
||||
msgid "Unknown keybinding %d"
|
||||
msgstr "Unknown keybinding %d"
|
||||
msgid "Unknown key binding 0x%X"
|
||||
msgstr "Unknown key binding 0x%X"
|
||||
|
||||
#: reader.cpp:4226
|
||||
msgid "Error while reading from file descriptor"
|
||||
|
||||
8
po/fr.po
8
po/fr.po
@@ -1069,7 +1069,7 @@ msgstr "bloc 'for'"
|
||||
|
||||
#: parser.cpp:77 parse_constants.h:265
|
||||
#, fuzzy
|
||||
msgid "Block created by breakpoint"
|
||||
msgid "block created by breakpoint"
|
||||
msgstr "bloc créé par la commande interne '.'"
|
||||
|
||||
#: parser.cpp:82 parse_constants.h:272
|
||||
@@ -1110,7 +1110,7 @@ msgid "'begin' unconditional block"
|
||||
msgstr "bloc inconditionnel 'begin'"
|
||||
|
||||
#: parser.cpp:127 parse_constants.h:325
|
||||
msgid "Block created by the . builtin"
|
||||
msgid "block created by the . builtin"
|
||||
msgstr "bloc créé par la commande interne '.'"
|
||||
|
||||
#: parser.cpp:132 parse_constants.h:330
|
||||
@@ -1306,8 +1306,8 @@ msgstr ""
|
||||
|
||||
#: reader.cpp:4115
|
||||
#, c-format
|
||||
msgid "Unknown keybinding %d"
|
||||
msgstr "Raccourci clavier inconnu %d"
|
||||
msgid "Unknown key binding 0x%X"
|
||||
msgstr "Raccourci clavier inconnu 0x%X"
|
||||
|
||||
#: reader.cpp:4226
|
||||
#, fuzzy
|
||||
|
||||
12
po/pt_BR.po
12
po/pt_BR.po
@@ -1063,8 +1063,8 @@ msgid "'for' block"
|
||||
msgstr "bloco “for”"
|
||||
|
||||
#: parser.cpp:77 parse_constants.h:265
|
||||
msgid "Block created by breakpoint"
|
||||
msgstr "Bloco criado por breakpoint"
|
||||
msgid "block created by breakpoint"
|
||||
msgstr "bloco criado por breakpoint"
|
||||
|
||||
#: parser.cpp:82 parse_constants.h:272
|
||||
msgid "'if' conditional block"
|
||||
@@ -1104,8 +1104,8 @@ msgid "'begin' unconditional block"
|
||||
msgstr "bloco não condicional “begin”"
|
||||
|
||||
#: parser.cpp:127 parse_constants.h:325
|
||||
msgid "Block created by the . builtin"
|
||||
msgstr "Bloco criado pelo builtin ."
|
||||
msgid "block created by the . builtin"
|
||||
msgstr "bloco criado pelo builtin ."
|
||||
|
||||
#: parser.cpp:132 parse_constants.h:330
|
||||
#, fuzzy
|
||||
@@ -1306,8 +1306,8 @@ msgstr ""
|
||||
|
||||
#: reader.cpp:4115
|
||||
#, c-format
|
||||
msgid "Unknown keybinding %d"
|
||||
msgstr "Atalho desconhecido %d"
|
||||
msgid "Unknown key binding 0x%X"
|
||||
msgstr "Atalho desconhecido 0x%X"
|
||||
|
||||
#: reader.cpp:4226
|
||||
msgid "Error while reading from file descriptor"
|
||||
|
||||
12
po/sv.po
12
po/sv.po
@@ -1061,8 +1061,8 @@ msgid "'for' block"
|
||||
msgstr "'for' block"
|
||||
|
||||
#: parser.cpp:77 parse_constants.h:265
|
||||
msgid "Block created by breakpoint"
|
||||
msgstr "Block skapat av det inbuggde kommandot breakpoint"
|
||||
msgid "block created by breakpoint"
|
||||
msgstr "block skapat av det inbuggde kommandot breakpoint"
|
||||
|
||||
#: parser.cpp:82 parse_constants.h:272
|
||||
msgid "'if' conditional block"
|
||||
@@ -1101,8 +1101,8 @@ msgid "'begin' unconditional block"
|
||||
msgstr "'begin' ovillkorligen exekverat block"
|
||||
|
||||
#: parser.cpp:127 parse_constants.h:325
|
||||
msgid "Block created by the . builtin"
|
||||
msgstr "Block skapat av det inbyggda kommandot '.'"
|
||||
msgid "block created by the . builtin"
|
||||
msgstr "block skapat av det inbyggda kommandot '.'"
|
||||
|
||||
#: parser.cpp:132 parse_constants.h:330
|
||||
msgid "event handler block"
|
||||
@@ -1295,8 +1295,8 @@ msgstr ""
|
||||
|
||||
#: reader.cpp:4115
|
||||
#, c-format
|
||||
msgid "Unknown keybinding %d"
|
||||
msgstr "Okänd tangentbordsbindning %d"
|
||||
msgid "Unknown key binding 0x%X"
|
||||
msgstr "Okänd tangentbords binding 0x%X"
|
||||
|
||||
#: reader.cpp:4226
|
||||
msgid "Error while reading from file descriptor"
|
||||
|
||||
12
po/zh_CN.po
12
po/zh_CN.po
@@ -1039,8 +1039,8 @@ msgid "'for' block"
|
||||
msgstr "“for” block"
|
||||
|
||||
#: parser.cpp:77 parse_constants.h:265
|
||||
msgid "Block created by breakpoint"
|
||||
msgstr "Block created by breakpoint"
|
||||
msgid "block created by breakpoint"
|
||||
msgstr "block created by breakpoint"
|
||||
|
||||
#: parser.cpp:82 parse_constants.h:272
|
||||
msgid "'if' conditional block"
|
||||
@@ -1079,8 +1079,8 @@ msgid "'begin' unconditional block"
|
||||
msgstr "“begin” unconditional block"
|
||||
|
||||
#: parser.cpp:127 parse_constants.h:325
|
||||
msgid "Block created by the . builtin"
|
||||
msgstr "Block created by the . builtin"
|
||||
msgid "block created by the . builtin"
|
||||
msgstr "block created by the . builtin"
|
||||
|
||||
#: parser.cpp:132 parse_constants.h:330
|
||||
msgid "event handler block"
|
||||
@@ -1273,8 +1273,8 @@ msgstr ""
|
||||
|
||||
#: reader.cpp:4115
|
||||
#, c-format
|
||||
msgid "Unknown keybinding %d"
|
||||
msgstr "Unknown keybinding %d"
|
||||
msgid "Unknown key binding 0x%X"
|
||||
msgstr "Unknown key binding 0x%X"
|
||||
|
||||
#: reader.cpp:4226
|
||||
msgid "Error while reading from file descriptor"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
complete -c abbr -f -s a -l add -d 'Add abbreviation'
|
||||
complete -c abbr -s e -l erase -d 'Erase abbreviation' -xa '(abbr -s | cut -d" " -f 2- | sed -e "s/ / /")'
|
||||
# Abbr keys can't contain spaces, so we can safely replace the first space with a tab
|
||||
# `abbr -s` won't work here because that already escapes
|
||||
complete -c abbr -s e -l erase -d 'Erase abbreviation' -xa '(string replace " " \t -- $fish_user_abbreviations)'
|
||||
complete -c abbr -f -s s -l show -d 'Print all abbreviations'
|
||||
complete -c abbr -f -s l -l list -d 'Print all abbreviation names'
|
||||
complete -c abbr -f -s h -l help -d 'Help'
|
||||
|
||||
6
share/completions/alsamixer.fish
Normal file
6
share/completions/alsamixer.fish
Normal file
@@ -0,0 +1,6 @@
|
||||
complete -c alsamixer -s h -l help -d "Show help"
|
||||
complete -x -c alsamixer -s c -l card -d "Soundcard number or id to use"
|
||||
complete -x -c alsamixer -s D -l device -d "Mixer device to control"
|
||||
complete -x -c alsamixer -s V -l view -d "Starting view mode" -a "playback capture all"
|
||||
complete -c alsamixer -s g -l no-color -d "Toggle the using of colors"
|
||||
complete -x -c alsamixer -s a -l abstraction -d "Mixer abstraction level" -a "none basic"
|
||||
@@ -69,7 +69,7 @@ function __fish_apm_list_packages
|
||||
apm list -b
|
||||
end
|
||||
|
||||
if apm -h ^| string match -q "Atom Package Manager*"
|
||||
if apm -h ^| string match -q "*Atom Package Manager*"
|
||||
# Completions for Atom Package Manager
|
||||
|
||||
##################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
function __fish_apt_no_subcommand --description 'Test if apt has yet to be given the subcommand'
|
||||
for i in (commandline -opc)
|
||||
if contains -- $i update upgrade full-upgrade search list install show remove edit-sources
|
||||
if contains -- $i update upgrade full-upgrade search list install show remove edit-sources purge
|
||||
return 1
|
||||
end
|
||||
end
|
||||
@@ -11,7 +11,7 @@ end
|
||||
|
||||
function __fish_apt_use_package --description 'Test if apt command should have packages as potential completion'
|
||||
for i in (commandline -opc)
|
||||
if contains -- $i contains install remove upgrade full-upgrade show search
|
||||
if contains -- $i install remove upgrade full-upgrade show search purge
|
||||
return 0
|
||||
end
|
||||
end
|
||||
@@ -63,3 +63,6 @@ __fish_apt_subcommand upgrade -r --description 'Upgrade packages'
|
||||
|
||||
# Full Upgrade
|
||||
__fish_apt_subcommand full-upgrade -r --description 'Upgrade packages, removing others when needed'
|
||||
|
||||
# Purge
|
||||
__fish_apt_subcommand purge -x --description 'Remove packages and delete their config files'
|
||||
|
||||
306
share/completions/arc.fish
Normal file
306
share/completions/arc.fish
Normal file
@@ -0,0 +1,306 @@
|
||||
# fish completion for arc
|
||||
|
||||
function __fish_arc_needs_command
|
||||
set cmd (commandline -opc)
|
||||
if not set -q cmd[2]
|
||||
return 0
|
||||
else
|
||||
set -l skip_next 1
|
||||
# Skip first word because it's "arc" or a wrapper
|
||||
for c in $cmd[2..-1]
|
||||
switch $c
|
||||
# General options that can still take a command
|
||||
case "--trace" "--no-ansi" "--ansi" "--load-phutil-library" "config" "skip-arcconfig" "arcrc-file" --conduit-{uri,token,version,timeout}
|
||||
continue
|
||||
case "*"
|
||||
echo $c
|
||||
return 1
|
||||
end
|
||||
end
|
||||
return 0
|
||||
end
|
||||
return 1
|
||||
end
|
||||
|
||||
function __fish_arc_using_command
|
||||
set -l cmd (__fish_arc_needs_command)
|
||||
test -z "$cmd"
|
||||
and return 1
|
||||
contains -- $cmd $argv
|
||||
and return 0
|
||||
end
|
||||
|
||||
### Global options
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -l trace -d 'Debugging command'
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -l no-ansi -d 'Don\'t use color or style for output'
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -l ansi -d 'Always use fromatting'
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -l no-ansi -d 'Don\'t use color or style for output'
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -l load-phutil-library -d 'Specify which libraies to load'
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -l conduit-uri -d 'Specify the Conduit URI'
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -l conduit-token -d 'Specify the Conduit token'
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -l conduit-version -d 'Force a version'
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -l conduit-timeout -d 'Sets the timeout'
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -l config -d 'Sets a config'
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -l skip-arcconfig -d 'Skip the working copy configuration file'
|
||||
complete -c arc -n '__fish_arc_needs_command' -l arcrc-file -d 'Use provided file instead of ~/.arcrc'
|
||||
|
||||
### shell-complete
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a shell-complete -d 'Implements shell completion'
|
||||
complete -f -c arc -n '__fish_arc_using_command shell-complete' -l current -d 'Current term in the argument list being completed'
|
||||
|
||||
### get-config
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a get-config -d 'Reads an arc configuration option'
|
||||
complete -f -c arc -n '__fish_arc_using_command get-config' -l verbose -d 'Show detailed information about options'
|
||||
|
||||
### download
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a download -d 'Download a file to local disk'
|
||||
complete -c arc -n '__fish_arc_using_command download' -l as -d 'Save the file with a specific name rather than the default'
|
||||
complete -f -c arc -n '__fish_arc_using_command download' -l show -d 'Write file to stdout instead of to disk'
|
||||
|
||||
### list
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a list -d 'List your open Differential revisions'
|
||||
|
||||
### lint
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a lint -d 'Run static analysis on changes to check for mistakes'
|
||||
complete -f -c arc -n '__fish_arc_using_command lint' -l engine -d 'Override configured lint engine for this project'
|
||||
complete -f -c arc -n '__fish_arc_using_command lint' -l apply-patches -d 'Apply patches suggested by lint to the working copy'
|
||||
complete -f -c arc -n '__fish_arc_using_command lint' -l severity -d 'Set minimum message severity'
|
||||
complete -f -c arc -n '__fish_arc_using_command lint' -l never-apply-patches -d 'Never apply patches suggested by lint'
|
||||
complete -f -c arc -n '__fish_arc_using_command lint' -l rev -d 'Lint changes since a specific revision'
|
||||
complete -c arc -n '__fish_arc_using_command lint' -l outfile -d 'Output the linter results to a file'
|
||||
complete -f -c arc -n '__fish_arc_using_command lint' -l lintall -d 'Show all lint warnings, not just those on changed lines'
|
||||
complete -f -c arc -n '__fish_arc_using_command lint' -l amend-all -d 'When linting git repositories, amend HEAD with all patches'
|
||||
complete -f -c arc -n '__fish_arc_using_command lint' -l everything -d 'Lint all files in the project'
|
||||
complete -f -c arc -n '__fish_arc_using_command lint' -l output -d 'Specify how results will be displayed'
|
||||
complete -f -c arc -n '__fish_arc_using_command lint' -l only-new -d 'Display only messages not present in the original code'
|
||||
complete -f -c arc -n '__fish_arc_using_command lint' -l only-changed -d 'Show lint warnings just on changed lines'
|
||||
complete -f -c arc -n '__fish_arc_using_command lint' -l amend-autofixes -d 'When linting git repositories, amend HEAD with autofix'
|
||||
|
||||
### flag
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a flag -d 'In the first form, list objects you\'ve flagged'
|
||||
complete -f -c arc -n '__fish_arc_using_command flag' -l edit -d 'Edit the flag on an object'
|
||||
complete -f -c arc -n '__fish_arc_using_command flag' -l color -d 'Set the color of a flag'
|
||||
complete -f -c arc -n '__fish_arc_using_command flag' -l clear -d 'Delete the flag on an object'
|
||||
complete -f -c arc -n '__fish_arc_using_command flag' -l note -d 'Set the note on a flag'
|
||||
|
||||
### export
|
||||
complete -c arc -n '__fish_arc_needs_command' -a export -d 'Export the local changeset to a file'
|
||||
complete -f -c arc -n '__fish_arc_using_command export' -l unified -d 'Export change as a unified patch'
|
||||
complete -f -c arc -n '__fish_arc_using_command export' -l git -d 'Export change as a git patch'
|
||||
complete -f -c arc -n '__fish_arc_using_command export' -l encoding -d 'Attempt to convert non UTF-8 patch into specified encoding'
|
||||
complete -f -c arc -n '__fish_arc_using_command export' -l arcbundle -d 'Export change as an arc bundle'
|
||||
complete -f -c arc -n '__fish_arc_using_command export' -l diff -d 'Export from Differential diff'
|
||||
complete -f -c arc -n '__fish_arc_using_command export' -l revision -d 'Export from a Differential revision'
|
||||
|
||||
### browse
|
||||
complete -c arc -n '__fish_arc_needs_command' -a browse -d 'Open a file or object in your web browser'
|
||||
complete -f -c arc -n '__fish_arc_using_command browse' -l force -d 'Open arguments as paths, even if they do not exist in the working copy'
|
||||
complete -f -c arc -n '__fish_arc_using_command browse' -l branch -d 'Default branch name to view on server'
|
||||
|
||||
### todo
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a todo -d 'Quickly create a task for yourself'
|
||||
complete -f -c arc -n '__fish_arc_using_command todo' -l cc -d 'Other users to CC on the new task'
|
||||
complete -f -c arc -n '__fish_arc_using_command todo' -l project -d 'Projects to assign to the task'
|
||||
complete -f -c arc -n '__fish_arc_using_command todo' -l browse -d 'After creating the task, open it in a web browser'
|
||||
|
||||
### linters
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a linters -d 'what they do and which versions are installed'
|
||||
complete -f -c arc -n '__fish_arc_using_command linters' -l search -d 'Search for linters'
|
||||
complete -f -c arc -n '__fish_arc_using_command linters' -l verbose -d 'Show detailed information, including options'
|
||||
|
||||
### time
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a time -d 'Show what you\'re currently tracking in Phrequent'
|
||||
|
||||
### stop
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a stop -d 'Stop tracking work in Phrequent'
|
||||
complete -f -c arc -n '__fish_arc_using_command stop' -l note -d 'A note to attach to the tracked time'
|
||||
|
||||
### alias
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a alias -d 'Create an alias'
|
||||
|
||||
### set-config
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a set-config -d 'Sets an arc configuration option'
|
||||
complete -f -c arc -n '__fish_arc_using_command set-config' -l local -d 'Set a local config value instead of a user one'
|
||||
|
||||
### start
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a start -d 'Start tracking work in Phrequent'
|
||||
|
||||
### close
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a close -d 'Close a task or otherwise update its status'
|
||||
complete -f -c arc -n '__fish_arc_using_command close' -l message -d 'Provide a comment with your status change'
|
||||
complete -f -c arc -n '__fish_arc_using_command close' -l list-statuses -d 'Show available status options and exit'
|
||||
|
||||
### land
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a land -d 'Publish an accepted revision after review'
|
||||
complete -f -c arc -n '__fish_arc_using_command land' -l preview -d 'Prints the commits that would be landed'
|
||||
complete -f -c arc -n '__fish_arc_using_command land' -l remote -d 'Push to a remote other than the default'
|
||||
complete -f -c arc -n '__fish_arc_using_command land' -l delete-remote -d 'Delete the feature branch in the remote after landing it'
|
||||
complete -f -c arc -n '__fish_arc_using_command land' -l update-with-rebase -d 'When updating the feature branch, use rebase instead of merge'
|
||||
complete -f -c arc -n '__fish_arc_using_command land' -l squash -d 'Use squash strategy'
|
||||
complete -f -c arc -n '__fish_arc_using_command land' -l keep-branch -d 'Keep the feature branch'
|
||||
complete -f -c arc -n '__fish_arc_using_command land' -l merge -d 'Use merge strategy'
|
||||
complete -f -c arc -n '__fish_arc_using_command land' -l update-with-merge -d 'When updating the feature branch, use merge instead of rebase'
|
||||
complete -f -c arc -n '__fish_arc_using_command land' -l hold -d 'Prepare the change to be pushed, but do not actually push it'
|
||||
complete -f -c arc -n '__fish_arc_using_command land' -l onto -d 'Land feature branch onto a branch other than the default'
|
||||
complete -f -c arc -n '__fish_arc_using_command land' -l revision -d 'Use the message from a specific revision'
|
||||
|
||||
### which
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a which -d 'Show which commits will be selected'
|
||||
complete -f -c arc -n '__fish_arc_using_command which' -l show-base -d 'Print base commit only and exit'
|
||||
complete -f -c arc -n '__fish_arc_using_command which' -l base -d 'Additional rules for determining base revision'
|
||||
complete -f -c arc -n '__fish_arc_using_command which' -l head -d 'Specify the end of the commit range to select'
|
||||
complete -f -c arc -n '__fish_arc_using_command which' -l any-status -d 'Show committed and abandoned revisions'
|
||||
|
||||
### bookmark
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a bookmark -d 'Alias for arc feature'
|
||||
|
||||
### amend
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a amend -d 'Amend the working copy'
|
||||
complete -f -c arc -n '__fish_arc_using_command amend' -l revision -d 'Use the message from a specific revision'
|
||||
complete -f -c arc -n '__fish_arc_using_command amend' -l show -d 'Show the amended commit message'
|
||||
|
||||
### upgrade
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a upgrade -d 'Upgrade arcanist and libphutil to the latest versions'
|
||||
|
||||
### help
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a help -d 'Shows the help'
|
||||
complete -f -c arc -n '__fish_arc_using_command help' -l full -d 'Print detailed information about each command'
|
||||
|
||||
### paste
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a paste -d 'Share and grab text using the Paste application'
|
||||
complete -f -c arc -n '__fish_arc_using_command paste' -l lang -d 'Language for syntax highlighting'
|
||||
complete -f -c arc -n '__fish_arc_using_command paste' -l json -d 'Output in JSON format'
|
||||
complete -f -c arc -n '__fish_arc_using_command paste' -l title -d 'Title for the paste'
|
||||
|
||||
### commit
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a commit -d 'Commit a revision which has been accepted by a reviewer'
|
||||
complete -f -c arc -n '__fish_arc_using_command commit' -l revision -d 'Commit a specific revision'
|
||||
complete -f -c arc -n '__fish_arc_using_command commit' -l show -d 'Show the command which would be issued'
|
||||
|
||||
### patch
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a patch -d 'Apply changes to the working copy'
|
||||
complete -f -c arc -n '__fish_arc_using_command patch' -l force -d 'Do not run any sanity checks'
|
||||
complete -f -c arc -n '__fish_arc_using_command patch' -l encoding -d 'Attempt to convert non UTF-8 patch into specified encoding'
|
||||
complete -f -c arc -n '__fish_arc_using_command patch' -l nocommit -d 'Do not commit the changes'
|
||||
complete -f -c arc -n '__fish_arc_using_command patch' -l update -d 'Update the local working copy before applying the patch'
|
||||
complete -c arc -n '__fish_arc_using_command patch' -l patch -d 'Apply changes from a git patch file or unified patch file'
|
||||
complete -f -c arc -n '__fish_arc_using_command patch' -l arcbundle -d 'Apply changes from an arc bundlej'
|
||||
complete -f -c arc -n '__fish_arc_using_command patch' -l skip-dependencies -d 'Do not apply dependencies'
|
||||
complete -f -c arc -n '__fish_arc_using_command patch' -l diff -d 'Apply changes from a Differential diff'
|
||||
complete -f -c arc -n '__fish_arc_using_command patch' -l nobranch -d 'Do not create a branch'
|
||||
complete -f -c arc -n '__fish_arc_using_command patch' -l revision -d 'Apply changes from a Differential revision'
|
||||
|
||||
### install-certificate
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a install-certificate -d 'Installs Conduit credentials into your ~/.arcc'
|
||||
|
||||
### revert
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a revert -d 'Please use backout instead'
|
||||
|
||||
### upload
|
||||
complete -c arc -n '__fish_arc_needs_command' -a upload -d 'Upload a file from local disk'
|
||||
complete -f -c arc -n '__fish_arc_using_command upload' -l json -d 'Output upload information in JSON format'
|
||||
complete -f -c arc -n '__fish_arc_using_command upload' -l temporary -d 'Mark the file as temporary'
|
||||
|
||||
### branch
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a branch -d 'Alias for arc feature'
|
||||
|
||||
### anoid
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a anoid -d 'There\'s only one way to find out'
|
||||
|
||||
### cover
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a cover -d 'Show blame for the lines you changed'
|
||||
complete -f -c arc -n '__fish_arc_using_command cover' -l rev -d 'Cover changes since a specific revision'
|
||||
|
||||
### close-revision
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a close-revision -d 'Close a revision'
|
||||
complete -f -c arc -n '__fish_arc_using_command close-revision' -l quiet -d 'Do not print a success message'
|
||||
complete -f -c arc -n '__fish_arc_using_command close-revision' -l finalize -d 'Close only if the repository is untracked and the revision is accepted'
|
||||
|
||||
### tasks
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a tasks -d 'View all assigned tasks'
|
||||
complete -f -c arc -n '__fish_arc_using_command tasks' -l status -d 'Show tasks that are open or closed, default is open'
|
||||
complete -f -c arc -n '__fish_arc_using_command tasks' -l owner -d 'Only show tasks assigned to the given username,'
|
||||
complete -f -c arc -n '__fish_arc_using_command tasks' -l unassigned -d 'Only show tasks that are not assigned'
|
||||
complete -f -c arc -n '__fish_arc_using_command tasks' -l limit -d 'Limit the amount of tasks outputted, default is all'
|
||||
complete -f -c arc -n '__fish_arc_using_command tasks' -l order -d 'Arrange tasks based on priority, created, or modified,'
|
||||
|
||||
### feature
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a feature -d 'A wrapper on \'git branch\' or \'hg bookmark'
|
||||
complete -f -c arc -n '__fish_arc_using_command feature' -l output -d 'Specify the output format'
|
||||
complete -f -c arc -n '__fish_arc_using_command feature' -l view-all -d 'Include closed and abandoned revisions'
|
||||
complete -f -c arc -n '__fish_arc_using_command feature' -l by-status -d 'Sort branches by status instead of time'
|
||||
|
||||
### unit
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a unit -d 'Run unit tests that cover specified paths'
|
||||
complete -f -c arc -n '__fish_arc_using_command unit' -l engine -d 'Override configured unit engine for this project'
|
||||
complete -f -c arc -n '__fish_arc_using_command unit' -l detailed-coverage -d 'Show a detailed coverage report on the CLI'
|
||||
complete -f -c arc -n '__fish_arc_using_command unit' -l target -d 'Record a copy of the test results on the specified build target'
|
||||
complete -f -c arc -n '__fish_arc_using_command unit' -l ugly -d 'Use uglier formatting'
|
||||
complete -f -c arc -n '__fish_arc_using_command unit' -l rev -d 'Run unit tests covering changes since a specific revision'
|
||||
complete -f -c arc -n '__fish_arc_using_command unit' -l everything -d 'Run every test'
|
||||
complete -f -c arc -n '__fish_arc_using_command unit' -l json -d 'Report results in JSON format'
|
||||
complete -f -c arc -n '__fish_arc_using_command unit' -l coverage -d 'Always enable coverage information'
|
||||
complete -f -c arc -n '__fish_arc_using_command unit' -l output -d 'Specify the output format'
|
||||
complete -f -c arc -n '__fish_arc_using_command unit' -l no-coverage -d 'Always disable coverage information'
|
||||
|
||||
### backout
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a backout -d 'Backouts on a previous commit'
|
||||
|
||||
### call-conduit
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a call-conduit -d 'Make a raw Conduit method call'
|
||||
|
||||
### diff
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a diff -d 'Generate a Differential diff or revision from local changes'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l raw-command -d 'Generate diff by executing a specified command'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l encoding -d 'Attempt to convert non UTF-8 hunks into specified encoding'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l cc -d 'When creating a revision, add CCs'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l reviewers -d 'When creating a revision, add reviewers'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l skip-staging -d 'Do not copy changes to the staging area'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l raw -d 'Read diff from stdin'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l uncommitted -d 'Suppress warning about uncommitted changes'
|
||||
complete -c arc -n '__fish_arc_using_command diff' -l message-file -d 'Read revision information from file'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l nolint -d 'Do not run lint'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l message -d 'Use the specified message when updating a revision'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l plan-changes -d 'Create or update a revision without requesting a code review'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l browse -d 'After creating a diff or revision, open it in a web browser'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l create -d 'Always create a new revision'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l cache -d 'Disable lint cache'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l use-commit-message -d 'Read revision information from a specific commit'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l only -d 'Only generate a diff, without running lint, unit tests, or other'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l skip-binaries -d 'Do not upload binaries'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l preview -d 'only create a diff'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l amend-autofixes -d 'When linting git repositories, amend HEAD with autofix'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l apply-patches -d 'Apply patches suggested by lint'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l head -d 'Specify the end of the commit range'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l verbatim -d 'When creating a revision, try to use the working copy commit'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l less-context -d 'Create a diff with a few lines of context.'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l advice -d 'Require excuse for lint advice in addition to lint warnings and errors'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l json -d 'Emit machine-readable JSON'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l update -d 'Always update a specific revision'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l ignore-unsound-tests -d 'Ignore unsound test failures without prompting'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l excuse -d 'Provide a prepared in advance excuse for any lints/tests'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l base -d 'Additional rules for determining base revision'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l no-amend -d 'Never amend commits in the working copy with lint patches'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l add-all -d 'Automatically add all unstaged and uncommitted'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l never-apply-patches -d 'Never apply patches suggested by lint'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l edit -d 'Edit revision information'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l nounit -d 'Do not run unit tests'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l lintall -d 'Raise all lint warnings'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l amend-all -d 'When linting git repositories, amend HEAD with all patches'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l no-diff -d 'Only run lint and unit tests'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l allow-untracked -d 'Skip checks for untracked files in the working copy'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l only-new -d 'Display only new lint messages'
|
||||
complete -f -c arc -n '__fish_arc_using_command diff' -l no-coverage -d 'Always disable coverage information'
|
||||
|
||||
### liberate
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a liberate -d 'Create or update a libphutil library'
|
||||
complete -f -c arc -n '__fish_arc_using_command liberate' -l remap -d 'Run the remap step of liberation'
|
||||
complete -f -c arc -n '__fish_arc_using_command liberate' -l upgrade -d 'Upgrade library to v2'
|
||||
complete -f -c arc -n '__fish_arc_using_command liberate' -l verify -d 'Run the verify step of liberation'
|
||||
complete -f -c arc -n '__fish_arc_using_command liberate' -l all -d 'Drop the module cache before liberating'
|
||||
complete -f -c arc -n '__fish_arc_using_command liberate' -l force-update -d 'Force the library map to be updated'
|
||||
complete -f -c arc -n '__fish_arc_using_command liberate' -l library-name -d 'Set the library name'
|
||||
|
||||
### version
|
||||
complete -f -c arc -n '__fish_arc_needs_command' -a version -d 'Shows the current version of arcanist'
|
||||
|
||||
@@ -17,6 +17,10 @@ complete -c asp -n "not __fish_seen_subcommand_from $commands" -a show -d "Show
|
||||
complete -c asp -n "not __fish_seen_subcommand_from $commands" -a update -d "Update given targets" -f
|
||||
complete -c asp -n "not __fish_seen_subcommand_from $commands" -a untrack -d "Remove target from local repository" -f
|
||||
|
||||
# This isn't perfect as we need a pkgbase, not a pkgname,
|
||||
# but getting those is non-trivial as built packages don't carry the information anymore
|
||||
complete -c asp -n "__fish_seen_subcommand_from $commands" -a "(__fish_print_packages)" -f
|
||||
# Remove pointless "packages/" or "community/" before package names
|
||||
# Don't show foreign packages for untrack, and show no packages at all for gc, help, disk-usage, list-{all,local}
|
||||
# This will run into the description race.
|
||||
complete -c asp -n "__fish_seen_subcommand_from checkout {diff,short,}log export list-{arches,repos} show update" -a "(asp list-all | string replace -r '.*/' '')" -f
|
||||
complete -c asp -n "__fish_seen_subcommand_from checkout {diff,short,}log export list-{arches,repos} show update untrack" -a "(asp list-local | string replace -r '.*/' '')" -f \
|
||||
-d "Locally tracked package"
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ set -l upgrade '__fish_contains_opt -s U upgrade'
|
||||
set -l aur '__fish_contains_opt -s A aursync'
|
||||
set -l abs '__fish_contains_opt -s M abssync'
|
||||
set -l save '__fish_contains_opt -s B save'
|
||||
set -l downgrade '__fish_contains_opts -s C downgrade'
|
||||
set -l downgrade '__fish_contains_opt -s C downgrade'
|
||||
set -l orphans '__fish_contains_opt -s O orphans'
|
||||
set -l logfile '__fish_contains_opt -s L viewlog'
|
||||
set -l search '__fish_contains_opt -s s search'
|
||||
@@ -156,7 +156,7 @@ complete -c aura -n $remove -s c -l cascade -d 'Also remove packages depending o
|
||||
complete -c aura -n $remove -s n -l nosave -d 'Ignore file backup designations'
|
||||
complete -c aura -n $remove -s s -l recursive -d 'Also remove dependencies of PACKAGE'
|
||||
complete -c aura -n $remove -s u -l unneeded -d 'Only remove targets not required by PACKAGE'
|
||||
|
||||
complete -c aura -n "$remove; and $argument" -xa $listinstalled -d 'Installed package'
|
||||
|
||||
# Sync options
|
||||
complete -c aura -n $sync -s c -l clean -d 'Remove [all] packages from cache'
|
||||
@@ -164,7 +164,7 @@ complete -c aura -n $sync -s l -l list -xa "$listrepos" -d 'List all packages in
|
||||
complete -c aura -n $sync -s u -l sysupgrade -d 'Upgrade all packages that are out of date'
|
||||
complete -c aura -n $sync -s w -l downloadonly -d 'Only download the target packages'
|
||||
complete -c aura -n $sync -s y -l refresh -d 'Download fresh copy of the package list'
|
||||
complete -c aura -n "$argument; and $sync" -xa "$listall $listgroups"
|
||||
complete -c aura -n "$sync; and $argument" -xa "$listall $listgroups"
|
||||
|
||||
# Upgrade options
|
||||
complete -c aura -n "$upgrade; and $argument" -xa '(__fish_complete_suffix pkg.tar.xz)' -d 'Package file'
|
||||
|
||||
@@ -1,15 +1,56 @@
|
||||
function __fish_brew_get_cmd
|
||||
for c in (commandline -opc)
|
||||
if not string match -q -- '-*' $c
|
||||
echo $c
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function __fish_brew_is_subcommand_services
|
||||
if __fish_brew_using_command services
|
||||
for action in $argv
|
||||
if __fish_brew_using_command $action 3
|
||||
return 0
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return 1
|
||||
end
|
||||
|
||||
function __fish_brew_needs_command
|
||||
set cmd (commandline -opc)
|
||||
if [ (count $cmd) -eq 1 ]
|
||||
set cmd (__fish_brew_get_cmd)
|
||||
if not set -q cmd[2]
|
||||
return 0
|
||||
end
|
||||
return 1
|
||||
end
|
||||
|
||||
function __fish_brew_needs_services_action
|
||||
if __fish_brew_using_command services
|
||||
set cmd (__fish_brew_get_cmd)
|
||||
if not set -q cmd[3]
|
||||
return 0
|
||||
end
|
||||
end
|
||||
return 1
|
||||
end
|
||||
|
||||
function __fish_brew_services
|
||||
brew services list | awk '{if (NR>1) print $1}'
|
||||
end
|
||||
|
||||
function __fish_brew_using_command
|
||||
set cmd (commandline -opc)
|
||||
if [ (count $cmd) -gt 1 ]
|
||||
if [ $argv[1] = $cmd[2] ]
|
||||
set index 2
|
||||
|
||||
if set -q argv[2]
|
||||
set index $argv[2]
|
||||
end
|
||||
|
||||
set cmd (__fish_brew_get_cmd)
|
||||
|
||||
if set -q cmd[$index]
|
||||
if [ $argv[1] = $cmd[$index] ]
|
||||
return 0
|
||||
end
|
||||
end
|
||||
@@ -17,9 +58,16 @@ function __fish_brew_using_command
|
||||
end
|
||||
|
||||
function __fish_brew_formulae
|
||||
set -l formuladir (brew --repository)/Library/Formula/
|
||||
# __fish_complete_suffix .rb
|
||||
ls $formuladir/*.rb | sed 's/.rb$//' | sed "s|^$formuladir||"
|
||||
# list all local formula, do not use `brew search some_text` against searching online
|
||||
# TODO fix the problem with `tap-pin`, tap-pin will modify the priority
|
||||
# If you pin your custom tap for VIM, you should
|
||||
# `brew install homebrew/core/vim` to install VIM from `core` repo
|
||||
# `brew install vim` to install VIM from more prior repo
|
||||
# but `brew search` won't change display for custom VIM and core VIM
|
||||
# 'vim' for core VIM
|
||||
# 'custUser/custRepo/vim' for more prior VIM
|
||||
# more info: https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/brew-tap.md#formula-duplicate-names
|
||||
brew search
|
||||
end
|
||||
|
||||
function __fish_brew_installed_formulas
|
||||
@@ -200,6 +248,16 @@ complete -f -c brew -n '__fish_brew_using_command search' -l fink -d 'Search on
|
||||
complete -f -c brew -n '__fish_brew_using_command -S' -l macports -d 'Search on MacPorts'
|
||||
complete -f -c brew -n '__fish_brew_using_command -S' -l fink -d 'Search on Fink'
|
||||
|
||||
# services
|
||||
complete -f -c brew -n '__fish_brew_needs_command' -a services -d 'Manage Homebrew services'
|
||||
complete -f -c brew -n '__fish_brew_needs_services_action' -a cleanup -d 'Get rid of stale services and unused plist'
|
||||
complete -f -c brew -n '__fish_brew_needs_services_action' -a list -d 'List all services managed by Homebrew'
|
||||
complete -f -c brew -n '__fish_brew_needs_services_action' -a restart -d 'Gracefully restart a service'
|
||||
complete -f -c brew -n '__fish_brew_needs_services_action' -a start -d 'Start a service'
|
||||
complete -f -c brew -n '__fish_brew_needs_services_action' -a stop -d 'Stop a service'
|
||||
complete -f -c brew -n '__fish_brew_is_subcommand_services restart start stop' -a '(__fish_brew_services)' -d 'formula'
|
||||
complete -f -c brew -n '__fish_brew_is_subcommand_services restart start stop' -l all -d 'All Services'
|
||||
|
||||
# sh
|
||||
complete -f -c brew -n '__fish_brew_needs_command' -a sh -d 'Instantiate a Homebrew build enviornment'
|
||||
complete -f -c brew -n '__fish_brew_using_command sh' -l env=std -d 'Use stdenv instead of superenv'
|
||||
@@ -275,4 +333,3 @@ complete -f -c brew -n '__fish_brew_needs_command' -n '__fish_brew_using_command
|
||||
# --cellar
|
||||
complete -f -c brew -n '__fish_brew_needs_command' -l cellar -d 'Display Homebrew\'s Cellar path'
|
||||
complete -f -c brew -n '__fish_brew_using_command --cellar' -a '(__fish_brew_formulae)' -d 'Display formula\'s install path in Cellar'
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@ complete -f -n '__fish_bundle_no_command' -c bundle -a 'viz' --description 'Gene
|
||||
complete -f -n '__fish_bundle_using_command viz' -c bundle -s f -l file --description 'The name to use for the generated file (see format option)'
|
||||
complete -f -n '__fish_bundle_using_command viz' -c bundle -s v -l version --description 'Show each gem version'
|
||||
complete -f -n '__fish_bundle_using_command viz' -c bundle -s r -l requirements --description 'Show the version of each required dependency'
|
||||
complete -f -n '__fish_bundle_using_command viz' -c bundle -s F -l format --description 'Output a specific format (png, jpg, svg, dot, ...)'
|
||||
complete -f -n '__fish_bundle_using_command viz' -c bundle -s F -l format --description 'Output a specific format (png, jpg, svg, dot, …)'
|
||||
|
||||
# Init
|
||||
complete -f -n '__fish_bundle_no_command' -c bundle -a 'init' --description 'Generate a simple Gemfile, placed in the current directory'
|
||||
|
||||
@@ -141,8 +141,8 @@ complete -f -c busctl -n "__fish_seen_subcommand_from list" -l show-machine -d '
|
||||
complete -x -c busctl -n "__fish_seen_subcommand_from list status" -l augment-creds -a "yes no"
|
||||
complete -f -c busctl -l user
|
||||
complete -f -c busctl -l system
|
||||
complete -f -c busctl -s H -l host= -a "(__fish_print_hostnames)"
|
||||
complete -f -c busctl -s M -l machine= -a "(__fish_systemd_machines)"
|
||||
complete -f -c busctl -s H -l host -a "(__fish_print_hostnames)"
|
||||
complete -f -c busctl -s M -l machine -a "(__fish_systemd_machines)"
|
||||
complete -f -c busctl -l no-pager
|
||||
complete -f -c busctl -l no-legend
|
||||
complete -f -c busctl -s h -l help
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user