From d9e28c1ca1d95f51a05d052dcf1fe06888d52476 Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Wed, 21 Jul 1999 21:43:03 +0000 Subject: [PATCH] (enriched-translations): Add `display' and "x-display". (enriched-handle-display-prop): New. (enriched-decode-display-prop): New. --- lisp/enriched.el | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/lisp/enriched.el b/lisp/enriched.el index 52eb18174e7..187bacc826e 100644 --- a/lisp/enriched.el +++ b/lisp/enriched.el @@ -121,8 +121,10 @@ expression, which is evaluated to get the string to insert.") (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 @@ Return value is \(begin end name positive-p), or nil if none was found." (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 -- 2.39.5