diff options
| author | Stefan Monnier | 2009-02-12 18:20:52 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2009-02-12 18:20:52 +0000 |
| commit | 51d861def832ddd0a57cd6b761a432bc4d289333 (patch) | |
| tree | cec9821ac52955428d22e68c90e21ecc582afd38 /src | |
| parent | 865ff911f332655d788f73f4f2ef534e0572cee0 (diff) | |
| download | emacs-51d861def832ddd0a57cd6b761a432bc4d289333.tar.gz emacs-51d861def832ddd0a57cd6b761a432bc4d289333.zip | |
(adjust_point_for_property): Allow stopping betwen two invisible areas.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 53 | ||||
| -rw-r--r-- | src/keyboard.c | 17 |
2 files changed, 42 insertions, 28 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index dc38aa05bc7..c9d2328cf03 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2009-02-12 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * keyboard.c (adjust_point_for_property): Allow stopping betwen two | ||
| 4 | invisible areas. | ||
| 5 | |||
| 1 | 2009-02-12 Jason Rumney <jasonr@gnu.org> | 6 | 2009-02-12 Jason Rumney <jasonr@gnu.org> |
| 2 | 7 | ||
| 3 | * w32font.c (check_face_name): Check for fake helv. (Bug#2275) | 8 | * w32font.c (check_face_name): Check for fake helv. (Bug#2275) |
| @@ -27,14 +32,14 @@ | |||
| 27 | 32 | ||
| 28 | * search.c (fast_looking_at): New function. | 33 | * search.c (fast_looking_at): New function. |
| 29 | 34 | ||
| 30 | * term.c (encode_terminal_code): Adjusted for the change of | 35 | * term.c (encode_terminal_code): Adjust for the change of |
| 31 | <struct glyph>.u.cmp.to. | 36 | <struct glyph>.u.cmp.to. |
| 32 | (append_composite_glyph): Likewise. | 37 | (append_composite_glyph): Likewise. |
| 33 | 38 | ||
| 34 | * xdisp.c (fill_gstring_glyph_string): Adjusted for the change of | 39 | * xdisp.c (fill_gstring_glyph_string): Adjust for the change of |
| 35 | <struct glyph>.u.cmp.to. Check if the glyph belongs to the same | 40 | <struct glyph>.u.cmp.to. Check if the glyph belongs to the same |
| 36 | composition. | 41 | composition. |
| 37 | (append_composite_glyph): Adjusted for the change of | 42 | (append_composite_glyph): Adjust for the change of |
| 38 | <strcut glyph>.u.cmp.to. | 43 | <strcut glyph>.u.cmp.to. |
| 39 | 44 | ||
| 40 | 2009-02-11 Juanma Barranquero <lekktu@gmail.com> | 45 | 2009-02-11 Juanma Barranquero <lekktu@gmail.com> |
| @@ -84,8 +89,8 @@ | |||
| 84 | 89 | ||
| 85 | 2009-02-07 Eli Zaretskii <eliz@gnu.org> | 90 | 2009-02-07 Eli Zaretskii <eliz@gnu.org> |
| 86 | 91 | ||
| 87 | * coding.c (syms_of_coding) <translation-table-for-input>: Modify | 92 | * coding.c (syms_of_coding) <translation-table-for-input>: |
| 88 | doc string to discourage use for character code unification. | 93 | Modify doc string to discourage use for character code unification. |
| 89 | 94 | ||
| 90 | 2009-02-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | 95 | 2009-02-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> |
| 91 | 96 | ||
| @@ -119,8 +124,8 @@ | |||
| 119 | 124 | ||
| 120 | * nsterm.m (ns_read_socket): Same and don't set handling_signal. | 125 | * nsterm.m (ns_read_socket): Same and don't set handling_signal. |
| 121 | 126 | ||
| 122 | * keyboard.c (poll_for_input_1, handle_async_input): Set | 127 | * keyboard.c (poll_for_input_1, handle_async_input): |
| 123 | handling_signal under HAVE_NS. | 128 | Set handling_signal under HAVE_NS. |
| 124 | 129 | ||
| 125 | 2009-02-04 Glenn Morris <rgm@gnu.org> | 130 | 2009-02-04 Glenn Morris <rgm@gnu.org> |
| 126 | 131 | ||
| @@ -214,11 +219,9 @@ | |||
| 214 | * lisp.h (QUIT): Check pending_signals instead of | 219 | * lisp.h (QUIT): Check pending_signals instead of |
| 215 | interrupt_input_pending. Use process_pending_signals. | 220 | interrupt_input_pending. Use process_pending_signals. |
| 216 | 221 | ||
| 217 | * atimer.c (run_timers, alarm_signal_handler): Update | 222 | * atimer.c (run_timers, alarm_signal_handler): Update pending_signals. |
| 218 | pending_signals. | ||
| 219 | 223 | ||
| 220 | * process.c (wait_reading_process_output): Use | 224 | * process.c (wait_reading_process_output): Use process_pending_signals. |
| 221 | process_pending_signals. | ||
| 222 | 225 | ||
| 223 | * sysdep.c (emacs_write): Use process_pending_signals. | 226 | * sysdep.c (emacs_write): Use process_pending_signals. |
| 224 | 227 | ||
| @@ -273,7 +276,7 @@ | |||
| 273 | * xftfont.c (struct xftfont_info): New member `index'. | 276 | * xftfont.c (struct xftfont_info): New member `index'. |
| 274 | 277 | ||
| 275 | * fontset.c (font_for_char): Use assq_no_quit, not assoc_no_quit. | 278 | * fontset.c (font_for_char): Use assq_no_quit, not assoc_no_quit. |
| 276 | (Ffontset_font): Adjusted for the change of fontset entry. | 279 | (Ffontset_font): Adjust for the change of fontset entry. |
| 277 | 280 | ||
| 278 | 2009-01-26 Kenichi Handa <handa@m17n.org> | 281 | 2009-01-26 Kenichi Handa <handa@m17n.org> |
| 279 | 282 | ||
| @@ -389,8 +392,8 @@ | |||
| 389 | 392 | ||
| 390 | * nsterm.h (EmacsApp-setAppleMenu:): Conditionalize more correctly on | 393 | * nsterm.h (EmacsApp-setAppleMenu:): Conditionalize more correctly on |
| 391 | Tiger. | 394 | Tiger. |
| 392 | * nsfns.m (ns_do_applescript): Conditionalize | 395 | * nsfns.m (ns_do_applescript): |
| 393 | typeUTF16ExternalRepresentation on Tiger. | 396 | Conditionalize typeUTF16ExternalRepresentation on Tiger. |
| 394 | 397 | ||
| 395 | 2009-01-21 Wolfgang Lux <wolfgang.lux@gmail.com> (tiny change) | 398 | 2009-01-21 Wolfgang Lux <wolfgang.lux@gmail.com> (tiny change) |
| 396 | 399 | ||
| @@ -433,8 +436,7 @@ | |||
| 433 | 436 | ||
| 434 | 2009-01-19 Kenichi Handa <handa@m17n.org> | 437 | 2009-01-19 Kenichi Handa <handa@m17n.org> |
| 435 | 438 | ||
| 436 | * ftfont.c (ftfont_lookup_cache): Check the return value of | 439 | * ftfont.c (ftfont_lookup_cache): Check the return value of FcFontList. |
| 437 | FcFontList. | ||
| 438 | (ftfont_list): Likewise. | 440 | (ftfont_list): Likewise. |
| 439 | 441 | ||
| 440 | 2009-01-18 Juanma Barranquero <lekktu@gmail.com> | 442 | 2009-01-18 Juanma Barranquero <lekktu@gmail.com> |
| @@ -461,8 +463,7 @@ | |||
| 461 | 463 | ||
| 462 | 2009-01-15 Kenichi Handa <handa@m17n.org> | 464 | 2009-01-15 Kenichi Handa <handa@m17n.org> |
| 463 | 465 | ||
| 464 | * coding.c (detect_coding_system): Fix handling of | 466 | * coding.c (detect_coding_system): Fix handling of null_byte_found. |
| 465 | null_byte_found. | ||
| 466 | 467 | ||
| 467 | 2009-01-14 Jason Rumney <jasonr@gnu.org> | 468 | 2009-01-14 Jason Rumney <jasonr@gnu.org> |
| 468 | 469 | ||
| @@ -516,8 +517,7 @@ | |||
| 516 | * coding.c (inhibit_null_byte_detection): New variable. | 517 | * coding.c (inhibit_null_byte_detection): New variable. |
| 517 | (detect_coding, detect_coding_system): Don't pay attention to null | 518 | (detect_coding, detect_coding_system): Don't pay attention to null |
| 518 | bytes if inhibit_null_byte_detection is non-zero. | 519 | bytes if inhibit_null_byte_detection is non-zero. |
| 519 | (syms_of_coding) <inhibit-null-byte-detection>: Declare and | 520 | (syms_of_coding) <inhibit-null-byte-detection>: Declare and document. |
| 520 | document. | ||
| 521 | <inhibit-iso-escape-detection>: Doc fix. | 521 | <inhibit-iso-escape-detection>: Doc fix. |
| 522 | 522 | ||
| 523 | 2009-01-09 Jason Rumney <jasonr@gnu.org> | 523 | 2009-01-09 Jason Rumney <jasonr@gnu.org> |
| @@ -528,11 +528,10 @@ | |||
| 528 | 528 | ||
| 529 | 2009-01-09 Chong Yidong <cyd@stupidchicken.com> | 529 | 2009-01-09 Chong Yidong <cyd@stupidchicken.com> |
| 530 | 530 | ||
| 531 | * xfaces.c (Fx_font_family_list): Function deleted. Compatibility | 531 | * xfaces.c (Fx_font_family_list): Delete function. |
| 532 | version moved to faces.el. | 532 | Move compatibility version to faces.el. |
| 533 | 533 | ||
| 534 | * font.c (Ffont_family_list): Return a list of strings, not | 534 | * font.c (Ffont_family_list): Return a list of strings, not symbols. |
| 535 | symbols. | ||
| 536 | 535 | ||
| 537 | 2009-01-09 Martin Rudalics <rudalics@gmx.at> | 536 | 2009-01-09 Martin Rudalics <rudalics@gmx.at> |
| 538 | 537 | ||
| @@ -550,8 +549,7 @@ | |||
| 550 | 549 | ||
| 551 | 2009-01-08 Chong Yidong <cyd@stupidchicken.com> | 550 | 2009-01-08 Chong Yidong <cyd@stupidchicken.com> |
| 552 | 551 | ||
| 553 | * font.c (font_open_for_lface): Handle unspecified height | 552 | * font.c (font_open_for_lface): Handle unspecified height attribute. |
| 554 | attribute. | ||
| 555 | 553 | ||
| 556 | 2009-01-08 Jason Rumney <jasonr@gnu.org> | 554 | 2009-01-08 Jason Rumney <jasonr@gnu.org> |
| 557 | 555 | ||
| @@ -671,8 +669,7 @@ | |||
| 671 | 669 | ||
| 672 | * xfns.c (x_create_tip_frame): Set border width of the X window. | 670 | * xfns.c (x_create_tip_frame): Set border width of the X window. |
| 673 | 671 | ||
| 674 | * xfaces.c (Finternal_set_lisp_face_attribute): Improve error | 672 | * xfaces.c (Finternal_set_lisp_face_attribute): Improve error message. |
| 675 | message. | ||
| 676 | 673 | ||
| 677 | 2009-01-01 Jason Rumney <jasonr@gnu.org> | 674 | 2009-01-01 Jason Rumney <jasonr@gnu.org> |
| 678 | 675 | ||
diff --git a/src/keyboard.c b/src/keyboard.c index 8b411fdac8b..9f7648563c0 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -2046,6 +2046,20 @@ adjust_point_for_property (last_pt, modified) | |||
| 2046 | 2046 | ||
| 2047 | /* Find boundaries `beg' and `end' of the invisible area, if any. */ | 2047 | /* Find boundaries `beg' and `end' of the invisible area, if any. */ |
| 2048 | while (end < ZV | 2048 | while (end < ZV |
| 2049 | /* Stop if we find a spot between two runs of | ||
| 2050 | `invisible' where inserted text would be visible. | ||
| 2051 | This is important when we have two invisible | ||
| 2052 | boundaries that enclose an area: if the area is | ||
| 2053 | empty, we need this test in order to make it | ||
| 2054 | possible to place point in the middle rather than | ||
| 2055 | skip both boundaries. | ||
| 2056 | Note that this will stop anywhere in a non-sticky | ||
| 2057 | text-property, but I don't think there's much we | ||
| 2058 | can do about that. */ | ||
| 2059 | && (val = get_pos_property (make_number (end), | ||
| 2060 | Qinvisible, Qnil), | ||
| 2061 | TEXT_PROP_MEANS_INVISIBLE (val)) | ||
| 2062 | /* FIXME: write and then use get_pos_property_and_overlay. */ | ||
| 2049 | && !NILP (val = get_char_property_and_overlay | 2063 | && !NILP (val = get_char_property_and_overlay |
| 2050 | (make_number (end), Qinvisible, Qnil, &overlay)) | 2064 | (make_number (end), Qinvisible, Qnil, &overlay)) |
| 2051 | && (inv = TEXT_PROP_MEANS_INVISIBLE (val))) | 2065 | && (inv = TEXT_PROP_MEANS_INVISIBLE (val))) |
| @@ -2059,6 +2073,9 @@ adjust_point_for_property (last_pt, modified) | |||
| 2059 | end = NATNUMP (tmp) ? XFASTINT (tmp) : ZV; | 2073 | end = NATNUMP (tmp) ? XFASTINT (tmp) : ZV; |
| 2060 | } | 2074 | } |
| 2061 | while (beg > BEGV | 2075 | while (beg > BEGV |
| 2076 | && (val = get_pos_property (make_number (beg), | ||
| 2077 | Qinvisible, Qnil), | ||
| 2078 | TEXT_PROP_MEANS_INVISIBLE (val)) | ||
| 2062 | && !NILP (val = get_char_property_and_overlay | 2079 | && !NILP (val = get_char_property_and_overlay |
| 2063 | (make_number (beg - 1), Qinvisible, Qnil, &overlay)) | 2080 | (make_number (beg - 1), Qinvisible, Qnil, &overlay)) |
| 2064 | && (inv = TEXT_PROP_MEANS_INVISIBLE (val))) | 2081 | && (inv = TEXT_PROP_MEANS_INVISIBLE (val))) |