emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/src/indent.c [lexbind]


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/src/indent.c [lexbind]
Date: Wed, 08 Dec 2004 18:57:27 -0500

Index: emacs/src/indent.c
diff -c emacs/src/indent.c:1.152.2.9 emacs/src/indent.c:1.152.2.10
*** emacs/src/indent.c:1.152.2.9        Wed Dec  8 23:31:37 2004
--- emacs/src/indent.c  Wed Dec  8 23:36:22 2004
***************
*** 220,226 ****
       Lisp_Object window;
  {
    Lisp_Object prop, position, overlay_limit, proplimit;
!   Lisp_Object buffer;
    int end, inv_p;
  
    XSETFASTINT (position, pos);
--- 220,226 ----
       Lisp_Object window;
  {
    Lisp_Object prop, position, overlay_limit, proplimit;
!   Lisp_Object buffer, tmp;
    int end, inv_p;
  
    XSETFASTINT (position, pos);
***************
*** 251,258 ****
        /* No matter what. don't go past next overlay change.  */
        if (XFASTINT (overlay_limit) < XFASTINT (proplimit))
        proplimit = overlay_limit;
!       end = XFASTINT (Fnext_single_property_change (position, Qinvisible,
!                                                   buffer, proplimit));
  #if 0
        /* Don't put the boundary in the middle of multibyte form if
           there is no actual property change.  */
--- 251,259 ----
        /* No matter what. don't go past next overlay change.  */
        if (XFASTINT (overlay_limit) < XFASTINT (proplimit))
        proplimit = overlay_limit;
!       tmp = Fnext_single_property_change (position, Qinvisible,
!                                         buffer, proplimit);
!       end = XFASTINT (tmp);
  #if 0
        /* Don't put the boundary in the middle of multibyte form if
           there is no actual property change.  */
***************
*** 2069,2074 ****
--- 2070,2077 ----
      }
    else
      {
+       int it_start;
+ 
        SET_TEXT_POS (pt, PT, PT_BYTE);
        start_display (&it, w, pt);
  
***************
*** 2078,2093 ****
         we end up with the iterator placed at where it thinks X is 0,
         while the end position is really at some X > 0, the same X that
         PT had.  */
!       if (XINT (lines) < 0)
!       {
!         reseat_at_previous_visible_line_start (&it);
!         it.current_x = it.hpos = 0;
!         move_it_to (&it, PT, -1, -1, -1, MOVE_TO_POS);
!         it.vpos = 0;
!       }
!       else
!       move_it_by_lines (&it, 0, 0);
  
        if (XINT (lines) != 0)
        move_it_by_lines (&it, XINT (lines), 0);
  
--- 2081,2097 ----
         we end up with the iterator placed at where it thinks X is 0,
         while the end position is really at some X > 0, the same X that
         PT had.  */
!       it_start = IT_CHARPOS (it);
!       reseat_at_previous_visible_line_start (&it);
!       it.current_x = it.hpos = 0;
!       move_it_to (&it, PT, -1, -1, -1, MOVE_TO_POS);
! 
!       /* Move back if we got too far.  This may happen if
!        truncate-lines is on and PT is beyond right margin.  */
!       if (IT_CHARPOS (it) > it_start && XINT (lines) > 0)
!       move_it_by_lines (&it, -1, 0);
  
+       it.vpos = 0;
        if (XINT (lines) != 0)
        move_it_by_lines (&it, XINT (lines), 0);
  




reply via email to

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