summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Completion/Unix/Command/_git6
2 files changed, 8 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 34be26e2e..0e7d1e023 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-03-11 Daniel Shahaf <d.s@daniel.shahaf.name>
+
+ * 38129: Completion/Unix/Command/_git: Fix __git_ignore_line's
+ treatment of shell and pattern metacaracters.
+
2016-03-10 Daniel Shahaf <d.s@daniel.shahaf.name>
* 38128: Completion/Unix/Command/_git: Fix completion of diffs
diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git
index 6c88ad073..e3d7231d3 100644
--- a/Completion/Unix/Command/_git
+++ b/Completion/Unix/Command/_git
@@ -4956,7 +4956,7 @@ __git_committish_range_last () {
(( $+functions[__git_pattern_escape] )) ||
__git_pattern_escape () {
- print -r -n ${1//(#m)[\[\]()\\*?#<>~\^]/\\$MATCH}
+ print -r -n - ${(b)1}
}
(( $+functions[__git_is_type] )) ||
@@ -5048,9 +5048,9 @@ __git_ignore_line () {
declare -a ignored
ignored=()
((CURRENT > 1)) &&
- ignored+=(${line[1,CURRENT-1]//(#m)[\[\]()\\*?#<>~\^]/\\$MATCH})
+ ignored+=(${(bQ)line[1,CURRENT-1]})
((CURRENT < $#line)) &&
- ignored+=(${line[CURRENT+1,-1]//(#m)[\[\]()\\*?#<>~\^]/\\$MATCH})
+ ignored+=(${(bQ)line[CURRENT+1,-1]})
$* -F ignored
}