From: Richard M. Stallman Date: Thu, 1 May 1997 02:03:16 +0000 (+0000) Subject: (shell-quote-argument): Quote null string usefully. X-Git-Tag: emacs-20.1~2335 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e1b65a6bd81fe9fe3ccb409861866789f6534c83;p=emacs.git (shell-quote-argument): Quote null string usefully. --- 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.