aboutsummaryrefslogtreecommitdiffstats
path: root/src/charset.h
diff options
context:
space:
mode:
authorKenichi Handa <[email protected]>1997-05-16 00:43:26 +0000
committerKenichi Handa <[email protected]>1997-05-16 00:43:26 +0000
commitc6112b99dc8fe272b0413f2dba94eef2e606d44a (patch)
tree8b58ed171ee7219308eed2b92fe621cdc7bfef35 /src/charset.h
parent4b9171878a806e4999c3022a42866d2bdcdeeba3 (diff)
(VALID_CHAR_P): New macro.
(CHAR_STRING): Comment modified
Diffstat (limited to 'src/charset.h')
-rw-r--r--src/charset.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/charset.h b/src/charset.h
index d315dd6fa8..73f043aafa 100644
--- a/src/charset.h
+++ b/src/charset.h
@@ -463,6 +463,16 @@ extern int width_by_char_head[256];
? (c1) \
: MAKE_NON_ASCII_CHAR ((charset), (c1) & 0x7F, (c2) & 0x7F))
+/* 1 if C is in the range of possible character code Emacs can have. */
+#define VALID_CHAR_P(c) \
+ ((c) >= 0 \
+ && (SINGLE_BYTE_CHAR_P (c) \
+ || ((c) < MIN_CHAR_COMPOSITION \
+ ? ((c) & CHAR_FIELD1_MASK \
+ ? (CHAR_FIELD2 (c) >= 32 && CHAR_FIELD3 (c) >= 32) \
+ : (CHAR_FIELD2 (c) >= 16 && CHAR_FIELD3 (c) >= 32)) \
+ : (c) < MIN_CHAR_COMPOSITION + n_cmpchars)))
+
/* The charset of non-ASCII character C is set to CHARSET, and the
position-codes of C are set to C1 and C2. C2 of DIMENSION1 character
is -1. */
@@ -517,7 +527,7 @@ extern int iso_charset_table[2][2][128];
is not a composite character, the multi-byte form is set in WORKBUF
and STR points WORKBUF. The caller should allocate at least 4-byte
area at WORKBUF in advance. Returns the length of the multi-byte
- form. */
+ form. If C is an invalid character code, signal an error. */
#define CHAR_STRING(c, workbuf, str) \
(SINGLE_BYTE_CHAR_P (c) \