From 9382be33479fa2f7276ada9de927268d46c6b46b Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Sat, 19 Jan 2008 19:37:01 +0000 Subject: users/12461: fix quoting of mount points for umount --- Completion/Unix/Command/_mount | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'Completion') diff --git a/Completion/Unix/Command/_mount b/Completion/Unix/Command/_mount index 6333c3d5b..417af2502 100644 --- a/Completion/Unix/Command/_mount +++ b/Completion/Unix/Command/_mount @@ -867,8 +867,27 @@ udevordir) ;; esac - dpath_tmp=( "${(@M)dev_tmp:#/*}" ) - dev_tmp=( "${(@)dev_tmp:#/*}" ) + # "Mummy, why is mount point matching full of squiggles?" + # + # "Well, dear, the clever people who wrote Linux decided that some + # funny characters that might confuse programmes looking at the names + # would be encoded as octal escapes, like for example \040 for space. + # The clever people who wrote zsh decided that nothing would + # ever be quite as simple as it should be, so to substitute octal + # escapes everywhere in a string, even though the shell understands + # them natively in print escapes, needs some hackery where you match + # the octal number using the numeric closure syntax introduced after + # 4.3.4, then reinput the number in a standard math mode format as 8#OOO, + # and turn that into a character using the (#) parameter flag." + # + # "Mummy, why is nothing ever quite as simple as it should be?" + # + # "Well, dear, if it was then the clever people who write programmes would + # have been replaced by intelligent monkeys and then they'd be out + # of working roaming the streets, and we wouldn't want that, would we?" + mp_tmp=("${(@q)mp_tmp//(#m)\\[0-7](#c3)/${(#)$(( 8#${MATCH[2,-1]} ))}}") + dpath_tmp=( "${(@Mq)dev_tmp:#/*}" ) + dev_tmp=( "${(@q)dev_tmp:#/*}" ) _alternative \ 'device-labels:device label:compadd -a dev_tmp' \ -- cgit 1.4.1