aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorMichael Albinus2004-10-12 21:02:43 +0000
committerMichael Albinus2004-10-12 21:02:43 +0000
commit414da5abebe397a6c86ae7eeb9287036760dd808 (patch)
tree03c4bffb7493f1378e51f6732db7dd12faad82f9 /lisp
parent3a4653dc58c53ecc4639957e1c9c70b2c1345a55 (diff)
downloademacs-414da5abebe397a6c86ae7eeb9287036760dd808.tar.gz
emacs-414da5abebe397a6c86ae7eeb9287036760dd808.zip
Sync with Tramp 2.0.45.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog20
-rw-r--r--lisp/net/tramp-smb.el9
-rw-r--r--lisp/net/tramp.el32
-rw-r--r--lisp/net/trampver.el2
4 files changed, 60 insertions, 3 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index dbc13ea927b..06b7ebd0d49 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,23 @@
12004-10-12 Michael Albinus <michael.albinus@gmx.de>
2
3 Sync with Tramp 2.0.45.
4
5 * net/tramp.el (top): Apply `def-edebug-spec' only if function is
6 defined. This is not the case for XEmacs without package
7 "edebug".
8 (tramp-set-auto-save-file-modes): Set permissions of autosaved
9 remote files to the permissions of the original file. This is not
10 the case for Emacs < 21.3.50 and XEmacs < 21.5. Add function to
11 `auto-save-hook'. Reported by Thomas Prokosch <thomas@nadev.net>.
12 (tramp-perl-decode): Fixed an error in Perl implementation.
13 $pending must be cleared every loop. Reported by Benjamin Place
14 <benjaminplace@sprintmail.com>
15
16 * net/tramp-smb.el (tramp-smb-advice-PC-do-completion): Don't
17 activate advice during definition. This is done later on,
18 depending on test result of `substitute-in-file-name'. Suggested
19 by Stefan Monnier <monnier@iro.umontreal.ca>.
20
12004-10-12 David Ponce <david@dponce.com> 212004-10-12 David Ponce <david@dponce.com>
2 22
3 * recentf.el (recentf-edit-list): Update the menu when the recentf 23 * recentf.el (recentf-edit-list): Update the menu when the recentf
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index 6a888d9d75d..4628af88178 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -1087,7 +1087,7 @@ Return the difference in the format of a time value."
1087;; `PC-do-completion' touches the returning "$$" by `substitute-in-file-name'. 1087;; `PC-do-completion' touches the returning "$$" by `substitute-in-file-name'.
1088;; Must be corrected. 1088;; Must be corrected.
1089 1089
1090(defadvice PC-do-completion (around tramp-smb-advice-PC-do-completion activate) 1090(defadvice PC-do-completion (around tramp-smb-advice-PC-do-completion)
1091 "Changes \"$\" back to \"$$\" in minibuffer." 1091 "Changes \"$\" back to \"$$\" in minibuffer."
1092 (if (funcall PC-completion-as-file-name-predicate) 1092 (if (funcall PC-completion-as-file-name-predicate)
1093 1093
@@ -1123,6 +1123,13 @@ Return the difference in the format of a time value."
1123 ;; No file names. Behave unchanged. 1123 ;; No file names. Behave unchanged.
1124 ad-do-it)) 1124 ad-do-it))
1125 1125
1126;; Activate advice. Recent Emacsen don't need that.
1127(when (functionp 'PC-do-completion)
1128 (condition-case nil
1129 (substitute-in-file-name "C$/")
1130 (error
1131 (ad-activate 'PC-do-completion))))
1132
1126(provide 'tramp-smb) 1133(provide 'tramp-smb)
1127 1134
1128;;; TODO: 1135;;; TODO:
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index cda0d41fd8d..a30280dbd4f 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -1668,6 +1668,7 @@ while (my $data = <STDIN>) {
1668 1668
1669 my $len = length($pending); 1669 my $len = length($pending);
1670 my $chunk = substr($pending, 0, $len & ~3); 1670 my $chunk = substr($pending, 0, $len & ~3);
1671 $pending = substr($pending, $len & ~3 + 1);
1671 1672
1672 # Easy method: translate from chars to (pregenerated) six-bit packets, join, 1673 # Easy method: translate from chars to (pregenerated) six-bit packets, join,
1673 # split in 8-bit chunks and convert back to char. 1674 # split in 8-bit chunks and convert back to char.
@@ -1883,7 +1884,11 @@ If VAR is nil, then we bind `v' to the structure and `multi-method',
1883 1884
1884(put 'with-parsed-tramp-file-name 'lisp-indent-function 2) 1885(put 'with-parsed-tramp-file-name 'lisp-indent-function 2)
1885;; To be activated for debugging containing this macro 1886;; To be activated for debugging containing this macro
1886(def-edebug-spec with-parsed-tramp-file-name t) 1887;; It works only when VAR is nil. Otherwise, it can be deactivated by
1888;; (def-edebug-spec with-parsed-tramp-file-name 0)
1889;; I'm too stupid to write a precise SPEC for it.
1890(if (functionp 'def-edebug-spec)
1891 (def-edebug-spec with-parsed-tramp-file-name t))
1887 1892
1888(defmacro tramp-let-maybe (variable value &rest body) 1893(defmacro tramp-let-maybe (variable value &rest body)
1889 "Let-bind VARIABLE to VALUE in BODY, but only if VARIABLE is not obsolete. 1894 "Let-bind VARIABLE to VALUE in BODY, but only if VARIABLE is not obsolete.
@@ -6731,6 +6736,31 @@ as default."
6731 (tramp-make-auto-save-file-name (buffer-file-name))) 6736 (tramp-make-auto-save-file-name (buffer-file-name)))
6732 ad-do-it)) 6737 ad-do-it))
6733 6738
6739;; In Emacs < 21.4 and XEmacs < 21.5 autosaved remote files have
6740;; permission 666 minus umask. This is a security threat.
6741
6742(defun tramp-set-auto-save-file-modes ()
6743 "Set permissions of autosaved remote files to the original permissions."
6744 (let ((bfn (buffer-file-name)))
6745 (when (and (stringp bfn)
6746 (tramp-tramp-file-p bfn)
6747 (stringp buffer-auto-save-file-name)
6748 (not (equal bfn buffer-auto-save-file-name))
6749 (not (file-exists-p buffer-auto-save-file-name)))
6750 (write-region "" nil buffer-auto-save-file-name)
6751 (set-file-modes buffer-auto-save-file-name (file-modes bfn)))))
6752
6753(unless (or (> emacs-major-version 21)
6754 (and (featurep 'xemacs)
6755 (= emacs-major-version 21)
6756 (> emacs-minor-version 4))
6757 (and (not (featurep 'xemacs))
6758 (= emacs-major-version 21)
6759 (or (> emacs-minor-version 3)
6760 (and (string-match "^21\\.3\\.\\([0-9]+\\)" emacs-version)
6761 (>= (string-to-int (match-string 1 emacs-version)) 50)))))
6762 (add-hook 'auto-save-hook 'tramp-set-auto-save-file-modes))
6763
6734(defun tramp-subst-strs-in-string (alist string) 6764(defun tramp-subst-strs-in-string (alist string)
6735 "Replace all occurrences of the string FROM with TO in STRING. 6765 "Replace all occurrences of the string FROM with TO in STRING.
6736ALIST is of the form ((FROM . TO) ...)." 6766ALIST is of the form ((FROM . TO) ...)."
diff --git a/lisp/net/trampver.el b/lisp/net/trampver.el
index 46b33b2d50f..7456bc1660f 100644
--- a/lisp/net/trampver.el
+++ b/lisp/net/trampver.el
@@ -30,7 +30,7 @@
30;; are auto-frobbed from configure.ac, so you should edit that file and run 30;; are auto-frobbed from configure.ac, so you should edit that file and run
31;; "autoconf && ./configure" to change them. 31;; "autoconf && ./configure" to change them.
32 32
33(defconst tramp-version "2.0.44" 33(defconst tramp-version "2.0.45"
34 "This version of Tramp.") 34 "This version of Tramp.")
35 35
36(defconst tramp-bug-report-address "tramp-devel@mail.freesoftware.fsf.org" 36(defconst tramp-bug-report-address "tramp-devel@mail.freesoftware.fsf.org"