diff --git a/src/ChangeLog b/src/ChangeLog index dc38aa05bc7..c9d2328cf03 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2009-02-12 Stefan Monnier + + * keyboard.c (adjust_point_for_property): Allow stopping betwen two + invisible areas. + 2009-02-12 Jason Rumney * w32font.c (check_face_name): Check for fake helv. (Bug#2275) @@ -27,14 +32,14 @@ * search.c (fast_looking_at): New function. - * term.c (encode_terminal_code): Adjusted for the change of + * term.c (encode_terminal_code): Adjust for the change of .u.cmp.to. (append_composite_glyph): Likewise. - * xdisp.c (fill_gstring_glyph_string): Adjusted for the change of + * xdisp.c (fill_gstring_glyph_string): Adjust for the change of .u.cmp.to. Check if the glyph belongs to the same composition. - (append_composite_glyph): Adjusted for the change of + (append_composite_glyph): Adjust for the change of .u.cmp.to. 2009-02-11 Juanma Barranquero @@ -84,8 +89,8 @@ 2009-02-07 Eli Zaretskii - * coding.c (syms_of_coding) : Modify - doc string to discourage use for character code unification. + * coding.c (syms_of_coding) : + Modify doc string to discourage use for character code unification. 2009-02-07 YAMAMOTO Mitsuharu @@ -119,8 +124,8 @@ * nsterm.m (ns_read_socket): Same and don't set handling_signal. - * keyboard.c (poll_for_input_1, handle_async_input): Set - handling_signal under HAVE_NS. + * keyboard.c (poll_for_input_1, handle_async_input): + Set handling_signal under HAVE_NS. 2009-02-04 Glenn Morris @@ -214,11 +219,9 @@ * lisp.h (QUIT): Check pending_signals instead of interrupt_input_pending. Use process_pending_signals. - * atimer.c (run_timers, alarm_signal_handler): Update - pending_signals. + * atimer.c (run_timers, alarm_signal_handler): Update pending_signals. - * process.c (wait_reading_process_output): Use - process_pending_signals. + * process.c (wait_reading_process_output): Use process_pending_signals. * sysdep.c (emacs_write): Use process_pending_signals. @@ -273,7 +276,7 @@ * xftfont.c (struct xftfont_info): New member `index'. * fontset.c (font_for_char): Use assq_no_quit, not assoc_no_quit. - (Ffontset_font): Adjusted for the change of fontset entry. + (Ffontset_font): Adjust for the change of fontset entry. 2009-01-26 Kenichi Handa @@ -389,8 +392,8 @@ * nsterm.h (EmacsApp-setAppleMenu:): Conditionalize more correctly on Tiger. - * nsfns.m (ns_do_applescript): Conditionalize - typeUTF16ExternalRepresentation on Tiger. + * nsfns.m (ns_do_applescript): + Conditionalize typeUTF16ExternalRepresentation on Tiger. 2009-01-21 Wolfgang Lux (tiny change) @@ -433,8 +436,7 @@ 2009-01-19 Kenichi Handa - * ftfont.c (ftfont_lookup_cache): Check the return value of - FcFontList. + * ftfont.c (ftfont_lookup_cache): Check the return value of FcFontList. (ftfont_list): Likewise. 2009-01-18 Juanma Barranquero @@ -461,8 +463,7 @@ 2009-01-15 Kenichi Handa - * coding.c (detect_coding_system): Fix handling of - null_byte_found. + * coding.c (detect_coding_system): Fix handling of null_byte_found. 2009-01-14 Jason Rumney @@ -516,8 +517,7 @@ * coding.c (inhibit_null_byte_detection): New variable. (detect_coding, detect_coding_system): Don't pay attention to null bytes if inhibit_null_byte_detection is non-zero. - (syms_of_coding) : Declare and - document. + (syms_of_coding) : Declare and document. : Doc fix. 2009-01-09 Jason Rumney @@ -528,11 +528,10 @@ 2009-01-09 Chong Yidong - * xfaces.c (Fx_font_family_list): Function deleted. Compatibility - version moved to faces.el. + * xfaces.c (Fx_font_family_list): Delete function. + Move compatibility version to faces.el. - * font.c (Ffont_family_list): Return a list of strings, not - symbols. + * font.c (Ffont_family_list): Return a list of strings, not symbols. 2009-01-09 Martin Rudalics @@ -550,8 +549,7 @@ 2009-01-08 Chong Yidong - * font.c (font_open_for_lface): Handle unspecified height - attribute. + * font.c (font_open_for_lface): Handle unspecified height attribute. 2009-01-08 Jason Rumney @@ -671,8 +669,7 @@ * xfns.c (x_create_tip_frame): Set border width of the X window. - * xfaces.c (Finternal_set_lisp_face_attribute): Improve error - message. + * xfaces.c (Finternal_set_lisp_face_attribute): Improve error message. 2009-01-01 Jason Rumney 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) /* Find boundaries `beg' and `end' of the invisible area, if any. */ while (end < ZV + /* Stop if we find a spot between two runs of + `invisible' where inserted text would be visible. + This is important when we have two invisible + boundaries that enclose an area: if the area is + empty, we need this test in order to make it + possible to place point in the middle rather than + skip both boundaries. + Note that this will stop anywhere in a non-sticky + text-property, but I don't think there's much we + can do about that. */ + && (val = get_pos_property (make_number (end), + Qinvisible, Qnil), + TEXT_PROP_MEANS_INVISIBLE (val)) + /* FIXME: write and then use get_pos_property_and_overlay. */ && !NILP (val = get_char_property_and_overlay (make_number (end), Qinvisible, Qnil, &overlay)) && (inv = TEXT_PROP_MEANS_INVISIBLE (val))) @@ -2059,6 +2073,9 @@ adjust_point_for_property (last_pt, modified) end = NATNUMP (tmp) ? XFASTINT (tmp) : ZV; } while (beg > BEGV + && (val = get_pos_property (make_number (beg), + Qinvisible, Qnil), + TEXT_PROP_MEANS_INVISIBLE (val)) && !NILP (val = get_char_property_and_overlay (make_number (beg - 1), Qinvisible, Qnil, &overlay)) && (inv = TEXT_PROP_MEANS_INVISIBLE (val)))