#ifndef _MUTT_CURSES_H
#define _MUTT_CURSES_H
+#include <lib-lib/lib-lib.h>
#include "mutt.h"
-#ifdef USE_SLANG_CURSES
-
-#ifndef unix /* this symbol is not defined by the hp-ux compiler (sigh) */
-#define unix
-#endif /* unix */
-
-#include "slcurses.h"
-
-#define KEY_DC SL_KEY_DELETE
-#define KEY_IC SL_KEY_IC
-
-/*
- * ncurses and SLang seem to send different characters when the Enter key is
- * pressed, so define some macros to properly detect the Enter key.
- */
-#define M_ENTER_C '\r'
-#define M_ENTER_S "\r"
-
-#else
-
-#ifdef HAVE_NCURSESW_NCURSES_H
+#if defined(HAVE_NCURSESW_NCURSES_H)
#include <ncursesw/ncurses.h>
-#else
-#ifdef HAVE_NCURSES_NCURSES_H
+#elif defined(HAVE_NCURSES_NCURSES_H)
#include <ncurses/ncurses.h>
-#else
-#ifdef HAVE_NCURSES_H
+#elif defined(HAVE_NCURSES_H)
#include <ncurses.h>
#else
#include <curses.h>
#endif
-#endif
-#endif
-
-#define M_ENTER_C '\n'
-#define M_ENTER_S "\n"
-
-#endif /* USE_SLANG_CURSES */
/* AIX defines ``lines'' in <term.h>, but it's used as a var name in
* various places in Mutt
#define CLEARLINE_WIN(x) move(x,(option(OPTMBOXPANE)?SidebarWidth:0)), clrtoeol()
#define CLEARLINE(x) move(x,0), clrtoeol()
#define CENTERLINE(x,y) move(y, (COLS-strlen(x))/2), addstr(x)
-#define BEEP() do { if (option (OPTBEEP)) beep(); } while (0)
+#define BEEP() do { if (mod_core.beep) beep(); } while (0)
-#if ! (defined(USE_SLANG_CURSES) || defined(HAVE_CURS_SET))
-#define curs_set(x)
-#endif
+#define BKGDSET(x) bkgdset(ColorDefs[x] | ' ')
-#if !defined(USE_SLANG_CURSES) && defined(HAVE_BKGDSET)
-#define BKGDSET(x) bkgdset (ColorDefs[x] | ' ')
-#else
-#define BKGDSET(x)
-#endif
-
-#if (defined(USE_SLANG_CURSES) || defined(HAVE_CURS_SET))
void mutt_curs_set (int);
-#else
-#define mutt_curs_set(x)
-#endif
#define PAGELEN (LINES-3)
#define ctrl(c) ((c)-'@')
const char* msg;
long pos;
long size;
- char sizestr[SHORT_STRING];
+ char sizestr[STRING];
} progress_t;
void mutt_progress_bar (progress_t* progress, long pos);
void mutt_clear_error (void);
-void mutt_edit_file (const char *, const char *);
-void mutt_curses_error (const char *, ...);
-void mutt_curses_message (const char *, ...);
+void mutt_edit_file (const char *);
+void mutt_curses_error (const char *, ...)
+ __attribute__((format(printf, 1, 2)));
+void mutt_curses_message (const char *, ...)
+ __attribute__((format(printf, 1, 2)));
void mutt_format_string (char *, ssize_t, int, int, int, char, const char *,
ssize_t, int);
void mutt_format_s (char *, ssize_t, const char *, const char *);
void mutt_query_exit (void);
void mutt_query_menu (char *, ssize_t);
void mutt_show_error (void);
+ssize_t mutt_pretty_size(char *s, ssize_t len, ssize_t n);
int mutt_addwch (wchar_t);
int mutt_alloc_color (int fg, int bg);
int mutt_index_menu (void);
int mutt_is_mail_list (address_t *);
int mutt_is_subscribed_list (address_t *);
-int mutt_multi_choice (char *prompt, char *letters);
+int mutt_multi_choice (const char *prompt, const char *letters);
int mutt_parse_color (BUFFER *, BUFFER *, unsigned long, BUFFER *);
int mutt_parse_uncolor (BUFFER *, BUFFER *, unsigned long, BUFFER *);
int mutt_parse_mono (BUFFER *, BUFFER *, unsigned long, BUFFER *);
int mutt_parse_unmono (BUFFER *, BUFFER *, unsigned long, BUFFER *);
int mutt_query_complete (char *, ssize_t);
-int mutt_strwidth (const char *);
int mutt_user_is_recipient (HEADER *);
int mutt_yesorno (const char *, int);
void mutt_set_header_color (CONTEXT *, HEADER *);
#define MAYBE_REDRAW(x) if (option (OPTNEEDREDRAW)) { unset_option (OPTNEEDREDRAW); x = REDRAW_FULL; }
+#define SW (option(OPTMBOXPANE)?SidebarWidth:0)
+
#endif /* !_MUTT_CURSES_H */