# HG changeset patch # User Kenichi Handa # Date 914306808 0 # Node ID 08e1d48769183f91b3ce2e055efab56c26303493 # Parent 5fea9ce6601a29f3c00cca32130969de8da11f2c (Fcharset_after): Check range. If POS is out of range, return nil. diff -r 5fea9ce6601a -r 08e1d4876918 src/charset.c --- a/src/charset.c Tue Dec 22 06:06:48 1998 +0000 +++ b/src/charset.c Tue Dec 22 06:06:48 1998 +0000 @@ -1006,7 +1006,8 @@ DEFUN ("charset-after", Fcharset_after, Scharset_after, 0, 1, 0, "Return charset of a character in current buffer at position POS.\n\ -If POS is nil, it defauls to the current point.") +If POS is nil, it defauls to the current point.\n\ +If POS is out of range, the value is nil.") (pos) Lisp_Object pos; { @@ -1016,10 +1017,16 @@ if (NILP (pos)) pos_byte = PT_BYTE; else if (MARKERP (pos)) - pos_byte = marker_byte_position (pos); + { + pos_byte = marker_byte_position (pos); + if (pos_byte < BEGV_BYTE || pos_byte >= ZV_BYTE) + return Qnil; + } else { CHECK_NUMBER (pos, 0); + if (XINT (pos) < BEGV || XINT (pos) >= ZV) + return Qnil; pos_byte = CHAR_TO_BYTE (XINT (pos)); } p = BYTE_POS_ADDR (pos_byte);