# include "config.h"
#endif
+#include <lib-lib/mem.h>
+#include <lib-lib/str.h>
+#include <lib-lib/macros.h>
+#include <lib-lib/mapping.h>
+
#include "mutt.h"
#include "mutt_menu.h"
#include "mutt_curses.h"
#include "sort.h"
-#include "mapping.h"
#include "mx.h"
+#include "buffy.h"
-#include "lib/mem.h"
-#include "lib/intl.h"
-#include "lib/str.h"
#include <string.h>
#include <ctype.h>
#include <unistd.h>
+#define SW (option(OPTMBOXPANE)?SidebarWidth:0)
+
static char *get_sort_str (char *buf, size_t buflen, int method)
{
snprintf (buf, buflen, "%s%s%s",
const char *elsestring,
unsigned long data, format_flag flags)
{
- char fmt[SHORT_STRING], tmp[SHORT_STRING], *cp, *p;
+ char fmt[SHORT_STRING], tmp[SHORT_STRING];
+ const char *cp, *p;
int count, optional = (flags & M_FORMAT_OPTIONAL);
MUTTMENU *menu = (MUTTMENU *) data;
case 'b':
if (!optional) {
snprintf (fmt, sizeof (fmt), "%%%sd", prefix);
- snprintf (buf, buflen, fmt, mutt_buffy_check (0));
+ snprintf (buf, buflen, fmt, buffy_check (0));
}
- else if (!mutt_buffy_check (0))
+ else if (!buffy_check (0))
optional = 0;
break;
case 'B':
snprintf (fmt, sizeof (fmt), "%%%ss", prefix);
-#ifdef USE_COMPRESSED
if (Context && Context->compressinfo && Context->realpath) {
if ((p = strrchr (Context->realpath, '/')))
- strfcpy (tmp, p + 1, sizeof (tmp));
+ m_strcpy(tmp, sizeof(tmp), p + 1);
else
- strfcpy (tmp, Context->realpath, sizeof (tmp));
+ m_strcpy(tmp, sizeof(tmp), Context->realpath);
}
else
-#endif
if (Context && Context->path) {
if ((p = strrchr (Context->path, '/')))
- strfcpy (tmp, p + 1, sizeof (tmp));
+ m_strcpy(tmp, sizeof(tmp), p + 1);
else
- strfcpy (tmp, Context->path, sizeof (tmp));
+ m_strcpy(tmp, sizeof(tmp), Context->path);
}
else
- strfcpy (tmp, _("no mailbox"), sizeof (tmp));
+ m_strcpy(tmp, sizeof(tmp), _("no mailbox"));
snprintf (buf, buflen, fmt, tmp);
break;
case 'f':
snprintf (fmt, sizeof (fmt), "%%%ss", prefix);
-#ifdef USE_COMPRESSED
if (Context && Context->compressinfo && Context->realpath) {
- strfcpy (tmp, Context->realpath, sizeof (tmp));
+ m_strcpy(tmp, sizeof(tmp), Context->realpath);
mutt_pretty_mailbox (tmp);
}
else
-#endif
if (Context && Context->path) {
- strfcpy (tmp, Context->path, sizeof (tmp));
+ m_strcpy(tmp, sizeof(tmp), Context->path);
mutt_pretty_mailbox (tmp);
}
else
- strfcpy (tmp, _("(no mailbox)"), sizeof (tmp));
+ m_strcpy(tmp, sizeof(tmp), _("(no mailbox)"));
snprintf (buf, buflen, fmt, tmp);
break;
int i = 0;
if (Context) {
- i = option (OPTATTACHMSG) ? 3 : ((Context->readonly ||
- Context->dontwrite) ? 2 : (Context->
- changed
- || (
-#ifdef USE_IMAP
- /* deleted doesn't necessarily mean changed in IMAP */
- Context->
- magic
- !=
- M_IMAP
- &&
-#endif
- Context->
- deleted))
- ? 1 : 0);
+ /* XXX: deleted doesn't necessarily mean changed in IMAP */
+ i = option (OPTATTACHMSG) ? 3
+ : ((Context->readonly || Context->dontwrite) ? 2
+ : (Context->changed || (Context-> magic != M_IMAP && Context->
+ deleted)) ? 1 : 0);
}
if (!StChars)
buf[0] = 0;
- else if (i >= mutt_strlen (StChars))
+ else if (i >= m_strlen(StChars))
buf[0] = StChars[0];
else
buf[0] = StChars[i];
break;
case 'v':
- snprintf (fmt, sizeof (fmt), "Mutt-ng %%s");
- snprintf (buf, buflen, fmt, MUTT_VERSION);
+ m_strcpy(buf, buflen, mutt_make_version(0));
break;
case 'V':
return (src);
}
-void menu_status_line (char *buf, size_t buflen, MUTTMENU * menu,
- const char *p)
-{
- mutt_FormatString (buf, buflen, p, status_format_str, (unsigned long) menu,
- 0);
+void menu_status_line (char* buf, size_t len, MUTTMENU* menu, const char* p) {
+ /*
+ * if we have enough space for buffer, format lines to $COLS-$SidebarWidth
+ * only to not wrap past end of screen
+ */
+ int width = COLS - SW;
+ mutt_FormatString (buf, (width >= len ? len : (width + 1)),
+ p, status_format_str,
+ (unsigned long) menu, 0);
}