+(defun decode-builtin-char (charset code-point)
+ (setq charset (get-charset charset))
+ (if (and (not (memq (charset-name charset)
+ '(ideograph-daikanwa mojikyo)))
+ (or (memq (charset-name charset)
+ '(ascii latin-viscii-upper
+ latin-viscii-lower
+ arabic-iso8859-6
+ japanese-jisx0213-1
+ japanese-jisx0213-2))
+ (= (char-int (charset-iso-final-char charset)) 0)))
+ (decode-char charset code-point)
+ (let ((table (charset-mapping-table charset)))
+ (if table
+ (prog2
+ (set-charset-mapping-table charset nil)
+ (decode-char charset code-point)
+ (set-charset-mapping-table charset table))
+ (decode-char charset code-point)))))
+