emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r99865: Synchronize with Tramp reposi


From: Michael Albinus
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r99865: Synchronize with Tramp repository.
Date: Sat, 10 Apr 2010 14:50:31 +0200
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 99865
committer: Michael Albinus <address@hidden>
branch nick: trunk
timestamp: Sat 2010-04-10 14:50:31 +0200
message:
  Synchronize with Tramp repository.
  
  * net/tramp.el (tramp-completion-function-alist)
  (tramp-file-name-regexp, tramp-chunksize)
  (tramp-local-coding-commands, tramp-remote-coding-commands): Fix
  docstring.
  (tramp-remote-process-environment): Use `format' instead of
  `concat'.
  (tramp-handle-directory-files-and-attributes)
  (tramp-get-remote-path): Use `copy-tree'.
  (tramp-handle-file-name-all-completions): Backward/ XEmacs
  compatibility: Use `completion-ignore-case' if
  `read-file-name-completion-ignore-case' does not exist.
  (tramp-do-copy-or-rename-file-directly): Do not use
  `tramp-handle-file-remote-p'.
  (tramp-do-copy-or-rename-file-out-of-band): Use
  `tramp-compat-delete-directory'.
  (tramp-do-copy-or-rename-file-out-of-band)
  (tramp-compute-multi-hops, tramp-maybe-open-connection): Use
  `format-spec-make'.
  (tramp-find-foreign-file-name-handler)
  (tramp-advice-make-auto-save-file-name)
  (tramp-set-auto-save-file-modes): Remove superfluous check for
  `stringp'.  This is done inside `tramp-tramp-file-p'.
  (tramp-debug-outline-regexp): New defconst.
  (tramp-get-debug-buffer): Use it.
  (tramp-check-for-regexp): Use (forward-line 1).
  (tramp-set-auto-save-file-modes): Adapt version check.
  
  * net/tramp-compat.el (tramp-advice-file-expand-wildcards): Wrap
  call of `featurep' for 2nd argument.
  (tramp-compat-make-temp-file): Simplify fallback implementation.
  (tramp-compat-copy-tree): Remove function.
  (tramp-compat-delete-directory): Provide implementation for older
  Emacsen.
  
  * net/tramp-fish.el (tramp-fish-handle-directory-files-and-attributes):
  Do not use `tramp-fish-handle-file-attributes.
  
  * net/trampver.el: Update release number.
modified:
  lisp/ChangeLog
  lisp/net/tramp-compat.el
  lisp/net/tramp-fish.el
  lisp/net/tramp.el
  lisp/net/trampver.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2010-04-10 02:18:09 +0000
+++ b/lisp/ChangeLog    2010-04-10 12:50:31 +0000
@@ -1,3 +1,46 @@
+2010-04-10  Michael Albinus  <address@hidden>
+
+       Synchronize with Tramp repository.
+
+       * net/tramp.el (tramp-completion-function-alist)
+       (tramp-file-name-regexp, tramp-chunksize)
+       (tramp-local-coding-commands, tramp-remote-coding-commands): Fix
+       docstring.
+       (tramp-remote-process-environment): Use `format' instead of
+       `concat'.
+       (tramp-handle-directory-files-and-attributes)
+       (tramp-get-remote-path): Use `copy-tree'.
+       (tramp-handle-file-name-all-completions): Backward/ XEmacs
+       compatibility: Use `completion-ignore-case' if
+       `read-file-name-completion-ignore-case' does not exist.
+       (tramp-do-copy-or-rename-file-directly): Do not use
+       `tramp-handle-file-remote-p'.
+       (tramp-do-copy-or-rename-file-out-of-band): Use
+       `tramp-compat-delete-directory'.
+       (tramp-do-copy-or-rename-file-out-of-band)
+       (tramp-compute-multi-hops, tramp-maybe-open-connection): Use
+       `format-spec-make'.
+       (tramp-find-foreign-file-name-handler)
+       (tramp-advice-make-auto-save-file-name)
+       (tramp-set-auto-save-file-modes): Remove superfluous check for
+       `stringp'.  This is done inside `tramp-tramp-file-p'.
+       (tramp-debug-outline-regexp): New defconst.
+       (tramp-get-debug-buffer): Use it.
+       (tramp-check-for-regexp): Use (forward-line 1).
+       (tramp-set-auto-save-file-modes): Adapt version check.
+
+       * net/tramp-compat.el (tramp-advice-file-expand-wildcards): Wrap
+       call of `featurep' for 2nd argument.
+       (tramp-compat-make-temp-file): Simplify fallback implementation.
+       (tramp-compat-copy-tree): Remove function.
+       (tramp-compat-delete-directory): Provide implementation for older
+       Emacsen.
+
+       * net/tramp-fish.el (tramp-fish-handle-directory-files-and-attributes):
+       Do not use `tramp-fish-handle-file-attributes.
+
+       * net/trampver.el: Update release number.
+
 2010-04-10  Glenn Morris  <address@hidden>
 
        * progmodes/compile.el (compilation-save-buffers-predicate):

=== modified file 'lisp/net/tramp-compat.el'
--- a/lisp/net/tramp-compat.el  2010-03-02 09:32:45 +0000
+++ b/lisp/net/tramp-compat.el  2010-04-10 12:50:31 +0000
@@ -22,9 +22,9 @@
 
 ;;; Commentary:
 
-;; Tramp's main Emacs version for development is GNU Emacs 23.  This
-;; package provides compatibility functions for GNU Emacs 21, GNU
-;; Emacs 22 and XEmacs 21.4+.
+;; Tramp's main Emacs version for development is GNU Emacs 24.  This
+;; package provides compatibility functions for GNU Emacs 22, GNU
+;; Emacs 23 and XEmacs 21.4+.
 
 ;;; Code:
 
@@ -120,7 +120,7 @@
          (tramp-file-name-handler
           'file-remote-p file identification connected)))))
 
-  ;; `process-file' exists since Emacs 22.
+  ;; `process-file' does not exist in XEmacs.
   (unless (fboundp 'process-file)
     (defalias 'process-file
       (lambda (program &optional infile buffer display &rest args)
@@ -154,7 +154,9 @@
   ;; return the original filename if it can't expand anything.  Let's
   ;; just hope that this doesn't break anything else.
   ;; It is not needed anymore since GNU Emacs 23.2.
-  (unless (or (featurep 'xemacs) (featurep 'files 'remote-wildcards))
+  (unless (or (featurep 'xemacs)
+             ;; `featurep' has only one argument in XEmacs.
+             (funcall 'featurep 'files 'remote-wildcards))
     (defadvice file-expand-wildcards
       (around tramp-advice-file-expand-wildcards activate)
       (let ((name (ad-get-arg 0)))
@@ -211,10 +213,9 @@
                       "`temp-directory' is defined -- using /tmp."))
       (file-name-as-directory "/tmp"))))
 
-;; `make-temp-file' exists in Emacs only.  The third parameter SUFFIX
-;; has been introduced with Emacs 22.  We try it, if it fails, we fall
-;; back to `make-temp-name', creating the temporary file immediately
-;; in order to avoid a security hole.
+;; `make-temp-file' exists in Emacs only.  On XEmacs, we use our own
+;; implementation with `make-temp-name', creating the temporary file
+;; immediately in order to avoid a security hole.
 (defsubst tramp-compat-make-temp-file (filename &optional dir-flag)
   "Create a temporary file (compat function).
 Add the extension of FILENAME, if existing."
@@ -224,43 +225,34 @@
                  (tramp-compat-temporary-file-directory)))
         (extension (file-name-extension filename t))
         result)
-    (condition-case nil
+    (if (fboundp 'make-temp-file)
        (setq result
              (funcall
               (symbol-function 'make-temp-file) prefix dir-flag extension))
-      (error
-       ;; We use our own implementation, taken from files.el.
-       (while
-          (condition-case ()
-              (progn
-                (setq result (concat (make-temp-name prefix) extension))
-                (if dir-flag
-                    (make-directory result)
-                  (write-region
-                   "" nil result nil 'silent nil
-                   ;; 7th parameter is MUSTBENEW in Emacs, and
-                   ;; CODING-SYSTEM in XEmacs.  It is not a security
-                   ;; hole in XEmacs if we cannot use this parameter,
-                   ;; because XEmacs uses a user-specific
-                   ;; subdirectory with 0700 permissions.
-                   (when (not (featurep 'xemacs)) 'excl)))
-                nil)
-            (file-already-exists t))
-        ;; The file was somehow created by someone else between
-        ;; `make-temp-name' and `write-region', let's try again.
-        nil)))
+      ;; We use our own implementation, taken from files.el.
+      (while
+         (condition-case ()
+             (progn
+               (setq result (concat (make-temp-name prefix) extension))
+               (if dir-flag
+                   (make-directory result)
+                 (write-region "" nil result nil 'silent))
+               nil)
+           (file-already-exists t))
+       ;; The file was somehow created by someone else between
+       ;; `make-temp-name' and `write-region', let's try again.
+       nil))
     result))
 
-;; `most-positive-fixnum' arrived in Emacs 22.  Before, and in XEmacs,
-;; it is a fixed value.
+;; `most-positive-fixnum' does not exist in XEmacs.
 (defsubst tramp-compat-most-positive-fixnum ()
   "Return largest positive integer value (compat function)."
   (cond
    ((boundp 'most-positive-fixnum) (symbol-value 'most-positive-fixnum))
-   ;; Default value in XEmacs and Emacs 21.
+   ;; Default value in XEmacs.
    (t 134217727)))
 
-;; ID-FORMAT exists since Emacs 22.
+;; ID-FORMAT does not exists in XEmacs.
 (defun tramp-compat-file-attributes (filename &optional id-format)
   "Like `file-attributes' for Tramp files (compat function)."
   (cond
@@ -292,8 +284,8 @@
       (funcall
        (symbol-function 'copy-directory) directory newname keep-time parents)
 
-    ;; If default-directory is a remote directory, make sure we find
-    ;; its copy-directory handler.
+    ;; If `default-directory' is a remote directory, make sure we find
+    ;; its `copy-directory' handler.
     (let ((handler (or (find-file-name-handler directory 'copy-directory)
                       (find-file-name-handler newname 'copy-directory))))
       (if handler
@@ -325,32 +317,28 @@
        (if keep-time
            (set-file-times newname (nth 5 (file-attributes directory))))))))
 
-;; `copy-tree' is a built-in function in XEmacs.  In Emacs 21, it is
-;; an autoloaded function in cl-extra.el.  Since Emacs 22, it is part
-;; of subr.el.  There are problems when autoloading, therefore we test
-;; for `subrp' and `symbol-file'.  Implementation is taken from Emacs 23.
-(defun tramp-compat-copy-tree (tree)
-  "Make a copy of TREE (compat function)."
-  (if (or (subrp 'copy-tree) (symbol-file 'copy-tree))
-      (funcall (symbol-function 'copy-tree) tree)
-    (let (result)
-      (while (consp tree)
-       (let ((newcar (car tree)))
-         (if (consp (car tree))
-             (setq newcar (tramp-compat-copy-tree (car tree))))
-         (push newcar result))
-       (setq tree (cdr tree)))
-      (nconc (nreverse result) tree))))
-
 ;; RECURSIVE has been introduced with Emacs 23.2.
 (defun tramp-compat-delete-directory (directory &optional recursive)
   "Like `delete-directory' for Tramp files (compat function)."
-  (if recursive
-      (funcall (symbol-function 'delete-directory) directory recursive)
-    (delete-directory directory)))
+  (if (null recursive)
+      (delete-directory directory)
+    (condition-case nil
+       (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
+       (setq directory (directory-file-name (expand-file-name directory)))
+       (if (not (file-symlink-p directory))
+          (mapc (lambda (file)
+                  (if (eq t (car (file-attributes file)))
+                      (tramp-compat-delete-directory file recursive)
+                    (delete-file file)))
+                (directory-files
+                 directory 'full "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*")))
+       (delete-directory directory)))))
 
-;; `number-sequence' has been introduced in Emacs 22.  Implementation
-;; is taken from Emacs 23.
+;; `number-sequence' does not exist in XEmacs.  Implementation is
+;; taken from Emacs 23.
 (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))

=== modified file 'lisp/net/tramp-fish.el'
--- a/lisp/net/tramp-fish.el    2010-01-13 08:35:10 +0000
+++ b/lisp/net/tramp-fish.el    2010-04-10 12:50:31 +0000
@@ -341,10 +341,10 @@
   "Like `directory-files-and-attributes' for Tramp files."
   (mapcar
    (lambda (x)
-     ;; We cannot call `file-attributes' for backward compatibility reasons.
-     ;; Its optional parameter ID-FORMAT is introduced with Emacs 22.
-     (cons x (tramp-fish-handle-file-attributes
-       (if full x (expand-file-name x directory)) id-format)))
+     (cons x
+          (tramp-compat-file-attributes
+           (if full x (expand-file-name x directory))
+           id-format)))
    (directory-files directory full match nosort)))
 
 (defun tramp-fish-handle-expand-file-name (name &optional dir)
@@ -1030,15 +1030,15 @@
         ;; last line
         ((looking-at "^$")
          (return)))
-       ;; delete line
+       ;; Delete line.
        (forward-line)
        (delete-region (point-min) (point))))
 
-    ;; delete trailing empty line
+    ;; Delete trailing empty line.
     (forward-line)
     (delete-region (point-min) (point))
 
-    ;; Return entry in file-attributes format
+    ;; Return entry in `file-attributes' format.
     (list localname link -1 uid gid '(0 0) mtime '(0 0) size mode nil)))
 
 (defun tramp-fish-retrieve-data (vec)

=== modified file 'lisp/net/tramp.el'
--- a/lisp/net/tramp.el 2010-03-24 18:02:56 +0000
+++ b/lisp/net/tramp.el 2010-04-10 12:50:31 +0000
@@ -36,7 +36,7 @@
 ;; Notes:
 ;; -----
 ;;
-;; This package only works for Emacs 21.1 and higher, and for XEmacs 21.4
+;; This package only works for Emacs 22.1 and higher, and for XEmacs 21.4
 ;; and higher.  For XEmacs 21, you need the package `fsf-compat' for
 ;; the `with-timeout' macro.
 ;;
@@ -79,7 +79,7 @@
            (when (featurep 'tramp-compat)
              (unload-feature 'tramp-compat 'force))))
 
-(require 'format-spec)                  ; from Gnus 5.8, also in tar ball
+(require 'format-spec)
 ;; As long as password.el is not part of (X)Emacs, it shouldn't
 ;; be mandatory
 (if (featurep 'xemacs)
@@ -871,9 +871,9 @@
 
 (defvar tramp-completion-function-alist nil
   "*Alist of methods for remote files.
-This is a list of entries of the form (NAME PAIR1 PAIR2 ...).
+This is a list of entries of the form \(NAME PAIR1 PAIR2 ...\).
 Each NAME stands for a remote access method.  Each PAIR is of the form
-\(FUNCTION FILE).  FUNCTION is responsible to extract user names and host
+\(FUNCTION FILE\).  FUNCTION is responsible to extract user names and host
 names from FILE for completion.  The following predefined FUNCTIONs exists:
 
  * `tramp-parse-rhosts'      for \"~/.rhosts\" like files,
@@ -1025,7 +1025,7 @@
 
 (defcustom tramp-remote-process-environment
   `("HISTFILE=$HOME/.tramp_history" "HISTSIZE=1" "LC_ALL=C"
-    ,(concat "TERM=" tramp-terminal-type)
+    ,(format "TERM=%s" tramp-terminal-type)
     "EMACS=t" ;; Deprecated.
     ,(format "INSIDE_EMACS=%s,tramp:%s" emacs-version tramp-version)
     "CDPATH=" "HISTORY=" "MAIL=" "MAILCHECK=" "MAILPATH="
@@ -1429,14 +1429,14 @@
        (t (error "Wrong `tramp-syntax' defined")))
   "*Regular expression matching file names handled by Tramp.
 This regexp should match Tramp file names but no other file names.
-\(When tramp.el is loaded, this regular expression is prepended to
+When tramp.el is loaded, this regular expression is prepended to
 `file-name-handler-alist', and that is searched sequentially.  Thus,
 if the Tramp entry appears rather early in the `file-name-handler-alist'
 and is a bit too general, then some files might be considered Tramp
 files which are not really Tramp files.
 
 Please note that the entry in `file-name-handler-alist' is made when
-this file (tramp.el) is loaded.  This means that this variable must be set
+this file \(tramp.el\) is loaded.  This means that this variable must be set
 before loading tramp.el.  Alternatively, `file-name-handler-alist' can be
 updated after changing this variable.
 
@@ -1566,18 +1566,18 @@
 
 In the Emacs normally running Tramp, evaluate the above code
 \(replace \"xxx\" and \"yyy\" by the remote user and host name,
-respectively).  You can do this, for example, by pasting it into
+respectively\).  You can do this, for example, by pasting it into
 the `*scratch*' buffer and then hitting C-j with the cursor after the
 last closing parenthesis.  Note that it works only if you have configured
-\"ssh\" to run without password query, see ssh-agent(1).
+\"ssh\" to run without password query, see ssh-agent\(1\).
 
 You will see the number of bytes sent successfully to the remote host.
 If that number exceeds 1000, you can stop the execution by hitting
 C-g, because your Emacs is likely clean.
 
 When it is necessary to set `tramp-chunksize', you might consider to
-use an out-of-the-band method (like \"scp\") instead of an internal one
-\(like \"ssh\"), because setting `tramp-chunksize' to non-nil decreases
+use an out-of-the-band method \(like \"scp\"\) instead of an internal one
+\(like \"ssh\"\), because setting `tramp-chunksize' to non-nil decreases
 performance.
 
 If your Emacs is buggy, the code stops and gives you an indication
@@ -3166,7 +3166,7 @@
   (when (file-directory-p directory)
     (setq directory (expand-file-name directory))
     (let* ((temp
-           (tramp-compat-copy-tree
+           (copy-tree
             (with-parsed-tramp-file-name directory nil
               (with-file-property
                   v localname
@@ -3297,7 +3297,12 @@
                           (tramp-shell-quote-argument localname)
                           (tramp-shell-quote-argument filename)
                           (if (symbol-value
-                              'read-file-name-completion-ignore-case)
+                              ;; `read-file-name-completion-ignore-case'
+                              ;; is introduced with Emacs 22.1.
+                              (if (boundp
+                                   'read-file-name-completion-ignore-case)
+                                  'read-file-name-completion-ignore-case
+                                'completion-ignore-case))
                              1 0)))
 
               (format (concat
@@ -3382,7 +3387,6 @@
             "file-name-all-completions"
             result))))))))
 
-;; The following isn't needed for Emacs 20 but for 19.34?
 (defun tramp-handle-file-name-completion
   (filename directory &optional predicate)
   "Like `file-name-completion' for Tramp files."
@@ -3650,9 +3654,13 @@
                            "Unknown operation `%s', must be `copy' or `rename'"
                            op))))
             (localname1
-             (if t1 (tramp-handle-file-remote-p filename 'localname) filename))
+             (if t1
+                 (tramp-file-name-handler 'file-remote-p filename 'localname)
+               filename))
             (localname2
-             (if t2 (tramp-handle-file-remote-p newname 'localname) newname))
+             (if t2
+                 (tramp-file-name-handler 'file-remote-p newname 'localname)
+               newname))
             (prefix (file-remote-p (if t1 filename newname)))
              cmd-result)
 
@@ -3814,7 +3822,7 @@
              ;; Save exit.
              (condition-case nil
                  (if dir-flag
-                     (delete-directory
+                     (tramp-compat-delete-directory
                       (expand-file-name ".." tmpfile) 'recursive)
                    (delete-file tmpfile))
                (error))))
@@ -3841,10 +3849,11 @@
              port (or (and port (number-to-string port)) ""))
 
        ;; Compose copy command.
-       (setq spec `((?h . ,host) (?u . ,user) (?p . ,port)
-                    (?t . ,(tramp-get-connection-property
-                            (tramp-get-connection-process v) "temp-file" ""))
-                    (?k . ,(if keep-date " " "")))
+       (setq spec (format-spec-make
+                   ?h host ?u user ?p port
+                   ?t (tramp-get-connection-property
+                       (tramp-get-connection-process v) "temp-file" "")
+                   ?k (if keep-date " " ""))
              copy-program (tramp-get-method-parameter
                            method 'tramp-copy-program)
              copy-keep-date (tramp-get-method-parameter
@@ -3934,7 +3943,7 @@
       (unless (eq op 'copy)
        (if (file-regular-p filename)
            (delete-file filename)
-         (delete-directory filename 'recursive))))))
+         (tramp-compat-delete-directory filename 'recursive))))))
 
 (defun tramp-handle-make-directory (dir &optional parents)
   "Like `make-directory' for Tramp files."
@@ -4863,9 +4872,9 @@
   "Like `find-backup-file-name' for Tramp files."
   (with-parsed-tramp-file-name filename nil
     ;; We set both variables. It doesn't matter whether it is
-    ;; Emacs or XEmacs
+    ;; Emacs or XEmacs.
     (let ((backup-directory-alist
-          ;; Emacs case
+          ;; Emacs case.
           (when (boundp 'backup-directory-alist)
             (if (symbol-value 'tramp-backup-directory-alist)
                 (mapcar
@@ -4881,7 +4890,7 @@
               (symbol-value 'backup-directory-alist))))
 
          (bkup-backup-directory-info
-          ;; XEmacs case
+          ;; XEmacs case.
           (when (boundp 'bkup-backup-directory-info)
             (if (symbol-value 'tramp-bkup-backup-directory-info)
                 (mapcar
@@ -5295,7 +5304,7 @@
   "Return file name related to OPERATION file primitive.
 ARGS are the arguments OPERATION has been called with."
   (cond
-   ; FILE resp DIRECTORY
+   ;; FILE resp DIRECTORY.
    ((member operation
            (list 'access-file 'byte-compiler-base-file-name 'delete-directory
                  'delete-file 'diff-latest-backup-file 'directory-file-name
@@ -5313,9 +5322,9 @@
                  'load 'make-directory 'make-directory-internal
                  'set-file-modes 'substitute-in-file-name
                  'unhandled-file-name-directory 'vc-registered
-                 ; Emacs 22 only
+                 ;; Emacs 22+ only.
                  'set-file-times
-                 ; XEmacs only
+                 ;; XEmacs only.
                  'abbreviate-file-name 'create-file-buffer
                  'dired-file-modtime 'dired-make-compressed-filename
                  'dired-recursive-delete-directory 'dired-set-file-modtime
@@ -5325,14 +5334,14 @@
     (if (file-name-absolute-p (nth 0 args))
        (nth 0 args)
       (expand-file-name (nth 0 args))))
-   ; FILE DIRECTORY resp FILE1 FILE2
+   ;; FILE DIRECTORY resp FILE1 FILE2.
    ((member operation
            (list 'add-name-to-file 'copy-file 'expand-file-name
                  'file-name-all-completions 'file-name-completion
                  'file-newer-than-file-p 'make-symbolic-link 'rename-file
-                 ; Emacs 23 only
+                 ;; Emacs 23+ only.
                  'copy-directory
-                 ; XEmacs only
+                 ;; XEmacs only.
                  'dired-make-relative-symlink
                  'vm-imap-move-mail 'vm-pop-move-mail 'vm-spool-move-mail))
     (save-match-data
@@ -5340,39 +5349,39 @@
        ((string-match tramp-file-name-regexp (nth 0 args)) (nth 0 args))
        ((string-match tramp-file-name-regexp (nth 1 args)) (nth 1 args))
        (t (buffer-file-name (current-buffer))))))
-   ; START END FILE
+   ;; START END FILE.
    ((eq operation 'write-region)
     (nth 2 args))
-   ; BUF
+   ;; BUFFER.
    ((member operation
            (list 'set-visited-file-modtime 'verify-visited-file-modtime
-                  ; since Emacs 22 only
+                  ;; Emacs 22+ only.
                  'make-auto-save-file-name
-                 ; XEmacs only
+                 ;; XEmacs only.
                  'backup-buffer))
     (buffer-file-name
      (if (bufferp (nth 0 args)) (nth 0 args) (current-buffer))))
-   ; COMMAND
+   ;; COMMAND.
    ((member operation
-           (list ; not in Emacs 23
+           (list ;; not in Emacs 23+.
                  'dired-call-process
-                  ; Emacs only
+                  ;; Emacs only.
                  'shell-command
-                  ; since Emacs 22 only
+                  ;; Emacs 22+ only.
                   'process-file
-                  ; since Emacs 23 only
+                  ;; Emacs 23+ only.
                   'start-file-process
-                 ; XEmacs only
+                 ;; XEmacs only.
                  'dired-print-file 'dired-shell-call-process
-                 ; nowhere yet
+                 ;; nowhere yet.
                  'executable-find 'start-process 'call-process))
     default-directory)
-   ; unknown file primitive
+   ;; Unknown file primitive.
    (t (error "unknown file I/O primitive: %s" operation))))
 
 (defun tramp-find-foreign-file-name-handler (filename)
   "Return foreign file name handler if exists."
-  (when (and (stringp filename) (tramp-tramp-file-p filename))
+  (when (tramp-tramp-file-p filename)
     (let ((v (tramp-dissect-file-name filename t))
          (handler tramp-foreign-file-name-handler-alist)
          elt res)
@@ -6257,22 +6266,24 @@
        (format "*debug tramp/%s address@hidden" method user host)
       (format "*debug tramp/%s %s*" method host))))
 
+(defconst tramp-debug-outline-regexp
+  "[0-9]+:[0-9]+:[0-9]+\\.[0-9]+ [a-z0-9-]+ (\\([0-9]+\\)) #")
+
 (defun tramp-get-debug-buffer (vec)
   "Get the debug buffer for VEC."
   (with-current-buffer
       (get-buffer-create (tramp-debug-buffer-name vec))
     (when (bobp)
       (setq buffer-undo-list t)
-      ;; Activate outline-mode.  This runs `text-mode-hook' and
+      ;; Activate `outline-mode'.  This runs `text-mode-hook' and
       ;; `outline-mode-hook'.  We must prevent that local processes
-      ;; die.  Yes: I've seen `flyspell-mode', which starts "ispell"
-      ;; ...
-      (let ((default-directory (tramp-compat-temporary-file-directory)))
+      ;; die.  Yes: I've seen `flyspell-mode', which starts "ispell".
+      ;; Furthermore, `outline-regexp' must have the correct value
+      ;; already, because it is used by `font-lock-compile-keywords'.
+      (let ((default-directory (tramp-compat-temporary-file-directory))
+           (outline-regexp tramp-debug-outline-regexp))
        (outline-mode))
-      (set (make-local-variable 'outline-regexp)
-          "[0-9]+:[0-9]+:[0-9]+\\.[0-9]+ [a-z0-9-]+ (\\([0-9]+\\)) #")
-;      (set (make-local-variable 'outline-regexp)
-;         "[a-z.-]+:[0-9]+: [a-z0-9-]+ (\\([0-9]+\\)) #")
+      (set (make-local-variable 'outline-regexp) tramp-debug-outline-regexp)
       (set (make-local-variable 'outline-level) 'tramp-outline-level))
     (current-buffer)))
 
@@ -6307,7 +6318,7 @@
            (setq result (concat "\\" progname))))
       (unless result
        (when ignore-tilde
-         ;; Remove all ~/foo directories from dirlist.  In Emacs 20,
+         ;; Remove all ~/foo directories from dirlist.  In XEmacs,
          ;; `remove' is in CL, and we want to avoid CL dependencies.
          (let (newdl d)
            (while dirlist
@@ -6624,7 +6635,7 @@
          ;; Discard echo from remote output.
          (tramp-set-connection-property proc "check-remote-echo" nil)
          (tramp-message proc 5 "echo-mark found")
-         (forward-line)
+         (forward-line 1)
          (delete-region begin (point))
          (goto-char (point-min)))))
 
@@ -6895,7 +6906,7 @@
   "List of local coding commands for inline transfer.
 Each item is a list that looks like this:
 
-\(FORMAT ENCODING DECODING)
+\(FORMAT ENCODING DECODING\)
 
 FORMAT is  symbol describing the encoding/decoding format.  It can be
 `b64' for base64 encoding, `uu' for uu encoding, or `pack' for simple packing.
@@ -6928,7 +6939,7 @@
   "List of remote coding commands for inline transfer.
 Each item is a list that looks like this:
 
-\(FORMAT ENCODING DECODING)
+\(FORMAT ENCODING DECODING\)
 
 FORMAT is  symbol describing the encoding/decoding format.  It can be
 `b64' for base64 encoding, `uu' for uu encoding, or `pack' for simple packing.
@@ -7089,8 +7100,9 @@
          (setq proxy
                (format-spec
                 proxy
-                `((?u . ,(or (tramp-file-name-user (car target-alist)) ""))
-                  (?h . ,(or (tramp-file-name-host (car target-alist)) "")))))
+                (format-spec-make
+                 ?u (or (tramp-file-name-user (car target-alist)) "")
+                 ?h (or (tramp-file-name-host (car target-alist)) ""))))
          (with-parsed-tramp-file-name proxy l
            ;; Add the hop.
            (add-to-list 'target-alist l)
@@ -7308,8 +7320,7 @@
               l-host (or l-host "")
               l-user (or l-user "")
               l-port (or l-port "")
-              spec `((?h . ,l-host) (?u . ,l-user) (?p . ,l-port)
-                     (?t . ,tmpfile))
+              spec (format-spec-make ?h l-host ?u l-user ?p l-port ?t tmpfile)
               command
               (concat
                ;; We do not want to see the trailing local prompt in
@@ -7981,7 +7992,7 @@
          (tramp-get-connection-process vec)
        vec)
       "remote-path"
-    (let* ((remote-path (tramp-compat-copy-tree tramp-remote-path))
+    (let* ((remote-path (copy-tree tramp-remote-path))
           (elt1 (memq 'tramp-default-remote-path remote-path))
           (elt2 (memq 'tramp-own-remote-path remote-path))
           (default-remote-path
@@ -8280,7 +8291,7 @@
   (defadvice make-auto-save-file-name
     (around tramp-advice-make-auto-save-file-name () activate)
     "Invoke `tramp-handle-make-auto-save-file-name' for Tramp files."
-    (if (and (buffer-file-name) (tramp-tramp-file-p (buffer-file-name)))
+    (if (tramp-tramp-file-p (buffer-file-name))
        ;; We cannot call `tramp-handle-make-auto-save-file-name'
        ;; directly, because this would bypass the locking mechanism.
        (setq ad-return-value
@@ -8294,14 +8305,13 @@
       'around 'tramp-advice-make-auto-save-file-name)
      (ad-activate 'make-auto-save-file-name))))
 
-;; In Emacs < 22 and XEmacs < 21.5 autosaved remote files have
-;; permission 0666 minus umask. This is a security threat.
+;; In XEmacs < 21.5, autosaved remote files have permission 0666 minus
+;; umask. This is a security threat.
 
 (defun tramp-set-auto-save-file-modes ()
   "Set permissions of autosaved remote files to the original permissions."
   (let ((bfn (buffer-file-name)))
-    (when (and (stringp bfn)
-              (tramp-tramp-file-p bfn)
+    (when (and (tramp-tramp-file-p bfn)
               (buffer-modified-p)
               (stringp buffer-auto-save-file-name)
               (not (equal bfn buffer-auto-save-file-name)))
@@ -8313,10 +8323,9 @@
       (set-file-modes buffer-auto-save-file-name
                      (or (file-modes bfn) (tramp-octal-to-decimal "0600"))))))
 
-(unless (or (> emacs-major-version 21)
-           (and (featurep 'xemacs)
-                (= emacs-major-version 21)
-                (> emacs-minor-version 4)))
+(unless (and (featurep 'xemacs)
+            (= emacs-major-version 21)
+            (> emacs-minor-version 4))
   (add-hook 'auto-save-hook 'tramp-set-auto-save-file-modes)
   (add-hook 'tramp-unload-hook
            (lambda ()
@@ -8625,7 +8634,7 @@
 ;;   expects only English messages?  (Juri Linkov)
 ;; * Make shadowfile.el grok Tramp filenames.  (Bug#4526, Bug#4846)
 ;; * Do not handle files with drive letter as remote.  (Bug#5447)
-;; * Load Tramp subpackages only when needed.  (Bug#1529, Bug#5448)
+;; * Load Tramp subpackages only when needed.  (Bug#1529, Bug#5448, Bug#5705)
 ;; * Try telnet+curl as new method.  It might be useful for busybox,
 ;;   without built-in uuencode/uudecode.
 ;; * Let `shell-dynamic-complete-*' and `comint-dynamic-complete' work

=== modified file 'lisp/net/trampver.el'
--- a/lisp/net/trampver.el      2010-03-14 20:10:47 +0000
+++ b/lisp/net/trampver.el      2010-04-10 12:50:31 +0000
@@ -1,8 +1,8 @@
 ;;; trampver.el --- Transparent Remote Access, Multiple Protocol
 ;;; lisp/trampver.el.  Generated from trampver.el.in by configure.
 
-;; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008,
-;;   2009, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+;;   2010 Free Software Foundation, Inc.
 
 ;; Author: Kai Großjohann <address@hidden>
 ;; Keywords: comm, processes
@@ -24,19 +24,20 @@
 
 ;;; Code:
 
-;; In the Tramp CVS repository, the version numer and the bug report address
-;; are auto-frobbed from configure.ac, so you should edit that file and run
-;; "autoconf && ./configure" to change them.  (X)Emacs version check is defined
-;; in macro AC_EMACS_INFO of aclocal.m4; should be changed only there.
+;; In the Tramp CVS repository, the version number and the bug report
+;; address are auto-frobbed from configure.ac, so you should edit that
+;; file and run "autoconf && ./configure" to change them.  (X)Emacs
+;; version check is defined in macro AC_EMACS_INFO of aclocal.m4;
+;; should be changed only there.
 
-(defconst tramp-version "2.1.18-23.2"
+(defconst tramp-version "2.1.19-pre"
   "This version of Tramp.")
 
 (defconst tramp-bug-report-address "address@hidden"
   "Email address to send bug reports to.")
 
 ;; Check for (X)Emacs version.
-(let ((x (if (or (< emacs-major-version 21)    (and (featurep 'xemacs)      (= 
emacs-major-version 21)      (< emacs-minor-version 4)))    (format "Tramp 
2.1.18-pre is not fit for %s"            (when (string-match "^.*$" 
(emacs-version))       (match-string 0 (emacs-version))))    "ok")))
+(let ((x (if (or (>= emacs-major-version 22)   (and (featurep 'xemacs)      (= 
emacs-major-version 21)      (>= emacs-minor-version 4)))    "ok"    (format 
"Tramp 2.1.19-pre is not fit for %s"           (when (string-match "^.*$" 
(emacs-version))       (match-string 0 (emacs-version)))))))
   (unless (string-match "\\`ok\\'" x) (error "%s" x)))
 
 (provide 'trampver)


reply via email to

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