Mercurial > emacs
changeset 23132:1c8e0e09aea1
(Fposition_bytes): If the arg POSITION is out of
range, return nil.
(Fbyte_to_position): If the arg BYTEPOS is out of range, return
nil.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Fri, 28 Aug 1998 12:22:39 +0000 |
parents | f7e486faa1ad |
children | 48fb93ba8b10 |
files | src/editfns.c |
diffstat | 1 files changed, 8 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/editfns.c Fri Aug 28 12:22:39 1998 +0000 +++ b/src/editfns.c Fri Aug 28 12:22:39 1998 +0000 @@ -490,20 +490,26 @@ } DEFUN ("position-bytes", Fposition_bytes, Sposition_bytes, 1, 1, 0, - "Return the byte position for character position POSITION.") + "Return the byte position for character position POSITION.\n\ +If POSITION is out of range, the value is nil.") (position) Lisp_Object position; { CHECK_NUMBER_COERCE_MARKER (position, 1); + if (XINT (position) < BEG || XINT (position) > Z) + return Qnil; return make_number (CHAR_TO_BYTE (XINT (position))); } DEFUN ("byte-to-position", Fbyte_to_position, Sbyte_to_position, 1, 1, 0, - "Return the character position for byte position BYTEPOS.") + "Return the character position for byte position BYTEPOS.\n\ +If BYTEPOS is out of range, the value is nil.") (bytepos) Lisp_Object bytepos; { CHECK_NUMBER (bytepos, 1); + if (XINT (bytepos) < BEG_BYTE || XINT (bytepos) > Z_BYTE) + return Qnil; return make_number (BYTE_TO_CHAR (XINT (bytepos))); }