aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndreas Schwab1998-04-14 12:59:32 +0000
committerAndreas Schwab1998-04-14 12:59:32 +0000
commit21ab867fb9a2c4bbcb31f62203f9b81f4e0213a9 (patch)
treecf94515e8fc0a82138e3e149919339f4bfd6e5b3 /src
parentb266ae04d722c6ee06c62b949f7f3eba49788b14 (diff)
downloademacs-21ab867fb9a2c4bbcb31f62203f9b81f4e0213a9.tar.gz
emacs-21ab867fb9a2c4bbcb31f62203f9b81f4e0213a9.zip
(Fsubstring, substring_both, Fchar_table_range,
Fset_char_table_range): Fix mixing of Lisp_Object and int.
Diffstat (limited to 'src')
-rw-r--r--src/fns.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/fns.c b/src/fns.c
index e9dce29de21..64afd394c57 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -975,8 +975,8 @@ This function allows vectors as well as strings.")
975 res = make_specified_string (XSTRING (string)->data + from_byte, 975 res = make_specified_string (XSTRING (string)->data + from_byte,
976 to_char - from_char, to_byte - from_byte, 976 to_char - from_char, to_byte - from_byte,
977 STRING_MULTIBYTE (string)); 977 STRING_MULTIBYTE (string));
978 copy_text_properties (from_char, to_char, string, 978 copy_text_properties (make_number (from_char), make_number (to_char),
979 make_number (0), res, Qnil); 979 string, make_number (0), res, Qnil);
980 } 980 }
981 else 981 else
982 res = Fvector (to_char - from_char, 982 res = Fvector (to_char - from_char,
@@ -1016,7 +1016,8 @@ substring_both (string, from, from_byte, to, to_byte)
1016 res = make_specified_string (XSTRING (string)->data + from_byte, 1016 res = make_specified_string (XSTRING (string)->data + from_byte,
1017 to - from, to_byte - from_byte, 1017 to - from, to_byte - from_byte,
1018 STRING_MULTIBYTE (string)); 1018 STRING_MULTIBYTE (string));
1019 copy_text_properties (from, to, string, make_number (0), res, Qnil); 1019 copy_text_properties (make_number (from), make_number (to),
1020 string, make_number (0), res, Qnil);
1020 } 1021 }
1021 else 1022 else
1022 res = Fvector (to - from, 1023 res = Fvector (to - from,
@@ -1763,12 +1764,15 @@ a character set name, or a character code.")
1763 charset_info = Fget (range, Qcharset); 1764 charset_info = Fget (range, Qcharset);
1764 CHECK_VECTOR (charset_info, 0); 1765 CHECK_VECTOR (charset_info, 0);
1765 1766
1766 return Faref (char_table, XVECTOR (charset_info)->contents[0] + 128); 1767 return Faref (char_table,
1768 make_number (XINT (XVECTOR (charset_info)->contents[0])
1769 + 128));
1767 } 1770 }
1768 else if (VECTORP (range)) 1771 else if (VECTORP (range))
1769 { 1772 {
1770 if (XVECTOR (range)->size == 1) 1773 if (XVECTOR (range)->size == 1)
1771 return Faref (char_table, XVECTOR (range)->contents[0] + 128); 1774 return Faref (char_table,
1775 make_number (XINT (XVECTOR (range)->contents[0]) + 128));
1772 else 1776 else
1773 { 1777 {
1774 int size = XVECTOR (range)->size; 1778 int size = XVECTOR (range)->size;
@@ -1808,7 +1812,9 @@ a coding system, or a character code.")
1808 charset_info = Fget (range, Qcharset); 1812 charset_info = Fget (range, Qcharset);
1809 CHECK_VECTOR (charset_info, 0); 1813 CHECK_VECTOR (charset_info, 0);
1810 1814
1811 return Faset (char_table, XVECTOR (charset_info)->contents[0] + 128, 1815 return Faset (char_table,
1816 make_number (XINT (XVECTOR (charset_info)->contents[0])
1817 + 128),
1812 value); 1818 value);
1813 } 1819 }
1814 else if (INTEGERP (range)) 1820 else if (INTEGERP (range))
@@ -1816,7 +1822,9 @@ a coding system, or a character code.")
1816 else if (VECTORP (range)) 1822 else if (VECTORP (range))
1817 { 1823 {
1818 if (XVECTOR (range)->size == 1) 1824 if (XVECTOR (range)->size == 1)
1819 return Faset (char_table, XVECTOR (range)->contents[0] + 128, value); 1825 return Faset (char_table,
1826 make_number (XINT (XVECTOR (range)->contents[0]) + 128),
1827 value);
1820 else 1828 else
1821 { 1829 {
1822 int size = XVECTOR (range)->size; 1830 int size = XVECTOR (range)->size;