#include <lib-lib/lib-lib.h>
-#include <lib-ui/curses.h>
+#include <lib-ui/lib-ui.h>
#include "mutt.h"
#include "charset.h"
/* first look in the generic map for the function */
for (i = 0; OpGeneric[i].name; i++)
if (OpGeneric[i].op == op)
- return (&OpGeneric[i]);
+ return &OpGeneric[i];
}
if ((map = km_get_table (menu))) {
for (i = 0; map[i].name; i++)
if (map[i].op == op)
- return (&map[i]);
+ return &map[i];
}
- return (NULL);
-}
-
-void mutt_make_help (char *d, ssize_t dlen, char *txt, int menu, int op)
-{
- char buf[SHORT_STRING];
-
- if (km_expand_key (buf, sizeof (buf), km_find_func (menu, op)) ||
- km_expand_key (buf, sizeof (buf), km_find_func (MENU_GENERIC, op)))
- snprintf (d, dlen, "%s:%s", buf, txt);
- else
- d[0] = 0;
-}
-
-char *mutt_compile_help (char *buf, ssize_t buflen, int menu,
- struct mapping_t *items)
-{
- int i;
- ssize_t len;
- char *pbuf = buf;
-
- for (i = 0; items[i].name && buflen > 2; i++) {
- if (i) {
- *pbuf++ = ' ';
- *pbuf++ = ' ';
- buflen -= 2;
- }
- mutt_make_help (pbuf, buflen, _(items[i].name), menu, items[i].value);
- len = m_strlen(pbuf);
- pbuf += len;
- buflen -= len;
- }
- return buf;
+ return NULL;
}
static int print_macro (FILE * f, int maxwidth, const char **macro)
fprintf (f, "?");
}
}
- return (maxwidth - n);
+ return maxwidth - n;
}
static int pad (FILE * f, int col, int i)
if (col < i) {
snprintf (fmt, sizeof (fmt), "%%-%ds", i - col);
fprintf (f, fmt, "");
- return (i);
+ return i;
}
fputc (' ', f);
- return (col + 1);
+ return col + 1;
}
-static void format_line (FILE * f, int ismacro,
- const char *t1, const char *t2, const char *t3)
+static void help_format_line (FILE * f, int ismacro,
+ const char *t1, const char *t2, const char *t3)
{
int col;
int col_a, col_b;
fputs (t1, f);
- /* don't try to press string into one line with less than 40 characters.
- The double paranthesis avoid a gcc warning, sigh ... */
- if ((split = COLS < 40)) {
+ /* don't try to press string into one line with less than 40 characters. */
+ if ((split = getmaxx(main_w) < 40)) {
col_a = col = 0;
col_b = LONG_STRING;
fputc ('\n', f);
}
else {
- col_a = COLS > 83 ? (COLS - 32) >> 2 : 12;
- col_b = COLS > 49 ? (COLS - 10) >> 1 : 19;
+ col_a = getmaxx(main_w) > 83 ? (getmaxx(main_w) - 32) >> 2 : 12;
+ col_b = getmaxx(main_w) > 49 ? (getmaxx(main_w) - 10) >> 1 : 19;
col = pad (f, m_strlen(t1), col_a);
}
if (ismacro > 0) {
- if (!m_strcmp(Pager, "builtin"))
- fputs ("_\010", f);
- fputs ("M ", f);
+ fputs ("_\010M ", f);
col += 2;
if (!split) {
}
else {
while (*t3) {
- n = COLS - col;
+ n = getmaxx(main_w) - col;
if (ismacro >= 0) {
t3 = vskipspaces(t3);
/* FIXME: this is completely wrong */
- if ((n = m_strlen(t3)) > COLS - col) {
- n = COLS - col;
+ if ((n = m_strlen(t3)) > getmaxx(main_w) - col) {
+ n = getmaxx(main_w) - col;
for (col_a = n; col_a > 0 && t3[col_a] != ' '; col_a--);
if (col_a)
n = col_a;
print_macro (f, n, &t3);
if (*t3) {
- if (m_strcmp(Pager, "builtin")) {
- fputc ('\n', f);
- n = 0;
- }
- else {
- n += col - COLS;
- if (option (OPTMARKERS))
- ++n;
- }
+ n += col - getmaxx(main_w);
+ if (option (OPTMARKERS))
+ ++n;
col = pad (f, n, col_b);
}
}
{
struct keymap_t *map;
struct binding_t *b;
- char buf[SHORT_STRING];
+ char buf[STRING];
/* browse through the keymap table */
for (map = Keymaps[menu]; map; map = map->next) {
if (map->op == OP_MACRO) {
if (map->descr == NULL)
- format_line (f, -1, buf, "macro", map->macro);
+ help_format_line (f, -1, buf, "macro", map->macro);
else
- format_line (f, 1, buf, map->macro, map->descr);
+ help_format_line (f, 1, buf, map->macro, map->descr);
}
else {
b = help_lookupFunction (map->op, menu);
- format_line (f, 0, buf, b ? b->name : "UNKNOWN",
+ help_format_line (f, 0, buf, b ? b->name : "UNKNOWN",
b ? _(HelpStrings[b->op]) :
_("ERROR: please report this bug"));
}
for (i = 0; funcs[i].name; i++) {
if (!is_bound (map, funcs[i].op) &&
(!aux || !is_bound (aux, funcs[i].op)))
- format_line (f, 0, funcs[i].name, "", _(HelpStrings[funcs[i].op]));
+ help_format_line (f, 0, funcs[i].name, "", _(HelpStrings[funcs[i].op]));
}
}
void mutt_help (int menu)
{
char tmp[_POSIX_PATH_MAX];
- char buf[SHORT_STRING];
+ char buf[STRING];
const char *desc;
FILE *f;
struct binding_t *funcs;
desc = _("<UNKNOWN>");
do {
- f = m_tempfile(tmp, sizeof(tmp), NONULL(Tempdir), NULL);
+ f = m_tempfile(tmp, sizeof(tmp), NONULL(mod_core.tmpdir), NULL);
if (!f) {
mutt_perror(tmp);
return;
m_fclose(&f);
snprintf(buf, sizeof (buf), _("Help for %s"), desc);
- } while (mutt_do_pager(buf, tmp,
- M_PAGER_RETWINCH | M_PAGER_MARKER | M_PAGER_NSKIP,
- NULL) == OP_REFORMAT_WINCH);
+ } while (mutt_pager(buf, tmp,
+ M_PAGER_RETWINCH | M_PAGER_MARKER | M_PAGER_NSKIP,
+ NULL) == OP_REFORMAT_WINCH);
}
+
+#undef HELP_C