diff options
Diffstat (limited to 'src/charset.c')
| -rw-r--r-- | src/charset.c | 33 |
1 files changed, 8 insertions, 25 deletions
diff --git a/src/charset.c b/src/charset.c index 2771b0ba2ac..9e55d0c7fef 100644 --- a/src/charset.c +++ b/src/charset.c | |||
| @@ -866,15 +866,10 @@ usage: (define-charset-internal ...) */) | |||
| 866 | val = args[charset_arg_code_space]; | 866 | val = args[charset_arg_code_space]; |
| 867 | for (i = 0, dimension = 0, nchars = 1; ; i++) | 867 | for (i = 0, dimension = 0, nchars = 1; ; i++) |
| 868 | { | 868 | { |
| 869 | Lisp_Object min_byte_obj, max_byte_obj; | 869 | Lisp_Object min_byte_obj = Faref (val, make_fixnum (i * 2)); |
| 870 | int min_byte, max_byte; | 870 | Lisp_Object max_byte_obj = Faref (val, make_fixnum (i * 2 + 1)); |
| 871 | 871 | int min_byte = check_integer_range (min_byte_obj, 0, 255); | |
| 872 | min_byte_obj = Faref (val, make_fixnum (i * 2)); | 872 | int max_byte = check_integer_range (max_byte_obj, min_byte, 255); |
| 873 | max_byte_obj = Faref (val, make_fixnum (i * 2 + 1)); | ||
| 874 | CHECK_RANGED_INTEGER (min_byte_obj, 0, 255); | ||
| 875 | min_byte = XFIXNUM (min_byte_obj); | ||
| 876 | CHECK_RANGED_INTEGER (max_byte_obj, min_byte, 255); | ||
| 877 | max_byte = XFIXNUM (max_byte_obj); | ||
| 878 | charset.code_space[i * 4] = min_byte; | 873 | charset.code_space[i * 4] = min_byte; |
| 879 | charset.code_space[i * 4 + 1] = max_byte; | 874 | charset.code_space[i * 4 + 1] = max_byte; |
| 880 | charset.code_space[i * 4 + 2] = max_byte - min_byte + 1; | 875 | charset.code_space[i * 4 + 2] = max_byte - min_byte + 1; |
| @@ -887,13 +882,8 @@ usage: (define-charset-internal ...) */) | |||
| 887 | } | 882 | } |
| 888 | 883 | ||
| 889 | val = args[charset_arg_dimension]; | 884 | val = args[charset_arg_dimension]; |
| 890 | if (NILP (val)) | 885 | charset.dimension |
| 891 | charset.dimension = dimension; | 886 | = !NILP (val) ? check_integer_range (val, 1, 4) : dimension; |
| 892 | else | ||
| 893 | { | ||
| 894 | CHECK_RANGED_INTEGER (val, 1, 4); | ||
| 895 | charset.dimension = XFIXNUM (val); | ||
| 896 | } | ||
| 897 | 887 | ||
| 898 | charset.code_linear_p | 888 | charset.code_linear_p |
| 899 | = (charset.dimension == 1 | 889 | = (charset.dimension == 1 |
| @@ -979,13 +969,7 @@ usage: (define-charset-internal ...) */) | |||
| 979 | } | 969 | } |
| 980 | 970 | ||
| 981 | val = args[charset_arg_iso_revision]; | 971 | val = args[charset_arg_iso_revision]; |
| 982 | if (NILP (val)) | 972 | charset.iso_revision = !NILP (val) ? check_integer_range (val, -1, 63) : -1; |
| 983 | charset.iso_revision = -1; | ||
| 984 | else | ||
| 985 | { | ||
| 986 | CHECK_RANGED_INTEGER (val, -1, 63); | ||
| 987 | charset.iso_revision = XFIXNUM (val); | ||
| 988 | } | ||
| 989 | 973 | ||
| 990 | val = args[charset_arg_emacs_mule_id]; | 974 | val = args[charset_arg_emacs_mule_id]; |
| 991 | if (NILP (val)) | 975 | if (NILP (val)) |
| @@ -1090,8 +1074,7 @@ usage: (define-charset-internal ...) */) | |||
| 1090 | car_part = XCAR (elt); | 1074 | car_part = XCAR (elt); |
| 1091 | cdr_part = XCDR (elt); | 1075 | cdr_part = XCDR (elt); |
| 1092 | CHECK_CHARSET_GET_ID (car_part, this_id); | 1076 | CHECK_CHARSET_GET_ID (car_part, this_id); |
| 1093 | CHECK_TYPE_RANGED_INTEGER (int, cdr_part); | 1077 | offset = check_integer_range (cdr_part, INT_MIN, INT_MAX); |
| 1094 | offset = XFIXNUM (cdr_part); | ||
| 1095 | } | 1078 | } |
| 1096 | else | 1079 | else |
| 1097 | { | 1080 | { |