- 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;
+ }