aboutsummaryrefslogtreecommitdiffstats
path: root/src/charset.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/charset.c')
-rw-r--r--src/charset.c33
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 {