Commit d4c913f7 authored by Thomas Roessler's avatar Thomas Roessler

Various changes added over the last week:

- $delete_untag
- creation of "application/pgp" messages
- an attempt to fix prepare.
- Browser format changes
parent d0051659
......@@ -150,8 +150,8 @@ update-doc: stamp-doc-rc
(cd doc && make update-doc)
stamp-doc-rc: $(srcdir)/init.h makedoc Muttrc.head
cpp -D_MAKEDOC -C -I. -I $(srcdir) -include config.h \
$(srcdir)/init.h | ./makedoc -c | cat Muttrc.head - \
cpp $(INCLUDES) $(DEFS) $(CPPFLAGS) -D_MAKEDOC -C \
-include config.h $(srcdir)/init.h | ./makedoc -c | cat Muttrc.head - \
> Muttrc
touch stamp-doc-rc
......@@ -425,11 +425,23 @@ macro pager <f1> "!less /usr/local/doc/mutt/manual.txt\n" "Show Mutt documenta
# no, messages marked for deletion will be kept in the mailbox.
#
#
# set dotlock_program="BINDIR/mutt_dotlock"
# set delete_untag=yes
#
# Name: delete_untag
# Type: boolean
# Default: yes
#
#
# If this option is set, mutt will untag messages when marking them
# for deletion. This applies when you either explicitly delete a message,
# or when you save it to another folder.
#
#
# set dotlock_program="/usr/local/bin/mutt_dotlock"
#
# Name: dotlock_program
# Type: path
# Default: "BINDIR/mutt_dotlock"
# Default: "/usr/local/bin/mutt_dotlock"
#
#
# Contains the path of the mutt_dotlock (8) binary to be used by
......@@ -560,17 +572,18 @@ macro pager <f1> "!less /usr/local/doc/mutt/manual.txt\n" "Show Mutt documenta
# during the `set' command.
#
#
# set folder_format="%N %F %2l %-8.8u %-8.8g %8s %d %f"
# set folder_format="%2C %t %N %F %2l %-8.8u %-8.8g %8s %d %f"
#
# Name: folder_format
# Type: string
# Default: "%N %F %2l %-8.8u %-8.8g %8s %d %f"
# Default: "%2C %t %N %F %2l %-8.8u %-8.8g %8s %d %f"
#
#
# This variable allows you to customize the file browser display to your
# personal taste. This string is similar to ``index_format'', but has
# its own set of printf()-like sequences:
#
# %C current file number
# %d date/time folder was last modified
# %f filename
# %F file permissions
......@@ -578,6 +591,7 @@ macro pager <f1> "!less /usr/local/doc/mutt/manual.txt\n" "Show Mutt documenta
# %l number of hard links
# %N N if folder has new mail, blank otherwise
# %s size in bytes
# %t * if the file is tagged, blank otherwise
# %u owner name (or numeric uid, if missing)
# %>X right justify the rest of the string and pad
# with character "X"
......@@ -795,6 +809,75 @@ macro pager <f1> "!less /usr/local/doc/mutt/manual.txt\n" "Show Mutt documenta
# list.
#
#
# set imap_checkinterval=0
#
# Name: imap_checkinterval
# Type: number
# Default: 0
#
#
# This variable configures how often (in seconds) IMAP should look for
# new mail.
#
#
# set imap_list_subscribed=no
#
# Name: imap_list_subscribed
# Type: boolean
# Default: no
#
#
# This variable configures whether IMAP folder browsing will look for
# only subscribed folders or all folders. This can be toggled in the
# IMAP browser with the toggle-subscribed command.
#
#
# set imap_user=""
#
# Name: imap_user
# Type: string
# Default: ""
#
#
# Your login name on the IMAP server.
#
# This variable defaults to your user name on the local machine.
#
#
# set imap_pass=""
#
# Name: imap_pass
# Type: string
# Default: ""
#
#
# Specifies the password for your IMAP account. If unset, Mutt will
# prompt you for your password when you invoke the fetch-mail function.
# Warning: you should only use this option when you are on a
# fairly secure machine, because the superuser can read your muttrc even
# if you are the only one who can read the file.
#
#
# set imap_passive=yes
#
# Name: imap_passive
# Type: boolean
# Default: yes
#
#
# When set, mutt will not open new IMAP connections to check for new
# mail. Mutt will only check for new mail over existing IMAP
# connections. This is useful if you don't want to be prompted to
# user/password pairs on mutt invocation, or if opening the connection
# is slow.
#
#
# set imap_home_namespace=""
#
# Name: imap_home_namespace
# Type: string
# Default: ""
#
# set implicit_autoview=no
#
# Name: implicit_autoview
......@@ -1460,6 +1543,24 @@ macro pager <f1> "!less /usr/local/doc/mutt/manual.txt\n" "Show Mutt documenta
# `reverse-'.
#
#
# set pgp_create_traditional=no
#
# Name: pgp_create_traditional
# Type: quadoption
# Default: no
#
#
# This option controls whether Mutt generates old-style PGP encrypted
# or signed messages under certain circumstances.
#
# Note that PGP/MIME will be used automatically for messages which have
# a character set different from us-ascii, or which consist of more than
# a single MIME part.
#
# Also note that using the old-style PGP message format is strongly
# deprecated.
#
#
# set pgp_decode_command=""
#
# Name: pgp_decode_command
......@@ -1522,6 +1623,17 @@ macro pager <f1> "!less /usr/local/doc/mutt/manual.txt\n" "Show Mutt documenta
# This command is used to decrypt a PGP/MIME encrypted message.
#
#
# set pgp_clearsign_command=""
#
# Name: pgp_clearsign_command
# Type: string
# Default: ""
#
#
# This format is used to create a "clearsigned" old-style PGP attachment.
# Note that the use of this format is strongly deprecated.
#
#
# set pgp_sign_command=""
#
# Name: pgp_sign_command
......@@ -1668,6 +1780,71 @@ macro pager <f1> "!less /usr/local/doc/mutt/manual.txt\n" "Show Mutt documenta
# messages to an external Unix command.
#
#
# set pop_delete=no
#
# Name: pop_delete
# Type: boolean
# Default: no
#
#
# If set, Mutt will delete successfully downloaded messages from the POP
# server when using the fetch-mail function. When unset, Mutt will
# download messages but also leave them on the POP server.
#
#
# set pop_host=""
#
# Name: pop_host
# Type: string
# Default: ""
#
#
# The name or address of your POP3 server.
#
#
# set pop_port=110
#
# Name: pop_port
# Type: number
# Default: 110
#
#
# This variable specifies which port your POP server is listening on.
#
#
# set pop_last=no
#
# Name: pop_last
# Type: boolean
# Default: no
#
#
# If this variable is set, mutt will try to use the "LAST" POP command
# for retrieving only unread messages from the POP server.
#
#
# set pop_user=""
#
# Name: pop_user
# Type: string
# Default: ""
#
#
# Your login name on the POP3 server.
#
# Defaults to your login name on the local system.
#
#
# set pop_pass=""
#
# Name: pop_pass
# Type: string
# Default: ""
#
#
# Your password on the POP3 server.
#
#
# set post_indent_string=""
#
# Name: post_indent_string
......
Major changes since 0.96.3
--------------------------
- There is a new option $delete_untag. Former mutt versions used to
untag messages when you save them, but leave them tagged whe you
mark them for deletion. $delete_untag controls _both_ cases,
leading to more uniform behaviour.
- The $weed option applies to the decode-save and decode-copy
functions. Think of these functions as something along the lines
of "save to file".
- The master source of the configuration option reference has been
moved from the SGML document into special comments in init.h.
"makedoc" is used to extract this information into a new,
......
......@@ -56,10 +56,5 @@ For example, a safe version of the mailcap statement above could
look like this:
> text/test-mailcap-bug; cat %s; copiousoutput; test=charset=%{charset} \
> && test "`echo $charset | tr '[A-Z]' '[a-z]'`" != iso-8859-1
> && test "`echo \"$charset\" | tr '[A-Z]' '[a-z]'`" != iso-8859-1
The "charset=%{charset}" assignment is risk-free since mutt performs
the necessary quoting steps here. Using it inside the backtick
expansion is safe, too, since the variable's value is not itself
subject to any further expansion (but note that it _is_ subject to
word splitting).
......@@ -47,9 +47,8 @@ static struct mapping_t FolderHelp[] = {
typedef struct folder_t
{
const char *name;
const struct stat *f;
int new;
struct folder_file *ff;
int num;
} FOLDER;
static char LastDir[_POSIX_PATH_MAX] = "";
......@@ -63,6 +62,7 @@ static void destroy_state (struct browser_state *state)
{
safe_free ((void **) &((state->entry)[c].name));
safe_free ((void **) &((state->entry)[c].desc));
safe_free ((void **) &((state->entry)[c].st));
}
#ifdef USE_IMAP
safe_free ((void **) &state->folder);
......@@ -146,12 +146,17 @@ folder_format_str (char *dest, size_t destlen, char op, const char *src,
switch (op)
{
case 'C':
snprintf (tmp, sizeof (tmp), "%%%sd", fmt);
snprintf (dest, destlen, tmp, folder->num + 1);
break;
case 'd':
if (folder->f != NULL)
if (folder->ff->st != NULL)
{
tnow = time (NULL);
t_fmt = tnow - folder->f->st_mtime < 31536000 ? "%b %d %H:%M" : "%b %d %Y";
strftime (date, sizeof (date), t_fmt, localtime (&folder->f->st_mtime));
t_fmt = tnow - folder->ff->st->st_mtime < 31536000 ? "%b %d %H:%M" : "%b %d %Y";
strftime (date, sizeof (date), t_fmt, localtime (&folder->ff->st->st_mtime));
snprintf (tmp, sizeof (tmp), "%%%ss", fmt);
snprintf (dest, destlen, tmp, date);
}
......@@ -161,38 +166,40 @@ folder_format_str (char *dest, size_t destlen, char op, const char *src,
snprintf (dest, destlen, tmp, "");
}
break;
case 'f':
strfcpy (fn, folder->name, sizeof(fn));
if (folder->f != NULL)
strfcpy (fn, folder->ff->name, sizeof(fn));
if (folder->ff->st != NULL)
{
strcat (fn, S_ISLNK (folder->f->st_mode) ? "@" :
(S_ISDIR (folder->f->st_mode) ? "/" :
((folder->f->st_mode & S_IXUSR) != 0 ? "*" : "")));
strcat (fn, S_ISLNK (folder->ff->st->st_mode) ? "@" :
(S_ISDIR (folder->ff->st->st_mode) ? "/" :
((folder->ff->st->st_mode & S_IXUSR) != 0 ? "*" : "")));
}
snprintf (tmp, sizeof (tmp), "%%%ss", fmt);
snprintf (dest, destlen, tmp, fn);
break;
case 'F':
if (folder->f != NULL)
if (folder->ff->st != NULL)
{
sprintf (permission, "%c%c%c%c%c%c%c%c%c%c",
S_ISDIR(folder->f->st_mode) ? 'd' : (S_ISLNK(folder->f->st_mode) ? 'l' : '-'),
(folder->f->st_mode & S_IRUSR) != 0 ? 'r': '-',
(folder->f->st_mode & S_IWUSR) != 0 ? 'w' : '-',
(folder->f->st_mode & S_ISUID) != 0 ? 's' : (folder->f->st_mode & S_IXUSR) != 0 ? 'x': '-',
(folder->f->st_mode & S_IRGRP) != 0 ? 'r' : '-',
(folder->f->st_mode & S_IWGRP) != 0 ? 'w' : '-',
(folder->f->st_mode & S_ISGID) != 0 ? 's' : (folder->f->st_mode & S_IXGRP) != 0 ? 'x': '-',
(folder->f->st_mode & S_IROTH) != 0 ? 'r' : '-',
(folder->f->st_mode & S_IWOTH) != 0 ? 'w' : '-',
(folder->f->st_mode & S_ISVTX) != 0 ? 't' : (folder->f->st_mode & S_IXOTH) != 0 ? 'x': '-');
S_ISDIR(folder->ff->st->st_mode) ? 'd' : (S_ISLNK(folder->ff->st->st_mode) ? 'l' : '-'),
(folder->ff->st->st_mode & S_IRUSR) != 0 ? 'r': '-',
(folder->ff->st->st_mode & S_IWUSR) != 0 ? 'w' : '-',
(folder->ff->st->st_mode & S_ISUID) != 0 ? 's' : (folder->ff->st->st_mode & S_IXUSR) != 0 ? 'x': '-',
(folder->ff->st->st_mode & S_IRGRP) != 0 ? 'r' : '-',
(folder->ff->st->st_mode & S_IWGRP) != 0 ? 'w' : '-',
(folder->ff->st->st_mode & S_ISGID) != 0 ? 's' : (folder->ff->st->st_mode & S_IXGRP) != 0 ? 'x': '-',
(folder->ff->st->st_mode & S_IROTH) != 0 ? 'r' : '-',
(folder->ff->st->st_mode & S_IWOTH) != 0 ? 'w' : '-',
(folder->ff->st->st_mode & S_ISVTX) != 0 ? 't' : (folder->ff->st->st_mode & S_IXOTH) != 0 ? 'x': '-');
snprintf (tmp, sizeof (tmp), "%%%ss", fmt);
snprintf (dest, destlen, tmp, permission);
}
else
{
#ifdef USE_IMAP
if (strchr(folder->name, '{'))
if (strchr(folder->ff->name, '{'))
{
snprintf (tmp, sizeof (tmp), "%%%ss", fmt);
snprintf (dest, destlen, tmp, "IMAP");
......@@ -200,10 +207,11 @@ folder_format_str (char *dest, size_t destlen, char op, const char *src,
#endif
}
break;
case 'g':
if (folder->f != NULL)
if (folder->ff->st != NULL)
{
if ((gr = getgrgid (folder->f->st_gid)))
if ((gr = getgrgid (folder->ff->st->st_gid)))
{
snprintf (tmp, sizeof (tmp), "%%%ss", fmt);
snprintf (dest, destlen, tmp, gr->gr_name);
......@@ -211,7 +219,7 @@ folder_format_str (char *dest, size_t destlen, char op, const char *src,
else
{
snprintf (tmp, sizeof (tmp), "%%%sld", fmt);
snprintf (dest, destlen, tmp, folder->f->st_gid);
snprintf (dest, destlen, tmp, folder->ff->st->st_gid);
}
}
else
......@@ -220,11 +228,12 @@ folder_format_str (char *dest, size_t destlen, char op, const char *src,
snprintf (dest, destlen, tmp, "");
}
break;
case 'l':
if (folder->f != NULL)
if (folder->ff->st != NULL)
{
snprintf (tmp, sizeof (tmp), "%%%sd", fmt);
snprintf (dest, destlen, tmp, folder->f->st_nlink);
snprintf (dest, destlen, tmp, folder->ff->st->st_nlink);
}
else
{
......@@ -232,15 +241,17 @@ folder_format_str (char *dest, size_t destlen, char op, const char *src,
snprintf (dest, destlen, tmp, "");
}
break;
case 'N':
snprintf (tmp, sizeof (tmp), "%%%sc", fmt);
snprintf (dest, destlen, tmp, folder->new ? 'N' : ' ');
snprintf (dest, destlen, tmp, folder->ff->is_new ? 'N' : ' ');
break;
case 's':
if (folder->f != NULL)
if (folder->ff->st != NULL)
{
snprintf (tmp, sizeof (tmp), "%%%sld", fmt);
snprintf (dest, destlen, tmp, (long) folder->f->st_size);
snprintf (dest, destlen, tmp, (long) folder->ff->st->st_size);
}
else
{
......@@ -248,10 +259,16 @@ folder_format_str (char *dest, size_t destlen, char op, const char *src,
snprintf (dest, destlen, tmp, "");
}
break;
case 't':
snprintf (tmp, sizeof (tmp), "%%%sc", fmt);
snprintf (dest, destlen, tmp, folder->ff->tagged ? '*' : ' ');
break;
case 'u':
if (folder->f != NULL)
if (folder->ff->st != NULL)
{
if ((pw = getpwuid (folder->f->st_uid)))
if ((pw = getpwuid (folder->ff->st->st_uid)))
{
snprintf (tmp, sizeof (tmp), "%%%ss", fmt);
snprintf (dest, destlen, tmp, pw->pw_name);
......@@ -259,7 +276,7 @@ folder_format_str (char *dest, size_t destlen, char op, const char *src,
else
{
snprintf (tmp, sizeof (tmp), "%%%sld", fmt);
snprintf (dest, destlen, tmp, folder->f->st_uid);
snprintf (dest, destlen, tmp, folder->ff->st->st_uid);
}
}
else
......@@ -268,6 +285,11 @@ folder_format_str (char *dest, size_t destlen, char op, const char *src,
snprintf (dest, destlen, tmp, "");
}
break;
default:
snprintf (tmp, sizeof (tmp), "%%%sc", fmt);
snprintf (dest, destlen, tmp, op);
break;
}
return (src);
}
......@@ -276,14 +298,6 @@ static void add_folder (MUTTMENU *m, struct browser_state *state,
const char *name, const struct stat *s, int new)
{
char buffer[_POSIX_PATH_MAX + SHORT_STRING];
FOLDER folder;
folder.name = name;
folder.f = s;
folder.new = new;
mutt_FormatString (buffer, sizeof (buffer), NONULL(FolderFormat),
folder_format_str, (unsigned long) &folder,
M_FORMAT_ARROWCURSOR);
if (state->entrylen == state->entrymax)
{
......@@ -296,10 +310,15 @@ static void add_folder (MUTTMENU *m, struct browser_state *state,
if (s != NULL)
{
(state->entry)[state->entrylen].mode = s->st_mode;
(state->entry)[state->entrylen].mtime = s->st_mtime;
(state->entry)[state->entrylen].size = s->st_size;
(state->entry)[state->entrylen].mode = s->st_mode;
(state->entry)[state->entrylen].mtime = s->st_mtime;
(state->entry)[state->entrylen].size = s->st_size;
(state->entry)[state->entrylen].st = safe_malloc (sizeof (struct stat));
memcpy ((state->entry)[state->entrylen].st, s, sizeof (struct stat));
}
(state->entry)[state->entrylen].is_new = new;
(state->entry)[state->entrylen].name = safe_strdup (name);
(state->entry)[state->entrylen].desc = safe_strdup (buffer);
#ifdef USE_IMAP
......@@ -423,10 +442,13 @@ int select_file_search (MUTTMENU *menu, regex_t *re, int n)
void folder_entry (char *s, size_t slen, MUTTMENU *menu, int num)
{
snprintf (s, slen, "%2d %c %s",
num + 1,
((struct folder_file *) menu->data)[num].tagged ? '*' : ' ',
((struct folder_file *) menu->data)[num].desc);
FOLDER folder;
folder.ff = &((struct folder_file *) menu->data)[num];
folder.num = num;
mutt_FormatString (s, slen, NONULL(FolderFormat), folder_format_str,
(unsigned long) &folder, M_FORMAT_ARROWCURSOR);
}
static void init_menu (struct browser_state *state, MUTTMENU *menu, char *title,
......
......@@ -23,14 +23,17 @@
struct folder_file
{
mode_t mode;
time_t mtime;
off_t size;
time_t mtime;
struct stat *st;
char *name;
char *desc;
#ifdef USE_IMAP
short notfolder;
#endif
unsigned tagged : 1;
unsigned is_new : 1;
};
struct browser_state
......
......@@ -477,7 +477,7 @@ void mutt_display_address (ENVELOPE *env)
mutt_message ("%s: %s", pfx, buf);
}
static void set_copy_flags(HEADER *hdr, int decode, int decrypt, int *cmflags, int *chflags)
static void set_copy_flags (HEADER *hdr, int decode, int decrypt, int *cmflags, int *chflags)
{
*cmflags = 0;
*chflags = CH_UPDATE_LEN;
......@@ -495,27 +495,37 @@ static void set_copy_flags(HEADER *hdr, int decode, int decrypt, int *cmflags, i
}
#endif
if(decode)
if (decode)
{
*chflags = CH_XMIT | CH_MIME | CH_TXTPLAIN;
*cmflags = M_CM_DECODE | M_CM_CHARCONV;
}
/* respect $weed only if decode doesn't kick in
* for decrypt.
*/
if (decode && !decrypt && option (OPTWEED))
{
*chflags |= CH_WEED;
*cmflags |= M_CM_WEED;
}
}
static void _mutt_save_message (HEADER *h, CONTEXT *ctx, int delete, int decode, int decrypt)
{
int cmflags, chflags;
set_copy_flags(h, decode, decrypt, &cmflags, &chflags);
set_copy_flags (h, decode, decrypt, &cmflags, &chflags);
if (decode || decrypt)
if (decode || decrypt)
mutt_parse_mime_message (Context, h);
if (mutt_append_message (ctx, Context, h, cmflags, chflags) == 0 && delete)
{
mutt_set_flag (Context, h, M_DELETE, 1);
mutt_set_flag (Context, h, M_TAG, 0);
if (option (OPTDELETEUNTAG))
mutt_set_flag (Context, h, M_TAG, 0);
}
}
......
......@@ -45,6 +45,7 @@ mutt_copy_hdr (FILE *in, FILE *out, long off_start, long off_end, int flags,
const char *prefix)
{
int from = 0;
int this_is_from;
int ignore = 0;
char buf[STRING]; /* should be long enough to get most fields in one pass */
char *nl;
......@@ -136,16 +137,19 @@ mutt_copy_hdr (FILE *in, FILE *out, long off_start, long off_end, int flags,
if (nl && buf[0] != ' ' && buf[0] != '\t')
{
ignore = 1;
this_is_from = 0;
if (!from && mutt_strncmp ("From ", buf, 5) == 0)
{
if ((flags & CH_FROM) == 0)
continue;
from = 1;
this_is_from = from = 1;
}
else if (buf[0] == '\n' || (buf[0] == '\r' && buf[1] == '\n'))
break; /* end of header */
if ((flags & CH_WEED) &&
/* note: CH_FROM takes precedence over header weeding. */
if (!((flags & CH_FROM) && (flags & CH_FORCE_FROM) && this_is_from) &&
(flags & CH_WEED) &&
mutt_matches_ignore (buf, Ignore) &&
!mutt_matches_ignore (buf, UnIgnore))
continue;
......@@ -262,6 +266,7 @@ mutt_copy_hdr (FILE *in, FILE *out, long off_start, long off_end, int flags,
/* flags
CH_DECODE RFC2047 header decoding
CH_FROM retain the "From " message separator
CH_FORCE_FROM give CH_FROM precedence over CH_WEED
CH_MIME ignore MIME fields
CH_NOLEN don't write Content-Length: and Lines:
CH_NONEWLINE don't output a newline after the header
......@@ -606,7 +611,7 @@ _mutt_append_message (CONTEXT *dest, FILE *fpin, CONTEXT *src, HEADER *hdr,
if ((msg = mx_open_new_message (dest, hdr, (src->magic == M_MBOX || src->magic == M_MMDF || src->magic == M_KENDRA) ? 0 : M_ADD_FROM)) == NULL)
return -1;
if (dest->magic == M_MBOX || dest->magic == M_MMDF || dest->magic == M_KENDRA)
chflags |= CH_FROM;
chflags |= CH_FROM | CH_FORCE_FROM;
chflags |= (dest->magic == M_MAILDIR ? CH_NOSTATUS : CH_UPDATE);
r = _mutt_copy_message (msg->fp, fpin, hdr, body, flags, chflags);
if (mx_commit_message (msg, dest) != 0)
......
......@@ -1440,11 +1440,15 @@ int mutt_index_menu (void)
if (tag)
{
mutt_tag_set_flag (M_DELETE, 1);
if (option (OPTDELETEUNTAG))
mutt_tag_set_flag (M_TAG, 0);
menu->redraw = REDRAW_INDEX;
}
else
{
mutt_set_flag (Context, CURHDR, M_DELETE, 1);
if (option (OPTDELETEUNTAG))
mutt_set_flag (Context, CURHDR, M_TAG, 0);
if (option (OPTRESOLVE))
{
if ((menu->current = ci_next_undeleted (menu->current)) == -1)
......
......@@ -13,6 +13,7 @@ mandir=@mandir@
sharedir=@sharedir@
srcdir=@srcdir@
docdir=@docdir@
includedir = @includedir@
top_srcdir=@top_srcdir@
top_builddir=..
VPATH=@srcdir@
......@@ -25,6 +26,13 @@ CFLAGS=@CFLAGS@ -DSHAREDIR=\"$(sharedir)\" $(XCPPFLAGS)
LDFLAGS=@LDFLAGS@
subdir = doc
CPPFLAGS = @CPPFLAGS@
DEFS=-DSHAREDIR=\"$(sharedir)\" -DSYSCONFDIR=\"$(sysconfdir)\" \
-DBINDIR=\"$(bindir)\" -DHAVE_CONFIG_H=1
INCLUDES=-I. -I$(includedir) -I$(top_srcdir)
MAKEDOC_CPP=cpp $(INCLUDES) $(DEFS) $(CPPFLAGS) -D_MAKEDOC -C -include ../config.h
DISTFILES = Makefile.in dotlock.man \
mutt.man \
......@@ -127,16 +135,14 @@ at=@
update-doc: ../makedoc stamp-doc-sgml stamp-doc-man
stamp-doc-man: ../makedoc $(top_srcdir)/init.h muttrc.man.head muttrc.man.tail
cpp -D_MAKEDOC -C -I.. -I $(top_srcdir) -include ../config.h \
$(top_srcdir)/init.h | ../makedoc -m | \
$(MAKEDOC_CPP) $(top_srcdir)/init.h | ../makedoc -m | \
cat $(srcdir)/muttrc.man.head - $(srcdir)/muttrc.man.tail\
> muttrc.man
touch stamp-doc-man
stamp-doc-sgml: ../makedoc $(top_srcdir)/init.h manual.sgml.head manual.sgml.tail
( sed -e "s/$(at)VERSION$(at)/`cat $(top_srcdir)/VERSION`/" manual.sgml.head ;\
cpp -D_MAKEDOC -C -I.. -I $(top_srcdir) -include ../config.h \
$(top_srcdir)/init.h | ../makedoc -s ) | \
$(MAKEDOC_CPP) $(top_srcdir)/init.h | ../makedoc -s ) | \
cat - $(srcdir)/manual.sgml.tail > manual.sgml
touch stamp-doc-sgml
......@@ -2910,10 +2910,21 @@ deleting will automatically be purged without prompting. If set to
<em>no</em>, messages marked for deletion will be kept in the mailbox.
<sect2>delete&lowbar;untag<label id="delete_untag">
<p>
Type: boolean<newline>
Default: yes
<p>
If this option is <em>set</em>, mutt will untag messages when marking them
for deletion. This applies when you either explicitly delete a message,
or when you save it to another folder.
<sect2>dotlock&lowbar;program<label id="dotlock_program">
<p>
Type: path<newline>
Default: &dquot;BINDIR/mutt&lowbar;dotlock&dquot;
Default: &dquot;/usr/local/bin/mutt&lowbar;dotlock&dquot;
<p>
Contains the path of the mutt&lowbar;dotlock (8) binary to be used by
......@@ -3038,7 +3049,7 @@ during the `set' command.
<sect2>folder&lowbar;format<label id="folder_format">
<p>
Type: string<newline>
Default: &dquot;&percnt;N &percnt;F &percnt;2l &percnt;-8.8u &percnt;-8.8g &percnt;8s &percnt;d &percnt;f&dquot;
Default: &dquot;&percnt;2C &percnt;t &percnt;N &percnt;F &percnt;2l &percnt;-8.8u &percnt;-8.8g &percnt;8s &percnt;d &percnt;f&dquot;
<p>
This variable allows you to customize the file browser display to your
......@@ -3047,6 +3058,7 @@ its own set of printf()-like sequences:
<p>
<tscreen><verb>
%C current file number
%d date/time folder was last modified
%f filename
%F file permissions
......@@ -3054,6 +3066,7 @@ its own set of printf()-like sequences:
%l number of hard links
%N N if folder has new mail, blank otherwise