aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buffer.h')
-rw-r--r--src/buffer.h27
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. */
1031static inline int
1032downcase (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. */
1040static inline int uppercasep (int c) { return downcase (c) != c; }
1041
1042/* Upcase a character C known to be not upper case. */
1043static inline int
1044upcase1 (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. */
1052static 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. */
1056static inline int upcase (int c) { return uppercasep (c) ? c : upcase1 (c); }