|
|
|
@ -1,42 +1,46 @@
|
|
|
|
|
---
|
|
|
|
|
Makefile.am | 1
|
|
|
|
|
Makefile.in | 8 -
|
|
|
|
|
OPS | 5
|
|
|
|
|
PATCHES | 1
|
|
|
|
|
Makefile.am | 1 +
|
|
|
|
|
Makefile.in | 17 ++-
|
|
|
|
|
OPS | 5 +
|
|
|
|
|
PATCHES | 1 +
|
|
|
|
|
buffy.c | 152 ++++++++++++++++++++-
|
|
|
|
|
buffy.h | 6
|
|
|
|
|
color.c | 2
|
|
|
|
|
compose.c | 26 +--
|
|
|
|
|
configure.ac | 2
|
|
|
|
|
curs_main.c | 37 ++++-
|
|
|
|
|
doc/Muttrc | 20 ++
|
|
|
|
|
flags.c | 3
|
|
|
|
|
functions.h | 10 +
|
|
|
|
|
globals.h | 6
|
|
|
|
|
handler.c | 30 ++++
|
|
|
|
|
imap/command.c | 7
|
|
|
|
|
imap/imap.c | 2
|
|
|
|
|
init.h | 48 ++++++
|
|
|
|
|
mailbox.h | 1
|
|
|
|
|
main.c | 11 +
|
|
|
|
|
mbox.c | 2
|
|
|
|
|
menu.c | 20 +-
|
|
|
|
|
mh.c | 26 +++
|
|
|
|
|
mutt.h | 6
|
|
|
|
|
mutt_curses.h | 3
|
|
|
|
|
mutt_menu.h | 1
|
|
|
|
|
muttlib.c | 48 ++++++
|
|
|
|
|
mx.c | 24 +++
|
|
|
|
|
mx.h | 1
|
|
|
|
|
pager.c | 43 +++++-
|
|
|
|
|
pattern.c | 38 +++++
|
|
|
|
|
protos.h | 7
|
|
|
|
|
sidebar.c | 405 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
|
buffy.h | 6 +
|
|
|
|
|
color.c | 2 +
|
|
|
|
|
compose.c | 26 ++--
|
|
|
|
|
configure.ac | 2 +
|
|
|
|
|
curs_main.c | 37 +++++-
|
|
|
|
|
doc/Muttrc | 20 +++
|
|
|
|
|
flags.c | 3 +
|
|
|
|
|
functions.h | 10 ++
|
|
|
|
|
globals.h | 6 +
|
|
|
|
|
handler.c | 30 ++++-
|
|
|
|
|
imap/command.c | 7 +
|
|
|
|
|
imap/imap.c | 2 +-
|
|
|
|
|
init.h | 48 +++++++
|
|
|
|
|
mailbox.h | 1 +
|
|
|
|
|
main.c | 11 +-
|
|
|
|
|
mbox.c | 2 +
|
|
|
|
|
menu.c | 20 +--
|
|
|
|
|
mh.c | 26 ++++
|
|
|
|
|
mutt.h | 6 +
|
|
|
|
|
mutt_curses.h | 3 +
|
|
|
|
|
mutt_menu.h | 1 +
|
|
|
|
|
muttlib.c | 48 +++++++
|
|
|
|
|
mx.c | 24 +++-
|
|
|
|
|
mx.h | 1 +
|
|
|
|
|
pager.c | 42 +++++-
|
|
|
|
|
pattern.c | 38 ++++++
|
|
|
|
|
protos.h | 7 +
|
|
|
|
|
sidebar.c | 410 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
|
sidebar.h | 36 +++++
|
|
|
|
|
34 files changed, 995 insertions(+), 43 deletions(-)
|
|
|
|
|
34 files changed, 1003 insertions(+), 48 deletions(-)
|
|
|
|
|
create mode 100644 sidebar.c
|
|
|
|
|
create mode 100644 sidebar.h
|
|
|
|
|
|
|
|
|
|
--- Makefile.am
|
|
|
|
|
+++ Makefile.am 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
diff --git a/Makefile.am b/Makefile.am
|
|
|
|
|
index da1c3d4..0fc7ab2 100644
|
|
|
|
|
--- a/Makefile.am
|
|
|
|
|
+++ b/Makefile.am
|
|
|
|
|
@@ -34,6 +34,7 @@ mutt_SOURCES = \
|
|
|
|
|
rfc822.c rfc1524.c rfc2047.c rfc2231.c rfc3676.c \
|
|
|
|
|
score.c send.c sendlib.c signal.c sort.c \
|
|
|
|
@ -45,40 +49,60 @@
|
|
|
|
|
muttlib.c editmsg.c mbyte.c \
|
|
|
|
|
url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c
|
|
|
|
|
|
|
|
|
|
--- Makefile.in
|
|
|
|
|
+++ Makefile.in 2015-09-11 14:21:58.526018901 +0000
|
|
|
|
|
@@ -134,7 +134,8 @@ am_mutt_OBJECTS = addrbook.$(OBJEXT) ali
|
|
|
|
|
diff --git a/Makefile.in b/Makefile.in
|
|
|
|
|
index c830b75..3bd847d 100644
|
|
|
|
|
--- a/Makefile.in
|
|
|
|
|
+++ b/Makefile.in
|
|
|
|
|
@@ -87,10 +87,10 @@ DIST_COMMON = $(top_srcdir)/flymake.am $(srcdir)/Makefile.in \
|
|
|
|
|
$(srcdir)/Makefile.am $(top_srcdir)/configure \
|
|
|
|
|
$(am__configure_deps) $(srcdir)/config.h.in \
|
|
|
|
|
$(top_srcdir)/intl/Makefile.in $(srcdir)/hcachever.sh.in \
|
|
|
|
|
- $(srcdir)/muttbug.sh.in strtok_r.c strcasecmp.c regex.c \
|
|
|
|
|
- snprintf.c wcscasecmp.c strcasestr.c setenv.c mkdtemp.c \
|
|
|
|
|
- strsep.c strdup.c depcomp ABOUT-NLS ChangeLog INSTALL NEWS \
|
|
|
|
|
- README TODO compile config.guess config.sub install-sh missing
|
|
|
|
|
+ $(srcdir)/muttbug.sh.in snprintf.c strtok_r.c regex.c strdup.c \
|
|
|
|
|
+ strcasecmp.c setenv.c strcasestr.c wcscasecmp.c mkdtemp.c \
|
|
|
|
|
+ strsep.c depcomp ABOUT-NLS ChangeLog INSTALL NEWS README TODO \
|
|
|
|
|
+ compile config.guess config.sub install-sh missing
|
|
|
|
|
EXTRA_PROGRAMS = mutt_dotlock$(EXEEXT) pgpring$(EXEEXT) \
|
|
|
|
|
pgpewrap$(EXEEXT) mutt_md5$(EXEEXT)
|
|
|
|
|
bin_PROGRAMS = mutt$(EXEEXT) $(DOTLOCK_TARGET) $(PGPAUX_TARGET)
|
|
|
|
|
@@ -132,9 +132,10 @@ am_mutt_OBJECTS = addrbook.$(OBJEXT) alias.$(OBJEXT) attach.$(OBJEXT) \
|
|
|
|
|
score.$(OBJEXT) send.$(OBJEXT) sendlib.$(OBJEXT) \
|
|
|
|
|
signal.$(OBJEXT) sort.$(OBJEXT) status.$(OBJEXT) \
|
|
|
|
|
system.$(OBJEXT) thread.$(OBJEXT) charset.$(OBJEXT) \
|
|
|
|
|
history.$(OBJEXT) lib.$(OBJEXT) muttlib.$(OBJEXT) \
|
|
|
|
|
editmsg.$(OBJEXT) mbyte.$(OBJEXT) url.$(OBJEXT) \
|
|
|
|
|
- history.$(OBJEXT) lib.$(OBJEXT) muttlib.$(OBJEXT) \
|
|
|
|
|
- editmsg.$(OBJEXT) mbyte.$(OBJEXT) url.$(OBJEXT) \
|
|
|
|
|
- ascii.$(OBJEXT) crypt-mod.$(OBJEXT) safe_asprintf.$(OBJEXT)
|
|
|
|
|
+ ascii.$(OBJEXT) crypt-mod.$(OBJEXT) safe_asprintf.$(OBJEXT) \
|
|
|
|
|
+ sidebar.$(OBJEXT)
|
|
|
|
|
+ history.$(OBJEXT) lib.$(OBJEXT) sidebar.$(OBJEXT) \
|
|
|
|
|
+ muttlib.$(OBJEXT) editmsg.$(OBJEXT) mbyte.$(OBJEXT) \
|
|
|
|
|
+ url.$(OBJEXT) ascii.$(OBJEXT) crypt-mod.$(OBJEXT) \
|
|
|
|
|
+ safe_asprintf.$(OBJEXT)
|
|
|
|
|
am__objects_1 =
|
|
|
|
|
am__objects_2 = patchlist.$(OBJEXT) conststrings.$(OBJEXT) \
|
|
|
|
|
$(am__objects_1)
|
|
|
|
|
@@ -479,7 +480,8 @@ mutt_SOURCES = \
|
|
|
|
|
@@ -478,6 +479,7 @@ mutt_SOURCES = \
|
|
|
|
|
rfc822.c rfc1524.c rfc2047.c rfc2231.c rfc3676.c \
|
|
|
|
|
score.c send.c sendlib.c signal.c sort.c \
|
|
|
|
|
status.c system.c thread.c charset.c history.c lib.c \
|
|
|
|
|
+ sidebar.c \
|
|
|
|
|
muttlib.c editmsg.c mbyte.c \
|
|
|
|
|
- url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c
|
|
|
|
|
+ url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c \
|
|
|
|
|
+ sidebar.c
|
|
|
|
|
url.c ascii.c crypt-mod.c crypt-mod.h safe_asprintf.c
|
|
|
|
|
|
|
|
|
|
nodist_mutt_SOURCES = $(BUILT_SOURCES)
|
|
|
|
|
mutt_LDADD = $(MUTT_LIB_OBJECTS) $(LIBOBJS) $(LIBIMAP) $(MUTTLIBS) \
|
|
|
|
|
@@ -511,7 +513,7 @@ EXTRA_DIST = COPYRIGHT GPL OPS OPS.PGP O
|
|
|
|
|
README.SSL smime.h group.h \
|
|
|
|
|
muttbug pgppacket.h depcomp ascii.h BEWARE PATCHES patchlist.sh \
|
|
|
|
|
ChangeLog mkchangelog.sh mutt_idna.h \
|
|
|
|
|
- snprintf.c regex.c crypt-gpgme.h hcachever.sh.in \
|
|
|
|
|
+ snprintf.c regex.c crypt-gpgme.h sidebar.h hcachever.sh.in \
|
|
|
|
|
txt2c.c txt2c.sh version.sh check_sec.sh
|
|
|
|
|
|
|
|
|
|
EXTRA_SCRIPTS = smime_keys
|
|
|
|
|
--- OPS
|
|
|
|
|
+++ OPS 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
@@ -179,3 +179,8 @@ OP_WHAT_KEY "display the keycode for a k
|
|
|
|
|
@@ -808,6 +810,7 @@ distclean-compile:
|
|
|
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/send.Po@am__quote@
|
|
|
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sendlib.Po@am__quote@
|
|
|
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sha1.Po@am__quote@
|
|
|
|
|
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sidebar.Po@am__quote@
|
|
|
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal.Po@am__quote@
|
|
|
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smime.Po@am__quote@
|
|
|
|
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/smtp.Po@am__quote@
|
|
|
|
|
diff --git a/OPS b/OPS
|
|
|
|
|
index 8414a8b..ef14453 100644
|
|
|
|
|
--- a/OPS
|
|
|
|
|
+++ b/OPS
|
|
|
|
|
@@ -179,3 +179,8 @@ OP_WHAT_KEY "display the keycode for a key press"
|
|
|
|
|
OP_MAIN_SHOW_LIMIT "show currently active limit pattern"
|
|
|
|
|
OP_MAIN_COLLAPSE_THREAD "collapse/uncollapse current thread"
|
|
|
|
|
OP_MAIN_COLLAPSE_ALL "collapse/uncollapse all threads"
|
|
|
|
@ -87,14 +111,18 @@
|
|
|
|
|
+OP_SIDEBAR_NEXT "go down to next mailbox"
|
|
|
|
|
+OP_SIDEBAR_PREV "go to previous mailbox"
|
|
|
|
|
+OP_SIDEBAR_OPEN "open hilighted mailbox"
|
|
|
|
|
--- PATCHES
|
|
|
|
|
+++ PATCHES 2014-04-12 17:36:35.000000000 +0000
|
|
|
|
|
diff --git a/PATCHES b/PATCHES
|
|
|
|
|
index 91a8cf6..c9f9313 100644
|
|
|
|
|
--- a/PATCHES
|
|
|
|
|
+++ b/PATCHES
|
|
|
|
|
@@ -1 +1,2 @@
|
|
|
|
|
+patch-1.5.23.sidebar.20140412.txt
|
|
|
|
|
+patch-1.5.24.sidebar.20151111.txt
|
|
|
|
|
rr.compressed
|
|
|
|
|
--- buffy.c
|
|
|
|
|
+++ buffy.c 2015-09-11 14:23:43.438018482 +0000
|
|
|
|
|
@@ -161,6 +161,49 @@ void mutt_buffy_cleanup (const char *buf
|
|
|
|
|
diff --git a/buffy.c b/buffy.c
|
|
|
|
|
index 12a16d1..d108a09 100644
|
|
|
|
|
--- a/buffy.c
|
|
|
|
|
+++ b/buffy.c
|
|
|
|
|
@@ -161,6 +161,49 @@ void mutt_buffy_cleanup (const char *buf, struct stat *st)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -158,7 +186,7 @@
|
|
|
|
|
buffy->next = NULL;
|
|
|
|
|
buffy->magic = 0;
|
|
|
|
|
|
|
|
|
|
@@ -243,8 +290,8 @@ int mutt_parse_mailboxes (BUFFER *path,
|
|
|
|
|
@@ -243,8 +290,8 @@ int mutt_parse_mailboxes (BUFFER *path, BUFFER *s, unsigned long data, BUFFER *e
|
|
|
|
|
p = realpath (buf, f1);
|
|
|
|
|
for (tmp = &Incoming; *tmp; tmp = &((*tmp)->next))
|
|
|
|
|
{
|
|
|
|
@ -169,7 +197,7 @@
|
|
|
|
|
{
|
|
|
|
|
dprint(3,(debugfile,"mailbox '%s' already registered as '%s'\n", buf, (*tmp)->path));
|
|
|
|
|
break;
|
|
|
|
|
@@ -282,6 +329,7 @@ int mutt_parse_mailboxes (BUFFER *path,
|
|
|
|
|
@@ -282,6 +329,7 @@ int mutt_parse_mailboxes (BUFFER *path, BUFFER *s, unsigned long data, BUFFER *e
|
|
|
|
|
else
|
|
|
|
|
(*tmp)->size = 0;
|
|
|
|
|
}
|
|
|
|
@ -177,7 +205,7 @@
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -306,6 +354,11 @@ static int buffy_maildir_dir_hasnew(BUFF
|
|
|
|
|
@@ -306,6 +354,11 @@ static int buffy_maildir_dir_hasnew(BUFFY* mailbox, const char *dir_name)
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -189,12 +217,12 @@
|
|
|
|
|
if ((dirp = opendir (path)) == NULL)
|
|
|
|
|
{
|
|
|
|
|
mailbox->magic = 0;
|
|
|
|
|
@@ -357,6 +410,73 @@ static int buffy_maildir_hasnew (BUFFY*
|
|
|
|
|
@@ -357,6 +410,73 @@ static int buffy_maildir_hasnew (BUFFY* mailbox)
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+/* update message counts for the sidebar */
|
|
|
|
|
+ /* update message counts for the sidebar */
|
|
|
|
|
+void buffy_maildir_update (BUFFY* mailbox)
|
|
|
|
|
+{
|
|
|
|
|
+ char path[_POSIX_PATH_MAX];
|
|
|
|
@ -263,7 +291,7 @@
|
|
|
|
|
/* returns 1 if mailbox has new mail */
|
|
|
|
|
static int buffy_mbox_hasnew (BUFFY* mailbox, struct stat *sb)
|
|
|
|
|
{
|
|
|
|
|
@@ -368,7 +488,7 @@ static int buffy_mbox_hasnew (BUFFY* mai
|
|
|
|
|
@@ -368,7 +488,7 @@ static int buffy_mbox_hasnew (BUFFY* mailbox, struct stat *sb)
|
|
|
|
|
else
|
|
|
|
|
statcheck = sb->st_mtime > sb->st_atime
|
|
|
|
|
|| (mailbox->newly_created && sb->st_ctime == sb->st_mtime && sb->st_ctime == sb->st_atime);
|
|
|
|
@ -272,7 +300,7 @@
|
|
|
|
|
{
|
|
|
|
|
if (!option(OPTMAILCHECKRECENT) || sb->st_mtime > mailbox->last_visited)
|
|
|
|
|
{
|
|
|
|
|
@@ -388,6 +508,27 @@ static int buffy_mbox_hasnew (BUFFY* mai
|
|
|
|
|
@@ -388,6 +508,27 @@ static int buffy_mbox_hasnew (BUFFY* mailbox, struct stat *sb)
|
|
|
|
|
return rc;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -322,8 +350,10 @@
|
|
|
|
|
if (tmp->new)
|
|
|
|
|
BuffyCount++;
|
|
|
|
|
break;
|
|
|
|
|
--- buffy.h
|
|
|
|
|
+++ buffy.h 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
diff --git a/buffy.h b/buffy.h
|
|
|
|
|
index f9fc55a..1436451 100644
|
|
|
|
|
--- a/buffy.h
|
|
|
|
|
+++ b/buffy.h
|
|
|
|
|
@@ -23,13 +23,19 @@
|
|
|
|
|
typedef struct buffy_t
|
|
|
|
|
{
|
|
|
|
@ -344,19 +374,23 @@
|
|
|
|
|
}
|
|
|
|
|
BUFFY;
|
|
|
|
|
|
|
|
|
|
--- color.c
|
|
|
|
|
+++ color.c 2015-09-11 14:25:20.109819549 +0000
|
|
|
|
|
@@ -93,6 +93,8 @@ static const struct mapping_t Fields[] =
|
|
|
|
|
{ "bold", MT_COLOR_BOLD },
|
|
|
|
|
diff --git a/color.c b/color.c
|
|
|
|
|
index 64a46dc..d6f9198 100644
|
|
|
|
|
--- a/color.c
|
|
|
|
|
+++ b/color.c
|
|
|
|
|
@@ -94,6 +94,8 @@ static const struct mapping_t Fields[] =
|
|
|
|
|
{ "underline", MT_COLOR_UNDERLINE },
|
|
|
|
|
{ "index", MT_COLOR_INDEX },
|
|
|
|
|
{ "prompt", MT_COLOR_PROMPT },
|
|
|
|
|
+ { "sidebar_new", MT_COLOR_NEW },
|
|
|
|
|
+ { "sidebar_flagged", MT_COLOR_FLAGGED },
|
|
|
|
|
{ "prompt", MT_COLOR_PROMPT },
|
|
|
|
|
{ NULL, 0 }
|
|
|
|
|
};
|
|
|
|
|
--- compose.c
|
|
|
|
|
+++ compose.c 2015-09-11 14:26:05.873518387 +0000
|
|
|
|
|
|
|
|
|
|
diff --git a/compose.c b/compose.c
|
|
|
|
|
index 9d87060..b63695f 100644
|
|
|
|
|
--- a/compose.c
|
|
|
|
|
+++ b/compose.c
|
|
|
|
|
@@ -72,7 +72,7 @@ enum
|
|
|
|
|
|
|
|
|
|
#define HDR_XOFFSET 10
|
|
|
|
@ -366,7 +400,7 @@
|
|
|
|
|
|
|
|
|
|
static const char * const Prompts[] =
|
|
|
|
|
{
|
|
|
|
|
@@ -110,7 +110,7 @@ static void snd_entry (char *b, size_t b
|
|
|
|
|
@@ -110,7 +110,7 @@ static void snd_entry (char *b, size_t blen, MUTTMENU *menu, int num)
|
|
|
|
|
|
|
|
|
|
static void redraw_crypt_lines (HEADER *msg)
|
|
|
|
|
{
|
|
|
|
@ -375,7 +409,7 @@
|
|
|
|
|
|
|
|
|
|
if ((WithCrypto & (APPLICATION_PGP | APPLICATION_SMIME)) == 0)
|
|
|
|
|
{
|
|
|
|
|
@@ -145,7 +145,7 @@ static void redraw_crypt_lines (HEADER *
|
|
|
|
|
@@ -145,7 +145,7 @@ static void redraw_crypt_lines (HEADER *msg)
|
|
|
|
|
addstr (_(" (OppEnc mode)"));
|
|
|
|
|
|
|
|
|
|
clrtoeol ();
|
|
|
|
@ -384,7 +418,7 @@
|
|
|
|
|
clrtoeol ();
|
|
|
|
|
|
|
|
|
|
if ((WithCrypto & APPLICATION_PGP)
|
|
|
|
|
@@ -162,7 +162,7 @@ static void redraw_crypt_lines (HEADER *
|
|
|
|
|
@@ -162,7 +162,7 @@ static void redraw_crypt_lines (HEADER *msg)
|
|
|
|
|
&& (msg->security & ENCRYPT)
|
|
|
|
|
&& SmimeCryptAlg
|
|
|
|
|
&& *SmimeCryptAlg) {
|
|
|
|
@ -393,7 +427,7 @@
|
|
|
|
|
NONULL(SmimeCryptAlg));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@@ -175,7 +175,7 @@ static void redraw_mix_line (LIST *chain
|
|
|
|
|
@@ -175,7 +175,7 @@ static void redraw_mix_line (LIST *chain)
|
|
|
|
|
int c;
|
|
|
|
|
char *t;
|
|
|
|
|
|
|
|
|
@ -402,7 +436,7 @@
|
|
|
|
|
|
|
|
|
|
if (!chain)
|
|
|
|
|
{
|
|
|
|
|
@@ -190,7 +190,7 @@ static void redraw_mix_line (LIST *chain
|
|
|
|
|
@@ -190,7 +190,7 @@ static void redraw_mix_line (LIST *chain)
|
|
|
|
|
if (t && t[0] == '0' && t[1] == '\0')
|
|
|
|
|
t = "<random>";
|
|
|
|
|
|
|
|
|
@ -411,7 +445,7 @@
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
addstr (NONULL(t));
|
|
|
|
|
@@ -242,7 +242,7 @@ static void draw_envelope_addr (int line
|
|
|
|
|
@@ -242,7 +242,7 @@ static void draw_envelope_addr (int line, ADDRESS *addr)
|
|
|
|
|
|
|
|
|
|
buf[0] = 0;
|
|
|
|
|
rfc822_write_address (buf, sizeof (buf), addr, 1);
|
|
|
|
@ -420,7 +454,7 @@
|
|
|
|
|
mutt_paddstr (W, buf);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -252,10 +252,10 @@ static void draw_envelope (HEADER *msg,
|
|
|
|
|
@@ -252,10 +252,10 @@ static void draw_envelope (HEADER *msg, char *fcc)
|
|
|
|
|
draw_envelope_addr (HDR_TO, msg->env->to);
|
|
|
|
|
draw_envelope_addr (HDR_CC, msg->env->cc);
|
|
|
|
|
draw_envelope_addr (HDR_BCC, msg->env->bcc);
|
|
|
|
@ -433,7 +467,7 @@
|
|
|
|
|
mutt_paddstr (W, fcc);
|
|
|
|
|
|
|
|
|
|
if (WithCrypto)
|
|
|
|
|
@@ -266,7 +266,7 @@ static void draw_envelope (HEADER *msg,
|
|
|
|
|
@@ -266,7 +266,7 @@ static void draw_envelope (HEADER *msg, char *fcc)
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
SETCOLOR (MT_COLOR_STATUS);
|
|
|
|
@ -442,7 +476,7 @@
|
|
|
|
|
clrtoeol ();
|
|
|
|
|
|
|
|
|
|
NORMAL_COLOR;
|
|
|
|
|
@@ -302,7 +302,7 @@ static int edit_address_list (int line,
|
|
|
|
|
@@ -302,7 +302,7 @@ static int edit_address_list (int line, ADDRESS **addr)
|
|
|
|
|
/* redraw the expanded list so the user can see the result */
|
|
|
|
|
buf[0] = 0;
|
|
|
|
|
rfc822_write_address (buf, sizeof (buf), *addr, 1);
|
|
|
|
@ -451,7 +485,7 @@
|
|
|
|
|
mutt_paddstr (W, buf);
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
@@ -562,7 +562,7 @@ int mutt_compose_menu (HEADER *msg, /*
|
|
|
|
|
@@ -562,7 +562,7 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
|
|
|
|
|
if (mutt_get_field ("Subject: ", buf, sizeof (buf), 0) == 0)
|
|
|
|
|
{
|
|
|
|
|
mutt_str_replace (&msg->env->subject, buf);
|
|
|
|
@ -460,7 +494,7 @@
|
|
|
|
|
if (msg->env->subject)
|
|
|
|
|
mutt_paddstr (W, msg->env->subject);
|
|
|
|
|
else
|
|
|
|
|
@@ -580,7 +580,7 @@ int mutt_compose_menu (HEADER *msg, /*
|
|
|
|
|
@@ -580,7 +580,7 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
|
|
|
|
|
{
|
|
|
|
|
strfcpy (fcc, buf, fcclen);
|
|
|
|
|
mutt_pretty_mailbox (fcc, fcclen);
|
|
|
|
@ -469,9 +503,11 @@
|
|
|
|
|
mutt_paddstr (W, fcc);
|
|
|
|
|
fccSet = 1;
|
|
|
|
|
}
|
|
|
|
|
--- configure.ac
|
|
|
|
|
+++ configure.ac 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
@@ -1315,6 +1315,8 @@ if test $mutt_cv_langinfo_yesexpr = yes;
|
|
|
|
|
diff --git a/configure.ac b/configure.ac
|
|
|
|
|
index 8ff4b3c..0c81c05 100644
|
|
|
|
|
--- a/configure.ac
|
|
|
|
|
+++ b/configure.ac
|
|
|
|
|
@@ -1315,6 +1315,8 @@ if test $mutt_cv_langinfo_yesexpr = yes; then
|
|
|
|
|
AC_DEFINE(HAVE_LANGINFO_YESEXPR,1,[ Define if you have <langinfo.h> and nl_langinfo(YESEXPR). ])
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
@ -480,8 +516,10 @@
|
|
|
|
|
dnl Documentation tools
|
|
|
|
|
have_openjade="no"
|
|
|
|
|
AC_PATH_PROG([OSPCAT], [ospcat], [none])
|
|
|
|
|
--- curs_main.c
|
|
|
|
|
+++ curs_main.c 2014-04-13 02:45:21.000000000 +0000
|
|
|
|
|
diff --git a/curs_main.c b/curs_main.c
|
|
|
|
|
index 3e7021b..0496232 100644
|
|
|
|
|
--- a/curs_main.c
|
|
|
|
|
+++ b/curs_main.c
|
|
|
|
|
@@ -26,7 +26,9 @@
|
|
|
|
|
#include "mailbox.h"
|
|
|
|
|
#include "mapping.h"
|
|
|
|
@ -598,8 +636,10 @@
|
|
|
|
|
default:
|
|
|
|
|
if (menu->menu == MENU_MAIN)
|
|
|
|
|
km_error_key (MENU_MAIN);
|
|
|
|
|
--- doc/Muttrc
|
|
|
|
|
+++ doc/Muttrc 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
diff --git a/doc/Muttrc b/doc/Muttrc
|
|
|
|
|
index fa7c105..e5ae11e 100644
|
|
|
|
|
--- a/doc/Muttrc
|
|
|
|
|
+++ b/doc/Muttrc
|
|
|
|
|
@@ -657,6 +657,26 @@ set check_mbox_size=yes
|
|
|
|
|
# $crypt_autosign, $crypt_replysign and $smime_is_default.
|
|
|
|
|
#
|
|
|
|
@ -627,8 +667,10 @@
|
|
|
|
|
# set crypt_autosign=no
|
|
|
|
|
#
|
|
|
|
|
# Name: crypt_autosign
|
|
|
|
|
--- flags.c
|
|
|
|
|
+++ flags.c 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
diff --git a/flags.c b/flags.c
|
|
|
|
|
index f0f3d81..d675000 100644
|
|
|
|
|
--- a/flags.c
|
|
|
|
|
+++ b/flags.c
|
|
|
|
|
@@ -22,8 +22,10 @@
|
|
|
|
|
|
|
|
|
|
#include "mutt.h"
|
|
|
|
@ -640,7 +682,7 @@
|
|
|
|
|
|
|
|
|
|
void _mutt_set_flag (CONTEXT *ctx, HEADER *h, int flag, int bf, int upd_ctx)
|
|
|
|
|
{
|
|
|
|
|
@@ -263,6 +265,7 @@ void _mutt_set_flag (CONTEXT *ctx, HEADE
|
|
|
|
|
@@ -263,6 +265,7 @@ void _mutt_set_flag (CONTEXT *ctx, HEADER *h, int flag, int bf, int upd_ctx)
|
|
|
|
|
*/
|
|
|
|
|
if (h->searched && (changed != h->changed || deleted != ctx->deleted || tagged != ctx->tagged || flagged != ctx->flagged))
|
|
|
|
|
h->searched = 0;
|
|
|
|
@ -648,9 +690,11 @@
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void mutt_tag_set_flag (int flag, int bf)
|
|
|
|
|
--- functions.h
|
|
|
|
|
+++ functions.h 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
@@ -169,6 +169,11 @@ const struct binding_t OpMain[] = { /* m
|
|
|
|
|
diff --git a/functions.h b/functions.h
|
|
|
|
|
index 7a1c5a9..39dc50b 100644
|
|
|
|
|
--- a/functions.h
|
|
|
|
|
+++ b/functions.h
|
|
|
|
|
@@ -169,6 +169,11 @@ const struct binding_t OpMain[] = { /* map: index */
|
|
|
|
|
{ "decrypt-save", OP_DECRYPT_SAVE, NULL },
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -662,7 +706,7 @@
|
|
|
|
|
{ NULL, 0, NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
@@ -272,6 +277,11 @@ const struct binding_t OpPager[] = { /*
|
|
|
|
|
@@ -272,6 +277,11 @@ const struct binding_t OpPager[] = { /* map: pager */
|
|
|
|
|
|
|
|
|
|
{ "what-key", OP_WHAT_KEY, NULL },
|
|
|
|
|
|
|
|
|
@ -674,8 +718,10 @@
|
|
|
|
|
{ NULL, 0, NULL }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
--- globals.h
|
|
|
|
|
+++ globals.h 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
diff --git a/globals.h b/globals.h
|
|
|
|
|
index e77030c..aa37fe9 100644
|
|
|
|
|
--- a/globals.h
|
|
|
|
|
+++ b/globals.h
|
|
|
|
|
@@ -118,6 +118,9 @@ WHERE short SearchContext;
|
|
|
|
|
WHERE char *SendCharset;
|
|
|
|
|
WHERE char *Sendmail;
|
|
|
|
@ -696,21 +742,23 @@
|
|
|
|
|
#ifdef USE_IMAP
|
|
|
|
|
WHERE short ImapKeepalive;
|
|
|
|
|
WHERE short ImapPipelineDepth;
|
|
|
|
|
--- handler.c
|
|
|
|
|
+++ handler.c 2015-09-11 14:33:57.576024053 +0000
|
|
|
|
|
@@ -1601,6 +1601,11 @@ static int run_decode_and_handler (BODY
|
|
|
|
|
int decode = 0;
|
|
|
|
|
int rc = 0;
|
|
|
|
|
diff --git a/handler.c b/handler.c
|
|
|
|
|
index 1a062be..8c3b699 100644
|
|
|
|
|
--- a/handler.c
|
|
|
|
|
+++ b/handler.c
|
|
|
|
|
@@ -1603,6 +1603,11 @@ static int run_decode_and_handler (BODY *b, STATE *s, handler_t handler, int pla
|
|
|
|
|
|
|
|
|
|
fseeko (s->fpin, b->offset, 0);
|
|
|
|
|
|
|
|
|
|
+#ifdef HAVE_FMEMOPEN
|
|
|
|
|
+ char *temp;
|
|
|
|
|
+ size_t tempsize;
|
|
|
|
|
+#endif
|
|
|
|
|
+
|
|
|
|
|
fseeko (s->fpin, b->offset, 0);
|
|
|
|
|
|
|
|
|
|
/* see if we need to decode this part before processing it */
|
|
|
|
|
@@ -1618,6 +1623,14 @@ static int run_decode_and_handler (BODY
|
|
|
|
|
if (b->encoding == ENCBASE64 || b->encoding == ENCQUOTEDPRINTABLE ||
|
|
|
|
|
b->encoding == ENCUUENCODED || plaintext ||
|
|
|
|
|
@@ -1618,6 +1623,14 @@ static int run_decode_and_handler (BODY *b, STATE *s, handler_t handler, int pla
|
|
|
|
|
{
|
|
|
|
|
/* decode to a tempfile, saving the original destination */
|
|
|
|
|
fp = s->fpout;
|
|
|
|
@ -725,7 +773,7 @@
|
|
|
|
|
mutt_mktemp (tempfile, sizeof (tempfile));
|
|
|
|
|
if ((s->fpout = safe_fopen (tempfile, "w")) == NULL)
|
|
|
|
|
{
|
|
|
|
|
@@ -1625,6 +1638,7 @@ static int run_decode_and_handler (BODY
|
|
|
|
|
@@ -1625,6 +1638,7 @@ static int run_decode_and_handler (BODY *b, STATE *s, handler_t handler, int pla
|
|
|
|
|
dprint (1, (debugfile, "Can't open %s.\n", tempfile));
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
@ -733,28 +781,28 @@
|
|
|
|
|
/* decoding the attachment changes the size and offset, so save a copy
|
|
|
|
|
* of the "real" values now, and restore them after processing
|
|
|
|
|
*/
|
|
|
|
|
@@ -1653,8 +1667,20 @@ static int run_decode_and_handler (BODY
|
|
|
|
|
@@ -1653,9 +1667,19 @@ static int run_decode_and_handler (BODY *b, STATE *s, handler_t handler, int pla
|
|
|
|
|
/* restore final destination and substitute the tempfile for input */
|
|
|
|
|
s->fpout = fp;
|
|
|
|
|
fp = s->fpin;
|
|
|
|
|
+#ifdef HAVE_FMEMOPEN
|
|
|
|
|
+ if (tempsize)
|
|
|
|
|
+ if(tempsize)
|
|
|
|
|
+ s->fpin = fmemopen(temp, tempsize, "r");
|
|
|
|
|
+ else /* fmemopen cannot handle zero-length buffers */
|
|
|
|
|
+ s->fpin = safe_fopen ("/dev/null", "r");
|
|
|
|
|
+ if(s->fpin == NULL)
|
|
|
|
|
+ {
|
|
|
|
|
+ if(s->fpin == NULL) {
|
|
|
|
|
+ mutt_perror("failed to re-open memstream!");
|
|
|
|
|
+ return (-1);
|
|
|
|
|
+ }
|
|
|
|
|
+#else
|
|
|
|
|
s->fpin = fopen (tempfile, "r");
|
|
|
|
|
unlink (tempfile);
|
|
|
|
|
-
|
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
|
|
/* restore the prefix */
|
|
|
|
|
s->prefix = savePrefix;
|
|
|
|
|
@@ -1680,6 +1706,10 @@ static int run_decode_and_handler (BODY
|
|
|
|
|
}
|
|
|
|
|
@@ -1680,6 +1704,10 @@ static int run_decode_and_handler (BODY *b, STATE *s, handler_t handler, int pla
|
|
|
|
|
|
|
|
|
|
/* restore the original source stream */
|
|
|
|
|
safe_fclose (&s->fpin);
|
|
|
|
@ -765,9 +813,11 @@
|
|
|
|
|
s->fpin = fp;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
--- imap/command.c
|
|
|
|
|
+++ imap/command.c 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
@@ -1012,6 +1012,13 @@ static void cmd_parse_status (IMAP_DATA*
|
|
|
|
|
diff --git a/imap/command.c b/imap/command.c
|
|
|
|
|
index 32f8417..d68e3ab 100644
|
|
|
|
|
--- a/imap/command.c
|
|
|
|
|
+++ b/imap/command.c
|
|
|
|
|
@@ -1012,6 +1012,13 @@ static void cmd_parse_status (IMAP_DATA* idata, char* s)
|
|
|
|
|
opened */
|
|
|
|
|
status->uidnext = oldun;
|
|
|
|
|
|
|
|
|
@ -781,8 +831,10 @@
|
|
|
|
|
FREE (&value);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
--- imap/imap.c
|
|
|
|
|
+++ imap/imap.c 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
diff --git a/imap/imap.c b/imap/imap.c
|
|
|
|
|
index ad15f5e..6f4af88 100644
|
|
|
|
|
--- a/imap/imap.c
|
|
|
|
|
+++ b/imap/imap.c
|
|
|
|
|
@@ -1523,7 +1523,7 @@ int imap_buffy_check (int force)
|
|
|
|
|
|
|
|
|
|
imap_munge_mbox_name (munged, sizeof (munged), name);
|
|
|
|
@ -792,8 +844,10 @@
|
|
|
|
|
|
|
|
|
|
if (imap_exec (idata, command, IMAP_CMD_QUEUE) < 0)
|
|
|
|
|
{
|
|
|
|
|
--- init.h
|
|
|
|
|
+++ init.h 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
diff --git a/init.h b/init.h
|
|
|
|
|
index 0055a1b..e7a1280 100644
|
|
|
|
|
--- a/init.h
|
|
|
|
|
+++ b/init.h
|
|
|
|
|
@@ -2016,6 +2016,54 @@ struct option_t MuttVars[] = {
|
|
|
|
|
** not used.
|
|
|
|
|
** (PGP only)
|
|
|
|
@ -849,8 +903,10 @@
|
|
|
|
|
{ "pgp_use_gpg_agent", DT_BOOL, R_NONE, OPTUSEGPGAGENT, 0},
|
|
|
|
|
/*
|
|
|
|
|
** .pp
|
|
|
|
|
--- mailbox.h
|
|
|
|
|
+++ mailbox.h 2015-09-11 14:35:24.349518988 +0000
|
|
|
|
|
diff --git a/mailbox.h b/mailbox.h
|
|
|
|
|
index 2b2c9a1..000503d 100644
|
|
|
|
|
--- a/mailbox.h
|
|
|
|
|
+++ b/mailbox.h
|
|
|
|
|
@@ -27,6 +27,7 @@
|
|
|
|
|
#define M_NEWFOLDER (1<<4) /* create a new folder - same as M_APPEND, but uses
|
|
|
|
|
* safe_fopen() for mbox-style folders.
|
|
|
|
@ -859,8 +915,10 @@
|
|
|
|
|
|
|
|
|
|
/* mx_open_new_message() */
|
|
|
|
|
#define M_ADD_FROM (1<<0) /* add a From_ line */
|
|
|
|
|
--- main.c
|
|
|
|
|
+++ main.c 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
diff --git a/main.c b/main.c
|
|
|
|
|
index 9c562be..49fdc78 100644
|
|
|
|
|
--- a/main.c
|
|
|
|
|
+++ b/main.c
|
|
|
|
|
@@ -50,6 +50,7 @@
|
|
|
|
|
#include <unistd.h>
|
|
|
|
|
#include <errno.h>
|
|
|
|
@ -900,8 +958,10 @@
|
|
|
|
|
mutt_index_menu ();
|
|
|
|
|
if (Context)
|
|
|
|
|
FREE (&Context);
|
|
|
|
|
--- mbox.c
|
|
|
|
|
+++ mbox.c 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
diff --git a/mbox.c b/mbox.c
|
|
|
|
|
index 6d3b6bd..fa82eb3 100644
|
|
|
|
|
--- a/mbox.c
|
|
|
|
|
+++ b/mbox.c
|
|
|
|
|
@@ -104,6 +104,7 @@ int mmdf_parse_mailbox (CONTEXT *ctx)
|
|
|
|
|
mutt_perror (ctx->path);
|
|
|
|
|
return (-1);
|
|
|
|
@ -918,8 +978,10 @@
|
|
|
|
|
|
|
|
|
|
#ifdef NFS_ATTRIBUTE_HACK
|
|
|
|
|
if (sb.st_mtime > sb.st_atime)
|
|
|
|
|
--- menu.c
|
|
|
|
|
+++ menu.c 2014-04-13 02:31:16.000000000 +0000
|
|
|
|
|
diff --git a/menu.c b/menu.c
|
|
|
|
|
index e03dd33..02c14f1 100644
|
|
|
|
|
--- a/menu.c
|
|
|
|
|
+++ b/menu.c
|
|
|
|
|
@@ -24,6 +24,7 @@
|
|
|
|
|
#include "mutt_curses.h"
|
|
|
|
|
#include "mutt_menu.h"
|
|
|
|
@ -928,7 +990,7 @@
|
|
|
|
|
|
|
|
|
|
extern size_t UngetCount;
|
|
|
|
|
|
|
|
|
|
@@ -186,7 +187,7 @@ static void menu_pad_string (char *s, si
|
|
|
|
|
@@ -186,7 +187,7 @@ static void menu_pad_string (char *s, size_t n)
|
|
|
|
|
{
|
|
|
|
|
char *scratch = safe_strdup (s);
|
|
|
|
|
int shift = option (OPTARROWCURSOR) ? 3 : 0;
|
|
|
|
@ -997,7 +1059,7 @@
|
|
|
|
|
print_enriched_string (menu->color(menu->current), (unsigned char *) buf, 0);
|
|
|
|
|
}
|
|
|
|
|
menu->redraw &= REDRAW_STATUS;
|
|
|
|
|
@@ -332,7 +334,7 @@ void menu_redraw_current (MUTTMENU *menu
|
|
|
|
|
@@ -332,7 +334,7 @@ void menu_redraw_current (MUTTMENU *menu)
|
|
|
|
|
char buf[LONG_STRING];
|
|
|
|
|
int attr = menu->color (menu->current);
|
|
|
|
|
|
|
|
|
@ -1015,8 +1077,10 @@
|
|
|
|
|
else if (option (OPTBRAILLEFRIENDLY))
|
|
|
|
|
move (menu->current - menu->top + menu->offset, 0);
|
|
|
|
|
else
|
|
|
|
|
--- mh.c
|
|
|
|
|
+++ mh.c 2014-04-11 16:04:59.000000000 +0000
|
|
|
|
|
diff --git a/mh.c b/mh.c
|
|
|
|
|
index 63e12d2..753a53c 100644
|
|
|
|
|
--- a/mh.c
|
|
|
|
|
+++ b/mh.c
|
|
|
|
|
@@ -295,6 +295,32 @@ void mh_buffy(BUFFY *b)
|
|
|
|
|
mhs_free_sequences (&mhs);
|
|
|
|
|
}
|
|
|
|
@ -1050,8 +1114,10 @@
|
|
|
|
|
static int mh_mkstemp (CONTEXT * dest, FILE ** fp, char **tgt)
|
|
|
|
|
{
|
|
|
|
|
int fd;
|
|
|
|
|
--- mutt.h
|
|
|
|
|
+++ mutt.h 2015-01-26 15:01:48.000000000 +0000
|
|
|
|
|
diff --git a/mutt.h b/mutt.h
|
|
|
|
|
index 8e92ea0..1cc3a31 100644
|
|
|
|
|
--- a/mutt.h
|
|
|
|
|
+++ b/mutt.h
|
|
|
|
|
@@ -429,6 +429,10 @@ enum
|
|
|
|
|
OPTSAVENAME,
|
|
|
|
|
OPTSENDGROUPREPLYTO,
|
|
|
|
@ -1079,8 +1145,10 @@
|
|
|
|
|
|
|
|
|
|
/* driver hooks */
|
|
|
|
|
void *data; /* driver specific data */
|
|
|
|
|
--- mutt_curses.h
|
|
|
|
|
+++ mutt_curses.h 2015-09-11 14:35:48.925520615 +0000
|
|
|
|
|
diff --git a/mutt_curses.h b/mutt_curses.h
|
|
|
|
|
index f8bc47c..ef9884e 100644
|
|
|
|
|
--- a/mutt_curses.h
|
|
|
|
|
+++ b/mutt_curses.h
|
|
|
|
|
@@ -64,6 +64,7 @@
|
|
|
|
|
#undef lines
|
|
|
|
|
#endif /* lines */
|
|
|
|
@ -1089,17 +1157,19 @@
|
|
|
|
|
#define CLEARLINE(x) move(x,0), clrtoeol()
|
|
|
|
|
#define CENTERLINE(x,y) move(y, (COLS-strlen(x))/2), addstr(x)
|
|
|
|
|
#define BEEP() do { if (option (OPTBEEP)) beep(); } while (0)
|
|
|
|
|
@@ -120,6 +121,8 @@ enum
|
|
|
|
|
MT_COLOR_BOLD,
|
|
|
|
|
@@ -121,6 +122,8 @@ enum
|
|
|
|
|
MT_COLOR_UNDERLINE,
|
|
|
|
|
MT_COLOR_INDEX,
|
|
|
|
|
MT_COLOR_PROMPT,
|
|
|
|
|
+ MT_COLOR_NEW,
|
|
|
|
|
+ MT_COLOR_FLAGGED,
|
|
|
|
|
MT_COLOR_PROMPT,
|
|
|
|
|
MT_COLOR_MAX
|
|
|
|
|
};
|
|
|
|
|
--- mutt_menu.h
|
|
|
|
|
+++ mutt_menu.h 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
|
|
|
|
|
diff --git a/mutt_menu.h b/mutt_menu.h
|
|
|
|
|
index 8192019..aea89f1 100644
|
|
|
|
|
--- a/mutt_menu.h
|
|
|
|
|
+++ b/mutt_menu.h
|
|
|
|
|
@@ -34,6 +34,7 @@
|
|
|
|
|
#define REDRAW_FULL (1<<5)
|
|
|
|
|
#define REDRAW_BODY (1<<6)
|
|
|
|
@ -1108,9 +1178,11 @@
|
|
|
|
|
|
|
|
|
|
#define M_MODEFMT "-- Mutt: %s"
|
|
|
|
|
|
|
|
|
|
--- muttlib.c
|
|
|
|
|
+++ muttlib.c 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
@@ -1276,6 +1276,8 @@ void mutt_FormatString (char *dest, /*
|
|
|
|
|
diff --git a/muttlib.c b/muttlib.c
|
|
|
|
|
index 02067cc..8d0c13d 100644
|
|
|
|
|
--- a/muttlib.c
|
|
|
|
|
+++ b/muttlib.c
|
|
|
|
|
@@ -1276,6 +1276,8 @@ void mutt_FormatString (char *dest, /* output buffer */
|
|
|
|
|
pl = pw = 1;
|
|
|
|
|
|
|
|
|
|
/* see if there's room to add content, else ignore */
|
|
|
|
@ -1119,7 +1191,7 @@
|
|
|
|
|
if ((col < COLS && wlen < destlen) || soft)
|
|
|
|
|
{
|
|
|
|
|
int pad;
|
|
|
|
|
@@ -1319,6 +1321,52 @@ void mutt_FormatString (char *dest, /*
|
|
|
|
|
@@ -1319,6 +1321,52 @@ void mutt_FormatString (char *dest, /* output buffer */
|
|
|
|
|
col += wid;
|
|
|
|
|
src += pl;
|
|
|
|
|
}
|
|
|
|
@ -1172,9 +1244,11 @@
|
|
|
|
|
break; /* skip rest of input */
|
|
|
|
|
}
|
|
|
|
|
else if (ch == '|')
|
|
|
|
|
--- mx.c
|
|
|
|
|
+++ mx.c 2015-01-26 15:02:43.000000000 +0000
|
|
|
|
|
@@ -596,6 +596,7 @@ static int mx_open_mailbox_append (CONTE
|
|
|
|
|
diff --git a/mx.c b/mx.c
|
|
|
|
|
index 495b295..1cb966c 100644
|
|
|
|
|
--- a/mx.c
|
|
|
|
|
+++ b/mx.c
|
|
|
|
|
@@ -596,6 +596,7 @@ static int mx_open_mailbox_append (CONTEXT *ctx, int flags)
|
|
|
|
|
* M_APPEND open mailbox for appending
|
|
|
|
|
* M_READONLY open mailbox in read-only mode
|
|
|
|
|
* M_QUIET only print error messages
|
|
|
|
@ -1182,7 +1256,7 @@
|
|
|
|
|
* ctx if non-null, context struct to use
|
|
|
|
|
*/
|
|
|
|
|
CONTEXT *mx_open_mailbox (const char *path, int flags, CONTEXT *pctx)
|
|
|
|
|
@@ -618,6 +619,8 @@ CONTEXT *mx_open_mailbox (const char *pa
|
|
|
|
|
@@ -618,6 +619,8 @@ CONTEXT *mx_open_mailbox (const char *path, int flags, CONTEXT *pctx)
|
|
|
|
|
ctx->quiet = 1;
|
|
|
|
|
if (flags & M_READONLY)
|
|
|
|
|
ctx->readonly = 1;
|
|
|
|
@ -1191,7 +1265,7 @@
|
|
|
|
|
|
|
|
|
|
if (flags & (M_APPEND|M_NEWFOLDER))
|
|
|
|
|
{
|
|
|
|
|
@@ -722,13 +725,26 @@ CONTEXT *mx_open_mailbox (const char *pa
|
|
|
|
|
@@ -722,13 +725,26 @@ CONTEXT *mx_open_mailbox (const char *path, int flags, CONTEXT *pctx)
|
|
|
|
|
void mx_fastclose_mailbox (CONTEXT *ctx)
|
|
|
|
|
{
|
|
|
|
|
int i;
|
|
|
|
@ -1228,7 +1302,7 @@
|
|
|
|
|
FREE (&ctx->hdrs);
|
|
|
|
|
FREE (&ctx->v2r);
|
|
|
|
|
#ifdef USE_COMPRESSED
|
|
|
|
|
@@ -843,6 +861,10 @@ int mx_close_mailbox (CONTEXT *ctx, int
|
|
|
|
|
@@ -843,6 +861,10 @@ int mx_close_mailbox (CONTEXT *ctx, int *index_hint)
|
|
|
|
|
if (!ctx->hdrs[i]->deleted && ctx->hdrs[i]->read
|
|
|
|
|
&& !(ctx->hdrs[i]->flagged && option (OPTKEEPFLAGGED)))
|
|
|
|
|
read_msgs++;
|
|
|
|
@ -1239,9 +1313,11 @@
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (read_msgs && quadoption (OPT_MOVE) != M_NO)
|
|
|
|
|
--- mx.h
|
|
|
|
|
+++ mx.h 2014-04-11 16:11:47.000000000 +0000
|
|
|
|
|
@@ -60,6 +60,7 @@ void mbox_reset_atime (CONTEXT *, struct
|
|
|
|
|
diff --git a/mx.h b/mx.h
|
|
|
|
|
index 2ef4ec7..a6d1f0a 100644
|
|
|
|
|
--- a/mx.h
|
|
|
|
|
+++ b/mx.h
|
|
|
|
|
@@ -60,6 +60,7 @@ void mbox_reset_atime (CONTEXT *, struct stat *);
|
|
|
|
|
int mh_read_dir (CONTEXT *, const char *);
|
|
|
|
|
int mh_sync_mailbox (CONTEXT *, int *);
|
|
|
|
|
int mh_check_mailbox (CONTEXT *, int *);
|
|
|
|
@ -1249,8 +1325,10 @@
|
|
|
|
|
int mh_check_empty (const char *);
|
|
|
|
|
|
|
|
|
|
int maildir_read_dir (CONTEXT *);
|
|
|
|
|
--- pager.c
|
|
|
|
|
+++ pager.c 2015-09-11 14:38:26.933518856 +0000
|
|
|
|
|
diff --git a/pager.c b/pager.c
|
|
|
|
|
index 4f7e7be..ba8ab7a 100644
|
|
|
|
|
--- a/pager.c
|
|
|
|
|
+++ b/pager.c
|
|
|
|
|
@@ -29,6 +29,7 @@
|
|
|
|
|
#include "pager.h"
|
|
|
|
|
#include "attach.h"
|
|
|
|
@ -1259,7 +1337,7 @@
|
|
|
|
|
|
|
|
|
|
#include "mutt_crypt.h"
|
|
|
|
|
|
|
|
|
|
@@ -1095,6 +1096,7 @@ static int format_line (struct line_t **
|
|
|
|
|
@@ -1095,6 +1096,7 @@ static int format_line (struct line_t **lineInfo, int n, unsigned char *buf,
|
|
|
|
|
wchar_t wc;
|
|
|
|
|
mbstate_t mbstate;
|
|
|
|
|
int wrap_cols = mutt_term_width ((flags & M_PAGER_NOWRAP) ? 0 : Wrap);
|
|
|
|
@ -1267,7 +1345,7 @@
|
|
|
|
|
|
|
|
|
|
if (check_attachment_marker ((char *)buf) == 0)
|
|
|
|
|
wrap_cols = COLS;
|
|
|
|
|
@@ -1572,6 +1574,7 @@ mutt_pager (const char *banner, const ch
|
|
|
|
|
@@ -1572,6 +1574,7 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra)
|
|
|
|
|
|
|
|
|
|
int bodyoffset = 1; /* offset of first line of real text */
|
|
|
|
|
int statusoffset = 0; /* offset for the status bar */
|
|
|
|
@ -1275,7 +1353,7 @@
|
|
|
|
|
int helpoffset = LINES - 2; /* offset for the help bar. */
|
|
|
|
|
int bodylen = LINES - 2 - bodyoffset; /* length of displayable area */
|
|
|
|
|
|
|
|
|
|
@@ -1746,7 +1749,7 @@ mutt_pager (const char *banner, const ch
|
|
|
|
|
@@ -1746,7 +1749,7 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra)
|
|
|
|
|
if ((redraw & REDRAW_BODY) || topline != oldtopline)
|
|
|
|
|
{
|
|
|
|
|
do {
|
|
|
|
@ -1284,7 +1362,7 @@
|
|
|
|
|
curline = oldtopline = topline;
|
|
|
|
|
lines = 0;
|
|
|
|
|
force_redraw = 0;
|
|
|
|
|
@@ -1759,6 +1762,7 @@ mutt_pager (const char *banner, const ch
|
|
|
|
|
@@ -1759,6 +1762,7 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra)
|
|
|
|
|
&QuoteList, &q_level, &force_redraw, &SearchRE) > 0)
|
|
|
|
|
lines++;
|
|
|
|
|
curline++;
|
|
|
|
@ -1292,7 +1370,7 @@
|
|
|
|
|
}
|
|
|
|
|
last_offset = lineInfo[curline].offset;
|
|
|
|
|
} while (force_redraw);
|
|
|
|
|
@@ -1771,6 +1775,7 @@ mutt_pager (const char *banner, const ch
|
|
|
|
|
@@ -1771,6 +1775,7 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra)
|
|
|
|
|
addch ('~');
|
|
|
|
|
addch ('\n');
|
|
|
|
|
lines++;
|
|
|
|
@ -1300,7 +1378,7 @@
|
|
|
|
|
}
|
|
|
|
|
NORMAL_COLOR;
|
|
|
|
|
|
|
|
|
|
@@ -1788,29 +1793,40 @@ mutt_pager (const char *banner, const ch
|
|
|
|
|
@@ -1788,29 +1793,39 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra)
|
|
|
|
|
hfi.ctx = Context;
|
|
|
|
|
hfi.pager_progress = pager_progress_str;
|
|
|
|
|
|
|
|
|
@ -1315,8 +1393,7 @@
|
|
|
|
|
- move (statusoffset, 0);
|
|
|
|
|
+ move (statusoffset, SidebarWidth);
|
|
|
|
|
SETCOLOR (MT_COLOR_STATUS);
|
|
|
|
|
+ if (option(OPTSTATUSONTOP) && PagerIndexLines > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ if(option(OPTSTATUSONTOP) && PagerIndexLines > 0) {
|
|
|
|
|
+ CLEARLINE_WIN (statusoffset);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ CLEARLINE (statusoffset);
|
|
|
|
@ -1340,12 +1417,12 @@
|
|
|
|
|
- mutt_paddstr (COLS, bn);
|
|
|
|
|
+ mutt_paddstr (statuswidth, bn);
|
|
|
|
|
}
|
|
|
|
|
+ if (!option(OPTSTATUSONTOP) || PagerIndexLines == 0)
|
|
|
|
|
+ if(!option(OPTSTATUSONTOP) || PagerIndexLines == 0)
|
|
|
|
|
+ DrawFullLine = 0; /* reset */
|
|
|
|
|
NORMAL_COLOR;
|
|
|
|
|
if (option(OPTTSENABLED) && TSSupported)
|
|
|
|
|
{
|
|
|
|
|
@@ -1826,16 +1842,22 @@ mutt_pager (const char *banner, const ch
|
|
|
|
|
@@ -1826,16 +1841,22 @@ mutt_pager (const char *banner, const char *fname, int flags, pager_t *extra)
|
|
|
|
|
/* redraw the pager_index indicator, because the
|
|
|
|
|
* flags for this message might have changed. */
|
|
|
|
|
menu_redraw_current (index);
|
|
|
|
@ -1370,7 +1447,7 @@
|
|
|
|
|
redraw = 0;
|
|
|
|
|
|
|
|
|
|
if (option(OPTBRAILLEFRIENDLY)) {
|
|
|
|
|
@@ -2770,6 +2792,13 @@ search_next:
|
|
|
|
|
@@ -2770,6 +2791,13 @@ search_next:
|
|
|
|
|
mutt_what_key ();
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
@ -1384,9 +1461,11 @@
|
|
|
|
|
default:
|
|
|
|
|
ch = -1;
|
|
|
|
|
break;
|
|
|
|
|
--- pattern.c
|
|
|
|
|
+++ pattern.c 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
@@ -154,6 +154,10 @@ msg_search (CONTEXT *ctx, pattern_t* pat
|
|
|
|
|
diff --git a/pattern.c b/pattern.c
|
|
|
|
|
index 7af1c38..379f064 100644
|
|
|
|
|
--- a/pattern.c
|
|
|
|
|
+++ b/pattern.c
|
|
|
|
|
@@ -154,6 +154,10 @@ msg_search (CONTEXT *ctx, pattern_t* pat, int msgno)
|
|
|
|
|
HEADER *h = ctx->hdrs[msgno];
|
|
|
|
|
char *buf;
|
|
|
|
|
size_t blen;
|
|
|
|
@ -1397,7 +1476,7 @@
|
|
|
|
|
|
|
|
|
|
if ((msg = mx_open_message (ctx, msgno)) != NULL)
|
|
|
|
|
{
|
|
|
|
|
@@ -163,12 +167,20 @@ msg_search (CONTEXT *ctx, pattern_t* pat
|
|
|
|
|
@@ -163,12 +167,20 @@ msg_search (CONTEXT *ctx, pattern_t* pat, int msgno)
|
|
|
|
|
memset (&s, 0, sizeof (s));
|
|
|
|
|
s.fpin = msg->fp;
|
|
|
|
|
s.flags = M_CHARCONV;
|
|
|
|
@ -1418,7 +1497,7 @@
|
|
|
|
|
|
|
|
|
|
if (pat->op != M_BODY)
|
|
|
|
|
mutt_copy_header (msg->fp, h, s.fpout, CH_FROM | CH_DECODE, NULL);
|
|
|
|
|
@@ -184,7 +196,11 @@ msg_search (CONTEXT *ctx, pattern_t* pat
|
|
|
|
|
@@ -184,7 +196,11 @@ msg_search (CONTEXT *ctx, pattern_t* pat, int msgno)
|
|
|
|
|
if (s.fpout)
|
|
|
|
|
{
|
|
|
|
|
safe_fclose (&s.fpout);
|
|
|
|
@ -1430,7 +1509,7 @@
|
|
|
|
|
}
|
|
|
|
|
return (0);
|
|
|
|
|
}
|
|
|
|
|
@@ -193,11 +209,28 @@ msg_search (CONTEXT *ctx, pattern_t* pat
|
|
|
|
|
@@ -193,11 +209,28 @@ msg_search (CONTEXT *ctx, pattern_t* pat, int msgno)
|
|
|
|
|
mutt_body_handler (h->content, &s);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1459,7 +1538,7 @@
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
@@ -244,7 +277,12 @@ msg_search (CONTEXT *ctx, pattern_t* pat
|
|
|
|
|
@@ -244,7 +277,12 @@ msg_search (CONTEXT *ctx, pattern_t* pat, int msgno)
|
|
|
|
|
if (option (OPTTHOROUGHSRC))
|
|
|
|
|
{
|
|
|
|
|
safe_fclose (&fp);
|
|
|
|
@ -1472,8 +1551,10 @@
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
--- protos.h
|
|
|
|
|
+++ protos.h 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
diff --git a/protos.h b/protos.h
|
|
|
|
|
index 2ba4d1d..5126f10 100644
|
|
|
|
|
--- a/protos.h
|
|
|
|
|
+++ b/protos.h
|
|
|
|
|
@@ -36,6 +36,13 @@ struct hdr_format_info
|
|
|
|
|
const char *pager_progress;
|
|
|
|
|
};
|
|
|
|
@ -1488,9 +1569,12 @@
|
|
|
|
|
void mutt_make_string_info (char *, size_t, const char *, struct hdr_format_info *, format_flag);
|
|
|
|
|
|
|
|
|
|
int mutt_extract_token (BUFFER *, BUFFER *, int);
|
|
|
|
|
--- sidebar.c
|
|
|
|
|
+++ sidebar.c 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
@@ -0,0 +1,405 @@
|
|
|
|
|
diff --git a/sidebar.c b/sidebar.c
|
|
|
|
|
new file mode 100644
|
|
|
|
|
index 0000000..e9d9eba
|
|
|
|
|
--- /dev/null
|
|
|
|
|
+++ b/sidebar.c
|
|
|
|
|
@@ -0,0 +1,410 @@
|
|
|
|
|
+/*
|
|
|
|
|
+ * Copyright (C) ????-2004 Justin Hibbits <jrh29@po.cwru.edu>
|
|
|
|
|
+ * Copyright (C) 2004 Thomer M. Gil <mutt@thomer.com>
|
|
|
|
@ -1608,8 +1692,12 @@
|
|
|
|
|
+ break;
|
|
|
|
|
+
|
|
|
|
|
+ case 'S':
|
|
|
|
|
+ if(!optional) {
|
|
|
|
|
+ snprintf (fmt, sizeof (fmt), "%%%sd", prefix);
|
|
|
|
|
+ snprintf (dest, destlen, fmt, sbe->size);
|
|
|
|
|
+ } else if (sbe->size == 0) {
|
|
|
|
|
+ optional = 0;
|
|
|
|
|
+ }
|
|
|
|
|
+ break;
|
|
|
|
|
+
|
|
|
|
|
+ case 'N':
|
|
|
|
@ -1789,7 +1877,8 @@
|
|
|
|
|
+ SETCOLOR(MT_COLOR_NORMAL);
|
|
|
|
|
+
|
|
|
|
|
+ move( lines, 0 );
|
|
|
|
|
+ if ( Context && (!strcmp(tmp->path, Context->path)||
|
|
|
|
|
+ if ( Context && Context->path &&
|
|
|
|
|
+ (!strcmp(tmp->path, Context->path)||
|
|
|
|
|
+ !strcmp(tmp->realpath, Context->path)) ) {
|
|
|
|
|
+ tmp->msg_unread = Context->unread;
|
|
|
|
|
+ tmp->msgcount = Context->msgcount;
|
|
|
|
@ -1896,8 +1985,11 @@
|
|
|
|
|
+ draw_sidebar(menu);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
--- sidebar.h
|
|
|
|
|
+++ sidebar.h 2014-04-11 15:14:01.000000000 +0000
|
|
|
|
|
diff --git a/sidebar.h b/sidebar.h
|
|
|
|
|
new file mode 100644
|
|
|
|
|
index 0000000..d195f11
|
|
|
|
|
--- /dev/null
|
|
|
|
|
+++ b/sidebar.h
|
|
|
|
|
@@ -0,0 +1,36 @@
|
|
|
|
|
+/*
|
|
|
|
|
+ * Copyright (C) ????-2004 Justin Hibbits <jrh29@po.cwru.edu>
|
|
|
|
@ -1935,3 +2027,6 @@
|
|
|
|
|
+void set_buffystats(CONTEXT*);
|
|
|
|
|
+
|
|
|
|
|
+#endif /* SIDEBAR_H */
|
|
|
|
|
--
|
|
|
|
|
2.6.2
|
|
|
|
|
|