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 :)