(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)
"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
'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
(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)
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)
(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)
(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
(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))