(Fforward_word): Handle fields even if would have hit
an edge of the buffer. Return nil if affected by fields.
This commit is contained in:
parent
c252ce7653
commit
2c6ea900ee
1 changed files with 7 additions and 9 deletions
16
src/syntax.c
16
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 ();
|
||||
|
|
Loading…
Add table
Reference in a new issue