]> git.eshelyaron.com Git - emacs.git/commitdiff
(adjust_point_for_property): Allow stopping betwen two invisible areas.
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 12 Feb 2009 18:20:52 +0000 (18:20 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 12 Feb 2009 18:20:52 +0000 (18:20 +0000)
src/ChangeLog
src/keyboard.c

index dc38aa05bc7a1100032c58fd7b285485339d80dd..c9d2328cf037628726f3d11ffbae368b67dc0a73 100644 (file)
@@ -1,3 +1,8 @@
+2009-02-12  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * keyboard.c (adjust_point_for_property): Allow stopping betwen two
+       invisible areas.
+
 2009-02-12  Jason Rumney  <jasonr@gnu.org>
 
        * w32font.c (check_face_name): Check for fake helv.  (Bug#2275)
 
        * 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
        <struct glyph>.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
        <struct glyph>.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
        <strcut glyph>.u.cmp.to.
 
 2009-02-11  Juanma Barranquero  <lekktu@gmail.com>
@@ -84,8 +89,8 @@
 
 2009-02-07  Eli Zaretskii  <eliz@gnu.org>
 
-       * coding.c (syms_of_coding) <translation-table-for-input>: Modify
-       doc string to discourage use for character code unification.
+       * coding.c (syms_of_coding) <translation-table-for-input>:
+       Modify doc string to discourage use for character code unification.
 
 2009-02-07  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
 
        * 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  <rgm@gnu.org>
 
        * 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.
 
        * 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  <handa@m17n.org>
 
 
        * 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  <wolfgang.lux@gmail.com>  (tiny change)
 
 
 2009-01-19  Kenichi Handa  <handa@m17n.org>
 
-       * 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  <lekktu@gmail.com>
 
 2009-01-15  Kenichi Handa  <handa@m17n.org>
 
-       * 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  <jasonr@gnu.org>
 
        * 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) <inhibit-null-byte-detection>: Declare and
-       document.
+       (syms_of_coding) <inhibit-null-byte-detection>: Declare and document.
        <inhibit-iso-escape-detection>: Doc fix.
 
 2009-01-09  Jason Rumney  <jasonr@gnu.org>
 
 2009-01-09  Chong Yidong  <cyd@stupidchicken.com>
 
-       * 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  <rudalics@gmx.at>
 
 
 2009-01-08  Chong Yidong  <cyd@stupidchicken.com>
 
-       * 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  <jasonr@gnu.org>
 
 
        * 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  <jasonr@gnu.org>
 
index 8b411fdac8b3c70bbdabdf0a0300d7b2afe277d6..9f7648563c0cf94981987caac1d808909b5992f3 100644 (file)
@@ -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)))