aboutsummaryrefslogtreecommitdiffstats
path: root/pcomplete.c
diff options
context:
space:
mode:
authorChet Ramey <chet.ramey@case.edu>2011-11-21 20:49:12 -0500
committerChet Ramey <chet.ramey@case.edu>2011-11-21 20:49:12 -0500
commit89a92869e56aba4e4cab2d639c00a86f0545c862 (patch)
treee1cd4da50318af8ab1f3141d39d4b0b8e1e7c500 /pcomplete.c
parent17345e5ad288f7543b77b23a25aa380eacc279f2 (diff)
downloadandroid_external_bash-89a92869e56aba4e4cab2d639c00a86f0545c862.tar.gz
android_external_bash-89a92869e56aba4e4cab2d639c00a86f0545c862.tar.bz2
android_external_bash-89a92869e56aba4e4cab2d639c00a86f0545c862.zip
Bash-4.0 patchlevel 38
Diffstat (limited to 'pcomplete.c')
-rw-r--r--pcomplete.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/pcomplete.c b/pcomplete.c
index e1ccaac..40fcc34 100644
--- a/pcomplete.c
+++ b/pcomplete.c
@@ -1032,6 +1032,7 @@ gen_shell_function_matches (cs, text, line, ind, lwords, nw, cw)
cmdlist = build_arg_list (funcname, text, lwords, cw);
pps = &ps;
+ save_parser_state (pps);
begin_unwind_frame ("gen-shell-function-matches");
add_unwind_protect (restore_parser_state, (char *)pps);
add_unwind_protect (dispose_words, (char *)cmdlist);
@@ -1174,13 +1175,15 @@ command_line_to_word_list (line, llen, sentinel, nwp, cwp)
{
WORD_LIST *ret;
char *delims;
+ int i, j;
-#if 0
- delims = "()<>;&| \t\n"; /* shell metacharacters break words */
-#else
- delims = rl_completer_word_break_characters;
-#endif
+ delims = xmalloc (strlen (rl_completer_word_break_characters) + 1);
+ for (i = j = 0; rl_completer_word_break_characters[i]; i++)
+ if (rl_completer_word_break_characters[i] != '\'' && rl_completer_word_break_characters[i] != '"')
+ delims[j++] = rl_completer_word_break_characters[i];
+ delims[j] = '\0';
ret = split_at_delims (line, llen, delims, sentinel, nwp, cwp);
+ free (delims);
return (ret);
}