[Wilds] Shell complete files with spaces in them correctly
Summary: Fixes T9116. Ref T13098. Fix shell completion handling of filenames with spaces in them. This is a big mess -- see T9116 for discussion and I'll walk through things below.
Test Plan:
These all now seem to do the right thing:
arc we<tab> -> arc weld (+space) arc weld fo<tab> -> arc weld foo\ bar (+space) arc weld 'fo<tab> -> arc weld 'foo bar' (+space) arc weld src<tab> -> arc weld src/ (no space) arc weld src/w<tab> -> arc weld src/work (no space) arc weld src/work<tab><tab> -> suggests "workflow/", "workingcopy/" arc shell-complete --gen<tab> -> arc shell-complete --generate
These also work, which I think is nice-to-have:
arc WEL<tab> -> arc weld arc shell-complete --GEN<tab> -> arc shell-complete --generate
Reviewers: amckinley
Reviewed By: amckinley
Maniphest Tasks: T13098, T9116
Differential Revision: https://secure.phabricator.com/D19705