. -- PREFIX 'm' -- PREFIX 'opy/doc' -- PREFIX o -- PREFIX nonexistent/ -- PREFIX README. -- PREFIX core -- PREFIX asdl/R -- PREFIX opy/doc -- PREFIX opy/doc/ -- PREFIX /bi -- PREFIX /tmp/oil_comp_test/ -- PREFIX ./o -- PREFIX i ..Running completion function 'f' with 3 arguments comp.first '', commands_changed: ... --- Case 3: 'noflags foo:bar --color=auto\t' with flags [] [] ['../oil/'] py <core.completion.UserSpec object at 0x7fe0f715fdd0> rb (None, None) words: (w <Lit_Chars noflags>) (w <Lit_Chars foo> <Lit_Colon ":"> <Lit_Chars bar>) (w <Lit_Chars --color> <Lit_Equals "="> <Lit_Chars auto> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars noflags> <WS_Space " "> <Lit_Chars foo> <Lit_Colon ":"> <Lit_Chars bar> <WS_Space " "> <Lit_Chars --color> <Lit_Equals "="> <Lit_Chars auto> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'noflags foo:bar --color=auto' rl_slice from byte 0 to 28: 'noflags foo:bar --color=auto' Completing words partial_argv: [noflags,foo:bar,--color=auto] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:7 col:16 line:(SourceLine line_num:1 content:"noflags foo:bar --color=auto" src:(source.MainFile path:"<test_lib>") ) tval:--color ) (Token id:Lit_Equals length:1 col:23 line:...0x7fe0f7099578 tval:"=") (Token id:Lit_Chars length:4 col:24 line:...0x7fe0f7099578 tval:auto) (Token id:Lit_CompDummy length:0 col:28 line:...0x7fe0f7099578 tval:"") ] ) ] display_pos 16 Completing 'noflags foo:bar --color=auto' ... (Ctrl-C to cancel) Running completion function 'my_complete' with 3 arguments ok comp.first 'noflags', commands_changed: Found 1 match for 'noflags foo:bar --color=auto' in 7 ms matches = ['noflags foo:bar dummy '] --- Case 4: 'noflags "foo:bar|" --color=auto\t' with flags [] words: (w <Lit_Chars noflags>) (w (DQ <Lit_Chars "foo:bar|">)) (w <Lit_Chars --color> <Lit_Equals "="> <Lit_Chars auto> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars noflags> <WS_Space " "> <Left_DoubleQuote "\""> <Lit_Chars "foo:bar|"> <Right_DoubleQuote "\""> <WS_Space " "> <Lit_Chars --color> <Lit_Equals "="> <Lit_Chars auto> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'noflags "foo:bar|" --color=auto' rl_slice from byte 0 to 31: 'noflags "foo:bar|" --color=auto' Completing words partial_argv: [noflags,foo:bar|,--color=auto] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:7 col:19 line:(SourceLine line_num:1 content:"noflags \"foo:bar|\" --color=auto" src:(source.MainFile path:"<test_lib>") ) tval:--color ) (Token id:Lit_Equals length:1 col:26 line:...0x7fe0f7061b50 tval:"=") (Token id:Lit_Chars length:4 col:27 line:...0x7fe0f7061b50 tval:auto) (Token id:Lit_CompDummy length:0 col:31 line:...0x7fe0f7061b50 tval:"") ] ) ] display_pos 19 Completing 'noflags "foo:bar|" --color=auto' ... (Ctrl-C to cancel) Running completion function 'my_complete' with 3 arguments ok Non-fatal assertion failed: COMP_WORDS: Expected noflags "foo:bar|" --color = auto, got noflags foo : bar| --color = auto Non-fatal assertion failed: COMP_CWORD: Expected 4, got 6 Non-fatal assertion failed: COMP_WORDS: Expected noflags "foo:bar|" --color = auto, got noflags foo : bar| --color = auto Non-fatal assertion failed: cword: Expected 4, got 6 comp.first 'noflags', commands_changed: Found 1 match for 'noflags "foo:bar|" --color=auto' in 4 ms matches = ['noflags "foo:bar|" dummy '] --- Case 5: 'noflags "foo:bar|\t' with flags [] words: redirects: tokens: <Lit_Chars noflags> <WS_Space " "> <Left_DoubleQuote "\""> <Lit_Chars "foo:bar|"> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'noflags "foo:bar|' rl_slice from byte 0 to 17: 'noflags "foo:bar|' Didn't find anything to complete matches = [] --- Case 6: 's foo:bar --color=auto\t' with flags ['-s'] words: (w <Lit_Chars s>) (w <Lit_Chars foo> <Lit_Colon ":"> <Lit_Chars bar>) (w <Lit_Chars --color> <Lit_Equals "="> <Lit_Chars auto> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars s> <WS_Space " "> <Lit_Chars foo> <Lit_Colon ":"> <Lit_Chars bar> <WS_Space " "> <Lit_Chars --color> <Lit_Equals "="> <Lit_Chars auto> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 's foo:bar --color=auto' rl_slice from byte 0 to 22: 's foo:bar --color=auto' Completing words partial_argv: [s,foo:bar,--color=auto] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:7 col:10 line:(SourceLine line_num:1 content:"s foo:bar --color=auto" src:(source.MainFile path:"<test_lib>") ) tval:--color ) (Token id:Lit_Equals length:1 col:17 line:...0x7fe0f7083aa0 tval:"=") (Token id:Lit_Chars length:4 col:18 line:...0x7fe0f7083aa0 tval:auto) (Token id:Lit_CompDummy length:0 col:22 line:...0x7fe0f7083aa0 tval:"") ] ) ] display_pos 10 Completing 's foo:bar --color=auto' ... (Ctrl-C to cancel) Running completion function 'my_complete' with 3 arguments ok comp.first 's', commands_changed: Found 1 match for 's foo:bar --color=auto' in 7 ms matches = ['s foo:bar dummy '] --- Case 7: 's foo:bar --color auto\t' with flags ['-s'] words: (w <Lit_Chars s>) (w <Lit_Chars foo> <Lit_Colon ":"> <Lit_Chars bar>) (w <Lit_Chars --color>) (w <Lit_Chars auto> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars s> <WS_Space " "> <Lit_Chars foo> <Lit_Colon ":"> <Lit_Chars bar> <WS_Space " "> <Lit_Chars --color> <WS_Space " "> <Lit_Chars auto> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 's foo:bar --color auto' rl_slice from byte 0 to 22: 's foo:bar --color auto' Completing words partial_argv: [s,foo:bar,--color,auto] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:4 col:18 line:(SourceLine line_num:1 content:"s foo:bar --color auto" src:(source.MainFile path:"<test_lib>") ) tval:auto ) (Token id:Lit_CompDummy length:0 col:22 line:...0x7fe0f7083aa0 tval:"") ] ) ] display_pos 18 Completing 's foo:bar --color auto' ... (Ctrl-C to cancel) Running completion function 'my_complete' with 3 arguments ok comp.first 's', commands_changed: Found 1 match for 's foo:bar --color auto' in 7 ms matches = ['s foo:bar --color dummy '] --- Case 8: 'n foo:bar --color=auto\t' with flags ['-n', '='] words: (w <Lit_Chars n>) (w <Lit_Chars foo> <Lit_Colon ":"> <Lit_Chars bar>) (w <Lit_Chars --color> <Lit_Equals "="> <Lit_Chars auto> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars n> <WS_Space " "> <Lit_Chars foo> <Lit_Colon ":"> <Lit_Chars bar> <WS_Space " "> <Lit_Chars --color> <Lit_Equals "="> <Lit_Chars auto> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'n foo:bar --color=auto' rl_slice from byte 0 to 22: 'n foo:bar --color=auto' Completing words partial_argv: [n,foo:bar,--color=auto] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:7 col:10 line:(SourceLine line_num:1 content:"n foo:bar --color=auto" src:(source.MainFile path:"<test_lib>") ) tval:--color ) (Token id:Lit_Equals length:1 col:17 line:...0x7fe0f7083aa0 tval:"=") (Token id:Lit_Chars length:4 col:18 line:...0x7fe0f7083aa0 tval:auto) (Token id:Lit_CompDummy length:0 col:22 line:...0x7fe0f7083aa0 tval:"") ] ) ] display_pos 10 Completing 'n foo:bar --color=auto' ... (Ctrl-C to cancel) Running completion function 'my_complete' with 3 arguments ok comp.first 'n', commands_changed: Found 1 match for 'n foo:bar --color=auto' in 7 ms matches = ['n foo:bar dummy '] --- Case 9: 'n2 foo:bar --color=auto\t' with flags ['-n', ':='] words: (w <Lit_Chars n2>) (w <Lit_Chars foo> <Lit_Colon ":"> <Lit_Chars bar>) (w <Lit_Chars --color> <Lit_Equals "="> <Lit_Chars auto> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars n2> <WS_Space " "> <Lit_Chars foo> <Lit_Colon ":"> <Lit_Chars bar> <WS_Space " "> <Lit_Chars --color> <Lit_Equals "="> <Lit_Chars auto> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'n2 foo:bar --color=auto' rl_slice from byte 0 to 23: 'n2 foo:bar --color=auto' Completing words partial_argv: [n2,foo:bar,--color=auto] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:7 col:11 line:(SourceLine line_num:1 content:"n2 foo:bar --color=auto" src:(source.MainFile path:"<test_lib>") ) tval:--color ) (Token id:Lit_Equals length:1 col:18 line:...0x7fe0f6ffe628 tval:"=") (Token id:Lit_Chars length:4 col:19 line:...0x7fe0f6ffe628 tval:auto) (Token id:Lit_CompDummy length:0 col:23 line:...0x7fe0f6ffe628 tval:"") ] ) ] display_pos 11 Completing 'n2 foo:bar --color=auto' ... (Ctrl-C to cancel) Running completion function 'my_complete' with 3 arguments ok comp.first 'n2', commands_changed: Found 1 match for 'n2 foo:bar --color=auto' in 6 ms matches = ['n2 foo:bar dummy '] Ran 10 cases . words: (w <Lit_Chars ls>) (w <Lit_CompDummy "">) redirects: tokens: <Lit_Chars ls> <WS_Space " "> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'ls ' rl_slice from byte 0 to 3: 'ls ' Completing words partial_argv: [ls,] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_CompDummy length:0 col:3 line:(SourceLine line_num:1 content:"ls " src:(source.MainFile path:"<test_lib>") ) tval:"" ) ] ) ] display_pos 3 Completing 'ls ' ... (Ctrl-C to cancel) Found 2 matches for 'ls ' in 0 ms words: (w <Lit_Chars ll>) (w <Lit_CompDummy "">) redirects: tokens: <Lit_Chars ll> <WS_Space " "> <Lit_CompDummy ""> <Eof_Real ""> alias_words: (w <Lit_Chars ls>) (w <Lit_Chars -l>) line: 'll ' rl_slice from byte 0 to 3: 'll ' Completing words partial_argv: [ll,] alias_words: [[(CompoundWord parts:[ (Token id:Lit_Chars length:2 col:0 line:(SourceLine line_num:1 content:"ls -l " src:(source.Alias argv0:ll argv0_loc:(loc.Word w:(CompoundWord parts:[ (Token id:Lit_Chars length:2 col:0 line:(SourceLine line_num:1 content:"ll " src:(source.MainFile path:"<test_lib>") ) tval:ll ) ] ) ) ) ) ) ] ) , (CompoundWord parts:[ (Token id:Lit_Chars length:2 col:3 line:(SourceLine line_num:1 content:"ls -l " src:(source.Alias argv0:ll argv0_loc:(loc.Word w:(CompoundWord parts:[ (Token id:Lit_Chars length:2 col:0 line:(SourceLine line_num:1 content:"ll " src:(source.MainFile path:"<test_lib>") ) tval:ll ) ] ) ) ) ) ) ] ) ]] alias_first: ls words[-1]: [(CompoundWord parts:[ (Token id:Lit_CompDummy length:0 col:3 line:(SourceLine line_num:1 content:"ll " src:(source.MainFile path:"<test_lib>") ) tval:"" ) ] ) ] display_pos 3 Completing 'll ' ... (Ctrl-C to cancel) Found 2 matches for 'll ' in 0 ms words: (w <Lit_Chars ll_classify>) (w <Lit_CompDummy "">) redirects: tokens: <Lit_Chars ll_classify> <WS_Space " "> <Lit_CompDummy ""> <Eof_Real ""> alias_words: (w <Lit_Chars ls>) (w <Lit_Chars -l>) (w <Lit_Chars --classify>) line: 'll_classify ' rl_slice from byte 0 to 12: 'll_classify ' Completing words partial_argv: [ll_classify,] alias_words: [[(CompoundWord parts:[ (Token id:Lit_Chars length:2 col:0 line:(SourceLine line_num:1 content:"ls -l --classify" src:(source.Alias argv0:ll argv0_loc:(loc.Word w:(CompoundWord parts:[ (Token id:Lit_Chars length:2 col:0 line:(SourceLine line_num:1 content:"ll --classify " src:(source.Alias argv0:ll_classify argv0_loc:(loc.Word w:(CompoundWord parts:[ (Token id:Lit_Chars length:11 col:0 line:(SourceLine line_num:1 content:"ll_classify " src:(source.MainFile path:"<test_lib>") ) tval:ll_classify ) ] ) ) ) ) ) ] ) ) ) ) ) ] ) , (CompoundWord parts:[ (Token id:Lit_Chars length:2 col:3 line:(SourceLine line_num:1 content:"ls -l --classify" src:(source.Alias argv0:ll argv0_loc:(loc.Word w:(CompoundWord parts:[ (Token id:Lit_Chars length:2 col:0 line:(SourceLine line_num:1 content:"ll --classify " src:(source.Alias argv0:ll_classify argv0_loc:(loc.Word w:(CompoundWord parts:[ (Token id:Lit_Chars length:11 col:0 line:(SourceLine line_num:1 content:"ll_classify " src:(source.MainFile path:"<test_lib>") ) tval:ll_classify ) ] ) ) ) ) ) ] ) ) ) ) ) ] ) , (CompoundWord parts:[ (Token id:Lit_Chars length:10 col:6 line:(SourceLine line_num:1 content:"ls -l --classify" src:(source.Alias argv0:ll argv0_loc:(loc.Word w:(CompoundWord parts:[ (Token id:Lit_Chars length:2 col:0 line:(SourceLine line_num:1 content:"ll --classify " src:(source.Alias argv0:ll_classify argv0_loc:(loc.Word w:(CompoundWord parts:[ (Token id:Lit_Chars length:11 col:0 line:(SourceLine line_num:1 content:"ll_classify " src:(source.MainFile path:"<test_lib>") ) tval:ll_classify ) ] ) ) ) ) ) ] ) ) ) ) ) ] ) ]] alias_first: ls words[-1]: [(CompoundWord parts:[ (Token id:Lit_CompDummy length:0 col:12 line:(SourceLine line_num:1 content:"ll_classify " src:(source.MainFile path:"<test_lib>") ) tval:"" ) ] ) ] display_pos 12 Completing 'll_classify ' ... (Ctrl-C to cancel) Found 2 matches for 'll_classify ' in 0 ms words: (w <Lit_Chars ll_trailing>) (w <Lit_CompDummy "">) redirects: tokens: <Lit_Chars ll_trailing> <WS_Space " "> <Lit_CompDummy ""> <Eof_Real ""> alias_words: (w <Lit_Chars ls>) (w <Lit_Chars -l>) line: 'll_trailing ' rl_slice from byte 0 to 12: 'll_trailing ' Completing words partial_argv: [ll_trailing,] alias_words: [[(CompoundWord parts:[ (Token id:Lit_Chars length:2 col:0 line:(SourceLine line_num:1 content:"ls -l " src:(source.Alias argv0:ll_trailing argv0_loc:(loc.Word w:(CompoundWord parts:[ (Token id:Lit_Chars length:11 col:0 line:(SourceLine line_num:1 content:"ll_trailing " src:(source.MainFile path:"<test_lib>") ) tval:ll_trailing ) ] ) ) ) ) ) ] ) , (CompoundWord parts:[ (Token id:Lit_Chars length:2 col:3 line:(SourceLine line_num:1 content:"ls -l " src:(source.Alias argv0:ll_trailing argv0_loc:(loc.Word w:(CompoundWord parts:[ (Token id:Lit_Chars length:11 col:0 line:(SourceLine line_num:1 content:"ll_trailing " src:(source.MainFile path:"<test_lib>") ) tval:ll_trailing ) ] ) ) ) ) ) ] ) ]] alias_first: ls words[-1]: [(CompoundWord parts:[ (Token id:Lit_CompDummy length:0 col:12 line:(SourceLine line_num:1 content:"ll_trailing " src:(source.MainFile path:"<test_lib>") ) tval:"" ) ] ) ] display_pos 12 Completing 'll_trailing ' ... (Ctrl-C to cancel) Found 2 matches for 'll_trailing ' in 0 ms words: (w <Lit_Chars ll_own_completion>) (w <Lit_CompDummy "">) redirects: tokens: <Lit_Chars ll_own_completion> <WS_Space " "> <Lit_CompDummy ""> <Eof_Real ""> alias_words: (w <Lit_Chars ls>) (w <Lit_Chars -l>) line: 'll_own_completion ' rl_slice from byte 0 to 18: 'll_own_completion ' Completing words partial_argv: [ll_own_completion,] alias_words: [[(CompoundWord parts:[ (Token id:Lit_Chars length:2 col:0 line:(SourceLine line_num:1 content:"ls -l " src:(source.Alias argv0:ll_own_completion argv0_loc:(loc.Word w:(CompoundWord parts:[ (Token id:Lit_Chars length:17 col:0 line:(SourceLine line_num:1 content:"ll_own_completion " src:(source.MainFile path:"<test_lib>") ) tval:ll_own_completion ) ] ) ) ) ) ) ] ) , (CompoundWord parts:[ (Token id:Lit_Chars length:2 col:3 line:(SourceLine line_num:1 content:"ls -l " src:(source.Alias argv0:ll_own_completion argv0_loc:(loc.Word w:(CompoundWord parts:[ (Token id:Lit_Chars length:17 col:0 line:(SourceLine line_num:1 content:"ll_own_completion " src:(source.MainFile path:"<test_lib>") ) tval:ll_own_completion ) ] ) ) ) ) ) ] ) ]] alias_first: ls words[-1]: [(CompoundWord parts:[ (Token id:Lit_CompDummy length:0 col:18 line:(SourceLine line_num:1 content:"ll_own_completion " src:(source.MainFile path:"<test_lib>") ) tval:"" ) ] ) ] display_pos 18 Completing 'll_own_completion ' ... (Ctrl-C to cancel) Found 2 matches for 'll_own_completion ' in 0 ms . words: (w <Lit_Chars gre> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars gre> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'gre' rl_slice from byte 0 to 3: 'gre' Completing words partial_argv: [gre] alias_words: [[]] ** DISPLAY_POS = 0 Completing 'gre' ... (Ctrl-C to cancel) Found 1 match for 'gre' in 0 ms words: (w <Lit_Chars gre> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars echo> <WS_Space " "> <Left_DollarParen "$("> <Lit_Chars gre> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'echo $(gre' rl_slice from byte 0 to 10: 'echo $(gre' Completing words partial_argv: [gre] alias_words: [[]] ** DISPLAY_POS = 7 Completing 'echo $(gre' ... (Ctrl-C to cancel) Found 1 match for 'echo $(gre' in 0 ms words: (w <Lit_Chars gre> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars echo> <WS_Space " "> <Left_Backtick "`"> <Lit_Chars gre> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'echo `gre' rl_slice from byte 0 to 9: 'echo `gre' Completing words partial_argv: [gre] alias_words: [[]] ** DISPLAY_POS = 6 Completing 'echo `gre' ... (Ctrl-C to cancel) Found 1 match for 'echo `gre' in 0 ms words: (w <Lit_Chars grep>) (w <Lit_Chars f> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars echo> <WS_Space " "> <Left_Backtick "`"> <Lit_Chars grep> <WS_Space " "> <Lit_Chars f> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'echo `grep f' rl_slice from byte 0 to 12: 'echo `grep f' Completing words partial_argv: [grep,f] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:11 line:(SourceLine line_num:1 content:"echo `grep f" src:(source.MainFile path:"<test_lib>") ) tval:f ) (Token id:Lit_CompDummy length:0 col:12 line:...0x7fe0f6ffe0a8 tval:"") ] ) ] display_pos 11 Completing 'echo `grep f' ... (Ctrl-C to cancel) Found 2 matches for 'echo `grep f' in 0 ms .<Api 'echo ~r' 0-7> words: (w <Lit_Chars echo>) (w <Lit_Tilde "~"> <Lit_Chars r> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars echo> <WS_Space " "> <Lit_Tilde "~"> <Lit_Chars r> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'echo ~r' rl_slice from byte 0 to 7: 'echo ~r' <Api 'echo ~' 0-6> words: (w <Lit_Chars echo>) (w <Lit_Tilde "~"> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars echo> <WS_Space " "> <Lit_Tilde "~"> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'echo ~' rl_slice from byte 0 to 6: 'echo ~' words: (w <Lit_Chars echo>) (w <Lit_Chars a> <Lit_Tilde "~"> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars echo> <WS_Space " "> <Lit_Chars a> <Lit_Tilde "~"> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'echo a~' rl_slice from byte 0 to 7: 'echo a~' Completing words partial_argv: [echo,a~] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:5 line:(SourceLine line_num:1 content:"echo a~" src:(source.MainFile path:"<test_lib>") ) tval:a ) (Token id:Lit_Tilde length:1 col:6 line:...0x7fe0f6ffe470 tval:"~") (Token id:Lit_CompDummy length:0 col:7 line:...0x7fe0f6ffe470 tval:"") ] ) ] display_pos 5 Completing 'echo a~' ... (Ctrl-C to cancel) Found 0 matches for 'echo a~' in 0 ms . words: (w <Lit_Chars cat>) redirects: (Redir op:<Redir_Less "<"> loc:(redir_loc.Fd fd:0) arg:(w <Lit_Chars b> <Lit_CompDummy "">) ) tokens: <Lit_Chars cat> <WS_Space " "> <Redir_Less "<"> <WS_Space " "> <Lit_Chars b> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'cat < b' rl_slice from byte 0 to 7: 'cat < b' Completing redirect arg words: (w <Lit_Chars echo>) redirects: (Redir op:<Redir_GreatAnd ">&"> loc:(redir_loc.Fd fd:1) arg:(w <Lit_CompDummy "">) ) tokens: <Lit_Chars echo> <WS_Space " "> <Redir_GreatAnd ">&"> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'echo >&' rl_slice from byte 0 to 7: 'echo >&' Didn't find anything to complete ..<Api 'echo $' 0-6> words: (w <Lit_Chars echo>) (w <Lit_Dollar "$"> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars echo> <WS_Space " "> <Lit_Dollar "$"> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'echo $' rl_slice from byte 0 to 6: 'echo $' <Api 'echo $P' 0-7> words: (w <Lit_Chars echo>) (w ($ P) <Lit_CompDummy "">) redirects: tokens: <Lit_Chars echo> <WS_Space " "> <VSub_DollarName "$P"> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'echo $P' rl_slice from byte 0 to 7: 'echo $P' <Api 'echo _${' 0-8> words: redirects: tokens: <Lit_Chars echo> <WS_Space " "> <Lit_Chars _> <Left_DollarBrace "${"> <Lit_CompDummy ""> alias_words: line: 'echo _${' rl_slice from byte 0 to 8: 'echo _${' <Api 'echo ${P' 0-8> words: redirects: tokens: <Lit_Chars echo> <WS_Space " "> <Left_DollarBrace "${"> <VSub_Name P> <Lit_CompDummy ""> alias_words: line: 'echo ${P' rl_slice from byte 0 to 8: 'echo ${P' <Api 'echo ${undef:-$P' 0-16> words: redirects: tokens: <Lit_Chars echo> <WS_Space " "> <Left_DollarBrace "${"> <VSub_Name undef> <VTest_ColonHyphen ":-"> <VSub_DollarName "$P"> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'echo ${undef:-$P' rl_slice from byte 0 to 16: 'echo ${undef:-$P' <Api 'echo ${undef:-$' 0-15> words: redirects: tokens: <Lit_Chars echo> <WS_Space " "> <Left_DollarBrace "${"> <VSub_Name undef> <VTest_ColonHyphen ":-"> <Lit_Dollar "$"> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'echo ${undef:-$' rl_slice from byte 0 to 15: 'echo ${undef:-$' <Api 'echo "$' 0-7> words: redirects: tokens: <Lit_Chars echo> <WS_Space " "> <Left_DoubleQuote "\""> <Lit_Dollar "$"> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'echo "$' rl_slice from byte 0 to 7: 'echo "$' <Api 'echo "$P' 0-8> words: redirects: tokens: <Lit_Chars echo> <WS_Space " "> <Left_DoubleQuote "\""> <VSub_DollarName "$P"> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'echo "$P' rl_slice from byte 0 to 8: 'echo "$P' <Api 'echo "${#P' 0-10> words: redirects: tokens: <Lit_Chars echo> <WS_Space " "> <Left_DoubleQuote "\""> <Left_DollarBrace "${"> <VSub_Pound "#"> <VSub_Name P> <Lit_CompDummy ""> alias_words: line: 'echo "${#P' rl_slice from byte 0 to 10: 'echo "${#P' <Api 'echo "$((PWD +P' 0-15> words: redirects: tokens: <Lit_Chars echo> <WS_Space " "> <Left_DoubleQuote "\""> <Left_DollarDParen "$(("> <Lit_ArithVarLike PWD> <Ignored_Space " "> <Arith_Plus "+"> <Lit_ArithVarLike P> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'echo "$((PWD +P' rl_slice from byte 0 to 15: 'echo "$((PWD +P' <Api 'echo "$(( $P' 0-12> words: redirects: tokens: <Lit_Chars echo> <WS_Space " "> <Left_DoubleQuote "\""> <Left_DollarDParen "$(("> <Ignored_Space " "> <VSub_DollarName "$P"> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'echo "$(( $P' rl_slice from byte 0 to 12: 'echo "$(( $P' . words: (w <Lit_Chars grep>) (w <Lit_Chars f> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars grep> <WS_Space " "> <Lit_Chars f> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'grep f' rl_slice from byte 0 to 6: 'grep f' Completing words partial_argv: [grep,f] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:5 line:(SourceLine line_num:1 content:"grep f" src:(source.MainFile path:"<test_lib>") ) tval:f ) (Token id:Lit_CompDummy length:0 col:6 line:...0x7fe0f6fec9f0 tval:"") ] ) ] display_pos 5 Completing 'grep f' ... (Ctrl-C to cancel) Found 2 matches for 'grep f' in 0 ms words: (w <Lit_Chars grep>) (w <Lit_Chars g> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars grep> <WS_Space " "> <Lit_Chars g> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'grep g' rl_slice from byte 0 to 6: 'grep g' Completing words partial_argv: [grep,g] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:5 line:(SourceLine line_num:1 content:"grep g" src:(source.MainFile path:"<test_lib>") ) tval:g ) (Token id:Lit_CompDummy length:0 col:6 line:...0x7fe0f6ffe100 tval:"") ] ) ] display_pos 5 Completing 'grep g' ... (Ctrl-C to cancel) Found 0 matches for 'grep g' in 0 ms words: (w <Lit_Chars g> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars g> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'g' rl_slice from byte 0 to 1: 'g' Completing words partial_argv: [g] alias_words: [[]] ** DISPLAY_POS = 0 Completing 'g' ... (Ctrl-C to cancel) Found 1 match for 'g' in 0 ms words: (w <Lit_CompDummy "">) redirects: tokens: <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: '' rl_slice from byte 0 to 0: '' Completing words partial_argv: [] alias_words: [[]] ** DISPLAY_POS = 0 Completing '' ... (Ctrl-C to cancel) Found 3 matches for '' in 0 ms words: (w <Lit_Chars grep>) (w <Lit_Chars f> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars echo> <WS_Space " "> <Lit_Chars hi> <WS_Space " "> <Op_DPipe "||"> <WS_Space " "> <Lit_Chars grep> <WS_Space " "> <Lit_Chars f> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'echo hi || grep f' rl_slice from byte 0 to 17: 'echo hi || grep f' Completing words partial_argv: [grep,f] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:16 line:(SourceLine line_num:1 content:"echo hi || grep f" src:(source.MainFile path:"<test_lib>") ) tval:f ) (Token id:Lit_CompDummy length:0 col:17 line:...0x7fe0f6ffe578 tval:"") ] ) ] display_pos 16 Completing 'echo hi || grep f' ... (Ctrl-C to cancel) Found 2 matches for 'echo hi || grep f' in 0 ms words: (w <Lit_Chars grep>) (w <Lit_Chars f> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars echo> <WS_Space " "> <Lit_Chars hi> <Op_Semi ";"> <WS_Space " "> <Lit_Chars grep> <WS_Space " "> <Lit_Chars f> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'echo hi; grep f' rl_slice from byte 0 to 15: 'echo hi; grep f' Completing words partial_argv: [grep,f] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:14 line:(SourceLine line_num:1 content:"echo hi; grep f" src:(source.MainFile path:"<test_lib>") ) tval:f ) (Token id:Lit_CompDummy length:0 col:15 line:...0x7fe0f6ffe1b0 tval:"") ] ) ] display_pos 14 Completing 'echo hi; grep f' ... (Ctrl-C to cancel) Found 2 matches for 'echo hi; grep f' in 0 ms words: (w <Lit_Chars grep>) (w <Lit_Chars f> <Lit_CompDummy "">) redirects: tokens: <Lit_LBrace "{"> <WS_Space " "> <Lit_Chars echo> <WS_Space " "> <Lit_Chars hi> <Op_Semi ";"> <WS_Space " "> <Lit_Chars grep> <WS_Space " "> <Lit_Chars f> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: '{ echo hi; grep f' rl_slice from byte 0 to 17: '{ echo hi; grep f' Completing words partial_argv: [grep,f] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:16 line:(SourceLine line_num:1 content:"{ echo hi; grep f" src:(source.MainFile path:"<test_lib>") ) tval:f ) (Token id:Lit_CompDummy length:0 col:17 line:...0x7fe0f6ffe3c0 tval:"") ] ) ] display_pos 16 Completing '{ echo hi; grep f' ... (Ctrl-C to cancel) Found 2 matches for '{ echo hi; grep f' in 0 ms words: redirects: tokens: <Lit_VarLike "var="> <VSub_DollarName "$v"> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'var=$v' rl_slice from byte 0 to 6: 'var=$v' words: (w <Lit_Chars local>) (w <Lit_VarLike "var="> ($ v) <Lit_CompDummy "">) redirects: tokens: <Lit_Chars local> <WS_Space " "> <Lit_VarLike "var="> <VSub_DollarName "$v"> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'local var=$v' rl_slice from byte 0 to 12: 'local var=$v' . words: (w <Lit_Chars bad>) (w <Lit_CompDummy "">) redirects: tokens: <Lit_Chars bad> <WS_Space " "> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'bad ' rl_slice from byte 0 to 4: 'bad ' Completing words partial_argv: [bad,] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_CompDummy length:0 col:4 line:(SourceLine line_num:1 content:"bad " src:(source.MainFile path:"<test_lib>") ) tval:"" ) ] ) ] display_pos 4 Completing 'bad ' ... (Ctrl-C to cancel) Running completion function '_bad' with 3 arguments _bad returning 124 comp.first 'bad', commands_changed: Function '_bad' returned 124, but the completion spec for 'bad' wasn't changed Found 0 matches for 'bad ' in 0 ms words: (w <Lit_Chars both>) (w <Lit_CompDummy "">) redirects: tokens: <Lit_Chars both> <WS_Space " "> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'both ' rl_slice from byte 0 to 5: 'both ' Completing words partial_argv: [both,] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_CompDummy length:0 col:5 line:(SourceLine line_num:1 content:"both " src:(source.MainFile path:"<test_lib>") ) tval:"" ) ] ) ] display_pos 5 Completing 'both ' ... (Ctrl-C to cancel) Running completion function '_both' with 3 arguments comp.first 'both', commands_changed: Function '_both' returned 124, but the completion spec for 'both' wasn't changed Found 0 matches for 'both ' in 0 ms words: (w <Lit_Chars both2>) (w <Lit_CompDummy "">) redirects: tokens: <Lit_Chars both2> <WS_Space " "> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'both2 ' rl_slice from byte 0 to 6: 'both2 ' Completing words partial_argv: [both2,] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_CompDummy length:0 col:6 line:(SourceLine line_num:1 content:"both2 " src:(source.MainFile path:"<test_lib>") ) tval:"" ) ] ) ] display_pos 6 Completing 'both2 ' ... (Ctrl-C to cancel) Running completion function '_both2' with 3 arguments comp.first 'both2', commands_changed: both2 Got 124, trying again ... Completing 'both2 ' ... (Ctrl-C to cancel) Found 2 matches for 'both2 ' in 0 ms . words: (w <Lit_Chars mywords>) (w <Lit_Chars t> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars mywords> <WS_Space " "> <Lit_Chars t> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'mywords t' rl_slice from byte 0 to 9: 'mywords t' Completing words partial_argv: [mywords,t] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:8 line:(SourceLine line_num:1 content:"mywords t" src:(source.MainFile path:"<test_lib>") ) tval:t ) (Token id:Lit_CompDummy length:0 col:9 line:...0x7fe0f6f60ec0 tval:"") ] ) ] display_pos 8 Completing 'mywords t' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with 3 arguments comp.first 'mywords', commands_changed: Found 2 matches for 'mywords t' in 0 ms words: (w <Lit_Chars mywords_nospace>) (w <Lit_Chars t> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars mywords_nospace> <WS_Space " "> <Lit_Chars t> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'mywords_nospace t' rl_slice from byte 0 to 17: 'mywords_nospace t' Completing words partial_argv: [mywords_nospace,t] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:16 line:(SourceLine line_num:1 content:"mywords_nospace t" src:(source.MainFile path:"<test_lib>") ) tval:t ) (Token id:Lit_CompDummy length:0 col:17 line:...0x7fe0f6f60f18 tval:"") ] ) ] display_pos 16 Completing 'mywords_nospace t' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with 3 arguments comp.first 'mywords_nospace', commands_changed: Found 2 matches for 'mywords_nospace t' in 0 ms words: (w <Lit_Chars flagX>) (w <Lit_CompDummy "">) redirects: tokens: <Lit_Chars flagX> <WS_Space " "> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'flagX ' rl_slice from byte 0 to 6: 'flagX ' Completing words partial_argv: [flagX,] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_CompDummy length:0 col:6 line:(SourceLine line_num:1 content:"flagX " src:(source.MainFile path:"<test_lib>") ) tval:"" ) ] ) ] display_pos 6 Completing 'flagX ' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with 3 arguments comp.first 'flagX', commands_changed: Found 2 matches for 'flagX ' in 1 ms words: (w <Lit_Chars flagX_bang>) (w <Lit_CompDummy "">) redirects: tokens: <Lit_Chars flagX_bang> <WS_Space " "> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'flagX_bang ' rl_slice from byte 0 to 11: 'flagX_bang ' Completing words partial_argv: [flagX_bang,] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_CompDummy length:0 col:11 line:(SourceLine line_num:1 content:"flagX_bang " src:(source.MainFile path:"<test_lib>") ) tval:"" ) ] ) ] display_pos 11 Completing 'flagX_bang ' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with 3 arguments comp.first 'flagX_bang', commands_changed: Found 2 matches for 'flagX_bang ' in 0 ms words: (w <Lit_Chars flagX_prefix>) (w <Lit_CompDummy "">) redirects: tokens: <Lit_Chars flagX_prefix> <WS_Space " "> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'flagX_prefix ' rl_slice from byte 0 to 13: 'flagX_prefix ' Completing words partial_argv: [flagX_prefix,] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_CompDummy length:0 col:13 line:(SourceLine line_num:1 content:"flagX_prefix " src:(source.MainFile path:"<test_lib>") ) tval:"" ) ] ) ] display_pos 13 Completing 'flagX_prefix ' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with 3 arguments comp.first 'flagX_prefix', commands_changed: Found 2 matches for 'flagX_prefix ' in 0 ms words: (w <Lit_Chars prefix_plusdirs>) (w <Lit_Chars b> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars prefix_plusdirs> <WS_Space " "> <Lit_Chars b> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'prefix_plusdirs b' rl_slice from byte 0 to 17: 'prefix_plusdirs b' Completing words partial_argv: [prefix_plusdirs,b] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:16 line:(SourceLine line_num:1 content:"prefix_plusdirs b" src:(source.MainFile path:"<test_lib>") ) tval:b ) (Token id:Lit_CompDummy length:0 col:17 line:...0x7fe0f6f001b0 tval:"") ] ) ] display_pos 16 Completing 'prefix_plusdirs b' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with 3 arguments comp.first 'prefix_plusdirs', commands_changed: Found 1 match for 'prefix_plusdirs b' in 0 ms words: (w <Lit_Chars flagX_plusdirs>) (w <Lit_Chars b> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars flagX_plusdirs> <WS_Space " "> <Lit_Chars b> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'flagX_plusdirs b' rl_slice from byte 0 to 16: 'flagX_plusdirs b' Completing words partial_argv: [flagX_plusdirs,b] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:15 line:(SourceLine line_num:1 content:"flagX_plusdirs b" src:(source.MainFile path:"<test_lib>") ) tval:b ) (Token id:Lit_CompDummy length:0 col:16 line:...0x7fe0f6f00260 tval:"") ] ) ] display_pos 15 Completing 'flagX_plusdirs b' ... (Ctrl-C to cancel) Running completion function 'complete_mywords' with 3 arguments comp.first 'flagX_plusdirs', commands_changed: Found 0 matches for 'flagX_plusdirs b' in 0 ms words: (w <Lit_Chars prefix_dirnames>) (w <Lit_Chars b> <Lit_CompDummy "">) redirects: tokens: <Lit_Chars prefix_dirnames> <WS_Space " "> <Lit_Chars b> <Lit_CompDummy ""> <Eof_Real ""> alias_words: line: 'prefix_dirnames b' rl_slice from byte 0 to 17: 'prefix_dirnames b' Completing words partial_argv: [prefix_dirnames,b] alias_words: [[]] words[-1]: [(CompoundWord parts:[ (Token id:Lit_Chars length:1 col:16 line:(SourceLine line_num:1 content:"prefix_dirnames b" src:(source.MainFile path:"<test_lib>") ) tval:b ) (Token id:Lit_CompDummy length:0 col:17 line:...0x7fe0f6f00100 tval:"") ] ) ] display_pos 16 Completing 'prefix_dirnames b' ... (Ctrl-C to cancel) Found 0 matches for 'prefix_dirnames b' in 0 ms . ---------------------------------------------------------------------- Ran 16 tests in 0.325s OK