We don't need to override IFS, zsh has a native way of splitting by new
lines: the expansion flag (f).

Also, we don't need to split files by ':' or '='; that's only for words.

Signed-off-by: Felipe Contreras <felipe.contre...@gmail.com>
---
 contrib/completion/git-completion.zsh | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/contrib/completion/git-completion.zsh 
b/contrib/completion/git-completion.zsh
index 7f614d5854..317f5bd80a 100644
--- a/contrib/completion/git-completion.zsh
+++ b/contrib/completion/git-completion.zsh
@@ -68,44 +68,38 @@ __gitcomp_direct ()
 {
        emulate -L zsh
 
-       local IFS=$'\n'
        compset -P '*[=:]'
-       compadd -Q -- ${${=1}% } && _ret=0
+       compadd -Q -- ${${(f)1}% } && _ret=0
 }
 
 __gitcomp_nl ()
 {
        emulate -L zsh
 
-       local IFS=$'\n'
        compset -P '*[=:]'
-       compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
+       compadd -Q -S "${4- }" -p "${2-}" -- ${(f)1} && _ret=0
 }
 
 __gitcomp_nl_append ()
 {
        emulate -L zsh
 
-       local IFS=$'\n'
-       compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
+       compset -P '*[=:]'
+       compadd -Q -S "${4- }" -p "${2-}" -- ${(f)1} && _ret=0
 }
 
 __gitcomp_file_direct ()
 {
        emulate -L zsh
 
-       local IFS=$'\n'
-       compset -P '*[=:]'
-       compadd -f -- ${=1} && _ret=0
+       compadd -f -- ${(f)1} && _ret=0
 }
 
 __gitcomp_file ()
 {
        emulate -L zsh
 
-       local IFS=$'\n'
-       compset -P '*[=:]'
-       compadd -p "${2-}" -f -- ${=1} && _ret=0
+       compadd -f -p "${2-}" -- ${(f)1} && _ret=0
 }
 
 __git_zsh_bash_func ()
-- 
2.22.0

Reply via email to