+2008-02-28 Kenichi Handa <handa@ni.aist.go.jp>
+
+ * xdisp.c (display_mode_element): Cancel the previous change.
+ (decode_mode_spec): Likewise.
+
2008-02-27 Kim F. Storm <storm@cua.dk>
* lisp.h (GLYPH): Change type from int to struct with separate char
(Fenlarge_window, Fshrink_window, Fset_window_configuration):
Use run_window_configuration_change_hook.
+2008-02-25 Kenichi Handa <handa@ni.aist.go.jp>
+
+ * xdisp.c (x_produce_glyphs): For a visible glyph, assure at least
+ 1-pixel width.
+
2008-02-25 Kenichi Handa <handa@ni.aist.go.jp>
* xdisp.c (fill_glyph_string): Pay attention to glyph->padding_p.
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 *,
- Lisp_Object *));
+static char *decode_mode_spec P_ ((struct window *, int, int, int, int *));
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,
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,
- &string);
+ spec
+ = decode_mode_spec (it->w, c, field, prec, &multibyte);
switch (mode_line_target)
{
break;
case MODE_LINE_STRING:
{
- if (NILP (string))
- {
- int len = strlen (spec);
- string = make_string (spec, len);
- }
+ int len = strlen (spec);
+ Lisp_Object tem = 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, string, 0, field, prec, props);
+ n += store_mode_line_string (NULL, tem, 0, field, prec, props);
}
break;
case MODE_LINE_DISPLAY:
{
int nglyphs_before, nwritten;
- if (STRINGP (string))
- spec = NULL;
nglyphs_before = it->glyph_row->used[TEXT_AREA];
- nwritten = display_string (spec, string, elt,
+ nwritten = display_string (spec, Qnil, elt,
charpos, 0, it,
field, prec, 0,
multibyte);
static char lots_of_dashes[] = "--------------------------------------------------------------------------------------------------------------------------------------------";
static char *
-decode_mode_spec (w, c, field_width, precision, multibyte, string)
+decode_mode_spec (w, c, field_width, precision, multibyte)
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;
- *string = obj = Qnil;
+ obj = Qnil;
*multibyte = 0;
switch (c)
if (STRINGP (obj))
{
*multibyte = STRING_MULTIBYTE (obj);
- *string = obj;
return (char *) SDATA (obj);
}
else