Function: ert--explain-equal-including-properties-rec

ert--explain-equal-including-properties-rec is a byte-compiled function defined in ert.el.gz.

Signature

(ert--explain-equal-including-properties-rec A B)

Documentation

Return explanation of why A and B are not equal-including-properties.

Return nil if they are.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/ert.el.gz
(defun ert--explain-equal-including-properties-rec (a b)
  "Return explanation of why A and B are not `equal-including-properties'.
Return nil if they are."
  (if (not (equal a b))
      (ert--explain-equal a b)
    (cl-assert (stringp a) t)
    (cl-assert (stringp b) t)
    (cl-assert (eql (length a) (length b)) t)
    (cl-loop for i from 0 to (length a)
             for props-a = (text-properties-at i a)
             for props-b = (text-properties-at i b)
             for difference = (ert--plist-difference-explanation
                               props-a props-b)
             do (when difference
                  (cl-return `(char ,i ,(substring-no-properties a i (1+ i))
                                    ,difference
                                    context-before
                                    ,(ert--abbreviate-string
                                      (substring-no-properties a 0 i)
                                      10 t)
                                    context-after
                                    ,(ert--abbreviate-string
                                      (substring-no-properties a (1+ i))
                                      10 nil))))
             finally (cl-assert (equal-including-properties a b) t))))