Mercurial > emacs
changeset 23932:08e1d4876918
(Fcharset_after): Check range. If POS is out of
range, return nil.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Tue, 22 Dec 1998 06:06:48 +0000 |
parents | 5fea9ce6601a |
children | d993b7332153 |
files | src/charset.c |
diffstat | 1 files changed, 9 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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);