emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/lisp/net/tramp.el


From: Michael Albinus
Subject: [Emacs-diffs] Changes to emacs/lisp/net/tramp.el
Date: Tue, 30 Aug 2005 18:41:09 -0400

Index: emacs/lisp/net/tramp.el
diff -c emacs/lisp/net/tramp.el:1.72 emacs/lisp/net/tramp.el:1.73
*** emacs/lisp/net/tramp.el:1.72        Sun Aug  7 15:42:42 2005
--- emacs/lisp/net/tramp.el     Tue Aug 30 22:41:02 2005
***************
*** 1856,1861 ****
--- 1856,1862 ----
      (insert-file-contents . tramp-handle-insert-file-contents)
      (write-region . tramp-handle-write-region)
      (find-backup-file-name . tramp-handle-find-backup-file-name)
+     (make-auto-save-file-name . tramp-handle-make-auto-save-file-name)
      (unhandled-file-name-directory . 
tramp-handle-unhandled-file-name-directory)
      (dired-compress-file . tramp-handle-dired-compress-file)
      (dired-call-process . tramp-handle-dired-call-process)
***************
*** 1863,1869 ****
       . tramp-handle-dired-recursive-delete-directory)
      (set-visited-file-modtime . tramp-handle-set-visited-file-modtime)
      (verify-visited-file-modtime . tramp-handle-verify-visited-file-modtime))
!         "Alist of handler functions.
  Operations not mentioned here will be handled by the normal Emacs functions.")
  
  ;; Handlers for partial tramp file names. For GNU Emacs just
--- 1864,1870 ----
       . tramp-handle-dired-recursive-delete-directory)
      (set-visited-file-modtime . tramp-handle-set-visited-file-modtime)
      (verify-visited-file-modtime . tramp-handle-verify-visited-file-modtime))
!   "Alist of handler functions.
  Operations not mentioned here will be handled by the normal Emacs functions.")
  
  ;; Handlers for partial tramp file names. For GNU Emacs just
***************
*** 3807,3812 ****
--- 3808,3841 ----
  
        (tramp-run-real-handler 'find-backup-file-name (list filename)))))
  
+ (defun tramp-handle-make-auto-save-file-name ()
+   "Like `make-auto-save-file-name' for tramp files.
+ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
+   (when tramp-auto-save-directory
+     (unless (file-exists-p tramp-auto-save-directory)
+       (make-directory tramp-auto-save-directory t)))
+   ;; jka-compr doesn't like auto-saving, so by appending "~" to the
+   ;; file name we make sure that jka-compr isn't used for the
+   ;; auto-save file.
+   (let ((buffer-file-name
+        (if tramp-auto-save-directory
+            (expand-file-name
+             (tramp-subst-strs-in-string
+              '(("_" . "|")
+                ("/" . "_a")
+                (":" . "_b")
+                ("|" . "__")
+                ("[" . "_l")
+                ("]" . "_r"))
+              (buffer-file-name))
+             tramp-auto-save-directory)
+          (buffer-file-name)))
+       ;; We set it to nil because `make-auto-save-file-name' shouldn't
+       ;; recurse infinitely.
+       tramp-auto-save-directory)
+       (tramp-run-real-handler
+        'make-auto-save-file-name)))
+ 
  
  ;; CCC grok APPEND, LOCKNAME, CONFIRM
  (defun tramp-handle-write-region
***************
*** 4086,4093 ****
      (nth 2 args))
     ; BUF
     ((member operation
!           (list 'set-visited-file-modtime 'verify-visited-file-modtime
!                 ; XEmacs only
                  'backup-buffer))
      (buffer-file-name
       (if (bufferp (nth 0 args)) (nth 0 args) (current-buffer))))
--- 4115,4123 ----
      (nth 2 args))
     ; BUF
     ((member operation
!           (list 'make-auto-save-file-name
!                 'set-visited-file-modtime 'verify-visited-file-modtime
!                 ; XEmacs only
                  'backup-buffer))
      (buffer-file-name
       (if (bufferp (nth 0 args)) (nth 0 args) (current-buffer))))
***************
*** 6905,6937 ****
  
  ;; Auto saving to a special directory.
  
! (defun tramp-make-auto-save-file-name (fn)
!   "Returns a file name in `tramp-auto-save-directory' for autosaving this 
file."
!   (when tramp-auto-save-directory
!     (unless (file-exists-p tramp-auto-save-directory)
!       (make-directory tramp-auto-save-directory t)))
!   ;; jka-compr doesn't like auto-saving, so by appending "~" to the
!   ;; file name we make sure that jka-compr isn't used for the
!   ;; auto-save file.
!   (let ((buffer-file-name (expand-file-name
!                          (tramp-subst-strs-in-string '(("_" . "|")
!                                                        ("/" . "_a")
!                                                        (":" . "_b")
!                                                        ("|" . "__")
!                                                        ("[" . "_l")
!                                                        ("]" . "_r"))
!                                                      fn)
!                          tramp-auto-save-directory)))
!     (make-auto-save-file-name)))
! 
! (defadvice make-auto-save-file-name
!   (around tramp-advice-make-auto-save-file-name () activate)
!   "Invoke `tramp-make-auto-save-file-name' for tramp files."
!   (if (and (buffer-file-name) (tramp-tramp-file-p (buffer-file-name))
!          tramp-auto-save-directory)
!       (setq ad-return-value
!             (tramp-make-auto-save-file-name (buffer-file-name)))
!     ad-do-it))
  
  ;; In Emacs < 22 and XEmacs < 21.5 autosaved remote files have
  ;; permission 0666 minus umask. This is a security threat.
--- 6935,6951 ----
  
  ;; Auto saving to a special directory.
  
! (defun tramp-exists-file-name-handler (operation)
!   (let ((file-name-handler-alist (list (cons "/" 'identity))))
!     (eq (find-file-name-handler "/" operation) 'identity)))
! 
! (unless (tramp-exists-file-name-handler 'make-auto-save-file-name)
!   (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)))
!       (setq ad-return-value (tramp-make-auto-save-file-name))
!       ad-do-it)))
  
  ;; In Emacs < 22 and XEmacs < 21.5 autosaved remote files have
  ;; permission 0666 minus umask. This is a security threat.




reply via email to

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