Mercurial > hg > xemacs-beta
diff src/syntax.c @ 446:1ccc32a20af4 r21-2-38
Import from CVS: tag r21-2-38
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:37:21 +0200 |
parents | 576fb035e263 |
children | 223736d75acb |
line wrap: on
line diff
--- a/src/syntax.c Mon Aug 13 11:36:20 2007 +0200 +++ b/src/syntax.c Mon Aug 13 11:37:21 2007 +0200 @@ -443,27 +443,38 @@ return from; } -DEFUN ("forward-word", Fforward_word, 1, 2, "_p", /* +DEFUN ("forward-word", Fforward_word, 0, 2, "_p", /* Move point forward COUNT words (backward if COUNT is negative). -Normally returns t. -If an edge of the buffer is reached, point is left there -and nil is returned. +Normally t is returned, but if an edge of the buffer is reached, +point is left there and nil is returned. -Optional argument BUFFER defaults to the current buffer. +COUNT defaults to 1, and BUFFER defaults to the current buffer. */ (count, buffer)) { Bufpos val; struct buffer *buf = decode_buffer (buffer, 0); - CHECK_INT (count); + EMACS_INT n; + + if (NILP (count)) + n = 1; + else + { + CHECK_INT (count); + n = XINT (count); + } - if (!(val = scan_words (buf, BUF_PT (buf), XINT (count)))) + val = scan_words (buf, BUF_PT (buf), n); + if (val) { - BUF_SET_PT (buf, XINT (count) > 0 ? BUF_ZV (buf) : BUF_BEGV (buf)); + BUF_SET_PT (buf, val); + return Qt; + } + else + { + BUF_SET_PT (buf, n > 0 ? BUF_ZV (buf) : BUF_BEGV (buf)); return Qnil; } - BUF_SET_PT (buf, val); - return Qt; } static void scan_sexps_forward (struct buffer *buf, @@ -648,14 +659,14 @@ ever complains about this function not working properly, take a look at those changes. --ben */ -DEFUN ("forward-comment", Fforward_comment, 1, 2, 0, /* +DEFUN ("forward-comment", Fforward_comment, 0, 2, 0, /* Move forward across up to COUNT comments, or backwards if COUNT is negative. Stop scanning if we find something other than a comment or whitespace. Set point to where scanning stops. If COUNT comments are found as expected, with nothing except whitespace between them, return t; otherwise return nil. Point is set in either case. -Optional argument BUFFER defaults to the current buffer. +COUNT defaults to 1, and BUFFER defaults to the current buffer. */ (count, buffer)) { @@ -667,8 +678,13 @@ struct buffer *buf = decode_buffer (buffer, 0); Lisp_Char_Table *mirrortab = XCHAR_TABLE (buf->mirror_syntax_table); - CHECK_INT (count); - n = XINT (count); + if (NILP (count)) + n = 1; + else + { + CHECK_INT (count); + n = XINT (count); + } from = BUF_PT (buf);