[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: help: howto call ediff from elisp, interactive and multiple args ...
From: |
Thierry Volpiatto |
Subject: |
Re: help: howto call ediff from elisp, interactive and multiple args ... |
Date: |
Sat, 13 Nov 2010 20:16:05 +0100 |
User-agent: |
Gnus/5.110011 (No Gnus v0.11) Emacs/23.2.90 (gnu/linux) |
Peter Daum <gator_ml@yahoo.de> writes:
> Sorry, I couldn't find an appropriate subject line:
>
> I have to compare many similar binary files and the best tool I could
> find so far for this purpose is a combination of emacs, hexl-mode and
> ediff. Because this involves far too much typing, I am trying to write a
> little lisp function to set up everything. I already know several ways
> how not to do this ;-)
>
> (defun hexl-ediff (file1 file2)
> "hexl-find 2 files and run ediff on them"
> (interactive "fFile 1:" "fFile2:")
> (hexl-find-file file1)
> (let*
> (
> (buffer1 (last-buffer))
> (bn1 (buffer-name buffer1))
> (void (hexl-find-file file2))
> (buffer2 (last-buffer))
> (bn2 (buffer-name buffer2))
> (void (message "b1: %s b2: %s" bn1 bn2))
> )
> (ediff-buffers bn1 bn2)
> ))
>
> There are several problems with this:
>
> 1) I could not find a way how to interactively call this with 2 files.
> I'll get prompted for the 1st file and then I run into an error about
> the wrong #args without any chance to enter the 2nd file name
> 2) More severe: I could not come up with any reliable way how to get the
> names of the buffers that the calls to hexl-find-file created (the
> desperate attempt with "last-buffer" will return "*Completions*" ;-)
>
> Any ideas?
(defun hexl-ediff (file1 file2)
"hexl-find 2 files and run ediff on them"
(interactive "fFile 1: \nfFile2:")
(let ((buffer1 (progn
(hexl-find-file file1)
(buffer-name (current-buffer))))
(buffer2 (progn
(hexl-find-file file2)
(buffer-name (current-buffer)))))
(ediff-buffers buffer1 buffer2)))
> Regards,
> Peter
>
>
>
--
A+ Thierry
Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997