# HG changeset patch # User Gerd Moellmann # Date 932593383 0 # Node ID 5d58f00ad19ce7cfb1c3dd8b8d8c17f7ff97d67e # Parent 3bfd67af61d064e34dd991199db58da9622c93da (enriched-translations): Add `display' and "x-display". (enriched-handle-display-prop): New. (enriched-decode-display-prop): New. diff -r 3bfd67af61d0 -r 5d58f00ad19c lisp/enriched.el --- a/lisp/enriched.el Wed Jul 21 21:43:03 1999 +0000 +++ b/lisp/enriched.el Wed Jul 21 21:43:03 1999 +0000 @@ -121,8 +121,10 @@ (PARAMETER (t "param")) ; Argument of preceding annotation ;; The following are not part of the standard: (FUNCTION (enriched-decode-foreground "x-color") - (enriched-decode-background "x-bg-color")) + (enriched-decode-background "x-bg-color") + (enriched-decode-display-prop "x-display")) (read-only (t "x-read-only")) + (display (nil enriched-handle-display-prop)) (unknown (nil format-annotate-value)) ; (font-size (2 "bigger") ; unimplemented ; (-2 "smaller")) @@ -452,4 +454,37 @@ (message "Warning: color `%s' can't be displayed" color))) (list from to 'face face))) + + +;;; Handling the `display' property. + + +(defun enriched-handle-display-prop (old new) + "Return a list of annotations for a change in the `display' property. +OLD is the old value of the property, NEW is the new value. Value +is a list `(CLOSE OPEN)', where CLOSE is a list of annotations to +close and OPEN a list of annotations to open. Each of these lists +has the form `(ANNOTATION PARAM ...)'." + (let ((annotation "x-display") + (param (prin1-to-string (or old new))) + close open) + (if (null old) + (list nil (list annotation param)) + (list (list annotation param))))) + + +(defun enriched-decode-display-prop (start end &optional param) + "Decode a `display' property for text between START and END. +PARAM is a `' found for the property. +Value is a list `(START END SYMBOL VALUE)' with START and END denoting +the range of text to assign text property SYMBOL with value VALUE " + (let ((prop (when (stringp param) + (condition-case () + (car (read-from-string param)) + (error nil))))) + (unless prop + (message "Warning: invalid parameter %s" param)) + (list start end 'display prop))) + + ;;; enriched.el ends here