Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows

From: Stefan Monnier <[email-masked]>
Date: Mon, 07 May 2012 20:27:36 -0400

>> No, it does match "\g" but then the new code:
>> 
>> (push (cond
>> ((null pcomplete-arg-quote-list)
>> (goto-char (match-beginning 3)) "\\")
>> ((= (match-beginning 3) (match-end 3)) "\\")
>> (t (match-string 3)))
>> arg))
>> 
>> sees that pcomplete-arg-quote-list is nil, pushes "\\" and moves
>> backward 1 char (to right before the "g") so you end up with
>> ("gnu" "\\" "d:").
>> 
>> Can you check to see why this is not happening?

> ?? Why should pcomplete-arg-quote-list be nil?  In that same change, you
> set it to shell-delimiter-argument-list, which is a non-empty list.

Duh! I see I committed the wrong version.  I've just installed the patch
below which should hopefully fix this one for good this time.

        Stefan

=== modified file 'lisp/shell.el'
--- lisp/shell.el	2012-05-05 04:18:49 +0000
+++ lisp/shell.el	2012-05-08 00:24:43 +0000
@@ -432,7 +432,7 @@
   (set (make-local-variable 'pcomplete-parse-arguments-function)
        #'shell-parse-pcomplete-arguments)
   (set (make-local-variable 'pcomplete-arg-quote-list)
-       shell-delimiter-argument-list)
+       comint-file-name-quote-list)
   (set (make-local-variable 'pcomplete-termination-string)
        (cond ((not comint-completion-addsuffix) "")
              ((stringp comint-completion-addsuffix)