Mercurial > emacs
changeset 73352:1504e6546638
* xdisp.c (decode_mode_spec): Ignore %c and %l constructs in frame
title.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Fri, 13 Oct 2006 14:18:09 +0000 |
parents | 29547db9ad61 |
children | ae1dd9c6ba18 |
files | src/ChangeLog src/xdisp.c |
diffstat | 2 files changed, 33 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Fri Oct 13 05:22:33 2006 +0000 +++ b/src/ChangeLog Fri Oct 13 14:18:09 2006 +0000 @@ -1,3 +1,8 @@ +2006-10-13 Chong Yidong <cyd@stupidchicken.com> + + * xdisp.c (decode_mode_spec): Ignore %c and %l constructs in frame + title. + 2006-10-12 Chong Yidong <cyd@stupidchicken.com> * keymap.c (Fkey_binding): Check Lisp_Object types before doing
--- a/src/xdisp.c Fri Oct 13 05:22:33 2006 +0000 +++ b/src/xdisp.c Fri Oct 13 14:18:09 2006 +0000 @@ -17680,12 +17680,20 @@ break; case 'c': - { - int col = (int) current_column (); /* iftc */ - w->column_number_displayed = make_number (col); - pint2str (decode_mode_spec_buf, field_width, col); - return decode_mode_spec_buf; - } + /* %c and %l are ignored in `frame-title-format'. + (In redisplay_internal, the frame title is drawn _before_ the + windows are updated, so the stuff which depends on actual + window contents (such as %l) may fail to render properly, or + even crash emacs.) */ + if (mode_line_target == MODE_LINE_TITLE) + return ""; + else + { + int col = (int) current_column (); /* iftc */ + w->column_number_displayed = make_number (col); + pint2str (decode_mode_spec_buf, field_width, col); + return decode_mode_spec_buf; + } case 'e': #ifndef SYSTEM_MALLOC @@ -17727,11 +17735,16 @@ case 'l': { - int startpos = XMARKER (w->start)->charpos; - int startpos_byte = marker_byte_position (w->start); - int line, linepos, linepos_byte, topline; - int nlines, junk; - int height = WINDOW_TOTAL_LINES (w); + int startpos, startpos_byte, line, linepos, linepos_byte; + int topline, nlines, junk, height; + + /* %c and %l are ignored in `frame-title-format'. */ + if (mode_line_target == MODE_LINE_TITLE) + return ""; + + startpos = XMARKER (w->start)->charpos; + startpos_byte = marker_byte_position (w->start); + height = WINDOW_TOTAL_LINES (w); /* If we decided that this buffer isn't suitable for line numbers, don't forget that too fast. */ @@ -23986,9 +23999,10 @@ DEFVAR_LISP ("frame-title-format", &Vframe_title_format, doc: /* Template for displaying the title bar of visible frames. \(Assuming the window manager supports this feature.) -This variable has the same structure as `mode-line-format' (which see), -and is used only on frames for which no explicit name has been set -\(see `modify-frame-parameters'). */); + +This variable has the same structure as `mode-line-format', except that +the %c and %l constructs are ignored. It is used only on frames for +which no explicit name has been set \(see `modify-frame-parameters'). */); DEFVAR_LISP ("icon-title-format", &Vicon_title_format, doc: /* Template for displaying the title bar of an iconified frame.