From: Richard M. Stallman Date: Tue, 9 Nov 1999 19:00:59 +0000 (+0000) Subject: (Fforward_word): Handle fields even if would have hit X-Git-Tag: emacs-pretest-21.0.90~6142 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2c6ea900ee425a3cfc23b625b4841b89af407e78;p=emacs.git (Fforward_word): Handle fields even if would have hit an edge of the buffer. Return nil if affected by fields. --- diff --git a/src/syntax.c b/src/syntax.c index 60501f9677f..da28d6eed6d 100644 --- a/src/syntax.c +++ b/src/syntax.c @@ -1222,26 +1222,24 @@ scan_words (from, count) DEFUN ("forward-word", Fforward_word, Sforward_word, 1, 1, "p", "Move point forward ARG words (backward if ARG is negative).\n\ Normally returns t.\n\ -If an edge of the buffer is reached, point is left there\n\ -and nil is returned.") +If an edge of the buffer or a field boundary is reached, point is left there\n\ +and the function returns nil.") (count) Lisp_Object count; { - int val, prompt_end; + int orig_val, val; CHECK_NUMBER (count, 0); - if (!(val = scan_words (PT, XINT (count)))) - { - SET_PT (XINT (count) > 0 ? ZV : BEGV); - return Qnil; - } + val = orig_val = scan_words (PT, XINT (count)); + if (! orig_val) + val = XINT (count) > 0 ? ZV : BEGV; /* Avoid jumping out of an input field. */ val = XFASTINT (Fconstrain_to_field (make_number (val), make_number (PT), Qt, Qnil)); SET_PT (val); - return Qt; + return (val == orig_val ? Qt : Qnil); } Lisp_Object skip_chars ();