]> git.eshelyaron.com Git - emacs.git/commitdiff
Note combine-and-quote-strings doesn't shell quote
authorNoam Postavsky <npostavs@gmail.com>
Sun, 3 Jul 2016 13:56:36 +0000 (09:56 -0400)
committerNoam Postavsky <npostavs@gmail.com>
Sun, 3 Jul 2016 19:05:20 +0000 (15:05 -0400)
* doc/lispref/processes.texi (Shell Arguments):
* lisp/subr.el (combine-and-quote-strings): Add a note that
combine-and-quote-strings doesn't protect arguments against shell
evaluation (Bug #20333).

doc/lispref/processes.texi
lisp/subr.el

index 5bd0b11cda0f0e523ebbd9a1b4e0670a0e88c057..b4542f65cc136eec0f1784d4a7b062e233a0e38d 100644 (file)
@@ -215,6 +215,11 @@ converting user input in the minibuffer, a Lisp string, into a list of
 string arguments to be passed to @code{call-process} or
 @code{start-process}, or for converting such lists of arguments into
 a single Lisp string to be presented in the minibuffer or echo area.
+Note that if a shell is involved (e.g., if using
+@code{call-process-shell-command}), arguments should still be
+protected by @code{shell-quote-argument};
+@code{combine-and-quote-strings} is @emph{not} intended to protect
+special characters from shell evaluation.
 
 @defun split-string-and-unquote string &optional separators
 This function splits @var{string} into substrings at matches for the
index ed2166a0ee29f11ed6709de05df0ec399cfbb5d0..e9e19d35f65ca9f9643299132425395975e4d7d1 100644 (file)
@@ -3706,7 +3706,10 @@ Modifies the match data; use `save-match-data' if necessary."
   "Concatenate the STRINGS, adding the SEPARATOR (default \" \").
 This tries to quote the strings to avoid ambiguity such that
   (split-string-and-unquote (combine-and-quote-strings strs)) == strs
-Only some SEPARATORs will work properly."
+Only some SEPARATORs will work properly.
+
+Note that this is not intended to protect STRINGS from
+interpretation by shells, use `shell-quote-argument' for that."
   (let* ((sep (or separator " "))
          (re (concat "[\\\"]" "\\|" (regexp-quote sep))))
     (mapconcat