Commit graph

73 commits

Author SHA1 Message Date
4116c2d92f
wordlist: add destroy_idx and pop_idx functions 2025-03-10 16:08:59 +01:00
a20ea8315d
redirection parsing: handle > at start of wordlist 2025-03-10 15:10:18 +01:00
cf517bb7f8
redirection parsing: define types in own files 2025-03-10 15:10:18 +01:00
06ebcf132a
redirection parsing: handle commands with no redirections 2025-03-10 15:10:18 +01:00
d30db395a0 cmdlist parsing: ensure parsing works for a single simple command 2025-03-10 13:22:29 +00:00
4c37ec5188 tests: put test back in a sensible order 2025-03-10 13:22:29 +00:00
e6a9010362 tests: make leak_check do nothing when compiled without LSAN 2025-03-10 13:22:29 +00:00
7102998dce leak: resolve the rest of the memory leaks 2025-03-10 13:22:29 +00:00
69b247697c leak: resolve one memory leak 2025-03-10 13:22:29 +00:00
5bf4bb8d6a tests: do lsan test after each test case 2025-03-10 13:22:29 +00:00
9ffde46adc tests: show test function in output 2025-03-10 13:22:29 +00:00
3778d0a7ee cmdlist_from_wordlist: make a copy of a wordlist 2025-03-10 13:22:29 +00:00
14f7e523d3 debug: remove debug prints 2025-03-10 13:22:29 +00:00
ccbd89708f tests: add simple reproducer for cmdlist use-after-free 2025-03-10 13:22:29 +00:00
d303f22b73 wip: tests: show more debug information 2025-03-10 13:22:29 +00:00
c57a4a69a7 WIP: parse command list tests: assert that invalid pipeline returns null 2025-03-10 13:22:29 +00:00
5fceb4713d command list refactor: rename t_command_list to t_cmdlist 2025-03-10 13:22:29 +00:00
659c9f57ff command list parse: different operators 2025-03-10 13:22:29 +00:00
1c00020c86 command list parse: handle triple pipeline separated with || 2025-03-10 13:22:29 +00:00
e6dd1d6a56 command list parse: handle two commands separated by || 2025-03-10 13:22:29 +00:00
36fa53131a command list parse: handle single pipeline 2025-03-10 13:22:29 +00:00
3b36a77d34 command list parse: handle two commands separated by && 2025-03-10 13:22:29 +00:00
eb21f00156 command list parsing: handle empty input
This is really not that usefull, it is more to setup the groundwork
2025-03-10 13:22:29 +00:00
836e24bcb7
quote removal: ensure quotes in middle of word are correctly handled 2025-03-07 11:25:27 +01:00
94e55d1d8b
quote removal: handle nested quotes 2025-03-07 11:21:13 +01:00
a3d2143b8b
quote removal: handle non-nested quotes 2025-03-07 11:15:30 +01:00
7b76c1a71f
quote removal: if given null, return null 2025-03-07 11:09:32 +01:00
0fecded23b
quote removal: handle strings with no quotes 2025-03-07 11:09:21 +01:00
4f6910eccd
quote detection: ensure the rest of the test cases pass 2025-03-06 17:21:09 +01:00
f60e922680
quote marking: ensure that $ detection does not interfere 2025-03-06 17:21:09 +01:00
33fc88eeed
quote marking: ensure that operator detection does not interfere 2025-03-06 17:21:08 +01:00
3a341e601d
quote marking: ensure that mixed quotes also work 2025-03-06 17:21:08 +01:00
616cb0bc09
quote marking: ensure that double quotes also work 2025-03-06 17:21:08 +01:00
c1f337af01
quote marking: single-quotes are marked 2025-03-06 17:21:08 +01:00
14dbabd6ea
testutil: add leak check function 2025-03-06 17:20:52 +01:00
e2b6f6f943
testutil: more clear output of assert_strequal
the strings are one above the other, and aligned correctly
2025-03-06 17:20:52 +01:00
2c5d5abdc4
quote marking: no quotes lead to marker filled with spaces 2025-03-06 17:20:52 +01:00
4b403c4bf3
pipeline parse: reject hanging pipe at end
This rejects commands such as

echo hello | cat -e |

I also updated the doc this time
2025-02-28 13:15:11 +01:00
a8711568c1
pipeline parse: detect and reject pipe at start of command 2025-02-24 15:22:40 +01:00
c9f8c5a4f9
pipeline: reject repetitions of '|' token 2025-02-24 14:56:16 +01:00
68e923c09e
pipeline: ensure that parsing works for three and four commands 2025-02-24 14:56:16 +01:00
5f1485d1d5
pipeline: parse basic pipeline commands with two commands 2025-02-24 14:56:16 +01:00
256a8f5f9b
pipeline: handle parsing of single-command pipelines 2025-02-24 14:56:16 +01:00
695596fde2
wordsplit flags: also set W_HASDOLLAR if dollar is found in double quotes
Fixes #15
2025-02-24 14:51:26 +01:00
a50b2f6d74
simple_cmd: actually contain words 2025-02-21 12:52:27 +01:00
49d7a2b9ff
simple_cmd: initial setup of create/destroy functions 2025-02-21 12:44:17 +01:00
abf37eb7f5
wordsplit: set quote and dquote flags 2025-02-20 15:39:03 +01:00
ac8475c71d
wordsplit: implemet rule for variable substitution detection (rule 5) 2025-02-20 15:00:48 +01:00
f92763e479
wordsplit: handle operators 2025-02-20 15:00:32 +01:00
558ddb4096
wordsplit: return error for unclosed quotes 2025-02-20 15:00:32 +01:00