-@@ -73,6 +74,7 @@ EXTRA_DIST = COPYRIGHT GPL OPS OPS.PGP O
- 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 \
-+ nntp.h ChangeLog.nntp \
- _regex.h OPS.MIX README.SECURITY remailer.c remailer.h browser.h \
- mbyte.h lib.h extlib.c pgpewrap.c smime_keys.pl pgplib.h Muttrc.head Muttrc \
- makedoc.c makedoc-defs.h stamp-doc-rc README.SSL smime.h \
-diff -udprP mutt-1.5.16.orig/Makefile.in mutt-1.5.16/Makefile.in
---- mutt-1.5.16.orig/Makefile.in 2007-06-10 05:43:26.000000000 +0300
-+++ mutt-1.5.16/Makefile.in 2007-06-15 17:12:26.000000000 +0300
-@@ -331,6 +331,7 @@ EXTRA_mutt_SOURCES = account.c md5c.c mu
- smtp.c browser.h mbyte.h remailer.h url.h \
- crypt-mod-pgp-classic.c crypt-mod-smime-classic.c \
- pgppacket.c mutt_idna.h hcache.h hcache.c bcache.c bcache.h mutt_ssl_gnutls.c \
-+ nntp.c newsrc.c \
- crypt-gpgme.c crypt-mod-pgp-gpgme.c crypt-mod-smime-gpgme.c \
- utf8.c wcwidth.c
-
-@@ -342,6 +343,7 @@ EXTRA_DIST = COPYRIGHT GPL OPS OPS.PGP O
- 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 \
-+ nntp.h ChangeLog.nntp \
- _regex.h OPS.MIX README.SECURITY remailer.c remailer.h browser.h \
- mbyte.h lib.h extlib.c pgpewrap.c smime_keys.pl pgplib.h Muttrc.head Muttrc \
- makedoc.c makedoc-defs.h stamp-doc-rc README.SSL smime.h \
-@@ -557,6 +559,8 @@ distclean-compile:
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mutt_tunnel.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/muttlib.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mx.Po@am__quote@
-+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/newsrc.Po@am__quote@
-+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nntp.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pager.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/patchlist.Po@am__quote@
-diff -udprP mutt-1.5.16.orig/Muttrc mutt-1.5.16/Muttrc
---- mutt-1.5.16.orig/Muttrc 2007-06-10 06:29:25.000000000 +0300
-+++ mutt-1.5.16/Muttrc 2007-06-15 17:12:26.000000000 +0300
-@@ -266,6 +266,28 @@ attachments -I message/external-body
- # if included.
- #
- #
-+# 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 attach_format="%u%D%I %t%4n %T%.40d%> [%.7m/%.10M, %.6e%?C?, %C?, %s] "
- #
- # Name: attach_format
-@@ -433,6 +455,17 @@ attachments -I message/external-body
- # access time when checking for new mail.
- #
- #
-+# 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 charset=""
- #
- # Name: charset
-@@ -930,6 +963,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
-@@ -1027,6 +1073,28 @@ 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
-@@ -1472,6 +1540,7 @@ attachments -I message/external-body
- # %E number of messages in current thread
- # %f entire From: line (address + real name)
- # %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,
-@@ -1486,12 +1555,14 @@ attachments -I message/external-body
- # %O (_O_riginal save folder) Where mutt would formerly have
- # stashed the message: list name or recipient name if no list
- # %P progress indicator for the builtin pager (how much of the file has been displayed)
-+# %R `x-comment-to:' field (if present and compiled with nntp support)
- # %s subject of the message
- # %S status of the message (N/D/d/!/r/*)
- # %t `to:' field (recipients)
- # %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 number of attachments
- # (please see the ``attachments'' section for possible speed effects)
- # %y `x-label:' field, if present
-@@ -1517,6 +1588,22 @@ attachments -I message/external-body
- # See also: ``$to_chars''.
- #
- #
-+# 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:
-+#
-+# %s newsserver name
-+#
-+# Example: set inews="/usr/local/bin/inews -hS"
-+#
-+#
- # set ispell="ispell"
- #
- # Name: ispell
-@@ -1860,6 +1947,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
-@@ -1964,6 +2063,118 @@ attachments -I message/external-body
- # See also ``$read_inc'' and ``$write_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 headers in. If unset, headers will not be saved at all
-+# and will be reloaded each time when you enter to newsgroup.
-+#
-+#
-+# set news_server=""
-+#
-+# Name: news_server
-+# Type: string
-+# Default: ""
-+#
-+#
-+# This variable specifies domain name or address of NNTP server. It
-+# defaults to the newsserver specified in the environment variable
-+# $NNTPSERVER or contained in the file /etc/nntpserver. You can also
-+# specify username and an alternative port for each newsserver, ie:
-+#
-+# [news[s]://][username[:password]@]newsserver[:port]
-+#
-+#
-+# 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:
-+#
-+# %s newsserver name
-+#
-+#
-+# 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 newsserver.
-+#
-+#
-+# 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 nntp_reconnect=ask-yes
-+#
-+# Name: nntp_reconnect
-+# Type: quadoption
-+# Default: ask-yes
-+#
-+#
-+# Controls whether or not Mutt will try to reconnect to newsserver when
-+# connection lost.
-+#
-+#
- # set pager="builtin"
- #
- # Name: pager
-@@ -3167,6 +3378,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 newsserver
-+# does not support posting to that newsgroup or totally read-only, that
-+# posting will not have an effect.
-+#
-+#
- # set postpone=ask-yes
- #
- # Name: postpone
-@@ -3692,6 +3916,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, newsserver will be asked for new newsgroups on entering
-+# the browser. Otherwise, it will be done only once for a newsserver.
-+# 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
-@@ -4405,3 +4664,14 @@ attachments -I message/external-body
- # in this case.
- #
- #
-+# 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 -udprP mutt-1.5.16.orig/OPS mutt-1.5.16/OPS
---- mutt-1.5.16.orig/OPS 2007-05-14 20:09:59.000000000 +0300
-+++ mutt-1.5.16/OPS 2007-06-15 17:12:26.000000000 +0300
-@@ -8,14 +8,16 @@ OP_BOUNCE_MESSAGE "remail a message to a
- OP_BROWSER_NEW_FILE "select a new file in this directory"
- OP_BROWSER_VIEW_FILE "view file"
- OP_BROWSER_TELL "display the currently selected file's name"
--OP_BROWSER_SUBSCRIBE "subscribe to current mailbox (IMAP only)"
--OP_BROWSER_UNSUBSCRIBE "unsubscribe from current mailbox (IMAP only)"
-+OP_BROWSER_SUBSCRIBE "subscribe to current mbox (IMAP/NNTP only)"
-+OP_BROWSER_UNSUBSCRIBE "unsubscribe from current mbox (IMAP/NNTP only)"
- OP_BROWSER_TOGGLE_LSUB "toggle view all/subscribed mailboxes (IMAP only)"
- OP_BUFFY_LIST "list mailboxes with new mail"
-+OP_CATCHUP "mark all articles in newsgroup as read"
- OP_CHANGE_DIRECTORY "change directories"
- OP_CHECK_NEW "check mailboxes for new mail"
- OP_COMPOSE_ATTACH_FILE "attach file(s) to this message"
- OP_COMPOSE_ATTACH_MESSAGE "attach message(s) to this message"
-+OP_COMPOSE_ATTACH_NEWS_MESSAGE "attach newsmessage(s) to this message"
- OP_COMPOSE_EDIT_BCC "edit the BCC list"
- OP_COMPOSE_EDIT_CC "edit the CC list"
- OP_COMPOSE_EDIT_DESCRIPTION "edit attachment description"
-@@ -26,7 +28,10 @@ OP_COMPOSE_EDIT_FROM "edit the from fiel
- OP_COMPOSE_EDIT_HEADERS "edit the message with headers"
- OP_COMPOSE_EDIT_MESSAGE "edit the message"
- OP_COMPOSE_EDIT_MIME "edit attachment using mailcap entry"
-+OP_COMPOSE_EDIT_NEWSGROUPS "edit the newsgroups list"
- OP_COMPOSE_EDIT_REPLY_TO "edit the Reply-To field"
-+OP_COMPOSE_EDIT_FOLLOWUP_TO "edit the Followup-To field"
-+OP_COMPOSE_EDIT_X_COMMENT_TO "edit the X-Comment-To field"
- OP_COMPOSE_EDIT_SUBJECT "edit the subject of this message"
- OP_COMPOSE_EDIT_TO "edit the TO list"
- OP_CREATE_MAILBOX "create a new mailbox (IMAP only)"
-@@ -85,8 +90,13 @@ OP_EXIT "exit this menu"
- OP_FILTER "filter attachment through a shell command"
- OP_FIRST_ENTRY "move to the first entry"
- OP_FLAG_MESSAGE "toggle a message's 'important' flag"
-+OP_FOLLOWUP "followup to newsgroup"
-+OP_FORWARD_TO_GROUP "forward to newsgroup"
- OP_FORWARD_MESSAGE "forward a message with comments"
- OP_GENERIC_SELECT_ENTRY "select the current entry"
-+OP_GET_CHILDREN "get all children of the current message"
-+OP_GET_MESSAGE "get message with Message-Id"
-+OP_GET_PARENT "get parent of the current message"
- OP_GROUP_REPLY "reply to all recipients"
- OP_HALF_DOWN "scroll down 1/2 page"
- OP_HALF_UP "scroll up 1/2 page"
-@@ -94,11 +104,14 @@ OP_HELP "this screen"
- OP_JUMP "jump to an index number"
- OP_LAST_ENTRY "move to the last entry"
- OP_LIST_REPLY "reply to specified mailing list"
-+OP_LOAD_ACTIVE "load active file from NNTP server"
- OP_MACRO "execute a macro"
- OP_MAIL "compose a new mail message"
- OP_MAIN_BREAK_THREAD "break the thread in two"
- OP_MAIN_CHANGE_FOLDER "open a different folder"
- OP_MAIN_CHANGE_FOLDER_READONLY "open a different folder in read only mode"
-+OP_MAIN_CHANGE_GROUP "open a different newsgroup"
-+OP_MAIN_CHANGE_GROUP_READONLY "open a different newsgroup in read only mode"
- OP_MAIN_CLEAR_FLAG "clear a status flag from a message"
- OP_MAIN_DELETE_PATTERN "delete messages matching a pattern"
- OP_MAIN_IMAP_FETCH "force retrieval of mail from IMAP server"
-@@ -137,6 +150,7 @@ OP_PAGER_HIDE_QUOTED "toggle display of
- OP_PAGER_SKIP_QUOTED "skip beyond quoted text"
- OP_PAGER_TOP "jump to the top of the message"
- OP_PIPE "pipe message/attachment to a shell command"
-+OP_POST "post message to newsgroup"
- OP_PREV_ENTRY "move to the previous entry"
- OP_PREV_LINE "scroll up one line"
- OP_PREV_PAGE "move to the previous page"
-@@ -145,6 +159,7 @@ OP_QUERY "query external program for add
- OP_QUERY_APPEND "append new query results to current results"
- OP_QUIT "save changes to mailbox and quit"
- OP_RECALL_MESSAGE "recall a postponed message"
-+OP_RECONSTRUCT_THREAD "reconstruct thread containing current message"
- OP_REDRAW "clear and redraw the screen"
- OP_REFORMAT_WINCH "{internal}"
- OP_RENAME_MAILBOX "rename the current mailbox (IMAP only)"
-@@ -159,18 +174,22 @@ OP_SEARCH_TOGGLE "toggle search pattern
- OP_SHELL_ESCAPE "invoke a command in a subshell"
- OP_SORT "sort messages"
- OP_SORT_REVERSE "sort messages in reverse order"
-+OP_SUBSCRIBE_PATTERN "subscribe to newsgroups matching a pattern"
- OP_TAG "tag the current entry"
- OP_TAG_PREFIX "apply next function to tagged messages"
- OP_TAG_PREFIX_COND "apply next function ONLY to tagged messages"
- OP_TAG_SUBTHREAD "tag the current subthread"
- OP_TAG_THREAD "tag the current thread"
- OP_TOGGLE_NEW "toggle a message's 'new' flag"
-+OP_TOGGLE_READ "toggle view of read messages"
- OP_TOGGLE_WRITE "toggle whether the mailbox will be rewritten"
- OP_TOGGLE_MAILBOXES "toggle whether to browse mailboxes or all files"
- OP_TOP_PAGE "move to the top of the page"
-+OP_UNCATCHUP "mark all articles in newsgroup as unread"
- OP_UNDELETE "undelete the current entry"
- OP_UNDELETE_THREAD "undelete all messages in thread"
- OP_UNDELETE_SUBTHREAD "undelete all messages in subthread"
-+OP_UNSUBSCRIBE_PATTERN "unsubscribe from newsgroups matching a pattern"
- 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 -udprP mutt-1.5.16.orig/PATCHES mutt-1.5.16/PATCHES
---- mutt-1.5.16.orig/PATCHES 2007-04-30 05:07:48.000000000 +0300
-+++ mutt-1.5.16/PATCHES 2007-06-15 17:12:26.000000000 +0300
-@@ -0,0 +1 @@
-+vvv.nntp
-diff -udprP mutt-1.5.16.orig/account.c mutt-1.5.16/account.c
---- mutt-1.5.16.orig/account.c 2007-04-11 23:28:23.000000000 +0300
-+++ mutt-1.5.16/account.c 2007-06-15 17:12:26.000000000 +0300
-@@ -54,6 +54,11 @@ int mutt_account_match (const ACCOUNT* a
- user = PopUser;
- #endif
-
-+#ifdef USE_NNTP
-+ if (a1->type == M_ACCT_TYPE_NNTP && NntpUser)
-+ user = NntpUser;
-+#endif
-+
- if (a1->flags & a2->flags & M_ACCT_USER)
- return (!strcmp (a1->user, a2->user));
- if (a1->flags & M_ACCT_USER)
-@@ -133,6 +138,16 @@ void mutt_account_tourl (ACCOUNT* accoun
- }
- #endif
-
-+#ifdef USE_NNTP
-+ if (account->type == M_ACCT_TYPE_NNTP)
-+ {
-+ if (account->flags & M_ACCT_SSL)
-+ url->scheme = U_NNTPS;
-+ else
-+ url->scheme = U_NNTP;
-+ }
-+#endif
-+
- url->host = account->host;
- if (account->flags & M_ACCT_PORT)
- url->port = account->port;
-@@ -158,6 +173,10 @@ int mutt_account_getuser (ACCOUNT* accou
- else if ((account->type == M_ACCT_TYPE_POP) && PopUser)
- strfcpy (account->user, PopUser, sizeof (account->user));
- #endif
-+#ifdef USE_NNTP
-+ else if ((account->type == M_ACCT_TYPE_NNTP) && NntpUser)
-+ strfcpy (account->user, NntpUser, sizeof (account->user));
-+#endif
- /* prompt (defaults to unix username), copy into account->user */
- else
- {
-@@ -218,6 +237,10 @@ int mutt_account_getpass (ACCOUNT* accou
- else if ((account->type == M_ACCT_TYPE_SMTP) && SmtpPass)
- strfcpy (account->pass, SmtpPass, sizeof (account->pass));
- #endif
-+#ifdef USE_NNTP
-+ else if ((account->type == M_ACCT_TYPE_NNTP) && NntpPass)
-+ strfcpy (account->pass, NntpPass, sizeof (account->pass));
-+#endif
- else
- {
- snprintf (prompt, sizeof (prompt), _("Password for %s@%s: "),
-diff -udprP mutt-1.5.16.orig/account.h mutt-1.5.16/account.h
---- mutt-1.5.16.orig/account.h 2007-04-02 00:58:55.000000000 +0300
-+++ mutt-1.5.16/account.h 2007-06-15 17:12:26.000000000 +0300
-@@ -29,7 +29,8 @@ enum
- M_ACCT_TYPE_NONE = 0,
- M_ACCT_TYPE_IMAP,
- M_ACCT_TYPE_POP,
-- M_ACCT_TYPE_SMTP
-+ M_ACCT_TYPE_SMTP,
-+ M_ACCT_TYPE_NNTP
- };