From 9566840faf0378750569f1228ead9488bc1bf64d Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Thu, 6 May 2010 10:40:06 +0200 Subject: [PATCH] * net/tramp.el (top, with-progress-reporter): Use `symbol-function' inside `funcall'. * net/tramp-compat.el (tramp-compat-file-attributes) (tramp-compat-delete-file, tramp-compat-delete-directory): Handle only `wrong-number-of-arguments' error. * net/tramp-gvfs.el (tramp-gvfs-handle-copy-file): Fix typo. (tramp-gvfs-handle-file-selinux-context): Use `symbol-function' inside `funcall'. --- lisp/ChangeLog | 13 +++++++++++++ lisp/net/tramp-compat.el | 25 ++++++++++++++++--------- lisp/net/tramp-gvfs.el | 5 +++-- lisp/net/tramp.el | 5 +++-- 4 files changed, 35 insertions(+), 13 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 97a0f8c5b4..5c7db67dfc 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,16 @@ +2010-05-06 Michael Albinus + + * net/tramp.el (top, with-progress-reporter): Use + `symbol-function' inside `funcall'. + + * net/tramp-compat.el (tramp-compat-file-attributes) + (tramp-compat-delete-file, tramp-compat-delete-directory): Handle + only `wrong-number-of-arguments' error. + + * net/tramp-gvfs.el (tramp-gvfs-handle-copy-file): Fix typo. + (tramp-gvfs-handle-file-selinux-context): Use `symbol-function' + inside `funcall'. + 2010-05-06 Stefan Monnier * minibuffer.el (completion--sreverse, completion--common-suffix): diff --git a/lisp/net/tramp-compat.el b/lisp/net/tramp-compat.el index fe4b3d4146..27a308d857 100644 --- a/lisp/net/tramp-compat.el +++ b/lisp/net/tramp-compat.el @@ -262,7 +262,7 @@ Add the extension of FILENAME, if existing." (tramp-file-name-handler 'file-attributes filename id-format)) (t (condition-case nil (funcall (symbol-function 'file-attributes) filename id-format) - (error (file-attributes filename)))))) + (wrong-number-of-arguments (file-attributes filename)))))) ;; PRESERVE-UID-GID has been introduced with Emacs 23. It does not ;; hurt to ignore it for other (X)Emacs versions. @@ -320,13 +320,20 @@ Add the extension of FILENAME, if existing." ;; FORCE has been introduced with Emacs 24.1. (defun tramp-compat-delete-file (filename &optional force) "Like `delete-file' for Tramp files (compat function)." - (condition-case nil - (funcall (symbol-function 'delete-file) filename force) - ;; This Emacs version does not support the FORCE flag. Setting - ;; `delete-by-moving-to-trash' shall give us the same effect. - (error - (let ((delete-by-moving-to-trash (null force))) - (delete-file filename))))) + (if (null force) + (delete-file filename) + (condition-case nil + (funcall (symbol-function 'delete-file) filename force) + ;; This Emacs version does not support the FORCE flag. Setting + ;; `delete-by-moving-to-trash' shall give us the same effect. + (wrong-number-of-arguments + (let ((delete-by-moving-to-trash + (cond + ((null force) t) + ((boundp 'delete-by-moving-to-trash) + (symbol-value 'delete-by-moving-to-trash)) + (t nil)))) + (delete-file filename)))))) ;; RECURSIVE has been introduced with Emacs 23.2. (defun tramp-compat-delete-directory (directory &optional recursive) @@ -337,7 +344,7 @@ Add the extension of FILENAME, if existing." (funcall (symbol-function 'delete-directory) directory recursive) ;; This Emacs version does not support the RECURSIVE flag. We ;; use the implementation from Emacs 23.2. - (error + (wrong-number-of-arguments (setq directory (directory-file-name (expand-file-name directory))) (if (not (file-symlink-p directory)) (mapc (lambda (file) diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el index 569fca3fe3..f045589a27 100644 --- a/lisp/net/tramp-gvfs.el +++ b/lisp/net/tramp-gvfs.el @@ -525,7 +525,7 @@ is no information where to trace the message.") newname) ok-if-already-exists keep-date preserve-uid-gid))) (when preserve-selinux-context - (setq args (append args (list preserve-uid-gid)))) + (setq args (append args (list preserve-selinux-context)))) (apply 'copy-file args))) (defun tramp-gvfs-handle-delete-directory (directory &optional recursive) @@ -629,7 +629,8 @@ is no information where to trace the message.") (defun tramp-gvfs-handle-file-selinux-context (filename) "Like `file-selinux-context' for Tramp files." - (funcall 'file-selinux-context (tramp-gvfs-fuse-file-name filename))) + (funcall (symbol-function 'file-selinux-context) + (tramp-gvfs-fuse-file-name filename))) (defun tramp-gvfs-handle-file-writable-p (filename) "Like `file-writable-p' for Tramp files." diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 26ef72c6ff..7f0c2f2d78 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -145,7 +145,8 @@ ;; this would load dbus.el. (when (and (featurep 'dbusbind) (condition-case nil - (funcall 'dbus-get-unique-name :session) + (funcall (symbol-function 'dbus-get-unique-name) + :session) (error nil)) (tramp-compat-process-running-p "gvfs-fuse-daemon")) 'tramp-gvfs) @@ -2273,7 +2274,7 @@ FILE must be a local file name on a connection identified via VEC." ;; introduced in Emacs 24.1. (when (<= ,level tramp-verbose) (condition-case nil - (setq pr (funcall 'make-progress-reporter ,message) + (setq pr (funcall (symbol-function 'make-progress-reporter) ,message) tm (run-at-time 3 0.1 'progress-reporter-update pr)) (error nil))) (unwind-protect -- 2.39.2