+;; Types listed here have special coercion functions that can munge
+;; other types. This can also be used to add special features - e.g.
+;; being able to pass a region or a cons of markers to own-selection,
+;; but getting the *current* text in the region back when calling
+;; get-selection.
+;;
+;; Any function listed in here *will be called* whenever a value of
+;; its type is retrieved from the internal selection cache, or when
+;; no suitable values could be found in which case XEmacs looks for
+;; values with types listed in selection-coercible-types.
+(setq selection-coercion-alist
+ '((TEXT . select-coerce-to-text)
+ (STRING . select-coerce-to-text)
+ (COMPOUND_TEXT . select-coerce-to-text)
+ (CF_TEXT . select-coerce-to-text)))
+
+;; Types listed here can be appended by own-selection
+(setq selection-appender-alist
+ '((nil . select-append-default)
+ (TEXT . select-append-to-text)
+ (STRING . select-append-to-string)
+ (COMPOUND_TEXT . select-append-to-compound-text)
+ (CF_TEXT . select-append-to-cf-text)
+ ))
+
+;; Types listed here have buffer-kill handlers
+(setq selection-buffer-killed-alist
+ '((nil . select-buffer-killed-default)
+ (TEXT . select-buffer-killed-text)
+ (STRING . select-buffer-killed-text)
+ (COMPOUND_TEXT . select-buffer-killed-text)
+ (CF_TEXT . select-buffer-killed-text)))
+
+;; Lists of types that are coercible (can be converted to other types)
+(setq selection-coercible-types '(TEXT STRING COMPOUND_TEXT))
+