Mercurial > emacs
changeset 27793:d1722c46d998
(format-annotate-single-property-change): Handle
properties.with dotted-list values.
(format-proper-list-p): New function.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Mon, 21 Feb 2000 12:58:30 +0000 |
parents | de64340fea42 |
children | 94d0bfb9a844 |
files | lisp/format.el |
diffstat | 1 files changed, 29 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/format.el Mon Feb 21 12:57:42 2000 +0000 +++ b/lisp/format.el Mon Feb 21 12:58:30 2000 +0000 @@ -483,6 +483,14 @@ b (cdr b))) a) +(defun format-proper-list-p (list) + "Return t if LIST is a proper list. +A proper list is a list ending with a nil cdr, not with an atom " + (when (listp list) + (while (consp list) + (setq list (cdr list))) + (null list))) + (defun format-reorder (items order) "Arrange ITEMS to following partial ORDER. Elements of ITEMS equal to elements of ORDER will be rearranged to follow the @@ -925,25 +933,28 @@ (if (not prop-alist) nil ;; If either old or new is a list, have to treat both that way. - (if (and (or (consp old) (consp new)) + (if (and (or (listp old) (listp new)) (not (get prop 'format-list-atomic-p))) - (let* ((old (if (listp old) old (list old))) - (new (if (listp new) new (list new))) - (tail (format-common-tail old new)) - close open) - (while old - (setq close - (append (car (format-annotate-atomic-property-change - prop-alist (car old) nil)) - close) - old (cdr old))) - (while new - (setq open - (append (cdr (format-annotate-atomic-property-change - prop-alist nil (car new))) - open) - new (cdr new))) - (format-make-relatively-unique close open)) + (if (or (not (format-proper-list-p old)) + (not (format-proper-list-p new))) + (format-annotate-atomic-property-change prop-alist old new) + (let* ((old (if (listp old) old (list old))) + (new (if (listp new) new (list new))) + (tail (format-common-tail old new)) + close open) + (while old + (setq close + (append (car (format-annotate-atomic-property-change + prop-alist (car old) nil)) + close) + old (cdr old))) + (while new + (setq open + (append (cdr (format-annotate-atomic-property-change + prop-alist nil (car new))) + open) + new (cdr new))) + (format-make-relatively-unique close open))) (format-annotate-atomic-property-change prop-alist old new))))) (defun format-annotate-atomic-property-change (prop-alist old new)