here's a version of neil townsend's xterm patch that should work with more recent versions. i was able to do patch -p1 <patch in the mutt-1.3.21 directory. the only things that are really different are the line numbers. -w diff -u mutt-1.3.20/curs_main.c mutt-1.3.20-ro/curs_main.c --- mutt-1.3.20/curs_main.c Thu Jul 19 07:49:51 2001 +++ mutt-1.3.20-ro/curs_main.c Thu Aug 9 05:47:28 2001 @@ -103,6 +103,19 @@ extern const char *ReleaseDate; +#define ASCII_CTRL_G 0x07 +#define ASCII_CTRL_OPEN_SQUARE_BRAKET 0x1b + +static void set_xterm_title_bar(char *title) +{ +fprintf(stderr ,"%c]2;%s%c", ASCII_CTRL_OPEN_SQUARE_BRAKET, title, ASCII_CTRL_G); +} + +static void set_xterm_icon_name(char *name) +{ +fprintf(stderr, "%c]1;%s%c", ASCII_CTRL_OPEN_SQUARE_BRAKET, name, ASCII_CTRL_G); +} + void index_make_entry (char *s, size_t l, MUTTMENU *menu, int num) { format_flag flag = M_FORMAT_MAKEPRINT | M_FORMAT_ARROWCURSOR | M_FORMAT_INDEX; @@ -539,6 +552,13 @@ mutt_paddstr (COLS, buf); SETCOLOR (MT_COLOR_NORMAL); menu->redraw &= ~REDRAW_STATUS; + if (option(OPTXTERMSETTITLES)) + { + menu_status_line (buf, sizeof (buf), menu, NONULL (XtermTitle)); + set_xterm_title_bar(buf); + menu_status_line (buf, sizeof (buf), menu, NONULL (XtermIcon)); + set_xterm_icon_name(buf); + } } menu->redraw = 0; diff -u mutt-1.3.20/globals.h mutt-1.3.20-ro/globals.h --- mutt-1.3.20/globals.h Mon Jun 18 08:56:14 2001 +++ mutt-1.3.20-ro/globals.h Thu Aug 9 05:48:00 2001 @@ -103,6 +103,9 @@ WHERE char *Tochars; WHERE char *Username; WHERE char *Visual; +WHERE char *XtermTitle; +WHERE char *XtermIcon; + WHERE char *LastFolder; diff -u mutt-1.3.20/init.c mutt-1.3.20-ro/init.c --- mutt-1.3.20/init.c Tue Jul 3 12:31:16 2001 +++ mutt-1.3.20-ro/init.c Thu Aug 9 05:51:02 2001 @@ -840,6 +840,16 @@ toggle_option (MuttVars[idx].data); else set_option (MuttVars[idx].data); + + /* sanity check for xterm */ + if ((mutt_strcmp (MuttVars[idx].option, "xterm_set_titles") == 0) && option + (OPTXTERMSETTITLES)) + { + char *ep = getenv ("TERM"); + /* Make sure that the terminal can take the control codes */ + if (ep == NULL) unset_option (MuttVars[idx].data); + else if (mutt_strcasecmp (ep, "xterm") != 0) unset_option +(MuttVars[idx].data); + } } else if (DTYPE (MuttVars[idx].type) == DT_STR || DTYPE (MuttVars[idx].type) == DT_PATH || diff -u mutt-1.3.20/init.h mutt-1.3.20-ro/init.h --- mutt-1.3.20/init.h Fri Jun 29 03:05:50 2001 +++ mutt-1.3.20-ro/init.h Thu Aug 9 05:53:18 2001 @@ -2279,6 +2279,27 @@ ** Controls whether mutt writes out the Bcc header when preparing ** messages to be sent. Exim users may wish to use this. */ + {"xterm_icon", DT_STR, R_BOTH, UL &XtermIcon, UL "M%?n?AIL&ail?"}, + /* + ** .pp + ** Controls the format of the icon title, as long as xterm_set_titles + ** is enabled. This string is identical in formatting to the one used by + ** ``$$status_format''. + */ + {"xterm_set_titles", DT_BOOL, R_BOTH, OPTXTERMSETTITLES, 0}, + /* + ** .pp + ** Controls whether mutt sets the xterm title bar and icon name + ** (as long as you're in an appropriate terminal). The default must + ** be off to force in the validity checking. + */ + {"xterm_title", DT_STR, R_BOTH, UL &XtermTitle, UL "Mutt with %?m?%m +messages&no messages?%?n? [%n NEW]?"}, + /* + ** .pp + ** Controls the format of the title bar of the xterm provided that + ** xterm_set_titles has been set. This string is identical in formatting + ** to the one used by ``$$status_format''. + */ /*--*/ { NULL } }; diff -u mutt-1.3.20/mutt.h mutt-1.3.20-ro/mutt.h --- mutt-1.3.20/mutt.h Fri Jun 29 03:05:50 2001 +++ mutt-1.3.20-ro/mutt.h Thu Aug 9 05:53:45 2001 @@ -399,6 +399,7 @@ OPTWRAPSEARCH, OPTWRITEBCC, /* write out a bcc header? */ OPTXMAILER, + OPTXTERMSETTITLES, /* PGP options */ -- Sintax error in config file! (line 378) aborted! PGP Public Key: http://infinitejazz.net/will/pgp/