Hi, Vsevolod,
Could you help me identify what's wrong with my patching
patch-1.3.27.vvv.nntp?
There are a couple of failures reported for 3 files. (patch.err)
I have inspected browser.c. and its .rej but can not why - it looks it
should work. (browser.c.rej, buffy.c.rej and compose.c.rej)
Is it because I have an incompatible patch tool?
1. mutt-1.3.27i.tar.gz and patch-1.3.27.vvv.nntp are just downloaded
yesterday.
2. my patch is patch-2.5.4-9mdk
3. my diff is diffutils-2.7-29mdk
4. It's Mandrake 8.1 box with locale zh_TW.Big.
Many thanks.
best regards,
charlie
$ patch -p0 < ../rpm/mutt/patch-1.3.27.vvv.nntp
patching file mutt-1.3.27/ChangeLog.nntp
patching file mutt-1.3.27/OPS
patching file mutt-1.3.27/PATCHES
patching file mutt-1.3.27/acconfig.h
patching file mutt-1.3.27/account.c
patching file mutt-1.3.27/account.h
patching file mutt-1.3.27/attach.h
patching file mutt-1.3.27/browser.c
Hunk #4 FAILED at 323.
Hunk #6 FAILED at 450.
Hunk #7 FAILED at 539.
Hunk #12 FAILED at 984.
Hunk #13 FAILED at 1046.
Hunk #14 FAILED at 1116.
Hunk #15 FAILED at 1371.
7 out of 15 hunks FAILED -- saving rejects to file mutt-1.3.27/browser.c.rej
patching file mutt-1.3.27/browser.h
patching file mutt-1.3.27/buffy.c
Hunk #2 succeeded at 278 with fuzz 2.
Hunk #3 FAILED at 299.
Hunk #4 FAILED at 379.
2 out of 4 hunks FAILED -- saving rejects to file mutt-1.3.27/buffy.c.rej
patching file mutt-1.3.27/commands.c
patching file mutt-1.3.27/complete.c
patching file mutt-1.3.27/compose.c
Hunk #10 FAILED at 598.
Hunk #11 FAILED at 828.
Hunk #12 FAILED at 838.
Hunk #13 succeeded at 868 with fuzz 2.
3 out of 13 hunks FAILED -- saving rejects to file mutt-1.3.27/compose.c.rej
patching file mutt-1.3.27/config.h.in
patching file mutt-1.3.27/configure.in
patching file mutt-1.3.27/curs_main.c
Hunk #5 succeeded at 657 with fuzz 1.
Hunk #6 succeeded at 710 with fuzz 2.
Hunk #7 FAILED at 915.
Hunk #8 FAILED at 1134.
Hunk #9 FAILED at 1181.
Hunk #10 FAILED at 1219.
Hunk #11 succeeded at 1526 with fuzz 1.
Hunk #12 succeeded at 1875 with fuzz 2.
Hunk #13 succeeded at 1920 with fuzz 2.
patch: **** malformed patch at line 2112: ue?")) != M_YES)
***************
*** 299,306 ****
return (src);
}
static void add_folder (MUTTMENU *m, struct browser_state *state,
- const char *name, const struct stat *s, int new)
{
if (state->entrylen == state->entrymax)
{
--- 323,408 ----
return (src);
}
+ #ifdef USE_NNTP
+ static const char *
+ newsgroup_format_str (char *dest, size_t destlen, char op, const char *src,
+ const char *fmt, const char *ifstring, const char *elsestring,
+ unsigned long data, format_flag flags)
+ {
+ char fn[SHORT_STRING], tmp[SHORT_STRING];
+ FOLDER *folder = (FOLDER *) data;
+
+ switch (op)
+ {
+ case 'C':
+ snprintf (tmp, sizeof (tmp), "%%%sd", fmt);
+ snprintf (dest, destlen, tmp, folder->num + 1);
+ break;
+
+ case 'f':
+ strncpy (fn, folder->ff->name, sizeof(fn) - 1);
+ snprintf (tmp, sizeof (tmp), "%%%ss", fmt);
+ snprintf (dest, destlen, tmp, fn);
+ break;
+
+ case 'N':
+ snprintf (tmp, sizeof (tmp), "%%%sc", fmt);
+ if (folder->ff->nd->subscribed)
+ snprintf (dest, destlen, tmp, ' ');
+ else
+ snprintf (dest, destlen, tmp, folder->ff->new ? 'N' : 'u');
+ break;
+
+ case 'M':
+ snprintf (tmp, sizeof (tmp), "%%%sc", fmt);
+ if (folder->ff->nd->deleted)
+ snprintf (dest, destlen, tmp, 'D');
+ else
+ snprintf (dest, destlen, tmp, folder->ff->nd->allowed ? ' ' : '-');
+ break;
+
+ case 's':
+ if (flags & M_FORMAT_OPTIONAL)
+ {
+ if (folder->ff->nd->unread != 0)
+ mutt_FormatString (dest, destlen, ifstring, newsgroup_format_str,
+ data, flags);
+ else
+ mutt_FormatString (dest, destlen, elsestring, newsgroup_format_str,
+ data, flags);
+ }
+ else if (Context && Context->data == folder->ff->nd)
+ {
+ snprintf (tmp, sizeof (tmp), "%%%sd", fmt);
+ snprintf (dest, destlen, tmp, Context->unread);
+ }
+ else
+ {
+ snprintf (tmp, sizeof (tmp), "%%%sd", fmt);
+ snprintf (dest, destlen, tmp, folder->ff->nd->unread);
+ }
+ break;
+
+ case 'd':
+ if (folder->ff->nd->desc != NULL)
+ {
+ snprintf (tmp, sizeof (tmp), "%%%ss", fmt);
+ snprintf (dest, destlen, tmp, folder->ff->nd->desc);
+ }
+ else
+ {
+ snprintf (tmp, sizeof (tmp), "%%%ss", fmt);
+ snprintf (dest, destlen, tmp, "");
+ }
+ break;
+ }
+ return (src);
+ }
+ #endif /* USE_NNTP */
+
static void add_folder (MUTTMENU *m, struct browser_state *state,
+ const char *name, const struct stat *s,
+ void *data, int new)
{
if (state->entrylen == state->entrymax)
{
***************
*** 344,352 ****
menu->data = state->entry;
}
static int examine_directory (MUTTMENU *menu, struct browser_state *state,
char *d, const char *prefix)
{
struct stat s;
DIR *dp;
struct dirent *de;
--- 450,484 ----
menu->data = state->entry;
}
+ /* get list of all files/newsgroups with mask */
static int examine_directory (MUTTMENU *menu, struct browser_state *state,
char *d, const char *prefix)
{
+ #ifdef USE_NNTP
+ if (option (OPTNEWS))
+ {
+ LIST *tmp;
+ NNTP_DATA *data;
+ NNTP_SERVER *news = CurrentNewsSrv;
+
+ /* mutt_buffy_check (0); */
+ init_state (state, menu);
+
+ for (tmp = news->list; tmp; tmp = tmp->next)
+ {
+ if (!(data = (NNTP_DATA *)tmp->data))
+ continue;
+ if (prefix && *prefix && strncmp (prefix, data->group,
+ strlen (prefix)) != 0)
+ continue;
+ if (!((regexec (Mask.rx, data->group, 0, NULL, 0) == 0) ^ Mask.not))
+ continue;
+ add_folder (menu, state, data->group, NULL, data, data->new);
+ }
+ }
+ else
+ #endif /* USE_NNTP */
+ {
struct stat s;
DIR *dp;
struct dirent *de;
***************
*** 407,466 ****
tmp = Incoming;
while (tmp && mutt_strcmp (buffer, tmp->path))
tmp = tmp->next;
- add_folder (menu, state, de->d_name, &s, (tmp) ? tmp->new : 0);
}
- closedir (dp);
browser_sort (state);
return 0;
}
static int examine_mailboxes (MUTTMENU *menu, struct browser_state *state)
{
struct stat s;
char buffer[LONG_STRING];
- BUFFY *tmp = Incoming;
- if (!Incoming)
- return (-1);
- mutt_buffy_check (0);
- init_state (state, menu);
- do
- {
- #ifdef USE_IMAP
- if (mx_is_imap (tmp->path))
{
- add_folder (menu, state, tmp->path, NULL, tmp->new);
- continue;
}
#endif
- #ifdef USE_POP
- if (mx_is_pop (tmp->path))
{
- add_folder (menu, state, tmp->path, NULL, tmp->new);
- continue;
- }
#endif
- if (lstat (tmp->path, &s) == -1)
- continue;
- if ((! S_ISREG (s.st_mode)) && (! S_ISDIR (s.st_mode)) &&
- (! S_ISLNK (s.st_mode)))
- continue;
- strfcpy (buffer, NONULL(tmp->path), sizeof (buffer));
- mutt_pretty_mailbox (buffer);
- add_folder (menu, state, buffer, &s, tmp->new);
}
- while ((tmp = tmp->next));
browser_sort (state);
return 0;
}
int select_file_search (MUTTMENU *menu, regex_t *re, int n)
{
return (regexec (re, ((struct folder_file *) menu->data)[n].name, 0, NULL, 0));
}
--- 539,633 ----
tmp = Incoming;
while (tmp && mutt_strcmp (buffer, tmp->path))
tmp = tmp->next;
+ add_folder (menu, state, de->d_name, &s, NULL, (tmp) ? tmp->new : 0);
+ }
+ closedir (dp);
}
browser_sort (state);
return 0;
}
+ /* get list of mailboxes/subscribed newsgroups */
static int examine_mailboxes (MUTTMENU *menu, struct browser_state *state)
{
struct stat s;
char buffer[LONG_STRING];
+ #ifdef USE_NNTP
+ if (option (OPTNEWS))
+ {
+ LIST *tmp;
+ NNTP_DATA *data;
+ NNTP_SERVER *news = CurrentNewsSrv;
+ /* mutt_buffy_check (0); */
+ init_state (state, menu);
+ for (tmp = news->list; tmp; tmp = tmp->next)
{
+ if ((data = (NNTP_DATA *) tmp->data) != NULL && (data->new ||
+ (data->subscribed && (!option (OPTSHOWONLYUNREAD) || data->unread))))
+ add_folder (menu, state, data->group, NULL, data, data->new);
}
+ }
+ else
#endif
+ {
+ BUFFY *tmp = Incoming;
+
+ if (!Incoming)
+ return (-1);
+ mutt_buffy_check (0);
+
+ init_state (state, menu);
+
+ do
{
+ #ifdef USE_IMAP
+ if (mx_is_imap (tmp->path))
+ {
+ add_folder (menu, state, tmp->path, NULL, NULL, tmp->new);
+ continue;
+ }
#endif
+ #ifdef USE_POP
+ if (mx_is_pop (tmp->path))
+ {
+ add_folder (menu, state, tmp->path, NULL, NULL, tmp->new);
+ continue;
+ }
+ #endif
+ #ifdef USE_NNTP
+ if (mx_is_nntp (tmp->path))
+ {
+ add_folder (menu, state, tmp->path, NULL, NULL, tmp->new);
+ continue;
+ }
+ #endif
+ if (lstat (tmp->path, &s) == -1)
+ continue;
+ if ((! S_ISREG (s.st_mode)) && (! S_ISDIR (s.st_mode)) &&
+ (! S_ISLNK (s.st_mode)))
+ continue;
+ strfcpy (buffer, NONULL(tmp->path), sizeof (buffer));
+ mutt_pretty_mailbox (buffer);
+ add_folder (menu, state, buffer, &s, NULL, tmp->new);
+ }
+ while ((tmp = tmp->next));
}
browser_sort (state);
return 0;
}
int select_file_search (MUTTMENU *menu, regex_t *re, int n)
{
+ #ifdef USE_NNTP
+ if (option (OPTNEWS))
+ return (regexec (re, ((struct folder_file *) menu->data)[n].desc, 0, NULL, 0));
+ #endif
return (regexec (re, ((struct folder_file *) menu->data)[n].name, 0, NULL, 0));
}
***************
*** 772,778 ****
}
}
if (buffy)
{
strfcpy (f, state.entry[menu->current].name, flen);
mutt_expand_path (f, flen);
--- 984,994 ----
}
}
+ #ifdef USE_NNTP
+ if (buffy || option (OPTNEWS)) /* news have not path */
+ #else
if (buffy)
+ #endif
{
strfcpy (f, state.entry[menu->current].name, flen);
mutt_expand_path (f, flen);
***************
*** 830,843 ****
break;
#ifdef USE_IMAP
- case OP_BROWSER_SUBSCRIBE:
- imap_subscribe (state.entry[menu->current].name, 1);
- break;
-
- case OP_BROWSER_UNSUBSCRIBE:
- imap_subscribe (state.entry[menu->current].name, 0);
- break;
-
case OP_BROWSER_TOGGLE_LSUB:
if (option (OPTIMAPLSUB))
{
--- 1046,1051 ----
break;
#ifdef USE_IMAP
case OP_BROWSER_TOGGLE_LSUB:
if (option (OPTIMAPLSUB))
{
***************
*** 908,913 ****
case OP_CHANGE_DIRECTORY:
strfcpy (buf, LastDir, sizeof (buf));
#ifdef USE_IMAP
if (!state.imap_browse)
--- 1116,1126 ----
case OP_CHANGE_DIRECTORY:
+ #ifdef USE_NNTP
+ if (option (OPTNEWS))
+ break;
+ #endif
+
strfcpy (buf, LastDir, sizeof (buf));
#ifdef USE_IMAP
if (!state.imap_browse)
***************
*** 1158,1163 ****
else
mutt_error _("Error trying to view file");
}
}
}
--- 1371,1560 ----
else
mutt_error _("Error trying to view file");
}
+ break;
+
+ #ifdef USE_NNTP
+ case OP_CATCHUP:
+ case OP_UNCATCHUP:
+ if (option (OPTNEWS))
+ {
+ struct folder_file *f = &state.entry[menu->current];
+ NNTP_DATA *nd;
+
+ if (i == OP_CATCHUP)
+ nd = mutt_newsgroup_catchup (CurrentNewsSrv, f->name);
+ else
+ nd = mutt_newsgroup_uncatchup (CurrentNewsSrv, f->name);
+
+ if (nd)
+ {
+ /* FOLDER folder;
+ struct folder_file ff;
+ char buffer[_POSIX_PATH_MAX + SHORT_STRING];
+
+ folder.ff = &ff;
+ folder.ff->name = f->name;
+ folder.ff->st = NULL;
+ folder.ff->is_new = nd->new;
+ folder.ff->nd = nd;
+ safe_free ((void **) &f->desc);
+ mutt_FormatString (buffer, sizeof (buffer), NONULL(GroupFormat),
+ newsgroup_format_str, (unsigned long) &folder,
+ M_FORMAT_ARROWCURSOR);
+ f->desc = safe_strdup (buffer); */
+ if (menu->current + 1 < menu->max)
+ menu->current++;
+ menu->redraw = REDRAW_MOTION_RESYNCH;
+ }
+ }
+ break;
+
+ case OP_LOAD_ACTIVE:
+ if (!option (OPTNEWS))
+ break;
+
+ {
+ LIST *tmp;
+ NNTP_DATA *data;
+
+ for (tmp = CurrentNewsSrv->list; tmp; tmp = tmp->next)
+ {
+ if ((data = (NNTP_DATA *)tmp->data))
+ data->deleted = 1;
+ }
+ }
+ nntp_get_active (CurrentNewsSrv);
+
+ destroy_state (&state);
+ if (buffy)
+ examine_mailboxes (menu, &state);
+ else
+ examine_directory (menu, &state, NULL, NULL);
+ init_menu (&state, menu, title, sizeof (title), buffy);
+ break;
+ #endif /* USE_NNTP */
+
+ #if defined USE_IMAP || defined USE_NNTP
+ case OP_BROWSER_SUBSCRIBE:
+ case OP_BROWSER_UNSUBSCRIBE:
+ #endif
+ #ifdef USE_NNTP
+ case OP_SUBSCRIBE_PATTERN:
+ case OP_UNSUBSCRIBE_PATTERN:
+ if (option (OPTNEWS))
+ {
+ regex_t *rx = (regex_t *) safe_malloc (sizeof (regex_t));
+ char *s = buf;
+ int j = menu->current;
+ NNTP_DATA *nd;
+ NNTP_SERVER *news = CurrentNewsSrv;
+
+ if (i == OP_SUBSCRIBE_PATTERN || i == OP_UNSUBSCRIBE_PATTERN)
+ {
+ char tmp[STRING];
+ int err;
+
+ buf[0] = 0;
+ if (i == OP_SUBSCRIBE_PATTERN)
+ snprintf (tmp, sizeof (tmp), _("Subscribe pattern: "));
+ else
+ snprintf (tmp, sizeof (tmp), _("Unsubscribe pattern: "));
+ if (mutt_get_field (tmp, buf, sizeof (buf), 0) != 0 || !buf[0])
+ {
+ FREE (&rx);
+ break;
+ }
+
+ if ((err = REGCOMP (rx, s, REG_NOSUB)) != 0)
+ {
+ regerror (err, rx, buf, sizeof (buf));
+ regfree (rx);
+ safe_free ((void **) &rx);
+ mutt_error ("%s", buf);
+ break;
+ }
+ menu->redraw = REDRAW_FULL;
+ j = 0;
+ }
+ else if (!state.entrylen)
+ {
+ mutt_error _("No newsgroups match the mask");
+ break;
+ }
+
+ for ( ; j < state.entrylen; j++)
+ {
+ struct folder_file *f = &state.entry[j];
+
+ if (i == OP_BROWSER_SUBSCRIBE || i == OP_BROWSER_UNSUBSCRIBE ||
+ regexec (rx, f->name, 0, NULL, 0) == 0)
+ {
+ if (i == OP_BROWSER_SUBSCRIBE || i == OP_SUBSCRIBE_PATTERN)
+ nd = mutt_newsgroup_subscribe (news, f->name);
+ else
+ nd = mutt_newsgroup_unsubscribe (news, f->name);
+ /* if (nd)
+ {
+ FOLDER folder;
+ char buffer[_POSIX_PATH_MAX + SHORT_STRING];
+
+ folder.name = f->name;
+ folder.f = NULL;
+ folder.new = nd->new;
+ folder.nd = nd;
+ safe_free ((void **) &f->desc);
+ mutt_FormatString (buffer, sizeof (buffer), NONULL(GroupFormat),
+ newsgroup_format_str, (unsigned long) &folder,
+ M_FORMAT_ARROWCURSOR);
+ f->desc = safe_strdup (buffer);
+ } */
+ }
+ if (i == OP_BROWSER_SUBSCRIBE || i == OP_BROWSER_UNSUBSCRIBE)
+ {
+ if (menu->current + 1 < menu->max)
+ menu->current++;
+ menu->redraw = REDRAW_MOTION_RESYNCH;
+ break;
+ }
+ }
+ if (i == OP_SUBSCRIBE_PATTERN)
+ {
+ LIST *grouplist = NULL;
+
+ if (news)
+ grouplist = news->list;
+ for (; grouplist; grouplist = grouplist->next)
+ {
+ nd = (NNTP_DATA *) grouplist->data;
+ if (nd && nd->group && !nd->subscribed)
+ {
+ if (regexec (rx, nd->group, 0, NULL, 0) == 0)
+ {
+ mutt_newsgroup_subscribe (news, nd->group);
+ add_folder (menu, &state, nd->group, NULL, nd, nd->new);
+ }
+ }
+ }
+ init_menu (&state, menu, title, sizeof (title), buffy);
+ }
+ mutt_newsrc_update (news);
+ nntp_clear_cacheindex (news);
+ if (i != OP_BROWSER_SUBSCRIBE && i != OP_BROWSER_UNSUBSCRIBE)
+ regfree (rx);
+ safe_free ((void **) &rx);
+ }
+ #ifdef USE_IMAP
+ else
+ #endif /* USE_IMAP && USE_NNTP */
+ #endif /* USE_NNTP */
+ #ifdef USE_IMAP
+ {
+ if (i == OP_BROWSER_SUBSCRIBE)
+ imap_subscribe (state.entry[menu->current].name, 1);
+ else
+ imap_subscribe (state.entry[menu->current].name, 0);
+ }
+ #endif /* USE_IMAP */
}
}
***************
*** 291,315 ****
/* check to see if the folder is the currently selected folder
* before polling */
if (!Context || !Context->path ||
- #if defined USE_IMAP || defined USE_POP
- ((
#ifdef USE_IMAP
- tmp->magic == M_IMAP
#endif
#ifdef USE_POP
- #ifdef USE_IMAP
- ||
- #endif
- tmp->magic == M_POP
- #endif
- ) ? mutt_strcmp (tmp->path, Context->path) :
#endif
- (sb.st_dev != contex_sb.st_dev || sb.st_ino != contex_sb.st_ino)
- #if defined USE_IMAP || defined USE_POP
- )
#endif
- )
-
{
switch (tmp->magic)
{
--- 299,319 ----
/* check to see if the folder is the currently selected folder
* before polling */
if (!Context || !Context->path ||
+ (
+ (0
#ifdef USE_IMAP
+ || tmp->magic == M_IMAP
#endif
#ifdef USE_POP
+ || tmp->magic == M_POP
#endif
+ #ifdef USE_NNTP
+ || tmp->magic == M_NNTP
#endif
+ ) ? mutt_strcmp (tmp->path, Context->path) :
+ (sb.st_dev != contex_sb.st_dev || sb.st_ino != contex_sb.st_ino)
+ )
+ )
{
switch (tmp->magic)
{
***************
*** 375,380 ****
#ifdef USE_POP
case M_POP:
break;
#endif
}
--- 379,389 ----
#ifdef USE_POP
case M_POP:
+ break;
+ #endif
+
+ #ifdef USE_NNTP
+ case M_NNTP:
break;
#endif
}
***************
*** 532,545 ****
menu->redraw = edit_address_list (HDR_FROM, &msg->env->from);
break;
case OP_COMPOSE_EDIT_TO:
- menu->redraw = edit_address_list (HDR_TO, &msg->env->to);
break;
case OP_COMPOSE_EDIT_BCC:
- menu->redraw = edit_address_list (HDR_BCC, &msg->env->bcc);
break;
case OP_COMPOSE_EDIT_CC:
- menu->redraw = edit_address_list (HDR_CC, &msg->env->cc);
break;
case OP_COMPOSE_EDIT_SUBJECT:
if (msg->env->subject)
strfcpy (buf, msg->env->subject, sizeof (buf));
--- 598,678 ----
menu->redraw = edit_address_list (HDR_FROM, &msg->env->from);
break;
case OP_COMPOSE_EDIT_TO:
+ #ifdef USE_NNTP
+ if (!news)
+ #endif
+ menu->redraw = edit_address_list (HDR_TO, &msg->env->to);
break;
case OP_COMPOSE_EDIT_BCC:
+ #ifdef USE_NNTP
+ if (!news)
+ #endif
+ menu->redraw = edit_address_list (HDR_BCC, &msg->env->bcc);
break;
case OP_COMPOSE_EDIT_CC:
+ #ifdef USE_NNTP
+ if (!news)
+ #endif
+ menu->redraw = edit_address_list (HDR_CC, &msg->env->cc);
+ break;
+ #ifdef USE_NNTP
+ case OP_COMPOSE_EDIT_NEWSGROUPS:
+ if (news)
+ {
+ if (msg->env->newsgroups)
+ strfcpy (buf, msg->env->newsgroups, sizeof (buf));
+ else
+ buf[0] = 0;
+ if (mutt_get_field ("Newsgroups: ", buf, sizeof (buf), 0) == 0 && buf[0])
+ {
+ safe_free ((void **) &msg->env->newsgroups);
+ mutt_remove_trailing_ws (buf);
+ msg->env->newsgroups = safe_strdup (mutt_skip_whitespace (buf));
+ move (HDR_TO, HDR_XOFFSET);
+ clrtoeol ();
+ if (msg->env->newsgroups)
+ printw ("%-*.*s", W, W, msg->env->newsgroups);
+ }
+ }
+ break;
+
+ case OP_COMPOSE_EDIT_FOLLOWUP_TO:
+ if (news)
+ {
+ buf[0] = 0;
+ if (msg->env->followup_to)
+ strfcpy (buf, msg->env->followup_to, sizeof (buf));
+ if (mutt_get_field ("Followup-To: ", buf, sizeof (buf), 0) == 0 && buf[0])
+ {
+ safe_free ((void **) &msg->env->followup_to);
+ mutt_remove_trailing_ws (buf);
+ msg->env->followup_to = safe_strdup (mutt_skip_whitespace (buf));
+ move (HDR_CC, HDR_XOFFSET);
+ clrtoeol();
+ if (msg->env->followup_to)
+ printw ("%-*.*s", W, W, msg->env->followup_to);
+ }
+ }
break;
+
+ case OP_COMPOSE_EDIT_X_COMMENT_TO:
+ if (news && option (OPTXCOMMENTTO))
+ {
+ buf[0] = 0;
+ if (msg->env->x_comment_to)
+ strfcpy (buf, msg->env->x_comment_to, sizeof (buf));
+ if (mutt_get_field ("X-Comment-To: ", buf, sizeof (buf), 0) == 0 && buf[0])
+ {
+ safe_free ((void **) &msg->env->x_comment_to);
+ msg->env->x_comment_to = safe_strdup (buf);
+ move (HDR_BCC, HDR_XOFFSET);
+ clrtoeol();
+ if (msg->env->x_comment_to)
+ printw ("%-*.*s", W, W, msg->env->x_comment_to);
+ }
+ }
+ break;
+ #endif
case OP_COMPOSE_EDIT_SUBJECT:
if (msg->env->subject)
strfcpy (buf, msg->env->subject, sizeof (buf));
***************
*** 695,700 ****
break;
case OP_COMPOSE_ATTACH_MESSAGE:
{
char *prompt;
HEADER *h;
--- 828,836 ----
break;
case OP_COMPOSE_ATTACH_MESSAGE:
+ #ifdef USE_NNTP
+ case OP_COMPOSE_ATTACH_NEWS_MESSAGE:
+ #endif
{
char *prompt;
HEADER *h;
***************
*** 702,708 ****
fname[0] = 0;
prompt = _("Open mailbox to attach message from");
if (Context)
{
strfcpy (fname, NONULL (Context->path), sizeof (fname));
mutt_pretty_mailbox (fname);
--- 838,859 ----
fname[0] = 0;
prompt = _("Open mailbox to attach message from");
+ #ifdef USE_NNTP
+ unset_option (OPTNEWS);
+ if (op == OP_COMPOSE_ATTACH_NEWS_MESSAGE)
+ {
+ if (!(CurrentNewsSrv = mutt_select_newsserver (NewsServer)))
+ break;
+
+ prompt = _("Open newsgroup to attach message from");
+ set_option (OPTNEWS);
+ }
+ #endif
+
if (Context)
+ #ifdef USE_NNTP
+ if ((op == OP_COMPOSE_ATTACH_MESSAGE) ^ (Context->magic == M_NNTP))
+ #endif
{
strfcpy (fname, NONULL (Context->path), sizeof (fname));
mutt_pretty_mailbox (fname);