Commits

Michael Albinus committed f6a8f3f

* tramp.el (tramp-debug-message): Extend function exclude list.
(tramp-backtrace): New defun.
(tramp-handle-insert-file-contents): Use `visit' when inserting
the local copy.

* tramp-sh.el (tramp-sh-handle-set-visited-file-modtime): Use
`remote-file-name-inhibit-cache'.

* tramp.el (tramp-check-for-regexp): Avoid "Args out of range"
error when buffer in question is narrowed so position 1 is out of
visible part.

Comments (0)

Files changed (3)

+2013-02-03  Michael Albinus  <michael.albinus@gmx.de>
+
+	* tramp.el (tramp-debug-message): Extend function exclude list.
+	(tramp-backtrace): New defun.
+	(tramp-handle-insert-file-contents): Use `visit' when inserting
+	the local copy.
+
+	* tramp-sh.el (tramp-sh-handle-set-visited-file-modtime): Use
+	`remote-file-name-inhibit-cache'.
+
+2013-02-01  Andrew W. Nosenko  <andrew.w.nosenko@gmail.com>  (tiny change)
+
+	* tramp.el (tramp-check-for-regexp): Avoid "Args out of range"
+	error when buffer in question is narrowed so position 1 is out of
+	visible part.
+
 2013-01-30  Michael Albinus  <michael.albinus@gmx.de>
 
 	* tramp.el (tramp-tramp-file-p): Comment check for
     (let ((f (buffer-file-name))
 	  coding-system-used)
       (with-parsed-tramp-file-name f nil
-	(let* ((attr (file-attributes f))
+	(let* ((remote-file-name-inhibit-cache t)
+	       (attr (file-attributes f))
 	       ;; '(-1 65535) means file doesn't exists yet.
 	       (modtime (or (nth 5 attr) '(-1 65535))))
 	  (when (boundp 'last-coding-system-used)
 		     (concat
 		      "^"
 		      (regexp-opt
-		       '("tramp-compat-funcall"
+		       '("tramp-backtrace"
+			 "tramp-compat-condition-case-unless-debug"
+			 "tramp-compat-funcall"
 			 "tramp-compat-with-temp-message"
 			 "tramp-debug-message"
 			 "tramp-error"
 	     "`M-x tramp-cleanup-this-connection'"))
 	  (sit-for 30))))))
 
+(defsubst tramp-backtrace (vec-or-proc)
+  "Dump a backtrace into the debug buffer.
+This function is meant for debugging purposes."
+  (tramp-message vec-or-proc 10 "\n%s" (with-output-to-string (backtrace))))
+
 (defmacro with-parsed-tramp-file-name (filename var &rest body)
   "Parse a Tramp filename and make components available in the body.
 
 		  (setq tramp-temp-buffer-file-name local-copy))
 
 		;; We must ensure that `file-coding-system-alist'
-		;; matches `local-copy'.
+		;; matches `local-copy'.  We must also use `visit',
+		;; otherwise there might be an error in the
+		;; `revert-buffer' function under XEmacs.
 		(let ((file-coding-system-alist
 		       (tramp-find-file-name-coding-system-alist
 			filename local-copy)))
 		  (setq result
 			(insert-file-contents
-			 local-copy nil nil nil replace)))))
+			 local-copy visit nil nil replace)))))
 
 	  ;; Save exit.
 	  (progn
 		     0 (min tramp-echo-mark-marker-length (1- (point-max))))
 		    (tramp-compat-funcall
 		     'buffer-substring-no-properties
-		     1 (min (1+ tramp-echo-mark-marker-length) (point-max))))))
+		     (point-min)
+		     (min (+ (point-min) tramp-echo-mark-marker-length)
+			  (point-max))))))
       ;; No echo to be handled, now we can look for the regexp.
       ;; Sometimes, lines are much to long, and we run into a "Stack
       ;; overflow in regexp matcher".  For example, //DIRED// lines of