/[emacs]/emacs/src/xdisp.c
ViewVC logotype

Diff of /emacs/src/xdisp.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.754.2.34 by miles, Mon Oct 25 04:19:35 2004 UTC revision 1.754.2.35 by miles, Mon Oct 25 04:22:26 2004 UTC
# Line 7976  store_frame_title (str, field_width, pre Line 7976  store_frame_title (str, field_width, pre
7976    
7977    /* Copy at most PRECISION chars from STR.  */    /* Copy at most PRECISION chars from STR.  */
7978    nbytes = strlen (str);    nbytes = strlen (str);
7979    n+= c_string_width (str, nbytes, precision, &dummy, &nbytes);    n += c_string_width (str, nbytes, precision, &dummy, &nbytes);
7980    while (nbytes--)    while (nbytes--)
7981      store_frame_title_char (*str++);      store_frame_title_char (*str++);
7982    
# Line 9523  update_overlay_arrows (up_to_date) Line 9523  update_overlay_arrows (up_to_date)
9523  }  }
9524    
9525    
9526  /* Return overlay arrow string at row, or nil.  */  /* Return overlay arrow string to display at row.
9527       Return t if display as bitmap in left fringe.
9528       Return nil if no overlay arrow.  */
9529    
9530  static Lisp_Object  static Lisp_Object
9531  overlay_arrow_at_row (f, row, pbitmap)  overlay_arrow_at_row (it, row, pbitmap)
9532       struct frame *f;       struct it *it;
9533       struct glyph_row *row;       struct glyph_row *row;
9534       int *pbitmap;       int *pbitmap;
9535  {  {
# Line 9550  overlay_arrow_at_row (f, row, pbitmap) Line 9552  overlay_arrow_at_row (f, row, pbitmap)
9552            && (MATRIX_ROW_START_CHARPOS (row) == marker_position (val)))            && (MATRIX_ROW_START_CHARPOS (row) == marker_position (val)))
9553          {          {
9554            val = overlay_arrow_string_or_property (var, pbitmap);            val = overlay_arrow_string_or_property (var, pbitmap);
9555            if (FRAME_WINDOW_P (f))            if (FRAME_WINDOW_P (it->f)
9556                  && WINDOW_LEFT_FRINGE_WIDTH (it->w) > 0)
9557              return Qt;              return Qt;
9558            else if (STRINGP (val))            if (STRINGP (val))
9559              return val;              return val;
9560            break;            break;
9561          }          }
# Line 12217  redisplay_window (window, just_this_one_ Line 12220  redisplay_window (window, just_this_one_
12220      }      }
12221    
12222  #ifdef HAVE_WINDOW_SYSTEM  #ifdef HAVE_WINDOW_SYSTEM
12223    if (update_window_fringes (w, 0)    if (FRAME_WINDOW_P (f)
12224          && update_window_fringes (w, 0)
12225        && !just_this_one_p        && !just_this_one_p
12226        && (used_current_matrix_p || overlay_arrow_seen)        && (used_current_matrix_p || overlay_arrow_seen)
12227        && !w->pseudo_window_p)        && !w->pseudo_window_p)
# Line 14072  usage: (trace-to-stderr STRING &rest OBJ Line 14076  usage: (trace-to-stderr STRING &rest OBJ
14076                       Building Desired Matrix Rows                       Building Desired Matrix Rows
14077   ***********************************************************************/   ***********************************************************************/
14078    
14079  /* Return a temporary glyph row holding the glyphs of an overlay  /* Return a temporary glyph row holding the glyphs of an overlay arrow.
14080     arrow.  Only used for non-window-redisplay windows.  */     Used for non-window-redisplay windows, and for windows w/o left fringe.  */
14081    
14082  static struct glyph_row *  static struct glyph_row *
14083  get_overlay_arrow_glyph_row (w, overlay_arrow_string)  get_overlay_arrow_glyph_row (w, overlay_arrow_string)
# Line 14954  display_line (it) Line 14958  display_line (it)
14958       better to let it be displayed like cursors under X.  */       better to let it be displayed like cursors under X.  */
14959    if (! overlay_arrow_seen    if (! overlay_arrow_seen
14960        && (overlay_arrow_string        && (overlay_arrow_string
14961              = overlay_arrow_at_row (it->f, row, &overlay_arrow_bitmap),              = overlay_arrow_at_row (it, row, &overlay_arrow_bitmap),
14962            !NILP (overlay_arrow_string)))            !NILP (overlay_arrow_string)))
14963      {      {
14964        /* Overlay arrow in window redisplay is a fringe bitmap.  */        /* Overlay arrow in window redisplay is a fringe bitmap.  */
14965        if (!FRAME_WINDOW_P (it->f))        if (STRINGP (overlay_arrow_string))
14966          {          {
14967            struct glyph_row *arrow_row            struct glyph_row *arrow_row
14968              = get_overlay_arrow_glyph_row (it->w, overlay_arrow_string);              = get_overlay_arrow_glyph_row (it->w, overlay_arrow_string);
# Line 14983  display_line (it) Line 14987  display_line (it)
14987                row->used[TEXT_AREA] = p2 - row->glyphs[TEXT_AREA];                row->used[TEXT_AREA] = p2 - row->glyphs[TEXT_AREA];
14988              }              }
14989          }          }
14990          else
14991            {
14992              it->w->overlay_arrow_bitmap = overlay_arrow_bitmap;
14993              row->overlay_arrow_p = 1;
14994            }
14995        overlay_arrow_seen = 1;        overlay_arrow_seen = 1;
       it->w->overlay_arrow_bitmap = overlay_arrow_bitmap;  
       row->overlay_arrow_p = 1;  
14996      }      }
14997    
14998    /* Compute pixel dimensions of this line.  */    /* Compute pixel dimensions of this line.  */
# Line 15451  display_mode_element (it, depth, field_w Line 15457  display_mode_element (it, depth, field_w
15457    
15458              if (this - 1 != last)              if (this - 1 != last)
15459                {                {
15460                    int nchars, nbytes;
15461    
15462                  /* Output to end of string or up to '%'.  Field width                  /* Output to end of string or up to '%'.  Field width
15463                     is length of string.  Don't output more than                     is length of string.  Don't output more than
15464                     PRECISION allows us.  */                     PRECISION allows us.  */
15465                  --this;                  --this;
15466    
15467                  prec = chars_in_text (last, this - last);                  prec = c_string_width (last, this - last, precision - n,
15468                  if (precision > 0 && prec > precision - n)                                         &nchars, &nbytes);
                   prec = precision - n;  
15469    
15470                  if (frame_title_ptr)                  if (frame_title_ptr)
15471                    n += store_frame_title (last, 0, prec);                    n += store_frame_title (last, 0, prec);
# Line 15466  display_mode_element (it, depth, field_w Line 15473  display_mode_element (it, depth, field_w
15473                    {                    {
15474                      int bytepos = last - lisp_string;                      int bytepos = last - lisp_string;
15475                      int charpos = string_byte_to_char (elt, bytepos);                      int charpos = string_byte_to_char (elt, bytepos);
15476                        int endpos = (precision <= 0 ? SCHARS (elt)
15477                                      : charpos + nchars);
15478    
15479                      n += store_mode_line_string (NULL,                      n += store_mode_line_string (NULL,
15480                                                   Fsubstring (elt, make_number (charpos),                                                   Fsubstring (elt, make_number (charpos),
15481                                                               make_number (charpos + prec)),                                                               make_number (endpos)),
15482                                                   0, 0, 0, Qnil);                                                   0, 0, 0, Qnil);
15483                    }                    }
15484                  else                  else

Legend:
Removed from v.1.754.2.34  
changed lines
  Added in v.1.754.2.35

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26