diff lisp/enriched.el @ 24989:5d58f00ad19c

(enriched-translations): Add `display' and "x-display". (enriched-handle-display-prop): New. (enriched-decode-display-prop): New.
author Gerd Moellmann <gerd@gnu.org>
date Wed, 21 Jul 1999 21:43:03 +0000
parents 7f92e74313e7
children cbe304a26771
line wrap: on
line diff
--- 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 `<param>' 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 <x-display> parameter %s" param))
+    (list start end 'display prop)))
+	       
+	   
 ;;; enriched.el ends here