aboutsummaryrefslogtreecommitdiffstats
path: root/bashline.c
diff options
context:
space:
mode:
authorChet Ramey <chet.ramey@case.edu>2015-08-13 15:38:31 -0400
committerTom Powell <zifnab@zifnab06.net>2015-10-08 20:53:30 -0700
commit857afac0f64e6be71026c49215f16ba7ca5fef71 (patch)
treeebc80903f998da74eeacdf0738c571f43cdc01f3 /bashline.c
parent4d010329a43b9b008495459831a8702bbed566a6 (diff)
downloadandroid_external_bash-857afac0f64e6be71026c49215f16ba7ca5fef71.tar.gz
android_external_bash-857afac0f64e6be71026c49215f16ba7ca5fef71.tar.bz2
android_external_bash-857afac0f64e6be71026c49215f16ba7ca5fef71.zip
Bash-4.3 patch 41
Change-Id: Idb9857dac265c724460d61857c0643815d96eb9d
Diffstat (limited to 'bashline.c')
-rw-r--r--bashline.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/bashline.c b/bashline.c
index ff7e910..492dffb 100644
--- a/bashline.c
+++ b/bashline.c
@@ -1468,10 +1468,23 @@ attempt_shell_completion (text, start, end)
os = start;
n = 0;
+ was_assignment = 0;
s = find_cmd_start (os);
e = find_cmd_end (end);
do
{
+ /* Don't read past the end of rl_line_buffer */
+ if (s > rl_end)
+ {
+ s1 = s = e1;
+ break;
+ }
+ /* Or past point if point is within an assignment statement */
+ else if (was_assignment && s > rl_point)
+ {
+ s1 = s = e1;
+ break;
+ }
/* Skip over assignment statements preceding a command name. If we
don't find a command name at all, we can perform command name
completion. If we find a partial command name, we should perform