diff options
Diffstat (limited to 'src/buffer.h')
| -rw-r--r-- | src/buffer.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/buffer.h b/src/buffer.h index 0975d2e3adc..d80875a0811 100644 --- a/src/buffer.h +++ b/src/buffer.h | |||
| @@ -1026,4 +1026,31 @@ extern int last_per_buffer_idx; | |||
| 1026 | 1026 | ||
| 1027 | #define PER_BUFFER_VALUE(BUFFER, OFFSET) \ | 1027 | #define PER_BUFFER_VALUE(BUFFER, OFFSET) \ |
| 1028 | (*(Lisp_Object *)((OFFSET) + (char *) (BUFFER))) | 1028 | (*(Lisp_Object *)((OFFSET) + (char *) (BUFFER))) |
| 1029 | |||
| 1030 | /* Downcase a character C, or make no change if that cannot be done. */ | ||
| 1031 | static inline int | ||
| 1032 | downcase (int c) | ||
| 1033 | { | ||
| 1034 | Lisp_Object downcase_table = BVAR (current_buffer, downcase_table); | ||
| 1035 | Lisp_Object down = CHAR_TABLE_REF (downcase_table, c); | ||
| 1036 | return NATNUMP (down) ? XFASTINT (down) : c; | ||
| 1037 | } | ||
| 1038 | |||
| 1039 | /* 1 if C is upper case. */ | ||
| 1040 | static inline int uppercasep (int c) { return downcase (c) != c; } | ||
| 1041 | |||
| 1042 | /* Upcase a character C known to be not upper case. */ | ||
| 1043 | static inline int | ||
| 1044 | upcase1 (int c) | ||
| 1045 | { | ||
| 1046 | Lisp_Object upcase_table = BVAR (current_buffer, upcase_table); | ||
| 1047 | Lisp_Object up = CHAR_TABLE_REF (upcase_table, c); | ||
| 1048 | return NATNUMP (up) ? XFASTINT (up) : c; | ||
| 1049 | } | ||
| 1050 | |||
| 1051 | /* 1 if C is lower case. */ | ||
| 1052 | static inline int lowercasep (int c) | ||
| 1053 | { return !uppercasep (c) && upcase1 (c) != c; } | ||
| 1029 | 1054 | ||
| 1055 | /* Upcase a character C, or make no change if that cannot be done. */ | ||
| 1056 | static inline int upcase (int c) { return uppercasep (c) ? c : upcase1 (c); } | ||