[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/xdisp.c
From: |
Richard M . Stallman |
Subject: |
[Emacs-diffs] Changes to emacs/src/xdisp.c |
Date: |
Thu, 15 Sep 2005 09:16:55 -0400 |
Index: emacs/src/xdisp.c
diff -c emacs/src/xdisp.c:1.1053 emacs/src/xdisp.c:1.1054
*** emacs/src/xdisp.c:1.1053 Thu Sep 15 12:06:39 2005
--- emacs/src/xdisp.c Thu Sep 15 13:16:53 2005
***************
*** 10019,10030 ****
--- 10019,10032 ----
if (FRAME_WINDOW_P (it->f)
&& WINDOW_LEFT_FRINGE_WIDTH (it->w) > 0)
{
+ #ifdef HAVE_WINDOW_SYSTEM
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);
}
+ #endif
return make_number (-1); /* Use default arrow bitmap */
}
return overlay_arrow_string_or_property (var);
***************
*** 15959,15965 ****
{
/* A string: output it and check for %-constructs within it. */
unsigned char c;
! const unsigned char *this, *lisp_string;
if (!NILP (props) || risky)
{
--- 15961,15967 ----
{
/* A string: output it and check for %-constructs within it. */
unsigned char c;
! int offset = 0;
if (!NILP (props) || risky)
{
***************
*** 16017,16024 ****
}
}
! this = SDATA (elt);
! lisp_string = this;
if (literal)
{
--- 16019,16025 ----
}
}
! offset = 0;
if (literal)
{
***************
*** 16041,16082 ****
break;
}
while ((precision <= 0 || n < precision)
! && *this
&& (mode_line_target != MODE_LINE_DISPLAY
|| it->current_x < it->last_visible_x))
{
! const unsigned char *last = this;
/* Advance to end of string or next format specifier. */
! while ((c = *this++) != '\0' && c != '%')
;
! if (this - 1 != last)
{
int nchars, nbytes;
/* Output to end of string or up to '%'. Field width
is length of string. Don't output more than
PRECISION allows us. */
! --this;
! prec = c_string_width (last, this - last, precision - n,
&nchars, &nbytes);
switch (mode_line_target)
{
case MODE_LINE_NOPROP:
case MODE_LINE_TITLE:
! n += store_mode_line_noprop (last, 0, prec);
break;
case MODE_LINE_STRING:
{
! int bytepos = last - lisp_string;
int charpos = string_byte_to_char (elt, bytepos);
int endpos = (precision <= 0
! ? string_byte_to_char (elt,
! this - lisp_string)
: charpos + nchars);
n += store_mode_line_string (NULL,
--- 16042,16085 ----
break;
}
+ /* Handle the non-literal case. */
+
while ((precision <= 0 || n < precision)
! && SREF (elt, offset) != 0
&& (mode_line_target != MODE_LINE_DISPLAY
|| it->current_x < it->last_visible_x))
{
! int last_offset = offset;
/* Advance to end of string or next format specifier. */
! while ((c = SREF (elt, offset++)) != '\0' && c != '%')
;
! if (offset - 1 != last_offset)
{
int nchars, nbytes;
/* Output to end of string or up to '%'. Field width
is length of string. Don't output more than
PRECISION allows us. */
! offset--;
! prec = c_string_width (SDATA (elt) + last_offset,
! offset - last_offset, precision - n,
&nchars, &nbytes);
switch (mode_line_target)
{
case MODE_LINE_NOPROP:
case MODE_LINE_TITLE:
! n += store_mode_line_noprop (SDATA (elt) + last_offset, 0,
prec);
break;
case MODE_LINE_STRING:
{
! int bytepos = last_offset;
int charpos = string_byte_to_char (elt, bytepos);
int endpos = (precision <= 0
! ? string_byte_to_char (elt, offset)
: charpos + nchars);
n += store_mode_line_string (NULL,
***************
*** 16087,16093 ****
break;
case MODE_LINE_DISPLAY:
{
! int bytepos = last - lisp_string;
int charpos = string_byte_to_char (elt, bytepos);
n += display_string (NULL, elt, Qnil, 0, charpos,
it, 0, prec, 0,
--- 16090,16096 ----
break;
case MODE_LINE_DISPLAY:
{
! int bytepos = last_offset;
int charpos = string_byte_to_char (elt, bytepos);
n += display_string (NULL, elt, Qnil, 0, charpos,
it, 0, prec, 0,
***************
*** 16098,16109 ****
}
else /* c == '%' */
{
! const unsigned char *percent_position = this;
/* Get the specified minimum width. Zero means
don't pad. */
field = 0;
! while ((c = *this++) >= '0' && c <= '9')
field = field * 10 + c - '0';
/* Don't pad beyond the total padding allowed. */
--- 16101,16112 ----
}
else /* c == '%' */
{
! int percent_position = offset;
/* Get the specified minimum width. Zero means
don't pad. */
field = 0;
! while ((c = SREF (elt, offset++)) >= '0' && c <= '9')
field = field * 10 + c - '0';
/* Don't pad beyond the total padding allowed. */
***************
*** 16123,16129 ****
int bytepos, charpos;
unsigned char *spec;
! bytepos = percent_position - lisp_string;
charpos = (STRING_MULTIBYTE (elt)
? string_byte_to_char (elt, bytepos)
: bytepos);
--- 16126,16132 ----
int bytepos, charpos;
unsigned char *spec;
! bytepos = percent_position;
charpos = (STRING_MULTIBYTE (elt)
? string_byte_to_char (elt, bytepos)
: bytepos);
***************
*** 16181,16188 ****
else /* c == 0 */
break;
}
- this += SDATA (elt) - lisp_string;
- lisp_string = SDATA (elt);
}
}
break;
--- 16184,16189 ----
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Richard M . Stallman, 2005/09/03
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Kim F . Storm, 2005/09/07
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Kim F . Storm, 2005/09/07
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Kim F . Storm, 2005/09/08
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Kim F . Storm, 2005/09/08
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Kenichi Handa, 2005/09/12
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Kim F . Storm, 2005/09/12
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Kim F . Storm, 2005/09/15
- [Emacs-diffs] Changes to emacs/src/xdisp.c,
Richard M . Stallman <=
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Kim F . Storm, 2005/09/22
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Dan Nicolaescu, 2005/09/27