"If non nil, specifies that ediff is done over VLF buffers.")
(make-variable-buffer-local 'vlf-ediff-session)
-;;;###autoload
+(defvar tramp-verbose)
+
(defun vlf-ediff-buffers (buffer-A buffer-B)
"Run batch by batch ediff over VLF buffers BUFFER-A and BUFFER-B.
Batch size is determined by the size in BUFFER-A.
dir-B)))
(ediff-get-default-file-name f 1)))
(read-number "Batch size (in bytes): " vlf-batch-size))))
- (let ((buffer-A (vlf file-A)))
+ (let ((buffer-A (vlf file-A t)))
(set-buffer buffer-A)
(vlf-set-batch-size batch-size)
- (let ((buffer-B (vlf file-B)))
+ (let ((buffer-B (vlf file-B t)))
(vlf-ediff-buffers buffer-A buffer-B))))
(defadvice ediff-next-difference (around vlf-ediff-next-difference
(defun vlf-next-chunk ()
"Move to next chunk."
- (vlf-move-to-chunk vlf-end-pos (+ vlf-end-pos vlf-batch-size) t))
+ (vlf-move-to-chunk vlf-end-pos (+ vlf-end-pos vlf-batch-size)))
(defun vlf-prev-chunk ()
"Move to previous chunk."
- (vlf-move-to-chunk (- vlf-start-pos vlf-batch-size) vlf-start-pos t))
+ (vlf-move-to-chunk (- vlf-start-pos vlf-batch-size) vlf-start-pos))
(defun vlf-ediff-next (buffer-A buffer-B ediff-buffer
&optional next-func)
(point-max-A (point-max))
(font-lock-A font-lock-mode)
(min-file-size vlf-file-size)
- (forward-p (eq next-func 'vlf-next-chunk)))
+ (forward-p (eq next-func 'vlf-next-chunk))
+ (is-hexl (derived-mode-p 'hexl-mode)))
(font-lock-mode 0)
(set-buffer buffer-B)
(run-hook-with-args 'vlf-before-batch-functions 'ediff)
(setq buffer-B (current-buffer)
- min-file-size (min min-file-size vlf-file-size))
+ min-file-size (min min-file-size vlf-file-size)
+ is-hexl (or is-hexl (derived-mode-p 'hexl-mode)))
(let ((tramp-verbose (if (boundp 'tramp-verbose)
- (min tramp-verbose 2)))
+ (min tramp-verbose 1)))
(end-B (= vlf-start-pos vlf-end-pos))
(chunk-B (cons vlf-start-pos vlf-end-pos))
(font-lock-B font-lock-mode)
buffer-B (point-min) (point-max)))
(with-current-buffer ediff-buffer
(ediff-update-diffs)
- (and (not end-A) (not end-B)
+ (and (not end-A) (not end-B) (not is-hexl)
(vlf-ediff-refine buffer-A
buffer-B))
(zerop ediff-number-of-differences))))
(- vlf-file-size
vlf-start-pos))))
(progress-reporter-done reporter)
- (if (or (not end-A) (not end-B))
- (progn (vlf-update-buffer-name)
- (set-buffer buffer-A)
- (vlf-update-buffer-name))
+ (when (and end-A end-B)
(if forward-p
(let ((max-file-size vlf-file-size))
(vlf-move-to-chunk (- max-file-size vlf-batch-size)
(vlf-move-to-chunk (- max-file-size
vlf-batch-size)
max-file-size))
- (vlf-beginning-of-file)
+ (vlf-move-to-batch 0)
(set-buffer buffer-A)
- (vlf-beginning-of-file))
+ (vlf-move-to-batch 0))
(set-buffer ediff-buffer)
(ediff-update-diffs)
- (if (or (not forward-p)
- (and (not end-A) (not end-B)))
- (vlf-ediff-refine buffer-A buffer-B)))
+ (or is-hexl
+ (if (or (not forward-p)
+ (and (not end-A) (not end-B)))
+ (vlf-ediff-refine buffer-A buffer-B))))
(setq done t))
(unless done
(set-buffer buffer-A)
(vlf-move-to-chunk (car chunk-B) (cdr chunk-B))
(set-buffer ediff-buffer)
(ediff-update-diffs)
- (vlf-ediff-refine buffer-A buffer-B))
+ (or is-hexl
+ (vlf-ediff-refine buffer-A buffer-B)))
(set-buffer buffer-A)
(if font-lock-A (font-lock-mode 1))
(run-hook-with-args 'vlf-after-batch-functions 'ediff)