X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fmule-canna.c;h=839ab98bd35574b693fefba1d398f01aa422a3b8;hb=6797bde39c52203650064ef8e079af5a9c5f124a;hp=39ae702b431274f667b7975ca5c23aff75186454;hpb=0fc7fd9e8e70d58b8f7d96fe4849a4f791e1110a;p=chise%2Fxemacs-chise.git- diff --git a/src/mule-canna.c b/src/mule-canna.c index 39ae702..839ab98 100644 --- a/src/mule-canna.c +++ b/src/mule-canna.c @@ -1791,17 +1791,13 @@ c2mu (unsigned char *cp, int l, unsigned char *mp) } else if (ch == ISO_CODE_SS3) { - chr = MULE_CHAR_PRIVATE_OFFSET - | ( (LEADING_BYTE_JAPANESE_JISX0212 - - FIELD1_TO_OFFICIAL_LEADING_BYTE) << 14 ) - | (((*cp++) & 0x7f) << 7) | ((*cp++) & 0x7f); + chr = MAKE_CHAR (Vcharset_japanese_jisx0212, + (*cp++) & 0x7f, (*cp++) & 0x7f); } else if (ch & 0x80) { - chr = MULE_CHAR_PRIVATE_OFFSET - | ( (LEADING_BYTE_JAPANESE_JISX0208 - - FIELD1_TO_OFFICIAL_LEADING_BYTE) << 14 ) - | ((ch & 0x7f) << 7) | ((*cp++) & 0x7f); + chr = MAKE_CHAR (Vcharset_japanese_jisx0208, + ch & 0x7f, (*cp++) & 0x7f); } else { @@ -1938,14 +1934,18 @@ m2c (unsigned char *mp, int l, unsigned char *cp) } else { - fb = (chr >> 14) & 0x7f; - switch ( fb ) + Lisp_Object charset; + int c1, c2; + + BREAKUP_CHAR (chr, charset, c1, c2); + fb = XCHARSET_FINAL (charset); + switch (fb) { case 'D': *cp++ = ISO_CODE_SS3; default: - *cp++ = ( (chr >> 7) & 0x7f ) | 0x80; - *cp++ = ( chr & 0x7f ) | 0x80; + *cp++ = c1; + *cp++ = c2; } } #else