X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/8e07ea1a05e801e52061e880aa36b7cec5895f5a..aae436e2d898a8c8cc243c73d6cec5a8c566a061:/src/character.h diff --git a/src/character.h b/src/character.h index 7d902952db..440e78147d 100644 --- a/src/character.h +++ b/src/character.h @@ -24,6 +24,7 @@ along with GNU Emacs. If not, see . */ #define EMACS_CHARACTER_H #include +#include "lisp.h" INLINE_HEADER_BEGIN @@ -59,6 +60,30 @@ INLINE_HEADER_BEGIN /* Maximum leading code of multibyte characters. */ #define MAX_MULTIBYTE_LEADING_CODE 0xF8 +/* Unicode character values. */ +enum +{ + NO_BREAK_SPACE = 0x00A0, + SOFT_HYPHEN = 0x00AD, + ZERO_WIDTH_NON_JOINER = 0x200C, + ZERO_WIDTH_JOINER = 0x200D, + HYPHEN = 0x2010, + NON_BREAKING_HYPHEN = 0x2011, + LEFT_SINGLE_QUOTATION_MARK = 0x2018, + RIGHT_SINGLE_QUOTATION_MARK = 0x2019, + PARAGRAPH_SEPARATOR = 0x2029, + LEFT_POINTING_ANGLE_BRACKET = 0x2329, + RIGHT_POINTING_ANGLE_BRACKET = 0x232A, + LEFT_ANGLE_BRACKET = 0x3008, + RIGHT_ANGLE_BRACKET = 0x3009, + OBJECT_REPLACEMENT_CHARACTER = 0xFFFC, +}; + +/* UTF-8 encodings. Use \x escapes, so they are portable to pre-C11 + compilers and can be concatenated with ordinary string literals. */ +#define uLSQM "\xE2\x80\x98" /* U+2018 LEFT SINGLE QUOTATION MARK */ +#define uRSQM "\xE2\x80\x99" /* U+2019 RIGHT SINGLE QUOTATION MARK */ + /* Nonzero iff C is a character that corresponds to a raw 8-bit byte. */ #define CHAR_BYTE8_P(c) ((c) > MAX_5_BYTE_CHAR) @@ -110,14 +135,12 @@ INLINE_HEADER_BEGIN do { \ Lisp_Object tmp = XCAR (x); \ CHECK_CHARACTER (tmp); \ - XSETCAR ((x), tmp); \ } while (false) #define CHECK_CHARACTER_CDR(x) \ do { \ Lisp_Object tmp = XCDR (x); \ CHECK_CHARACTER (tmp); \ - XSETCDR ((x), tmp); \ } while (false) /* Nonzero iff C is a character of code less than 0x100. */ @@ -662,6 +685,8 @@ extern Lisp_Object string_escape_byte8 (Lisp_Object); extern bool alphabeticp (int); extern bool decimalnump (int); +extern bool graphicp (int); +extern bool printablep (int); /* Return a translation table of id number ID. */ #define GET_TRANSLATION_TABLE(id) \