Package: mpc
Version: 0.17-1
Severity: normal

When you try to complete a path that has spaces (which is quite common
with music collections). `mpc ls`'s completion will break the path by
spaces.

I attach a "works-for-me" patch. Basically I set IFS to just \n (I hope
that this character is not too common in file names). I also remove a
level or two of assignments, which may also help.

I should also note that the current functions uses many temporary
variables that are not declared local. This means the function may have
side effects.

-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.30-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=he_IL.UTF-8, LC_CTYPE=he_IL.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages mpc depends on:
ii  libc6                         2.9-25     GNU C Library: Shared libraries

mpc recommends no packages.

Versions of packages mpc suggests:
ii  mpd                           0.15.4-1   Music Player Daemon

-- no debconf information

-- 
Tzafrir Cohen         | tzaf...@jabber.org | VIM is
http://tzafrir.org.il |                    | a Mutt's
tzaf...@cohens.org.il |                    |  best
ICQ# 16849754         |                    | friend
--- /tmp/mpc/etc/bash_completion.d/mpc	2009-08-22 00:29:40.000000000 +0300
+++ /etc/bash_completion.d/mpc	2009-10-25 07:59:17.321512824 +0200
@@ -4,6 +4,11 @@
 #export MPD_HOST="127.0.0.1"
 #export MPD_PORT="6600"
 
+_mpadd_escape_filename ()
+{
+	sed -e 's/[][(){}<>",:;^&!$=?`|\ '\'']/\\&/g' -e 's/\n$/ /'
+}
+
  _mpdadd_complete_func ()
 {
 	cur="${COMP_WORDS[COMP_CWORD]}"
@@ -36,12 +41,12 @@
 		return 0
 		;;
 		ls)
+		local IFS=$'\n'
 		if [ "x$cur" = "x" ]; then
-			hold=`mpc ls`;
+			COMPREPLY=($(mpc ls | _mpadd_escape_filename));
 		else
-			hold=`mpc lstab ${cur}`;
+			COMPREPLY=($(mpc lstab ${cur} | _mpadd_escape_filename));
 		fi
-		COMPREPLY=($(compgen -W "${hold}" | sed "$scrub"))
 		return 0
 		;;
 		search)

Reply via email to