summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1997-05-01 02:03:16 +0000
committerRichard M. Stallman <rms@gnu.org>1997-05-01 02:03:16 +0000
commitdfea5a0235a90aad8a465288c5fe3151bc14888f (patch)
treec067b08b6982589251db687aff4555dbea0e4a68
parentd34d5054fb333dc7c9f443d178acb3ed06fae3ff (diff)
downloademacs-dfea5a0235a90aad8a465288c5fe3151bc14888f.tar.gz
(shell-quote-argument): Quote null string usefully.
-rw-r--r--lisp/subr.el20
1 files changed, 11 insertions, 9 deletions
diff --git a/lisp/subr.el b/lisp/subr.el
index edd425d33e6..70fea7691b6 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -873,15 +873,17 @@ If SEPARATORS is absent, it defaults to \"[ \\f\\t\\n\\r\\v]+\"."
argument
(if (eq system-type 'windows-nt)
(concat "\"" argument "\"")
- ;; Quote everything except POSIX filename characters.
- ;; This should be safe enough even for really weird shells.
- (let ((result "") (start 0) end)
- (while (string-match "[^-0-9a-zA-Z_./]" argument start)
- (setq end (match-beginning 0)
- result (concat result (substring argument start end)
- "\\" (substring argument end (1+ end)))
- start (1+ end)))
- (concat result (substring argument start))))))
+ (if (equal argument "")
+ "''"
+ ;; Quote everything except POSIX filename characters.
+ ;; This should be safe enough even for really weird shells.
+ (let ((result "") (start 0) end)
+ (while (string-match "[^-0-9a-zA-Z_./]" argument start)
+ (setq end (match-beginning 0)
+ result (concat result (substring argument start end)
+ "\\" (substring argument end (1+ end)))
+ start (1+ end)))
+ (concat result (substring argument start)))))))
(defun make-syntax-table (&optional oldtable)
"Return a new syntax table.