- (remove-char-attribute char '=ucs@jis)
- (remove-char-attribute char '=ucs@jis/2004)
- (when (setq char (decode-char '=jis-x0213-1@2004 code))
- (unless (eq (encode-char char '=ucs@jis/2004) ucs)
- (put-char-attribute char '=ucs@jis/2004 ucs)))
+ (setq rep-char (decode-char '==jis-x0213-1@2000 code))
+ (cond
+ ((or (eq char rep-char)
+ (null rep-char))
+ (put-char-attribute char '=jis-x0213-1@2000 code)
+ (remove-char-attribute char '=jis-x0213-1)
+ (remove-char-attribute char '=jis-x0213-1@2004)
+ (remove-char-attribute char '=ucs@jis)
+ (remove-char-attribute char '=ucs@jis/2004)
+ (when (setq char (decode-char '=jis-x0213-1@2004 code))
+ (unless (eq (encode-char char '=ucs@jis/2004) ucs)
+ (put-char-attribute char '=ucs@jis/2004 ucs)))
+ )
+ (rep-char
+ (put-char-attribute rep-char '==jis-x0213-1@2000 code)
+ (remove-char-attribute rep-char '==jis-x0213-1)
+ (remove-char-attribute rep-char '==jis-x0213-1@2004)
+ (setq ucs (or (encode-char rep-char '==ucs@jis/2000)
+ ucs))
+ (remove-char-attribute rep-char '==ucs@jis)
+ (remove-char-attribute rep-char '==ucs@jis/2004)
+ (when (setq rep-char (decode-char '==jis-x0213-1@2004 code))
+ (unless (eq (encode-char rep-char '==ucs@jis/2004) ucs)
+ (put-char-attribute rep-char '==ucs@jis/2004 ucs)))
+ ))