emacs-diffs
[Top][All Lists]
Advanced

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

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


From: Kim F . Storm
Subject: [Emacs-diffs] Changes to emacs/src/xdisp.c
Date: Mon, 18 Apr 2005 10:10:11 -0400

Index: emacs/src/xdisp.c
diff -c emacs/src/xdisp.c:1.998 emacs/src/xdisp.c:1.999
*** emacs/src/xdisp.c:1.998     Sat Apr 16 18:19:26 2005
--- emacs/src/xdisp.c   Mon Apr 18 14:10:09 2005
***************
*** 9643,9664 ****
  
  
  static Lisp_Object
! overlay_arrow_string_or_property (var, pbitmap)
       Lisp_Object var;
-      int *pbitmap;
  {
!   Lisp_Object pstr = Fget (var, Qoverlay_arrow_string);
!   Lisp_Object bitmap;
  
!   if (pbitmap)
!     {
!       *pbitmap = 0;
!       if (bitmap  = Fget (var, Qoverlay_arrow_bitmap), INTEGERP (bitmap))
!       *pbitmap = XINT (bitmap);
!     }
  
-   if (!NILP (pstr))
-     return pstr;
    return Voverlay_arrow_string;
  }
  
--- 9643,9656 ----
  
  
  static Lisp_Object
! overlay_arrow_string_or_property (var)
       Lisp_Object var;
  {
!   Lisp_Object val;
  
!   if (val = Fget (var, Qoverlay_arrow_string), STRINGP (val))
!     return val;
  
    return Voverlay_arrow_string;
  }
  
***************
*** 9708,9714 ****
        continue;
        if (! EQ (COERCE_MARKER (val),
                Fget (var, Qlast_arrow_position))
!         || ! (pstr = overlay_arrow_string_or_property (var, 0),
                EQ (pstr, Fget (var, Qlast_arrow_string))))
        return 1;
      }
--- 9700,9706 ----
        continue;
        if (! EQ (COERCE_MARKER (val),
                Fget (var, Qlast_arrow_position))
!         || ! (pstr = overlay_arrow_string_or_property (var),
                EQ (pstr, Fget (var, Qlast_arrow_string))))
        return 1;
      }
***************
*** 9738,9744 ****
          Fput (var, Qlast_arrow_position,
                COERCE_MARKER (val));
          Fput (var, Qlast_arrow_string,
!               overlay_arrow_string_or_property (var, 0));
        }
        else if (up_to_date < 0
               || !NILP (Fget (var, Qlast_arrow_position)))
--- 9730,9736 ----
          Fput (var, Qlast_arrow_position,
                COERCE_MARKER (val));
          Fput (var, Qlast_arrow_string,
!               overlay_arrow_string_or_property (var));
        }
        else if (up_to_date < 0
               || !NILP (Fget (var, Qlast_arrow_position)))
***************
*** 9751,9764 ****
  
  
  /* Return overlay arrow string to display at row.
!    Return t if display as bitmap in left fringe.
     Return nil if no overlay arrow.  */
  
  static Lisp_Object
! overlay_arrow_at_row (it, row, pbitmap)
       struct it *it;
       struct glyph_row *row;
-      int *pbitmap;
  {
    Lisp_Object vlist;
  
--- 9743,9755 ----
  
  
  /* Return overlay arrow string to display at row.
!    Return integer (bitmap number) for arrow bitmap in left fringe.
     Return nil if no overlay arrow.  */
  
  static Lisp_Object
! overlay_arrow_at_row (it, row)
       struct it *it;
       struct glyph_row *row;
  {
    Lisp_Object vlist;
  
***************
*** 9778,9794 ****
          && current_buffer == XMARKER (val)->buffer
          && (MATRIX_ROW_START_CHARPOS (row) == marker_position (val)))
        {
-         val = overlay_arrow_string_or_property (var, pbitmap);
          if (FRAME_WINDOW_P (it->f)
              && WINDOW_LEFT_FRINGE_WIDTH (it->w) > 0)
!           return Qt;
!         if (STRINGP (val))
!           return val;
!         break;
        }
      }
  
-   *pbitmap = 0;
    return Qnil;
  }
  
--- 9769,9789 ----
          && current_buffer == XMARKER (val)->buffer
          && (MATRIX_ROW_START_CHARPOS (row) == marker_position (val)))
        {
          if (FRAME_WINDOW_P (it->f)
              && WINDOW_LEFT_FRINGE_WIDTH (it->w) > 0)
!           {
!             if (val = Fget (var, Qoverlay_arrow_bitmap), SYMBOLP (val))
!               {
!                 int fringe_bitmap;
!                 if ((fringe_bitmap = lookup_fringe_bitmap (val)) != 0)
!                   return make_number (fringe_bitmap);
!               }
!             return make_number (-1); /* Use default arrow bitmap */
!           }
!         return overlay_arrow_string_or_property (var);
        }
      }
  
    return Qnil;
  }
  
***************
*** 14846,14852 ****
       struct it *it;
  {
    struct glyph_row *row = it->glyph_row;
-   int overlay_arrow_bitmap;
    Lisp_Object overlay_arrow_string;
  
    /* We always start displaying at hpos zero even if hscrolled.  */
--- 14841,14846 ----
***************
*** 15254,15262 ****
       mark this glyph row as the one containing the overlay arrow.
       This is clearly a mess with variable size fonts.  It would be
       better to let it be displayed like cursors under X.  */
!   if ((overlay_arrow_string
!        = overlay_arrow_at_row (it, row, &overlay_arrow_bitmap),
!        !NILP (overlay_arrow_string)))
      {
        /* Overlay arrow in window redisplay is a fringe bitmap.  */
        if (STRINGP (overlay_arrow_string))
--- 15248,15256 ----
       mark this glyph row as the one containing the overlay arrow.
       This is clearly a mess with variable size fonts.  It would be
       better to let it be displayed like cursors under X.  */
!   if ((row->displays_text_p || !overlay_arrow_seen)
!       && (overlay_arrow_string = overlay_arrow_at_row (it, row),
!         !NILP (overlay_arrow_string)))
      {
        /* Overlay arrow in window redisplay is a fringe bitmap.  */
        if (STRINGP (overlay_arrow_string))
***************
*** 15286,15293 ****
        }
        else
        {
!         it->w->overlay_arrow_bitmap = overlay_arrow_bitmap;
!         row->overlay_arrow_p = 1;
        }
        overlay_arrow_seen = 1;
      }
--- 15280,15287 ----
        }
        else
        {
!         xassert (INTEGERP (overlay_arrow_string));
!         row->overlay_arrow_bitmap = XINT (overlay_arrow_string);
        }
        overlay_arrow_seen = 1;
      }




reply via email to

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