1 diff -dur -x '*~' -x '*.orig' mutt-1.5.10.orig/curs_main.c mutt-1.5.10/curs_main.c
2 --- mutt-1.5.10.orig/curs_main.c 2005-10-07 09:28:10.000000000 +0200
3 +++ mutt-1.5.10/curs_main.c 2005-10-07 09:28:24.000000000 +0200
5 menu_redraw_current (menu);
8 - if (menu->redraw & REDRAW_STATUS)
9 + if ((menu->redraw & REDRAW_STATUS) || update_status_time ())
11 menu_status_line (buf, sizeof (buf), menu, NONULL (Status));
12 CLEARLINE (option (OPTSTATUSONTOP) ? 0 : LINES-2);
13 Only in mutt-1.5.10/doc: manual-1.html
14 Only in mutt-1.5.10/doc: manual-2.html
15 Only in mutt-1.5.10/doc: manual-3.html
16 Only in mutt-1.5.10/doc: manual-4.html
17 Only in mutt-1.5.10/doc: manual-5.html
18 Only in mutt-1.5.10/doc: manual-6.html
19 Only in mutt-1.5.10/doc: manual-7.html
20 Only in mutt-1.5.10/doc: manual.html
21 Only in mutt-1.5.10/doc: manual.txt
22 diff -dur -x '*~' -x '*.orig' mutt-1.5.10.orig/globals.h mutt-1.5.10/globals.h
23 --- mutt-1.5.10.orig/globals.h 2005-08-03 11:17:46.000000000 +0200
24 +++ mutt-1.5.10/globals.h 2005-10-07 09:28:24.000000000 +0200
27 WHERE short SendmailWait;
28 WHERE short SleepTime INITVAL (1);
29 +WHERE short StatusUpdate;
31 WHERE short WrapMargin;
33 diff -dur -x '*~' -x '*.orig' mutt-1.5.10.orig/init.h mutt-1.5.10/init.h
34 --- mutt-1.5.10.orig/init.h 2005-10-07 09:28:10.000000000 +0200
35 +++ mutt-1.5.10/init.h 2005-10-07 09:28:24.000000000 +0200
37 ** .dt %u .dd number of unread messages *
38 ** .dt %v .dd Mutt version string
39 ** .dt %V .dd currently active limit pattern, if any *
40 + ** .dt %[fmt] .dd the current date and time. ``fmt'' is
41 + ** expanded by the system call ``strftime'';
42 + ** a leading bang disables locales
43 ** .dt %>X .dd right justify the rest of the string and pad with "X"
44 ** .dt %|X .dd pad to the end of the line with "X"
46 @@ -2671,6 +2674,16 @@
47 ** Setting this variable causes the ``status bar'' to be displayed on
48 ** the first line of the screen rather than near the bottom.
50 + { "status_update", DT_NUM, R_NONE, UL &StatusUpdate, -1 },
53 + ** This variable controls, if positive, the maximum interval in seconds
54 + ** before the time in the status line is updated. It is checked at
55 + ** every key press and after a keyboard $$timeout.
56 + ** If the value is zero, the status line will be updated at every check.
57 + ** If it is negative, the status time will only be updated
58 + ** if it necessary to update to the status line for some other reason.
60 { "strict_threads", DT_BOOL, R_RESORT|R_RESORT_INIT|R_INDEX, OPTSTRICTTHREADS, 0 },
63 diff -dur -x '*~' -x '*.orig' mutt-1.5.10.orig/menu.c mutt-1.5.10/menu.c
64 --- mutt-1.5.10.orig/menu.c 2005-06-12 20:32:46.000000000 +0200
65 +++ mutt-1.5.10/menu.c 2005-10-07 09:28:24.000000000 +0200
66 @@ -1087,3 +1087,23 @@
71 +int update_status_time ()
76 + if (StatusUpdate < 0)
78 + else if (StatusUpdate == 0)
82 + if (now - Last >= StatusUpdate)
90 diff -dur -x '*~' -x '*.orig' mutt-1.5.10.orig/mutt_menu.h mutt-1.5.10/mutt_menu.h
91 --- mutt-1.5.10.orig/mutt_menu.h 2005-08-11 21:37:02.000000000 +0200
92 +++ mutt-1.5.10/mutt_menu.h 2005-10-07 09:28:59.000000000 +0200
94 void index_make_entry (char *, size_t, struct menu_t *, int);
95 int index_color (int);
97 +int update_status_time (void);
98 #endif /* _MUTT_MENU_H_ */
99 diff -dur -x '*~' -x '*.orig' mutt-1.5.10.orig/pager.c mutt-1.5.10/pager.c
100 --- mutt-1.5.10.orig/pager.c 2005-08-11 21:37:02.000000000 +0200
101 +++ mutt-1.5.10/pager.c 2005-10-07 09:28:24.000000000 +0200
102 @@ -1763,7 +1763,7 @@
103 SETCOLOR (MT_COLOR_NORMAL);
106 - if ((redraw & REDRAW_INDEX) && index)
107 + if (index && ((redraw & REDRAW_INDEX) || update_status_time ()))
109 /* redraw the pager_index indicator, because the
110 * flags for this message might have changed. */
111 diff -dur -x '*~' -x '*.orig' mutt-1.5.10.orig/status.c mutt-1.5.10/status.c
112 --- mutt-1.5.10.orig/status.c 2005-10-07 09:28:10.000000000 +0200
113 +++ mutt-1.5.10/status.c 2005-10-07 09:28:24.000000000 +0200
120 static char *get_sort_str (char *buf, size_t buflen, int method)
129 + int len = sizeof (fmt) - 1;
140 + while (len > 0 && *src != ']')
152 + break; /* not enough space */
164 + if (do_locales && Locale)
165 + setlocale (LC_TIME, Locale);
168 + time_t now = time (NULL);
170 + strftime (tmp, sizeof (tmp), fmt, localtime (&now));
173 + if (do_locales && Locale)
174 + setlocale (LC_TIME, "C");
176 + snprintf (fmt, sizeof (fmt), "%%%ss", prefix);
177 + snprintf (buf, buflen, fmt, tmp);
182 snprintf (buf, buflen, "%%%s%c", prefix, op);