X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fchar-ucs.h;h=42d98ef5e639a48092e49b1fe0d3311bd175fbf8;hb=83672a528db7fe9cace421905b7efd06c11b7c98;hp=c51639d9e8b232287b678474c6a4a3a91a60865f;hpb=d95830511340e0b278acf32b8c3bb2d8632a8966;p=chise%2Fxemacs-chise.git diff --git a/src/char-ucs.h b/src/char-ucs.h index c51639d..42d98ef 100644 --- a/src/char-ucs.h +++ b/src/char-ucs.h @@ -393,13 +393,21 @@ MAKE_CHAR (Lisp_Object charset, int c1, int c2) /* return MIN_CHAR_94 + ('I' - '0') * 94 + (c1 - 33); */ return ' '; else if (XCHARSET_UCS_MAX (charset)) - return (XCHARSET_DIMENSION (charset) == 1 - ? - c1 - XCHARSET_BYTE_OFFSET (charset) - : - (c1 - XCHARSET_BYTE_OFFSET (charset)) * XCHARSET_CHARS (charset) - + c2 - XCHARSET_BYTE_OFFSET (charset)) - - XCHARSET_CODE_OFFSET (charset) + XCHARSET_UCS_MIN (charset); + { + Emchar code + = (XCHARSET_DIMENSION (charset) == 1 + ? + c1 - XCHARSET_BYTE_OFFSET (charset) + : + (c1 - XCHARSET_BYTE_OFFSET (charset)) * XCHARSET_CHARS (charset) + + c2 - XCHARSET_BYTE_OFFSET (charset)) + - XCHARSET_CODE_OFFSET (charset) + XCHARSET_UCS_MIN (charset); + if ((code < XCHARSET_UCS_MIN (charset)) + || (XCHARSET_UCS_MAX (charset) < code)) + signal_simple_error ("Arguments makes invalid character", + make_char (code)); + return code; + } else if (XCHARSET_DIMENSION (charset) == 1) { switch (XCHARSET_CHARS (charset))