aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2009-02-12 18:20:52 +0000
committerStefan Monnier2009-02-12 18:20:52 +0000
commit51d861def832ddd0a57cd6b761a432bc4d289333 (patch)
treecec9821ac52955428d22e68c90e21ecc582afd38 /src
parent865ff911f332655d788f73f4f2ef534e0572cee0 (diff)
downloademacs-51d861def832ddd0a57cd6b761a432bc4d289333.tar.gz
emacs-51d861def832ddd0a57cd6b761a432bc4d289333.zip
(adjust_point_for_property): Allow stopping betwen two invisible areas.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog53
-rw-r--r--src/keyboard.c17
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 @@
12009-02-12 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * keyboard.c (adjust_point_for_property): Allow stopping betwen two
4 invisible areas.
5
12009-02-12 Jason Rumney <jasonr@gnu.org> 62009-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
402009-02-11 Juanma Barranquero <lekktu@gmail.com> 452009-02-11 Juanma Barranquero <lekktu@gmail.com>
@@ -84,8 +89,8 @@
84 89
852009-02-07 Eli Zaretskii <eliz@gnu.org> 902009-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
902009-02-07 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 952009-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
1252009-02-04 Glenn Morris <rgm@gnu.org> 1302009-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
2782009-01-26 Kenichi Handa <handa@m17n.org> 2812009-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
3952009-01-21 Wolfgang Lux <wolfgang.lux@gmail.com> (tiny change) 3982009-01-21 Wolfgang Lux <wolfgang.lux@gmail.com> (tiny change)
396 399
@@ -433,8 +436,7 @@
433 436
4342009-01-19 Kenichi Handa <handa@m17n.org> 4372009-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
4402009-01-18 Juanma Barranquero <lekktu@gmail.com> 4422009-01-18 Juanma Barranquero <lekktu@gmail.com>
@@ -461,8 +463,7 @@
461 463
4622009-01-15 Kenichi Handa <handa@m17n.org> 4642009-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
4672009-01-14 Jason Rumney <jasonr@gnu.org> 4682009-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
5232009-01-09 Jason Rumney <jasonr@gnu.org> 5232009-01-09 Jason Rumney <jasonr@gnu.org>
@@ -528,11 +528,10 @@
528 528
5292009-01-09 Chong Yidong <cyd@stupidchicken.com> 5292009-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
5372009-01-09 Martin Rudalics <rudalics@gmx.at> 5362009-01-09 Martin Rudalics <rudalics@gmx.at>
538 537
@@ -550,8 +549,7 @@
550 549
5512009-01-08 Chong Yidong <cyd@stupidchicken.com> 5502009-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
5562009-01-08 Jason Rumney <jasonr@gnu.org> 5542009-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
6772009-01-01 Jason Rumney <jasonr@gnu.org> 6742009-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)))