From: Richard M. Stallman Date: Fri, 30 May 1997 05:11:26 +0000 (+0000) Subject: (Fchar_table_range, Fset_char_table_range): X-Git-Tag: emacs-20.1~1911 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e814a15920cf817330a9336e5987df57c12d8e91;p=emacs.git (Fchar_table_range, Fset_char_table_range): Make one-element vector work for RANGE. --- diff --git a/src/fns.c b/src/fns.c index b912071a5f8..69bcb6f7d86 100644 --- a/src/fns.c +++ b/src/fns.c @@ -1315,12 +1315,17 @@ or a character code.") return Faref (char_table, range); else if (VECTORP (range)) { - int size = XVECTOR (range)->size; - Lisp_Object *val = XVECTOR (range)->contents; - Lisp_Object ch = Fmake_char_internal (size <= 0 ? Qnil : val[0], - size <= 1 ? Qnil : val[1], - size <= 2 ? Qnil : val[2]); - return Faref (char_table, ch); + if (XVECTOR (range)->size == 1) + return Faref (char_table, XVECTOR (range)->contents[0]); + else + { + int size = XVECTOR (range)->size; + Lisp_Object *val = XVECTOR (range)->contents; + Lisp_Object ch = Fmake_char_internal (size <= 0 ? Qnil : val[0], + size <= 1 ? Qnil : val[1], + size <= 2 ? Qnil : val[2]); + return Faref (char_table, ch); + } } else error ("Invalid RANGE argument to `char-table-range'"); @@ -1348,12 +1353,17 @@ or a character code.") Faset (char_table, range, value); else if (VECTORP (range)) { - int size = XVECTOR (range)->size; - Lisp_Object *val = XVECTOR (range)->contents; - Lisp_Object ch = Fmake_char_internal (size <= 0 ? Qnil : val[0], - size <= 1 ? Qnil : val[1], - size <= 2 ? Qnil : val[2]); - return Faset (char_table, ch, value); + if (XVECTOR (range)->size == 1) + return Faset (char_table, XVECTOR (range)->contents[0], value); + else + { + int size = XVECTOR (range)->size; + Lisp_Object *val = XVECTOR (range)->contents; + Lisp_Object ch = Fmake_char_internal (size <= 0 ? Qnil : val[0], + size <= 1 ? Qnil : val[1], + size <= 2 ? Qnil : val[2]); + return Faset (char_table, ch, value); + } } else error ("Invalid RANGE argument to `set-char-table-range'");