# HG changeset patch # User Michael Albinus # Date 1249233399 0 # Node ID fd4d8124e3294e5fed163fb50c54f0b5da213102 # Parent 05be2b60df7a8550789b89f3a256d72b989a83d7 * net/tramp.el (tramp-debug-message): Print also microseconds. (tramp-handle-insert-file-contents): Optimize, when BEG or END is non-nil. (tramp-handle-vc-registered): Use `tramp-cache-inhibit-cache'. (tramp-get-debug-buffer): Change `outline-regexp' according to new format. diff -r 05be2b60df7a -r fd4d8124e329 lisp/net/tramp.el --- a/lisp/net/tramp.el Sun Aug 02 17:15:42 2009 +0000 +++ b/lisp/net/tramp.el Sun Aug 02 17:16:39 2009 +0000 @@ -1903,7 +1903,9 @@ (unless (bolp) (insert "\n")) ;; Timestamp. - (insert (format-time-string "%T ")) + (let ((now (current-time))) + (insert (format-time-string "%T." now)) + (insert (format "%06d " (nth 2 now)))) ;; Calling function. (let ((btn 1) btf fn) (while (not fn) @@ -4204,7 +4206,7 @@ "Like `insert-file-contents' for Tramp files." (barf-if-buffer-read-only) (setq filename (expand-file-name filename)) - (let (coding-system-used result local-copy) + (let (coding-system-used result local-copy remote-copy) (unwind-protect (with-parsed-tramp-file-name filename nil @@ -4224,6 +4226,26 @@ 'insert-file-contents (list localname visit beg end replace))) + ;; When we shall insert only a part of the file, we copy + ;; this part. + (when (or beg end) + (setq remote-copy (tramp-make-tramp-temp-file v)) + (tramp-send-command + v + (cond + ((and beg end) + (format "tail -c +%d %s | head -c +%d >%s" + (1+ beg) (tramp-shell-quote-argument localname) + (- end beg) remote-copy)) + (beg + (format "tail -c +%d %s >%s" + (1+ beg) (tramp-shell-quote-argument localname) + remote-copy)) + (end + (format "head -c +%d %s >%s" + (1+ end) (tramp-shell-quote-argument localname) + remote-copy))))) + ;; `insert-file-contents-literally' takes care to avoid ;; calling jka-compr. By let-binding ;; `inhibit-file-name-operation', we propagate that care @@ -4233,7 +4255,11 @@ (when (eq inhibit-file-name-operation 'insert-file-contents) 'file-local-copy))) - (file-local-copy filename))) + (file-local-copy + (if (stringp remote-copy) + (tramp-make-tramp-file-name + method user host remote-copy) + filename)))) (tramp-message v 4 "Inserting local temp file `%s'..." local-copy) @@ -4244,7 +4270,7 @@ filename local-copy))) (setq result (insert-file-contents - local-copy nil beg end replace)) + local-copy nil nil nil replace)) ;; Now `last-coding-system-used' has right value. ;; Remember it. (when (boundp 'last-coding-system-used) @@ -4264,7 +4290,10 @@ (set-visited-file-modtime) (set-buffer-modified-p nil)) (when (stringp local-copy) - (delete-file local-copy)))) + (delete-file local-copy)) + (when (stringp remote-copy) + (delete-file + (tramp-make-tramp-file-name method user host remote-copy))))) ;; Result. (list (expand-file-name filename) @@ -4605,8 +4634,8 @@ (defun tramp-handle-vc-registered (file) "Like `vc-registered' for Tramp files." ;; There could be new files, created by the vc backend. We disable - ;; the cache therefore, by providing a temporary one. - (let ((tramp-cache-data (make-hash-table :test 'equal))) + ;; the file cache therefore. + (let ((tramp-cache-inhibit-cache t)) (tramp-run-real-handler 'vc-registered (list file)))) ;;;###autoload @@ -5601,7 +5630,7 @@ (let ((default-directory (tramp-compat-temporary-file-directory))) (outline-mode)) (set (make-local-variable 'outline-regexp) - "[0-9]+:[0-9]+:[0-9]+ [a-z0-9-]+ (\\([0-9]+\\)) #") + "[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-level) 'tramp-outline-level))