diff options
| author | Kenichi Handa | 2003-01-24 02:31:24 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2003-01-24 02:31:24 +0000 |
| commit | 2a026b0452500dff9772640365ff9a91510939ba (patch) | |
| tree | 55d664f536edb6707eed5de4e9c74d83fa432f1a /src | |
| parent | 175573acecde5135601d6dd915e014929fa9ffb1 (diff) | |
| download | emacs-2a026b0452500dff9772640365ff9a91510939ba.tar.gz emacs-2a026b0452500dff9772640365ff9a91510939ba.zip | |
(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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 8 | ||||
| -rw-r--r-- | src/keyboard.c | 16 |
2 files changed, 17 insertions, 7 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 3a695bcee56..ad2da41b98c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2003-01-24 Kenichi Handa <handa@m17n.org> | ||
| 2 | |||
| 3 | * keyboard.c (adjust_point_for_property): New second arg MODIFIED. | ||
| 4 | It it is nonzero, don't pretend that an invisible area doesn't | ||
| 5 | exist. | ||
| 6 | (command_loop_1): Call adjust_point_for_property with proper | ||
| 7 | second arg. | ||
| 8 | |||
| 1 | 2003-01-22 Jason Rumney <jasonr@gnu.org> | 9 | 2003-01-22 Jason Rumney <jasonr@gnu.org> |
| 2 | 10 | ||
| 3 | Sync changes with xterm.c and xfns.c. | 11 | Sync changes with xterm.c and xfns.c. |
diff --git a/src/keyboard.c b/src/keyboard.c index d54dcd22bc4..dae9470f70c 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -1335,7 +1335,7 @@ DEFUN ("abort-recursive-edit", Fabort_recursive_edit, Sabort_recursive_edit, 0, | |||
| 1335 | static int read_key_sequence P_ ((Lisp_Object *, int, Lisp_Object, | 1335 | static int read_key_sequence P_ ((Lisp_Object *, int, Lisp_Object, |
| 1336 | int, int, int)); | 1336 | int, int, int)); |
| 1337 | void safe_run_hooks P_ ((Lisp_Object)); | 1337 | void safe_run_hooks P_ ((Lisp_Object)); |
| 1338 | static void adjust_point_for_property P_ ((int)); | 1338 | static void adjust_point_for_property P_ ((int, int)); |
| 1339 | 1339 | ||
| 1340 | Lisp_Object | 1340 | Lisp_Object |
| 1341 | command_loop_1 () | 1341 | command_loop_1 () |
| @@ -1587,7 +1587,7 @@ command_loop_1 () | |||
| 1587 | /* Put this before calling adjust_point_for_property | 1587 | /* Put this before calling adjust_point_for_property |
| 1588 | so it will only get called once in any case. */ | 1588 | so it will only get called once in any case. */ |
| 1589 | goto directly_done; | 1589 | goto directly_done; |
| 1590 | adjust_point_for_property (last_point_position); | 1590 | adjust_point_for_property (last_point_position, 0); |
| 1591 | already_adjusted = 1; | 1591 | already_adjusted = 1; |
| 1592 | if (PT == last_point_position + 1 | 1592 | if (PT == last_point_position + 1 |
| 1593 | && (dp | 1593 | && (dp |
| @@ -1621,7 +1621,7 @@ command_loop_1 () | |||
| 1621 | lose = FETCH_CHAR (PT_BYTE); | 1621 | lose = FETCH_CHAR (PT_BYTE); |
| 1622 | if (! NILP (Vpost_command_hook)) | 1622 | if (! NILP (Vpost_command_hook)) |
| 1623 | goto directly_done; | 1623 | goto directly_done; |
| 1624 | adjust_point_for_property (last_point_position); | 1624 | adjust_point_for_property (last_point_position, 0); |
| 1625 | already_adjusted = 1; | 1625 | already_adjusted = 1; |
| 1626 | if (PT == last_point_position - 1 | 1626 | if (PT == last_point_position - 1 |
| 1627 | && (dp | 1627 | && (dp |
| @@ -1791,7 +1791,7 @@ command_loop_1 () | |||
| 1791 | && NILP (Vdisable_point_adjustment) | 1791 | && NILP (Vdisable_point_adjustment) |
| 1792 | && NILP (Vglobal_disable_point_adjustment) | 1792 | && NILP (Vglobal_disable_point_adjustment) |
| 1793 | && !already_adjusted) | 1793 | && !already_adjusted) |
| 1794 | adjust_point_for_property (last_point_position); | 1794 | adjust_point_for_property (last_point_position, MODIFF != prev_modiff); |
| 1795 | 1795 | ||
| 1796 | /* Install chars successfully executed in kbd macro. */ | 1796 | /* Install chars successfully executed in kbd macro. */ |
| 1797 | 1797 | ||
| @@ -1817,8 +1817,9 @@ extern Lisp_Object Qafter_string, Qbefore_string; | |||
| 1817 | extern Lisp_Object get_pos_property P_ ((Lisp_Object, Lisp_Object, Lisp_Object)); | 1817 | extern Lisp_Object get_pos_property P_ ((Lisp_Object, Lisp_Object, Lisp_Object)); |
| 1818 | 1818 | ||
| 1819 | static void | 1819 | static void |
| 1820 | adjust_point_for_property (last_pt) | 1820 | adjust_point_for_property (last_pt, modified) |
| 1821 | int last_pt; | 1821 | int last_pt; |
| 1822 | int modified; | ||
| 1822 | { | 1823 | { |
| 1823 | int beg, end; | 1824 | int beg, end; |
| 1824 | Lisp_Object val, overlay, tmp; | 1825 | Lisp_Object val, overlay, tmp; |
| @@ -1894,8 +1895,9 @@ adjust_point_for_property (last_pt) | |||
| 1894 | check_composition = check_display = 1; | 1895 | check_composition = check_display = 1; |
| 1895 | } | 1896 | } |
| 1896 | xassert (PT == beg || PT == end); | 1897 | xassert (PT == beg || PT == end); |
| 1897 | /* Pretend the area doesn't exist. */ | 1898 | /* Pretend the area doesn't exist if the buffer is not |
| 1898 | if (!ellipsis && beg < end) | 1899 | modified. */ |
| 1900 | if (!modified && !ellipsis && beg < end) | ||
| 1899 | { | 1901 | { |
| 1900 | if (last_pt == beg && PT == end && end < ZV) | 1902 | if (last_pt == beg && PT == end && end < ZV) |
| 1901 | (check_composition = check_display = 1, SET_PT (end + 1)); | 1903 | (check_composition = check_display = 1, SET_PT (end + 1)); |