GNU bug report logs -
#35018
26.1; Use diff as en ert-explainer for string=
Previous Next
Reported by: Pierre Neidhardt <mail <at> ambrevar.xyz>
Date: Wed, 27 Mar 2019 10:20:02 UTC
Severity: wishlist
Tags: wontfix
Found in version 26.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
I've just committed webfeeder.el to ELPA. In his review, Stefan Monnier
suggested we merged the following code snippet upstream:
--8<---------------cut here---------------start------------->8---
(defun webfeeder--string=-explainer (string-a string-b)
"Return the diff output of STRING-A and STRING-B"
(unless (string= string-a string-b)
(let (file-a file-b)
(unwind-protect
(let (result)
(setq file-a (make-temp-file "webfeeder")
file-b (make-temp-file "webfeeder"))
(with-temp-file file-a
(insert string-a))
(with-temp-file file-b
(insert string-b))
(setq result
(with-temp-buffer
;; The following generates a *Diff* buffer which is
;; convenient for coloration.
(diff file-a file-b nil 'no-async)
(diff-no-select file-a file-b nil 'no-async (current-buffer))
(buffer-string)))
result)
(delete-file file-a)
(delete-file file-b)))))
;; FIXME: Add this to ERT!
(put 'string= 'ert-explainer #'webfeeder--string=-explainer)
--8<---------------cut here---------------end--------------->8---
I've used this feature extensively in my ERT tests: it displays a "diff"
of string A and string B, which is a pretty nice default when the
strings are longer than a single line.
Food for thoughts :)
[Message part 2 (text/plain, inline)]
--
Pierre Neidhardt
https://ambrevar.xyz/
[signature.asc (application/pgp-signature, inline)]
This bug report was last modified 3 years and 223 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.