[mutt] 08/11: Replace NNTP patch with neomutt's
Faidon Liambotis
paravoid at moszumanska.debian.org
Fri May 13 15:33:52 UTC 2016
This is an automated email from the git hooks/post-receive script.
paravoid pushed a commit to branch wip-neomutt
in repository mutt.
commit 70ebac05503c417b2bd62991dc705bc35b79de64
Author: Faidon Liambotis <paravoid at debian.org>
Date: Thu May 5 21:17:29 2016 +0300
Replace NNTP patch with neomutt's
---
.../{mutt-patched => neomutt-devel}/nntp.patch | 1391 ++++++++++++--------
debian/patches/series | 2 +-
2 files changed, 821 insertions(+), 572 deletions(-)
diff --git a/debian/patches/mutt-patched/nntp.patch b/debian/patches/neomutt-devel/nntp.patch
similarity index 87%
rename from debian/patches/mutt-patched/nntp.patch
rename to debian/patches/neomutt-devel/nntp.patch
index fc0ca34..9fc25ea 100644
--- a/debian/patches/mutt-patched/nntp.patch
+++ b/debian/patches/neomutt-devel/nntp.patch
@@ -1,14 +1,15 @@
-From: Vsevolod Volkov <vvv at mutt.org.ua>
-Date: Sun, 24 Apr 2016 10:35:02 +0200
-Subject: nntp
+From 82f9607dd091365761dc801ebf98db067b582521 Mon Sep 17 00:00:00 2001
+From: Richard Russon <rich at flatcap.org>
+Date: Thu, 7 Apr 2016 23:02:56 +0100
+Subject: [PATCH 28/28] patches-20160502/nntp
-http://mutt.org.ua/download/mutt-1.6.0/patch-1.6.0.vvv.nntp.gz
-
-Signed-off-by: Matteo F. Vescovi <mfv at debian.org>
+Talk to a Usenet news server
---
ChangeLog.nntp | 416 +++++++++
Makefile.am | 2 +
OPS | 23 +-
+ PATCHES | 1 +
+ README.nntp | 122 +++
account.c | 27 +
account.h | 3 +-
attach.h | 2 +-
@@ -16,12 +17,13 @@ Signed-off-by: Matteo F. Vescovi <mfv at debian.org>
browser.h | 7 +
buffy.c | 12 +
complete.c | 64 ++
- compose.c | 143 ++-
+ compose.c | 177 +++-
configure.ac | 11 +-
curs_main.c | 312 ++++++-
- doc/Muttrc | 300 +++++++
- doc/manual.xml.head | 20 +
+ doc/manual.xml.head | 392 +++++++++
doc/mutt.man | 8 +-
+ doc/muttrc.nntp | 0
+ doc/vimrc-nntp | 50 ++
functions.h | 59 +-
globals.h | 18 +-
hash.c | 27 +
@@ -33,7 +35,7 @@ Signed-off-by: Matteo F. Vescovi <mfv at debian.org>
init.h | 223 +++++
keymap.c | 1 -
mailbox.h | 3 +
- main.c | 54 ++
+ main.c | 48 +
mutt.h | 40 +-
mutt_sasl.c | 5 +
muttlib.c | 17 +-
@@ -55,8 +57,12 @@ Signed-off-by: Matteo F. Vescovi <mfv at debian.org>
sort.c | 16 +
url.c | 4 +-
url.h | 2 +
- 49 files changed, 6706 insertions(+), 82 deletions(-)
+ version.c | 5 +
+ 53 files changed, 6982 insertions(+), 84 deletions(-)
create mode 100644 ChangeLog.nntp
+ create mode 100644 README.nntp
+ create mode 100644 doc/muttrc.nntp
+ create mode 100644 doc/vimrc-nntp
create mode 100644 newsrc.c
create mode 100644 nntp.c
create mode 100644 nntp.h
@@ -484,18 +490,18 @@ index 0000000..1452e86
+* Fri Jan 28 2000 Vsevolod Volkov <vvv at mutt.kiev.ua>
+- update to 1.1.2
diff --git a/Makefile.am b/Makefile.am
-index c593f4f..8e910fb 100644
+index a97f4ac..ae1c628 100644
--- a/Makefile.am
+++ b/Makefile.am
-@@ -57,6 +57,7 @@ EXTRA_mutt_SOURCES = account.c bcache.c crypt-gpgme.c crypt-mod-pgp-classic.c \
- mutt_sasl.c mutt_socket.c mutt_ssl.c mutt_ssl_gnutls.c \
+@@ -56,6 +56,7 @@ EXTRA_mutt_SOURCES = account.c bcache.c crypt-gpgme.c crypt-mod-pgp-classic.c \
+ mutt_idna.c mutt_sasl.c mutt_socket.c mutt_ssl.c mutt_ssl_gnutls.c \
mutt_tunnel.c pgp.c pgpinvoke.c pgpkey.c pgplib.c pgpmicalg.c \
pgppacket.c pop.c pop_auth.c pop_lib.c remailer.c resize.c sha1.c \
+ nntp.c newsrc.c \
smime.c smtp.c utf8.c wcwidth.c \
bcache.h browser.h hcache.h mbyte.h mutt_idna.h remailer.h url.h
-@@ -68,6 +69,7 @@ EXTRA_DIST = COPYRIGHT GPL OPS OPS.PGP OPS.CRYPT OPS.SMIME TODO UPDATING \
+@@ -67,6 +68,7 @@ EXTRA_DIST = COPYRIGHT GPL OPS OPS.PGP OPS.CRYPT OPS.SMIME TODO UPDATING \
mutt_regex.h mutt_sasl.h mutt_socket.h mutt_ssl.h mutt_tunnel.h \
mx.h pager.h pgp.h pop.h protos.h rfc1524.h rfc2047.h \
rfc2231.h rfc822.h rfc3676.h sha1.h sort.h mime.types VERSION prepare \
@@ -504,7 +510,7 @@ index c593f4f..8e910fb 100644
mbyte.h lib.h extlib.c pgpewrap.c smime_keys.pl pgplib.h \
README.SSL smime.h group.h \
diff --git a/OPS b/OPS
-index 1ed9c96..b900373 100644
+index 02cea8e..41b4e10 100644
--- a/OPS
+++ b/OPS
@@ -8,14 +8,16 @@ OP_BOUNCE_MESSAGE "remail a message to another user"
@@ -605,6 +611,143 @@ index 1ed9c96..b900373 100644
OP_VERSION "show the Mutt version number and date"
OP_VIEW_ATTACH "view attachment using mailcap entry if necessary"
OP_VIEW_ATTACHMENTS "show MIME attachments"
+diff --git a/PATCHES b/PATCHES
+index a2887df..71e4893 100644
+--- a/PATCHES
++++ b/PATCHES
+@@ -3,3 +3,4 @@ patch-compress-neo-UNKNOWN
+ patch-sensible-browser-neo-UNKNOWN
+ patch-trash-neo-20160502
+ patch-ifdef-neo-20160502
++patch-nntp-neo-UNKNOWN
+diff --git a/README.nntp b/README.nntp
+new file mode 100644
+index 0000000..f8e5020
+--- /dev/null
++++ b/README.nntp
+@@ -0,0 +1,122 @@
++NNTP Patch
++==========
++
++ Talk to a Usenet news server
++
++Patch
++-----
++
++ To check if Mutt supports "NNTP", look for "+USE_NNTP" in the mutt version.
++
++ Dependencies
++ * mutt-1.5.24
++
++Introduction
++------------
++
++ Reading news via NNTP
++
++ If compiled with *--enable-nntp* option, Mutt can read news from news
++ server via NNTP. You can open a newsgroup with function
++ ''change-newsgroup'' (default: ''i''). Default news server can be obtained
++ from '$NNTPSERVER' environment variable or from '/etc/nntpserver' file.
++ Like other news readers, info about subscribed newsgroups is saved in file
++ by $newsrc variable. The variable $news_cache_dir can be used to point to a
++ directory. Mutt will create a hierarchy of subdirectories named like the
++ account and newsgroup the cache is for. Also the hierarchy is used to store
++ header cache if Mutt was compiled with header cache support.
++
++Variables
++---------
++
++ NNTP Variables
++
++ | Name | Type | Default |
++ |-------------------------|---------|-----------------------------|
++ | 'ask_follow_up' | boolean | 'no' |
++ | 'ask_x_comment_to' | boolean | 'no' |
++ | 'catchup_newsgroup' | quad | 'ask-yes' |
++ | 'followup_to_poster' | quad | 'ask-yes' |
++ | 'group_index_format' | string | '%4C %M%N %5s %-45.45f %d' |
++ | 'inews' | string | (empty) |
++ | 'mime_subject' | boolean | 'yes' |
++ | 'newsgroups_charset' | string | 'utf-8' |
++ | 'newsrc' | string | '~/.newsrc' |
++ | 'news_cache_dir' | string | '~/.mutt' |
++ | 'news_server' | string | (empty) |
++ | 'nntp_authenticators' | string | (empty) |
++ | 'nntp_context' | number | '1000' |
++ | 'nntp_listgroup' | boolean | 'yes' |
++ | 'nntp_load_description' | boolean | 'yes' |
++ | 'nntp_pass' | string | (empty) |
++ | 'nntp_poll' | number | '60' |
++ | 'nntp_user' | string | (empty) |
++ | 'post_moderated' | quad | 'ask-yes' |
++ | 'save_unsubscribed' | boolean | 'no' |
++ | 'show_new_news' | boolean | 'yes' |
++ | 'show_only_unread' | boolean | 'no' |
++ | 'x_comment_to' | boolean | 'no' |
++
++Functions
++---------
++
++ NNTP Functions
++
++ | Menus | Default Key | Function | Description |
++ |------------------------|-------------|-------------------------------|------------------------------------------------|
++ | browser,index | y | '<catchup>' | mark all articles in newsgroup as read |
++ | index,pager | i | '<change-newsgroup>' | open a different newsgroup |
++ | pager | X | '<change-vfolder>' | open a different virtual folder |
++ | compose | o | '<edit-followup-to>' | edit the Followup-To field |
++ | compose | N | '<edit-newsgroups>' | edit the newsgroups list |
++ | compose | x | '<edit-x-comment-to>' | edit the X-Comment-To field |
++ | pager | + | '<entire-thread>' | read entire thread of the current message |
++ | attachment,index,pager | F | '<followup-message>' | followup to newsgroup |
++ | pager | ` | '<modify-labels>' | modify (notmuch) tags |
++ | index,pager | P | '<post-message>' | post message to newsgroup |
++ | browser | g | '<reload-active>' | load list of all newsgroups from NNTP server |
++ | browser | s | '<subscribe>' | subscribe to current mbox (IMAP/NNTP only) |
++ | browser | S | '<subscribe-pattern>' | subscribe to newsgroups matching a pattern |
++ | browser | Y | '<uncatchup>' | mark all articles in newsgroup as unread |
++ | browser | u | '<unsubscribe>' | unsubscribe from current mbox (IMAP/NNTP only) |
++ | browser | U | '<unsubscribe-pattern>' | unsubscribe from newsgroups matching a pattern |
++ | index,pager | Alt-i | '<change-newsgroup-readonly>' | open a different newsgroup in read only mode |
++ | attachment,index,pager | Alt-F | '<forward-to-group>' | forward to newsgroup |
++ | index | (none) | '<get-children>' | get all children of the current message |
++ | index | Alt-G | '<get-parent>' | get parent of the current message |
++ | index,pager | (none) | '<imap-fetch-mail>' | force retrieval of mail from IMAP server |
++ | index,pager | (none) | '<imap-logout-all>' | logout from all IMAP servers |
++ | pager | (none) | '<modify-labels-then-hide>' | modify labeld and then hide message |
++ | index | (none) | '<reconstruct-thread>' | reconstruct thread containing current message |
++ | pager | Alt-X | '<vfolder-from-query>' | generate virtual folder from query |
++ | index | Ctrl-G | '<get-message>' | get message with Message-Id |
++
++Commands
++--------
++
++Colors
++------
++
++ None
++
++Sort
++----
++
++ None
++
++See Also
++--------
++
++ * NeoMutt project
++ * Compile-Time Features
++
++Known Bugs
++----------
++
++Credits
++-------
++
++ * Vsevolod Volkov <vvv at mutt.org.ua>
++ * Felix von Leitner <leitner at fefe.de>
++ * Richard Russon <rich at flatcap.org>
++
diff --git a/account.c b/account.c
index 235ff10..57eba36 100644
--- a/account.c
@@ -694,7 +837,7 @@ index 928408a..071f22c 100644
#endif /* _ATTACH_H_ */
diff --git a/browser.c b/browser.c
-index 8ce3b2c..e0b80bc 100644
+index b0dbeb5..f04ca15 100644
--- a/browser.c
+++ b/browser.c
@@ -32,6 +32,9 @@
@@ -1024,10 +1167,10 @@ index 8ce3b2c..e0b80bc 100644
+ }
+ else
+#endif
- if (buffy)
- {
+ if (buffy) {
menu->is_mailbox_list = 1;
-@@ -609,6 +821,31 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files, int *num
+ snprintf (title, titlelen, _("Mailboxes [%d]"), mutt_buffy_check (0));
+@@ -606,6 +818,31 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files, int *num
if (!folder)
strfcpy (LastDirBackup, LastDir, sizeof (LastDirBackup));
@@ -1059,7 +1202,7 @@ index 8ce3b2c..e0b80bc 100644
if (*f)
{
mutt_expand_path (f, flen);
-@@ -705,6 +942,9 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files, int *num
+@@ -702,6 +939,9 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files, int *num
menu->tag = file_tag;
menu->help = mutt_compile_help (helpstr, sizeof (helpstr), MENU_FOLDER,
@@ -1069,7 +1212,7 @@ index 8ce3b2c..e0b80bc 100644
FolderHelp);
init_menu (&state, menu, title, sizeof (title), buffy);
-@@ -842,7 +1082,11 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files, int *num
+@@ -838,7 +1078,11 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files, int *num
}
}
@@ -1081,7 +1224,7 @@ index 8ce3b2c..e0b80bc 100644
{
strfcpy (f, state.entry[menu->current].name, flen);
mutt_expand_path (f, flen);
-@@ -900,14 +1144,6 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files, int *num
+@@ -896,14 +1140,6 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files, int *num
break;
#ifdef USE_IMAP
@@ -1096,7 +1239,7 @@ index 8ce3b2c..e0b80bc 100644
case OP_BROWSER_TOGGLE_LSUB:
if (option (OPTIMAPLSUB))
unset_option (OPTIMAPLSUB);
-@@ -1008,6 +1244,11 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files, int *num
+@@ -1004,6 +1240,11 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files, int *num
case OP_CHANGE_DIRECTORY:
@@ -1108,7 +1251,7 @@ index 8ce3b2c..e0b80bc 100644
strfcpy (buf, LastDir, sizeof (buf));
#ifdef USE_IMAP
if (!state.imap_browse)
-@@ -1273,6 +1514,210 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files, int *num
+@@ -1269,6 +1510,210 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files, int *num
else
mutt_error _("Error trying to view file");
}
@@ -1345,10 +1488,10 @@ index 515d69f..ad89ab2 100644
};
diff --git a/buffy.c b/buffy.c
-index d34e6f5..ead572e 100644
+index 99258c8..4a31b24 100644
--- a/buffy.c
+++ b/buffy.c
-@@ -563,6 +563,9 @@ int mutt_buffy_check (int force)
+@@ -580,6 +580,9 @@ int mutt_buffy_check (int force)
/* check device ID and serial number instead of comparing paths */
if (!Context || Context->magic == M_IMAP || Context->magic == M_POP
@@ -1358,7 +1501,7 @@ index d34e6f5..ead572e 100644
|| stat (Context->path, &contex_sb) != 0)
{
contex_sb.st_dev=0;
-@@ -579,6 +582,11 @@ int mutt_buffy_check (int force)
+@@ -599,6 +602,11 @@ int mutt_buffy_check (int force)
tmp->magic = M_POP;
else
#endif
@@ -1370,7 +1513,7 @@ index d34e6f5..ead572e 100644
if (stat (tmp->path, &sb) != 0 || (S_ISREG(sb.st_mode) && sb.st_size == 0) ||
(!tmp->magic && (tmp->magic = mx_get_magic (tmp->path)) <= 0))
{
-@@ -594,7 +602,11 @@ int mutt_buffy_check (int force)
+@@ -614,7 +622,11 @@ int mutt_buffy_check (int force)
/* check to see if the folder is the currently selected folder
* before polling */
if (!Context || !Context->path ||
@@ -1468,22 +1611,47 @@ index d0ee4af..8dc48cd 100644
if (*s == '=' || *s == '+' || *s == '!')
{
diff --git a/compose.c b/compose.c
-index 42bdb46..01c79ce 100644
+index c7a39c9..04a2e43 100644
--- a/compose.c
+++ b/compose.c
-@@ -38,6 +38,11 @@
+@@ -35,11 +35,16 @@
+ #ifdef USE_SIDEBAR
+ #include "sidebar.h"
+ #endif
++#include "mx.h"
+
+ #ifdef MIXMASTER
#include "remailer.h"
#endif
+#ifdef USE_NNTP
-+#include "mx.h"
+#include "nntp.h"
+#endif
+
#include <errno.h>
#include <string.h>
#include <sys/stat.h>
-@@ -84,6 +89,16 @@ static const char * const Prompts[] =
+@@ -70,11 +75,17 @@ enum
+ HDR_CRYPT,
+ HDR_CRYPTINFO,
+
++#ifdef USE_NNTP
++ HDR_NEWSGROUPS,
++ HDR_FOLLOWUPTO,
++ HDR_XCOMMENTTO,
++#endif
++
+ HDR_ATTACH = (HDR_FCC + 5) /* where to start printing the attachments */
+ };
+
+-#define HDR_XOFFSET 10
+-#define TITLE_FMT "%10s" /* Used for Prompts, which are ASCII */
++#define HDR_XOFFSET 14
++#define TITLE_FMT "%14s" /* Used for Prompts, which are ASCII */
+ #define W (COLS - HDR_XOFFSET - SidebarWidth)
+
+ static const char * const Prompts[] =
+@@ -86,6 +97,16 @@ static const char * const Prompts[] =
"Subject: ",
"Reply-To: ",
"Fcc: "
@@ -1500,7 +1668,7 @@ index 42bdb46..01c79ce 100644
};
static const struct mapping_t ComposeHelp[] = {
-@@ -98,6 +108,19 @@ static const struct mapping_t ComposeHelp[] = {
+@@ -100,6 +121,19 @@ static const struct mapping_t ComposeHelp[] = {
{ NULL, 0 }
};
@@ -1520,7 +1688,7 @@ index 42bdb46..01c79ce 100644
static void snd_entry (char *b, size_t blen, MUTTMENU *menu, int num)
{
mutt_FormatString (b, blen, 0, NONULL (AttachFormat), mutt_attach_fmt,
-@@ -151,11 +174,19 @@ static void redraw_crypt_lines (HEADER *msg)
+@@ -153,11 +187,19 @@ static void redraw_crypt_lines (HEADER *msg)
if ((WithCrypto & APPLICATION_PGP)
&& (msg->security & APPLICATION_PGP) && (msg->security & SIGN))
@@ -1542,7 +1710,36 @@ index 42bdb46..01c79ce 100644
}
if ((WithCrypto & APPLICATION_SMIME)
-@@ -506,6 +537,12 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
+@@ -255,9 +297,28 @@ static void draw_envelope (HEADER *msg, char *fcc)
+ sb_draw();
+ #endif
+ draw_envelope_addr (HDR_FROM, msg->env->from);
++#ifdef USE_NNTP
++ if (!option (OPTNEWSSEND))
++ {
++#endif
+ draw_envelope_addr (HDR_TO, msg->env->to);
+ draw_envelope_addr (HDR_CC, msg->env->cc);
+ draw_envelope_addr (HDR_BCC, msg->env->bcc);
++#ifdef USE_NNTP
++ }
++ else
++ {
++ mvprintw (HDR_TO, 0, TITLE_FMT , Prompts[HDR_NEWSGROUPS - 1]);
++ mutt_paddstr (W, NONULL (msg->env->newsgroups));
++ mvprintw (HDR_CC, 0, TITLE_FMT , Prompts[HDR_FOLLOWUPTO - 1]);
++ mutt_paddstr (W, NONULL (msg->env->followup_to));
++ if (option (OPTXCOMMENTTO))
++ {
++ mvprintw (HDR_BCC, 0, TITLE_FMT , Prompts[HDR_XCOMMENTTO - 1]);
++ mutt_paddstr (W, NONULL (msg->env->x_comment_to));
++ }
++ }
++#endif
+ mvprintw (HDR_SUBJECT, SidebarWidth, TITLE_FMT, Prompts[HDR_SUBJECT - 1]);
+ mutt_paddstr (W, NONULL (msg->env->subject));
+ draw_envelope_addr (HDR_REPLYTO, msg->env->reply_to);
+@@ -510,6 +571,12 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
/* Sort, SortAux could be changed in mutt_index_menu() */
int oldSort, oldSortAux;
struct stat st;
@@ -1555,7 +1752,7 @@ index 42bdb46..01c79ce 100644
mutt_attach_init (msg->content);
idx = mutt_gen_attach_list (msg->content, -1, idx, &idxlen, &idxmax, 0, 1);
-@@ -516,10 +553,18 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
+@@ -520,10 +587,18 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
menu->make_entry = snd_entry;
menu->tag = mutt_tag_attach;
menu->data = idx;
@@ -1574,7 +1771,7 @@ index 42bdb46..01c79ce 100644
switch (op = mutt_menuLoop (menu))
{
case OP_REDRAW:
-@@ -532,6 +577,10 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
+@@ -536,6 +611,10 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
mutt_message_hook (NULL, msg, M_SEND2HOOK);
break;
case OP_COMPOSE_EDIT_TO:
@@ -1585,7 +1782,7 @@ index 42bdb46..01c79ce 100644
menu->redraw = edit_address_list (HDR_TO, &msg->env->to);
if (option (OPTCRYPTOPPORTUNISTICENCRYPT))
{
-@@ -541,6 +590,10 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
+@@ -545,6 +624,10 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
mutt_message_hook (NULL, msg, M_SEND2HOOK);
break;
case OP_COMPOSE_EDIT_BCC:
@@ -1596,7 +1793,7 @@ index 42bdb46..01c79ce 100644
menu->redraw = edit_address_list (HDR_BCC, &msg->env->bcc);
if (option (OPTCRYPTOPPORTUNISTICENCRYPT))
{
-@@ -550,6 +603,10 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
+@@ -554,6 +637,10 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
mutt_message_hook (NULL, msg, M_SEND2HOOK);
break;
case OP_COMPOSE_EDIT_CC:
@@ -1607,7 +1804,7 @@ index 42bdb46..01c79ce 100644
menu->redraw = edit_address_list (HDR_CC, &msg->env->cc);
if (option (OPTCRYPTOPPORTUNISTICENCRYPT))
{
-@@ -558,6 +615,62 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
+@@ -562,6 +649,62 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
}
mutt_message_hook (NULL, msg, M_SEND2HOOK);
break;
@@ -1670,7 +1867,7 @@ index 42bdb46..01c79ce 100644
case OP_COMPOSE_EDIT_SUBJECT:
if (msg->env->subject)
strfcpy (buf, msg->env->subject, sizeof (buf));
-@@ -726,6 +839,9 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
+@@ -730,6 +873,9 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
break;
case OP_COMPOSE_ATTACH_MESSAGE:
@@ -1680,7 +1877,7 @@ index 42bdb46..01c79ce 100644
{
char *prompt;
HEADER *h;
-@@ -733,7 +849,22 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
+@@ -737,7 +883,22 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
fname[0] = 0;
prompt = _("Open mailbox to attach message from");
@@ -1703,7 +1900,7 @@ index 42bdb46..01c79ce 100644
{
strfcpy (fname, NONULL (Context->path), sizeof (fname));
mutt_pretty_mailbox (fname, sizeof (fname));
-@@ -742,6 +873,11 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
+@@ -746,6 +907,11 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
if (mutt_enter_fname (prompt, fname, sizeof (fname), &menu->redraw, 1) == -1 || !fname[0])
break;
@@ -1715,7 +1912,7 @@ index 42bdb46..01c79ce 100644
mutt_expand_path (fname, sizeof (fname));
#ifdef USE_IMAP
if (!mx_is_imap (fname))
-@@ -749,6 +885,9 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
+@@ -753,6 +919,9 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
#ifdef USE_POP
if (!mx_is_pop (fname))
#endif
@@ -1726,10 +1923,10 @@ index 42bdb46..01c79ce 100644
if (access (fname, R_OK) == -1)
{
diff --git a/configure.ac b/configure.ac
-index 8c833fa..aa364c3 100644
+index 7c038fd..9aa056a 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -600,6 +600,15 @@ AC_ARG_ENABLE(imap, AS_HELP_STRING([--enable-imap],[Enable IMAP support]),
+@@ -617,6 +617,15 @@ AC_ARG_ENABLE(imap, AS_HELP_STRING([--enable-imap],[Enable IMAP support]),
])
AM_CONDITIONAL(BUILD_IMAP, test x$need_imap = xyes)
@@ -1745,7 +1942,7 @@ index 8c833fa..aa364c3 100644
AC_ARG_ENABLE(smtp, AS_HELP_STRING([--enable-smtp],[include internal SMTP relay support]),
[if test $enableval = yes; then
AC_DEFINE(USE_SMTP, 1, [Include internal SMTP relay support])
-@@ -607,7 +616,7 @@ AC_ARG_ENABLE(smtp, AS_HELP_STRING([--enable-smtp],[include internal SMTP relay
+@@ -624,7 +633,7 @@ AC_ARG_ENABLE(smtp, AS_HELP_STRING([--enable-smtp],[include internal SMTP relay
need_socket="yes"
fi])
@@ -1755,7 +1952,7 @@ index 8c833fa..aa364c3 100644
fi
diff --git a/curs_main.c b/curs_main.c
-index 3ad22c4..1280414 100644
+index 48443cf..b64a862 100644
--- a/curs_main.c
+++ b/curs_main.c
@@ -22,6 +22,7 @@
@@ -1766,7 +1963,7 @@ index 3ad22c4..1280414 100644
#include "mutt_menu.h"
#include "mailbox.h"
#include "mapping.h"
-@@ -40,6 +41,10 @@
+@@ -43,6 +44,10 @@
#include "mutt_crypt.h"
@@ -1777,7 +1974,7 @@ index 3ad22c4..1280414 100644
#include <ctype.h>
#include <stdlib.h>
-@@ -568,12 +573,27 @@ static const struct mapping_t IndexHelp[] = {
+@@ -494,12 +499,27 @@ static const struct mapping_t IndexHelp[] = {
{ NULL, 0 }
};
@@ -1805,7 +2002,7 @@ index 3ad22c4..1280414 100644
int op = OP_NULL;
int done = 0; /* controls when to exit the "event" loop */
int i = 0, j;
-@@ -594,7 +614,11 @@ int mutt_index_menu (void)
+@@ -520,7 +540,11 @@ int mutt_index_menu (void)
menu->make_entry = index_make_entry;
menu->color = index_color;
menu->current = ci_first_message ();
@@ -1818,7 +2015,7 @@ index 3ad22c4..1280414 100644
if (!attach_msg)
mutt_buffy_check(1); /* force the buffy check after we enter the folder */
-@@ -853,6 +877,9 @@ int mutt_index_menu (void)
+@@ -794,6 +818,9 @@ int mutt_index_menu (void)
mutt_curs_set (1); /* fallback from the pager */
}
@@ -1828,7 +2025,7 @@ index 3ad22c4..1280414 100644
switch (op)
{
-@@ -903,6 +930,161 @@ int mutt_index_menu (void)
+@@ -844,6 +871,161 @@ int mutt_index_menu (void)
menu_current_bottom (menu);
break;
@@ -1990,7 +2187,7 @@ index 3ad22c4..1280414 100644
case OP_JUMP:
CHECK_MSGCOUNT;
-@@ -1000,11 +1182,33 @@ int mutt_index_menu (void)
+@@ -941,11 +1123,33 @@ int mutt_index_menu (void)
break;
case OP_MAIN_LIMIT:
@@ -2025,8 +2222,8 @@ index 3ad22c4..1280414 100644
{
if (menu->oldcurrent >= 0)
{
-@@ -1249,15 +1453,22 @@ int mutt_index_menu (void)
- case OP_SIDEBAR_OPEN:
+@@ -1194,15 +1398,22 @@ int mutt_index_menu (void)
+ #endif
case OP_MAIN_CHANGE_FOLDER:
case OP_MAIN_NEXT_UNREAD_MAILBOX:
-
@@ -2055,7 +2252,7 @@ index 3ad22c4..1280414 100644
cp = _("Open mailbox in read-only mode");
else
cp = _("Open mailbox");
-@@ -1276,6 +1487,22 @@ int mutt_index_menu (void)
+@@ -1221,6 +1432,22 @@ int mutt_index_menu (void)
}
else
{
@@ -2077,8 +2274,8 @@ index 3ad22c4..1280414 100644
+#endif
mutt_buffy (buf, sizeof (buf));
- if ( op == OP_SIDEBAR_OPEN ) {
-@@ -1299,6 +1526,14 @@ int mutt_index_menu (void)
+ #ifdef USE_SIDEBAR
+@@ -1248,6 +1475,14 @@ int mutt_index_menu (void)
}
}
@@ -2091,9 +2288,9 @@ index 3ad22c4..1280414 100644
+ else
+#endif
mutt_expand_path (buf, sizeof (buf));
- set_curbuffy(buf);
- if (mx_get_magic (buf) <= 0)
-@@ -1346,15 +1581,18 @@ int mutt_index_menu (void)
+ #ifdef USE_SIDEBAR
+ sb_set_open_buffy (buf);
+@@ -1297,15 +1532,18 @@ int mutt_index_menu (void)
CurrentMenu = MENU_MAIN;
mutt_folder_hook (buf);
@@ -2115,7 +2312,7 @@ index 3ad22c4..1280414 100644
mutt_clear_error ();
mutt_buffy_check(1); /* force the buffy check after we have changed
the folder */
-@@ -1423,6 +1661,7 @@ int mutt_index_menu (void)
+@@ -1374,6 +1612,7 @@ int mutt_index_menu (void)
CHECK_MSGCOUNT;
CHECK_VISIBLE;
CHECK_READONLY;
@@ -2123,7 +2320,7 @@ index 3ad22c4..1280414 100644
if ((Sort & SORT_MASK) != SORT_THREADS)
mutt_error _("Threading is not enabled.");
-@@ -1458,7 +1697,7 @@ int mutt_index_menu (void)
+@@ -1409,7 +1648,7 @@ int mutt_index_menu (void)
CHECK_VISIBLE;
CHECK_READONLY;
/* L10N: CHECK_ACL */
@@ -2132,7 +2329,7 @@ index 3ad22c4..1280414 100644
if ((Sort & SORT_MASK) != SORT_THREADS)
mutt_error _("Threading is not enabled.");
-@@ -2095,6 +2334,20 @@ int mutt_index_menu (void)
+@@ -2046,6 +2285,20 @@ int mutt_index_menu (void)
}
break;
@@ -2153,7 +2350,7 @@ index 3ad22c4..1280414 100644
case OP_DISPLAY_ADDRESS:
CHECK_MSGCOUNT;
-@@ -2301,6 +2554,39 @@ int mutt_index_menu (void)
+@@ -2252,6 +2505,39 @@ int mutt_index_menu (void)
menu->redraw = REDRAW_FULL;
break;
@@ -2193,422 +2390,409 @@ index 3ad22c4..1280414 100644
case OP_REPLY:
CHECK_ATTACH;
-diff --git a/doc/Muttrc b/doc/Muttrc
-index 01272c7..4145b73 100644
---- a/doc/Muttrc
-+++ b/doc/Muttrc
-@@ -240,6 +240,28 @@ attachments -I message/external-body
- # editing the body of an outgoing message.
- #
- #
-+# set ask_follow_up=no
-+#
-+# Name: ask_follow_up
-+# Type: boolean
-+# Default: no
-+#
-+#
-+# If set, Mutt will prompt you for follow-up groups before editing
-+# the body of an outgoing message.
-+#
-+#
-+# set ask_x_comment_to=no
-+#
-+# Name: ask_x_comment_to
-+# Type: boolean
-+# Default: no
-+#
-+#
-+# If set, Mutt will prompt you for x-comment-to field before editing
-+# the body of an outgoing message.
-+#
-+#
- # set assumed_charset=""
- #
- # Name: assumed_charset
-@@ -445,6 +467,17 @@ attachments -I message/external-body
- # visual terminals don't permit making the cursor invisible.
- #
- #
-+# set catchup_newsgroup=ask-yes
-+#
-+# Name: catchup_newsgroup
-+# Type: quadoption
-+# Default: ask-yes
-+#
-+#
-+# If this variable is set, Mutt will mark all articles in newsgroup
-+# as read when you quit the newsgroup (catchup newsgroup).
-+#
-+#
- # set certificate_file="~/.mutt_certificates"
- #
- # Name: certificate_file
-@@ -1193,6 +1226,19 @@ attachments -I message/external-body
- # of the same email for you.
- #
- #
-+# set followup_to_poster=ask-yes
-+#
-+# Name: followup_to_poster
-+# Type: quadoption
-+# Default: ask-yes
-+#
-+#
-+# If this variable is set and the keyword "poster" is present in
-+# Followup-To header, follow-up to newsgroup function is not
-+# permitted. The message will be mailed to the submitter of the
-+# message via mail.
-+#
-+#
- # set force_name=no
- #
- # Name: force_name
-@@ -1303,6 +1349,27 @@ attachments -I message/external-body
- # ``Franklin'' to ``Franklin, Steve''.
- #
- #
-+# set group_index_format="%4C %M%N %5s %-45.45f %d"
-+#
-+# Name: group_index_format
-+# Type: string
-+# Default: "%4C %M%N %5s %-45.45f %d"
-+#
-+#
-+# This variable allows you to customize the newsgroup browser display to
-+# your personal taste. This string is similar to ``index_format'', but
-+# has its own set of printf()-like sequences:
-+# %C current newsgroup number
-+# %d description of newsgroup (becomes from server)
-+# %f newsgroup name
-+# %M - if newsgroup not allowed for direct post (moderated for example)
-+# %N N if newsgroup is new, u if unsubscribed, blank otherwise
-+# %n number of new articles in newsgroup
-+# %s number of unread articles in newsgroup
-+# %>X right justify the rest of the string and pad with character "X"
-+# %|X pad to the end of the line with character "X"
-+#
-+#
- # set hdrs=yes
- #
- # Name: hdrs
-@@ -1875,6 +1942,7 @@ attachments -I message/external-body
- # %E number of messages in current thread
- # %f sender (address + real name), either From: or Return-Path:
- # %F author name, or recipient name if the message is from you
-+# %g newsgroup name (if compiled with NNTP support)
- # %H spam attribute(s) of this message
- # %i message-id of the current message
- # %l number of lines in the message (does not work with maildir,
-@@ -1898,6 +1966,8 @@ attachments -I message/external-body
- # %T the appropriate character from the $to_chars string
- # %u user (login) name of the author
- # %v first name of the author, or the recipient if the message is from you
-+# %W name of organization of author (``Organization:'' field)
-+# %x ``X-Comment-To:'' field (if present and compiled with NNTP support)
- # %X number of attachments
- # (please see the ``attachments'' section for possible speed effects)
- # %y ``X-Label:'' field, if present
-@@ -1933,6 +2003,27 @@ attachments -I message/external-body
- # ``save-hook'', ``fcc-hook'' and ``fcc-save-hook'', too.
- #
- #
-+# set inews=""
-+#
-+# Name: inews
-+# Type: path
-+# Default: ""
-+#
-+#
-+# If set, specifies the program and arguments used to deliver news posted
-+# by Mutt. Otherwise, mutt posts article using current connection to
-+# news server. The following printf-style sequence is understood:
-+# %a account url
-+# %p port
-+# %P port if specified
-+# %s news server name
-+# %S url schema
-+# %u username
-+#
-+#
-+# Example: set inews="/usr/local/bin/inews -hS"
-+#
-+#
- # set ispell="ispell"
- #
- # Name: ispell
-@@ -2317,6 +2408,18 @@ attachments -I message/external-body
- # be attached to the newly composed message if this option is set.
- #
- #
-+# set mime_subject=yes
-+#
-+# Name: mime_subject
-+# Type: boolean
-+# Default: yes
-+#
-+#
-+# If unset, 8-bit ``subject:'' line in article header will not be
-+# encoded according to RFC2047 to base64. This is useful when message
-+# is Usenet article, because MIME for news is nonstandard feature.
-+#
-+#
- # set mix_entry_format="%4n %c %-16s %a"
- #
- # Name: mix_entry_format
-@@ -2383,6 +2486,144 @@ attachments -I message/external-body
- # See also $read_inc, $write_inc and $net_inc.
- #
- #
-+# set news_cache_dir="~/.mutt"
-+#
-+# Name: news_cache_dir
-+# Type: path
-+# Default: "~/.mutt"
-+#
-+#
-+# This variable pointing to directory where Mutt will save cached news
-+# articles and headers in. If unset, articles and headers will not be
-+# saved at all and will be reloaded from the server each time.
-+#
-+#
-+# set news_server=""
-+#
-+# Name: news_server
-+# Type: string
-+# Default: ""
-+#
-+#
-+# This variable specifies domain name or address of NNTP server. It
-+# defaults to the news server specified in the environment variable
-+# $NNTPSERVER or contained in the file /etc/nntpserver. You can also
-+# specify username and an alternative port for each news server, ie:
-+#
-+# [[s]news://][username[:password]@]server[:port]
-+#
-+#
-+# set newsgroups_charset="utf-8"
-+#
-+# Name: newsgroups_charset
-+# Type: string
-+# Default: "utf-8"
-+#
-+#
-+# Character set of newsgroups descriptions.
-+#
-+#
-+# set newsrc="~/.newsrc"
-+#
-+# Name: newsrc
-+# Type: path
-+# Default: "~/.newsrc"
-+#
-+#
-+# The file, containing info about subscribed newsgroups - names and
-+# indexes of read articles. The following printf-style sequence
-+# is understood:
-+# %a account url
-+# %p port
-+# %P port if specified
-+# %s news server name
-+# %S url schema
-+# %u username
-+#
-+#
-+# set nntp_authenticators=""
-+#
-+# Name: nntp_authenticators
-+# Type: string
-+# Default: ""
-+#
-+#
-+# This is a colon-delimited list of authentication methods mutt may
-+# attempt to use to log in to a news server, in the order mutt should
-+# try them. Authentication methods are either ``user'' or any
-+# SASL mechanism, e.g. ``digest-md5'', ``gssapi'' or ``cram-md5''.
-+# This option is case-insensitive. If it's unset (the default)
-+# mutt will try all available methods, in order from most-secure to
-+# least-secure.
-+#
-+# Example:
-+# set nntp_authenticators="digest-md5:user"
-+#
-+# Note: Mutt will only fall back to other authentication methods if
-+# the previous methods are unavailable. If a method is available but
-+# authentication fails, mutt will not connect to the IMAP server.
-+#
-+#
-+# set nntp_context=1000
-+#
-+# Name: nntp_context
-+# Type: number
-+# Default: 1000
-+#
-+#
-+# This variable defines number of articles which will be in index when
-+# newsgroup entered. If active newsgroup have more articles than this
-+# number, oldest articles will be ignored. Also controls how many
-+# articles headers will be saved in cache when you quit newsgroup.
-+#
-+#
-+# set nntp_load_description=yes
-+#
-+# Name: nntp_load_description
-+# Type: boolean
-+# Default: yes
-+#
-+#
-+# This variable controls whether or not descriptions for each newsgroup
-+# must be loaded when newsgroup is added to list (first time list
-+# loading or new newsgroup adding).
-+#
-+#
-+# set nntp_user=""
-+#
-+# Name: nntp_user
-+# Type: string
-+# Default: ""
-+#
-+#
-+# Your login name on the NNTP server. If unset and NNTP server requires
-+# authentification, Mutt will prompt you for your account name when you
-+# connect to news server.
-+#
-+#
-+# set nntp_pass=""
-+#
-+# Name: nntp_pass
-+# Type: string
-+# Default: ""
-+#
-+#
-+# Your password for NNTP account.
-+#
-+#
-+# set nntp_poll=60
-+#
-+# Name: nntp_poll
-+# Type: number
-+# Default: 60
-+#
-+#
-+# The time in seconds until any operations on newsgroup except post new
-+# article will cause recheck for new news. If set to 0, Mutt will
-+# recheck newsgroup on each operation in index (stepping, read article,
-+# etc.).
-+#
-+#
- # set pager="builtin"
- #
- # Name: pager
-@@ -3130,6 +3371,19 @@ attachments -I message/external-body
- # string after the inclusion of a message which is being replied to.
- #
- #
-+# set post_moderated=ask-yes
-+#
-+# Name: post_moderated
-+# Type: quadoption
-+# Default: ask-yes
-+#
-+#
-+# If set to yes, Mutt will post article to newsgroup that have
-+# not permissions to posting (e.g. moderated). Note: if news server
-+# does not support posting to that newsgroup or totally read-only, that
-+# posting will not have an effect.
-+#
-+#
- # set postpone=ask-yes
- #
- # Name: postpone
-@@ -3815,6 +4069,41 @@ attachments -I message/external-body
- # shell from /etc/passwd is used.
- #
- #
-+# set save_unsubscribed=no
-+#
-+# Name: save_unsubscribed
-+# Type: boolean
-+# Default: no
-+#
-+#
-+# When set, info about unsubscribed newsgroups will be saved into
-+# ``newsrc'' file and into cache.
-+#
-+#
-+# set show_new_news=yes
-+#
-+# Name: show_new_news
-+# Type: boolean
-+# Default: yes
-+#
-+#
-+# If set, news server will be asked for new newsgroups on entering
-+# the browser. Otherwise, it will be done only once for a news server.
-+# Also controls whether or not number of new articles of subscribed
-+# newsgroups will be then checked.
-+#
-+#
-+# set show_only_unread=no
-+#
-+# Name: show_only_unread
-+# Type: boolean
-+# Default: no
-+#
-+#
-+# If set, only subscribed newsgroups that contain unread articles
-+# will be displayed in browser.
-+#
-+#
- # set sig_dashes=yes
- #
- # Name: sig_dashes
-@@ -5114,3 +5403,14 @@ attachments -I message/external-body
- # ``tuning'' section of the manual for performance considerations.
- #
- #
-+# set x_comment_to=no
-+#
-+# Name: x_comment_to
-+# Type: boolean
-+# Default: no
-+#
-+#
-+# If set, Mutt will add ``X-Comment-To:'' field (that contains full
-+# name of original article author) to article that followuped to newsgroup.
-+#
-+#
diff --git a/doc/manual.xml.head b/doc/manual.xml.head
-index 033abf9..898d2f7 100644
+index 166f3cb..ab6ac29 100644
--- a/doc/manual.xml.head
+++ b/doc/manual.xml.head
-@@ -1734,6 +1734,26 @@ See also the <link linkend="postpone">$postpone</link> quad-option.
-
+@@ -9976,6 +9976,398 @@ color sidebar_new green black
+ </sect2>
</sect1>
+<sect1 id="nntp">
-+<title>Reading news via NNTP</title>
-+
-+<para>
-+If compiled with <emphasis>--enable-nntp</emphasis> option, Mutt can
-+read news from news server via NNTP. You can open a newsgroup with
-+function ``change-newsgroup'' (default: ``i''). Default news server
-+can be obtained from <literal>$NNTPSERVER</literal> environment
-+variable or from <literal>/etc/nntpserver</literal> file. Like other
-+news readers, info about subscribed newsgroups is saved in file by
-+<link linkend="newsrc">$newsrc</link> variable. The variable <link
-+linkend="news-cache-dir">$news_cache_dir</link> can be used to point
-+to a directory. Mutt will create a hierarchy of subdirectories named
-+like the account and newsgroup the cache is for. Also the hierarchy
-+is used to store header cache if Mutt was compiled with <link
-+linkend="header-caching">header cache</link> support.
-+</para>
-+
++ <title>NNTP Patch</title>
++ <subtitle>Talk to a Usenet news server</subtitle>
++
++ <sect2 id="nntp-patch">
++ <title>Patch</title>
++
++ <para>
++ To check if Mutt supports <quote>NNTP</quote>, look for
++ <quote>+USE_NNTP</quote> in the mutt version.
++ See: <xref linkend="compile-time-features"/>.
++ </para>
++
++ <itemizedlist>
++ <title>Dependencies:</title>
++ <listitem><para>mutt-1.5.24</para></listitem>
++ </itemizedlist>
++
++ <para>This patch is part of the <ulink url="https://github.com/neomutt/neomutt/wiki">NeoMutt Project</ulink>.</para>
++ </sect2>
++
++ <sect2 id="nntp-intro">
++ <title>Introduction</title>
++
++ <para>Reading news via NNTP</para>
++ <para>
++ If compiled with <emphasis>--enable-nntp</emphasis> option, Mutt can
++ read news from news server via NNTP. You can open a newsgroup with
++ function ``change-newsgroup'' (default: ``i''). Default news server
++ can be obtained from <literal>$NNTPSERVER</literal> environment
++ variable or from <literal>/etc/nntpserver</literal> file. Like other
++ news readers, info about subscribed newsgroups is saved in file by
++ <link linkend="newsrc">$newsrc</link> variable. The variable <link
++ linkend="news-cache-dir">$news_cache_dir</link> can be used to point
++ to a directory. Mutt will create a hierarchy of subdirectories named
++ like the account and newsgroup the cache is for. Also the hierarchy
++ is used to store header cache if Mutt was compiled with <link
++ linkend="header-caching">header cache</link> support.
++ </para>
++ </sect2>
++
++ <sect2 id="nntp-variables">
++ <title>Variables</title>
++
++ <table id="table-nntp-variables">
++ <title>NNTP Variables</title>
++ <tgroup cols="3">
++ <thead>
++ <row>
++ <entry>Name</entry>
++ <entry>Type</entry>
++ <entry>Default</entry>
++ </row>
++ </thead>
++ <tbody>
++ <row>
++ <entry><literal>ask_follow_up</literal></entry>
++ <entry>boolean</entry>
++ <entry><literal>no</literal></entry>
++ </row>
++ <row>
++ <entry><literal>ask_x_comment_to</literal></entry>
++ <entry>boolean</entry>
++ <entry><literal>no</literal></entry>
++ </row>
++ <row>
++ <entry><literal>catchup_newsgroup</literal></entry>
++ <entry>quad</entry>
++ <entry><literal>ask-yes</literal></entry>
++ </row>
++ <row>
++ <entry><literal>followup_to_poster</literal></entry>
++ <entry>quad</entry>
++ <entry><literal>ask-yes</literal></entry>
++ </row>
++ <row>
++ <entry><literal>group_index_format</literal></entry>
++ <entry>string</entry>
++ <entry><literal>%4C %M%N %5s %-45.45f %d</literal></entry>
++ </row>
++ <row>
++ <entry><literal>inews</literal></entry>
++ <entry>string</entry>
++ <entry>(empty)</entry>
++ </row>
++ <row>
++ <entry><literal>mime_subject</literal></entry>
++ <entry>boolean</entry>
++ <entry><literal>yes</literal></entry>
++ </row>
++ <row>
++ <entry><literal>newsgroups_charset</literal></entry>
++ <entry>string</entry>
++ <entry><literal>utf-8</literal></entry>
++ </row>
++ <row>
++ <entry><literal>newsrc</literal></entry>
++ <entry>string</entry>
++ <entry><literal>~/.newsrc</literal></entry>
++ </row>
++ <row>
++ <entry><literal>news_cache_dir</literal></entry>
++ <entry>string</entry>
++ <entry><literal>~/.mutt</literal></entry>
++ </row>
++ <row>
++ <entry><literal>news_server</literal></entry>
++ <entry>string</entry>
++ <entry>(empty)</entry>
++ </row>
++ <row>
++ <entry><literal>nntp_authenticators</literal></entry>
++ <entry>string</entry>
++ <entry>(empty)</entry>
++ </row>
++ <row>
++ <entry><literal>nntp_context</literal></entry>
++ <entry>number</entry>
++ <entry><literal>1000</literal></entry>
++ </row>
++ <row>
++ <entry><literal>nntp_listgroup</literal></entry>
++ <entry>boolean</entry>
++ <entry><literal>yes</literal></entry>
++ </row>
++ <row>
++ <entry><literal>nntp_load_description</literal></entry>
++ <entry>boolean</entry>
++ <entry><literal>yes</literal></entry>
++ </row>
++ <row>
++ <entry><literal>nntp_pass</literal></entry>
++ <entry>string</entry>
++ <entry>(empty)</entry>
++ </row>
++ <row>
++ <entry><literal>nntp_poll</literal></entry>
++ <entry>number</entry>
++ <entry><literal>60</literal></entry>
++ </row>
++ <row>
++ <entry><literal>nntp_user</literal></entry>
++ <entry>string</entry>
++ <entry>(empty)</entry>
++ </row>
++ <row>
++ <entry><literal>post_moderated</literal></entry>
++ <entry>quad</entry>
++ <entry><literal>ask-yes</literal></entry>
++ </row>
++ <row>
++ <entry><literal>save_unsubscribed</literal></entry>
++ <entry>boolean</entry>
++ <entry><literal>no</literal></entry>
++ </row>
++ <row>
++ <entry><literal>show_new_news</literal></entry>
++ <entry>boolean</entry>
++ <entry><literal>yes</literal></entry>
++ </row>
++ <row>
++ <entry><literal>show_only_unread</literal></entry>
++ <entry>boolean</entry>
++ <entry><literal>no</literal></entry>
++ </row>
++ <row>
++ <entry><literal>x_comment_to</literal></entry>
++ <entry>boolean</entry>
++ <entry><literal>no</literal></entry>
++ </row>
++ </tbody>
++ </tgroup>
++ </table>
++ </sect2>
++
++ <sect2 id="nntp-functions">
++ <title>Functions</title>
++
++ <table id="table-nntp-functions">
++ <title>NNTP Functions</title>
++ <tgroup cols="4">
++ <thead>
++ <row>
++ <entry>Menus</entry>
++ <entry>Default Key</entry>
++ <entry>Function</entry>
++ <entry>Description</entry>
++ </row>
++ </thead>
++ <tbody>
++ <row>
++ <entry>browser,index</entry>
++ <entry>y</entry>
++ <entry><literal><catchup></literal></entry>
++ <entry>mark all articles in newsgroup as read</entry>
++ </row>
++ <row>
++ <entry>index,pager</entry>
++ <entry>i</entry>
++ <entry><literal><change-newsgroup></literal></entry>
++ <entry>open a different newsgroup</entry>
++ </row>
++ <row>
++ <entry>pager</entry>
++ <entry>X</entry>
++ <entry><literal><change-vfolder></literal></entry>
++ <entry>open a different virtual folder</entry>
++ </row>
++ <row>
++ <entry>compose</entry>
++ <entry>o</entry>
++ <entry><literal><edit-followup-to></literal></entry>
++ <entry>edit the Followup-To field</entry>
++ </row>
++ <row>
++ <entry>compose</entry>
++ <entry>N</entry>
++ <entry><literal><edit-newsgroups></literal></entry>
++ <entry>edit the newsgroups list</entry>
++ </row>
++ <row>
++ <entry>compose</entry>
++ <entry>x</entry>
++ <entry><literal><edit-x-comment-to></literal></entry>
++ <entry>edit the X-Comment-To field</entry>
++ </row>
++ <row>
++ <entry>pager</entry>
++ <entry>+</entry>
++ <entry><literal><entire-thread></literal></entry>
++ <entry>read entire thread of the current message</entry>
++ </row>
++ <row>
++ <entry>attachment,index,pager</entry>
++ <entry>F</entry>
++ <entry><literal><followup-message></literal></entry>
++ <entry>followup to newsgroup</entry>
++ </row>
++ <row>
++ <entry>pager</entry>
++ <entry>`</entry>
++ <entry><literal><modify-labels></literal></entry>
++ <entry>modify (notmuch) tags</entry>
++ </row>
++ <row>
++ <entry>index,pager</entry>
++ <entry>P</entry>
++ <entry><literal><post-message></literal></entry>
++ <entry>post message to newsgroup</entry>
++ </row>
++ <row>
++ <entry>browser</entry>
++ <entry>g</entry>
++ <entry><literal><reload-active></literal></entry>
++ <entry>load list of all newsgroups from NNTP server</entry>
++ </row>
++ <row>
++ <entry>browser</entry>
++ <entry>s</entry>
++ <entry><literal><subscribe></literal></entry>
++ <entry>subscribe to current mbox (IMAP/NNTP only)</entry>
++ </row>
++ <row>
++ <entry>browser</entry>
++ <entry>S</entry>
++ <entry><literal><subscribe-pattern></literal></entry>
++ <entry>subscribe to newsgroups matching a pattern</entry>
++ </row>
++ <row>
++ <entry>browser</entry>
++ <entry>Y</entry>
++ <entry><literal><uncatchup></literal></entry>
++ <entry>mark all articles in newsgroup as unread</entry>
++ </row>
++ <row>
++ <entry>browser</entry>
++ <entry>u</entry>
++ <entry><literal><unsubscribe></literal></entry>
++ <entry>unsubscribe from current mbox (IMAP/NNTP only)</entry>
++ </row>
++ <row>
++ <entry>browser</entry>
++ <entry>U</entry>
++ <entry><literal><unsubscribe-pattern></literal></entry>
++ <entry>unsubscribe from newsgroups matching a pattern</entry>
++ </row>
++ <row>
++ <entry>index,pager</entry>
++ <entry>Alt-i</entry>
++ <entry><literal><change-newsgroup-readonly></literal></entry>
++ <entry>open a different newsgroup in read only mode</entry>
++ </row>
++ <row>
++ <entry>attachment,index,pager</entry>
++ <entry>Alt-F</entry>
++ <entry><literal><forward-to-group></literal></entry>
++ <entry>forward to newsgroup</entry>
++ </row>
++ <row>
++ <entry>index</entry>
++ <entry>(none)</entry>
++ <entry><literal><get-children></literal></entry>
++ <entry>get all children of the current message</entry>
++ </row>
++ <row>
++ <entry>index</entry>
++ <entry>Alt-G</entry>
++ <entry><literal><get-parent></literal></entry>
++ <entry>get parent of the current message</entry>
++ </row>
++ <row>
++ <entry>index,pager</entry>
++ <entry>(none)</entry>
++ <entry><literal><imap-fetch-mail></literal></entry>
++ <entry>force retrieval of mail from IMAP server</entry>
++ </row>
++ <row>
++ <entry>index,pager</entry>
++ <entry>(none)</entry>
++ <entry><literal><imap-logout-all></literal></entry>
++ <entry>logout from all IMAP servers</entry>
++ </row>
++ <row>
++ <entry>pager</entry>
++ <entry>(none)</entry>
++ <entry><literal><modify-labels-then-hide></literal></entry>
++ <entry>modify labeld and then hide message</entry>
++ </row>
++ <row>
++ <entry>index</entry>
++ <entry>(none)</entry>
++ <entry><literal><reconstruct-thread></literal></entry>
++ <entry>reconstruct thread containing current message</entry>
++ </row>
++ <row>
++ <entry>pager</entry>
++ <entry>Alt-X</entry>
++ <entry><literal><vfolder-from-query></literal></entry>
++ <entry>generate virtual folder from query</entry>
++ </row>
++ <row>
++ <entry>index</entry>
++ <entry>Ctrl-G</entry>
++ <entry><literal><get-message></literal></entry>
++ <entry>get message with Message-Id</entry>
++ </row>
++ </tbody>
++ </tgroup>
++ </table>
++ </sect2>
++
++ <sect2 id="nntp-commands">
++ <title>Commands</title>
++ </sect2>
++
++ <sect2 id="nntp-colors">
++ <title>Colors</title>
++ <para>None</para>
++ </sect2>
++
++ <sect2 id="nntp-sort">
++ <title>Sort</title>
++ <para>None</para>
++ </sect2>
++
++ <sect2 id="nntp-muttrc">
++ <title>Muttrc</title>
++ </sect2>
++
++ <sect2 id="nntp-see-also">
++ <title>See Also</title>
++
++ <itemizedlist>
++ <listitem><para><ulink url="https://github.com/neomutt/neomutt/wiki">NeoMutt Project</ulink></para></listitem>
++ <listitem><para><link linkend="compile-time-features">Compile-Time Features</link></para></listitem>
++ </itemizedlist>
++ </sect2>
++
++ <sect2 id="nntp-known-bugs">
++ <title>Known Bugs</title>
++ </sect2>
++
++ <sect2 id="nntp-credits">
++ <title>Credits</title>
++ <itemizedlist>
++ <listitem><para>Vsevolod Volkov <email>vvv at mutt.org.ua</email></para></listitem>
++ <listitem><para>Felix von Leitner <email>leitner at fefe.de</email></para></listitem>
++ <listitem><para>Richard Russon <email>rich at flatcap.org</email></para></listitem>
++ </itemizedlist>
++ </sect2>
+</sect1>
+
</chapter>
- <chapter id="configuration">
+ <chapter id="security">
diff --git a/doc/mutt.man b/doc/mutt.man
index 28dd7f2..f1f1399 100644
--- a/doc/mutt.man
@@ -2635,8 +2819,67 @@ index 28dd7f2..f1f1399 100644
.IP "-h"
Display help.
.IP "-H \fIdraft\fP"
+diff --git a/doc/muttrc.nntp b/doc/muttrc.nntp
+new file mode 100644
+index 0000000..e69de29
+diff --git a/doc/vimrc-nntp b/doc/vimrc-nntp
+new file mode 100644
+index 0000000..8b93f1a
+--- /dev/null
++++ b/doc/vimrc-nntp
+@@ -0,0 +1,50 @@
++" Vim syntax file for the mutt nntp patch
++
++syntax keyword muttrcVarBool skipwhite contained ask_follow_up nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
++syntax keyword muttrcVarBool skipwhite contained ask_x_comment_to nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
++syntax keyword muttrcVarBool skipwhite contained mime_subject nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
++syntax keyword muttrcVarBool skipwhite contained nntp_listgroup nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
++syntax keyword muttrcVarBool skipwhite contained nntp_load_description nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
++syntax keyword muttrcVarBool skipwhite contained save_unsubscribed nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
++syntax keyword muttrcVarBool skipwhite contained show_new_news nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
++syntax keyword muttrcVarBool skipwhite contained show_only_unread nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
++syntax keyword muttrcVarBool skipwhite contained x_comment_to nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
++
++syntax keyword muttrcVarNum skipwhite contained nntp_context nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
++syntax keyword muttrcVarNum skipwhite contained nntp_poll nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
++
++syn keyword muttrcVarQuad skipwhite contained catchup_newsgroup nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
++syn keyword muttrcVarQuad skipwhite contained followup_to_poster nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
++syn keyword muttrcVarQuad skipwhite contained post_moderated nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
++
++syntax keyword muttrcVarStr contained skipwhite group_index_format nextgroup=muttrcVarEqualsIdxFmt
++syntax keyword muttrcVarStr contained skipwhite inews nextgroup=muttrcVarEqualsIdxFmt
++syntax keyword muttrcVarStr contained skipwhite newsgroups_charset nextgroup=muttrcVarEqualsIdxFmt
++syntax keyword muttrcVarStr contained skipwhite newsrc nextgroup=muttrcVarEqualsIdxFmt
++syntax keyword muttrcVarStr contained skipwhite news_cache_dir nextgroup=muttrcVarEqualsIdxFmt
++syntax keyword muttrcVarStr contained skipwhite news_server nextgroup=muttrcVarEqualsIdxFmt
++syntax keyword muttrcVarStr contained skipwhite nntp_authenticators nextgroup=muttrcVarEqualsIdxFmt
++syntax keyword muttrcVarStr contained skipwhite nntp_pass nextgroup=muttrcVarEqualsIdxFmt
++syntax keyword muttrcVarStr contained skipwhite nntp_user nextgroup=muttrcVarEqualsIdxFmt
++
++syntax match muttrcFunction contained "\<attach-news-message>"
++syntax match muttrcFunction contained "\<catchup>"
++syntax match muttrcFunction contained "\<change-newsgroup-readonly>"
++syntax match muttrcFunction contained "\<change-newsgroup>"
++syntax match muttrcFunction contained "\<edit-followup-to>"
++syntax match muttrcFunction contained "\<edit-newsgroups>"
++syntax match muttrcFunction contained "\<edit-x-comment-to>"
++syntax match muttrcFunction contained "\<followup-message>"
++syntax match muttrcFunction contained "\<forward-to-group>"
++syntax match muttrcFunction contained "\<get-children>"
++syntax match muttrcFunction contained "\<get-message>"
++syntax match muttrcFunction contained "\<get-parent>"
++syntax match muttrcFunction contained "\<post-message>"
++syntax match muttrcFunction contained "\<reconstruct-thread>"
++syntax match muttrcFunction contained "\<reload-active>"
++syntax match muttrcFunction contained "\<subscribe-pattern>"
++syntax match muttrcFunction contained "\<toggle-read>"
++syntax match muttrcFunction contained "\<uncatchup>"
++syntax match muttrcFunction contained "\<unsubscribe-pattern>"
++
++" vim: syntax=vim
diff --git a/functions.h b/functions.h
-index 363b4d5..66f3345 100644
+index c383900..8bc90a0 100644
--- a/functions.h
+++ b/functions.h
@@ -88,6 +88,10 @@ const struct binding_t OpMain[] = { /* map: index */
@@ -2697,7 +2940,7 @@ index 363b4d5..66f3345 100644
{ "extract-keys", OP_EXTRACT_KEYS, "\013" },
-@@ -186,6 +205,10 @@ const struct binding_t OpPager[] = { /* map: pager */
+@@ -189,6 +208,10 @@ const struct binding_t OpPager[] = { /* map: pager */
{ "bounce-message", OP_BOUNCE_MESSAGE, "b" },
{ "change-folder", OP_MAIN_CHANGE_FOLDER, "c" },
{ "change-folder-readonly", OP_MAIN_CHANGE_FOLDER_READONLY, "\033c" },
@@ -2708,7 +2951,7 @@ index 363b4d5..66f3345 100644
{ "next-unread-mailbox", OP_MAIN_NEXT_UNREAD_MAILBOX, NULL },
{ "copy-message", OP_COPY_MESSAGE, "C" },
{ "decode-copy", OP_DECODE_COPY, "\033C" },
-@@ -196,8 +219,12 @@ const struct binding_t OpPager[] = { /* map: pager */
+@@ -199,8 +222,12 @@ const struct binding_t OpPager[] = { /* map: pager */
{ "clear-flag", OP_MAIN_CLEAR_FLAG, "W" },
{ "edit", OP_EDIT_MESSAGE, "e" },
{ "edit-type", OP_EDIT_TYPE, "\005" },
@@ -2722,7 +2965,7 @@ index 363b4d5..66f3345 100644
{ "group-reply", OP_GROUP_REPLY, "g" },
#ifdef USE_IMAP
{ "imap-fetch-mail", OP_MAIN_IMAP_FETCH, NULL },
-@@ -219,6 +246,9 @@ const struct binding_t OpPager[] = { /* map: pager */
+@@ -222,6 +249,9 @@ const struct binding_t OpPager[] = { /* map: pager */
{ "sort-mailbox", OP_SORT, "o" },
{ "sort-reverse", OP_SORT_REVERSE, "O" },
{ "print-message", OP_PRINT, "p" },
@@ -2732,7 +2975,7 @@ index 363b4d5..66f3345 100644
{ "previous-thread", OP_MAIN_PREV_THREAD, "\020" },
{ "previous-subthread",OP_MAIN_PREV_SUBTHREAD, "\033p" },
{ "purge-message", OP_PURGE_MESSAGE, NULL },
-@@ -267,7 +297,7 @@ const struct binding_t OpPager[] = { /* map: pager */
+@@ -270,7 +300,7 @@ const struct binding_t OpPager[] = { /* map: pager */
{ "half-down", OP_HALF_DOWN, NULL },
{ "previous-line", OP_PREV_LINE, NULL },
{ "bottom", OP_PAGER_BOTTOM, NULL },
@@ -2741,7 +2984,7 @@ index 363b4d5..66f3345 100644
-@@ -295,6 +325,10 @@ const struct binding_t OpAttach[] = { /* map: attachment */
+@@ -302,6 +332,10 @@ const struct binding_t OpAttach[] = { /* map: attachment */
{ "bounce-message", OP_BOUNCE_MESSAGE, "b" },
{ "display-toggle-weed", OP_DISPLAY_HEADERS, "h" },
{ "edit-type", OP_EDIT_TYPE, "\005" },
@@ -2752,7 +2995,7 @@ index 363b4d5..66f3345 100644
{ "print-entry", OP_PRINT, "p" },
{ "save-entry", OP_SAVE, "s" },
{ "pipe-entry", OP_PIPE, "|" },
-@@ -320,6 +354,7 @@ const struct binding_t OpAttach[] = { /* map: attachment */
+@@ -327,6 +361,7 @@ const struct binding_t OpAttach[] = { /* map: attachment */
const struct binding_t OpCompose[] = { /* map: compose */
{ "attach-file", OP_COMPOSE_ATTACH_FILE, "a" },
{ "attach-message", OP_COMPOSE_ATTACH_MESSAGE, "A" },
@@ -2760,7 +3003,7 @@ index 363b4d5..66f3345 100644
{ "edit-bcc", OP_COMPOSE_EDIT_BCC, "b" },
{ "edit-cc", OP_COMPOSE_EDIT_CC, "c" },
{ "copy-file", OP_SAVE, "C" },
-@@ -339,6 +374,11 @@ const struct binding_t OpCompose[] = { /* map: compose */
+@@ -346,6 +381,11 @@ const struct binding_t OpCompose[] = { /* map: compose */
{ "print-entry", OP_PRINT, "l" },
{ "edit-mime", OP_COMPOSE_EDIT_MIME, "m" },
{ "new-mime", OP_COMPOSE_NEW_MIME, "n" },
@@ -2772,7 +3015,7 @@ index 363b4d5..66f3345 100644
{ "postpone-message", OP_COMPOSE_POSTPONE_MESSAGE, "P" },
{ "edit-reply-to", OP_COMPOSE_EDIT_REPLY_TO, "r" },
{ "rename-file", OP_COMPOSE_RENAME_FILE, "R" },
-@@ -390,14 +430,25 @@ const struct binding_t OpBrowser[] = { /* map: browser */
+@@ -397,14 +437,25 @@ const struct binding_t OpBrowser[] = { /* map: browser */
{ "select-new", OP_BROWSER_NEW_FILE, "N" },
{ "check-new", OP_CHECK_NEW, NULL },
{ "toggle-mailboxes", OP_TOGGLE_MAILBOXES, "\t" },
@@ -2799,7 +3042,7 @@ index 363b4d5..66f3345 100644
#endif
{ NULL, 0, NULL }
diff --git a/globals.h b/globals.h
-index 92de9db..5677a9e 100644
+index c4a77ca..3fc9035 100644
--- a/globals.h
+++ b/globals.h
@@ -69,7 +69,7 @@ WHERE char *Ispell;
@@ -2829,7 +3072,7 @@ index 92de9db..5677a9e 100644
WHERE char *Outbox;
WHERE char *Pager;
WHERE char *PagerFmt;
-@@ -198,6 +209,11 @@ extern unsigned char QuadOptions[];
+@@ -201,6 +212,11 @@ extern unsigned char QuadOptions[];
WHERE unsigned short Counter INITVAL (0);
@@ -3030,10 +3273,10 @@ index fc33253..b2dd630 100644
(!n->in_reply_to || mutt_strcmp (n->in_reply_to->data,
msg->env->in_reply_to->data) != 0))
diff --git a/init.c b/init.c
-index d50102d..564657d 100644
+index 91889dc..ad713e8 100644
--- a/init.c
+++ b/init.c
-@@ -3089,6 +3089,28 @@ void mutt_init (int skip_sys_rc, LIST *commands)
+@@ -3143,6 +3143,28 @@ void mutt_init (int skip_sys_rc, LIST *commands)
Fqdn = safe_strdup(utsname.nodename);
@@ -3063,10 +3306,10 @@ index d50102d..564657d 100644
Spoolfile = safe_strdup (p);
else if ((p = getenv ("MAILDIR")))
diff --git a/init.h b/init.h
-index b7aff80..f1d8f5b 100644
+index 355a003..4713f8f 100644
--- a/init.h
+++ b/init.h
-@@ -176,6 +176,20 @@ struct option_t MuttVars[] = {
+@@ -177,6 +177,20 @@ struct option_t MuttVars[] = {
** If \fIset\fP, Mutt will prompt you for carbon-copy (Cc) recipients before
** editing the body of an outgoing message.
*/
@@ -3087,7 +3330,7 @@ index b7aff80..f1d8f5b 100644
{ "assumed_charset", DT_STR, R_NONE, UL &AssumedCharset, UL 0},
/*
** .pp
-@@ -328,6 +342,14 @@ struct option_t MuttVars[] = {
+@@ -329,6 +343,14 @@ struct option_t MuttVars[] = {
** follow these menus. The option is \fIunset\fP by default because many
** visual terminals don't permit making the cursor invisible.
*/
@@ -3102,7 +3345,7 @@ index b7aff80..f1d8f5b 100644
#if defined(USE_SSL)
{ "certificate_file", DT_PATH, R_NONE, UL &SslCertFile, UL "~/.mutt_certificates" },
/*
-@@ -847,6 +869,16 @@ struct option_t MuttVars[] = {
+@@ -848,6 +870,16 @@ struct option_t MuttVars[] = {
** sent to both the list and your address, resulting in two copies
** of the same email for you.
*/
@@ -3119,7 +3362,7 @@ index b7aff80..f1d8f5b 100644
{ "force_name", DT_BOOL, R_NONE, OPTFORCENAME, 0 },
/*
** .pp
-@@ -929,6 +961,26 @@ struct option_t MuttVars[] = {
+@@ -930,6 +962,26 @@ struct option_t MuttVars[] = {
** a regular expression that will match the whole name so mutt will expand
** ``Franklin'' to ``Franklin, Steve''.
*/
@@ -3146,7 +3389,7 @@ index b7aff80..f1d8f5b 100644
{ "hdr_format", DT_SYN, R_NONE, UL "index_format", 0 },
/*
*/
-@@ -1324,6 +1376,7 @@ struct option_t MuttVars[] = {
+@@ -1325,6 +1377,7 @@ struct option_t MuttVars[] = {
** .dt %E .dd number of messages in current thread
** .dt %f .dd sender (address + real name), either From: or Return-Path:
** .dt %F .dd author name, or recipient name if the message is from you
@@ -3154,7 +3397,7 @@ index b7aff80..f1d8f5b 100644
** .dt %H .dd spam attribute(s) of this message
** .dt %i .dd message-id of the current message
** .dt %l .dd number of lines in the message (does not work with maildir,
-@@ -1347,6 +1400,8 @@ struct option_t MuttVars[] = {
+@@ -1348,6 +1401,8 @@ struct option_t MuttVars[] = {
** .dt %T .dd the appropriate character from the $$to_chars string
** .dt %u .dd user (login) name of the author
** .dt %v .dd first name of the author, or the recipient if the message is from you
@@ -3163,7 +3406,7 @@ index b7aff80..f1d8f5b 100644
** .dt %X .dd number of attachments
** (please see the ``$attachments'' section for possible speed effects)
** .dt %y .dd ``X-Label:'' field, if present
-@@ -1381,6 +1436,25 @@ struct option_t MuttVars[] = {
+@@ -1382,6 +1437,25 @@ struct option_t MuttVars[] = {
** Note that these expandos are supported in
** ``$save-hook'', ``$fcc-hook'' and ``$fcc-save-hook'', too.
*/
@@ -3189,7 +3432,7 @@ index b7aff80..f1d8f5b 100644
{ "ispell", DT_PATH, R_NONE, UL &Ispell, UL ISPELL },
/*
** .pp
-@@ -1625,6 +1699,15 @@ struct option_t MuttVars[] = {
+@@ -1626,6 +1700,15 @@ struct option_t MuttVars[] = {
** menu, attachments which cannot be decoded in a reasonable manner will
** be attached to the newly composed message if this option is \fIset\fP.
*/
@@ -3205,7 +3448,7 @@ index b7aff80..f1d8f5b 100644
#ifdef MIXMASTER
{ "mix_entry_format", DT_STR, R_NONE, UL &MixEntryFormat, UL "%4n %c %-16s %a" },
/*
-@@ -1675,6 +1758,106 @@ struct option_t MuttVars[] = {
+@@ -1676,6 +1759,106 @@ struct option_t MuttVars[] = {
** See also $$read_inc, $$write_inc and $$net_inc.
*/
#endif
@@ -3312,7 +3555,7 @@ index b7aff80..f1d8f5b 100644
{ "pager", DT_PATH, R_NONE, UL &Pager, UL "builtin" },
/*
** .pp
-@@ -2253,6 +2436,16 @@ struct option_t MuttVars[] = {
+@@ -2202,6 +2385,16 @@ struct option_t MuttVars[] = {
{ "post_indent_str", DT_SYN, R_NONE, UL "post_indent_string", 0 },
/*
*/
@@ -3329,7 +3572,7 @@ index b7aff80..f1d8f5b 100644
{ "postpone", DT_QUAD, R_NONE, OPT_POSTPONE, M_ASKYES },
/*
** .pp
-@@ -2729,6 +2922,28 @@ struct option_t MuttVars[] = {
+@@ -2678,6 +2871,28 @@ struct option_t MuttVars[] = {
** Command to use when spawning a subshell. By default, the user's login
** shell from \fC/etc/passwd\fP is used.
*/
@@ -3355,10 +3598,10 @@ index b7aff80..f1d8f5b 100644
+ ** will be displayed in browser.
+ */
+#endif
- { "sig_dashes", DT_BOOL, R_NONE, OPTSIGDASHES, 1 },
+ #ifdef USE_SIDEBAR
+ { "sidebar_divider_char", DT_STR, R_BOTH, UL &SidebarDividerChar, UL "|" },
/*
- ** .pp
-@@ -3672,6 +3887,14 @@ struct option_t MuttVars[] = {
+@@ -3761,6 +3976,14 @@ struct option_t MuttVars[] = {
{"xterm_set_titles", DT_SYN, R_NONE, UL "ts_enabled", 0 },
/*
*/
@@ -3374,10 +3617,10 @@ index b7aff80..f1d8f5b 100644
{ NULL, 0, 0, 0, 0 }
};
diff --git a/keymap.c b/keymap.c
-index 43a9050..86d2835 100644
+index 6d9661e..e2c51ad 100644
--- a/keymap.c
+++ b/keymap.c
-@@ -795,7 +795,6 @@ void km_init (void)
+@@ -798,7 +798,6 @@ void km_init (void)
km_bindkey ("<enter>", MENU_MAIN, OP_DISPLAY_MESSAGE);
km_bindkey ("x", MENU_PAGER, OP_EXIT);
@@ -3386,10 +3629,10 @@ index 43a9050..86d2835 100644
km_bindkey ("<pagedown>", MENU_PAGER, OP_NEXT_PAGE);
km_bindkey ("<pageup>", MENU_PAGER, OP_PREV_PAGE);
diff --git a/mailbox.h b/mailbox.h
-index 000503d..9052e46 100644
+index 2249661..b3c6c8d 100644
--- a/mailbox.h
+++ b/mailbox.h
-@@ -77,6 +77,9 @@ int mx_is_imap (const char *);
+@@ -79,6 +79,9 @@ int mx_is_imap (const char *);
#ifdef USE_POP
int mx_is_pop (const char *);
#endif
@@ -3400,10 +3643,10 @@ index 000503d..9052e46 100644
int mx_access (const char*, int);
int mx_check_empty (const char *);
diff --git a/main.c b/main.c
-index 0e11dc5..0545ca5 100644
+index 4f9a6cb..82ab356 100644
--- a/main.c
+++ b/main.c
-@@ -63,6 +63,10 @@
+@@ -66,6 +66,10 @@
#include <idn/stringprep.h>
#endif
@@ -3411,10 +3654,10 @@ index 0e11dc5..0545ca5 100644
+#include "nntp.h"
+#endif
+
- static const char *ReachingUs = N_("\
- To contact the developers, please mail to <mutt-dev at mutt.org>.\n\
- To report a bug, please visit http://bugs.mutt.org/.\n");
-@@ -139,6 +143,8 @@ options:\n\
+ void mutt_exit (int code)
+ {
+ mutt_endwin (NULL);
+@@ -102,6 +106,8 @@ options:\n\
-e <command>\tspecify a command to be executed after initialization\n\
-f <file>\tspecify which mailbox to read\n\
-F <file>\tspecify an alternate muttrc file\n\
@@ -3423,20 +3666,7 @@ index 0e11dc5..0545ca5 100644
-H <file>\tspecify a draft file to read header and body from\n\
-i <file>\tspecify a file which Mutt should include in the body\n\
-m <type>\tspecify a default mailbox type\n\
-@@ -287,6 +293,12 @@ static void show_version (void)
- "-USE_POP "
- #endif
-
-+#ifdef USE_NNTP
-+ "+USE_NNTP "
-+#else
-+ "-USE_NNTP "
-+#endif
-+
- #ifdef USE_IMAP
- "+USE_IMAP "
- #else
-@@ -561,6 +573,9 @@ init_extended_keys();
+@@ -165,6 +171,9 @@ init_extended_keys();
#define M_NOSYSRC (1<<2) /* -n */
#define M_RO (1<<3) /* -R */
#define M_SELECT (1<<4) /* -y */
@@ -3446,7 +3676,7 @@ index 0e11dc5..0545ca5 100644
int main (int argc, char **argv)
{
-@@ -634,7 +649,11 @@ int main (int argc, char **argv)
+@@ -242,7 +251,11 @@ int main (int argc, char **argv)
argv[nargc++] = argv[optind];
}
@@ -3458,7 +3688,7 @@ index 0e11dc5..0545ca5 100644
switch (i)
{
case 'A':
-@@ -735,6 +754,20 @@ int main (int argc, char **argv)
+@@ -343,6 +356,20 @@ int main (int argc, char **argv)
flags |= M_SELECT;
break;
@@ -3479,7 +3709,7 @@ index 0e11dc5..0545ca5 100644
case 'z':
flags |= M_IGNORE;
break;
-@@ -1188,6 +1221,18 @@ int main (int argc, char **argv)
+@@ -781,6 +808,18 @@ int main (int argc, char **argv)
}
else if (flags & M_SELECT)
{
@@ -3498,7 +3728,7 @@ index 0e11dc5..0545ca5 100644
if (!Incoming) {
mutt_endwin _("No incoming mailboxes defined.");
exit (1);
-@@ -1203,6 +1248,15 @@ int main (int argc, char **argv)
+@@ -796,6 +835,15 @@ int main (int argc, char **argv)
if (!folder[0])
strfcpy (folder, NONULL(Spoolfile), sizeof (folder));
@@ -3513,9 +3743,9 @@ index 0e11dc5..0545ca5 100644
+#endif
mutt_expand_path (folder, sizeof (folder));
- {
+ #ifdef USE_SIDEBAR
diff --git a/mutt.h b/mutt.h
-index 2a9f1e0..0fc3b82 100644
+index cfe9f27..22b7246 100644
--- a/mutt.h
+++ b/mutt.h
@@ -237,6 +237,9 @@ enum
@@ -3567,7 +3797,7 @@ index 2a9f1e0..0fc3b82 100644
OPTNARROWTREE,
OPTPAGERSTOP,
OPTPIPEDECODE,
-@@ -508,6 +522,17 @@ enum
+@@ -511,6 +525,17 @@ enum
OPTPGPAUTOINLINE,
OPTPGPREPLYINLINE,
@@ -3585,7 +3815,7 @@ index 2a9f1e0..0fc3b82 100644
/* pseudo options */
OPTAUXSORT, /* (pseudo) using auxiliary sort function */
-@@ -528,6 +553,7 @@ enum
+@@ -531,6 +556,7 @@ enum
OPTSORTSUBTHREADS, /* (pseudo) used when $sort_aux changes */
OPTNEEDRESCORE, /* (pseudo) set when the `score' command is used */
OPTATTACHMSG, /* (pseudo) used by attach-message */
@@ -3593,9 +3823,9 @@ index 2a9f1e0..0fc3b82 100644
OPTKEEPQUIET, /* (pseudo) shut up the message and refresh
* functions while we are executing an
* external program.
-@@ -540,6 +566,11 @@ enum
-
- OPTSIDEBARNEWMAILONLY,
+@@ -541,6 +567,11 @@ enum
+ OPTDONTHANDLEPGPKEYS, /* (pseudo) used to extract PGP keys */
+ OPTIGNOREMACROEVENTS, /* (pseudo) don't process macro/push/exec events while set */
+#ifdef USE_NNTP
+ OPTNEWS, /* (pseudo) used to change reader mode */
@@ -3605,7 +3835,7 @@ index 2a9f1e0..0fc3b82 100644
OPTMAX
};
-@@ -619,6 +650,13 @@ typedef struct envelope
+@@ -620,6 +651,13 @@ typedef struct envelope
char *supersedes;
char *date;
char *x_label;
@@ -3619,7 +3849,7 @@ index 2a9f1e0..0fc3b82 100644
BUFFER *spam;
LIST *references; /* message references (in reverse order) */
LIST *in_reply_to; /* in-reply-to header content */
-@@ -805,7 +843,7 @@ typedef struct header
+@@ -806,7 +844,7 @@ typedef struct header
int refno; /* message number on server */
#endif
@@ -3629,7 +3859,7 @@ index 2a9f1e0..0fc3b82 100644
#endif
diff --git a/mutt_sasl.c b/mutt_sasl.c
-index d580c47..deb7669 100644
+index 0a00c81..1da5ea5 100644
--- a/mutt_sasl.c
+++ b/mutt_sasl.c
@@ -190,6 +190,11 @@ int mutt_sasl_client_new (CONNECTION* conn, sasl_conn_t** saslconn)
@@ -3645,7 +3875,7 @@ index d580c47..deb7669 100644
mutt_error (_("Unknown SASL profile"));
return -1;
diff --git a/muttlib.c b/muttlib.c
-index 3c4e768..bf25a32 100644
+index ce1c97a..4864b4a 100644
--- a/muttlib.c
+++ b/muttlib.c
@@ -329,7 +329,7 @@ void mutt_free_header (HEADER **h)
@@ -3671,7 +3901,7 @@ index 3c4e768..bf25a32 100644
mutt_buffer_free (&(*p)->spam);
-@@ -1571,6 +1578,14 @@ int mutt_save_confirm (const char *s, struct stat *st)
+@@ -1523,6 +1530,14 @@ int mutt_save_confirm (const char *s, struct stat *st)
}
}
@@ -3687,10 +3917,10 @@ index 3c4e768..bf25a32 100644
{
if (magic == -1)
diff --git a/mx.c b/mx.c
-index 16fcdf4..864ca85 100644
+index a2769c5..1d67d07 100644
--- a/mx.c
+++ b/mx.c
-@@ -42,6 +42,10 @@
+@@ -45,6 +45,10 @@
#include "pop.h"
#endif
@@ -3701,7 +3931,7 @@ index 16fcdf4..864ca85 100644
#include "buffy.h"
#ifdef USE_DOTLOCK
-@@ -347,6 +351,22 @@ int mx_is_pop (const char *p)
+@@ -350,6 +354,22 @@ int mx_is_pop (const char *p)
}
#endif
@@ -3724,7 +3954,7 @@ index 16fcdf4..864ca85 100644
int mx_get_magic (const char *path)
{
struct stat st;
-@@ -364,6 +384,11 @@ int mx_get_magic (const char *path)
+@@ -367,6 +387,11 @@ int mx_get_magic (const char *path)
return M_POP;
#endif /* USE_POP */
@@ -3736,7 +3966,7 @@ index 16fcdf4..864ca85 100644
if (stat (path, &st) == -1)
{
dprint (1, (debugfile, "mx_get_magic(): unable to stat %s: %s (errno %d).\n",
-@@ -691,6 +716,12 @@ CONTEXT *mx_open_mailbox (const char *path, int flags, CONTEXT *pctx)
+@@ -696,6 +721,12 @@ CONTEXT *mx_open_mailbox (const char *path, int flags, CONTEXT *pctx)
break;
#endif /* USE_POP */
@@ -3749,7 +3979,7 @@ index 16fcdf4..864ca85 100644
default:
rc = -1;
break;
-@@ -806,6 +837,12 @@ static int sync_mailbox (CONTEXT *ctx, int *index_hint)
+@@ -813,6 +844,12 @@ static int sync_mailbox (CONTEXT *ctx, int *index_hint)
rc = pop_sync_mailbox (ctx, index_hint);
break;
#endif /* USE_POP */
@@ -3762,7 +3992,7 @@ index 16fcdf4..864ca85 100644
}
#if 0
-@@ -908,6 +945,25 @@ int mx_close_mailbox (CONTEXT *ctx, int *index_hint)
+@@ -918,6 +955,25 @@ int mx_close_mailbox (CONTEXT *ctx, int *index_hint)
return 0;
}
@@ -3788,8 +4018,8 @@ index 16fcdf4..864ca85 100644
for (i = 0; i < ctx->msgcount; i++)
{
if (!ctx->hdrs[i]->deleted && ctx->hdrs[i]->read
-@@ -919,6 +975,12 @@ int mx_close_mailbox (CONTEXT *ctx, int *index_hint)
- ctx->flagged--;
+@@ -931,6 +987,12 @@ int mx_close_mailbox (CONTEXT *ctx, int *index_hint)
+ #endif
}
+#ifdef USE_NNTP
@@ -3801,7 +4031,7 @@ index 16fcdf4..864ca85 100644
if (read_msgs && quadoption (OPT_MOVE) != M_NO)
{
char *p;
-@@ -1479,6 +1541,11 @@ int mx_check_mailbox (CONTEXT *ctx, int *index_hint, int lock)
+@@ -1491,6 +1553,11 @@ int mx_check_mailbox (CONTEXT *ctx, int *index_hint, int lock)
case M_POP:
return (pop_check_mailbox (ctx, index_hint));
#endif /* USE_POP */
@@ -3813,7 +4043,7 @@ index 16fcdf4..864ca85 100644
}
}
-@@ -1539,6 +1606,15 @@ MESSAGE *mx_open_message (CONTEXT *ctx, int msgno)
+@@ -1551,6 +1618,15 @@ MESSAGE *mx_open_message (CONTEXT *ctx, int msgno)
}
#endif /* USE_POP */
@@ -3829,7 +4059,7 @@ index 16fcdf4..864ca85 100644
default:
dprint (1, (debugfile, "mx_open_message(): function not implemented for mailbox type %d.\n", ctx->magic));
FREE (&msg);
-@@ -1614,6 +1690,9 @@ int mx_close_message (MESSAGE **msg)
+@@ -1626,6 +1702,9 @@ int mx_close_message (MESSAGE **msg)
int r = 0;
if ((*msg)->magic == M_MH || (*msg)->magic == M_MAILDIR
@@ -3840,10 +4070,10 @@ index 16fcdf4..864ca85 100644
{
r = safe_fclose (&(*msg)->fp);
diff --git a/mx.h b/mx.h
-index ab398cb..5a683af 100644
+index f2b79c0..132f7cc 100644
--- a/mx.h
+++ b/mx.h
-@@ -34,6 +34,9 @@ enum
+@@ -35,6 +35,9 @@ enum
M_MMDF,
M_MH,
M_MAILDIR,
@@ -7736,10 +7966,10 @@ index 0000000..705c524
+
+#endif /* _NNTP_H_ */
diff --git a/pager.c b/pager.c
-index 9a2b269..544e5ab 100644
+index 94dcdd8..abde1b1 100644
--- a/pager.c
+++ b/pager.c
-@@ -1086,6 +1086,11 @@ fill_buffer (FILE *f, LOFF_T *last_pos, LOFF_T offset, unsigned char **buf,
+@@ -1088,6 +1088,11 @@ fill_buffer (FILE *f, LOFF_T *last_pos, LOFF_T offset, unsigned char **buf,
return b_read;
}
@@ -7751,7 +7981,7 @@ index 9a2b269..544e5ab 100644
static int format_line (struct line_t **lineInfo, int n, unsigned char *buf,
int flags, ansi_attr *pa, int cnt,
-@@ -1544,6 +1549,16 @@ static const struct mapping_t PagerHelpExtra[] = {
+@@ -1548,6 +1553,16 @@ static const struct mapping_t PagerHelpExtra[] = {
{ NULL, 0 }
};
@@ -7768,7 +7998,7 @@ index 9a2b269..544e5ab 100644
/* This pager is actually not so simple as it once was. It now operates in
-@@ -1586,6 +1601,10 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra)
+@@ -1590,6 +1605,10 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra)
int old_PagerIndexLines; /* some people want to resize it
* while inside the pager... */
@@ -7779,7 +8009,7 @@ index 9a2b269..544e5ab 100644
if (!(flags & M_SHOWCOLOR))
flags |= M_SHOWFLAT;
-@@ -1625,7 +1644,11 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra)
+@@ -1629,7 +1648,11 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra)
if (IsHeader (extra))
{
strfcpy (tmphelp, helpstr, sizeof (tmphelp));
@@ -7792,7 +8022,7 @@ index 9a2b269..544e5ab 100644
snprintf (helpstr, sizeof (helpstr), "%s %s", tmphelp, buffer);
}
if (!InHelp)
-@@ -2567,6 +2590,60 @@ search_next:
+@@ -2593,6 +2616,60 @@ search_next:
redraw = REDRAW_FULL;
break;
@@ -7853,7 +8083,7 @@ index 9a2b269..544e5ab 100644
case OP_REPLY:
CHECK_MODE(IsHeader (extra) || IsMsgAttach (extra));
CHECK_ATTACH;
-@@ -2613,7 +2690,7 @@ search_next:
+@@ -2639,7 +2716,7 @@ search_next:
CHECK_ATTACH;
if (IsMsgAttach (extra))
mutt_attach_forward (extra->fp, extra->hdr, extra->idx,
@@ -7943,7 +8173,7 @@ index 6a802ba..cb3ea30 100644
default:
break;
diff --git a/pattern.c b/pattern.c
-index 406fd84..d50dad4 100644
+index ea0230e..befe91a 100644
--- a/pattern.c
+++ b/pattern.c
@@ -92,6 +92,9 @@ Flags[] =
@@ -7956,7 +8186,7 @@ index 406fd84..d50dad4 100644
{ 'x', M_REFERENCE, 0, eat_regexp },
{ 'X', M_MIMEATTACH, 0, eat_range },
{ 'y', M_XLABEL, 0, eat_regexp },
-@@ -1260,6 +1263,10 @@ mutt_pattern_exec (struct pattern_t *pat, pattern_exec_flag flags, CONTEXT *ctx,
+@@ -1222,6 +1225,10 @@ mutt_pattern_exec (struct pattern_t *pat, pattern_exec_flag flags, CONTEXT *ctx,
}
case M_UNREFERENCED:
return (pat->not ^ (h->thread && !h->thread->child));
@@ -7967,7 +8197,7 @@ index 406fd84..d50dad4 100644
}
mutt_error (_("error: unknown op %d (report this error)."), pat->op);
return (-1);
-@@ -1341,6 +1348,7 @@ int mutt_pattern_func (int op, char *prompt)
+@@ -1303,6 +1310,7 @@ int mutt_pattern_func (int op, char *prompt)
progress_t progress;
strfcpy (buf, NONULL (Context->pattern), sizeof (buf));
@@ -7976,10 +8206,10 @@ index 406fd84..d50dad4 100644
return (-1);
diff --git a/po/POTFILES.in b/po/POTFILES.in
-index 3654ad1..1e499ec 100644
+index 2d01add..115e54f 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
-@@ -47,6 +47,8 @@ mutt_ssl_gnutls.c
+@@ -46,6 +46,8 @@ mutt_ssl_gnutls.c
mutt_tunnel.c
muttlib.c
mx.c
@@ -8020,10 +8250,10 @@ index fdeb172..7c62c96 100644
return (PostCount);
diff --git a/protos.h b/protos.h
-index 382f9ad..c66e47a 100644
+index 5c17f45..666f36c 100644
--- a/protos.h
+++ b/protos.h
-@@ -118,6 +118,7 @@ HASH *mutt_make_id_hash (CONTEXT *);
+@@ -111,6 +111,7 @@ HASH *mutt_make_id_hash (CONTEXT *);
HASH *mutt_make_subj_hash (CONTEXT *);
LIST *mutt_make_references(ENVELOPE *e);
@@ -8215,7 +8445,7 @@ index 13cb3a6..6e02437 100644
{
nattach = count_tagged (idx, idxlen);
diff --git a/send.c b/send.c
-index 6a503b1..44140b1 100644
+index 12fc567..de9e4aa 100644
--- a/send.c
+++ b/send.c
@@ -44,6 +44,11 @@
@@ -8487,7 +8717,7 @@ index 6a503b1..44140b1 100644
if (msg->content->next)
msg->content = mutt_make_multipart (msg->content);
-@@ -1899,7 +2037,12 @@ full_fcc:
+@@ -1900,7 +2038,12 @@ full_fcc:
}
}
else if (!option (OPTNOCURSES) && ! (flags & SENDMAILX))
@@ -8739,3 +8969,22 @@ index 926416e..15ec9ce 100644
U_SMTP,
U_SMTPS,
U_MAILTO,
+diff --git a/version.c b/version.c
+index a0cd472..ac3c8ed 100644
+--- a/version.c
++++ b/version.c
+@@ -271,6 +271,11 @@ static struct compile_options comp_opts[] = {
+ #else
+ { "USE_IMAP", 0 },
+ #endif
++#ifdef USE_NNTP
++ { "USE_NNTP", 1 },
++#else
++ { "USE_NNTP", 0 },
++#endif
+ #ifdef USE_POP
+ { "USE_POP", 1 },
+ #else
+--
+2.8.1
+
diff --git a/debian/patches/series b/debian/patches/series
index af8ffca..8c5131a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -24,4 +24,4 @@ upstream/809802_timeout_hook.patch
__separator__mutt.org.patch
neomutt/09-sidebar.patch
mutt-patched/multiple-fcc.patch
-mutt-patched/nntp.patch
+neomutt-devel/nntp.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mutt/mutt.git
More information about the pkg-mutt-commits
mailing list