From 3d53ee1b2d06098527f983756fcfdfc2a5ecce16 Mon Sep 17 00:00:00 2001
From: Stefan Monnier <monnier@iro.umontreal.ca>
Date: Sat, 5 May 2012 00:18:49 -0400
Subject: [PATCH] * lisp/shell.el (shell-completion-vars): Set
 pcomplete-arg-quote-list like shell-delimiter-argument-list.
 (shell-parse-pcomplete-arguments): Obey pcomplete-arg-quote-list.

Fixes: debbugs:11348
---
 lisp/ChangeLog | 6 ++++++
 lisp/shell.el  | 9 ++++++---
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index ff08f0681aa..7a83c95ec3a 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2012-05-05  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* shell.el (shell-completion-vars): Set pcomplete-arg-quote-list like
+	shell-delimiter-argument-list (bug#11348).
+	(shell-parse-pcomplete-arguments): Obey pcomplete-arg-quote-list.
+
 2012-05-04  Chong Yidong  <cyd@gnu.org>
 
 	* select.el (xselect--encode-string): Always use utf-8 for TEXT on
diff --git a/lisp/shell.el b/lisp/shell.el
index 7c5ce49a967..737f69c021d 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -393,8 +393,11 @@ Thus, this does not include the shell's current directory.")
             (goto-char (match-end 0))
             (cond
              ((match-beginning 3)       ;Backslash escape.
-              (push (if (= (match-beginning 3) (match-end 3))
-                        "\\" (match-string 3))
+              (push (cond
+                     ((null pcomplete-arg-quote-list)
+                      (goto-char (match-beginning 3)) "\\")
+                     ((= (match-beginning 3) (match-end 3)) "\\")
+                     (t (match-string 3)))
                     arg))
              ((match-beginning 2)       ;Double quote.
               (push (replace-regexp-in-string
@@ -429,7 +432,7 @@ Shell buffers.  It implements `shell-completion-execonly' for
   (set (make-local-variable 'pcomplete-parse-arguments-function)
        #'shell-parse-pcomplete-arguments)
   (set (make-local-variable 'pcomplete-arg-quote-list)
-       (append "\\ \t\n\r\"'`$|&;(){}[]<>#" nil))
+       shell-delimiter-argument-list)
   (set (make-local-variable 'pcomplete-termination-string)
        (cond ((not comint-completion-addsuffix) "")
              ((stringp comint-completion-addsuffix)
-- 
2.39.5