Mercurial > emacs
changeset 49408:7e6cf4411cd4
(adjust_point_for_property): New second arg MODIFIED.
It it is nonzero, don't pretend that an invisible area doesn't
exist.
(command_loop_1): Call adjust_point_for_property with proper
second arg.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Fri, 24 Jan 2003 02:31:07 +0000 |
parents | c47a7a3493da |
children | 2f429f327ba1 |
files | src/keyboard.c |
diffstat | 1 files changed, 9 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/keyboard.c Thu Jan 23 23:34:59 2003 +0000 +++ b/src/keyboard.c Fri Jan 24 02:31:07 2003 +0000 @@ -1335,7 +1335,7 @@ static int read_key_sequence P_ ((Lisp_Object *, int, Lisp_Object, int, int, int)); void safe_run_hooks P_ ((Lisp_Object)); -static void adjust_point_for_property P_ ((int)); +static void adjust_point_for_property P_ ((int, int)); Lisp_Object command_loop_1 () @@ -1587,7 +1587,7 @@ /* Put this before calling adjust_point_for_property so it will only get called once in any case. */ goto directly_done; - adjust_point_for_property (last_point_position); + adjust_point_for_property (last_point_position, 0); already_adjusted = 1; if (PT == last_point_position + 1 && (dp @@ -1621,7 +1621,7 @@ lose = FETCH_CHAR (PT_BYTE); if (! NILP (Vpost_command_hook)) goto directly_done; - adjust_point_for_property (last_point_position); + adjust_point_for_property (last_point_position, 0); already_adjusted = 1; if (PT == last_point_position - 1 && (dp @@ -1791,7 +1791,7 @@ && NILP (Vdisable_point_adjustment) && NILP (Vglobal_disable_point_adjustment) && !already_adjusted) - adjust_point_for_property (last_point_position); + adjust_point_for_property (last_point_position, MODIFF != prev_modiff); /* Install chars successfully executed in kbd macro. */ @@ -1817,8 +1817,9 @@ extern Lisp_Object get_pos_property P_ ((Lisp_Object, Lisp_Object, Lisp_Object)); static void -adjust_point_for_property (last_pt) +adjust_point_for_property (last_pt, modified) int last_pt; + int modified; { int beg, end; Lisp_Object val, overlay, tmp; @@ -1894,8 +1895,9 @@ check_composition = check_display = 1; } xassert (PT == beg || PT == end); - /* Pretend the area doesn't exist. */ - if (!ellipsis && beg < end) + /* Pretend the area doesn't exist if the buffer is not + modified. */ + if (!modified && !ellipsis && beg < end) { if (last_pt == beg && PT == end && end < ZV) (check_composition = check_display = 1, SET_PT (end + 1));