[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/xdisp.c,v
From: |
Kenichi Handa |
Subject: |
[Emacs-diffs] Changes to emacs/src/xdisp.c,v |
Date: |
Thu, 21 Feb 2008 07:03:57 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Kenichi Handa <handa> 08/02/21 07:03:57
Index: xdisp.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/xdisp.c,v
retrieving revision 1.1185
retrieving revision 1.1186
diff -u -b -r1.1185 -r1.1186
--- xdisp.c 17 Feb 2008 21:56:39 -0000 1.1185
+++ xdisp.c 21 Feb 2008 07:03:56 -0000 1.1186
@@ -917,7 +917,8 @@
static int display_mode_line P_ ((struct window *, enum face_id, Lisp_Object));
static int display_mode_element P_ ((struct it *, int, int, int, Lisp_Object,
Lisp_Object, int));
static int store_mode_line_string P_ ((char *, Lisp_Object, int, int, int,
Lisp_Object));
-static char *decode_mode_spec P_ ((struct window *, int, int, int, int *));
+static char *decode_mode_spec P_ ((struct window *, int, int, int, int *,
+ Lisp_Object *));
static void display_menu_bar P_ ((struct window *));
static int display_count_lines P_ ((int, int, int, int, int *));
static int display_string P_ ((unsigned char *, Lisp_Object, Lisp_Object,
@@ -17234,14 +17235,14 @@
int multibyte;
int bytepos, charpos;
unsigned char *spec;
+ Lisp_Object string;
bytepos = percent_position;
charpos = (STRING_MULTIBYTE (elt)
? string_byte_to_char (elt, bytepos)
: bytepos);
-
- spec
- = decode_mode_spec (it->w, c, field, prec, &multibyte);
+ spec = decode_mode_spec (it->w, c, field, prec, &multibyte,
+ &string);
switch (mode_line_target)
{
@@ -17251,8 +17252,11 @@
break;
case MODE_LINE_STRING:
{
+ if (NILP (string))
+ {
int len = strlen (spec);
- Lisp_Object tem = make_string (spec, len);
+ string = make_string (spec, len);
+ }
props = Ftext_properties_at (make_number (charpos),
elt);
/* Should only keep face property in props */
n += store_mode_line_string (NULL, tem, 0, field,
prec, props);
@@ -17262,8 +17266,10 @@
{
int nglyphs_before, nwritten;
+ if (STRINGP (string))
+ spec = NULL;
nglyphs_before = it->glyph_row->used[TEXT_AREA];
- nwritten = display_string (spec, Qnil, elt,
+ nwritten = display_string (spec, string, elt,
charpos, 0, it,
field, prec, 0,
multibyte);
@@ -17927,18 +17933,19 @@
static char lots_of_dashes[] =
"--------------------------------------------------------------------------------------------------------------------------------------------";
static char *
-decode_mode_spec (w, c, field_width, precision, multibyte)
+decode_mode_spec (w, c, field_width, precision, multibyte, string)
struct window *w;
register int c;
int field_width, precision;
int *multibyte;
+ Lisp_Object *string;
{
Lisp_Object obj;
struct frame *f = XFRAME (WINDOW_FRAME (w));
char *decode_mode_spec_buf = f->decode_mode_spec_buffer;
struct buffer *b = current_buffer;
- obj = Qnil;
+ *string = obj = Qnil;
*multibyte = 0;
switch (c)
@@ -18331,6 +18338,7 @@
if (STRINGP (obj))
{
*multibyte = STRING_MULTIBYTE (obj);
+ *string = obj;
return (char *) SDATA (obj);
}
else
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Miles Bader, 2008/02/01
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Kenichi Handa, 2008/02/06
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Stefan Monnier, 2008/02/06
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Kenichi Handa, 2008/02/16
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Juanma Barranquero, 2008/02/17
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v,
Kenichi Handa <=
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Kenichi Handa, 2008/02/21
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Stefan Monnier, 2008/02/22
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Stefan Monnier, 2008/02/24
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Kenichi Handa, 2008/02/24
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Kenichi Handa, 2008/02/25
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Stefan Monnier, 2008/02/26
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Kim F. Storm, 2008/02/27
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Kenichi Handa, 2008/02/27
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Kenichi Handa, 2008/02/28
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Chong Yidong, 2008/02/28