/*
+ * Copyright notice from original mutt:
* Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ *
+ * This file is part of mutt-ng, see http://www.muttng.org/.
+ * It's licensed under the GNU General Public License,
+ * please see the file GPL in the top level source directory.
*/
#if HAVE_CONFIG_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",
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;
if (!StChars)
buf[0] = 0;
- else if (i >= mutt_strlen (StChars))
+ else if (i >= str_len (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);
+ strncpy (buf, mutt_make_version (0), buflen);
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);
}