summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--browser.c214
-rw-r--r--curs_lib.c14
-rw-r--r--curs_main.c2
-rw-r--r--enter.c2
-rw-r--r--globals.h2
-rw-r--r--hook.c2
-rw-r--r--init.h16
-rw-r--r--main.c2
-rw-r--r--mutt.h9
-rw-r--r--mutt_socket.c16
-rw-r--r--mutt_ssl.c234
-rw-r--r--po/fr.po914
-rwxr-xr-xsmime_keys.pl2
13 files changed, 721 insertions, 708 deletions
diff --git a/browser.c b/browser.c
index 4f365ebd..a4566395 100644
--- a/browser.c
+++ b/browser.c
@@ -56,13 +56,13 @@ typedef struct folder_t
int num;
} FOLDER;
-static BUFFER *LastDir = NULL;
-static BUFFER *LastDirBackup = NULL;
+static BUFFER *LastMailboxDir = NULL;
+static BUFFER *LastFileDir = NULL;
void mutt_browser_cleanup (void)
{
- mutt_buffer_free (&LastDir);
- mutt_buffer_free (&LastDirBackup);
+ mutt_buffer_free (&LastMailboxDir);
+ mutt_buffer_free (&LastFileDir);
}
/* Frees up the memory allocated for the local-global variables. */
@@ -728,7 +728,8 @@ static void set_sticky_cursor (struct browser_state *state, MUTTMENU *menu, cons
}
static void init_menu (struct browser_state *state, MUTTMENU *menu, char *title,
- size_t titlelen, const char *defaultsel)
+ size_t titlelen, const char *defaultsel,
+ const char *working_dir)
{
BUFFER *path = NULL;
@@ -749,7 +750,7 @@ static void init_menu (struct browser_state *state, MUTTMENU *menu, char *title,
snprintf (title, titlelen, _("Mailboxes [%d]"), mutt_buffy_check (0));
else
{
- mutt_buffer_strcpy (path, mutt_b2s (LastDir));
+ mutt_buffer_strcpy (path, working_dir);
mutt_buffer_pretty_mailbox (path);
#ifdef USE_IMAP
if (state->imap_browse && option (OPTIMAPLSUB))
@@ -807,8 +808,8 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
BUFFER *buf = NULL;
BUFFER *prefix = NULL;
BUFFER *tmp = NULL;
- BUFFER *OldLastDir = NULL;
BUFFER *defaultsel = NULL;
+ BUFFER *working_dir = NULL, *old_working_dir = NULL;
char helpstr[LONG_STRING];
char title[STRING];
struct browser_state state;
@@ -817,31 +818,35 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
int op, killPrefix = 0;
int i, j;
int multiple = (flags & MUTT_SEL_MULTI) ? 1 : 0;
- int folder = (flags & MUTT_SEL_FOLDER) ? 1 : 0;
- int buffy = (flags & MUTT_SEL_BUFFY) ? 1 : 0;
-
- buffy = buffy && folder;
buf = mutt_buffer_pool_get ();
prefix = mutt_buffer_pool_get ();
tmp = mutt_buffer_pool_get ();
- OldLastDir = mutt_buffer_pool_get ();
- defaultsel = mutt_buffer_pool_get ();
+ defaultsel = mutt_buffer_pool_get ();
+ working_dir = mutt_buffer_pool_get ();
+ old_working_dir = mutt_buffer_pool_get ();
memset (&state, 0, sizeof (struct browser_state));
- state.buffy = buffy;
+ state.buffy = (flags & MUTT_SEL_BUFFY) ? 1 : 0;
- if (!LastDir)
+ if (!LastMailboxDir)
+ {
+ LastMailboxDir = mutt_buffer_new ();
+ mutt_buffer_increase_size (LastMailboxDir, _POSIX_PATH_MAX);
+ }
+ if (!LastFileDir)
{
- LastDir = mutt_buffer_new ();
- mutt_buffer_increase_size (LastDir, _POSIX_PATH_MAX);
- LastDirBackup = mutt_buffer_new ();
- mutt_buffer_increase_size (LastDirBackup, _POSIX_PATH_MAX);
+ LastFileDir = mutt_buffer_new ();
+ mutt_buffer_increase_size (LastFileDir, _POSIX_PATH_MAX);
}
- if (!folder)
- mutt_buffer_strcpy (LastDirBackup, mutt_b2s (LastDir));
+ if (flags & MUTT_SEL_MAILBOX)
+ mutt_buffer_strcpy (working_dir, mutt_b2s (LastMailboxDir));
+ else if (flags & MUTT_SEL_FILE)
+ mutt_buffer_strcpy (working_dir, mutt_b2s (LastFileDir));
+ else
+ mutt_getcwd (working_dir);
if (*(mutt_b2s (f)))
{
@@ -859,7 +864,7 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
init_state (&state, NULL);
state.imap_browse = 1;
if (!imap_browse (mutt_b2s (f), &state))
- mutt_buffer_strcpy (LastDir, state.folder);
+ mutt_buffer_strcpy (working_dir, state.folder);
}
else
{
@@ -870,20 +875,20 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
if (i > 0)
{
if ((mutt_b2s (f))[0] == '/')
- mutt_buffer_strcpy_n (LastDir, mutt_b2s (f), i);
+ mutt_buffer_strcpy_n (working_dir, mutt_b2s (f), i);
else
{
- mutt_getcwd (LastDir);
- mutt_buffer_addch (LastDir, '/');
- mutt_buffer_addstr_n (LastDir, mutt_b2s (f), i);
+ mutt_getcwd (working_dir);
+ mutt_buffer_addch (working_dir, '/');
+ mutt_buffer_addstr_n (working_dir, mutt_b2s (f), i);
}
}
else
{
if ((mutt_b2s (f))[0] == '/')
- mutt_buffer_strcpy (LastDir, "/");
+ mutt_buffer_strcpy (working_dir, "/");
else
- mutt_getcwd (LastDir);
+ mutt_getcwd (working_dir);
}
if (i <= 0 && (mutt_b2s (f))[0] != '/')
@@ -897,31 +902,34 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
}
else
{
- if (!folder)
- mutt_getcwd (LastDir);
- else if (!*(mutt_b2s (LastDir)))
- mutt_buffer_strcpy (LastDir, NONULL(Maildir));
+ if (!*(mutt_b2s (working_dir)))
+ {
+ if (flags & MUTT_SEL_MAILBOX)
+ mutt_buffer_strcpy (working_dir, NONULL(Maildir));
+ else
+ mutt_getcwd (working_dir);
+ }
if (Context)
mutt_buffer_strcpy (defaultsel, NONULL (Context->path));
#ifdef USE_IMAP
- if (!state.buffy && mx_is_imap (mutt_b2s (LastDir)))
+ if (!state.buffy && mx_is_imap (mutt_b2s (working_dir)))
{
init_state (&state, NULL);
state.imap_browse = 1;
- imap_browse (mutt_b2s (LastDir), &state);
+ imap_browse (mutt_b2s (working_dir), &state);
browser_sort (&state);
}
else
#endif
{
- i = mutt_buffer_len (LastDir);
- while (i && mutt_b2s (LastDir)[--i] == '/')
- LastDir->data[i] = '\0';
- mutt_buffer_fix_dptr (LastDir);
- if (!*(mutt_b2s (LastDir)))
- mutt_getcwd (LastDir);
+ i = mutt_buffer_len (working_dir);
+ while (i && mutt_b2s (working_dir)[--i] == '/')
+ working_dir->data[i] = '\0';
+ mutt_buffer_fix_dptr (working_dir);
+ if (!*(mutt_b2s (working_dir)))
+ mutt_getcwd (working_dir);
}
}
@@ -936,7 +944,7 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
#ifdef USE_IMAP
if (!state.imap_browse)
#endif
- if (examine_directory (NULL, &state, mutt_b2s (LastDir), mutt_b2s (prefix)) == -1)
+ if (examine_directory (NULL, &state, mutt_b2s (working_dir), mutt_b2s (prefix)) == -1)
goto bail;
menu = mutt_new_menu (MENU_FOLDER);
@@ -951,7 +959,8 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
FolderHelp);
mutt_push_current_menu (menu);
- init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel));
+ init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel),
+ mutt_b2s (working_dir));
FOREVER
{
@@ -987,9 +996,9 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
)
{
/* save the old directory */
- mutt_buffer_strcpy (OldLastDir, mutt_b2s (LastDir));
+ mutt_buffer_strcpy (old_working_dir, mutt_b2s (working_dir));
- mutt_buffer_strcpy (defaultsel, mutt_b2s (OldLastDir));
+ mutt_buffer_strcpy (defaultsel, mutt_b2s (old_working_dir));
if (mutt_buffer_len (defaultsel) && (*(defaultsel->dptr - 1) == '/'))
{
defaultsel->dptr--;
@@ -998,46 +1007,46 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
if (mutt_strcmp (state.entry[menu->current].display_name, "..") == 0)
{
- size_t lastdirlen = mutt_buffer_len (LastDir);
+ size_t workingdirlen = mutt_buffer_len (working_dir);
- if ((lastdirlen > 1) &&
- mutt_strcmp ("..", mutt_b2s (LastDir) + lastdirlen - 2) == 0)
+ if ((workingdirlen > 1) &&
+ mutt_strcmp ("..", mutt_b2s (working_dir) + workingdirlen - 2) == 0)
{
- mutt_buffer_addstr (LastDir, "/..");
+ mutt_buffer_addstr (working_dir, "/..");
}
else
{
char *p = NULL;
- if (lastdirlen > 1)
+ if (workingdirlen > 1)
{
- /* "mutt_b2s (LastDir) + 1" triggers a compiler warning */
- p = strrchr (LastDir->data + 1, '/');
+ /* "mutt_b2s (working_dir) + 1" triggers a compiler warning */
+ p = strrchr (working_dir->data + 1, '/');
}
if (p)
{
*p = 0;
- mutt_buffer_fix_dptr (LastDir);
+ mutt_buffer_fix_dptr (working_dir);
}
else
{
- if (mutt_b2s (LastDir)[0] == '/')
- mutt_buffer_strcpy (LastDir, "/");
+ if (mutt_b2s (working_dir)[0] == '/')
+ mutt_buffer_strcpy (working_dir, "/");
else
- mutt_buffer_addstr (LastDir, "/..");
+ mutt_buffer_addstr (working_dir, "/..");
}
}
}
else if (state.buffy)
{
- mutt_buffer_strcpy (LastDir, state.entry[menu->current].full_path);
+ mutt_buffer_strcpy (working_dir, state.entry[menu->current].full_path);
}
#ifdef USE_IMAP
else if (state.imap_browse)
{
ciss_url_t url;
- mutt_buffer_strcpy (LastDir, state.entry[menu->current].full_path);
+ mutt_buffer_strcpy (working_dir, state.entry[menu->current].full_path);
/* tack on delimiter here */
/* special case "" needs no delimiter */
@@ -1045,13 +1054,13 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
if (url.path &&
(state.entry[menu->current].delim != '\0'))
{
- mutt_buffer_addch (LastDir, state.entry[menu->current].delim);
+ mutt_buffer_addch (working_dir, state.entry[menu->current].delim);
}
}
#endif
else
{
- mutt_buffer_strcpy (LastDir, state.entry[menu->current].full_path);
+ mutt_buffer_strcpy (working_dir, state.entry[menu->current].full_path);
}
destroy_state (&state);
@@ -1066,25 +1075,26 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
{
init_state (&state, NULL);
state.imap_browse = 1;
- imap_browse (mutt_b2s (LastDir), &state);
+ imap_browse (mutt_b2s (working_dir), &state);
browser_sort (&state);
menu->data = state.entry;
}
else
#endif
- if (examine_directory (menu, &state, mutt_b2s (LastDir), mutt_b2s (prefix)) == -1)
+ if (examine_directory (menu, &state, mutt_b2s (working_dir), mutt_b2s (prefix)) == -1)
{
/* try to restore the old values */
- mutt_buffer_strcpy (LastDir, mutt_b2s (OldLastDir));
- if (examine_directory (menu, &state, mutt_b2s (LastDir), mutt_b2s (prefix)) == -1)
+ mutt_buffer_strcpy (working_dir, mutt_b2s (old_working_dir));
+ if (examine_directory (menu, &state, mutt_b2s (working_dir), mutt_b2s (prefix)) == -1)
{
- mutt_buffer_strcpy (LastDir, NONULL(Homedir));
+ mutt_buffer_strcpy (working_dir, NONULL(Homedir));
goto bail;
}
}
menu->current = 0;
menu->top = 0;
- init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel));
+ init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel),
+ mutt_b2s (working_dir));
break;
}
}
@@ -1161,19 +1171,20 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
break;
}
- if (!imap_mailbox_create (mutt_b2s (LastDir), defaultsel))
+ if (!imap_mailbox_create (mutt_b2s (working_dir), defaultsel))
{
/* TODO: find a way to detect if the new folder would appear in
* this window, and insert it without starting over. */
destroy_state (&state);
init_state (&state, NULL);
state.imap_browse = 1;
- imap_browse (mutt_b2s (LastDir), &state);
+ imap_browse (mutt_b2s (working_dir), &state);
browser_sort (&state);
menu->data = state.entry;
menu->current = 0;
menu->top = 0;
- init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel));
+ init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel),
+ mutt_b2s (working_dir));
}
/* else leave error on screen */
break;
@@ -1190,12 +1201,13 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
destroy_state (&state);
init_state (&state, NULL);
state.imap_browse = 1;
- imap_browse (mutt_b2s (LastDir), &state);
+ imap_browse (mutt_b2s (working_dir), &state);
browser_sort (&state);
menu->data = state.entry;
menu->current = 0;
menu->top = 0;
- init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel));
+ init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel),
+ mutt_b2s (working_dir));
}
}
break;
@@ -1233,7 +1245,8 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
state.entrylen--;
mutt_message _("Mailbox deleted.");
mutt_buffer_clear (defaultsel);
- init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel));
+ init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel),
+ mutt_b2s (working_dir));
}
else
mutt_error _("Mailbox deletion failed.");
@@ -1247,15 +1260,15 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
case OP_CHANGE_DIRECTORY:
- mutt_buffer_strcpy (buf, mutt_b2s (LastDir));
+ mutt_buffer_strcpy (buf, mutt_b2s (working_dir));
mutt_buffer_clear (defaultsel);
#ifdef USE_IMAP
if (!state.imap_browse)
#endif
{
/* add '/' at the end of the directory name if not already there */
- size_t len = mutt_buffer_len (LastDir);
- if (len && (mutt_b2s (LastDir)[len-1] != '/'))
+ size_t len = mutt_buffer_len (working_dir);
+ if (len && (mutt_b2s (working_dir)[len-1] != '/'))
mutt_buffer_addch (buf, '/');
}
@@ -1265,30 +1278,31 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
{
state.buffy = 0;
/* no relative path expansion, because that should be compared
- * to LastDir, not cwd */
+ * to working_dir, not cwd */
mutt_buffer_expand_path_norel (buf);
#ifdef USE_IMAP
if (mx_is_imap (mutt_b2s (buf)))
{
- mutt_buffer_strcpy (LastDir, mutt_b2s (buf));
+ mutt_buffer_strcpy (working_dir, mutt_b2s (buf));
destroy_state (&state);
init_state (&state, NULL);
state.imap_browse = 1;
- imap_browse (mutt_b2s (LastDir), &state);
+ imap_browse (mutt_b2s (working_dir), &state);
browser_sort (&state);
menu->data = state.entry;
menu->current = 0;
menu->top = 0;
- init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel));
+ init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel),
+ mutt_b2s (working_dir));
}
else
#endif
{
if (*(mutt_b2s (buf)) != '/')
{
- /* in case dir is relative, make it relative to LastDir,
+ /* in case dir is relative, make it relative to working_dir,
* not current working dir */
- mutt_buffer_concat_path (tmp, mutt_b2s (LastDir), mutt_b2s (buf));
+ mutt_buffer_concat_path (tmp, mutt_b2s (working_dir), mutt_b2s (buf));
mutt_buffer_strcpy (buf, mutt_b2s (tmp));
}
if (stat (mutt_b2s (buf), &st) == 0)
@@ -1297,18 +1311,19 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
{
destroy_state (&state);
if (examine_directory (menu, &state, mutt_b2s (buf), mutt_b2s (prefix)) == 0)
- mutt_buffer_strcpy (LastDir, mutt_b2s (buf));
+ mutt_buffer_strcpy (working_dir, mutt_b2s (buf));
else
{
mutt_error _("Error scanning directory.");
- if (examine_directory (menu, &state, mutt_b2s (LastDir), mutt_b2s (prefix)) == -1)
+ if (examine_directory (menu, &state, mutt_b2s (working_dir), mutt_b2s (prefix)) == -1)
{
goto bail;
}
}
menu->current = 0;
menu->top = 0;
- init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel));
+ init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel),
+ mutt_b2s (working_dir));
}
else
mutt_error (_("%s is not a directory."), mutt_b2s (buf));
@@ -1362,15 +1377,17 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
{
init_state (&state, NULL);
state.imap_browse = 1;
- imap_browse (mutt_b2s (LastDir), &state);
+ imap_browse (mutt_b2s (working_dir), &state);
browser_sort (&state);
menu->data = state.entry;
- init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel));
+ init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel),
+ mutt_b2s (working_dir));
}
else
#endif
- if (examine_directory (menu, &state, mutt_b2s (LastDir), NULL) == 0)
- init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel));
+ if (examine_directory (menu, &state, mutt_b2s (working_dir), NULL) == 0)
+ init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel),
+ mutt_b2s (working_dir));
else
{
mutt_error _("Error scanning directory.");
@@ -1415,18 +1432,19 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
goto bail;
}
#ifdef USE_IMAP
- else if (mx_is_imap (mutt_b2s (LastDir)))
+ else if (mx_is_imap (mutt_b2s (working_dir)))
{
init_state (&state, NULL);
state.imap_browse = 1;
- imap_browse (mutt_b2s (LastDir), &state);
+ imap_browse (mutt_b2s (working_dir), &state);
browser_sort (&state);
menu->data = state.entry;
}
#endif
- else if (examine_directory (menu, &state, mutt_b2s (LastDir), mutt_b2s (prefix)) == -1)
+ else if (examine_directory (menu, &state, mutt_b2s (working_dir), mutt_b2s (prefix)) == -1)
goto bail;
- init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel));
+ init_menu (&state, menu, title, sizeof (title), mutt_b2s (defaultsel),
+ mutt_b2s (working_dir));
break;
case OP_BUFFY_LIST:
@@ -1435,7 +1453,7 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
case OP_BROWSER_NEW_FILE:
- mutt_buffer_printf (buf, "%s/", mutt_b2s (LastDir));
+ mutt_buffer_printf (buf, "%s/", mutt_b2s (working_dir));
/* buf comes from the buffer pool, so defaults to size LONG_STRING */
if (mutt_buffer_get_field (_("New file name: "), buf, MUTT_FILE) == 0)
{
@@ -1495,19 +1513,21 @@ void _mutt_buffer_select_file (BUFFER *f, int flags, char ***files, int *numfile
}
bail:
+ if (flags & MUTT_SEL_MAILBOX)
+ mutt_buffer_strcpy (LastMailboxDir, mutt_b2s (working_dir));
+ else if (flags & MUTT_SEL_FILE)
+ mutt_buffer_strcpy (LastFileDir, mutt_b2s (working_dir));
+
mutt_buffer_pool_release (&buf);
mutt_buffer_pool_release (&prefix);
mutt_buffer_pool_release (&tmp);
- mutt_buffer_pool_release (&OldLastDir);
mutt_buffer_pool_release (&defaultsel);
+ mutt_buffer_pool_release (&working_dir);
+ mutt_buffer_pool_release (&old_working_dir);
if (menu)
{
mutt_pop_current_menu (menu);
mutt_menuDestroy (&menu);
}
-
- if (!folder)
- mutt_buffer_strcpy (LastDir, mutt_b2s (LastDirBackup));
-
}
diff --git a/curs_lib.c b/curs_lib.c
index efa76ce6..246cb6be 100644
--- a/curs_lib.c
+++ b/curs_lib.c
@@ -1093,11 +1093,19 @@ static int _enter_fname (const char *prompt, BUFFER *fname, int flags,
}
else if (ch.ch == '?')
{
+ int sel_flags = 0;
+
+ if (flags & MUTT_MAILBOX)
+ sel_flags |= MUTT_SEL_MAILBOX;
+ else if (flags & MUTT_FILE)
+ sel_flags |= MUTT_SEL_FILE;
+
+ if (multiple)
+ sel_flags |= MUTT_SEL_MULTI;
+
mutt_refresh ();
mutt_buffer_clear (fname);
- _mutt_buffer_select_file (fname,
- MUTT_SEL_FOLDER | (multiple ? MUTT_SEL_MULTI : 0),
- files, numfiles);
+ _mutt_buffer_select_file (fname, sel_flags, files, numfiles);
}
else
{
diff --git a/curs_main.c b/curs_main.c
index 71a4e06e..3d79723c 100644
--- a/curs_main.c
+++ b/curs_main.c
@@ -1360,7 +1360,7 @@ int mutt_index_menu (void)
else if ((op == OP_MAIN_BROWSE_MAILBOXES) ||
(op == OP_MAIN_BROWSE_MAILBOXES_READONLY))
- mutt_buffer_select_file (folderbuf, MUTT_SEL_FOLDER | MUTT_SEL_BUFFY);
+ mutt_buffer_select_file (folderbuf, MUTT_SEL_MAILBOX | MUTT_SEL_BUFFY);
else
{
diff --git a/enter.c b/enter.c
index f09dd265..693f3b1d 100644
--- a/enter.c
+++ b/enter.c
@@ -725,7 +725,7 @@ int _mutt_enter_string (char *buf, size_t buflen, int col,
!memcmp (tempbuf, state->wbuf, state->lastchar * sizeof (wchar_t))))
{
_mutt_select_file (buf, buflen,
- ((flags & MUTT_MAILBOX) ? MUTT_SEL_FOLDER : 0) | (multiple ? MUTT_SEL_MULTI : 0),
+ ((flags & MUTT_MAILBOX) ? MUTT_SEL_MAILBOX : 0) | (multiple ? MUTT_SEL_MULTI : 0),
files, numfiles);
if (!multiple && *buf)
{
diff --git a/globals.h b/globals.h
index 06ce410e..3f22ad35 100644
--- a/globals.h
+++ b/globals.h
@@ -103,6 +103,8 @@ WHERE char *MsgFmt;
WHERE char *Preconnect;
WHERE char *Tunnel;
WHERE short NetInc;
+WHERE short SocketReceiveTimeout;
+WHERE short SocketSendTimeout;
#endif /* USE_SOCKET */
#ifdef MIXMASTER
diff --git a/hook.c b/hook.c
index a0a6cab6..cd4c6a76 100644
--- a/hook.c
+++ b/hook.c
@@ -165,7 +165,7 @@ int mutt_parse_hook (BUFFER *buf, BUFFER *s, union pointer_long_t udata, BUFFER
}
else if (data & MUTT_FCCHOOK)
{
- /* Do not perform relative path expansion "\^" can be expanded later:
+ /* Do not perform relative path expansion. "\^" can be expanded later:
* mutt_select_fcc() => mutt_addr_hook() => mutt_make_string()
* which will perform backslash expansion, converting "\^" to "^".
* save_fcc_mailbox_part() then calls mutt_buffer_expand_path() on each part.
diff --git a/init.h b/init.h
index b0651c28..9ca57281 100644
--- a/init.h
+++ b/init.h
@@ -4147,6 +4147,22 @@ struct option_t MuttVars[] = {
** Also see $$write_bcc.
*/
#endif /* USE_SMTP */
+#ifdef USE_SOCKET
+ { "socket_receive_timeout", DT_NUM, R_NONE, {.p=&SocketReceiveTimeout}, {.l=0} },
+ /*
+ ** .pp
+ ** Causes Mutt to timeout any socket read operation (e.g. SSL_read) after
+ ** this many seconds. A zero (default) or negative value causes Mutt to wait
+ ** indefinitely for the read to complete.
+ */
+ { "socket_send_timeout", DT_NUM, R_NONE, {.p=&SocketSendTimeout}, {.l=0} },
+ /*
+ ** .pp
+ ** Causes Mutt to timeout any socket write operation (e.g. SSL_write) after
+ ** this many seconds. A zero (default) or negative value causes Mutt to wait
+ ** indefinitely for the write to complete.
+ */
+#endif /* USE_SOCKET */
{ "sort", DT_SORT, R_INDEX|R_RESORT, {.p=&Sort}, {.l=SORT_DATE} },
/*
** .pp
diff --git a/main.c b/main.c
index 9172d8bc..c3c67669 100644
--- a/main.c
+++ b/main.c
@@ -1356,7 +1356,7 @@ int main (int argc, char **argv, char **environ)
goto cleanup_and_exit;
}
mutt_buffer_clear (folder);
- mutt_buffer_select_file (folder, MUTT_SEL_FOLDER | MUTT_SEL_BUFFY);
+ mutt_buffer_select_file (folder, MUTT_SEL_MAILBOX | MUTT_SEL_BUFFY);
if (!mutt_buffer_len (folder))
{
exit_code = 0;
diff --git a/mutt.h b/mutt.h
index 2946c78b..ca30791d 100644
--- a/mutt.h
+++ b/mutt.h
@@ -371,10 +371,11 @@ enum
#define MUTT_EDIT_HEADERS_RESUME 2
/* flags to _mutt_select_file() */
-#define MUTT_SEL_BUFFY (1<<0)
-#define MUTT_SEL_MULTI (1<<1)
-#define MUTT_SEL_FOLDER (1<<2)
-#define MUTT_SEL_DIRECTORY (1<<3) /* Allow directories to be selected
+#define MUTT_SEL_BUFFY (1<<0)
+#define MUTT_SEL_MULTI (1<<1)
+#define MUTT_SEL_MAILBOX (1<<2) /* Use LastMailboxDir state */
+#define MUTT_SEL_FILE (1<<3) /* Use LastFileDir state */
+#define MUTT_SEL_DIRECTORY (1<<4) /* Allow directories to be selected
* via <view-file> */
/* flags for parse_spam_list */
diff --git a/mutt_socket.c b/mutt_socket.c
index 3e192072..898faa07 100644
--- a/mutt_socket.c
+++ b/mutt_socket.c
@@ -433,6 +433,22 @@ static int socket_connect (int fd, struct sockaddr* sa)
save_errno = 0;
+ if (SocketReceiveTimeout > 0)
+ {
+ struct timeval tv = { SocketReceiveTimeout, 0 };
+ if (setsockopt (fd, SOL_SOCKET, SO_RCVTIMEO, (char *)&tv, sizeof(tv)) < 0)
+ dprint (1, (debugfile, "socket_connect: error setting receive timeout (%s)\n",
+ strerror(errno)));
+ }
+
+ if (SocketSendTimeout > 0)
+ {
+ struct timeval tv = { SocketSendTimeout, 0 };
+ if (setsockopt (fd, SOL_SOCKET, SO_SNDTIMEO, (char *)&tv, sizeof(tv)) < 0)
+ dprint (1, (debugfile, "socket_connect: error setting send timeout (%s)\n",
+ strerror(errno)));
+ }
+
if (connect (fd, sa, sa_size) < 0)
{
save_errno = errno;
diff --git a/mutt_ssl.c b/mutt_ssl.c
index 4dc431db..4d272da2 100644
--- a/mutt_ssl.c
+++ b/mutt_ssl.c
@@ -92,7 +92,7 @@ static int ssl_socket_write (CONNECTION* conn, const char* buf, size_t len);
static int ssl_socket_poll (CONNECTION* conn, time_t wait_secs);
static int ssl_socket_open (CONNECTION * conn);
static int ssl_socket_close (CONNECTION * conn);
-static int tls_close (CONNECTION* conn);
+static int starttls_close (CONNECTION* conn);
static void ssl_err (sslsockdata *data, int err);
static void ssl_dprint_err_stack (void);
static int ssl_cache_trusted_cert (X509 *cert);
@@ -204,44 +204,33 @@ static void reset_allowed_proto_version_range (sslsockdata *ssldata)
#endif
}
-/* mutt_ssl_starttls: Negotiate TLS over an already opened connection.
- * TODO: Merge this code better with ssl_socket_open. */
-int mutt_ssl_starttls (CONNECTION* conn)
+/* mutt_ssl_setup_common: common code paths for Implicit TLS and in-band STARTTLS (STLS) modes */
+static int mutt_ssl_setup_common (CONNECTION *conn, long ssl_options)
{
- sslsockdata* ssldata;
+ sslsockdata *data;
int maxbits;
- long ssl_options = 0;
-
- if (mutt_socket_has_buffered_input (conn))
- {
- /* L10N:
- The server is not supposed to send data immediately after
- confirming STARTTLS. This warns the user that something
- weird is going on.
- */
- mutt_error _("Warning: clearing unexpected server data before TLS negotiation");
- mutt_sleep (0);
- mutt_socket_clear_buffered_input (conn);
- }
- if (ssl_init())
+ if (ssl_init ())
goto bail;
- ssldata = (sslsockdata*) safe_calloc (1, sizeof (sslsockdata));
- /* the ssl_use_xxx protocol options don't apply. We must use TLS in TLS.
+ data = (sslsockdata*) safe_calloc (1, sizeof (sslsockdata));
+ /* the ssl_use_sslxxx protocol options don't apply to starttls,
+ * we must use TLS in TLS, so we do not refactor these.
*
* However, we need to be able to negotiate amongst various TLS versions,
* which at present can only be done with the SSLv23_client_method;
* TLSv1_client_method gives us explicitly TLSv1.0, not 1.1 or 1.2 (True as
- * of OpenSSL 1.0.1c)
+ * of OpenSSL 1.0.1c ... 3.0.x)
*/
- if (! (ssldata->ctx = SSL_CTX_new (SSLv23_client_method())))
+ if (! (data->ctx = SSL_CTX_new (SSLv23_client_method())))
{
dprint (1, (debugfile, "mutt_ssl_starttls: Error allocating SSL_CTX\n"));
+ mutt_error (_("Unable to create SSL context"));
+ ssl_dprint_err_stack ();
goto bail_ssldata;
}
- reset_allowed_proto_version_range (ssldata);
+ reset_allowed_proto_version_range (data);
#ifdef SSL_OP_NO_TLSv1_3
if (!option(OPTTLSV1_3))
@@ -259,89 +248,112 @@ int mutt_ssl_starttls (CONNECTION* conn)
if (!option(OPTTLSV1))
ssl_options |= SSL_OP_NO_TLSv1;
#endif
- /* these are always set */
-#ifdef SSL_OP_NO_SSLv3
- ssl_options |= SSL_OP_NO_SSLv3;
-#endif
-#ifdef SSL_OP_NO_SSLv2
- ssl_options |= SSL_OP_NO_SSLv2;
-#endif
- if (! SSL_CTX_set_options(ssldata->ctx, ssl_options))
- {
- dprint(1, (debugfile, "mutt_ssl_starttls: Error setting options to %ld\n", ssl_options));
- goto bail_ctx;
- }
+ (void)SSL_CTX_set_options (data->ctx, ssl_options); /* would only return new values -> discard */
if (option (OPTSSLSYSTEMCERTS))
{
- if (! SSL_CTX_set_default_verify_paths (ssldata->ctx))
+ if (! SSL_CTX_set_default_verify_paths (data->ctx))
{
dprint (1, (debugfile, "mutt_ssl_starttls: Error setting default verify paths\n"));
goto bail_ctx;
}
}
- if (SslCertFile && !ssl_load_certificates (ssldata->ctx))
- dprint (1, (debugfile, "mutt_ssl_starttls: Error loading trusted certificates\n"));
+ if (SslCertFile && !ssl_load_certificates (data->ctx))
+ dprint (1, (debugfile, "mutt_ssl_setup_common: Error loading trusted certificates\n"));
- ssl_get_client_cert(ssldata, conn);
+ ssl_get_client_cert (data, conn);
if (SslCiphers)
{
- if (!SSL_CTX_set_cipher_list (ssldata->ctx, SslCiphers))
+ if (!SSL_CTX_set_cipher_list (data->ctx, SslCiphers))
{
- dprint (1, (debugfile, "mutt_ssl_starttls: Could not select preferred ciphers\n"));
+ dprint (1, (debugfile, "mutt_ssl_setup_common: Could not select preferred ciphers\n"));
goto bail_ctx;
}
}
- if (ssl_set_verify_partial (ssldata->ctx))
+ if (ssl_set_verify_partial (data->ctx))
{
mutt_error (_("Warning: error enabling ssl_verify_partial_chains"));
mutt_sleep (2);
}
- if (! (ssldata->ssl = SSL_new (ssldata->ctx)))
+ if (! (data->ssl = SSL_new (data->ctx)))
{
- dprint (1, (debugfile, "mutt_ssl_starttls: Error allocating SSL\n"));
+ dprint (1, (debugfile, "mutt_ssl_setup_common: Error allocating SSL\n"));
goto bail_ctx;
}
- if (SSL_set_fd (ssldata->ssl, conn->fd) != 1)
+ if (SSL_set_fd (data->ssl, conn->fd) != 1)
{
- dprint (1, (debugfile, "mutt_ssl_starttls: Error setting fd\n"));
+ dprint (1, (debugfile, "mutt_ssl_setup_common: Error setting fd\n"));
goto bail_ssl;
}
- if (ssl_negotiate (conn, ssldata))
+ if (ssl_negotiate (conn, data))
goto bail_ssl;
- ssldata->isopen = 1;
+ conn->ssf = SSL_CIPHER_get_bits (SSL_get_current_cipher (data->ssl),
+ &maxbits);
- /* hmm. watch out if we're starting TLS over any method other than raw. */
- conn->sockdata = ssldata;
- conn->conn_read = ssl_socket_read;
- conn->conn_write = ssl_socket_write;
- conn->conn_close = tls_close;
- conn->conn_poll = ssl_socket_poll;
+ data->isopen = 1;
- conn->ssf = SSL_CIPHER_get_bits (SSL_get_current_cipher (ssldata->ssl),
- &maxbits);
+ /* hmm. watch out if we're starting TLS over any method other than raw,
+ because close will reset to the raw_* methods. */
+ conn->sockdata = data;
+ /* success */
return 0;
bail_ssl:
- SSL_free (ssldata->ssl);
- ssldata->ssl = 0;
+ SSL_free (data->ssl);
+ data->ssl = 0;
bail_ctx:
- SSL_CTX_free (ssldata->ctx);
- ssldata->ctx = 0;
+ SSL_CTX_free (data->ctx);
+ data->ctx = 0;
bail_ssldata:
- FREE (&ssldata);
+ FREE (&data);
bail:
return -1;
}
+/* mutt_ssl_starttls: Negotiate TLS over an already opened connection. */
+int mutt_ssl_starttls (CONNECTION* conn)
+{
+ long ssl_options = 0;
+
+ if (mutt_socket_has_buffered_input (conn))
+ {
+ /* L10N:
+ The server is not supposed to send data immediately after
+ confirming STARTTLS. This warns the user that something
+ weird is going on.
+ */
+ mutt_error _("Warning: clearing unexpected server data before TLS negotiation");
+ mutt_sleep (0);
+ mutt_socket_clear_buffered_input (conn);
+ }
+
+ /* these are always set */
+#ifdef SSL_OP_NO_SSLv3
+ ssl_options |= SSL_OP_NO_SSLv3;
+#endif
+#ifdef SSL_OP_NO_SSLv2
+ ssl_options |= SSL_OP_NO_SSLv2;
+#endif
+
+ if (mutt_ssl_setup_common (conn, ssl_options))
+ return -1;
+
+ conn->conn_read = ssl_socket_read;
+ conn->conn_write = ssl_socket_write;
+ conn->conn_close = starttls_close;
+ conn->conn_poll = ssl_socket_poll;
+
+ return 0;
+}
+
/*
* OpenSSL library needs to be fed with sufficient entropy. On systems
* with /dev/urandom, this is done transparently by the library itself,
@@ -501,104 +513,28 @@ static int ssl_socket_poll (CONNECTION* conn, time_t wait_secs)
static int ssl_socket_open (CONNECTION * conn)
{
- sslsockdata *data;
- int maxbits;
+ long ssl_options = 0;
if (raw_socket_open (conn) < 0)
return -1;
- data = (sslsockdata *) safe_calloc (1, sizeof (sslsockdata));
- conn->sockdata = data;
-
- if (! (data->ctx = SSL_CTX_new (SSLv23_client_method ())))
- {
- /* L10N: an SSL context is a data structure returned by the OpenSSL
- * function SSL_CTX_new(). In this case it returned NULL: an
- * error condition.
- */
- mutt_error (_("Unable to create SSL context"));
- ssl_dprint_err_stack ();
- mutt_socket_close (conn);
- return -1;
- }
-
- reset_allowed_proto_version_range (data);
-
- /* disable SSL protocols as needed */
- if (!option(OPTTLSV1))
- {
- SSL_CTX_set_options(data->ctx, SSL_OP_NO_TLSv1);
- }
- /* TLSv1.1/1.2 support was added in OpenSSL 1.0.1, but some OS distros such
- * as Fedora 17 are on OpenSSL 1.0.0.
- */
-#ifdef SSL_OP_NO_TLSv1_1
- if (!option(OPTTLSV1_1))
- {
- SSL_CTX_set_options(data->ctx, SSL_OP_NO_TLSv1_1);
- }
-#endif
-#ifdef SSL_OP_NO_TLSv1_2
- if (!option(OPTTLSV1_2))
- {
- SSL_CTX_set_options(data->ctx, SSL_OP_NO_TLSv1_2);
- }
-#endif
-#ifdef SSL_OP_NO_TLSv1_3
- if (!option(OPTTLSV1_3))
- {
- SSL_CTX_set_options(data->ctx, SSL_OP_NO_TLSv1_3);
- }
-#endif
+ /* these are specific for the older Implicit SSL (SSL-wrapped)
+ mode and do not apply to STARTTLS, which requires TLS v1.0 or newer */
+#ifdef SSL_OP_NO_SSLv2
if (!option(OPTSSLV2))
- {
- SSL_CTX_set_options(data->ctx, SSL_OP_NO_SSLv2);
- }
+ ssl_options |= SSL_OP_NO_SSLv2;
+#endif
+#ifdef SSL_OP_NO_SSLv3
if (!option(OPTSSLV3))
- {
- SSL_CTX_set_options(data->ctx, SSL_OP_NO_SSLv3);
- }
-
- if (option (OPTSSLSYSTEMCERTS))
- {
- if (! SSL_CTX_set_default_verify_paths (data->ctx))
- {
- dprint (1, (debugfile, "ssl_socket_open: Error setting default verify paths\n"));
- mutt_socket_close (conn);
- return -1;
- }
- }
-
- if (SslCertFile && !ssl_load_certificates (data->ctx))
- dprint (1, (debugfile, "ssl_socket_open: Error loading trusted certificates\n"));
-
- ssl_get_client_cert(data, conn);
-
- if (SslCiphers)
- {
- SSL_CTX_set_cipher_list (data->ctx, SslCiphers);
- }
-
- if (ssl_set_verify_partial (data->ctx))
- {
- mutt_error (_("Warning: error enabling ssl_verify_partial_chains"));
- mutt_sleep (2);
- }
-
- data->ssl = SSL_new (data->ctx);
- SSL_set_fd (data->ssl, conn->fd);
+ ssl_options |= SSL_OP_NO_SSLv3;
+#endif
- if (ssl_negotiate(conn, data))
+ if (mutt_ssl_setup_common (conn, ssl_options))
{
mutt_socket_close (conn);
return -1;
}
- data->isopen = 1;
-
- conn->ssf = SSL_CIPHER_get_bits (SSL_get_current_cipher (data->ssl),
- &maxbits);
-
return 0;
}
@@ -699,7 +635,7 @@ static int ssl_socket_close (CONNECTION * conn)
return raw_socket_close (conn);
}
-static int tls_close (CONNECTION* conn)
+static int starttls_close (CONNECTION* conn)
{
int rc;
diff --git a/po/fr.po b/po/fr.po
index 4e887040..69abcbe7 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -33,10 +33,10 @@
# , fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Mutt 2.1.5-dev\n"
+"Project-Id-Version: Mutt 2.2.7-dev\n"
"Report-Msgid-Bugs-To: https://gitlab.com/muttmua/mutt/-/issues\n"
-"POT-Creation-Date: 2022-02-12 10:45-0800\n"
-"PO-Revision-Date: 2022-01-28 15:10+0100\n"
+"POT-Creation-Date: 2022-10-21 21:45+0200\n"
+"PO-Revision-Date: 2022-10-21 21:50+0200\n"
"Last-Translator: Vincent Lefevre <vincent@vinc17.net>\n"
"Language-Team: Vincent Lefevre <vincent@vinc17.net>\n"
"Language: fr\n"
@@ -44,7 +44,7 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: account.c:172
+#: account.c:181
#, c-format
msgid "Username at %s: "
msgstr "Nom d'utilisateur sur %s : "
@@ -54,7 +54,7 @@ msgstr "Nom d'utilisateur sur %s : "
#. Prompt for an account password when connecting.
#. %s@%s is user@host
#.
-#: account.c:216
+#: account.c:225
#, c-format
msgid "Password for %s@%s: "
msgstr "Mot de passe pour %s@%s : "
@@ -64,24 +64,24 @@ msgstr "Mot de passe pour %s@%s : "
#. $*_oauth_refresh_command defined. So the message does not mean "None of
#. your $*_oauth_refresh_command's are defined."
#.
-#: account.c:310
+#: account.c:319
msgid "mutt_account_getoauthbearer: No OAUTH refresh command defined"
msgstr ""
"mutt_account_getoauthbearer: Commande de rafraîchissement OAUTH non définie"
-#: account.c:316
+#: account.c:325
msgid "mutt_account_getoauthbearer: Unable to run refresh command"
msgstr ""
"mutt_account_getoauthbearer: Impossible d'exécuter la commande de "
"rafraîchissement"
-#: account.c:331
+#: account.c:340
msgid "mutt_account_getoauthbearer: Command returned empty string"
msgstr "mutt_account_getoauthbearer: La commande a renvoyé une chaîne vide"
#: addrbook.c:37 autocrypt/autocrypt_acct_menu.c:39 background.c:173
#: background.c:362 browser.c:46 history.c:75 listmenu.c:49 pager.c:1737
-#: pattern.c:2174 postpone.c:42 query.c:49 recvattach.c:59
+#: pattern.c:2173 postpone.c:42 query.c:49 recvattach.c:59
msgid "Exit"
msgstr "Quitter"
@@ -93,15 +93,15 @@ msgstr "Effacer"
msgid "Undel"
msgstr "Récup"
-#: addrbook.c:40 history.c:76 pattern.c:2175
+#: addrbook.c:40 history.c:76 pattern.c:2174
msgid "Select"
msgstr "Sélectionner"
#. L10N: localized names of RFC 2369 list operations
#: addrbook.c:41 autocrypt/autocrypt_acct_menu.c:62 background.c:175
-#: background.c:367 browser.c:49 compose.c:143 crypt-gpgme.c:4557
-#: curs_main.c:575 history.c:78 listmenu.c:61 mutt_ssl.c:1330
-#: mutt_ssl_gnutls.c:1064 pager.c:2144 pattern.c:2176 pgpkey.c:523
+#: background.c:367 browser.c:49 compose.c:143 crypt-gpgme.c:4558
+#: curs_main.c:575 history.c:78 listmenu.c:61 mutt_ssl.c:1359
+#: mutt_ssl_gnutls.c:1071 pager.c:2144 pattern.c:2175 pgpkey.c:526
#: postpone.c:45 query.c:54 recvattach.c:63 smime.c:466
msgid "Help"
msgstr "Aide"
@@ -173,7 +173,7 @@ msgid "Mailcap compose entry requires %%s"
msgstr "L'entrée compose de mailcap nécessite %%s"
#: attach.c:141 attach.c:274 background.c:335 commands.c:343 compose.c:1852
-#: compress.c:414 curs_lib.c:305 curs_lib.c:1064 sendlib.c:1479 sendlib.c:1517
+#: compress.c:414 curs_lib.c:305 curs_lib.c:1059 sendlib.c:1479 sendlib.c:1517
#: sendlib.c:1581
#, c-format
msgid "Error running \"%s\"!"
@@ -240,8 +240,8 @@ msgstr "---Attachement: %s: %s"
msgid "---Attachment: %s"
msgstr "---Attachement: %s"
-#: attach.c:642 attach.c:1012 attach.c:1069 handler.c:1371 pgpkey.c:575
-#: pgpkey.c:761
+#: attach.c:642 attach.c:1012 attach.c:1069 handler.c:1373 pgpkey.c:578
+#: pgpkey.c:764
msgid "Can't create filter"
msgstr "Impossible de créer le filtre"
@@ -258,7 +258,7 @@ msgstr "Je ne sais pas comment imprimer ceci !"
#. for some reason (e.g. autocrypt, header cache, bcache), but it
#. doesn't exist. The prompt is asking whether to create the directory
#.
-#: autocrypt/autocrypt.c:56 main.c:969 recvattach.c:644
+#: autocrypt/autocrypt.c:56 main.c:976 recvattach.c:644
#, c-format
msgid "%s does not exist. Create it?"
msgstr "%s n'existe pas. Le créer ?"
@@ -268,7 +268,7 @@ msgstr "%s n'existe pas. Le créer ?"
#. mkdir() on the directory %s failed. The second %s is the
#. error message returned by libc
#.
-#: autocrypt/autocrypt.c:65 main.c:973 recvattach.c:650
+#: autocrypt/autocrypt.c:65 main.c:980 recvattach.c:650
#, c-format
msgid "Can't create %s: %s."
msgstr "Impossible de créer %s : %s."
@@ -663,7 +663,7 @@ msgid "dazcun"
msgstr "datbun"
# , c-format
-#: browser.c:562 browser.c:1086 browser.c:1307
+#: browser.c:562 browser.c:1093 browser.c:1314
#, c-format
msgid "%s is not a directory."
msgstr "%s n'est pas un répertoire."
@@ -690,69 +690,69 @@ msgstr "Répertoire [%s], masque de fichier : %s"
msgid "Can't attach a directory!"
msgstr "Impossible d'attacher un répertoire !"
-#: browser.c:963 browser.c:1375 browser.c:1444
+#: browser.c:970 browser.c:1382 browser.c:1451
msgid "No files match the file mask"
msgstr "Aucun fichier ne correspond au masque"
-#: browser.c:1153
+#: browser.c:1160
msgid "Create is only supported for IMAP mailboxes"
msgstr "La création n'est supportée que pour les boîtes aux lettres IMAP"
-#: browser.c:1176
+#: browser.c:1183
msgid "Rename is only supported for IMAP mailboxes"
msgstr "Le renommage n'est supporté que pour les boîtes aux lettres IMAP"
-#: browser.c:1198
+#: browser.c:1205
msgid "Delete is only supported for IMAP mailboxes"
msgstr "La suppression n'est supportée que pour les boîtes aux lettres IMAP"
-#: browser.c:1208
+#: browser.c:1215
msgid "Cannot delete root folder"
msgstr "Impossible de supprimer le dossier racine"
-#: browser.c:1211
+#: browser.c:1218
#, c-format
msgid "Really delete mailbox \"%s\"?"
msgstr "Voulez-vous vraiment supprimer la boîte aux lettres \"%s\" ?"
-#: browser.c:1227
+#: browser.c:1234
msgid "Mailbox deleted."
msgstr "Boîte aux lettres supprimée."
-#: browser.c:1232
+#: browser.c:1239
msgid "Mailbox deletion failed."
msgstr "La suppression de la boîte aux lettres a échoué."
-#: browser.c:1235
+#: browser.c:1242
msgid "Mailbox not deleted."
msgstr "Boîte aux lettres non supprimée."
-#: browser.c:1256
+#: browser.c:1263
msgid "Chdir to: "
msgstr "Changement de répertoire vers : "
-#: browser.c:1296 browser.c:1369
+#: browser.c:1303 browser.c:1376
msgid "Error scanning directory."
msgstr "Erreur de lecture du répertoire."
-#: browser.c:1319
+#: browser.c:1326
msgid "File Mask: "
msgstr "Masque de fichier : "
-#: browser.c:1433
+#: browser.c:1440
msgid "New file name: "
msgstr "Nouveau nom de fichier : "
-#: browser.c:1469
+#: browser.c:1476
msgid "Can't view a directory"
msgstr "Impossible de visualiser un répertoire"
-#: browser.c:1485
+#: browser.c:1492
msgid "Error trying to view file"
msgstr "Erreur en essayant de visualiser le fichier"
#: buffy.c:402 buffy.c:426 color.c:1012 hook.c:74 hook.c:93 hook.c:356
-#: init.c:2160 init.c:2237 init.c:3037 keymap.c:898
+#: init.c:2162 init.c:2239 init.c:3039 keymap.c:898
msgid "too few arguments"
msgstr "pas assez d'arguments"
@@ -1154,7 +1154,7 @@ msgstr "Sécurité : "
#. * Since it shares the row with "Encrypt with:", it should not be longer
#. * than 15-20 character cells.
#.
-#: compose.c:123 crypt-gpgme.c:5393 pgp.c:1919 smime.c:2325
+#: compose.c:123 crypt-gpgme.c:5394 pgp.c:1919 smime.c:2326
msgid "Sign as: "
msgstr "Signer avec : "
@@ -1359,7 +1359,7 @@ msgstr "Vous êtes sur la dernière entrée."
msgid "You are on the first entry."
msgstr "Vous êtes sur la première entrée."
-#: compose.c:1215 send.c:2465
+#: compose.c:1215 send.c:2451
#, c-format
msgid "Bad IDN in \"%s\": '%s'"
msgstr "Mauvais IDN dans « %s » : '%s'"
@@ -1591,7 +1591,7 @@ msgstr "PGP en ligne est impossible avec format=flowed. Utiliser PGP/MIME ?"
msgid "Mail not sent: inline PGP can't be used with format=flowed."
msgstr "Message non envoyé : PGP en ligne est impossible avec format=flowed."
-#: crypt.c:211 cryptglue.c:124 pgpkey.c:567 pgpkey.c:754
+#: crypt.c:211 cryptglue.c:124 pgpkey.c:570 pgpkey.c:757
msgid "Invoking PGP..."
msgstr "Appel de PGP..."
@@ -1599,7 +1599,7 @@ msgstr "Appel de PGP..."
msgid "Message can't be sent inline. Revert to using PGP/MIME?"
msgstr "Le message ne peut pas être envoyé en ligne. Utiliser PGP/MIME ?"
-#: crypt.c:223 send.c:2430
+#: crypt.c:223 send.c:2416
msgid "Mail not sent."
msgstr "Message non envoyé."
@@ -1703,7 +1703,7 @@ msgstr "erreur lors du retour au début de l'objet : %s\n"
msgid "error reading data object: %s\n"
msgstr "erreur lors de la lecture de l'objet : %s\n"
-#: crypt-gpgme.c:791 crypt-gpgme.c:4205 pgpkey.c:561 pgpkey.c:742
+#: crypt-gpgme.c:791 crypt-gpgme.c:4206 pgpkey.c:564 pgpkey.c:745
msgid "Can't create temporary file"
msgstr "Impossible de créer le fichier temporaire"
@@ -1795,7 +1795,7 @@ msgstr ""
msgid "PKA verified signer's address is: "
msgstr "L'adresse du signataire vérifiée par PKA est : "
-#: crypt-gpgme.c:1538 crypt-gpgme.c:3895
+#: crypt-gpgme.c:1538 crypt-gpgme.c:3896
msgid "Fingerprint: "
msgstr "Empreinte : "
@@ -1819,7 +1819,7 @@ msgstr ""
"ATTENTION ! Il n'est PAS certain que la clé appartienne à la personne nommée "
"ci-dessus\n"
-#: crypt-gpgme.c:1639 crypt-gpgme.c:1644 crypt-gpgme.c:3890
+#: crypt-gpgme.c:1639 crypt-gpgme.c:1644 crypt-gpgme.c:3891
msgid "aka: "
msgstr "aka : "
@@ -2009,15 +2009,15 @@ msgstr "[-- Fin des données signées avec S/MIME --]\n"
msgid "[-- End of S/MIME encrypted data --]\n"
msgstr "[-- Fin des données chiffrées avec S/MIME --]\n"
-#: crypt-gpgme.c:3808
+#: crypt-gpgme.c:3809
msgid "[Can't display this user ID (unknown encoding)]"
msgstr "[Impossible d'afficher cet ID d'utilisateur (encodage inconnu)]"
-#: crypt-gpgme.c:3810
+#: crypt-gpgme.c:3811
msgid "[Can't display this user ID (invalid encoding)]"
msgstr "[Impossible d'afficher cet ID d'utilisateur (encodage invalide)]"
-#: crypt-gpgme.c:3815
+#: crypt-gpgme.c:3816
msgid "[Can't display this user ID (invalid DN)]"
msgstr "[Impossible d'afficher cet ID d'utilisateur (DN invalide)]"
@@ -2025,151 +2025,151 @@ msgstr "[Impossible d'afficher cet ID d'utilisateur (DN invalide)]"
#. * The following are the headers for the "verify key" output from the
#. * GPGME key selection menu (bound to "c" in the key selection menu).
#. * They will be automatically aligned.
-#: crypt-gpgme.c:3889
+#: crypt-gpgme.c:3890
msgid "Name: "
msgstr "Nom : "
# , c-format
-#: crypt-gpgme.c:3891
+#: crypt-gpgme.c:3892
msgid "Valid From: "
msgstr "From valide : "
# , c-format
-#: crypt-gpgme.c:3892
+#: crypt-gpgme.c:3893
msgid "Valid To: "
msgstr "To valide : "
-#: crypt-gpgme.c:3893
+#: crypt-gpgme.c:3894
msgid "Key Type: "
msgstr "Type de clé : "
-#: crypt-gpgme.c:3894
+#: crypt-gpgme.c:3895
msgid "Key Usage: "
msgstr "Utilisation : "
-#: crypt-gpgme.c:3896
+#: crypt-gpgme.c:3897
msgid "Serial-No: "
msgstr "N° de série : "
-#: crypt-gpgme.c:3897
+#: crypt-gpgme.c:3898
msgid "Issued By: "
msgstr "Publiée par : "
# , c-format
-#: crypt-gpgme.c:3898
+#: crypt-gpgme.c:3899
msgid "Subkey: "
msgstr "Sous-clé : "
# , c-format
#. L10N: comes after the Name or aka if the key is invalid
#. L10N: describes a subkey
-#: crypt-gpgme.c:3949 crypt-gpgme.c:4104
+#: crypt-gpgme.c:3950 crypt-gpgme.c:4105
msgid "[Invalid]"
msgstr "[Invalide]"
#. L10N: This is printed after "Key Type: " and looks like this:
#. * PGP, 2048 bit RSA
-#: crypt-gpgme.c:4001 crypt-gpgme.c:4160
+#: crypt-gpgme.c:4002 crypt-gpgme.c:4161
#, c-format
msgid "%s, %lu bit %s\n"
msgstr "%s, %lu bits, %s\n"
#. L10N: value in Key Usage: field
-#: crypt-gpgme.c:4010 crypt-gpgme.c:4168
+#: crypt-gpgme.c:4011 crypt-gpgme.c:4169
msgid "encryption"
msgstr "chiffrement"
-#: crypt-gpgme.c:4011 crypt-gpgme.c:4017 crypt-gpgme.c:4023 crypt-gpgme.c:4169
-#: crypt-gpgme.c:4174 crypt-gpgme.c:4179
+#: crypt-gpgme.c:4012 crypt-gpgme.c:4018 crypt-gpgme.c:4024 crypt-gpgme.c:4170
+#: crypt-gpgme.c:4175 crypt-gpgme.c:4180
msgid ", "
msgstr ", "
#. L10N: value in Key Usage: field
-#: crypt-gpgme.c:4016 crypt-gpgme.c:4173
+#: crypt-gpgme.c:4017 crypt-gpgme.c:4174
msgid "signing"
msgstr "signature"
#. L10N: value in Key Usage: field
-#: crypt-gpgme.c:4022 crypt-gpgme.c:4178
+#: crypt-gpgme.c:4023 crypt-gpgme.c:4179
msgid "certification"
msgstr "certification"
#. L10N: describes a subkey
-#: crypt-gpgme.c:4098
+#: crypt-gpgme.c:4099
msgid "[Revoked]"
msgstr "[Révoquée]"
#. L10N: describes a subkey
-#: crypt-gpgme.c:4110
+#: crypt-gpgme.c:4111
msgid "[Expired]"
msgstr "[Expirée]"
#. L10N: describes a subkey
-#: crypt-gpgme.c:4116
+#: crypt-gpgme.c:4117
msgid "[Disabled]"
msgstr "[Désactivée]"
# , c-format
-#: crypt-gpgme.c:4208
+#: crypt-gpgme.c:4209
msgid "Collecting data..."
msgstr "Récupération des données..."
# , c-format
-#: crypt-gpgme.c:4226
+#: crypt-gpgme.c:4227
#, c-format
msgid "Error finding issuer key: %s\n"
msgstr "Erreur en cherchant la clé de l'émetteur : %s\n"
-#: crypt-gpgme.c:4236
+#: crypt-gpgme.c:4237
msgid "Error: certification chain too long - stopping here\n"
msgstr "Erreur : chaîne de certification trop longue - on arrête ici\n"
# , c-format
-#: crypt-gpgme.c:4247 pgpkey.c:587
+#: crypt-gpgme.c:4248 pgpkey.c:590
#, c-format
msgid "Key ID: 0x%s"
msgstr "ID de la clé : 0x%s"
-#: crypt-gpgme.c:4365 crypt-gpgme.c:4418
+#: crypt-gpgme.c:4366 crypt-gpgme.c:4419
#, c-format
msgid "gpgme_op_keylist_start failed: %s"
msgstr "gpgme_op_keylist_start a échoué : %s"
-#: crypt-gpgme.c:4405 crypt-gpgme.c:4449 crypt-gpgme.c:5154
+#: crypt-gpgme.c:4406 crypt-gpgme.c:4450 crypt-gpgme.c:5155
#, c-format
msgid "gpgme_op_keylist_next failed: %s"
msgstr "gpgme_op_keylist_next a échoué : %s"
-#: crypt-gpgme.c:4520
+#: crypt-gpgme.c:4521
msgid "All matching keys are marked expired/revoked."
msgstr "Toutes les clés correspondantes sont marquées expirées/révoquées."
-#: crypt-gpgme.c:4549 mutt_ssl.c:1328 mutt_ssl_gnutls.c:1062 pgpkey.c:516
+#: crypt-gpgme.c:4550 mutt_ssl.c:1357 mutt_ssl_gnutls.c:1069 pgpkey.c:519
#: smime.c:461
msgid "Exit "
msgstr "Quitter "
-#: crypt-gpgme.c:4551 pgpkey.c:518 smime.c:463
+#: crypt-gpgme.c:4552 pgpkey.c:521 smime.c:463
msgid "Select "
msgstr "Sélectionner "
-#: crypt-gpgme.c:4554 pgpkey.c:521
+#: crypt-gpgme.c:4555 pgpkey.c:524
msgid "Check key "
msgstr "Vérifier clé "
-#: crypt-gpgme.c:4571
+#: crypt-gpgme.c:4572
msgid "PGP and S/MIME keys matching"
msgstr "clés PGP et S/MIME correspondant à"
-#: crypt-gpgme.c:4573
+#: crypt-gpgme.c:4574
msgid "PGP keys matching"
msgstr "clés PGP correspondant à"
-#: crypt-gpgme.c:4575
+#: crypt-gpgme.c:4576
msgid "S/MIME keys matching"
msgstr "clés S/MIME correspondant à"
-#: crypt-gpgme.c:4577
+#: crypt-gpgme.c:4578
msgid "keys matching"
msgstr "clés correspondant à"
@@ -2177,57 +2177,57 @@ msgstr "clés correspondant à"
#. %1$s is one of the previous four entries.
#. %2$s is an address.
#. e.g. "S/MIME keys matching <me@mutt.org>."
-#: crypt-gpgme.c:4584
+#: crypt-gpgme.c:4585
#, c-format
msgid "%s <%s>."
msgstr "%s <%s>."
#. L10N:
#. e.g. 'S/MIME keys matching "Michael Elkins".'
-#: crypt-gpgme.c:4588
+#: crypt-gpgme.c:4589
#, c-format
msgid "%s \"%s\"."
msgstr "%s \"%s\"."
-#: crypt-gpgme.c:4615 pgpkey.c:608
+#: crypt-gpgme.c:4616 pgpkey.c:611
msgid "This key can't be used: expired/disabled/revoked."
msgstr "Cette clé ne peut pas être utilisée : expirée/désactivée/révoquée."
-#: crypt-gpgme.c:4629 pgpkey.c:620 smime.c:494
+#: crypt-gpgme.c:4630 pgpkey.c:623 smime.c:494
msgid "ID is expired/disabled/revoked."
msgstr "L'ID est expiré/désactivé/révoqué."
-#: crypt-gpgme.c:4637 pgpkey.c:624 smime.c:497
+#: crypt-gpgme.c:4638 pgpkey.c:627 smime.c:497
msgid "ID has undefined validity."
msgstr "L'ID a une validité indéfinie."
-#: crypt-gpgme.c:4640 pgpkey.c:627
+#: crypt-gpgme.c:4641 pgpkey.c:630
msgid "ID is not valid."
msgstr "L'ID n'est pas valide."
-#: crypt-gpgme.c:4643 pgpkey.c:630
+#: crypt-gpgme.c:4644 pgpkey.c:633
msgid "ID is only marginally valid."
msgstr "L'ID n'est que peu valide."
# , c-format
-#: crypt-gpgme.c:4652 pgpkey.c:634 smime.c:504
+#: crypt-gpgme.c:4653 pgpkey.c:637 smime.c:504
#, c-format
msgid "%s Do you really want to use the key?"
msgstr "%s Voulez-vous vraiment utiliser la clé ?"
-#: crypt-gpgme.c:4719 crypt-gpgme.c:4836 pgpkey.c:841 pgpkey.c:969
+#: crypt-gpgme.c:4720 crypt-gpgme.c:4837 pgpkey.c:844 pgpkey.c:972
#, c-format
msgid "Looking for keys matching \"%s\"..."
msgstr "Recherche des clés correspondant à \"%s\"..."
# , c-format
-#: crypt-gpgme.c:4987 pgp.c:1405
+#: crypt-gpgme.c:4988 pgp.c:1405
#, c-format
msgid "Use keyID = \"%s\" for %s?"
msgstr "Utiliser keyID = \"%s\" pour %s ?"
# , c-format
-#: crypt-gpgme.c:5040 pgp.c:1454 smime.c:829 smime.c:907
+#: crypt-gpgme.c:5041 pgp.c:1454 smime.c:829 smime.c:907
#, c-format
msgid "Enter keyID for %s: "
msgstr "Entrez keyID pour %s : "
@@ -2236,15 +2236,15 @@ msgstr "Entrez keyID pour %s : "
#. mutt_gpgme_select_secret_key() tries to list all secret keys to choose
#. from. This error is displayed if no results were found.
#.
-#: crypt-gpgme.c:5163
+#: crypt-gpgme.c:5164
msgid "No secret keys found"
msgstr "Pas de clé secrète trouvée"
-#: crypt-gpgme.c:5197 pgpkey.c:731
+#: crypt-gpgme.c:5198 pgpkey.c:734
msgid "Please enter the key ID: "
msgstr "Veuillez entrer l'ID de la clé : "
-#: crypt-gpgme.c:5210
+#: crypt-gpgme.c:5211
#, c-format
msgid "Error exporting key: %s\n"
msgstr "Erreur à l'export de la clé : %s\n"
@@ -2254,20 +2254,20 @@ msgstr "Erreur à l'export de la clé : %s\n"
#. MIME description for exported (attached) keys.
#. You can translate this entry to a non-ASCII string (it will be encoded),
#. but it may be safer to keep it untranslated.
-#: crypt-gpgme.c:5230
+#: crypt-gpgme.c:5231
#, c-format
msgid "PGP Key 0x%s."
msgstr "Clé PGP 0x%s."
-#: crypt-gpgme.c:5272
+#: crypt-gpgme.c:5273
msgid "GPGME: OpenPGP protocol not available"
msgstr "GPGME : protocole OpenPGP non disponible"
-#: crypt-gpgme.c:5280
+#: crypt-gpgme.c:5281
msgid "GPGME: CMS protocol not available"
msgstr "GPGME : protocole CMS non disponible"
-#: crypt-gpgme.c:5320
+#: crypt-gpgme.c:5321
msgid "S/MIME (s)ign, sign (a)s, (p)gp, (c)lear, or (o)ppenc mode off? "
msgstr "Signer s/mime, En tant que, Pgp, Rien, ou mode Oppenc inactif ? "
@@ -2275,69 +2275,69 @@ msgstr "Signer s/mime, En tant que, Pgp, Rien, ou mode Oppenc inactif ? "
#. 'clear'. Please use a corresponding letter in your language.
#. Alternatively, you may duplicate the letter 'c' is translated to.
#. This comment also applies to the five following letter sequences.
-#: crypt-gpgme.c:5325
+#: crypt-gpgme.c:5326
msgid "sapfco"
msgstr "seprro"
-#: crypt-gpgme.c:5330
+#: crypt-gpgme.c:5331
msgid "PGP (s)ign, sign (a)s, s/(m)ime, (c)lear, or (o)ppenc mode off? "
msgstr "Signer pgp, En tant que, s/Mime, Rien, ou mode Oppenc inactif ? "
-#: crypt-gpgme.c:5331
+#: crypt-gpgme.c:5332
msgid "samfco"
msgstr "semrro"
-#: crypt-gpgme.c:5343
+#: crypt-gpgme.c:5344
msgid ""
"S/MIME (e)ncrypt, (s)ign, sign (a)s, (b)oth, (p)gp, (c)lear, or (o)ppenc "
"mode? "
msgstr ""
"Chiffrer s/mime, Signer, En tant que, les Deux, Pgp, Rien, ou mode Oppenc ? "
-#: crypt-gpgme.c:5344
+#: crypt-gpgme.c:5345
msgid "esabpfco"
msgstr "csedprro"
-#: crypt-gpgme.c:5349
+#: crypt-gpgme.c:5350
msgid ""
"PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, s/(m)ime, (c)lear, or (o)ppenc "
"mode? "
msgstr ""
"Chiffrer pgp, Signer, En tant que, les Deux, s/Mime, Rien, ou mode Oppenc ? "
-#: crypt-gpgme.c:5350
+#: crypt-gpgme.c:5351
msgid "esabmfco"
msgstr "csedmrro"
-#: crypt-gpgme.c:5361
+#: crypt-gpgme.c:5362
msgid "S/MIME (e)ncrypt, (s)ign, sign (a)s, (b)oth, (p)gp or (c)lear? "
msgstr "Chiffrer s/mime, Signer, En tant que, les Deux, Pgp, ou Rien ? "
-#: crypt-gpgme.c:5362
+#: crypt-gpgme.c:5363
msgid "esabpfc"
msgstr "csedprr"
-#: crypt-gpgme.c:5367
+#: crypt-gpgme.c:5368
msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, s/(m)ime or (c)lear? "
msgstr "Chiffrer pgp, Signer, En tant que, les Deux, s/Mime, ou Rien ? "
-#: crypt-gpgme.c:5368
+#: crypt-gpgme.c:5369
msgid "esabmfc"
msgstr "csedmrr"
-#: crypt-gpgme.c:5526
+#: crypt-gpgme.c:5527
msgid "Failed to verify sender"
msgstr "Impossible de vérifier l'expéditeur"
-#: crypt-gpgme.c:5529
+#: crypt-gpgme.c:5530
msgid "Failed to figure out sender"
msgstr "Impossible de trouver l'expéditeur"
-#: curs_lib.c:325
+#: curs_lib.c:319
msgid "yes"
msgstr "oui"
-#: curs_lib.c:326
+#: curs_lib.c:320
msgid "no"
msgstr "non"
@@ -2353,45 +2353,45 @@ msgstr "non"
#. the prompt, where %s is the name of the configuration
#. variable.
#.
-#: curs_lib.c:484
+#: curs_lib.c:478
#, c-format
msgid "See $%s for more information."
msgstr "Voir $%s pour plus d'information."
-#: curs_lib.c:538
+#: curs_lib.c:532
msgid "Exit Mutt?"
msgstr "Quitter Mutt ?"
-#: curs_lib.c:543 curs_main.c:1095 curs_main.c:1525
+#: curs_lib.c:537 curs_main.c:1099 curs_main.c:1529
msgid "There are $background_edit sessions. Really quit Mutt?"
msgstr ""
"Il y a des sessions $background_edit. Voulez-vous vraiment quitter Mutt ?"
-#: curs_lib.c:613
+#: curs_lib.c:607
msgid "Error History is disabled."
msgstr "L'historique des erreurs est désactivé."
-#: curs_lib.c:619
+#: curs_lib.c:613
msgid "Error History is currently being shown."
msgstr "L'historique des erreurs est actuellement affiché."
-#: curs_lib.c:634
+#: curs_lib.c:628
msgid "Error History"
msgstr "Historique des erreurs"
-#: curs_lib.c:1015 mutt_socket.c:696 mutt_ssl.c:638
+#: curs_lib.c:1010 mutt_socket.c:696 mutt_ssl.c:664
msgid "unknown error"
msgstr "erreur inconnue"
-#: curs_lib.c:1035
+#: curs_lib.c:1030
msgid "Press any key to continue..."
msgstr "Appuyez sur une touche pour continuer..."
-#: curs_lib.c:1083
+#: curs_lib.c:1078
msgid " ('?' for list): "
msgstr " ('?' pour avoir la liste) : "
-#: curs_main.c:67 curs_main.c:852
+#: curs_main.c:67 curs_main.c:856
msgid "No mailbox is open."
msgstr "Aucune boîte aux lettres n'est ouverte."
@@ -2473,213 +2473,213 @@ msgstr "Nouveau(x) message(s) dans cette boîte aux lettres."
msgid "Mailbox was externally modified."
msgstr "La boîte aux lettres a été modifiée extérieurement."
-#: curs_main.c:859
+#: curs_main.c:863
msgid "No tagged messages."
msgstr "Pas de messages marqués."
# , c-format
-#: curs_main.c:863 menu.c:1114
+#: curs_main.c:867 menu.c:1118
msgid "Nothing to do."
msgstr "Rien à faire."
-#: curs_main.c:943
+#: curs_main.c:947
msgid "Jump to message: "
msgstr "Aller au message : "
-#: curs_main.c:956
+#: curs_main.c:960
msgid "Argument must be a message number."
msgstr "L'argument doit être un numéro de message."
-#: curs_main.c:988
+#: curs_main.c:992
msgid "That message is not visible."
msgstr "Ce message n'est pas visible."
-#: curs_main.c:991
+#: curs_main.c:995
msgid "Invalid message number."
msgstr "Numéro de message invalide."
#. L10N: CHECK_ACL
-#: curs_main.c:1005 curs_main.c:2230 pager.c:2792
+#: curs_main.c:1009 curs_main.c:2234 pager.c:2796
msgid "Cannot delete message(s)"
msgstr "Impossible d'effacer le(s) message(s)"
-#: curs_main.c:1008
+#: curs_main.c:1012
msgid "Delete messages matching: "
msgstr "Effacer les messages correspondant à : "
-#: curs_main.c:1036
+#: curs_main.c:1040
msgid "No limit pattern is in effect."
msgstr "Aucun motif de limite n'est en vigueur."
# , c-format
#. L10N: ask for a limit to apply
-#: curs_main.c:1041
+#: curs_main.c:1045
#, c-format
msgid "Limit: %s"
msgstr "Limite : %s"
-#: curs_main.c:1051
+#: curs_main.c:1055
msgid "Limit to messages matching: "
msgstr "Limiter aux messages correspondant à : "
-#: curs_main.c:1072
+#: curs_main.c:1076
msgid "To view all messages, limit to \"all\"."
msgstr "Pour voir tous les messages, limiter à \"all\"."
-#: curs_main.c:1084 pager.c:2246
+#: curs_main.c:1088 pager.c:2250
msgid "Quit Mutt?"
msgstr "Quitter Mutt ?"
-#: curs_main.c:1188
+#: curs_main.c:1192
msgid "Tag messages matching: "
msgstr "Marquer les messages correspondant à : "
#. L10N: CHECK_ACL
-#: curs_main.c:1198 curs_main.c:2586 pager.c:3045
+#: curs_main.c:1202 curs_main.c:2590 pager.c:3049
msgid "Cannot undelete message(s)"
msgstr "Impossible de récupérer le(s) message(s)"
-#: curs_main.c:1200
+#: curs_main.c:1204
msgid "Undelete messages matching: "
msgstr "Récupérer les messages correspondant à : "
-#: curs_main.c:1208
+#: curs_main.c:1212
msgid "Untag messages matching: "
msgstr "Démarquer les messages correspondant à : "
-#: curs_main.c:1239
+#: curs_main.c:1243
msgid "Logged out of IMAP servers."
msgstr "Déconnecté des serveurs IMAP."
-#: curs_main.c:1337
+#: curs_main.c:1341
msgid "Open mailbox in read-only mode"
msgstr "Ouvrir la boîte aux lettres en lecture seule"
-#: curs_main.c:1339
+#: curs_main.c:1343
msgid "Open mailbox"
msgstr "Ouvrir la boîte aux lettres"
-#: curs_main.c:1348
+#: curs_main.c:1352
msgid "No mailboxes have new mail"
msgstr "Pas de boîte aux lettres avec des nouveaux messages"
# , c-format
-#: curs_main.c:1382 mx.c:535 mx.c:636
+#: curs_main.c:1386 mx.c:535 mx.c:636
#, c-format
msgid "%s is not a mailbox."
msgstr "%s n'est pas une boîte aux lettres."
-#: curs_main.c:1520
+#: curs_main.c:1524
msgid "Exit Mutt without saving?"
msgstr "Quitter Mutt sans sauvegarder ?"
-#: curs_main.c:1547 curs_main.c:1583 curs_main.c:2064 curs_main.c:2096
+#: curs_main.c:1551 curs_main.c:1587 curs_main.c:2068 curs_main.c:2100
#: flags.c:312 thread.c:1207 thread.c:1263 thread.c:1331
msgid "Threading is not enabled."
msgstr "L'affichage des discussions n'est pas activé."
-#: curs_main.c:1559
+#: curs_main.c:1563
msgid "Thread broken"
msgstr "Discussion cassée"
-#: curs_main.c:1570
+#: curs_main.c:1574
msgid "Thread cannot be broken, message is not part of a thread"
msgstr ""
"La discussion ne peut pas être cassée, le message n'est pas dans une "
"discussion"
#. L10N: CHECK_ACL
-#: curs_main.c:1580
+#: curs_main.c:1584
msgid "Cannot link threads"
msgstr "Impossible de lier les discussions"
-#: curs_main.c:1585
+#: curs_main.c:1589
msgid "No Message-ID: header available to link thread"
msgstr "Pas d'en-tête Message-ID: disponible pour lier la discussion"
-#: curs_main.c:1587
+#: curs_main.c:1591
msgid "First, please tag a message to be linked here"
msgstr "D'abord, veuillez marquer un message à lier ici"
-#: curs_main.c:1599
+#: curs_main.c:1603
msgid "Threads linked"
msgstr "Discussions liées"
-#: curs_main.c:1602
+#: curs_main.c:1606
msgid "No thread linked"
msgstr "Pas de discussion liée"
-#: curs_main.c:1638 curs_main.c:1663
+#: curs_main.c:1642 curs_main.c:1667
msgid "You are on the last message."
msgstr "Vous êtes sur le dernier message."
-#: curs_main.c:1645 curs_main.c:1689
+#: curs_main.c:1649 curs_main.c:1693
msgid "No undeleted messages."
msgstr "Pas de message non effacé."
-#: curs_main.c:1682 curs_main.c:1706
+#: curs_main.c:1686 curs_main.c:1710
msgid "You are on the first message."
msgstr "Vous êtes sur le premier message."
-#: curs_main.c:1794 menu.c:922 pager.c:2365 pattern.c:2104
+#: curs_main.c:1798 menu.c:922 pager.c:2369 pattern.c:2103
msgid "Search wrapped to top."
msgstr "La recherche est repartie du début."
-#: curs_main.c:1803 pager.c:2387 pattern.c:2115
+#: curs_main.c:1807 pager.c:2391 pattern.c:2114
msgid "Search wrapped to bottom."
msgstr "La recherche est repartie de la fin."
-#: curs_main.c:1847
+#: curs_main.c:1851
msgid "No new messages in this limited view."
msgstr "Pas de nouveaux messages dans cette vue limitée."
-#: curs_main.c:1849
+#: curs_main.c:1853
msgid "No new messages."
msgstr "Pas de nouveaux messages."
-#: curs_main.c:1854
+#: curs_main.c:1858
msgid "No unread messages in this limited view."
msgstr "Pas de messages non lus dans cette vue limitée."
-#: curs_main.c:1856
+#: curs_main.c:1860
msgid "No unread messages."
msgstr "Pas de messages non lus."
#. L10N: CHECK_ACL
-#: curs_main.c:1874
+#: curs_main.c:1878
msgid "Cannot flag message"
msgstr "Impossible de marquer le message comme important"
#. L10N: CHECK_ACL
-#: curs_main.c:1912 pager.c:3008
+#: curs_main.c:1916 pager.c:3012
msgid "Cannot toggle new"
msgstr "Impossible d'inverser l'indic. 'nouveau'"
-#: curs_main.c:1997
+#: curs_main.c:2001
msgid "No more threads."
msgstr "Pas d'autres discussions."
-#: curs_main.c:1999
+#: curs_main.c:2003
msgid "You are on the first thread."
msgstr "Vous êtes sur la première discussion."
-#: curs_main.c:2082
+#: curs_main.c:2086
msgid "Thread contains unread messages."
msgstr "Cette discussion contient des messages non-lus."
#. L10N: CHECK_ACL
-#: curs_main.c:2186 pager.c:2759
+#: curs_main.c:2190 pager.c:2763
msgid "Cannot delete message"
msgstr "Impossible d'effacer le message"
#. L10N: CHECK_ACL
-#: curs_main.c:2267
+#: curs_main.c:2271
msgid "Cannot edit message"
msgstr "Impossible d'éditer le message"
#. L10N: This is displayed when the x-label on one or more
#. * messages is edited.
-#: curs_main.c:2304 pager.c:3096
+#: curs_main.c:2308 pager.c:3100
#, c-format
msgid "%d labels changed."
msgstr "%d labels ont changé."
@@ -2687,12 +2687,12 @@ msgstr "%d labels ont changé."
#. L10N: This is displayed when editing an x-label, but no messages
#. * were updated. Possibly due to canceling at the prompt or if the new
#. * label is the same as the old label.
-#: curs_main.c:2311 pager.c:3100
+#: curs_main.c:2315 pager.c:3104
msgid "No labels changed."
msgstr "Aucun label n'a changé."
#. L10N: CHECK_ACL
-#: curs_main.c:2404
+#: curs_main.c:2408
msgid "Cannot mark message(s) as read"
msgstr "Impossible de marquer le(s) message(s) comme lu(s)"
@@ -2700,32 +2700,32 @@ msgstr "Impossible de marquer le(s) message(s) comme lu(s)"
#. L10N: This is the prompt for <mark-message>. Whatever they
#. enter will be prefixed by $mark_macro_prefix and will become
#. a macro hotkey to jump to the currently selected message.
-#: curs_main.c:2440
+#: curs_main.c:2444
msgid "Enter macro stroke: "
msgstr "Entrez les touches de la macro : "
#. L10N: "message hotkey" is the key bindings menu description of a
#. macro created by <mark-message>.
-#: curs_main.c:2448
+#: curs_main.c:2452
msgid "message hotkey"
msgstr "hotkey (marque-page)"
#. L10N: This is echoed after <mark-message> creates a new hotkey
#. macro. %s is the hotkey string ($mark_macro_prefix followed
#. by whatever they typed at the prompt.)
-#: curs_main.c:2453
+#: curs_main.c:2457
#, c-format
msgid "Message bound to %s."
msgstr "Message lié à %s."
#. L10N: This error is printed if <mark-message> cannot find a
#. Message-ID for the currently selected message in the index.
-#: curs_main.c:2461
+#: curs_main.c:2465
msgid "No message ID to macro."
msgstr "Pas de Message-ID pour la macro."
#. L10N: CHECK_ACL
-#: curs_main.c:2556 pager.c:3028
+#: curs_main.c:2560 pager.c:3032
msgid "Cannot undelete message"
msgstr "Impossible de récupérer le message"
@@ -2865,129 +2865,129 @@ msgstr "Positionner l'indicateur"
msgid "Clear flag"
msgstr "Effacer l'indicateur"
-#: handler.c:1143
+#: handler.c:1145
msgid "[-- Error: Could not display any parts of Multipart/Alternative! --]\n"
msgstr ""
"[-- Erreur : Aucune partie du Multipart/Alternative n'a pu être affichée ! "
"--]\n"
# , c-format
-#: handler.c:1259
+#: handler.c:1261
#, c-format
msgid "[-- Attachment #%d"
msgstr "[-- Attachement #%d"
# , c-format
-#: handler.c:1271
+#: handler.c:1273
#, c-format
msgid "[-- Type: %s/%s, Encoding: %s, Size: %s --]\n"
msgstr "[-- Type : %s/%s, Codage : %s, Taille : %s --]\n"
-#: handler.c:1287
+#: handler.c:1289
msgid "One or more parts of this message could not be displayed"
msgstr "Une ou plusieurs parties de ce message n'ont pas pu être affichées"
# , c-format
-#: handler.c:1342
+#: handler.c:1344
#, c-format
msgid "[-- Autoview using %s --]\n"
msgstr "[-- Visualisation automatique en utilisant %s --]\n"
# , c-format
-#: handler.c:1343
+#: handler.c:1345
#, c-format
msgid "Invoking autoview command: %s"
msgstr "Invocation de la commande de visualisation automatique : %s"
# , c-format
-#: handler.c:1375
+#: handler.c:1377
#, c-format
msgid "[-- Can't run %s. --]\n"
msgstr "[-- Impossible d'exécuter %s. --]\n"
# , c-format
-#: handler.c:1410
+#: handler.c:1412
#, c-format
msgid "[-- Autoview stderr of %s --]\n"
msgstr "[-- Visualisation automatique stderr de %s --]\n"
-#: handler.c:1464
+#: handler.c:1466
msgid "[-- Error: message/external-body has no access-type parameter --]\n"
msgstr ""
"[-- Erreur : message/external-body n'a pas de paramètre access-type --]\n"
# , c-format
-#: handler.c:1485
+#: handler.c:1487
#, c-format
msgid "[-- This %s/%s attachment "
msgstr "[-- Cet attachement %s/%s "
# , c-format
-#: handler.c:1492
+#: handler.c:1494
#, c-format
msgid "(size %s bytes) "
msgstr "(taille %s octets) "
-#: handler.c:1494
+#: handler.c:1496
msgid "has been deleted --]\n"
msgstr "a été effacé --]\n"
# , c-format
-#: handler.c:1499
+#: handler.c:1501
#, c-format
msgid "[-- on %s --]\n"
msgstr "[-- le %s --]\n"
# , c-format
-#: handler.c:1504
+#: handler.c:1506
#, c-format
msgid "[-- name: %s --]\n"
msgstr "[-- nom : %s --]\n"
# , c-format
-#: handler.c:1517 handler.c:1533
+#: handler.c:1519 handler.c:1535
#, c-format
msgid "[-- This %s/%s attachment is not included, --]\n"
msgstr "[-- Cet attachement %s/%s n'est pas inclus, --]\n"
-#: handler.c:1519
+#: handler.c:1521
msgid ""
"[-- and the indicated external source has --]\n"
"[-- expired. --]\n"
msgstr "[-- et la source externe indiquée a expiré. --]\n"
# , c-format
-#: handler.c:1537
+#: handler.c:1539
#, c-format
msgid "[-- and the indicated access-type %s is unsupported --]\n"
msgstr "[-- et l'access-type %s indiqué n'est pas supporté --]\n"
-#: handler.c:1644
+#: handler.c:1646
msgid "Unable to open temporary file!"
msgstr "Impossible d'ouvrir le fichier temporaire !"
-#: handler.c:1836
+#: handler.c:1838
msgid "Error: multipart/signed has no protocol."
msgstr "Erreur : multipart/signed n'a pas de protocole."
# , c-format
-#: handler.c:1892
+#: handler.c:1894
msgid "[-- This is an attachment "
msgstr "[-- Ceci est un attachement "
# , c-format
-#: handler.c:1894
+#: handler.c:1896
#, c-format
msgid "[-- %s/%s is unsupported "
msgstr "[-- %s/%s n'est pas disponible "
# , c-format
-#: handler.c:1901
+#: handler.c:1903
#, c-format
msgid "(use '%s' to view this part)"
msgstr "(utilisez '%s' pour voir cette partie)"
-#: handler.c:1903
+#: handler.c:1905
msgid "(need 'view-attachments' bound to key!)"
msgstr "(la fonction 'view-attachments' doit être affectée à une touche !)"
@@ -3122,7 +3122,7 @@ msgstr "La connexion a échoué."
#. %s is the authentication type, such as XOAUTH2 or OAUTHBEARER
#.
#: imap/auth_oauth.c:39 imap/auth_sasl.c:109 imap/auth_sasl_gnu.c:55
-#: pop_auth.c:223 pop_auth.c:430 smtp.c:674 smtp.c:770 smtp.c:839
+#: pop_auth.c:223 pop_auth.c:430 smtp.c:674 smtp.c:770 smtp.c:861
#, c-format
msgid "Authenticating (%s)..."
msgstr "Authentification (%s)..."
@@ -3264,78 +3264,78 @@ msgid "Error opening mailbox"
msgstr "Erreur à l'ouverture de la boîte aux lettres"
# , c-format
-#: imap/imap.c:1053 imap/imap.c:2568 imap/message.c:1584 muttlib.c:2022
+#: imap/imap.c:1058 imap/imap.c:2573 imap/message.c:1584 muttlib.c:2044
#, c-format
msgid "Create %s?"
msgstr "Créer %s ?"
-#: imap/imap.c:1481
+#: imap/imap.c:1486
msgid "Expunge failed"
msgstr "Expunge a échoué"
# , c-format
-#: imap/imap.c:1494
+#: imap/imap.c:1499
#, c-format
msgid "Marking %d messages deleted..."
msgstr "Marquage de %d messages à effacer..."
# , c-format
-#: imap/imap.c:1551
+#: imap/imap.c:1556
#, c-format
msgid "Saving changed messages... [%d/%d]"
msgstr "Sauvegarde des messages changés... [%d/%d]"
-#: imap/imap.c:1632
+#: imap/imap.c:1637
msgid "Error saving flags. Close anyway?"
msgstr "Erreur en sauvant les indicateurs. Fermer tout de même ?"
-#: imap/imap.c:1640
+#: imap/imap.c:1645
msgid "Error saving flags"
msgstr "Erreur en sauvant les indicateurs"
-#: imap/imap.c:1664
+#: imap/imap.c:1669
msgid "Expunging messages from server..."
msgstr "Effacement des messages sur le serveur..."
-#: imap/imap.c:1670
+#: imap/imap.c:1675
msgid "imap_sync_mailbox: EXPUNGE failed"
msgstr "imap_sync_mailbox : EXPUNGE a échoué"
-#: imap/imap.c:2212
+#: imap/imap.c:2217
#, c-format
msgid "Header search without header name: %s"
msgstr "Recherche d'en-tête sans nom d'en-tête : %s"
-#: imap/imap.c:2281
+#: imap/imap.c:2286
msgid "Bad mailbox name"
msgstr "Mauvaise boîte aux lettres"
# , c-format
-#: imap/imap.c:2300
+#: imap/imap.c:2305
#, c-format
msgid "Subscribing to %s..."
msgstr "Abonnement à %s..."
# , c-format
-#: imap/imap.c:2302
+#: imap/imap.c:2307
#, c-format
msgid "Unsubscribing from %s..."
msgstr "Désabonnement de %s..."
# , c-format
-#: imap/imap.c:2312
+#: imap/imap.c:2317
#, c-format
msgid "Subscribed to %s"
msgstr "Abonné à %s"
# , c-format
-#: imap/imap.c:2314
+#: imap/imap.c:2319
#, c-format
msgid "Unsubscribed from %s"
msgstr "Désabonné de %s"
# , c-format
-#: imap/imap.c:2553 imap/message.c:1548
+#: imap/imap.c:2558 imap/message.c:1548
#, c-format
msgid "Copying %d messages to %s..."
msgstr "Copie de %d messages dans %s..."
@@ -3385,15 +3385,15 @@ msgid "Could not create temporary file %s"
msgstr "Impossible de créer le fichier temporaire %s"
# , c-format
-#: imap/message.c:897 pop.c:309
+#: imap/message.c:897 pop.c:310
msgid "Fetching message headers..."
msgstr "Récupération des en-têtes des messages..."
-#: imap/message.c:1113 imap/message.c:1192 pop.c:603
+#: imap/message.c:1113 imap/message.c:1192 pop.c:623
msgid "Fetching message..."
msgstr "Récupération du message..."
-#: imap/message.c:1177 pop.c:598
+#: imap/message.c:1177 pop.c:618
msgid "The message index is incorrect. Try reopening the mailbox."
msgstr ""
"L'index du message est incorrect. Essayez de rouvrir la boîte aux lettres."
@@ -3408,11 +3408,11 @@ msgstr "Chargement du message..."
msgid "Copying message %d to %s..."
msgstr "Copie du message %d dans %s..."
-#: imap/util.c:500
+#: imap/util.c:501
msgid "Continue?"
msgstr "Continuer ?"
-#: init.c:60 init.c:2319 pager.c:58
+#: init.c:60 init.c:2321 pager.c:58
msgid "Not available in this menu."
msgstr "Non disponible dans ce menu."
@@ -3485,112 +3485,112 @@ msgid "mutt_restore_default(%s): error in regexp: %s\n"
msgstr "mutt_restore_default(%s) : erreur dans l'expression rationnelle : %s\n"
# , c-format
-#: init.c:2197 init.c:2223 init.c:2366
+#: init.c:2199 init.c:2225 init.c:2368
#, c-format
msgid "%s is unset"
msgstr "%s n'est pas positionné"
# , c-format
-#: init.c:2296 init.c:2413
+#: init.c:2298 init.c:2415
#, c-format
msgid "%s: unknown variable"
msgstr "%s : variable inconnue"
-#: init.c:2305
+#: init.c:2307
msgid "prefix is illegal with reset"
msgstr "ce préfixe est illégal avec reset"
-#: init.c:2311
+#: init.c:2313
msgid "value is illegal with reset"
msgstr "cette valeur est illégale avec reset"
-#: init.c:2346 init.c:2358
+#: init.c:2348 init.c:2360
msgid "Usage: set variable=yes|no"
msgstr "Usage : set variable=yes|no"
# , c-format
-#: init.c:2366
+#: init.c:2368
#, c-format
msgid "%s is set"
msgstr "%s est positionné"
# , c-format
-#: init.c:2494
+#: init.c:2496
#, c-format
msgid "Invalid value for option %s: \"%s\""
msgstr "Valeur invalide pour l'option %s : \"%s\""
# , c-format
-#: init.c:2637
+#: init.c:2639
#, c-format
msgid "%s: invalid mailbox type"
msgstr "%s : type de boîte aux lettres invalide"
# , c-format
-#: init.c:2667 init.c:2730
+#: init.c:2669 init.c:2732
#, c-format
msgid "%s: invalid value (%s)"
msgstr "%s : valeur invalide (%s)"
-#: init.c:2668 init.c:2731
+#: init.c:2670 init.c:2733
msgid "format error"
msgstr "erreur de format"
-#: init.c:2668 init.c:2731
+#: init.c:2670 init.c:2733
msgid "number overflow"
msgstr "nombre trop grand"
# , c-format
-#: init.c:2765
+#: init.c:2767
#, c-format
msgid "%s: invalid value"
msgstr "%s : valeur invalide"
# , c-format
-#: init.c:2812
+#: init.c:2814
#, c-format
msgid "%s: Unknown type."
msgstr "%s : type inconnu."
# , c-format
-#: init.c:2839
+#: init.c:2841
#, c-format
msgid "%s: unknown type"
msgstr "%s : type inconnu"
# , c-format
-#: init.c:2919
+#: init.c:2921
#, c-format
msgid "Error in %s, line %d: %s"
msgstr "Erreur dans %s, ligne %d : %s"
# , c-format
-#: init.c:2943
+#: init.c:2945
#, c-format
msgid "source: errors in %s"
msgstr "source : erreurs dans %s"
-#: init.c:2944
+#: init.c:2946
#, c-format
msgid "source: reading aborted due to too many errors in %s"
msgstr "source : lecture interrompue car trop d'erreurs dans %s"
# , c-format
-#: init.c:2962 init.c:2985
+#: init.c:2964 init.c:2987
#, c-format
msgid "source: error at %s"
msgstr "source : erreur dans %s"
-#: init.c:2967
+#: init.c:2969
msgid "run: too many arguments"
msgstr "run : trop d'arguments"
-#: init.c:2990
+#: init.c:2992
msgid "source: too many arguments"
msgstr "source : trop d'arguments"
# , c-format
-#: init.c:3096
+#: init.c:3098
#, c-format
msgid "%s: unknown command"
msgstr "%s : commande inconnue"
@@ -3606,34 +3606,34 @@ msgstr "%s : commande inconnue"
#. '<Space>' by default. If no keys are bound to <view-file>
#. then %s will print the function name: '<view-file>'.
#.
-#: init.c:3346
+#: init.c:3348
#, c-format
msgid "Use '%s' to select a directory"
msgstr "Utilisez '%s' pour sélectionner un répertoire"
# , c-format
-#: init.c:3678
+#: init.c:3680
#, c-format
msgid "Error in command line: %s\n"
msgstr "Erreur dans la ligne de commande : %s\n"
-#: init.c:3782
+#: init.c:3784
msgid "unable to determine home directory"
msgstr "impossible de déterminer le répertoire personnel"
-#: init.c:3790
+#: init.c:3792
msgid "unable to determine username"
msgstr "impossible de déterminer le nom d'utilisateur"
-#: init.c:3825
+#: init.c:3827
msgid "unable to determine nodename via uname()"
msgstr "impossible de déterminer nodename via uname()"
-#: init.c:4064
+#: init.c:4066
msgid "-group: no group name"
msgstr "-group: pas de nom de groupe"
-#: init.c:4074
+#: init.c:4076
msgid "out of arguments"
msgstr "pas assez d'arguments"
@@ -3689,14 +3689,14 @@ msgstr "----- Fin du message transféré -----"
#. can interfere with testing, so be sure to test with $header_cache
#. unset.
#.
-#: init.h:3285
+#: init.h:3293
msgid "^(re)(\\[[0-9]+\\])*:[ \t]*"
msgstr "^(re)(\\[[0-9]+\\])*:[ \t]*"
#. L10N:
#. $status_format default value
#.
-#: init.h:4464
+#: init.h:4479
msgid ""
"-%r-Mutt: %f [Msgs:%?M?%M/?%m%?n? New:%n?%?o? Old:%o?%?d? Del:%d?%?F? Flag:"
"%F?%?t? Tag:%t?%?p? Post:%p?%?b? Inc:%b?%?B? Back:%B?%?l? %l?]---(%s/%?T?%T/?"
@@ -3709,14 +3709,14 @@ msgstr ""
#. L10N:
#. $ts_icon_format default value
#.
-#: init.h:4668
+#: init.h:4683
msgid "M%?n?AIL&ail?"
msgstr "C%?n?OURRIER&ourrier?"
#. L10N:
#. $ts_status_format default value
#.
-#: init.h:4685
+#: init.h:4700
msgid "Mutt with %?m?%m messages&no messages?%?n? [%n NEW]?"
msgstr "Mutt avec %?m?%m messages&aucun message?%?n? [%n NOUV.]?"
@@ -4009,29 +4009,29 @@ msgstr ""
"\n"
"Options de compilation :"
-#: main.c:607
+#: main.c:614
msgid "Error initializing terminal."
msgstr "Erreur d'initialisation du terminal."
# , c-format
-#: main.c:765
+#: main.c:772
#, c-format
msgid "Debugging at level %d.\n"
msgstr "Débuggage au niveau %d.\n"
-#: main.c:767
+#: main.c:774
msgid "DEBUG was not defined during compilation. Ignored.\n"
msgstr "DEBUG n'a pas été défini à la compilation. Ignoré.\n"
-#: main.c:1014
+#: main.c:1021
msgid "Failed to parse mailto: link\n"
msgstr "Impossible d'analyser le lien mailto:\n"
-#: main.c:1029 main.c:1317
+#: main.c:1036 main.c:1324
msgid "No recipients specified.\n"
msgstr "Pas de destinataire spécifié.\n"
-#: main.c:1059
+#: main.c:1066
msgid "Cannot use -E flag with stdin\n"
msgstr "Impossible d'utiliser l'option -E avec stdin\n"
@@ -4039,25 +4039,25 @@ msgstr "Impossible d'utiliser l'option -E avec stdin\n"
#. Error when using -H command line argument, but reading the draft
#. file fails for some reason.
#.
-#: main.c:1166
+#: main.c:1173
msgid "Cannot parse draft file\n"
msgstr "Impossible d'analyser le fichier de brouillon\n"
# , c-format
-#: main.c:1237
+#: main.c:1244
#, c-format
msgid "%s: unable to attach file.\n"
msgstr "%s : impossible d'attacher le fichier.\n"
-#: main.c:1334
+#: main.c:1341
msgid "No mailbox with new mail."
msgstr "Pas de boîte aux lettres avec des nouveaux messages."
-#: main.c:1348
+#: main.c:1355
msgid "No incoming mailboxes defined."
msgstr "Pas de boîtes aux lettres recevant du courrier définies."
-#: main.c:1376
+#: main.c:1383
msgid "Mailbox is empty."
msgstr "La boîte aux lettres est vide."
@@ -4127,7 +4127,7 @@ msgid "Invalid index number."
msgstr "Numéro d'index invalide."
#: menu.c:479 menu.c:501 menu.c:566 menu.c:609 menu.c:625 menu.c:636 menu.c:647
-#: menu.c:658 menu.c:671 menu.c:684 menu.c:1236
+#: menu.c:658 menu.c:671 menu.c:684 menu.c:1240
msgid "No entries."
msgstr "Pas d'entrées."
@@ -4147,31 +4147,31 @@ msgstr "Vous êtes sur la première page."
msgid "You are on the last page."
msgstr "Vous êtes sur la dernière page."
-#: menu.c:896 pager.c:2410 pattern.c:2036
+#: menu.c:896 pager.c:2414 pattern.c:2035
msgid "Search for: "
msgstr "Rechercher : "
-#: menu.c:896 pager.c:2410 pattern.c:2036
+#: menu.c:896 pager.c:2414 pattern.c:2035
msgid "Reverse search for: "
msgstr "Rechercher en arrière : "
-#: menu.c:940 pager.c:2362 pager.c:2384 pager.c:2505 pattern.c:2158
+#: menu.c:940 pager.c:2366 pager.c:2388 pager.c:2509 pattern.c:2157
msgid "Not found."
msgstr "Non trouvé."
-#: menu.c:1108
+#: menu.c:1112
msgid "No tagged entries."
msgstr "Pas d'entrées marquées."
-#: menu.c:1200
+#: menu.c:1204
msgid "Search is not implemented for this menu."
msgstr "La recherche n'est pas implémentée pour ce menu."
-#: menu.c:1205
+#: menu.c:1209
msgid "Jumping is not implemented for dialogs."
msgstr "Le saut n'est pas implémenté pour les dialogues."
-#: menu.c:1239
+#: menu.c:1243
msgid "Tagging is not supported."
msgstr "Le marquage n'est pas supporté."
@@ -4299,31 +4299,31 @@ msgstr "Impossible de se connecter à %s (%s)."
#. confirming STARTTLS. This warns the user that something
#. weird is going on.
#.
-#: mutt_ssl.c:201 mutt_ssl_gnutls.c:232
+#: mutt_ssl.c:222 mutt_ssl_gnutls.c:232
msgid "Warning: clearing unexpected server data before TLS negotiation"
msgstr ""
"Attention : effacement de données inattendues du serveur avant négociation "
"TLS"
-#: mutt_ssl.c:276 mutt_ssl.c:558
+#: mutt_ssl.c:300 mutt_ssl.c:584
msgid "Warning: error enabling ssl_verify_partial_chains"
msgstr "Attention : erreur lors de l'activation de ssl_verify_partial_chains"
-#: mutt_ssl.c:362
+#: mutt_ssl.c:386
msgid "Failed to find enough entropy on your system"
msgstr "Impossible de trouver assez d'entropie sur votre système"
-#: mutt_ssl.c:391
+#: mutt_ssl.c:415
#, c-format
msgid "Filling entropy pool: %s...\n"
msgstr "Remplissage du tas d'entropie : %s...\n"
-#: mutt_ssl.c:399
+#: mutt_ssl.c:423
#, c-format
msgid "%s has insecure permissions!"
msgstr "%s a des droits d'accès peu sûrs !"
-#: mutt_ssl.c:415
+#: mutt_ssl.c:439
msgid "SSL disabled due to the lack of entropy"
msgstr "SSL désactivé par manque d'entropie"
@@ -4331,22 +4331,22 @@ msgstr "SSL désactivé par manque d'entropie"
#. * function SSL_CTX_new(). In this case it returned NULL: an
#. * error condition.
#.
-#: mutt_ssl.c:495
+#: mutt_ssl.c:519
msgid "Unable to create SSL context"
msgstr "Impossible de créer le contexte SSL"
#. L10N: This is a warning when trying to set the host name for
#. * TLS Server Name Indication (SNI). This allows the server to present
#. * the correct certificate if it supports multiple hosts.
-#: mutt_ssl.c:621 mutt_ssl_gnutls.c:473
+#: mutt_ssl.c:647 mutt_ssl_gnutls.c:473
msgid "Warning: unable to set TLS SNI host name"
msgstr "Attention : impossible de fixer le nom d'hôte TLS SNI"
-#: mutt_ssl.c:632
+#: mutt_ssl.c:658
msgid "I/O error"
msgstr "erreur d'E/S"
-#: mutt_ssl.c:641
+#: mutt_ssl.c:667
#, c-format
msgid "SSL failed: %s"
msgstr "SSL a échoué : %s"
@@ -4356,85 +4356,89 @@ msgstr "SSL a échoué : %s"
#. %1$s is version (e.g. "TLSv1.2")
#. %2$s is cipher_version (e.g. "TLSv1/SSLv3")
#. %3$s is cipher_name (e.g. "ECDHE-RSA-AES128-GCM-SHA256")
-#: mutt_ssl.c:651
+#: mutt_ssl.c:677
#, c-format
msgid "%s connection using %s (%s)"
msgstr "Connexion %s utilisant %s (%s)"
-#: mutt_ssl.c:781
+#: mutt_ssl.c:802
msgid "Unknown"
msgstr "Inconnu"
# , c-format
-#: mutt_ssl.c:794 mutt_ssl_gnutls.c:661
+#: mutt_ssl.c:815 mutt_ssl_gnutls.c:661
#, c-format
msgid "[unable to calculate]"
msgstr "[impossible de calculer]"
# , c-format
-#: mutt_ssl.c:812 mutt_ssl_gnutls.c:684
+#: mutt_ssl.c:833 mutt_ssl_gnutls.c:684
msgid "[invalid date]"
msgstr "[date invalide]"
-#: mutt_ssl.c:881
+#: mutt_ssl.c:902
msgid "Server certificate is not yet valid"
msgstr "Le certificat du serveur n'est pas encore valide"
-#: mutt_ssl.c:891
+#: mutt_ssl.c:912
msgid "Server certificate has expired"
msgstr "Le certificat du serveur a expiré"
-#: mutt_ssl.c:1040
+#: mutt_ssl.c:1061
msgid "cannot get certificate subject"
msgstr "impossible d'obtenir le détenteur du certificat (subject)"
-#: mutt_ssl.c:1050 mutt_ssl.c:1059
+#: mutt_ssl.c:1071 mutt_ssl.c:1080
msgid "cannot get certificate common name"
msgstr "impossible d'obtenir le nom du détenteur du certificat (CN)"
-#: mutt_ssl.c:1074
+#: mutt_ssl.c:1095
#, c-format
msgid "certificate owner does not match hostname %s"
msgstr "le propriétaire du certificat ne correspond pas au nom %s"
-#: mutt_ssl.c:1181
+#: mutt_ssl.c:1202
#, c-format
msgid "Certificate host check failed: %s"
msgstr "Échec de vérification de machine : %s"
-#: mutt_ssl.c:1243 mutt_ssl_gnutls.c:931
+#: mutt_ssl.c:1263 mutt_ssl_gnutls.c:883
+msgid "Untrusted server certificate"
+msgstr "Certificat du serveur sans confiance"
+
+#: mutt_ssl.c:1272 mutt_ssl_gnutls.c:938
msgid "This certificate belongs to:"
msgstr "Ce certificat appartient à :"
-#: mutt_ssl.c:1252 mutt_ssl_gnutls.c:973
+#: mutt_ssl.c:1281 mutt_ssl_gnutls.c:980
msgid "This certificate was issued by:"
msgstr "Ce certificat a été émis par :"
-#: mutt_ssl.c:1261 mutt_ssl_gnutls.c:986
+#: mutt_ssl.c:1290 mutt_ssl_gnutls.c:993
msgid "This certificate is valid"
msgstr "Ce certificat est valide"
-#: mutt_ssl.c:1262 mutt_ssl_gnutls.c:989
+#: mutt_ssl.c:1291 mutt_ssl_gnutls.c:996
#, c-format
msgid " from %s"
msgstr " de %s"
-#: mutt_ssl.c:1265 mutt_ssl_gnutls.c:994
+#: mutt_ssl.c:1294 mutt_ssl_gnutls.c:1001
#, c-format
msgid " to %s"
msgstr " à %s"
-#: mutt_ssl.c:1272 mutt_ssl_gnutls.c:1001
+#: mutt_ssl.c:1301 mutt_ssl_gnutls.c:1008
#, c-format
msgid "SHA1 Fingerprint: %s"
msgstr "Empreinte SHA1 : %s"
-#: mutt_ssl.c:1278 mutt_ssl.c:1281 mutt_ssl_gnutls.c:1007
-#: mutt_ssl_gnutls.c:1010
+#: mutt_ssl.c:1307 mutt_ssl.c:1310 mutt_ssl_gnutls.c:1014
+#: mutt_ssl_gnutls.c:1017
msgid "SHA256 Fingerprint: "
msgstr "Empreinte SHA256 : "
-#: mutt_ssl.c:1285 mutt_ssl_gnutls.c:1031
+#: mutt_ssl.c:1314 mutt_ssl_gnutls.c:1038
#, c-format
msgid "SSL Certificate check (certificate %d of %d in chain)"
msgstr "Vérification du certificat SSL (certificat %d sur %d dans la chaîne)"
@@ -4445,31 +4449,31 @@ msgstr "Vérification du certificat SSL (certificat %d sur %d dans la chaîne)"
#. * These prompts are the interactive certificate confirmation prompts for
#. * an OpenSSL connection.
#.
-#: mutt_ssl.c:1311
+#: mutt_ssl.c:1340
msgid "roas"
msgstr "ruas"
-#: mutt_ssl.c:1315
+#: mutt_ssl.c:1344
msgid "(r)eject, accept (o)nce, (a)ccept always, (s)kip"
msgstr "(r)ejeter, accepter (u)ne fois, (a)ccepter toujours, (s)auter"
-#: mutt_ssl.c:1317 mutt_ssl_gnutls.c:1040
+#: mutt_ssl.c:1346 mutt_ssl_gnutls.c:1047
msgid "(r)eject, accept (o)nce, (a)ccept always"
msgstr "(r)ejeter, accepter (u)ne fois, (a)ccepter toujours"
-#: mutt_ssl.c:1322
+#: mutt_ssl.c:1351
msgid "(r)eject, accept (o)nce, (s)kip"
msgstr "(r)ejeter, accepter (u)ne fois, (s)auter"
-#: mutt_ssl.c:1324 mutt_ssl_gnutls.c:1051
+#: mutt_ssl.c:1353 mutt_ssl_gnutls.c:1058
msgid "(r)eject, accept (o)nce"
msgstr "(r)ejeter, accepter (u)ne fois"
-#: mutt_ssl.c:1362 mutt_ssl_gnutls.c:1114
+#: mutt_ssl.c:1391 mutt_ssl_gnutls.c:1121
msgid "Warning: Couldn't save certificate"
msgstr "Attention : le certificat n'a pas pu être sauvé"
-#: mutt_ssl.c:1367 mutt_ssl_gnutls.c:1119
+#: mutt_ssl.c:1396 mutt_ssl_gnutls.c:1126
msgid "Certificate saved"
msgstr "Certificat sauvé"
@@ -4482,7 +4486,7 @@ msgstr "Certificat sauvé"
#. When using a $ssl_client_cert, GNUTLS may prompt for the password
#. to decrypt the cert. %s is the hostname.
#.
-#: mutt_ssl.c:1428 mutt_ssl_gnutls.c:1278
+#: mutt_ssl.c:1457 mutt_ssl_gnutls.c:1285
#, c-format
msgid "Password for %s client cert: "
msgstr "Mot de passe pour le certificat client %s : "
@@ -4507,35 +4511,35 @@ msgstr ""
msgid "SSL/TLS connection using %s (%s/%s/%s)"
msgstr "Connexion SSL/TLS utilisant %s (%s/%s/%s)"
-#: mutt_ssl_gnutls.c:755 mutt_ssl_gnutls.c:883
+#: mutt_ssl_gnutls.c:755 mutt_ssl_gnutls.c:890
msgid "Error initialising gnutls certificate data"
msgstr "Erreur d'initialisation des données du certificat gnutls"
-#: mutt_ssl_gnutls.c:762 mutt_ssl_gnutls.c:890
+#: mutt_ssl_gnutls.c:762 mutt_ssl_gnutls.c:897
msgid "Error processing certificate data"
msgstr "Erreur de traitement des données du certificat"
-#: mutt_ssl_gnutls.c:1017
+#: mutt_ssl_gnutls.c:1024
msgid "WARNING: Server certificate is not yet valid"
msgstr "ATTENTION ! Le certificat du serveur n'est pas encore valide"
-#: mutt_ssl_gnutls.c:1019
+#: mutt_ssl_gnutls.c:1026
msgid "WARNING: Server certificate has expired"
msgstr "ATTENTION ! Le certificat du serveur a expiré"
-#: mutt_ssl_gnutls.c:1021
+#: mutt_ssl_gnutls.c:1028
msgid "WARNING: Server certificate has been revoked"
msgstr "ATTENTION ! Le certificat du serveur a été révoqué"
-#: mutt_ssl_gnutls.c:1023
+#: mutt_ssl_gnutls.c:1030
msgid "WARNING: Server hostname does not match certificate"
msgstr "ATTENTION ! Le nom du serveur ne correspond pas au certificat"
-#: mutt_ssl_gnutls.c:1025
+#: mutt_ssl_gnutls.c:1032
msgid "WARNING: Signer of server certificate is not a CA"
msgstr "ATTENTION ! Le signataire du certificat du serveur n'est pas un CA"
-#: mutt_ssl_gnutls.c:1028
+#: mutt_ssl_gnutls.c:1035
msgid "Warning: Server certificate was signed using an insecure algorithm"
msgstr ""
"Attention : le certificat du serveur a été signé avec un algorithme peu sûr"
@@ -4546,7 +4550,7 @@ msgstr ""
#. * This is an interactive certificate confirmation prompt for
#. * a GNUTLS connection.
#.
-#: mutt_ssl_gnutls.c:1047
+#: mutt_ssl_gnutls.c:1054
msgid "roa"
msgstr "rua"
@@ -4556,15 +4560,15 @@ msgstr "rua"
#. * These is an interactive certificate confirmation prompt for
#. * a GNUTLS connection.
#.
-#: mutt_ssl_gnutls.c:1058
+#: mutt_ssl_gnutls.c:1065
msgid "ro"
msgstr "ru"
-#: mutt_ssl_gnutls.c:1175 mutt_ssl_gnutls.c:1213
+#: mutt_ssl_gnutls.c:1182 mutt_ssl_gnutls.c:1220
msgid "Unable to get certificate from peer"
msgstr "Impossible d'obtenir le certificat de la machine distante"
-#: mutt_ssl_gnutls.c:1177
+#: mutt_ssl_gnutls.c:1184
#, c-format
msgid "Certificate verification error (%s)"
msgstr "Erreur de vérification du certificat (%s)"
@@ -4589,46 +4593,46 @@ msgstr "Erreur de tunnel en parlant à %s : %s"
#. L10N:
#. Means "The path you specified as the destination file is a directory."
#. See the msgid "Save to file: " (alias.c, recvattach.c)
-#: muttlib.c:1282
+#: muttlib.c:1302
msgid "File is a directory, save under it? [(y)es, (n)o, (a)ll]"
msgstr ""
"Le fichier est un répertoire, sauver dans celui-ci ? [(o)ui, (n)on, (t)ous]"
-#: muttlib.c:1282
+#: muttlib.c:1302
msgid "yna"
msgstr "ont"
#. L10N:
#. Means "The path you specified as the destination file is a directory."
#. See the msgid "Save to file: " (alias.c, recvattach.c)
-#: muttlib.c:1301
+#: muttlib.c:1321
msgid "File is a directory, save under it?"
msgstr "Le fichier est un répertoire, sauver dans celui-ci ?"
-#: muttlib.c:1306
+#: muttlib.c:1326
msgid "File under directory: "
msgstr "Fichier dans le répertoire : "
-#: muttlib.c:1320
+#: muttlib.c:1340
msgid "File exists, (o)verwrite, (a)ppend, or (c)ancel?"
msgstr "Le fichier existe, écras(e)r, (c)oncaténer ou (a)nnuler ?"
-#: muttlib.c:1320
+#: muttlib.c:1340
msgid "oac"
msgstr "eca"
-#: muttlib.c:1984
+#: muttlib.c:2006
msgid "Can't save message to POP mailbox."
msgstr "Impossible de sauver le message dans la boîte aux lettres POP."
# , c-format
-#: muttlib.c:1994
+#: muttlib.c:2016
#, c-format
msgid "Append message(s) to %s?"
msgstr "Ajouter le(s) message(s) à %s ?"
# , c-format
-#: muttlib.c:2008
+#: muttlib.c:2030
#, c-format
msgid "%s is not a mailbox!"
msgstr "%s n'est pas une boîte aux lettres !"
@@ -4765,23 +4769,23 @@ msgstr "Voir attach."
msgid "Next"
msgstr "Suivant"
-#: pager.c:2262 pager.c:2293 pager.c:2326 pager.c:2687
+#: pager.c:2266 pager.c:2297 pager.c:2330 pager.c:2691
msgid "Bottom of message is shown."
msgstr "La fin du message est affichée."
-#: pager.c:2278 pager.c:2300 pager.c:2307 pager.c:2315
+#: pager.c:2282 pager.c:2304 pager.c:2311 pager.c:2319
msgid "Top of message is shown."
msgstr "Le début du message est affiché."
-#: pager.c:2551
+#: pager.c:2555
msgid "Help is currently being shown."
msgstr "L'aide est actuellement affichée."
-#: pager.c:2594 pager.c:2627
+#: pager.c:2598 pager.c:2631
msgid "No more unquoted text after quoted text."
msgstr "Il n'y a plus de texte non cité après le texte cité."
-#: pager.c:2611
+#: pager.c:2615
msgid "No more quoted text."
msgstr "Il n'y a plus de texte cité."
@@ -4789,7 +4793,7 @@ msgstr "Il n'y a plus de texte cité."
#. Displayed if <skip-headers> is invoked in the pager, but we are
#. already past the headers
#.
-#: pager.c:2648
+#: pager.c:2652
msgid "Already skipped past headers."
msgstr "En-têtes déjà sautés."
@@ -4799,7 +4803,7 @@ msgstr "En-têtes déjà sautés."
#. (I don't think this is actually possible in Mutt's code, but
#. display some kind of message in case it somehow occurs.)
#.
-#: pager.c:2667
+#: pager.c:2671
msgid "No text past headers."
msgstr "Pas de texte après les en-têtes."
@@ -5117,29 +5121,29 @@ msgid "unreferenced messages"
msgstr "messages non référencés"
# , c-format
-#: pattern.c:537 pattern.c:1028
+#: pattern.c:536 pattern.c:1027
#, c-format
msgid "Error in expression: %s"
msgstr "Erreur dans l'expression : %s"
-#: pattern.c:543 pattern.c:1033
+#: pattern.c:542 pattern.c:1032
msgid "Empty expression"
msgstr "Expression vide"
# , c-format
-#: pattern.c:695 pattern.c:710
+#: pattern.c:694 pattern.c:709
#, c-format
msgid "Invalid day of month: %s"
msgstr "Quantième invalide : %s"
# , c-format
-#: pattern.c:700 pattern.c:724
+#: pattern.c:699 pattern.c:723
#, c-format
msgid "Invalid month: %s"
msgstr "Mois invalide : %s"
# , c-format
-#: pattern.c:886
+#: pattern.c:885
#, c-format
msgid "Invalid relative date: %s"
msgstr "Date relative invalide : %s"
@@ -5149,7 +5153,7 @@ msgstr "Date relative invalide : %s"
#. was invoked when Mutt was compiled without crypto support.
#. %c is the pattern character, i.e. "g".
#.
-#: pattern.c:1094
+#: pattern.c:1093
#, c-format
msgid "Pattern modifier '~%c' is disabled."
msgstr "Le modificateur de motif '~%c' est désactivé."
@@ -5159,93 +5163,93 @@ msgstr "Le modificateur de motif '~%c' est désactivé."
#. An unknown pattern modifier was somehow invoked. This
#. shouldn't be possible unless there is a bug.
#.
-#: pattern.c:1102 pattern.c:1800
+#: pattern.c:1101 pattern.c:1799
#, c-format
msgid "error: unknown op %d (report this error)."
msgstr "erreur : opération inconnue %d (signalez cette erreur)."
-#: pattern.c:1168 pattern.c:1390
+#: pattern.c:1167 pattern.c:1389
msgid "empty pattern"
msgstr "motif vide"
# , c-format
-#: pattern.c:1198 pattern.c:1382
+#: pattern.c:1197 pattern.c:1381
#, c-format
msgid "error in pattern at: %s"
msgstr "erreur dans le motif à : %s"
-#: pattern.c:1225
+#: pattern.c:1224
#, c-format
msgid "missing pattern: %s"
msgstr "motif manquant : %s"
# , c-format
-#: pattern.c:1244
+#: pattern.c:1243
#, c-format
msgid "mismatched brackets: %s"
msgstr "parenthésage incorrect : %s"
# , c-format
-#: pattern.c:1304
+#: pattern.c:1303
#, c-format
msgid "%c: invalid pattern modifier"
msgstr "%c : modificateur de motif invalide"
# , c-format
-#: pattern.c:1310
+#: pattern.c:1309
#, c-format
msgid "%c: not supported in this mode"
msgstr "%c : non supporté dans ce mode"
-#: pattern.c:1327
+#: pattern.c:1326
msgid "missing parameter"
msgstr "paramètre manquant"
# , c-format
-#: pattern.c:1355
+#: pattern.c:1354
#, c-format
msgid "mismatched parenthesis: %s"
msgstr "parenthésage incorrect : %s"
-#: pattern.c:1891 pattern.c:2059
+#: pattern.c:1890 pattern.c:2058
msgid "Compiling search pattern..."
msgstr "Compilation du motif de recherche..."
-#: pattern.c:1910
+#: pattern.c:1909
msgid "Executing command on matching messages..."
msgstr "Exécution de la commande sur les messages correspondants..."
-#: pattern.c:1993
+#: pattern.c:1992
msgid "No messages matched criteria."
msgstr "Aucun message ne correspond au critère."
-#: pattern.c:2008 pattern.c:2150
+#: pattern.c:2007 pattern.c:2149
msgid "Search interrupted."
msgstr "Recherche interrompue."
-#: pattern.c:2094
+#: pattern.c:2093
msgid "Searching..."
msgstr "Recherche..."
-#: pattern.c:2107
+#: pattern.c:2106
msgid "Search hit bottom without finding match"
msgstr "Fin atteinte sans rien avoir trouvé"
-#: pattern.c:2118
+#: pattern.c:2117
msgid "Search hit top without finding match"
msgstr "Début atteint sans rien avoir trouvé"
#. L10N:
#. Pattern completion menu title
#.
-#: pattern.c:2236
+#: pattern.c:2235
msgid "Patterns"
msgstr "Motifs"
#. L10N:
#. Pattern Completion Menu argument type: a regular expression
#.
-#: pattern.c:2258
+#: pattern.c:2257
msgid "EXPR"
msgstr "EXPR"
@@ -5253,7 +5257,7 @@ msgstr "EXPR"
#. Pattern Completion Menu argument type: a numeric range.
#. Used by ~m, ~n, ~X, ~z.
#.
-#: pattern.c:2265
+#: pattern.c:2264
msgid "RANGE"
msgstr "MIN-MAX"
@@ -5261,7 +5265,7 @@ msgstr "MIN-MAX"
#. Pattern Completion Menu argument type: a date range
#. Used by ~d, ~r.
#.
-#: pattern.c:2272
+#: pattern.c:2271
msgid "DATERANGE"
msgstr "MIN-MAX"
@@ -5269,28 +5273,28 @@ msgstr "MIN-MAX"
#. Pattern Completion Menu argument type: a nested pattern.
#. Used by ~(), ~<(), ~>().
#.
-#: pattern.c:2288
+#: pattern.c:2287
msgid "PATTERN"
msgstr "MOTIF"
#. L10N:
#. Pattern Completion Menu description for ~()
#.
-#: pattern.c:2297
+#: pattern.c:2296
msgid "messages in threads containing messages matching PATTERN"
msgstr "messages dans discussions avec messages correspondant à MOTIF"
#. L10N:
#. Pattern Completion Menu description for ~<()
#.
-#: pattern.c:2307
+#: pattern.c:2306
msgid "messages whose immediate parent matches PATTERN"
msgstr "messages dont le parent immédiat correspond à MOTIF"
#. L10N:
#. Pattern Completion Menu description for ~>()
#.
-#: pattern.c:2317
+#: pattern.c:2316
msgid "messages having an immediate child matching PATTERN"
msgstr "messages ayant un fils immédiat correspondant à MOTIF"
@@ -5338,7 +5342,7 @@ msgstr ""
"[-- Erreur : impossible de créer un sous-processus PGP ! --]\n"
"\n"
-#: pgp.c:1012 pgp.c:1032 smime.c:1964
+#: pgp.c:1012 pgp.c:1032 smime.c:1965
msgid "Decryption failed"
msgstr "Le déchiffrement a échoué"
@@ -5428,27 +5432,27 @@ msgstr "csedrr"
msgid "Fetching PGP key..."
msgstr "Récupération de la clé PGP..."
-#: pgpkey.c:492
+#: pgpkey.c:495
msgid "All matching keys are expired, revoked, or disabled."
msgstr ""
"Toutes les clés correspondantes sont expirées, révoquées, ou désactivées."
-#: pgpkey.c:534
+#: pgpkey.c:537
#, c-format
msgid "PGP keys matching <%s>."
msgstr "Clés PGP correspondant à <%s>."
-#: pgpkey.c:536
+#: pgpkey.c:539
#, c-format
msgid "PGP keys matching \"%s\"."
msgstr "Clés PGP correspondant à \"%s\"."
-#: pgpkey.c:553 pgpkey.c:748
+#: pgpkey.c:556 pgpkey.c:751
msgid "Can't open /dev/null"
msgstr "Impossible d'ouvrir /dev/null"
# , c-format
-#: pgpkey.c:779
+#: pgpkey.c:782
#, c-format
msgid "PGP Key %s."
msgstr "Clé PGP %s."
@@ -5461,67 +5465,67 @@ msgstr "La commande TOP n'est pas supportée par le serveur."
msgid "Can't write header to temporary file!"
msgstr "Impossible d'écrire l'en-tête dans le fichier temporaire !"
-#: pop.c:304 pop_lib.c:213
+#: pop.c:305 pop_lib.c:213
msgid "Command UIDL is not supported by server."
msgstr "La commande UIDL n'est pas supportée par le serveur."
-#: pop.c:324
+#: pop.c:325
#, c-format
msgid "%d message(s) have been lost. Try reopening the mailbox."
msgstr ""
"%d message(s) a/ont été perdu(s). Essayez de rouvrir la boîte aux lettres."
-#: pop.c:439 pop.c:882
+#: pop.c:440 pop.c:902
#, c-format
msgid "%s is an invalid POP path"
msgstr "%s est un chemin POP invalide"
-#: pop.c:483
+#: pop.c:484
msgid "Fetching list of messages..."
msgstr "Récupération de la liste des messages..."
-#: pop.c:658
+#: pop.c:678
msgid "Can't write message to temporary file!"
msgstr "Impossible d'écrire le message dans le fichier temporaire !"
# , c-format
-#: pop.c:743
+#: pop.c:763
msgid "Marking messages deleted..."
msgstr "Marquage des messages à effacer..."
-#: pop.c:821 pop.c:902
+#: pop.c:841 pop.c:922
msgid "Checking for new messages..."
msgstr "Recherche de nouveaux messages..."
-#: pop.c:866
+#: pop.c:886
msgid "POP host is not defined."
msgstr "Le serveur POP n'est pas défini."
-#: pop.c:930
+#: pop.c:950
msgid "No new mail in POP mailbox."
msgstr "Aucun nouveau message dans la boîte aux lettres POP."
-#: pop.c:937
+#: pop.c:957
msgid "Delete messages from server?"
msgstr "Effacer les messages sur le serveur ?"
# , c-format
-#: pop.c:939
+#: pop.c:959
#, c-format
msgid "Reading new messages (%d bytes)..."
msgstr "Lecture de nouveaux messages (%d octets)..."
-#: pop.c:981
+#: pop.c:1001
msgid "Error while writing mailbox!"
msgstr "Erreur à l'écriture de la boîte aux lettres !"
# , c-format
-#: pop.c:985
+#: pop.c:1005
#, c-format
msgid "%s [%d of %d messages read]"
msgstr "%s [%d messages lus sur %d]"
-#: pop.c:1008 pop_lib.c:379
+#: pop.c:1029 pop_lib.c:379
msgid "Server closed connection!"
msgstr "Le serveur a fermé la connexion !"
@@ -5614,16 +5618,16 @@ msgstr "Créer un alias"
msgid "Waiting for response..."
msgstr "Attente de la réponse..."
-#: query.c:272 query.c:301
+#: query.c:280 query.c:309
msgid "Query command not defined."
msgstr "Commande de requête non définie."
-#: query.c:331 query.c:364
+#: query.c:339 query.c:372
msgid "Query: "
msgstr "Requête : "
# , c-format
-#: query.c:339 query.c:373
+#: query.c:347 query.c:381
#, c-format
msgid "Query '%s'"
msgstr "Requête '%s'"
@@ -5894,7 +5898,7 @@ msgstr "score : trop d'arguments"
msgid "Error: score: invalid number"
msgstr "Erreur : score : nombre invalide"
-#: send.c:241 send.c:2458
+#: send.c:241 send.c:2444
msgid "No recipients were specified."
msgstr "Aucun destinataire spécifié."
@@ -5975,21 +5979,15 @@ msgstr "Générer un contenu multipart/alternative ?"
msgid "Saving Fcc to %s"
msgstr "Sauvegarde du Fcc dans %s"
-# , c-format
-#: send.c:1282
-msgid "Warning: Fcc to an IMAP mailbox is not supported in batch mode"
-msgstr "Attention : Fcc vers une BAL IMAP n'est pas supporté en mode batch"
-
#. L10N:
-#. Printed after the "Fcc to an IMAP mailbox is not supported" message.
-#. To make it clearer that the message doesn't mean Mutt is aborting
-#. sending the mail too.
-#. %s is the full mailbox URL, including imap(s)://
+#. Printed when a FCC in batch mode fails. Batch mode will abort
+#. if $fcc_before_send is set.
+#. %s is the mailbox name.
#.
-#: send.c:1289
+#: send.c:1277
#, c-format
-msgid "Skipping Fcc to %s"
-msgstr "Omission du Fcc dans %s"
+msgid "Warning: Fcc to %s failed"
+msgstr "Attention : échec du Fcc dans %s"
#. L10N:
#. Called when saving to $record or Fcc failed after sending.
@@ -5997,7 +5995,7 @@ msgstr "Omission du Fcc dans %s"
#. alternate (m)ailbox prompts for a different mailbox to try.
#. (s)kip aborts saving.
#.
-#: send.c:1306
+#: send.c:1292
msgid "Fcc failed. (r)etry, alternate (m)ailbox, or (s)kip? "
msgstr "Fcc a échoué. (r)éessayer, autre (b)oîte aux lettres, ou (s)auter ? "
@@ -6006,7 +6004,7 @@ msgstr "Fcc a échoué. (r)éessayer, autre (b)oîte aux lettres, ou (s)auter ?
#. (r)etry, alternate (m)ailbox, or (s)kip.
#. Any similarity to famous leaders of the FSF is coincidental.
#.
-#: send.c:1312
+#: send.c:1298
msgid "rms"
msgstr "rbs"
@@ -6014,68 +6012,76 @@ msgstr "rbs"
#. This is the prompt to enter an "alternate (m)ailbox" when the
#. initial Fcc fails.
#.
-#: send.c:1320
+#: send.c:1306
msgid "Fcc mailbox"
msgstr "Boîte aux lettres Fcc"
-#: send.c:1386
+#: send.c:1372
msgid "Save attachments in Fcc?"
msgstr "Sauver les attachements dans Fcc ?"
-#: send.c:1633
+#: send.c:1619
msgid "Cannot postpone. $postponed is unset"
msgstr "Impossible d'ajourner. $postponed est non renseigné"
-#: send.c:1876
+#: send.c:1862
msgid "Recall postponed message?"
msgstr "Rappeler un message ajourné ?"
-#: send.c:2184
+#: send.c:2170
msgid "Edit forwarded message?"
msgstr "Éditer le message transféré ?"
-#: send.c:2248
+#: send.c:2234
msgid "Abort unmodified message?"
msgstr "Message non modifié. Abandonner ?"
-#: send.c:2250
+#: send.c:2236
msgid "Aborted unmodified message."
msgstr "Message non modifié. Abandon."
-#: send.c:2368
+#: send.c:2354
msgid "No crypto backend configured. Disabling message security setting."
msgstr ""
"Pas de backend crypto configuré. Désactivation de la sécurité du message."
-#: send.c:2437
+#: send.c:2423
msgid "Message postponed."
msgstr "Message ajourné."
-#: send.c:2453
+#: send.c:2439
msgid "No recipients are specified!"
msgstr "Aucun destinataire spécifié !"
-#: send.c:2474
+#: send.c:2460
msgid "No subject, abort sending?"
msgstr "Pas d'objet (Subject), abandonner l'envoi ?"
-#: send.c:2478
+#: send.c:2464
msgid "No subject specified."
msgstr "Pas d'objet (Subject) spécifié."
-#: send.c:2492
+#: send.c:2478
msgid "No attachments, abort sending?"
msgstr "Pas d'attachements, abandonner l'envoi ?"
-#: send.c:2495
+#: send.c:2481
msgid "Attachment referenced in message is missing"
msgstr "L'attachement référencé dans le message est manquant"
-#: send.c:2567 smtp.c:240
+#: send.c:2553 smtp.c:240
msgid "Sending message..."
msgstr "Envoi du message..."
-#: send.c:2610
+#. L10N:
+#. In batch mode with $fcc_before_send set, Mutt will abort if any of
+#. the Fcc's fails.
+#.
+#: send.c:2566
+msgid "Fcc failed. Aborting sending."
+msgstr "Fcc a échoué. Envoi interrompu."
+
+#: send.c:2607
msgid "Could not send the message."
msgstr "Impossible d'envoyer le message."
@@ -6085,15 +6091,15 @@ msgstr "Impossible d'envoyer le message."
#. Background sending may cause the original mailbox to be reopened,
#. so this message was added in case that takes some time.
#.
-#: send.c:2638 send.c:2664
+#: send.c:2635 send.c:2661
msgid "Setting reply flags."
msgstr "Ajout des drapeaux de réponse."
-#: send.c:2709
+#: send.c:2706
msgid "Mail sent."
msgstr "Message envoyé."
-#: send.c:2709
+#: send.c:2706
msgid "Sending in background."
msgstr "Envoi en tâche de fond."
@@ -6101,7 +6107,7 @@ msgstr "Envoi en tâche de fond."
#. Message displayed when the user chooses to background
#. editing from the landing page.
#.
-#: send.c:2774
+#: send.c:2771
msgid "Editing backgrounded."
msgstr "L'édition est passée en arrière-plan."
@@ -6195,21 +6201,21 @@ msgstr ""
"$send_multipart_alternative_filter ne supporte pas la génération de type "
"multipart."
-#: sendlib.c:2705
+#: sendlib.c:2720
msgid "$sendmail must be set in order to send mail."
msgstr "$sendmail doit avoir une valeur pour pouvoir envoyer du courrier."
# , c-format
-#: sendlib.c:2806
+#: sendlib.c:2821
#, c-format
msgid "Error sending message, child exited %d (%s)."
msgstr "Erreur en envoyant le message, fils terminé avec le code %d (%s)."
-#: sendlib.c:2812
+#: sendlib.c:2827
msgid "Output of the delivery process"
msgstr "Sortie du processus de livraison"
-#: sendlib.c:2984
+#: sendlib.c:2999
#, c-format
msgid "Bad IDN %s while preparing resent-from."
msgstr "Mauvais IDN %s lors de la préparation du resent-from."
@@ -6301,19 +6307,19 @@ msgstr "pas de certfile"
msgid "no mbox"
msgstr "pas de BAL"
-#: smime.c:1490 smime.c:1664
+#: smime.c:1491 smime.c:1665
msgid "No output from OpenSSL..."
msgstr "Pas de sortie pour OpenSSL..."
-#: smime.c:1575
+#: smime.c:1576
msgid "Can't sign: No key specified. Use Sign As."
msgstr "Impossible de signer : pas de clé spécifiée. Utilisez « Signer avec »."
-#: smime.c:1628
+#: smime.c:1629
msgid "Can't open OpenSSL subprocess!"
msgstr "Impossible d'ouvrir le sous-processus OpenSSL !"
-#: smime.c:1827 smime.c:1946
+#: smime.c:1828 smime.c:1947
msgid ""
"[-- End of OpenSSL output --]\n"
"\n"
@@ -6321,19 +6327,19 @@ msgstr ""
"[-- Fin de sortie OpenSSL --]\n"
"\n"
-#: smime.c:1906 smime.c:1916
+#: smime.c:1907 smime.c:1917
msgid "[-- Error: unable to create OpenSSL subprocess! --]\n"
msgstr "[-- Erreur : impossible de créer le sous-processus OpenSSL ! --]\n"
-#: smime.c:1950
+#: smime.c:1951
msgid "[-- The following data is S/MIME encrypted --]\n"
msgstr "[-- Les données suivantes sont chiffrées avec S/MIME --]\n"
-#: smime.c:1953
+#: smime.c:1954
msgid "[-- The following data is S/MIME signed --]\n"
msgstr "[-- Les données suivantes sont signées avec S/MIME --]\n"
-#: smime.c:2050
+#: smime.c:2051
msgid ""
"\n"
"[-- End of S/MIME encrypted data. --]\n"
@@ -6341,7 +6347,7 @@ msgstr ""
"\n"
"[-- Fin des données chiffrées avec S/MIME. --]\n"
-#: smime.c:2052
+#: smime.c:2053
msgid ""
"\n"
"[-- End of S/MIME signed data. --]\n"
@@ -6349,7 +6355,7 @@ msgstr ""
"\n"
"[-- Fin des données signées avec S/MIME. --]\n"
-#: smime.c:2207
+#: smime.c:2208
msgid ""
"S/MIME (s)ign, encrypt (w)ith, sign (a)s, (c)lear, or (o)ppenc mode off? "
msgstr ""
@@ -6359,11 +6365,11 @@ msgstr ""
#. 'clear'. Please use a corresponding letter in your language.
#. Alternatively, you may duplicate the letter 'c' is translated to.
#. This comment also applies to the two following letter sequences.
-#: smime.c:2212
+#: smime.c:2213
msgid "swafco"
msgstr "saerro"
-#: smime.c:2221
+#: smime.c:2222
msgid ""
"S/MIME (e)ncrypt, (s)ign, encrypt (w)ith, sign (a)s, (b)oth, (c)lear, or "
"(o)ppenc mode? "
@@ -6371,49 +6377,49 @@ msgstr ""
"Ch. s/mime, Signer, ch. Avec, signer En tant que, les Deux, Rien, ou "
"Oppenc ? "
-#: smime.c:2222
+#: smime.c:2223
msgid "eswabfco"
msgstr "csaedrro"
-#: smime.c:2230
+#: smime.c:2231
msgid ""
"S/MIME (e)ncrypt, (s)ign, encrypt (w)ith, sign (a)s, (b)oth, or (c)lear? "
msgstr ""
"Chiffrer s/mime, Signer, ch. Avec, signer En tant que, les Deux, ou Rien ? "
-#: smime.c:2231
+#: smime.c:2232
msgid "eswabfc"
msgstr "csaedrr"
-#: smime.c:2252
+#: smime.c:2253
msgid "Choose algorithm family: 1: DES, 2: RC2, 3: AES, or (c)lear? "
msgstr "Choisir une famille d'algo : 1: DES, 2: RC2, 3: AES, ou (e)n clair ? "
-#: smime.c:2255
+#: smime.c:2256
msgid "drac"
msgstr "drae"
-#: smime.c:2258
+#: smime.c:2259
msgid "1: DES, 2: Triple-DES "
msgstr "1: DES, 2: Triple-DES "
-#: smime.c:2259
+#: smime.c:2260
msgid "dt"
msgstr "dt"
-#: smime.c:2271
+#: smime.c:2272
msgid "1: RC2-40, 2: RC2-64, 3: RC2-128 "
msgstr "1: RC2-40, 2: RC2-64, 3: RC2-128 "
-#: smime.c:2272
+#: smime.c:2273
msgid "468"
msgstr "468"
-#: smime.c:2287
+#: smime.c:2288
msgid "1: AES128, 2: AES192, 3: AES256 "
msgstr "1: AES128, 2: AES192, 3: AES256 "
-#: smime.c:2288
+#: smime.c:2289
msgid "895"
msgstr "895"
@@ -8335,3 +8341,11 @@ msgstr "rendre la barre latérale (in)visible"
#: OPS.SMIME:18
msgid "show S/MIME options"
msgstr "afficher les options S/MIME"
+
+# , c-format
+#~ msgid "Warning: Fcc to an IMAP mailbox is not supported in batch mode"
+#~ msgstr "Attention : Fcc vers une BAL IMAP n'est pas supporté en mode batch"
+
+#, c-format
+#~ msgid "Skipping Fcc to %s"
+#~ msgstr "Omission du Fcc dans %s"
diff --git a/smime_keys.pl b/smime_keys.pl
index 5e46b1ce..09e448ab 100755
--- a/smime_keys.pl
+++ b/smime_keys.pl
@@ -416,7 +416,7 @@ sub openssl_emails ($) {
sub openssl_p12_to_pem ($$) {
my ($p12_file, $pem_file) = @_;
- my @args = ("pkcs12", "-in", $p12_file, "-out", $pem_file);
+ my @args = ("pkcs12", "-in", $p12_file, "-out", $pem_file,"-legacy");
openssl_exec(@args);
$? and die "openssl pkcs12 conversion returned $?";
}