- char t[_POSIX_PATH_MAX];
- char buf[SHORT_STRING];
- const char *desc;
- FILE *f;
- struct binding_t *funcs;
-
- mutt_mktemp (t);
-
- funcs = km_get_table (menu);
- desc = mutt_getnamebyvalue (menu, Menus);
- if (!desc)
- desc = _("<UNKNOWN>");
+ char tmp[_POSIX_PATH_MAX];
+ char buf[SHORT_STRING];
+ const char *desc;
+ FILE *f;
+ struct binding_t *funcs;
+
+ funcs = km_get_table (menu);
+ desc = mutt_getnamebyvalue (menu, Menus);
+ if (!desc)
+ desc = _("<UNKNOWN>");
+
+ do {
+ f = m_tempfile(tmp, sizeof(tmp), NONULL(Tempdir), NULL);
+ if (!f) {
+ mutt_perror(tmp);
+ return;
+ }