+2008-02-13 Michael Albinus <michael.albinus@gmx.de>
+
+ * net/ange-ftp.el (ange-ftp-quote-string): Use
+ `shell-quote-argument'. This DTRT even on w32 machines.
+ (ange-ftp-cf1): Quote FILENAME.
+
2008-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
* smerge-mode.el (smerge-auto-combine-max-separation): New var.
(defun ange-ftp-quote-string (string)
"Quote any characters in STRING that may confuse the ftp process."
- (apply 'concat
- (mapcar (lambda (char)
- ;; This is said to be wrong; ftp is said to
- ;; need quoting only for ", and that by doubling it.
- ;; But experiment says this kind of quoting is correct
- ;; when talking to ftp on GNU/Linux systems.
- (if (or (<= char ? )
- (> char ?\~)
- (= char ?\")
- (= char ?\\))
- (vector ?\\ char)
- (vector char)))
- string)))
+ ;; This is said to be wrong; ftp is said to need quoting only for ",
+ ;; and that by doubling it. But experiment says UNIX-style kind of
+ ;; quoting is correct when talking to ftp on GNU/Linux systems, and
+ ;; W32-style kind of quoting on, yes, W32 systems.
+ (when (stringp string) (shell-quote-argument string)))
(defun ange-ftp-barf-if-not-directory (directory)
(or (file-directory-p directory)
(ange-ftp-send-cmd
t-host
t-user
- (list 'put (or temp2 filename) t-name)
+ (list 'put (or temp2 (ange-ftp-quote-string filename)) t-name)
(or msg
(if (and temp2 f-parsed)
(format "Putting %s" newname)