emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r100204: * net/tramp-compat.el (byte-


From: Michael Albinus
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r100204: * net/tramp-compat.el (byte-compile-not-obsolete-vars): Define if
Date: Sun, 09 May 2010 21:57:55 +0200
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 100204
committer: Michael Albinus <address@hidden>
branch nick: trunk
timestamp: Sun 2010-05-09 21:57:55 +0200
message:
  * net/tramp-compat.el (byte-compile-not-obsolete-vars): Define if
  not bound.
  (tramp-compat-copy-file): Add PRESERVE-SELINUX-CONTEXT.
  (tramp-compat-funcall): New defmacro.
  (tramp-compat-line-beginning-position)
  (tramp-compat-line-end-position)
  (tramp-compat-temporary-file-directory)
  (tramp-compat-make-temp-file, tramp-compat-file-attributes)
  (tramp-compat-copy-file, tramp-compat-copy-directory)
  (tramp-compat-delete-file, tramp-compat-delete-directory)
  (tramp-compat-number-sequence, tramp-compat-process-running-p)
  * net/tramp.el (top, with-progress-reporter)
  (tramp-rfn-eshadow-setup-minibuffer)
  (tramp-rfn-eshadow-update-overlay, tramp-handle-set-file-times)
  (tramp-handle-dired-compress-file, tramp-handle-shell-command)
  (tramp-completion-mode-p, tramp-check-for-regexp)
  (tramp-open-connection-setup-interactive-shell)
  (tramp-compute-multi-hops, tramp-read-passwd, tramp-clear-passwd)
  (tramp-time-diff, tramp-coding-system-change-eol-conversion)
  (tramp-set-process-query-on-exit-flag, tramp-unload-tramp)
  * net/tramp-cmds.el (tramp-cleanup-all-connections)
  (tramp-reporter-dump-variable, tramp-load-report-modules)
  (tramp-append-tramp-buffers)
  * net/tramp-gvfs.el (tramp-gvfs-handle-file-selinux-context): Use it.
  
  * net/tramp-imap.el (top): Autoload `epg-make-context'.
modified:
  lisp/ChangeLog
  lisp/net/tramp-cmds.el
  lisp/net/tramp-compat.el
  lisp/net/tramp-gvfs.el
  lisp/net/tramp-imap.el
  lisp/net/tramp.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2010-05-08 20:51:08 +0000
+++ b/lisp/ChangeLog    2010-05-09 19:57:55 +0000
@@ -1,3 +1,32 @@
+2010-05-09  Michael Albinus  <address@hidden>
+
+       * net/tramp-compat.el (byte-compile-not-obsolete-vars): Define if
+       not bound.
+       (tramp-compat-copy-file): Add PRESERVE-SELINUX-CONTEXT.
+       (tramp-compat-funcall): New defmacro.
+       (tramp-compat-line-beginning-position)
+       (tramp-compat-line-end-position)
+       (tramp-compat-temporary-file-directory)
+       (tramp-compat-make-temp-file, tramp-compat-file-attributes)
+       (tramp-compat-copy-file, tramp-compat-copy-directory)
+       (tramp-compat-delete-file, tramp-compat-delete-directory)
+       (tramp-compat-number-sequence, tramp-compat-process-running-p)
+       * net/tramp.el (top, with-progress-reporter)
+       (tramp-rfn-eshadow-setup-minibuffer)
+       (tramp-rfn-eshadow-update-overlay, tramp-handle-set-file-times)
+       (tramp-handle-dired-compress-file, tramp-handle-shell-command)
+       (tramp-completion-mode-p, tramp-check-for-regexp)
+       (tramp-open-connection-setup-interactive-shell)
+       (tramp-compute-multi-hops, tramp-read-passwd, tramp-clear-passwd)
+       (tramp-time-diff, tramp-coding-system-change-eol-conversion)
+       (tramp-set-process-query-on-exit-flag, tramp-unload-tramp)
+       * net/tramp-cmds.el (tramp-cleanup-all-connections)
+       (tramp-reporter-dump-variable, tramp-load-report-modules)
+       (tramp-append-tramp-buffers)
+       * net/tramp-gvfs.el (tramp-gvfs-handle-file-selinux-context): Use it.
+
+       * net/tramp-imap.el (top): Autoload `epg-make-context'.
+
 2010-05-08  Stefan Monnier  <address@hidden>
 
        * progmodes/compile.el (compilation-buffer-modtime): Rename from

=== modified file 'lisp/net/tramp-cmds.el'
--- a/lisp/net/tramp-cmds.el    2010-01-13 08:35:10 +0000
+++ b/lisp/net/tramp-cmds.el    2010-05-09 19:57:55 +0000
@@ -106,8 +106,7 @@
   (setq tramp-locked nil)
 
   ;; Flush password cache.
-  (when (functionp 'password-reset)
-    (funcall (symbol-function 'password-reset)))
+  (tramp-compat-funcall 'password-reset)
 
   ;; Flush file and connection cache.
   (clrhash tramp-cache-data)
@@ -254,7 +253,7 @@
                              (base64-encode-string val))))))
 
     ;; Dump variable.
-    (funcall (symbol-function 'reporter-dump-variable) varsym mailbuf)
+    (tramp-compat-funcall 'reporter-dump-variable varsym mailbuf)
 
     (unless (hash-table-p val)
       ;; Remove string quotation.
@@ -283,10 +282,8 @@
        (load "mml" 'noerror))
     (require 'message nil 'noerror)
     (require 'mml nil 'noerror))
-  (when (functionp 'message-mode)
-    (funcall (symbol-function 'message-mode)))
-  (when (functionp 'mml-mode)
-    (funcall (symbol-function 'mml-mode) t)))
+  (tramp-compat-funcall 'message-mode)
+  (tramp-compat-funcall 'mml-mode t))
 
 (defun tramp-append-tramp-buffers ()
   "Append Tramp buffers and buffer local variables into the bug report."
@@ -308,15 +305,14 @@
        (erase-buffer)
        (insert "\n(setq\n")
        (lisp-indent-line)
-       (funcall (symbol-function 'reporter-dump-variable)
-                'buffer-name (current-buffer))
+       (tramp-compat-funcall
+        'reporter-dump-variable 'buffer-name (current-buffer))
        (dolist (varsym-or-cons-cell (buffer-local-variables buffer))
          (let ((varsym (or (car-safe varsym-or-cons-cell)
                            varsym-or-cons-cell)))
            (when (string-match "tramp" (symbol-name varsym))
-             (funcall
-              (symbol-function 'reporter-dump-variable)
-              varsym (current-buffer)))))
+             (tramp-compat-funcall
+              'reporter-dump-variable varsym (current-buffer)))))
        (lisp-indent-line)
        (insert ")\n"))
       (insert-buffer-substring elbuf)))
@@ -328,7 +324,7 @@
         (symbol-value 'mml-mode))
 
     (let ((tramp-buf-regexp "\\*\\(debug \\)?tramp/")
-         (buffer-list (funcall (symbol-function 'tramp-list-tramp-buffers)))
+         (buffer-list (tramp-compat-funcall 'tramp-list-tramp-buffers))
          (curbuf (current-buffer)))
 
       ;; There is at least one Tramp buffer.
@@ -376,10 +372,10 @@
 use another mail agent (by copying the contents of this buffer)
 please ensure that the buffers are attached to your email.\n\n")
              (dolist (buffer buffer-list)
-               (funcall (symbol-function 'mml-insert-empty-tag)
-                        'part 'type "text/plain" 'encoding "base64"
-                        'disposition "attachment" 'buffer buffer
-                        'description buffer))
+               (tramp-compat-funcall
+                'mml-insert-empty-tag 'part 'type "text/plain"
+                'encoding "base64" 'disposition "attachment" 'buffer buffer
+                'description buffer))
              (set-buffer-modified-p nil))
 
          ;; Don't send.  Delete the message buffer.

=== modified file 'lisp/net/tramp-compat.el'
--- a/lisp/net/tramp-compat.el  2010-05-06 08:40:06 +0000
+++ b/lisp/net/tramp-compat.el  2010-05-09 19:57:55 +0000
@@ -89,14 +89,25 @@
   (unless (boundp 'byte-compile-not-obsolete-var)
     (defvar byte-compile-not-obsolete-var nil))
   (setq byte-compile-not-obsolete-var 'directory-sep-char)
-  (if (boundp 'byte-compile-not-obsolete-vars) ; Emacs 23.2
-      (setq byte-compile-not-obsolete-vars '(directory-sep-char)))
+  ;; Emacs 23.2.
+  (unless (boundp 'byte-compile-not-obsolete-vars)
+    (defvar byte-compile-not-obsolete-vars nil))
+  (setq byte-compile-not-obsolete-vars '(directory-sep-char))
 
   ;; `with-temp-message' does not exists in XEmacs.
   (condition-case nil
       (with-temp-message (current-message) nil)
     (error (defmacro with-temp-message (message &rest body) `(progn ,@body))))
 
+  ;; For not existing functions, or functions with a changed argument
+  ;; list, there are compiler warnings.  We want to avoid them in
+  ;; cases we know what we do.
+  (defmacro tramp-compat-funcall (function &rest arguments)
+    (if (featurep 'xemacs)
+       `(funcall (symbol-function ,function) ,@arguments)
+      `(when (or (subrp ,function) (functionp ,function))
+        (with-no-warnings (funcall ,function ,@arguments)))))
+
   ;; `set-buffer-multibyte' comes from Emacs Leim.
   (unless (fboundp 'set-buffer-multibyte)
     (defalias 'set-buffer-multibyte 'ignore))
@@ -182,8 +193,8 @@
 own implementation."
   (cond
    ((fboundp 'line-beginning-position)
-    (funcall (symbol-function 'line-beginning-position)))
-   ((fboundp 'point-at-bol) (funcall (symbol-function 'point-at-bol)))
+    (tramp-compat-funcall 'line-beginning-position))
+   ((fboundp 'point-at-bol) (tramp-compat-funcall 'point-at-bol))
    (t (save-excursion (beginning-of-line) (point)))))
 
 (defsubst tramp-compat-line-end-position ()
@@ -191,8 +202,8 @@
 Calls `line-end-position' or `point-at-eol' if defined, else
 own implementation."
   (cond
-   ((fboundp 'line-end-position) (funcall (symbol-function 
'line-end-position)))
-   ((fboundp 'point-at-eol)     (funcall (symbol-function 'point-at-eol)))
+   ((fboundp 'line-end-position) (tramp-compat-funcall 'line-end-position))
+   ((fboundp 'point-at-eol) (tramp-compat-funcall 'point-at-eol))
    (t (save-excursion (end-of-line) (point)))))
 
 (defsubst tramp-compat-temporary-file-directory ()
@@ -201,7 +212,7 @@
 this is the function `temp-directory'."
   (cond
    ((boundp 'temporary-file-directory) (symbol-value 
'temporary-file-directory))
-   ((fboundp 'temp-directory) (funcall (symbol-function 'temp-directory)))
+   ((fboundp 'temp-directory) (tramp-compat-funcall 'temp-directory))
    ((let ((d (getenv "TEMP"))) (and d (file-directory-p d)))
     (file-name-as-directory (getenv "TEMP")))
    ((let ((d (getenv "TMP"))) (and d (file-directory-p d)))
@@ -227,8 +238,7 @@
         result)
     (if (fboundp 'make-temp-file)
        (setq result
-             (funcall
-              (symbol-function 'make-temp-file) prefix dir-flag extension))
+             (tramp-compat-funcall 'make-temp-file prefix dir-flag extension))
       ;; We use our own implementation, taken from files.el.
       (while
          (condition-case ()
@@ -261,19 +271,27 @@
    ((tramp-tramp-file-p filename)
     (tramp-file-name-handler 'file-attributes filename id-format))
    (t (condition-case nil
-         (funcall (symbol-function 'file-attributes) filename id-format)
+         (tramp-compat-funcall 'file-attributes filename id-format)
        (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.
+;; PRESERVE-SELINUX-CONTEXT has been introduced with Emacs 24.
 (defun tramp-compat-copy-file
-  (filename newname &optional ok-if-already-exists keep-date preserve-uid-gid)
+  (filename newname &optional ok-if-already-exists keep-date
+           preserve-uid-gid preserve-selinux-context)
   "Like `copy-file' for Tramp files (compat function)."
-  (if preserve-uid-gid
-      (funcall
-       (symbol-function 'copy-file)
-       filename newname ok-if-already-exists keep-date preserve-uid-gid)
-    (copy-file filename newname ok-if-already-exists keep-date)))
+  (cond
+   (preserve-selinux-context
+    (tramp-compat-funcall
+     'copy-file filename newname ok-if-already-exists keep-date
+     preserve-uid-gid preserve-selinux-context))
+   (preserve-uid-gid
+    (tramp-compat-funcall
+     'copy-file filename newname ok-if-already-exists keep-date
+     preserve-uid-gid))
+   (t
+    (copy-file filename newname ok-if-already-exists keep-date))))
 
 ;; `copy-directory' is a new function in Emacs 23.2.  Implementation
 ;; is taken from there.
@@ -281,8 +299,7 @@
   (directory newname &optional keep-time parents)
   "Make a copy of DIRECTORY (compat function)."
   (if (fboundp 'copy-directory)
-      (funcall
-       (symbol-function 'copy-directory) directory newname keep-time parents)
+      (tramp-compat-funcall 'copy-directory directory newname keep-time 
parents)
 
     ;; If `default-directory' is a remote directory, make sure we find
     ;; its `copy-directory' handler.
@@ -323,7 +340,7 @@
   (if (null force)
       (delete-file filename)
     (condition-case nil
-       (funcall (symbol-function 'delete-file) filename force)
+       (tramp-compat-funcall '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
@@ -341,7 +358,7 @@
   (if (null recursive)
       (delete-directory directory)
     (condition-case nil
-       (funcall (symbol-function 'delete-directory) directory recursive)
+       (tramp-compat-funcall 'delete-directory directory recursive)
       ;; This Emacs version does not support the RECURSIVE flag.  We
       ;; use the implementation from Emacs 23.2.
       (wrong-number-of-arguments
@@ -360,7 +377,7 @@
 (defun tramp-compat-number-sequence (from &optional to inc)
   "Return a sequence of numbers from FROM to TO as a list (compat function)."
   (if (or (subrp 'number-sequence) (symbol-file 'number-sequence))
-      (funcall (symbol-function 'number-sequence) from to inc)
+      (tramp-compat-funcall 'number-sequence from to inc)
     (if (or (not to) (= from to))
        (list from)
       (or inc (setq inc 1))
@@ -390,15 +407,13 @@
     (cond
      ;; GNU Emacs 22 on w32.
      ((fboundp 'w32-window-exists-p)
-      (funcall (symbol-function 'w32-window-exists-p)
-              process-name process-name))
+      (tramp-compat-funcall 'w32-window-exists-p process-name process-name))
 
      ;; GNU Emacs 23.
      ((and (fboundp 'list-system-processes) (fboundp 'process-attributes))
       (let (result)
-       (dolist (pid (funcall (symbol-function 'list-system-processes)) result)
-         (let ((attributes
-                (funcall (symbol-function 'process-attributes) pid)))
+       (dolist (pid (tramp-compat-funcall 'list-system-processes) result)
+         (let ((attributes (tramp-compat-funcall 'process-attributes pid)))
            (when (and (string-equal
                         (cdr (assoc 'user attributes)) (user-login-name))
                        (let ((comm (cdr (assoc 'comm attributes))))

=== modified file 'lisp/net/tramp-gvfs.el'
--- a/lisp/net/tramp-gvfs.el    2010-05-06 08:40:06 +0000
+++ b/lisp/net/tramp-gvfs.el    2010-05-09 19:57:55 +0000
@@ -629,8 +629,8 @@
 
 (defun tramp-gvfs-handle-file-selinux-context (filename)
   "Like `file-selinux-context' for Tramp files."
-  (funcall (symbol-function 'file-selinux-context)
-          (tramp-gvfs-fuse-file-name filename)))
+  (tramp-compat-funcall
+   'file-selinux-context (tramp-gvfs-fuse-file-name filename)))
 
 (defun tramp-gvfs-handle-file-writable-p (filename)
   "Like `file-writable-p' for Tramp files."

=== modified file 'lisp/net/tramp-imap.el'
--- a/lisp/net/tramp-imap.el    2010-05-05 10:20:23 +0000
+++ b/lisp/net/tramp-imap.el    2010-05-09 19:57:55 +0000
@@ -63,6 +63,7 @@
 (autoload 'epg-context-set-progress-callback "epg")
 (autoload 'epg-decrypt-string "epg")
 (autoload 'epg-encrypt-string "epg")
+(autoload 'epg-make-context "epg")
 (autoload 'imap-hash-get "imap-hash")
 (autoload 'imap-hash-make "imap-hash")
 (autoload 'imap-hash-map "imap-hash")

=== modified file 'lisp/net/tramp.el'
--- a/lisp/net/tramp.el 2010-05-06 08:40:06 +0000
+++ b/lisp/net/tramp.el 2010-05-09 19:57:55 +0000
@@ -145,8 +145,7 @@
         ;; this would load dbus.el.
         (when (and (featurep 'dbusbind)
                    (condition-case nil
-                       (funcall (symbol-function 'dbus-get-unique-name)
-                                :session)
+                       (tramp-compat-funcall 'dbus-get-unique-name :session)
                      (error nil))
                    (tramp-compat-process-running-p "gvfs-fuse-daemon"))
           'tramp-gvfs)
@@ -2274,14 +2273,14 @@
      ;; introduced in Emacs 24.1.
      (when (<= ,level tramp-verbose)
        (condition-case nil
-          (setq pr (funcall (symbol-function 'make-progress-reporter) ,message)
-                tm (run-at-time 3 0.1 'progress-reporter-update pr))
+          (setq pr (tramp-compat-funcall 'make-progress-reporter ,message)
+                tm (if pr (run-at-time 3 0.1 'progress-reporter-update pr)))
         (error nil)))
      (unwind-protect
         ;; Execute the body.
         (progn ,@body)
        ;; Stop progress reporter.
-       (if tm (cancel-timer tm))
+       (if tm (tramp-compat-funcall 'cancel-timer tm))
        (tramp-message ,vec ,level "%s...done" ,message))))
 
 (put 'with-progress-reporter 'lisp-indent-function 3)
@@ -2398,15 +2397,16 @@
 special handling of `substitute-in-file-name'."
   (when (symbol-value 'minibuffer-completing-file-name)
     (setq tramp-rfn-eshadow-overlay
-         (funcall (symbol-function 'make-overlay)
-                  (funcall (symbol-function 'minibuffer-prompt-end))
-                  (funcall (symbol-function 'minibuffer-prompt-end))))
+         (tramp-compat-funcall
+          'make-overlay
+          (tramp-compat-funcall 'minibuffer-prompt-end)
+          (tramp-compat-funcall 'minibuffer-prompt-end)))
     ;; Copy rfn-eshadow-overlay properties.
-    (let ((props (funcall (symbol-function 'overlay-properties)
-                         (symbol-value 'rfn-eshadow-overlay))))
+    (let ((props (tramp-compat-funcall
+                 'overlay-properties (symbol-value 'rfn-eshadow-overlay))))
       (while props
-       (funcall (symbol-function 'overlay-put)
-                tramp-rfn-eshadow-overlay (pop props) (pop props))))))
+       (tramp-compat-funcall
+        'overlay-put tramp-rfn-eshadow-overlay (pop props) (pop props))))))
 
 (when (boundp 'rfn-eshadow-setup-minibuffer-hook)
   (add-hook 'rfn-eshadow-setup-minibuffer-hook
@@ -2425,10 +2425,12 @@
 `file-name-shadow-mode'; the minibuffer should have already
 been set up by `rfn-eshadow-setup-minibuffer'."
   ;; In remote files name, there is a shadowing just for the local part.
-  (let ((end (or (funcall (symbol-function 'overlay-end)
-                         (symbol-value 'rfn-eshadow-overlay))
-                (funcall (symbol-function 'minibuffer-prompt-end)))))
-    (when (file-remote-p (buffer-substring-no-properties end (point-max)))
+  (let ((end (or (tramp-compat-funcall
+                 'overlay-end (symbol-value 'rfn-eshadow-overlay))
+                (tramp-compat-funcall 'minibuffer-prompt-end))))
+    (when
+       (file-remote-p
+        (tramp-compat-funcall 'buffer-substring-no-properties end (point-max)))
       (save-excursion
        (save-restriction
          (narrow-to-region
@@ -2438,8 +2440,9 @@
           (point-max))
          (let ((rfn-eshadow-overlay tramp-rfn-eshadow-overlay)
                (rfn-eshadow-update-overlay-hook nil))
-           (move-overlay rfn-eshadow-overlay (point-max) (point-max))
-           (funcall (symbol-function 'rfn-eshadow-update-overlay))))))))
+           (tramp-compat-funcall
+            'move-overlay rfn-eshadow-overlay (point-max) (point-max))
+           (tramp-compat-funcall 'rfn-eshadow-update-overlay)))))))
 
 (when (boundp 'rfn-eshadow-update-overlay-hook)
   (add-hook 'rfn-eshadow-update-overlay-hook
@@ -2989,9 +2992,8 @@
                ;; local host.
                (and (functionp 'subr-arity)
                     (subrp (symbol-function 'format-time-string))
-                    (= 3 (cdr (funcall (symbol-function 'subr-arity)
-                                       (symbol-function
-                                        'format-time-string)))))))
+                    (= 3 (cdr (tramp-compat-funcall
+                               'subr-arity 'format-time-string))))))
           (tramp-send-command-and-check
            v (format "%s touch -t %s %s"
                      (if utc "TZ=UTC; export TZ;" "")
@@ -4157,8 +4159,8 @@
                        (tramp-send-command-and-check
                         v (concat (nth 2 suffix) " "
                                   (tramp-shell-quote-argument localname))))
-                  ;; `dired-remove-file' is not defined in XEmacs
-                  (funcall (symbol-function 'dired-remove-file) file)
+                  ;; `dired-remove-file' is not defined in XEmacs.
+                  (tramp-compat-funcall 'dired-remove-file file)
                   (string-match (car suffix) file)
                   (concat (substring file 0 (match-beginning 0))))))
              (t
@@ -4169,8 +4171,8 @@
                        (tramp-send-command-and-check
                         v (concat "gzip -f "
                                   (tramp-shell-quote-argument localname))))
-                  ;; `dired-remove-file' is not defined in XEmacs
-                  (funcall (symbol-function 'dired-remove-file) file)
+                  ;; `dired-remove-file' is not defined in XEmacs.
+                  (tramp-compat-funcall 'dired-remove-file file)
                   (cond ((file-exists-p (concat file ".gz"))
                          (concat file ".gz"))
                         ((file-exists-p (concat file ".z"))
@@ -4714,8 +4716,7 @@
          ;; There's some output, display it.
          (when (with-current-buffer output-buffer (> (point-max) (point-min)))
            (if (functionp 'display-message-or-buffer)
-               (funcall (symbol-function 'display-message-or-buffer)
-                        output-buffer)
+               (tramp-compat-funcall 'display-message-or-buffer output-buffer)
              (pop-to-buffer output-buffer))))))))
 
 ;; File Editing.
@@ -5638,7 +5639,8 @@
              (featurep 'tramp) ;; If it's loaded, we may as well use it.
             ;; `partial-completion-mode' does not exist in XEmacs.
             ;; It is obsoleted with Emacs 24.1.
-             (and (boundp 'partial-completion-mode) partial-completion-mode)
+             (and (boundp 'partial-completion-mode)
+                 (symbol-value 'partial-completion-mode))
              ;; FIXME: These may have been loaded even if the user never
              ;; intended to use them.
              (featurep 'ido)
@@ -5730,19 +5732,18 @@
        ;; `last-input-event' might be nil.
        (not (null last-input-event))
        ;; `last-input-event' may have no character approximation.
-       (funcall (symbol-function 'event-to-character) last-input-event)
+       (tramp-compat-funcall 'event-to-character last-input-event)
        (or
         ;; ?\t has event-modifier 'control.
         (equal
-         (funcall (symbol-function 'event-to-character)
-                  last-input-event) ?\t)
+         (tramp-compat-funcall 'event-to-character last-input-event) ?\t)
         (and (not (event-modifiers last-input-event))
              (or (equal
-                  (funcall (symbol-function 'event-to-character)
-                           last-input-event) ?\?)
+                  (tramp-compat-funcall 'event-to-character last-input-event)
+                  ?\?)
                  (equal
-                  (funcall (symbol-function 'event-to-character)
-                           last-input-event) ?\ )))))))
+                  (tramp-compat-funcall 'event-to-character last-input-event)
+                  ?\ )))))))
 
 (defun tramp-connectable-p (filename)
   "Check, whether it is possible to connect the remote host w/o side-effects.
@@ -6777,10 +6778,11 @@
     (when (or (not (tramp-get-connection-property proc "check-remote-echo" 
nil))
              ;; Sometimes, the echo string is suppressed on the remote side.
              (not (string-equal
-                   (substring-no-properties
-                    tramp-echo-mark-marker
+                   (tramp-compat-funcall
+                    'substring-no-properties tramp-echo-mark-marker
                     0 (min tramp-echo-mark-marker-length (1- (point-max))))
-                   (buffer-substring-no-properties
+                   (tramp-compat-funcall
+                    'buffer-substring-no-properties
                     1 (min (1+ tramp-echo-mark-marker-length) (point-max))))))
       ;; No echo to be handled, now we can look for the regexp.
       (goto-char (point-min))
@@ -6907,7 +6909,7 @@
     (if (featurep 'mule)
        ;; Use MULE to select the right EOL convention for communicating
        ;; with the process.
-       (let* ((cs (or (funcall (symbol-function 'process-coding-system) proc)
+       (let* ((cs (or (tramp-compat-funcall 'process-coding-system proc)
                       (cons 'undecided 'undecided)))
               cs-decode cs-encode)
          (when (symbolp cs) (setq cs (cons cs cs)))
@@ -6920,8 +6922,8 @@
          (when (search-forward "\r" nil t)
            (setq cs-decode (tramp-coding-system-change-eol-conversion
                             cs-decode 'dos)))
-         (funcall (symbol-function 'set-buffer-process-coding-system)
-                  cs-decode cs-encode)
+         (tramp-compat-funcall
+          'set-buffer-process-coding-system cs-decode cs-encode)
          (tramp-message
           vec 5 "Setting coding system to `%s' and `%s'" cs-decode cs-encode))
       ;; Look for ^M and do something useful if found.
@@ -6950,7 +6952,7 @@
        ;; Keep the debug buffer.
        (rename-buffer
         (generate-new-buffer-name tramp-temp-buffer-name) 'unique)
-       (funcall (symbol-function 'tramp-cleanup-connection) vec)
+       (tramp-compat-funcall 'tramp-cleanup-connection vec)
        (if (= (point-min) (point-max))
            (kill-buffer nil)
          (rename-buffer (tramp-debug-buffer-name vec) 'unique))
@@ -7333,7 +7335,7 @@
         'target-alist
         (vector
          (tramp-file-name-method hop) (tramp-file-name-user hop)
-         (funcall (symbol-function 'tramp-gw-open-connection) vec gw hop) nil))
+         (tramp-compat-funcall 'tramp-gw-open-connection vec gw hop) nil))
        ;; For the password prompt, we need the correct values.
        ;; Therefore, we must remember the gateway vector.  But we
        ;; cannot do it as connection property, because it shouldn't
@@ -8612,16 +8614,17 @@
           (and (boundp 'auth-sources)
                (tramp-get-connection-property v "first-password-request" nil)
                ;; Try with Tramp's current method.
-               (funcall (symbol-function 'auth-source-user-or-password)
-                        "password" tramp-current-host tramp-current-method))
+               (tramp-compat-funcall
+                'auth-source-user-or-password
+                "password" tramp-current-host tramp-current-method))
           ;; Try the password cache.
           (when (functionp 'password-read)
             (unless (tramp-get-connection-property
                      v "first-password-request" nil)
-              (funcall (symbol-function 'password-cache-remove) key))
+              (tramp-compat-funcall 'password-cache-remove key))
             (let ((password
-                   (funcall (symbol-function 'password-read) pw-prompt key)))
-              (funcall (symbol-function 'password-cache-add) key password)
+                   (tramp-compat-funcall 'password-read pw-prompt key)))
+              (tramp-compat-funcall 'password-cache-add key password)
               password))
           ;; Else, get the password interactively.
           (read-passwd pw-prompt))
@@ -8629,14 +8632,13 @@
 
 (defun tramp-clear-passwd (vec)
   "Clear password cache for connection related to VEC."
-  (when (functionp 'password-cache-remove)
-    (funcall
-     (symbol-function 'password-cache-remove)
-     (tramp-make-tramp-file-name
-      (tramp-file-name-method vec)
-      (tramp-file-name-user vec)
-      (tramp-file-name-host vec)
-      ""))))
+  (tramp-compat-funcall
+   'password-cache-remove
+   (tramp-make-tramp-file-name
+    (tramp-file-name-method vec)
+    (tramp-file-name-user vec)
+    (tramp-file-name-host vec)
+    "")))
 
 ;; Snarfed code from time-date.el and parse-time.el
 
@@ -8673,16 +8675,17 @@
   ;; Pacify byte-compiler with `symbol-function'.
   (cond ((and (fboundp 'subtract-time)
              (fboundp 'float-time))
-         (funcall (symbol-function 'float-time)
-                 (funcall (symbol-function 'subtract-time) t1 t2)))
+         (tramp-compat-funcall
+         'float-time (tramp-compat-funcall 'subtract-time t1 t2)))
        ((and (fboundp 'subtract-time)
              (fboundp 'time-to-seconds))
-         (funcall (symbol-function 'time-to-seconds)
-                 (funcall (symbol-function 'subtract-time) t1 t2)))
+         (tramp-compat-funcall
+         'time-to-seconds (tramp-compat-funcall 'subtract-time t1 t2)))
         ((fboundp 'itimer-time-difference)
-        (funcall (symbol-function 'itimer-time-difference)
-                 (if (< (length t1) 3) (append t1 '(0)) t1)
-                 (if (< (length t2) 3) (append t2 '(0)) t2)))
+        (tramp-compat-funcall
+         'itimer-time-difference
+         (if (< (length t1) 3) (append t1 '(0)) t1)
+         (if (< (length t2) 3) (append t2 '(0)) t2)))
         (t
         (let ((time (tramp-time-subtract t1 t2)))
           (+ (* (car time) 65536.0)
@@ -8693,18 +8696,18 @@
   "Return a coding system like CODING-SYSTEM but with given EOL-TYPE.
 EOL-TYPE can be one of `dos', `unix', or `mac'."
   (cond ((fboundp 'coding-system-change-eol-conversion)
-         (funcall (symbol-function 'coding-system-change-eol-conversion)
-                 coding-system eol-type))
+         (tramp-compat-funcall
+         'coding-system-change-eol-conversion coding-system eol-type))
         ((fboundp 'subsidiary-coding-system)
-         (funcall (symbol-function 'subsidiary-coding-system)
-                 coding-system
-                 (cond ((eq eol-type 'dos) 'crlf)
-                       ((eq eol-type 'unix) 'lf)
-                       ((eq eol-type 'mac) 'cr)
-                       (t
-                        (error "Unknown EOL-TYPE `%s', must be %s"
-                               eol-type
-                               "`dos', `unix', or `mac'")))))
+         (tramp-compat-funcall
+         'subsidiary-coding-system coding-system
+         (cond ((eq eol-type 'dos) 'crlf)
+               ((eq eol-type 'unix) 'lf)
+               ((eq eol-type 'mac) 'cr)
+               (t
+                (error "Unknown EOL-TYPE `%s', must be %s"
+                       eol-type
+                       "`dos', `unix', or `mac'")))))
         (t (error "Can't change EOL conversion -- is MULE missing?"))))
 
 (defun tramp-set-process-query-on-exit-flag (process flag)
@@ -8712,8 +8715,8 @@
 If the second argument flag is non-nil, Emacs will query the user before
 exiting if process is running."
   (if (fboundp 'set-process-query-on-exit-flag)
-      (funcall (symbol-function 'set-process-query-on-exit-flag) process flag)
-    (funcall (symbol-function 'process-kill-without-query) process flag)))
+      (tramp-compat-funcall 'set-process-query-on-exit-flag process flag)
+    (tramp-compat-funcall 'process-kill-without-query) process flag))
 
 
 ;; ------------------------------------------------------------
@@ -8773,8 +8776,7 @@
   ;; When Tramp is not loaded yet, its autoloads are still active.
   (tramp-unload-file-name-handlers)
   ;; ange-ftp settings must be enabled.
-  (when (functionp 'tramp-ftp-enable-ange-ftp)
-    (funcall (symbol-function 'tramp-ftp-enable-ange-ftp)))
+  (tramp-compat-funcall 'tramp-ftp-enable-ange-ftp)
   ;; Maybe its not loaded yet.
   (condition-case nil
       (unload-feature 'tramp 'force)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]