Move `split-char' check and repair code from mule-caesar.el.
authormorioka <morioka>
Fri, 5 Jun 1998 12:48:02 +0000 (12:48 +0000)
committermorioka <morioka>
Fri, 5 Jun 1998 12:48:02 +0000 (12:48 +0000)
emu-x20.el

index 2afa72e..e4aef1e 100644 (file)
@@ -229,6 +229,27 @@ but the contents viewed as characters do change.
 ;;; @ character
 ;;;
 
+;; avoid bug of XEmacs
+(or (integerp (cdr (split-char ?a)))
+    (defun split-char (char)
+      "Return list of charset and one or two position-codes of CHAR."
+      (let ((charset (char-charset char)))
+       (if (eq charset 'ascii)
+           (list charset (char-int char))
+         (let ((i 0)
+               (len (charset-dimension charset))
+               (code (if (integerp char)
+                         char
+                       (char-int char)))
+               dest)
+           (while (< i len)
+             (setq dest (cons (logand code 127) dest)
+                   code (lsh code -7)
+                   i (1+ i)))
+           (cons charset dest)
+           ))))
+    )
+
 (defmacro char-next-index (char index)
   "Return index of character succeeding CHAR whose index is INDEX."
   `(1+ ,index))