Rename resolved→done (#1-4, #11), closed→done (#13, #18), open (post-core)→open (#7), mark #9 as superseded by #21.
906 B
906 B
04 — Implement argv parsing (tokenize command strings)
Status: done Blocked by: #01 Blocks: #06
Since we're not using a shell, we need our own command-line tokenizer to split a command string into argv[].
Must handle
- Simple whitespace splitting:
ls -l /tmp→["ls", "-l", "/tmp"] - Single-quoted strings:
echo 'hello world'→["echo", "hello world"] - Double-quoted strings with escapes:
echo "hello \"world\"" - Backslash escaping outside quotes:
echo hello\ world - Mixed quoting:
echo "it's a test"
May handle (depending on #01 decisions)
- Variable/expression interpolation:
echo $HOMEorecho ${dir} - Glob expansion:
ls *.lua(could also defer to a later issue)
Implementation
- Standalone C module, likely
lcmd_parse.cor part oflcmd.c - Returns a
char **argv(NULL-terminated) + argc count - Must handle memory allocation/cleanup