emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: vertical-motion bug


From: Chong Yidong
Subject: Re: vertical-motion bug
Date: Sat, 15 Jul 2006 11:48:03 -0400

For what it's worth, reverting the following line in the 2006-06-14
change makes things work again.  I don't know if this is the correct
fix, since I don't know why that line was introduced in the first
place.

*** emacs/src/xdisp.c.~1.1109.~ 2006-07-15 11:38:46.000000000 -0400
--- emacs/src/xdisp.c   2006-07-15 11:46:48.000000000 -0400
***************
*** 5315,5321 ****
    it->area = TEXT_AREA;
    it->multibyte_p = !NILP (current_buffer->enable_multibyte_characters);
    it->sp = 0;
-   it->string_from_display_prop_p = 0;
    it->face_before_selective_p = 0;
  
    if (set_stop_p)
--- 5315,5320 ----

>   From: Chong Yidong <address@hidden>
>
>   In a scratch buffer:
>
>     M-<
>     M-: (insert (propertize "a" 'display "a\nb\nc\n")) RET
>     M-<
>     C-n (or M-: (vertical-motion 1))
>
>   Result: point moves down three lines.  The expected behavior, based on
>   the `vertical-motion' docstring, is to move just one line.  This
>   behavior was broken by something in the following change:
>
>   2006-06-14  Kim F. Storm  <address@hidden>
>
>   * dispextern.h (IT_STACK_SIZE): New macro specifying size of
>   iterator stack (instead of hardcoded number).  Increase from 2 to
>   4 to make room for propertized overlay strings before and after a
>   display string, image or composition.
>   (struct it): Add image_id and method members to iterator stack.
>
>   * xdisp.c (init_from_display_pos): Don't set it->method and
>   overlay_string_index after pop_it.  Add asserts.
>   (handle_stop): Look for overlay strings around a display string,
>   image, or composition.  Handle properties on those strings.
>   (next_overlay_string): Don't set string, pos or method after pop_it.
>   (get_overlay_strings_1): Split from get_overlay_strings; don't
>   modify it if no overlay strings are found.
>   (get_overlay_strings): Use get_overlay_strings_1.  Always set
>   it->string and it->method.
>   (push_it): Push it->image_id and it->method.  Push it->object
>   instead of it->string if method is GET_FROM_IMAGE.
>   (pop_it): Pop it->image_id and it->method.  Ppo it->object
>   instead of it->string if method is GET_FROM_IMAGE.
>   Reset it->current.string_pos if popped it->string is nil.
>   (reseat_1): Remove comment dated 19 May 2003.  It expressed doubt
>   whether a given change was correct; but the change is correct.
>   Clear it->string_from_display_prop_p.
>   (set_iterator_to_next): Rely on it->method and it->image_id from
>   iterator stack, instead of setting them explicitly after pop_it.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]