Accepting request 293668 from server:mail
- Update to new upstream release 2.20 * Upgrade UW-IMAP to Panda IMAP from github.com/jonabbey/panda-imap * S/MIME: Add screen to manage certificates. * S/MIME: Signatures are validated using the user's certificates instead of the ones included in the message. Behavior can be disabled by disabling the option "Validate Using Certificate Store Only" which is enabled by default. * S/MIME: add the sender certificate to the list of certificates in encrypted messages to make it possible for the sender to decrypt the message they sent. * S/MIME: Forwarding a message will include the signed part as part of the text and not as a multipart message, just as the reply command does. * Add support to selective expunge through a subcommand of the select-apply commands. * Pico: New subcommand of the search command, allows to reverse the direction of search. * Add /tls1, /tls1_1, /tls1_2 and /dtls1 to the definition of a server to use different ways to connect using ssl, for example {server.com/tls1} will attempt to connect to server.com at the ssl imap port (port 993) and establish a connection using TLSv1. These flags can be used in conjunction with the /ssl flag, the ssl flag is redundant. Conversely, however, the /ssl flag does not imply any of these flags; the /ssl flag means SSLv3 or, if not available, SSLv2 in the SSL port. * Alpine does not attempt to automatically reopen a collection that was not opened due to cancellation by the user. Instead, the user must try to open it explicitly. * Experimental: Write the content-type of a message in lowercase, as some non-compliant servers do not understand uppercase OBS-URL: https://build.opensuse.org/request/show/293668 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/alpine?expand=0&rev=38
This commit is contained in:
commit
e0ca40f80d
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fecc9ca5df03e0f368edec65cd61444325157b5635b5c92380cedf9c4ce8fbf6
|
||||
size 4403188
|
3
alpine-2.20.tar.xz
Normal file
3
alpine-2.20.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ed639b6e5bb97e6b0645c85262ca6a784316195d461ce8d8411999bf80449227
|
||||
size 4841816
|
@ -3,11 +3,11 @@
|
||||
pith/send.c | 1 +
|
||||
2 files changed, 13 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: alpine-2.11/imap/src/osdep/unix/dummy.c
|
||||
Index: alpine-2.20/imap/src/osdep/unix/dummy.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/imap/src/osdep/unix/dummy.c
|
||||
+++ alpine-2.11/imap/src/osdep/unix/dummy.c
|
||||
@@ -736,6 +736,17 @@ long dummy_copy (MAILSTREAM *stream,char
|
||||
--- alpine-2.20.orig/imap/src/osdep/unix/dummy.c
|
||||
+++ alpine-2.20/imap/src/osdep/unix/dummy.c
|
||||
@@ -734,6 +734,17 @@ long dummy_copy (MAILSTREAM *stream,char
|
||||
return NIL;
|
||||
}
|
||||
|
||||
@ -25,7 +25,7 @@ Index: alpine-2.11/imap/src/osdep/unix/dummy.c
|
||||
|
||||
/* Dummy append message string
|
||||
* Accepts: mail stream
|
||||
@@ -755,8 +766,7 @@ long dummy_append (MAILSTREAM *stream,ch
|
||||
@@ -753,8 +764,7 @@ long dummy_append (MAILSTREAM *stream,ch
|
||||
/* append to INBOX? */
|
||||
if (!compare_cstring (mailbox,"INBOX")) {
|
||||
/* yes, if no empty proto try creating */
|
||||
@ -35,12 +35,12 @@ Index: alpine-2.11/imap/src/osdep/unix/dummy.c
|
||||
}
|
||||
else if (dummy_file (tmp,mailbox) && ((fd = open (tmp,O_RDONLY,NIL)) < 0)) {
|
||||
if ((e = errno) == ENOENT) /* failed, was it no such file? */
|
||||
Index: alpine-2.11/pith/send.c
|
||||
Index: alpine-2.20/pith/send.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/send.c
|
||||
+++ alpine-2.11/pith/send.c
|
||||
@@ -1570,6 +1570,7 @@ set_priority_header(METAENV *header, cha
|
||||
pf->textbuf = cpystr(value);
|
||||
--- alpine-2.20.orig/pith/send.c
|
||||
+++ alpine-2.20/pith/send.c
|
||||
@@ -4159,6 +4159,7 @@ set_parameter(PARAMETER **param, char *p
|
||||
pm->value = cpystr(new_value);
|
||||
}
|
||||
}
|
||||
+ return 0;
|
||||
|
@ -1,36 +0,0 @@
|
||||
--- alpine-2.11/pith/send.c 2013-08-15 06:36:22.000000000 +0200
|
||||
+++ alpine-2.19.4/pith/send.c 2013-12-27 20:23:54.000000000 +0100
|
||||
@@ -4419,6 +4423,17 @@
|
||||
return(1);
|
||||
}
|
||||
|
||||
+char *
|
||||
+ToLower(char *s, char *t)
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ for(i = 0; s != NULL && s[i] != '\0'; i++)
|
||||
+ t[i] = s[i] + ((s[i] >= 'A' && s[i] <= 'Z') ? ('a' - 'A') : 0);
|
||||
+ t[i] = '\0';
|
||||
+
|
||||
+ return t;
|
||||
+}
|
||||
|
||||
/*
|
||||
* pine_write_body_header - another c-client clone. This time
|
||||
@@ -4441,11 +4456,11 @@
|
||||
|
||||
if((so = so_get(CharStar, NULL, WRITE_ACCESS)) != NULL){
|
||||
if(!(so_puts(so, "Content-Type: ")
|
||||
- && so_puts(so, body_types[body->type])
|
||||
+ && so_puts(so, ToLower(body_types[body->type], tmp))
|
||||
&& so_puts(so, "/")
|
||||
- && so_puts(so, body->subtype
|
||||
- ? body->subtype
|
||||
- : rfc822_default_subtype (body->type))))
|
||||
+ && so_puts(so, ToLower(body->subtype
|
||||
+ ? body->subtype
|
||||
+ : rfc822_default_subtype (body->type),tmp))))
|
||||
return(pwbh_finish(0, so));
|
||||
|
||||
if(body->parameter){
|
@ -1,49 +0,0 @@
|
||||
---
|
||||
pith/string.c | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
Index: alpine-2.11/pith/string.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/string.c
|
||||
+++ alpine-2.11/pith/string.c
|
||||
@@ -770,6 +770,7 @@ month_abbrev_locale(int month_num)
|
||||
return("xxx");
|
||||
else{
|
||||
static char buf[20];
|
||||
+ char *utf8buf;
|
||||
struct tm tm;
|
||||
|
||||
memset(&tm, 0, sizeof(tm));
|
||||
@@ -811,6 +812,12 @@ month_abbrev_locale(int month_num)
|
||||
|
||||
buf[0] = ' ';
|
||||
}
|
||||
+ utf8buf = convert_to_utf8(buf, NULL, 0);
|
||||
+ if (utf8buf != NULL) {
|
||||
+ strncpy(buf, utf8buf, sizeof(buf));
|
||||
+ buf[sizeof(buf)-1] = '\0';
|
||||
+ fs_give((void **)&utf8buf);
|
||||
+ }
|
||||
|
||||
return(buf);
|
||||
}
|
||||
@@ -842,12 +849,19 @@ month_name_locale(int month_num)
|
||||
return("");
|
||||
else{
|
||||
static char buf[20];
|
||||
+ char *utf8buf;
|
||||
struct tm tm;
|
||||
|
||||
memset(&tm, 0, sizeof(tm));
|
||||
tm.tm_year = 107;
|
||||
tm.tm_mon = month_num-1;
|
||||
our_strftime(buf, sizeof(buf), "%B", &tm);
|
||||
+ utf8buf = convert_to_utf8(buf, NULL, 0);
|
||||
+ if (utf8buf != NULL) {
|
||||
+ strncpy(buf, utf8buf, sizeof(buf));
|
||||
+ buf[sizeof(buf)-1] = '\0';
|
||||
+ fs_give((void **)&utf8buf);
|
||||
+ }
|
||||
return(buf);
|
||||
}
|
||||
}
|
@ -1,3 +1,51 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 25 16:59:29 UTC 2015 - jengelh@inai.de
|
||||
|
||||
- Update to new upstream release 2.20
|
||||
* Upgrade UW-IMAP to Panda IMAP from github.com/jonabbey/panda-imap
|
||||
* S/MIME: Add screen to manage certificates.
|
||||
* S/MIME: Signatures are validated using the user's certificates
|
||||
instead of the ones included in the message. Behavior can be
|
||||
disabled by disabling the option "Validate Using Certificate
|
||||
Store Only" which is enabled by default.
|
||||
* S/MIME: add the sender certificate to the list of certificates
|
||||
in encrypted messages to make it possible for the sender to
|
||||
decrypt the message they sent.
|
||||
* S/MIME: Forwarding a message will include the signed part as part
|
||||
of the text and not as a multipart message, just as the reply
|
||||
command does.
|
||||
* Add support to selective expunge through a subcommand of the
|
||||
select-apply commands.
|
||||
* Pico: New subcommand of the search command, allows to reverse the
|
||||
direction of search.
|
||||
* Add /tls1, /tls1_1, /tls1_2 and /dtls1 to the definition of a
|
||||
server to use different ways to connect using ssl, for example
|
||||
{server.com/tls1} will attempt to connect to server.com at the
|
||||
ssl imap port (port 993) and establish a connection using TLSv1.
|
||||
These flags can be used in conjunction with the /ssl flag, the
|
||||
ssl flag is redundant. Conversely, however, the /ssl flag does
|
||||
not imply any of these flags; the /ssl flag means SSLv3 or, if
|
||||
not available, SSLv2 in the SSL port.
|
||||
* Alpine does not attempt to automatically reopen a collection that
|
||||
was not opened due to cancellation by the user. Instead, the user
|
||||
must try to open it explicitly.
|
||||
* Experimental: Write the content-type of a message in lowercase,
|
||||
as some non-compliant servers do not understand uppercase
|
||||
content-type.
|
||||
* Opening a folder updates recent count in maildrops (this
|
||||
already works for other types of folders)
|
||||
* Pico: Justification works without need of a predefined quote
|
||||
string. This allows justification of blocks of text that are
|
||||
indented with spaces.
|
||||
* Decode the name of attachment names, so they can be written as
|
||||
part of the description of the part.
|
||||
* Replace tabs by spaces in From and Subject fields to control for
|
||||
size in screen of these fields. Change only in index screen
|
||||
display.
|
||||
- Drop alpine-month_name-utf8.patch (solved differently upstream),
|
||||
drop alpine-mime-type-workaround.patch (merged upstream)
|
||||
- Add lint.diff to workaround new source code problems
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 3 11:54:13 UTC 2014 - jengelh@inai.de
|
||||
|
||||
|
18
alpine.spec
18
alpine.spec
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package alpine
|
||||
#
|
||||
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -22,11 +22,13 @@ Name: alpine
|
||||
Summary: Mail User Agent
|
||||
License: Apache-2.0
|
||||
Group: Productivity/Networking/Email/Clients
|
||||
Version: 2.11
|
||||
Version: 2.20
|
||||
Release: 0
|
||||
Url: http://patches.freeiz.com/alpine/
|
||||
|
||||
Source: http://patches.freeiz.com/alpine/release/src/%name-%version.tar.xz
|
||||
# direct download does not work for openSUSE:Factory
|
||||
# Source: http://patches.freeiz.com/alpine/release/src/%name-%version.tar.xz
|
||||
Source: %name-%version.tar.xz
|
||||
Source1: %name.png
|
||||
Source2: %name.desktop
|
||||
Patch1: pine-nonvoid-function.patch
|
||||
@ -34,12 +36,11 @@ Patch2: make-use-of-strncat-safer.diff
|
||||
Patch3: operation-may-be-undefined-warning.diff
|
||||
Patch4: fix-implicit.patch
|
||||
Patch5: alpine-gcc44.diff
|
||||
Patch7: alpine-month_name-utf8.patch
|
||||
Patch10: pico-fix-spurious-undef-warnings.diff
|
||||
Patch20: pine-expression-warnings.diff
|
||||
Patch40: pico-stripwhitespace.diff
|
||||
Patch60: signal-and-panic-improvements.diff
|
||||
Patch61: alpine-mime-type-workaround.patch
|
||||
Patch61: lint.diff
|
||||
#
|
||||
# Eduardo Chappa's patches.
|
||||
# http://patches.freeiz.com/alpine/
|
||||
@ -64,8 +65,8 @@ BuildRequires: openssl-devel
|
||||
BuildRequires: pam-devel
|
||||
BuildRequires: update-desktop-files
|
||||
BuildRequires: xz
|
||||
# pgp4pine requires pine:
|
||||
Provides: pine
|
||||
# pgp4pine requires pine: (6.20 is what alpine writes to ~/.pinerc)
|
||||
Provides: pine = 6.20
|
||||
Obsoletes: pine4
|
||||
Provides: pine4
|
||||
|
||||
@ -134,7 +135,6 @@ fi
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch7 -p1
|
||||
%patch10 -p1
|
||||
%patch20 -p1
|
||||
%patch40 -p1
|
||||
@ -275,7 +275,7 @@ fi
|
||||
%doc %{_mandir}/man1/rpload.*
|
||||
%doc %{_mandir}/man1/mailutil.*
|
||||
%doc README NOTICE LICENSE
|
||||
%doc doc/mailcap.unx doc/mime.types doc/tech-notes.txt doc/tech-notes/*.html
|
||||
%doc doc/mailcap.unx doc/mime.types doc/tech-notes/tech-notes.txt doc/tech-notes/*.html
|
||||
%{_bindir}/*pine
|
||||
%{_bindir}/alpinef
|
||||
%{_bindir}/rp*
|
||||
|
@ -8,11 +8,11 @@
|
||||
pico/search.c | 6 -
|
||||
7 files changed, 214 insertions(+), 8 deletions(-)
|
||||
|
||||
Index: alpine-2.11/pico/basic.c
|
||||
Index: alpine-2.20/pico/basic.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pico/basic.c
|
||||
+++ alpine-2.11/pico/basic.c
|
||||
@@ -344,6 +344,189 @@ gotobop(int f, int n)
|
||||
--- alpine-2.20.orig/pico/basic.c
|
||||
+++ alpine-2.20/pico/basic.c
|
||||
@@ -342,6 +342,189 @@ gotobop(int f, int n)
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
@ -202,10 +202,10 @@ Index: alpine-2.11/pico/basic.c
|
||||
|
||||
/*
|
||||
* go forword to the end of the current paragraph
|
||||
Index: alpine-2.11/pico/composer.c
|
||||
Index: alpine-2.20/pico/composer.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pico/composer.c
|
||||
+++ alpine-2.11/pico/composer.c
|
||||
--- alpine-2.20.orig/pico/composer.c
|
||||
+++ alpine-2.20/pico/composer.c
|
||||
@@ -2015,7 +2015,7 @@ LineEdit(int allowedit, UCS *lastch)
|
||||
tbufp = &strng[ods.p_len];
|
||||
|
||||
@ -229,10 +229,10 @@ Index: alpine-2.11/pico/composer.c
|
||||
case (CTRL|KEY_LEFT): /* word skip left */
|
||||
if(ods.p_ind > 0) /* Scoot one char left if possible */
|
||||
ods.p_ind--;
|
||||
Index: alpine-2.11/pico/display.c
|
||||
Index: alpine-2.20/pico/display.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pico/display.c
|
||||
+++ alpine-2.11/pico/display.c
|
||||
--- alpine-2.20.orig/pico/display.c
|
||||
+++ alpine-2.20/pico/display.c
|
||||
@@ -1751,6 +1751,11 @@ mlreplyd(UCS *prompt, UCS *buf, int nbuf
|
||||
b = &buf[ucs4_strlen(buf)];
|
||||
continue;
|
||||
@ -254,10 +254,10 @@ Index: alpine-2.11/pico/display.c
|
||||
/* look for match in extra_v */
|
||||
for(i = 0; i < 12; i++)
|
||||
if(c && c == extra_v[i]){
|
||||
Index: alpine-2.11/pico/ebind.h
|
||||
Index: alpine-2.20/pico/ebind.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pico/ebind.h
|
||||
+++ alpine-2.11/pico/ebind.h
|
||||
--- alpine-2.20.orig/pico/ebind.h
|
||||
+++ alpine-2.20/pico/ebind.h
|
||||
@@ -61,7 +61,7 @@ KEYTAB keytab[NBINDS] = {
|
||||
#ifdef MOUSE
|
||||
{KEY_MOUSE, mousepress},
|
||||
@ -287,10 +287,10 @@ Index: alpine-2.11/pico/ebind.h
|
||||
#endif
|
||||
#endif
|
||||
{CTRL|'A', gotobol},
|
||||
Index: alpine-2.11/pico/efunc.h
|
||||
Index: alpine-2.20/pico/efunc.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pico/efunc.h
|
||||
+++ alpine-2.11/pico/efunc.h
|
||||
--- alpine-2.20.orig/pico/efunc.h
|
||||
+++ alpine-2.20/pico/efunc.h
|
||||
@@ -54,6 +54,9 @@ extern int forwline(int, int);
|
||||
extern int backline(int, int);
|
||||
extern int gotobop(int, int);
|
||||
@ -301,10 +301,10 @@ Index: alpine-2.11/pico/efunc.h
|
||||
extern int forwpage(int, int);
|
||||
extern int backpage(int, int);
|
||||
extern int scrollupline(int, int);
|
||||
Index: alpine-2.11/pico/main.c
|
||||
Index: alpine-2.20/pico/main.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pico/main.c
|
||||
+++ alpine-2.11/pico/main.c
|
||||
--- alpine-2.20.orig/pico/main.c
|
||||
+++ alpine-2.20/pico/main.c
|
||||
@@ -416,6 +416,12 @@ main(int argc, char *argv[])
|
||||
emlwrite(_("You may possibly have new mail."), NULL);
|
||||
}
|
||||
@ -318,21 +318,21 @@ Index: alpine-2.11/pico/main.c
|
||||
if(km_popped)
|
||||
switch(c){
|
||||
case NODATA:
|
||||
Index: alpine-2.11/pico/search.c
|
||||
Index: alpine-2.20/pico/search.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pico/search.c
|
||||
+++ alpine-2.11/pico/search.c
|
||||
@@ -278,7 +278,7 @@ forwsearch(int f, int n)
|
||||
--- alpine-2.20.orig/pico/search.c
|
||||
+++ alpine-2.20/pico/search.c
|
||||
@@ -291,7 +291,7 @@ forwsearch(int f, int n)
|
||||
}
|
||||
|
||||
if(status + curwp->w_doto >= llength(curwp->w_dotp) ||
|
||||
- !eq(defpat[status],lgetc(curwp->w_dotp, curwp->w_doto + status).c))
|
||||
+ !eq((unsigned char)defpat[status],lgetc(curwp->w_dotp, curwp->w_doto + status).c))
|
||||
break; /* do nothing! */
|
||||
+ !eq((unsigned char) defpat[status],lgetc(curwp->w_dotp, curwp->w_doto + status).c))
|
||||
break;
|
||||
status++;
|
||||
}
|
||||
@@ -931,7 +931,7 @@ forscan(int *wrapt, /* boolean indicatin
|
||||
c = lgetc(curline, curoff++).c; /* get the char */
|
||||
@@ -1096,7 +1096,7 @@ forscan(int *wrapt, /* boolean indicatin
|
||||
c = lgetc(curline, curoff++).c; /* get the char */
|
||||
|
||||
/* test it against first char in pattern */
|
||||
- if (eq(c, patrn[0]) != FALSE) { /* if we find it..*/
|
||||
@ -340,7 +340,7 @@ Index: alpine-2.11/pico/search.c
|
||||
/* setup match pointers */
|
||||
matchline = curline;
|
||||
matchoff = curoff;
|
||||
@@ -952,7 +952,7 @@ forscan(int *wrapt, /* boolean indicatin
|
||||
@@ -1117,7 +1117,7 @@ forscan(int *wrapt, /* boolean indicatin
|
||||
return(FALSE);
|
||||
|
||||
/* and test it against the pattern */
|
||||
|
@ -11,11 +11,11 @@
|
||||
pith/text.c | 9 ++
|
||||
10 files changed, 308 insertions(+)
|
||||
|
||||
Index: alpine-2.11/alpine/confscroll.c
|
||||
Index: alpine-2.20/alpine/confscroll.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/alpine/confscroll.c
|
||||
+++ alpine-2.11/alpine/confscroll.c
|
||||
@@ -5183,6 +5183,9 @@ fix_side_effects(struct pine *ps, struct
|
||||
--- alpine-2.20.orig/alpine/confscroll.c
|
||||
+++ alpine-2.20/alpine/confscroll.c
|
||||
@@ -5196,6 +5196,9 @@ fix_side_effects(struct pine *ps, struct
|
||||
|
||||
clear_index_cache(ps->mail_stream, 0);
|
||||
}
|
||||
@ -25,10 +25,10 @@ Index: alpine-2.11/alpine/confscroll.c
|
||||
else if(var == &ps->vars[V_INIT_CMD_LIST]){
|
||||
if(!revert)
|
||||
q_status_message(SM_ASYNC, 0, 3,
|
||||
Index: alpine-2.11/pith/conf.c
|
||||
Index: alpine-2.20/pith/conf.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/conf.c
|
||||
+++ alpine-2.11/pith/conf.c
|
||||
--- alpine-2.20.orig/pith/conf.c
|
||||
+++ alpine-2.20/pith/conf.c
|
||||
@@ -228,6 +228,8 @@ CONF_TXT_T cf_text_deadlets[] = "Specif
|
||||
|
||||
CONF_TXT_T cf_text_fillcol[] = "Specifies the column of the screen where the composer should wrap.";
|
||||
@ -38,7 +38,7 @@ Index: alpine-2.11/pith/conf.c
|
||||
CONF_TXT_T cf_text_replystr[] = "Specifies the string to insert when replying to a message.";
|
||||
|
||||
CONF_TXT_T cf_text_quotereplstr[] = "Specifies the string to replace quotes with when viewing a message.";
|
||||
@@ -560,6 +562,8 @@ static struct variable variables[] = {
|
||||
@@ -562,6 +564,8 @@ static struct variable variables[] = {
|
||||
NULL, cf_text_speller},
|
||||
{"composer-wrap-column", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0,
|
||||
NULL, cf_text_fillcol},
|
||||
@ -47,7 +47,7 @@ Index: alpine-2.11/pith/conf.c
|
||||
{"reply-indent-string", 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0,
|
||||
NULL, cf_text_replystr},
|
||||
{"reply-leadin", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0,
|
||||
@@ -817,6 +821,8 @@ static struct variable variables[] = {
|
||||
@@ -821,6 +825,8 @@ static struct variable variables[] = {
|
||||
{"incoming-unseen-background-color", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0},
|
||||
{"signature-foreground-color", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0},
|
||||
{"signature-background-color", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0},
|
||||
@ -56,7 +56,7 @@ Index: alpine-2.11/pith/conf.c
|
||||
{"prompt-foreground-color", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0},
|
||||
{"prompt-background-color", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0},
|
||||
{"header-general-foreground-color", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0},
|
||||
@@ -1985,6 +1991,8 @@ init_vars(struct pine *ps, void (*cmds_f
|
||||
@@ -1990,6 +1996,8 @@ init_vars(struct pine *ps, void (*cmds_f
|
||||
set_current_val(&vars[V_FORM_FOLDER], TRUE, TRUE);
|
||||
set_current_val(&vars[V_EDITOR], TRUE, TRUE);
|
||||
set_current_val(&vars[V_SPELLER], TRUE, TRUE);
|
||||
@ -65,7 +65,7 @@ Index: alpine-2.11/pith/conf.c
|
||||
set_current_val(&vars[V_IMAGE_VIEWER], TRUE, TRUE);
|
||||
set_current_val(&vars[V_BROWSER], TRUE, TRUE);
|
||||
set_current_val(&vars[V_SMTP_SERVER], TRUE, TRUE);
|
||||
@@ -6483,6 +6491,7 @@ set_current_color_vals(struct pine *ps)
|
||||
@@ -6549,6 +6557,7 @@ set_current_color_vals(struct pine *ps)
|
||||
set_color_val(&vars[V_IND_OP_FORE_COLOR], 0);
|
||||
set_color_val(&vars[V_INCUNSEEN_FORE_COLOR], 0);
|
||||
set_color_val(&vars[V_SIGNATURE_FORE_COLOR], 0);
|
||||
@ -73,7 +73,7 @@ Index: alpine-2.11/pith/conf.c
|
||||
|
||||
set_current_val(&ps->vars[V_INDEX_TOKEN_COLORS], TRUE, TRUE);
|
||||
set_current_val(&ps->vars[V_VIEW_HDR_COLORS], TRUE, TRUE);
|
||||
@@ -7664,6 +7673,8 @@ config_help(int var, int feature)
|
||||
@@ -7732,6 +7741,8 @@ config_help(int var, int feature)
|
||||
return(h_config_scroll_margin);
|
||||
case V_DEADLETS :
|
||||
return(h_config_deadlets);
|
||||
@ -82,7 +82,7 @@ Index: alpine-2.11/pith/conf.c
|
||||
case V_FILLCOL :
|
||||
return(h_config_composer_wrap_column);
|
||||
case V_TCPOPENTIMEO :
|
||||
@@ -7829,6 +7840,9 @@ config_help(int var, int feature)
|
||||
@@ -7897,6 +7908,9 @@ config_help(int var, int feature)
|
||||
case V_SIGNATURE_FORE_COLOR :
|
||||
case V_SIGNATURE_BACK_COLOR :
|
||||
return(h_config_signature_color);
|
||||
@ -92,10 +92,10 @@ Index: alpine-2.11/pith/conf.c
|
||||
case V_PROMPT_FORE_COLOR :
|
||||
case V_PROMPT_BACK_COLOR :
|
||||
return(h_config_prompt_color);
|
||||
Index: alpine-2.11/pith/conf.h
|
||||
Index: alpine-2.20/pith/conf.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/conf.h
|
||||
+++ alpine-2.11/pith/conf.h
|
||||
--- alpine-2.20.orig/pith/conf.h
|
||||
+++ alpine-2.20/pith/conf.h
|
||||
@@ -161,6 +161,8 @@
|
||||
#define GLO_EDITOR vars[V_EDITOR].global_val.l
|
||||
#define VAR_SPELLER vars[V_SPELLER].current_val.p
|
||||
@ -105,7 +105,7 @@ Index: alpine-2.11/pith/conf.h
|
||||
#define VAR_FILLCOL vars[V_FILLCOL].current_val.p
|
||||
#define GLO_FILLCOL vars[V_FILLCOL].global_val.p
|
||||
#define VAR_DEADLETS vars[V_DEADLETS].current_val.p
|
||||
@@ -456,6 +458,8 @@
|
||||
@@ -458,6 +460,8 @@
|
||||
#define GLO_SIGNATURE_FORE_COLOR vars[V_SIGNATURE_FORE_COLOR].global_val.p
|
||||
#define VAR_SIGNATURE_BACK_COLOR vars[V_SIGNATURE_BACK_COLOR].current_val.p
|
||||
#define GLO_SIGNATURE_BACK_COLOR vars[V_SIGNATURE_BACK_COLOR].global_val.p
|
||||
@ -114,10 +114,10 @@ Index: alpine-2.11/pith/conf.h
|
||||
#define VAR_PROMPT_FORE_COLOR vars[V_PROMPT_FORE_COLOR].current_val.p
|
||||
#define VAR_PROMPT_BACK_COLOR vars[V_PROMPT_BACK_COLOR].current_val.p
|
||||
#define VAR_VIEW_HDR_COLORS vars[V_VIEW_HDR_COLORS].current_val.l
|
||||
Index: alpine-2.11/pith/conftype.h
|
||||
Index: alpine-2.20/pith/conftype.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/conftype.h
|
||||
+++ alpine-2.11/pith/conftype.h
|
||||
--- alpine-2.20.orig/pith/conftype.h
|
||||
+++ alpine-2.20/pith/conftype.h
|
||||
@@ -80,6 +80,7 @@ typedef enum { V_PERSONAL_NAME = 0
|
||||
, V_EDITOR
|
||||
, V_SPELLER
|
||||
@ -126,7 +126,7 @@ Index: alpine-2.11/pith/conftype.h
|
||||
, V_REPLY_STRING
|
||||
, V_REPLY_INTRO
|
||||
, V_QUOTE_REPLACE_STRING
|
||||
@@ -230,6 +231,8 @@ typedef enum { V_PERSONAL_NAME = 0
|
||||
@@ -231,6 +232,8 @@ typedef enum { V_PERSONAL_NAME = 0
|
||||
, V_INCUNSEEN_BACK_COLOR
|
||||
, V_SIGNATURE_FORE_COLOR
|
||||
, V_SIGNATURE_BACK_COLOR
|
||||
@ -135,10 +135,10 @@ Index: alpine-2.11/pith/conftype.h
|
||||
, V_PROMPT_FORE_COLOR
|
||||
, V_PROMPT_BACK_COLOR
|
||||
, V_HEADER_GENERAL_FORE_COLOR
|
||||
Index: alpine-2.11/pith/mailview.c
|
||||
Index: alpine-2.20/pith/mailview.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/mailview.c
|
||||
+++ alpine-2.11/pith/mailview.c
|
||||
--- alpine-2.20.orig/pith/mailview.c
|
||||
+++ alpine-2.20/pith/mailview.c
|
||||
@@ -282,6 +282,14 @@ format_body(long int msgno, BODY *body,
|
||||
if((flgs & FM_DISPLAY)
|
||||
&& !(flgs & FM_NOCOLOR)
|
||||
@ -345,10 +345,10 @@ Index: alpine-2.11/pith/mailview.c
|
||||
|
||||
/*
|
||||
* The argument fieldname is something like "Subject:..." or "Subject".
|
||||
Index: alpine-2.11/pith/mailview.h
|
||||
Index: alpine-2.20/pith/mailview.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/mailview.h
|
||||
+++ alpine-2.11/pith/mailview.h
|
||||
--- alpine-2.20.orig/pith/mailview.h
|
||||
+++ alpine-2.20/pith/mailview.h
|
||||
@@ -30,6 +30,12 @@
|
||||
#include "../pith/color.h"
|
||||
|
||||
@ -378,11 +378,11 @@ Index: alpine-2.11/pith/mailview.h
|
||||
|
||||
/*
|
||||
* BUG: BELOW IS UNIX/PC ONLY since config'd browser means nothing to webpine
|
||||
Index: alpine-2.11/pith/pine.hlp
|
||||
Index: alpine-2.20/pith/pine.hlp
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/pine.hlp
|
||||
+++ alpine-2.11/pith/pine.hlp
|
||||
@@ -3563,6 +3563,7 @@ There are also additional details on
|
||||
--- alpine-2.20.orig/pith/pine.hlp
|
||||
+++ alpine-2.20/pith/pine.hlp
|
||||
@@ -3833,6 +3833,7 @@ There are also additional details on
|
||||
<li><a href="h_config_print_cat">OPTION: <!--#echo var="VAR_personal-print-category"--></a>
|
||||
<li><a href="h_config_print_command">OPTION: <!--#echo var="VAR_personal-print-command"--></a>
|
||||
<li><a href="h_config_post_char_set">OPTION: <!--#echo var="VAR_posting-character-set"--></a>
|
||||
@ -390,7 +390,7 @@ Index: alpine-2.11/pith/pine.hlp
|
||||
<li><a href="h_config_postponed_folder">OPTION: <!--#echo var="VAR_postponed-folder"--></a>
|
||||
<li><a href="h_config_print_font_char_set">OPTION: Print-Font-Char-Set</a>
|
||||
<li><a href="h_config_print_font_name">OPTION: Print-Font-Name</a>
|
||||
@@ -3591,6 +3592,7 @@ There are also additional details on
|
||||
@@ -3861,6 +3862,7 @@ There are also additional details on
|
||||
<li><a href="h_config_sending_filter">OPTION: <!--#echo var="VAR_sending-filters"--></a>
|
||||
<li><a href="h_config_sendmail_path">OPTION: <!--#echo var="VAR_sendmail-path"--></a>
|
||||
<li><a href="h_config_signature_color">OPTION: Signature Color</a>
|
||||
@ -398,7 +398,7 @@ Index: alpine-2.11/pith/pine.hlp
|
||||
<li><a href="h_config_signature_file">OPTION: <!--#echo var="VAR_signature-file"--></a>
|
||||
<li><a href="h_config_smtp_server">OPTION: <!--#echo var="VAR_smtp-server"--></a>
|
||||
<li><a href="h_config_sort_key">OPTION: <!--#echo var="VAR_sort-key"--></a>
|
||||
@@ -22838,6 +22840,43 @@ That won't work because spell works in a
|
||||
@@ -23234,6 +23236,43 @@ That won't work because spell works in a
|
||||
<End of help on this topic>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -442,7 +442,7 @@ Index: alpine-2.11/pith/pine.hlp
|
||||
====== h_config_display_filters =====
|
||||
<HTML>
|
||||
<HEAD>
|
||||
@@ -31455,6 +31494,30 @@ the Quote3 Color is black characters on
|
||||
@@ -31851,6 +31890,30 @@ the Quote3 Color is black characters on
|
||||
<P>
|
||||
<A HREF="h_color_setup">Descriptions of the available commands</A>
|
||||
<P>
|
||||
@ -473,10 +473,10 @@ Index: alpine-2.11/pith/pine.hlp
|
||||
Look <A HREF="h_edit_nav_cmds">here</A>
|
||||
to see the available Editing and Navigation commands.
|
||||
<P>
|
||||
Index: alpine-2.11/pith/state.c
|
||||
Index: alpine-2.20/pith/state.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/state.c
|
||||
+++ alpine-2.11/pith/state.c
|
||||
--- alpine-2.20.orig/pith/state.c
|
||||
+++ alpine-2.20/pith/state.c
|
||||
@@ -131,6 +131,9 @@ free_pine_struct(struct pine **pps)
|
||||
if((*pps)->folders_dir != NULL)
|
||||
fs_give((void **)&(*pps)->folders_dir);
|
||||
@ -487,11 +487,11 @@ Index: alpine-2.11/pith/state.c
|
||||
if((*pps)->ui.homedir)
|
||||
fs_give((void **)&(*pps)->ui.homedir);
|
||||
|
||||
Index: alpine-2.11/pith/state.h
|
||||
Index: alpine-2.20/pith/state.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/state.h
|
||||
+++ alpine-2.11/pith/state.h
|
||||
@@ -326,6 +326,8 @@ struct pine {
|
||||
--- alpine-2.20.orig/pith/state.h
|
||||
+++ alpine-2.20/pith/state.h
|
||||
@@ -331,6 +331,8 @@ struct pine {
|
||||
char *display_charmap; /* needs to be freed */
|
||||
char *keyboard_charmap; /* needs to be freed */
|
||||
void *input_cs;
|
||||
@ -500,10 +500,10 @@ Index: alpine-2.11/pith/state.h
|
||||
|
||||
char *posting_charmap; /* needs to be freed */
|
||||
|
||||
Index: alpine-2.11/pith/text.c
|
||||
Index: alpine-2.20/pith/text.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/text.c
|
||||
+++ alpine-2.11/pith/text.c
|
||||
--- alpine-2.20.orig/pith/text.c
|
||||
+++ alpine-2.20/pith/text.c
|
||||
@@ -171,6 +171,15 @@ decode_text(ATTACH_S *att,
|
||||
gf_url_hilite_opt(&uh,handlesp,0));
|
||||
}
|
||||
|
@ -28,19 +28,19 @@
|
||||
web/src/alpined.d/alpined.c | 4
|
||||
27 files changed, 1870 insertions(+), 155 deletions(-)
|
||||
|
||||
Index: alpine-2.11/alpine/arg.c
|
||||
Index: alpine-2.20/alpine/arg.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/alpine/arg.c
|
||||
+++ alpine-2.11/alpine/arg.c
|
||||
@@ -60,6 +60,7 @@ static char args_err_missing_passfile[]
|
||||
static char args_err_non_abs_passfile[] = N_("argument to \"-passfile\" should be fully-qualified");
|
||||
--- alpine-2.20.orig/alpine/arg.c
|
||||
+++ alpine-2.20/alpine/arg.c
|
||||
@@ -64,6 +64,7 @@ static char args_err_non_abs_pwdcertdir[
|
||||
#endif /* SMIME inside PASSFILE */
|
||||
#endif
|
||||
static char args_err_missing_sort[] = N_("missing argument for option \"-sort\"");
|
||||
+static char args_err_missing_thread_sort[] = N_("missing argument for option \"-threadsort\"");
|
||||
static char args_err_missing_flag_arg[] = N_("missing argument for flag \"%c\"");
|
||||
static char args_err_missing_flag_num[] = N_("Non numeric argument for flag \"%c\"");
|
||||
static char args_err_missing_debug_num[] = N_("Non numeric argument for \"%s\"");
|
||||
@@ -103,6 +104,7 @@ N_(" -k \t\tKeys - Force use of function
|
||||
@@ -107,6 +108,7 @@ N_(" -k \t\tKeys - Force use of function
|
||||
N_(" -z \t\tSuspend - allow use of ^Z suspension"),
|
||||
N_(" -r \t\tRestricted - can only send mail to oneself"),
|
||||
N_(" -sort <sort>\tSort - Specify sort order of folder:"),
|
||||
@ -48,7 +48,7 @@ Index: alpine-2.11/alpine/arg.c
|
||||
N_("\t\t\tarrival, subject, threaded, orderedsubject, date,"),
|
||||
N_("\t\t\tfrom, size, score, to, cc, /reverse"),
|
||||
N_(" -i\t\tIndex - Go directly to index, bypassing main menu"),
|
||||
@@ -192,6 +194,7 @@ pine_args(struct pine *pine_state, int a
|
||||
@@ -200,6 +202,7 @@ pine_args(struct pine *pine_state, int a
|
||||
char *cmd_list = NULL;
|
||||
char *debug_str = NULL;
|
||||
char *sort = NULL;
|
||||
@ -56,7 +56,7 @@ Index: alpine-2.11/alpine/arg.c
|
||||
char *pinerc_file = NULL;
|
||||
char *lc = NULL;
|
||||
int do_help = 0;
|
||||
@@ -363,6 +366,17 @@ Loop: while(--ac > 0)
|
||||
@@ -396,6 +399,17 @@ Loop: while(--ac > 0)
|
||||
|
||||
goto Loop;
|
||||
}
|
||||
@ -74,10 +74,10 @@ Index: alpine-2.11/alpine/arg.c
|
||||
else if(strcmp(*av, "url") == 0){
|
||||
if(args->action == aaFolder && !args->data.folder){
|
||||
args->action = aaURL;
|
||||
Index: alpine-2.11/alpine/confscroll.c
|
||||
Index: alpine-2.20/alpine/confscroll.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/alpine/confscroll.c
|
||||
+++ alpine-2.11/alpine/confscroll.c
|
||||
--- alpine-2.20.orig/alpine/confscroll.c
|
||||
+++ alpine-2.20/alpine/confscroll.c
|
||||
@@ -139,7 +139,7 @@ char *yesno_pretty_value(struct pine
|
||||
char *radio_pretty_value(struct pine *, CONF_S *);
|
||||
char *sigfile_pretty_value(struct pine *, CONF_S *);
|
||||
@ -97,7 +97,7 @@ Index: alpine-2.11/alpine/confscroll.c
|
||||
standard_radio_var(ps, (*cl)->var) ||
|
||||
(*cl)->var == startup_ptr)))
|
||||
return;
|
||||
@@ -2923,7 +2924,7 @@ radiobutton_tool(struct pine *ps, int cm
|
||||
@@ -2927,7 +2928,7 @@ radiobutton_tool(struct pine *ps, int cm
|
||||
}
|
||||
|
||||
set_current_val((*cl)->var, TRUE, TRUE);
|
||||
@ -106,7 +106,7 @@ Index: alpine-2.11/alpine/confscroll.c
|
||||
ps->def_sort = def_sort;
|
||||
ps->def_sort_rev = def_sort_rev;
|
||||
}
|
||||
@@ -2932,6 +2933,37 @@ radiobutton_tool(struct pine *ps, int cm
|
||||
@@ -2936,6 +2937,37 @@ radiobutton_tool(struct pine *ps, int cm
|
||||
ps->mangled_body = 1; /* BUG: redraw it all for now? */
|
||||
rv = 1;
|
||||
}
|
||||
@ -144,7 +144,7 @@ Index: alpine-2.11/alpine/confscroll.c
|
||||
else
|
||||
q_status_message(SM_ORDER | SM_DING, 3, 6,
|
||||
"Programmer botch! Unknown radiobutton type.");
|
||||
@@ -3794,7 +3826,9 @@ pretty_value(struct pine *ps, CONF_S *cl
|
||||
@@ -3799,7 +3831,9 @@ pretty_value(struct pine *ps, CONF_S *cl
|
||||
else if(standard_radio_var(ps, v) || v == startup_ptr)
|
||||
return(radio_pretty_value(ps, cl));
|
||||
else if(v == &ps->vars[V_SORT_KEY])
|
||||
@ -155,7 +155,7 @@ Index: alpine-2.11/alpine/confscroll.c
|
||||
else if(v == &ps->vars[V_SIGNATURE_FILE])
|
||||
return(sigfile_pretty_value(ps, cl));
|
||||
else if(v == &ps->vars[V_USE_ONLY_DOMAIN_NAME])
|
||||
@@ -4325,14 +4359,14 @@ color_pretty_value(struct pine *ps, CONF
|
||||
@@ -4330,14 +4364,14 @@ color_pretty_value(struct pine *ps, CONF
|
||||
|
||||
|
||||
char *
|
||||
@ -173,7 +173,7 @@ Index: alpine-2.11/alpine/confscroll.c
|
||||
{
|
||||
char tmp[6*MAXPATH];
|
||||
char *pvalnorm, *pvalexc, *pval;
|
||||
@@ -4382,7 +4416,7 @@ generalized_sort_pretty_value(struct pin
|
||||
@@ -4387,7 +4421,7 @@ generalized_sort_pretty_value(struct pin
|
||||
}
|
||||
else if(fixed){
|
||||
pval = v->fixed_val.p;
|
||||
@ -182,7 +182,7 @@ Index: alpine-2.11/alpine/confscroll.c
|
||||
is_the_one = (var_sort_rev == line_sort_rev && var_sort == line_sort);
|
||||
|
||||
utf8_snprintf(tmp, sizeof(tmp), "(%c) %s%-*w%*s%s",
|
||||
@@ -4393,9 +4427,9 @@ generalized_sort_pretty_value(struct pin
|
||||
@@ -4398,9 +4432,9 @@ generalized_sort_pretty_value(struct pin
|
||||
is_the_one ? " (value is fixed)" : "");
|
||||
}
|
||||
else if(is_set_for_this_level){
|
||||
@ -194,7 +194,7 @@ Index: alpine-2.11/alpine/confscroll.c
|
||||
the_exc_one = (editing_normal_which_isnt_except && pvalexc &&
|
||||
exc_sort_rev == line_sort_rev && exc_sort == line_sort);
|
||||
utf8_snprintf(tmp, sizeof(tmp), "(%c) %s%-*w%*s%s",
|
||||
@@ -4413,7 +4447,7 @@ generalized_sort_pretty_value(struct pin
|
||||
@@ -4418,7 +4452,7 @@ generalized_sort_pretty_value(struct pin
|
||||
}
|
||||
else{
|
||||
if(pvalexc){
|
||||
@ -203,7 +203,7 @@ Index: alpine-2.11/alpine/confscroll.c
|
||||
is_the_one = (exc_sort_rev == line_sort_rev &&
|
||||
exc_sort == line_sort);
|
||||
utf8_snprintf(tmp, sizeof(tmp), "( ) %s%-*w%*s%s",
|
||||
@@ -4424,7 +4458,7 @@ generalized_sort_pretty_value(struct pin
|
||||
@@ -4429,7 +4463,7 @@ generalized_sort_pretty_value(struct pin
|
||||
}
|
||||
else{
|
||||
pval = v->current_val.p;
|
||||
@ -212,7 +212,7 @@ Index: alpine-2.11/alpine/confscroll.c
|
||||
is_the_one = ((pval || default_ok) &&
|
||||
var_sort_rev == line_sort_rev &&
|
||||
var_sort == line_sort);
|
||||
@@ -5548,9 +5582,15 @@ fix_side_effects(struct pine *ps, struct
|
||||
@@ -5571,9 +5605,15 @@ fix_side_effects(struct pine *ps, struct
|
||||
else if(revert && var == &ps->vars[V_SORT_KEY]){
|
||||
int def_sort_rev;
|
||||
|
||||
@ -229,10 +229,10 @@ Index: alpine-2.11/alpine/confscroll.c
|
||||
else if(var == &ps->vars[V_THREAD_MORE_CHAR] ||
|
||||
var == &ps->vars[V_THREAD_EXP_CHAR] ||
|
||||
var == &ps->vars[V_THREAD_LASTREPLY_CHAR]){
|
||||
Index: alpine-2.11/alpine/confscroll.h
|
||||
Index: alpine-2.20/alpine/confscroll.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/alpine/confscroll.h
|
||||
+++ alpine-2.11/alpine/confscroll.h
|
||||
--- alpine-2.20.orig/alpine/confscroll.h
|
||||
+++ alpine-2.20/alpine/confscroll.h
|
||||
@@ -95,7 +95,7 @@ int checkbox_tool(struct pine *, int, C
|
||||
int radiobutton_tool(struct pine *, int, CONF_S **, unsigned);
|
||||
int yesno_tool(struct pine *, int, CONF_S **, unsigned);
|
||||
@ -242,10 +242,10 @@ Index: alpine-2.11/alpine/confscroll.h
|
||||
int exclude_config_var(struct pine *, struct variable *, int);
|
||||
int config_exit_cmd(unsigned);
|
||||
int simple_exit_cmd(unsigned);
|
||||
Index: alpine-2.11/alpine/keymenu.c
|
||||
Index: alpine-2.20/alpine/keymenu.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/alpine/keymenu.c
|
||||
+++ alpine-2.11/alpine/keymenu.c
|
||||
--- alpine-2.20.orig/alpine/keymenu.c
|
||||
+++ alpine-2.20/alpine/keymenu.c
|
||||
@@ -650,10 +650,25 @@ struct key index_keys[] =
|
||||
RCOMPOSE_MENU,
|
||||
HOMEKEY_MENU,
|
||||
@ -319,10 +319,10 @@ Index: alpine-2.11/alpine/keymenu.c
|
||||
INST_KEY_MENU(view_keymenu, view_keys);
|
||||
|
||||
|
||||
Index: alpine-2.11/alpine/keymenu.h
|
||||
Index: alpine-2.20/alpine/keymenu.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/alpine/keymenu.h
|
||||
+++ alpine-2.11/alpine/keymenu.h
|
||||
--- alpine-2.20.orig/alpine/keymenu.h
|
||||
+++ alpine-2.20/alpine/keymenu.h
|
||||
@@ -215,6 +215,19 @@ struct key_menu {
|
||||
#define MC_DECRYPT 802
|
||||
#define MC_QUOTA 803
|
||||
@ -341,12 +341,12 @@ Index: alpine-2.11/alpine/keymenu.h
|
||||
+#define MC_CTHREAD 816
|
||||
+#define MC_OTHREAD 817
|
||||
|
||||
/*
|
||||
* Some standard Key/Command Bindings
|
||||
Index: alpine-2.11/alpine/mailcmd.c
|
||||
|
||||
/* Commands for S/MIME screens */
|
||||
Index: alpine-2.20/alpine/mailcmd.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/alpine/mailcmd.c
|
||||
+++ alpine-2.11/alpine/mailcmd.c
|
||||
--- alpine-2.20.orig/alpine/mailcmd.c
|
||||
+++ alpine-2.20/alpine/mailcmd.c
|
||||
@@ -113,7 +113,7 @@ int select_by_thread(MAILSTREAM *, MSG
|
||||
char *choose_a_rule(int);
|
||||
int select_by_keyword(MAILSTREAM *, SEARCHSET **);
|
||||
@ -355,8 +355,8 @@ Index: alpine-2.11/alpine/mailcmd.c
|
||||
+int select_sort(struct pine *, int, SortOrder *, int *, int);
|
||||
int print_index(struct pine *, MSGNO_S *, int);
|
||||
|
||||
|
||||
@@ -1335,7 +1335,7 @@ get_out:
|
||||
/*
|
||||
@@ -1371,7 +1371,7 @@ get_out:
|
||||
if(any_messages(msgmap, NULL, NULL)){
|
||||
if(any_lflagged(msgmap, MN_SLCT) > 0L){
|
||||
if(apply_command(state, stream, msgmap, 0,
|
||||
@ -365,7 +365,7 @@ Index: alpine-2.11/alpine/mailcmd.c
|
||||
if(F_ON(F_AUTO_UNSELECT, state)){
|
||||
agg_select_all(stream, msgmap, NULL, 0);
|
||||
unzoom_index(state, stream, msgmap);
|
||||
@@ -1353,23 +1353,35 @@ get_out:
|
||||
@@ -1389,23 +1389,35 @@ get_out:
|
||||
|
||||
/*-------- Sort command -------*/
|
||||
case MC_SORT :
|
||||
@ -403,7 +403,7 @@ Index: alpine-2.11/alpine/mailcmd.c
|
||||
}
|
||||
|
||||
state->mangled_footer = 1;
|
||||
@@ -3174,6 +3186,10 @@ cmd_expunge(struct pine *state, MAILSTRE
|
||||
@@ -3286,6 +3298,10 @@ cmd_expunge(struct pine *state, MAILSTRE
|
||||
if(SORT_IS_THREADED(msgmap))
|
||||
refresh_sort(stream, msgmap, SRT_NON);
|
||||
|
||||
@ -414,7 +414,7 @@ Index: alpine-2.11/alpine/mailcmd.c
|
||||
state->mangled_body = 1;
|
||||
state->mangled_header = 1;
|
||||
q_status_message2(SM_ORDER, 0, 4,
|
||||
@@ -3268,6 +3284,9 @@ cmd_expunge(struct pine *state, MAILSTRE
|
||||
@@ -3387,6 +3403,9 @@ cmd_expunge(struct pine *state, MAILSTRE
|
||||
*/
|
||||
if(SORT_IS_THREADED(msgmap))
|
||||
refresh_sort(stream, msgmap, SRT_NON);
|
||||
@ -423,8 +423,8 @@ Index: alpine-2.11/alpine/mailcmd.c
|
||||
+ kolapse_thread(state, stream, msgmap, '[', 0);
|
||||
}
|
||||
else{
|
||||
if(del_count)
|
||||
@@ -6945,7 +6964,7 @@ select_by_current(struct pine *state, MS
|
||||
if(del_count){
|
||||
@@ -7090,7 +7109,7 @@ select_by_current(struct pine *state, MS
|
||||
* Maybe it makes sense to zoom after a select but not after a colon
|
||||
* command even though they are very similar.
|
||||
*/
|
||||
@ -433,7 +433,7 @@ Index: alpine-2.11/alpine/mailcmd.c
|
||||
}
|
||||
else{
|
||||
if((all_selected =
|
||||
@@ -7001,7 +7020,7 @@ select_by_current(struct pine *state, MS
|
||||
@@ -7146,7 +7165,7 @@ select_by_current(struct pine *state, MS
|
||||
----*/
|
||||
int
|
||||
apply_command(struct pine *state, MAILSTREAM *stream, MSGNO_S *msgmap,
|
||||
@ -442,7 +442,7 @@ Index: alpine-2.11/alpine/mailcmd.c
|
||||
{
|
||||
int i = 8, /* number of static entries in sel_opts3 */
|
||||
rv = 0,
|
||||
@@ -7153,9 +7172,19 @@ apply_command(struct pine *state, MAILST
|
||||
@@ -7305,9 +7324,19 @@ apply_command(struct pine *state, MAILST
|
||||
collapse_or_expand(state, stream, msgmap,
|
||||
F_ON(F_SLASH_COLL_ENTIRE, ps_global)
|
||||
? 0L
|
||||
@ -463,7 +463,7 @@ Index: alpine-2.11/alpine/mailcmd.c
|
||||
case ':' :
|
||||
select_thread_stmp(state, stream, msgmap);
|
||||
break;
|
||||
@@ -9014,10 +9043,10 @@ Args: state -- pine state pointer
|
||||
@@ -9171,10 +9200,10 @@ Args: state -- pine state pointer
|
||||
Returns 0 if it was cancelled, 1 otherwise.
|
||||
----*/
|
||||
int
|
||||
@ -476,7 +476,7 @@ Index: alpine-2.11/alpine/mailcmd.c
|
||||
int deefault = 'a', retval = 1;
|
||||
HelpType help;
|
||||
ESCKEY_S sorts[14];
|
||||
@@ -9050,17 +9079,26 @@ select_sort(struct pine *state, int ql,
|
||||
@@ -9207,17 +9236,26 @@ select_sort(struct pine *state, int ql,
|
||||
strncpy(prompt, _("Choose type of sort, or 'R' to reverse current sort : "),
|
||||
sizeof(prompt));
|
||||
|
||||
@ -514,7 +514,7 @@ Index: alpine-2.11/alpine/mailcmd.c
|
||||
}
|
||||
|
||||
sorts[i].ch = 'r';
|
||||
@@ -9084,8 +9122,17 @@ select_sort(struct pine *state, int ql,
|
||||
@@ -9241,8 +9279,17 @@ select_sort(struct pine *state, int ql,
|
||||
state->mangled_body = 1; /* signal screen's changed */
|
||||
if(s == 'r')
|
||||
*rev = !mn_get_revsort(state->msgmap);
|
||||
@ -533,7 +533,7 @@ Index: alpine-2.11/alpine/mailcmd.c
|
||||
|
||||
if(F_ON(F_SHOW_SORT, ps_global))
|
||||
ps_global->mangled_header = 1;
|
||||
@@ -9470,3 +9517,378 @@ flag_submenu(mc)
|
||||
@@ -9627,3 +9674,378 @@ flag_submenu(mc)
|
||||
}
|
||||
|
||||
#endif /* _WINDOWS */
|
||||
@ -912,11 +912,11 @@ Index: alpine-2.11/alpine/mailcmd.c
|
||||
+ expand_thread(state, stream, msgmap, 0);
|
||||
+}
|
||||
+
|
||||
Index: alpine-2.11/alpine/mailcmd.h
|
||||
Index: alpine-2.20/alpine/mailcmd.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/alpine/mailcmd.h
|
||||
+++ alpine-2.11/alpine/mailcmd.h
|
||||
@@ -84,7 +84,7 @@ char *broach_folder(int, int, int *,
|
||||
--- alpine-2.20.orig/alpine/mailcmd.h
|
||||
+++ alpine-2.20/alpine/mailcmd.h
|
||||
@@ -87,7 +87,7 @@ char *broach_folder(int, int, int *,
|
||||
int ask_mailbox_reopen(struct pine *, int *);
|
||||
void visit_folder(struct pine *, char *, CONTEXT_S *, MAILSTREAM *, unsigned long);
|
||||
int select_by_current(struct pine *, MSGNO_S *, CmdWhere);
|
||||
@ -925,7 +925,7 @@ Index: alpine-2.11/alpine/mailcmd.h
|
||||
char **choose_list_of_keywords(void);
|
||||
char *choose_a_charset(int);
|
||||
char **choose_list_of_charsets(void);
|
||||
@@ -102,6 +102,15 @@ int any_selected_callback(int, long)
|
||||
@@ -105,6 +105,15 @@ int any_selected_callback(int, long)
|
||||
int flag_callback(int, long);
|
||||
MPopup *flag_submenu(MESSAGECACHE *);
|
||||
#endif
|
||||
@ -942,10 +942,10 @@ Index: alpine-2.11/alpine/mailcmd.h
|
||||
+int expand_this_thread(struct pine *, MAILSTREAM *, MSGNO_S *, int, int);
|
||||
|
||||
#endif /* PINE_MAILCMD_INCLUDED */
|
||||
Index: alpine-2.11/alpine/mailindx.c
|
||||
Index: alpine-2.20/alpine/mailindx.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/alpine/mailindx.c
|
||||
+++ alpine-2.11/alpine/mailindx.c
|
||||
--- alpine-2.20.orig/alpine/mailindx.c
|
||||
+++ alpine-2.20/alpine/mailindx.c
|
||||
@@ -561,6 +561,7 @@ index_lister(struct pine *state, CONTEXT
|
||||
|
||||
/*---------- Scroll line up ----------*/
|
||||
@ -1102,7 +1102,7 @@ Index: alpine-2.11/alpine/mailindx.c
|
||||
/* increment current */
|
||||
if(cmd == MC_DELETE){
|
||||
advance_cur_after_delete(state, stream, msgmap,
|
||||
@@ -2675,6 +2773,7 @@ top_ent_calc(MAILSTREAM *stream, MSGNO_S
|
||||
@@ -2673,6 +2771,7 @@ top_ent_calc(MAILSTREAM *stream, MSGNO_S
|
||||
n = mn_raw2m(msgs, thrd->rawno);
|
||||
|
||||
while(thrd){
|
||||
@ -1110,7 +1110,7 @@ Index: alpine-2.11/alpine/mailindx.c
|
||||
if(!msgline_hidden(stream, msgs, n, 0)
|
||||
&& (++m % lines_per_page) == 1L)
|
||||
t = n;
|
||||
@@ -2743,11 +2842,12 @@ top_ent_calc(MAILSTREAM *stream, MSGNO_S
|
||||
@@ -2741,11 +2840,12 @@ top_ent_calc(MAILSTREAM *stream, MSGNO_S
|
||||
|
||||
/* n is the end of this thread */
|
||||
while(thrd){
|
||||
@ -1127,7 +1127,7 @@ Index: alpine-2.11/alpine/mailindx.c
|
||||
else
|
||||
thrd = NULL;
|
||||
}
|
||||
@@ -2855,7 +2955,7 @@ warn_other_cmds(void)
|
||||
@@ -2853,7 +2953,7 @@ warn_other_cmds(void)
|
||||
|
||||
void
|
||||
thread_command(struct pine *state, MAILSTREAM *stream, MSGNO_S *msgmap,
|
||||
@ -1136,7 +1136,7 @@ Index: alpine-2.11/alpine/mailindx.c
|
||||
{
|
||||
PINETHRD_S *thrd = NULL;
|
||||
unsigned long rawno, save_branch;
|
||||
@@ -2904,7 +3004,7 @@ thread_command(struct pine *state, MAILS
|
||||
@@ -2902,7 +3002,7 @@ thread_command(struct pine *state, MAILS
|
||||
cancel_busy_cue(0);
|
||||
|
||||
(void ) apply_command(state, stream, msgmap, preloadkeystroke, flags,
|
||||
@ -1145,7 +1145,7 @@ Index: alpine-2.11/alpine/mailindx.c
|
||||
|
||||
/* restore the original flags */
|
||||
copy_lflags(stream, msgmap, MN_STMP, MN_SLCT);
|
||||
@@ -3398,7 +3498,7 @@ index_sort_callback(set, order)
|
||||
@@ -3396,7 +3496,7 @@ index_sort_callback(set, order)
|
||||
if(set){
|
||||
sort_folder(ps_global->mail_stream, ps_global->msgmap,
|
||||
order & 0x000000ff,
|
||||
@ -1154,10 +1154,10 @@ Index: alpine-2.11/alpine/mailindx.c
|
||||
mswin_beginupdate();
|
||||
update_titlebar_message();
|
||||
update_titlebar_status();
|
||||
Index: alpine-2.11/alpine/mailindx.h
|
||||
Index: alpine-2.20/alpine/mailindx.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/alpine/mailindx.h
|
||||
+++ alpine-2.11/alpine/mailindx.h
|
||||
--- alpine-2.20.orig/alpine/mailindx.h
|
||||
+++ alpine-2.20/alpine/mailindx.h
|
||||
@@ -103,7 +103,7 @@ int truncate_subj_and_from_strings(voi
|
||||
void paint_index_hline(MAILSTREAM *, long, ICE_S *);
|
||||
void setup_index_state(int);
|
||||
@ -1167,11 +1167,11 @@ Index: alpine-2.11/alpine/mailindx.h
|
||||
COLOR_PAIR *apply_rev_color(COLOR_PAIR *, int);
|
||||
#ifdef _WINDOWS
|
||||
int index_sort_callback(int, long);
|
||||
Index: alpine-2.11/alpine/mailview.c
|
||||
Index: alpine-2.20/alpine/mailview.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/alpine/mailview.c
|
||||
+++ alpine-2.11/alpine/mailview.c
|
||||
@@ -3364,6 +3364,52 @@ scrolltool(SCROLL_S *sparms)
|
||||
--- alpine-2.20.orig/alpine/mailview.c
|
||||
+++ alpine-2.20/alpine/mailview.c
|
||||
@@ -3369,6 +3369,52 @@ scrolltool(SCROLL_S *sparms)
|
||||
print_to_printer(sparms);
|
||||
break;
|
||||
|
||||
@ -1224,10 +1224,10 @@ Index: alpine-2.11/alpine/mailview.c
|
||||
|
||||
/* ------- First handle on Line ------ */
|
||||
case MC_GOTOBOL :
|
||||
Index: alpine-2.11/alpine/roleconf.c
|
||||
Index: alpine-2.20/alpine/roleconf.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/alpine/roleconf.c
|
||||
+++ alpine-2.11/alpine/roleconf.c
|
||||
--- alpine-2.20.orig/alpine/roleconf.c
|
||||
+++ alpine-2.20/alpine/roleconf.c
|
||||
@@ -4478,11 +4478,11 @@ role_config_edit_screen(struct pine *ps,
|
||||
ctmp->tool = role_sort_tool;
|
||||
ctmp->valoffset = rindent;
|
||||
@ -1269,10 +1269,10 @@ Index: alpine-2.11/alpine/roleconf.c
|
||||
(*result)->action->sort_is_set = 1;
|
||||
(*result)->action->sortorder = def_sort;
|
||||
(*result)->action->revsort = (def_sort_rev ? 1 : 0);
|
||||
Index: alpine-2.11/alpine/setup.c
|
||||
Index: alpine-2.20/alpine/setup.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/alpine/setup.c
|
||||
+++ alpine-2.11/alpine/setup.c
|
||||
--- alpine-2.20.orig/alpine/setup.c
|
||||
+++ alpine-2.20/alpine/setup.c
|
||||
@@ -258,7 +258,7 @@ option_screen(struct pine *ps, int edit_
|
||||
ctmpa->flags |= CF_NOSELECT;
|
||||
ctmpa->value = cpystr("--- ----------------------");
|
||||
@ -1338,7 +1338,7 @@ Index: alpine-2.11/alpine/setup.c
|
||||
else if(vtmp == &ps->vars[V_USE_ONLY_DOMAIN_NAME]){ /* yesno case */
|
||||
ctmpa->keymenu = &config_yesno_keymenu;
|
||||
ctmpa->tool = yesno_tool;
|
||||
@@ -464,6 +513,15 @@ option_screen(struct pine *ps, int edit_
|
||||
@@ -465,6 +514,15 @@ option_screen(struct pine *ps, int edit_
|
||||
}
|
||||
}
|
||||
|
||||
@ -1354,10 +1354,10 @@ Index: alpine-2.11/alpine/setup.c
|
||||
treat_color_vars_as_text = 0;
|
||||
free_saved_config(ps, &vsave, expose_hidden_config);
|
||||
#ifdef _WINDOWS
|
||||
Index: alpine-2.11/pith/conf.c
|
||||
Index: alpine-2.20/pith/conf.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/conf.c
|
||||
+++ alpine-2.11/pith/conf.c
|
||||
--- alpine-2.20.orig/pith/conf.c
|
||||
+++ alpine-2.20/pith/conf.c
|
||||
@@ -206,6 +206,8 @@ CONF_TXT_T cf_text_fcc_name_rule[] = "De
|
||||
|
||||
CONF_TXT_T cf_text_sort_key[] = "Sets presentation order of messages in Index. Choices:\n# Subject, From, Arrival, Date, Size, To, Cc, OrderedSubj, Score, and Thread.\n# Order may be reversed by appending /Reverse. Default: \"Arrival\".";
|
||||
@ -1367,7 +1367,7 @@ Index: alpine-2.11/pith/conf.c
|
||||
CONF_TXT_T cf_text_addrbook_sort_rule[] = "Sets presentation order of address book entries. Choices: dont-sort,\n# fullname-with-lists-last, fullname, nickname-with-lists-last, nickname\n# Default: \"fullname-with-lists-last\".";
|
||||
|
||||
CONF_TXT_T cf_text_folder_sort_rule[] = "Sets presentation order of folder list entries. Choices: alphabetical,\n# alpha-with-dirs-last, alpha-with-dirs-first.\n# Default: \"alpha-with-directories-last\".";
|
||||
@@ -522,6 +524,8 @@ static struct variable variables[] = {
|
||||
@@ -524,6 +526,8 @@ static struct variable variables[] = {
|
||||
NULL, cf_text_fcc_name_rule},
|
||||
{"sort-key", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0,
|
||||
NULL, cf_text_sort_key},
|
||||
@ -1376,7 +1376,7 @@ Index: alpine-2.11/pith/conf.c
|
||||
{"addrbook-sort-rule", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0,
|
||||
"Address Book Sort Rule", cf_text_addrbook_sort_rule},
|
||||
{"folder-sort-rule", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0,
|
||||
@@ -1572,7 +1576,7 @@ init_vars(struct pine *ps, void (*cmds_f
|
||||
@@ -1576,7 +1580,7 @@ init_vars(struct pine *ps, void (*cmds_f
|
||||
register struct variable *vars = ps->vars;
|
||||
int obs_header_in_reply = 0, /* the obs_ variables are to */
|
||||
obs_old_style_reply = 0, /* support backwards compatibility */
|
||||
@ -1385,7 +1385,7 @@ Index: alpine-2.11/pith/conf.c
|
||||
long rvl;
|
||||
PINERC_S *fixedprc = NULL;
|
||||
FeatureLevel obs_feature_level;
|
||||
@@ -1597,6 +1601,7 @@ init_vars(struct pine *ps, void (*cmds_f
|
||||
@@ -1601,6 +1605,7 @@ init_vars(struct pine *ps, void (*cmds_f
|
||||
GLO_FEATURE_LEVEL = cpystr("sappling");
|
||||
GLO_OLD_STYLE_REPLY = cpystr(DF_OLD_STYLE_REPLY);
|
||||
GLO_SORT_KEY = cpystr(DF_SORT_KEY);
|
||||
@ -1393,7 +1393,7 @@ Index: alpine-2.11/pith/conf.c
|
||||
GLO_SAVED_MSG_NAME_RULE = cpystr(DF_SAVED_MSG_NAME_RULE);
|
||||
GLO_FCC_RULE = cpystr(DF_FCC_RULE);
|
||||
GLO_AB_SORT_RULE = cpystr(DF_AB_SORT_RULE);
|
||||
@@ -2505,7 +2510,7 @@ init_vars(struct pine *ps, void (*cmds_f
|
||||
@@ -2517,7 +2522,7 @@ init_vars(struct pine *ps, void (*cmds_f
|
||||
set_current_val(&vars[V_ARCHIVED_FOLDERS], TRUE, TRUE);
|
||||
set_current_val(&vars[V_INCOMING_FOLDERS], TRUE, TRUE);
|
||||
set_current_val(&vars[V_SORT_KEY], TRUE, TRUE);
|
||||
@ -1402,7 +1402,7 @@ Index: alpine-2.11/pith/conf.c
|
||||
snprintf(tmp_20k_buf, SIZEOF_20KBUF, "Sort type \"%.200s\" is invalid", VAR_SORT_KEY);
|
||||
init_error(ps, SM_ORDER | SM_DING, 3, 5, tmp_20k_buf);
|
||||
ps->def_sort = SortArrival;
|
||||
@@ -2514,6 +2519,17 @@ init_vars(struct pine *ps, void (*cmds_f
|
||||
@@ -2526,6 +2531,17 @@ init_vars(struct pine *ps, void (*cmds_f
|
||||
else
|
||||
ps->def_sort_rev = def_sort_rev;
|
||||
|
||||
@ -1420,7 +1420,7 @@ Index: alpine-2.11/pith/conf.c
|
||||
cur_rule_value(&vars[V_SAVED_MSG_NAME_RULE], TRUE, TRUE);
|
||||
{NAMEVAL_S *v; int i;
|
||||
for(i = 0; (v = save_msg_rules(i)); i++)
|
||||
@@ -2937,6 +2953,8 @@ feature_list(int index)
|
||||
@@ -2949,6 +2965,8 @@ feature_list(int index)
|
||||
F_COLOR_LINE_IMPORTANT, h_config_color_thrd_import, PREF_INDX, 0},
|
||||
{"thread-sorts-by-arrival", "Thread Sorts by Arrival",
|
||||
F_THREAD_SORTS_BY_ARRIVAL, h_config_thread_sorts_by_arrival, PREF_INDX, 0},
|
||||
@ -1429,7 +1429,7 @@ Index: alpine-2.11/pith/conf.c
|
||||
|
||||
/* Viewer prefs */
|
||||
{"enable-msg-view-addresses", "Enable Message View Address Links",
|
||||
@@ -7619,6 +7637,8 @@ config_help(int var, int feature)
|
||||
@@ -7685,6 +7703,8 @@ config_help(int var, int feature)
|
||||
return(h_config_fcc_rule);
|
||||
case V_SORT_KEY :
|
||||
return(h_config_sort_key);
|
||||
@ -1438,10 +1438,10 @@ Index: alpine-2.11/pith/conf.c
|
||||
case V_AB_SORT_RULE :
|
||||
return(h_config_ab_sort_rule);
|
||||
case V_FLD_SORT_RULE :
|
||||
Index: alpine-2.11/pith/conf.h
|
||||
Index: alpine-2.20/pith/conf.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/conf.h
|
||||
+++ alpine-2.11/pith/conf.h
|
||||
--- alpine-2.20.orig/pith/conf.h
|
||||
+++ alpine-2.20/pith/conf.h
|
||||
@@ -144,6 +144,9 @@
|
||||
#define VAR_SORT_KEY vars[V_SORT_KEY].current_val.p
|
||||
#define GLO_SORT_KEY vars[V_SORT_KEY].global_val.p
|
||||
@ -1452,10 +1452,10 @@ Index: alpine-2.11/pith/conf.h
|
||||
#define VAR_AB_SORT_RULE vars[V_AB_SORT_RULE].current_val.p
|
||||
#define GLO_AB_SORT_RULE vars[V_AB_SORT_RULE].global_val.p
|
||||
#define VAR_FLD_SORT_RULE vars[V_FLD_SORT_RULE].current_val.p
|
||||
Index: alpine-2.11/pith/conftype.h
|
||||
Index: alpine-2.20/pith/conftype.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/conftype.h
|
||||
+++ alpine-2.11/pith/conftype.h
|
||||
--- alpine-2.20.orig/pith/conftype.h
|
||||
+++ alpine-2.20/pith/conftype.h
|
||||
@@ -59,6 +59,7 @@ typedef enum { V_PERSONAL_NAME = 0
|
||||
, V_SAVED_MSG_NAME_RULE
|
||||
, V_FCC_RULE
|
||||
@ -1464,7 +1464,7 @@ Index: alpine-2.11/pith/conftype.h
|
||||
, V_AB_SORT_RULE
|
||||
, V_FLD_SORT_RULE
|
||||
, V_GOTO_DEFAULT_RULE
|
||||
@@ -509,6 +510,7 @@ typedef enum {
|
||||
@@ -511,6 +512,7 @@ typedef enum {
|
||||
F_QUELL_TIMEZONE,
|
||||
F_QUELL_USERAGENT,
|
||||
F_COLOR_LINE_IMPORTANT,
|
||||
@ -1472,17 +1472,17 @@ Index: alpine-2.11/pith/conftype.h
|
||||
F_SLASH_COLL_ENTIRE,
|
||||
F_ENABLE_FULL_HDR_AND_TEXT,
|
||||
F_QUELL_FULL_HDR_RESET,
|
||||
@@ -716,5 +718,6 @@ typedef struct smime_stuff {
|
||||
@@ -766,5 +768,6 @@ typedef struct smime_stuff {
|
||||
|
||||
/* exported protoypes */
|
||||
|
||||
+#define DF_THREAD_SORT_KEY "thread"
|
||||
|
||||
#endif /* PITH_CONFTYPE_INCLUDED */
|
||||
Index: alpine-2.11/pith/flag.c
|
||||
Index: alpine-2.20/pith/flag.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/flag.c
|
||||
+++ alpine-2.11/pith/flag.c
|
||||
--- alpine-2.20.orig/pith/flag.c
|
||||
+++ alpine-2.20/pith/flag.c
|
||||
@@ -594,14 +594,16 @@ set_lflag(MAILSTREAM *stream, MSGNO_S *m
|
||||
|
||||
was_invisible = (pelt->hidden || pelt->colhid) ? 1 : 0;
|
||||
@ -1502,10 +1502,10 @@ Index: alpine-2.11/pith/flag.c
|
||||
}
|
||||
|
||||
if(topthrd){
|
||||
Index: alpine-2.11/pith/indxtype.h
|
||||
Index: alpine-2.20/pith/indxtype.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/indxtype.h
|
||||
+++ alpine-2.11/pith/indxtype.h
|
||||
--- alpine-2.20.orig/pith/indxtype.h
|
||||
+++ alpine-2.20/pith/indxtype.h
|
||||
@@ -76,7 +76,7 @@ typedef enum {iNothing, iStatus, iFStatu
|
||||
iKey, iKeyInit,
|
||||
iPrefDate, iPrefTime, iPrefDateTime,
|
||||
@ -1515,10 +1515,10 @@ Index: alpine-2.11/pith/indxtype.h
|
||||
iNewsAndTo, iToAndNews, iNewsAndRecips, iRecipsAndNews,
|
||||
iFromTo, iFromToNotNews, iFrom, iTo, iSender, iCc, iNews, iRecips,
|
||||
iCurNews, iArrow,
|
||||
Index: alpine-2.11/pith/mailindx.c
|
||||
Index: alpine-2.20/pith/mailindx.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/mailindx.c
|
||||
+++ alpine-2.11/pith/mailindx.c
|
||||
--- alpine-2.20.orig/pith/mailindx.c
|
||||
+++ alpine-2.20/pith/mailindx.c
|
||||
@@ -228,6 +228,7 @@ init_index_format(char *format, INDEX_CO
|
||||
case iSTime:
|
||||
case iKSize:
|
||||
@ -1624,7 +1624,7 @@ Index: alpine-2.11/pith/mailindx.c
|
||||
/* 0 ... 9999 */
|
||||
if((l = fetch_size(idata)) < 10*1000L)
|
||||
snprintf(str, sizeof(str), "(%lu)", l);
|
||||
@@ -5412,10 +5437,8 @@ subj_str(INDEXDATA_S *idata, char *str,
|
||||
@@ -5413,10 +5438,8 @@ subj_str(INDEXDATA_S *idata, char *str,
|
||||
|
||||
if(pith_opt_condense_thread_cue)
|
||||
width = (*pith_opt_condense_thread_cue)(thd, ice, &str, &strsize, width,
|
||||
@ -1637,7 +1637,7 @@ Index: alpine-2.11/pith/mailindx.c
|
||||
|
||||
/*
|
||||
* width is < available strsize and
|
||||
@@ -6043,11 +6066,8 @@ from_str(IndexColType ctype, INDEXDATA_S
|
||||
@@ -6044,11 +6067,8 @@ from_str(IndexColType ctype, INDEXDATA_S
|
||||
border = str + width;
|
||||
if(pith_opt_condense_thread_cue)
|
||||
width = (*pith_opt_condense_thread_cue)(thd, ice, &str, &strsize, width,
|
||||
@ -1651,10 +1651,10 @@ Index: alpine-2.11/pith/mailindx.c
|
||||
fptr = str;
|
||||
|
||||
if(thd)
|
||||
Index: alpine-2.11/pith/pattern.c
|
||||
Index: alpine-2.20/pith/pattern.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/pattern.c
|
||||
+++ alpine-2.11/pith/pattern.c
|
||||
--- alpine-2.20.orig/pith/pattern.c
|
||||
+++ alpine-2.20/pith/pattern.c
|
||||
@@ -1756,7 +1756,7 @@ parse_action_slash(char *str, ACTION_S *
|
||||
SortOrder def_sort;
|
||||
int def_sort_rev;
|
||||
@ -1664,11 +1664,11 @@ Index: alpine-2.11/pith/pattern.c
|
||||
action->sort_is_set = 1;
|
||||
action->sortorder = def_sort;
|
||||
action->revsort = (def_sort_rev ? 1 : 0);
|
||||
Index: alpine-2.11/pith/pine.hlp
|
||||
Index: alpine-2.20/pith/pine.hlp
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/pine.hlp
|
||||
+++ alpine-2.11/pith/pine.hlp
|
||||
@@ -3596,6 +3596,7 @@ There are also additional details on
|
||||
--- alpine-2.20.orig/pith/pine.hlp
|
||||
+++ alpine-2.20/pith/pine.hlp
|
||||
@@ -3866,6 +3866,7 @@ There are also additional details on
|
||||
<li><a href="h_config_signature_file">OPTION: <!--#echo var="VAR_signature-file"--></a>
|
||||
<li><a href="h_config_smtp_server">OPTION: <!--#echo var="VAR_smtp-server"--></a>
|
||||
<li><a href="h_config_sort_key">OPTION: <!--#echo var="VAR_sort-key"--></a>
|
||||
@ -1676,7 +1676,7 @@ Index: alpine-2.11/pith/pine.hlp
|
||||
<li><a href="h_config_speller">OPTION: <!--#echo var="VAR_speller"--></a>
|
||||
<li><a href="h_config_sshcmd">OPTION: <!--#echo var="VAR_ssh-command"--></a>
|
||||
<li><a href="h_config_ssh_open_timeo">OPTION: <!--#echo var="VAR_ssh-open-timeout"--></a>
|
||||
@@ -5528,6 +5529,163 @@ the names of the carbon copy addresses o
|
||||
@@ -5802,6 +5803,163 @@ the names of the carbon copy addresses o
|
||||
<End of help on this topic>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1840,7 +1840,7 @@ Index: alpine-2.11/pith/pine.hlp
|
||||
======= h_index_cmd_whereis =======
|
||||
<HTML>
|
||||
<HEAD>
|
||||
@@ -18894,6 +19052,14 @@ The progression of sizes used looks like
|
||||
@@ -19184,6 +19342,14 @@ The progression of sizes used looks like
|
||||
<P>
|
||||
</DD>
|
||||
|
||||
@ -1855,7 +1855,7 @@ Index: alpine-2.11/pith/pine.hlp
|
||||
<DT>SIZENARROW</DT>
|
||||
<DD>
|
||||
This token represents the total size, in bytes, of the message.
|
||||
@@ -22259,6 +22425,45 @@ command, then it will not be re-sorted u
|
||||
@@ -22655,6 +22821,45 @@ command, then it will not be re-sorted u
|
||||
<End of help on this topic>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1901,7 +1901,7 @@ Index: alpine-2.11/pith/pine.hlp
|
||||
====== h_config_other_startup =====
|
||||
<HTML>
|
||||
<HEAD>
|
||||
@@ -30089,6 +30294,23 @@ Reply Use, Forward Use, and Compose Use.
|
||||
@@ -30485,6 +30690,23 @@ Reply Use, Forward Use, and Compose Use.
|
||||
<End of help on this topic>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -1925,10 +1925,10 @@ Index: alpine-2.11/pith/pine.hlp
|
||||
====== h_config_news_cross_deletes =====
|
||||
<HTML>
|
||||
<HEAD>
|
||||
Index: alpine-2.11/pith/sort.c
|
||||
Index: alpine-2.20/pith/sort.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/sort.c
|
||||
+++ alpine-2.11/pith/sort.c
|
||||
--- alpine-2.20.orig/pith/sort.c
|
||||
+++ alpine-2.20/pith/sort.c
|
||||
@@ -91,7 +91,7 @@ Args: msgmap --
|
||||
----*/
|
||||
void
|
||||
@ -2016,10 +2016,10 @@ Index: alpine-2.11/pith/sort.c
|
||||
- the_sort_order, sort_is_rev, flags);
|
||||
+ the_sort_order, sort_is_rev, flags, 1);
|
||||
}
|
||||
Index: alpine-2.11/pith/sort.h
|
||||
Index: alpine-2.20/pith/sort.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/sort.h
|
||||
+++ alpine-2.11/pith/sort.h
|
||||
--- alpine-2.20.orig/pith/sort.h
|
||||
+++ alpine-2.20/pith/sort.h
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
|
||||
@ -2040,10 +2040,10 @@ Index: alpine-2.11/pith/sort.h
|
||||
void reset_sort_order(unsigned);
|
||||
|
||||
|
||||
Index: alpine-2.11/pith/state.c
|
||||
Index: alpine-2.20/pith/state.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/state.c
|
||||
+++ alpine-2.11/pith/state.c
|
||||
--- alpine-2.20.orig/pith/state.c
|
||||
+++ alpine-2.20/pith/state.c
|
||||
@@ -74,6 +74,7 @@ new_pine_struct(void)
|
||||
|
||||
p = (struct pine *)fs_get(sizeof (struct pine));
|
||||
@ -2052,10 +2052,10 @@ Index: alpine-2.11/pith/state.c
|
||||
p->def_sort = SortArrival;
|
||||
p->sort_types[0] = SortSubject;
|
||||
p->sort_types[1] = SortArrival;
|
||||
Index: alpine-2.11/pith/state.h
|
||||
Index: alpine-2.20/pith/state.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/state.h
|
||||
+++ alpine-2.11/pith/state.h
|
||||
--- alpine-2.20.orig/pith/state.h
|
||||
+++ alpine-2.20/pith/state.h
|
||||
@@ -137,6 +137,8 @@ struct pine {
|
||||
unsigned unseen_in_view:1;
|
||||
unsigned start_in_context:1; /* start fldr_scrn in current cntxt */
|
||||
@ -2065,7 +2065,7 @@ Index: alpine-2.11/pith/state.h
|
||||
unsigned restricted:1;
|
||||
|
||||
unsigned tcptimeout:1; /* a tcp timeout is in progress */
|
||||
@@ -288,6 +290,9 @@ struct pine {
|
||||
@@ -291,6 +293,9 @@ struct pine {
|
||||
EditWhich ew_for_srch_take;
|
||||
|
||||
SortOrder def_sort, /* Default sort type */
|
||||
@ -2075,10 +2075,10 @@ Index: alpine-2.11/pith/state.h
|
||||
sort_types[22];
|
||||
|
||||
int preserve;
|
||||
Index: alpine-2.11/pith/thread.c
|
||||
Index: alpine-2.20/pith/thread.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/thread.c
|
||||
+++ alpine-2.11/pith/thread.c
|
||||
--- alpine-2.20.orig/pith/thread.c
|
||||
+++ alpine-2.20/pith/thread.c
|
||||
@@ -30,12 +30,18 @@ static char rcsid[] = "$Id: thread.c 942
|
||||
#include "../pith/mailcmd.h"
|
||||
#include "../pith/ablookup.h"
|
||||
@ -3127,10 +3127,10 @@ Index: alpine-2.11/pith/thread.c
|
||||
+ || sort == SortSize;
|
||||
+}
|
||||
+
|
||||
Index: alpine-2.11/pith/thread.h
|
||||
Index: alpine-2.20/pith/thread.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/thread.h
|
||||
+++ alpine-2.11/pith/thread.h
|
||||
--- alpine-2.20.orig/pith/thread.h
|
||||
+++ alpine-2.20/pith/thread.h
|
||||
@@ -37,6 +37,7 @@ typedef struct pine_thrd {
|
||||
unsigned long nextthd; /* next thread, only tops have this */
|
||||
unsigned long prevthd; /* previous thread, only tops have this */
|
||||
@ -3174,10 +3174,10 @@ Index: alpine-2.11/pith/thread.h
|
||||
+int allowed_thread_key(SortOrder sort);
|
||||
|
||||
#endif /* PITH_THREAD_INCLUDED */
|
||||
Index: alpine-2.11/web/src/alpined.d/alpined.c
|
||||
Index: alpine-2.20/web/src/alpined.d/alpined.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/web/src/alpined.d/alpined.c
|
||||
+++ alpine-2.11/web/src/alpined.d/alpined.c
|
||||
--- alpine-2.20.orig/web/src/alpined.d/alpined.c
|
||||
+++ alpine-2.20/web/src/alpined.d/alpined.c
|
||||
@@ -2755,7 +2755,7 @@ PEConfigCmd(ClientData clientData, Tcl_I
|
||||
init_save_defaults();
|
||||
break;
|
||||
|
@ -6,11 +6,11 @@
|
||||
pith/save.c | 1 +
|
||||
5 files changed, 42 insertions(+)
|
||||
|
||||
Index: alpine-2.11/alpine/mailcmd.c
|
||||
Index: alpine-2.20/alpine/mailcmd.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/alpine/mailcmd.c
|
||||
+++ alpine-2.11/alpine/mailcmd.c
|
||||
@@ -3368,6 +3368,9 @@ save_size_changed_prompt(long msgno, int
|
||||
--- alpine-2.20.orig/alpine/mailcmd.c
|
||||
+++ alpine-2.20/alpine/mailcmd.c
|
||||
@@ -3491,6 +3491,9 @@ save_size_changed_prompt(long msgno, int
|
||||
{-1, 0, NULL, NULL}
|
||||
};
|
||||
|
||||
@ -20,11 +20,11 @@ Index: alpine-2.11/alpine/mailcmd.c
|
||||
if(flags & SSCP_INIT || flags & SSCP_END){
|
||||
if(flags & SSCP_END && possible_corruption)
|
||||
q_status_message(SM_ORDER, 3, 3, "There is possible data corruption, check the results");
|
||||
Index: alpine-2.11/pith/conf.c
|
||||
Index: alpine-2.20/pith/conf.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/conf.c
|
||||
+++ alpine-2.11/pith/conf.c
|
||||
@@ -3123,6 +3123,8 @@ feature_list(int index)
|
||||
--- alpine-2.20.orig/pith/conf.c
|
||||
+++ alpine-2.20/pith/conf.c
|
||||
@@ -3140,6 +3140,8 @@ feature_list(int index)
|
||||
F_FULL_AUTO_EXPUNGE, h_config_full_auto_expunge, PREF_MISC, 0},
|
||||
{"force-arrow-cursor", NULL,
|
||||
F_FORCE_ARROW, h_config_force_arrow, PREF_MISC, 0},
|
||||
@ -33,11 +33,11 @@ Index: alpine-2.11/pith/conf.c
|
||||
{"maildrops-preserve-state", NULL,
|
||||
F_MAILDROPS_PRESERVE_STATE, h_config_maildrops_preserve_state,
|
||||
PREF_MISC, 0},
|
||||
Index: alpine-2.11/pith/conftype.h
|
||||
Index: alpine-2.20/pith/conftype.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/conftype.h
|
||||
+++ alpine-2.11/pith/conftype.h
|
||||
@@ -346,6 +346,7 @@ typedef enum {
|
||||
--- alpine-2.20.orig/pith/conftype.h
|
||||
+++ alpine-2.20/pith/conftype.h
|
||||
@@ -347,6 +347,7 @@ typedef enum {
|
||||
F_FORCE_ARROW,
|
||||
F_PRUNE_USES_ISO,
|
||||
F_ALT_ED_NOW,
|
||||
@ -45,11 +45,11 @@ Index: alpine-2.11/pith/conftype.h
|
||||
F_SHOW_DELAY_CUE,
|
||||
F_CANCEL_CONFIRM,
|
||||
F_AUTO_OPEN_NEXT_UNREAD,
|
||||
Index: alpine-2.11/pith/pine.hlp
|
||||
Index: alpine-2.20/pith/pine.hlp
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/pine.hlp
|
||||
+++ alpine-2.11/pith/pine.hlp
|
||||
@@ -3296,6 +3296,7 @@ There are also additional details on
|
||||
--- alpine-2.20.orig/pith/pine.hlp
|
||||
+++ alpine-2.20/pith/pine.hlp
|
||||
@@ -3565,6 +3565,7 @@ There are also additional details on
|
||||
<li><a href="h_config_full_auto_expunge">FEATURE: <!--#echo var="FEAT_expunge-without-confirm-everywhere"--></a>
|
||||
<li><a href="h_config_no_fcc_attach">FEATURE: <!--#echo var="FEAT_fcc-without-attachments"--></a>
|
||||
<li><a href="h_config_force_arrow">FEATURE: <!--#echo var="FEAT_force-arrow-cursor"--></a>
|
||||
@ -57,7 +57,7 @@ Index: alpine-2.11/pith/pine.hlp
|
||||
<li><a href="h_config_forward_as_attachment">FEATURE: <!--#echo var="FEAT_forward-as-attachment"--></a>
|
||||
<li><a href="h_config_preserve_field">FEATURE: <!--#echo var="FEAT_preserve-original-fields"--></a>
|
||||
<li><a href="h_config_quell_empty_dirs">FEATURE: <!--#echo var="FEAT_quell-empty-directories"--></a>
|
||||
@@ -30787,6 +30788,40 @@ but that is not implemented.
|
||||
@@ -31183,6 +31184,40 @@ but that is not implemented.
|
||||
|
||||
<P>
|
||||
<End of help on this topic>
|
||||
@ -98,10 +98,10 @@ Index: alpine-2.11/pith/pine.hlp
|
||||
</BODY>
|
||||
</HTML>
|
||||
====== h_config_force_low_speed =====
|
||||
Index: alpine-2.11/pith/save.c
|
||||
Index: alpine-2.20/pith/save.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/save.c
|
||||
+++ alpine-2.11/pith/save.c
|
||||
--- alpine-2.20.orig/pith/save.c
|
||||
+++ alpine-2.20/pith/save.c
|
||||
@@ -1157,6 +1157,7 @@ long save_fetch_append_cb(MAILSTREAM *st
|
||||
snprintf(buf, sizeof(buf),
|
||||
"Message to save shrank: source msg # %ld may be saved incorrectly",
|
||||
|
@ -3,10 +3,10 @@
|
||||
pico/search.c | 4 ++++
|
||||
2 files changed, 16 insertions(+)
|
||||
|
||||
Index: alpine-2.11/pico/display.c
|
||||
Index: alpine-2.20/pico/display.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pico/display.c
|
||||
+++ alpine-2.11/pico/display.c
|
||||
--- alpine-2.20.orig/pico/display.c
|
||||
+++ alpine-2.20/pico/display.c
|
||||
@@ -1760,6 +1760,18 @@ mlreplyd(UCS *prompt, UCS *buf, int nbuf
|
||||
|
||||
continue;
|
||||
@ -26,11 +26,11 @@ Index: alpine-2.11/pico/display.c
|
||||
case (CTRL|'G') : /* CTRL-G help */
|
||||
if(term.t_mrow == 0 && km_popped == 0){
|
||||
movecursor(term.t_nrow-2, 0);
|
||||
Index: alpine-2.11/pico/search.c
|
||||
Index: alpine-2.20/pico/search.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pico/search.c
|
||||
+++ alpine-2.11/pico/search.c
|
||||
@@ -76,6 +76,10 @@ N_(" brackets. This string is th
|
||||
--- alpine-2.20.orig/pico/search.c
|
||||
+++ alpine-2.20/pico/search.c
|
||||
@@ -81,6 +81,10 @@ N_(" brackets. This string is th
|
||||
N_("~ Hitting only ~R~e~t~u~r~n or at the prompt will cause the"),
|
||||
N_(" search to be made with the default value."),
|
||||
" ",
|
||||
|
@ -6,22 +6,22 @@
|
||||
imap/src/c-client/mail.h | 4
|
||||
imap/src/osdep/unix/Makefile | 8
|
||||
imap/src/osdep/unix/dummy.c | 48
|
||||
imap/src/osdep/unix/maildir.c | 2638 ++++++++++++++++++++++++++++++++++++++++++
|
||||
imap/src/osdep/unix/maildir.c | 2671 ++++++++++++++++++++++++++++++++++++++++++
|
||||
imap/src/osdep/unix/maildir.h | 226 +++
|
||||
imap/src/osdep/unix/os_cyg.h | 1
|
||||
pith/conf.c | 27
|
||||
pith/conf.c | 30
|
||||
pith/conf.h | 4
|
||||
pith/conftype.h | 6
|
||||
pith/init.c | 3
|
||||
pith/pattern.c | 26
|
||||
pith/pattern.c | 30
|
||||
pith/pine.hlp | 139 ++
|
||||
pith/send.c | 7
|
||||
17 files changed, 3293 insertions(+), 15 deletions(-)
|
||||
pith/send.c | 10
|
||||
17 files changed, 3334 insertions(+), 17 deletions(-)
|
||||
|
||||
Index: alpine-2.11/README.maildir
|
||||
Index: alpine-2.20/README.maildir
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ alpine-2.11/README.maildir
|
||||
+++ alpine-2.20/README.maildir
|
||||
@@ -0,0 +1,149 @@
|
||||
+---------------------------------------
|
||||
+
|
||||
@ -172,27 +172,27 @@ Index: alpine-2.11/README.maildir
|
||||
+point to the same place.
|
||||
+
|
||||
+Last Updated May 28, 2011
|
||||
Index: alpine-2.11/alpine/alpine.c
|
||||
Index: alpine-2.20/alpine/alpine.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/alpine/alpine.c
|
||||
+++ alpine-2.11/alpine/alpine.c
|
||||
@@ -558,6 +558,11 @@ main(int argc, char **argv)
|
||||
--- alpine-2.20.orig/alpine/alpine.c
|
||||
+++ alpine-2.20/alpine/alpine.c
|
||||
@@ -560,6 +560,11 @@ main(int argc, char **argv)
|
||||
if(F_ON(F_MAILDROPS_PRESERVE_STATE, ps_global))
|
||||
mail_parameters(NULL, SET_SNARFPRESERVE, (void *) TRUE);
|
||||
|
||||
+#ifndef _WINDOWS
|
||||
+ mail_parameters(NULL,SET_COURIERSTYLE,
|
||||
+ (void *)(F_ON(F_COURIER_FOLDER_LIST, ps_global) ? 1 : 0));
|
||||
+ rv = F_ON(F_COURIER_FOLDER_LIST, ps_global) ? 1 : 0;
|
||||
+ mail_parameters(NULL,SET_COURIERSTYLE, (void *) &rv);
|
||||
+#endif
|
||||
+
|
||||
rvl = 0L;
|
||||
if(pine_state->VAR_NNTPRANGE){
|
||||
if(!SVAR_NNTPRANGE(pine_state, rvl, tmp_20k_buf, SIZEOF_20KBUF))
|
||||
Index: alpine-2.11/alpine/confscroll.c
|
||||
Index: alpine-2.20/alpine/confscroll.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/alpine/confscroll.c
|
||||
+++ alpine-2.11/alpine/confscroll.c
|
||||
@@ -5533,6 +5533,12 @@ fix_side_effects(struct pine *ps, struct
|
||||
--- alpine-2.20.orig/alpine/confscroll.c
|
||||
+++ alpine-2.20/alpine/confscroll.c
|
||||
@@ -5556,6 +5556,12 @@ fix_side_effects(struct pine *ps, struct
|
||||
(void *)var->current_val.p);
|
||||
}
|
||||
#endif
|
||||
@ -205,11 +205,11 @@ Index: alpine-2.11/alpine/confscroll.c
|
||||
else if(revert && standard_radio_var(ps, var)){
|
||||
|
||||
cur_rule_value(var, TRUE, FALSE);
|
||||
Index: alpine-2.11/imap/src/c-client/mail.c
|
||||
Index: alpine-2.20/imap/src/c-client/mail.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/imap/src/c-client/mail.c
|
||||
+++ alpine-2.11/imap/src/c-client/mail.c
|
||||
@@ -991,7 +991,7 @@ long mail_create (MAILSTREAM *stream,cha
|
||||
--- alpine-2.20.orig/imap/src/c-client/mail.c
|
||||
+++ alpine-2.20/imap/src/c-client/mail.c
|
||||
@@ -1011,7 +1011,7 @@ long mail_create (MAILSTREAM *stream,cha
|
||||
MAILSTREAM *ts;
|
||||
char *s,*t,tmp[MAILTMPLEN];
|
||||
size_t i;
|
||||
@ -218,7 +218,7 @@ Index: alpine-2.11/imap/src/c-client/mail.c
|
||||
/* never allow names with newlines */
|
||||
if (s = strpbrk (mailbox,"\015\012")) {
|
||||
MM_LOG ("Can't create mailbox with such a name",ERROR);
|
||||
@@ -1015,6 +1015,8 @@ long mail_create (MAILSTREAM *stream,cha
|
||||
@@ -1035,6 +1035,8 @@ long mail_create (MAILSTREAM *stream,cha
|
||||
return NIL;
|
||||
}
|
||||
|
||||
@ -227,7 +227,7 @@ Index: alpine-2.11/imap/src/c-client/mail.c
|
||||
/* see if special driver hack */
|
||||
if ((mailbox[0] == '#') && ((mailbox[1] == 'd') || (mailbox[1] == 'D')) &&
|
||||
((mailbox[2] == 'r') || (mailbox[2] == 'R')) &&
|
||||
@@ -1045,6 +1047,13 @@ long mail_create (MAILSTREAM *stream,cha
|
||||
@@ -1065,6 +1067,13 @@ long mail_create (MAILSTREAM *stream,cha
|
||||
(((*mailbox == '{') || (*mailbox == '#')) &&
|
||||
(stream = mail_open (NIL,mailbox,OP_PROTOTYPE | OP_SILENT))))
|
||||
d = stream->dtb;
|
||||
@ -241,11 +241,11 @@ Index: alpine-2.11/imap/src/c-client/mail.c
|
||||
else if ((*mailbox != '{') && (ts = default_proto (NIL))) d = ts->dtb;
|
||||
else { /* failed utterly */
|
||||
sprintf (tmp,"Can't create mailbox %.80s: indeterminate format",mailbox);
|
||||
Index: alpine-2.11/imap/src/c-client/mail.h
|
||||
Index: alpine-2.20/imap/src/c-client/mail.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/imap/src/c-client/mail.h
|
||||
+++ alpine-2.11/imap/src/c-client/mail.h
|
||||
@@ -353,6 +353,10 @@
|
||||
--- alpine-2.20.orig/imap/src/c-client/mail.h
|
||||
+++ alpine-2.20/imap/src/c-client/mail.h
|
||||
@@ -354,6 +354,10 @@
|
||||
#define SET_SCANCONTENTS (long) 573
|
||||
#define GET_MHALLOWINBOX (long) 574
|
||||
#define SET_MHALLOWINBOX (long) 575
|
||||
@ -256,11 +256,11 @@ Index: alpine-2.11/imap/src/c-client/mail.h
|
||||
|
||||
/* Driver flags */
|
||||
|
||||
Index: alpine-2.11/imap/src/osdep/unix/Makefile
|
||||
Index: alpine-2.20/imap/src/osdep/unix/Makefile
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/imap/src/osdep/unix/Makefile
|
||||
+++ alpine-2.11/imap/src/osdep/unix/Makefile
|
||||
@@ -144,7 +144,7 @@ DEFAULTAUTHENTICATORS=ext md5 pla log
|
||||
--- alpine-2.20.orig/imap/src/osdep/unix/Makefile
|
||||
+++ alpine-2.20/imap/src/osdep/unix/Makefile
|
||||
@@ -147,7 +147,7 @@ DEFAULTAUTHENTICATORS=ext md5 pla log
|
||||
# However, mh needs to be before any sysinbox formats (such as mmdf or unix)
|
||||
# since otherwise INBOX won't work correctly when mh_allow_inbox is set.
|
||||
#
|
||||
@ -269,7 +269,7 @@ Index: alpine-2.11/imap/src/osdep/unix/Makefile
|
||||
CHUNKSIZE=65536
|
||||
|
||||
# Normally no need to change any of these
|
||||
@@ -153,7 +153,7 @@ ARCHIVE=c-client.a
|
||||
@@ -156,7 +156,7 @@ ARCHIVE=c-client.a
|
||||
BINARIES=osdep.o mail.o misc.o newsrc.o smanager.o utf8.o utf8aux.o siglocal.o \
|
||||
dummy.o pseudo.o netmsg.o flstring.o fdstring.o \
|
||||
rfc822.o nntp.o smtp.o imap4r1.o pop3.o \
|
||||
@ -278,7 +278,7 @@ Index: alpine-2.11/imap/src/osdep/unix/Makefile
|
||||
CFLAGS=-g
|
||||
|
||||
CAT=cat
|
||||
@@ -290,7 +290,7 @@ cvx: # Convex
|
||||
@@ -293,7 +293,7 @@ cvx: # Convex
|
||||
|
||||
cyg: # Cygwin - note that most local file drivers don't work!!
|
||||
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
|
||||
@ -287,7 +287,7 @@ Index: alpine-2.11/imap/src/osdep/unix/Makefile
|
||||
SIGTYPE=psx CHECKPW=cyg LOGINPW=cyg CRXTYPE=std \
|
||||
SPOOLDIR=/var \
|
||||
ACTIVEFILE=/usr/local/news/lib/active \
|
||||
@@ -900,7 +900,7 @@ tenex.o: mail.h misc.h osdep.h dummy.h
|
||||
@@ -911,7 +911,7 @@ tenex.o: mail.h misc.h osdep.h dummy.h
|
||||
unix.o: mail.h misc.h osdep.h unix.h pseudo.h dummy.h
|
||||
utf8.o: mail.h misc.h osdep.h utf8.h tmap.c widths.c
|
||||
utf8aux.o: mail.h misc.h osdep.h utf8.h
|
||||
@ -296,11 +296,11 @@ Index: alpine-2.11/imap/src/osdep/unix/Makefile
|
||||
|
||||
# OS-dependent
|
||||
|
||||
Index: alpine-2.11/imap/src/osdep/unix/dummy.c
|
||||
Index: alpine-2.20/imap/src/osdep/unix/dummy.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/imap/src/osdep/unix/dummy.c
|
||||
+++ alpine-2.11/imap/src/osdep/unix/dummy.c
|
||||
@@ -106,13 +106,19 @@ MAILSTREAM dummyproto = {&dummydriver};
|
||||
--- alpine-2.20.orig/imap/src/osdep/unix/dummy.c
|
||||
+++ alpine-2.20/imap/src/osdep/unix/dummy.c
|
||||
@@ -103,13 +103,19 @@ MAILSTREAM dummyproto = {&dummydriver};
|
||||
* Accepts: mailbox name
|
||||
* Returns: our driver if name is valid, NIL otherwise
|
||||
*/
|
||||
@ -323,7 +323,7 @@ Index: alpine-2.11/imap/src/osdep/unix/dummy.c
|
||||
/* indeterminate clearbox INBOX */
|
||||
if (!*s) return &dummydriver;
|
||||
else if (!stat (s,&sbuf)) switch (sbuf.st_mode & S_IFMT) {
|
||||
@@ -121,8 +127,9 @@ DRIVER *dummy_valid (char *name)
|
||||
@@ -118,8 +124,9 @@ DRIVER *dummy_valid (char *name)
|
||||
return &dummydriver;
|
||||
}
|
||||
/* blackbox INBOX does not exist yet */
|
||||
@ -334,7 +334,7 @@ Index: alpine-2.11/imap/src/osdep/unix/dummy.c
|
||||
return NIL;
|
||||
}
|
||||
|
||||
@@ -454,6 +461,8 @@ long dummy_create (MAILSTREAM *stream,ch
|
||||
@@ -452,6 +459,8 @@ long dummy_create (MAILSTREAM *stream,ch
|
||||
{
|
||||
char *s,tmp[MAILTMPLEN];
|
||||
long ret = NIL;
|
||||
@ -343,7 +343,7 @@ Index: alpine-2.11/imap/src/osdep/unix/dummy.c
|
||||
/* validate name */
|
||||
if (!(compare_cstring (mailbox,"INBOX") && (s = dummy_file (tmp,mailbox)))) {
|
||||
sprintf (tmp,"Can't create %.80s: invalid name",mailbox);
|
||||
@@ -519,6 +528,14 @@ long dummy_delete (MAILSTREAM *stream,ch
|
||||
@@ -517,6 +526,14 @@ long dummy_delete (MAILSTREAM *stream,ch
|
||||
{
|
||||
struct stat sbuf;
|
||||
char *s,tmp[MAILTMPLEN];
|
||||
@ -358,7 +358,7 @@ Index: alpine-2.11/imap/src/osdep/unix/dummy.c
|
||||
if (!(s = dummy_file (tmp,mailbox))) {
|
||||
sprintf (tmp,"Can't delete - invalid name: %.80s",s);
|
||||
MM_LOG (tmp,ERROR);
|
||||
@@ -544,12 +561,23 @@ long dummy_delete (MAILSTREAM *stream,ch
|
||||
@@ -542,12 +559,23 @@ long dummy_delete (MAILSTREAM *stream,ch
|
||||
long dummy_rename (MAILSTREAM *stream,char *old,char *newname)
|
||||
{
|
||||
struct stat sbuf;
|
||||
@ -385,7 +385,7 @@ Index: alpine-2.11/imap/src/osdep/unix/dummy.c
|
||||
MM_LOG (mbx,ERROR);
|
||||
return NIL;
|
||||
}
|
||||
@@ -565,14 +593,16 @@ long dummy_rename (MAILSTREAM *stream,ch
|
||||
@@ -563,14 +591,16 @@ long dummy_rename (MAILSTREAM *stream,ch
|
||||
}
|
||||
}
|
||||
/* rename of non-ex INBOX creates dest */
|
||||
@ -404,16 +404,16 @@ Index: alpine-2.11/imap/src/osdep/unix/dummy.c
|
||||
return T; /* return success */
|
||||
}
|
||||
|
||||
Index: alpine-2.11/imap/src/osdep/unix/maildir.c
|
||||
Index: alpine-2.20/imap/src/osdep/unix/maildir.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ alpine-2.11/imap/src/osdep/unix/maildir.c
|
||||
@@ -0,0 +1,2638 @@
|
||||
+++ alpine-2.20/imap/src/osdep/unix/maildir.c
|
||||
@@ -0,0 +1,2671 @@
|
||||
+/*
|
||||
+ * Maildir driver for Alpine 2.00
|
||||
+ * Maildir driver for Alpine 2.20
|
||||
+ *
|
||||
+ * Written by Eduardo Chappa <chappa@gmx.com>
|
||||
+ * Last Update: May 29, 2011.
|
||||
+ * Last Update: June 10, 2014
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
@ -1589,7 +1589,7 @@ Index: alpine-2.11/imap/src/osdep/unix/maildir.c
|
||||
+ char *s, c, err[MAILTMPLEN], tmp[MAILTMPLEN], tmp2[MAILTMPLEN], mbx[MAILTMPLEN];
|
||||
+ int fnlen, create_dir = 0, courier, mv;
|
||||
+ struct stat sbuf;
|
||||
+ long style = (long) maildir_parameters(GET_COURIERSTYLE, NIL);
|
||||
+ long style = *(long *) maildir_parameters(GET_COURIERSTYLE, NIL);
|
||||
+
|
||||
+ courier = IS_COURIER(mailbox);
|
||||
+ strcpy(mbx, mailbox);
|
||||
@ -1817,7 +1817,7 @@ Index: alpine-2.11/imap/src/osdep/unix/maildir.c
|
||||
+
|
||||
+long maildir_append (MAILSTREAM *stream,char *mailbox,append_t af,void *data)
|
||||
+{
|
||||
+ int fd, k;
|
||||
+ int fd, k, done, fail;
|
||||
+ STRING *message;
|
||||
+ char c,*s, *flags, *date;
|
||||
+ char tmp[MAILTMPLEN],file[MAILTMPLEN],path1[MAILTMPLEN],path2[MAILTMPLEN];
|
||||
@ -1825,6 +1825,7 @@ Index: alpine-2.11/imap/src/osdep/unix/maildir.c
|
||||
+ long i, size = 0L, ret = LONGT, f;
|
||||
+ unsigned long uf, ti;
|
||||
+ static unsigned int transact = 0;
|
||||
+ struct stat sbuf;
|
||||
+
|
||||
+ if (!maildir_valid(mailbox)) {
|
||||
+ snprintf (tmp, sizeof(tmp), "Not a valid Maildir mailbox: %s", mailbox);
|
||||
@ -1848,29 +1849,58 @@ Index: alpine-2.11/imap/src/osdep/unix/maildir.c
|
||||
+ if (!(*af)(stream, data, &flags, &date, &message)) return NIL;
|
||||
+
|
||||
+ mm_critical (stream); /* go critical */
|
||||
+ /* call time(0) only once, use transact to distinguish instead */
|
||||
+ ti = time(0);
|
||||
+ do {
|
||||
+ fail = done = 0; /* we have not determined name of message file yet */
|
||||
+ if (!SIZE (message)) { /* guard against zero-length */
|
||||
+ mm_log ("Append of zero-length message",ERROR);
|
||||
+ mm_log ("Append of zero-length message", ERROR);
|
||||
+ ret = NIL;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ if (date && !mail_parse_date(&elt,date)){
|
||||
+ snprintf (tmp, sizeof(tmp), "Bad date in append: %.80s",date);
|
||||
+ mm_log (tmp,ERROR);
|
||||
+ ret = NIL;
|
||||
+ break;
|
||||
+ snprintf (tmp, sizeof(tmp), "Bad date in append: %.80s", date);
|
||||
+ mm_log (tmp, ERROR);
|
||||
+ ret = NIL;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ if(date){
|
||||
+ struct tm tm;
|
||||
+
|
||||
+ tm.tm_sec = elt.seconds;
|
||||
+ tm.tm_min = elt.minutes;
|
||||
+ tm.tm_hour = elt.hours;
|
||||
+ tm.tm_mday = elt.day;
|
||||
+ tm.tm_mon = elt.month - 1;
|
||||
+ tm.tm_year = BASEYEAR + elt.year - 1900;
|
||||
+
|
||||
+ ti = mktime(&tm);
|
||||
+ } else ti = time(0);
|
||||
+
|
||||
+ f = mail_parse_flags (stream,flags,&uf);
|
||||
+ do {
|
||||
+ /* build file name we will use */
|
||||
+ snprintf (file, sizeof(file), "%lu.%d_%09u.%s%s%s%s%s%s",
|
||||
+ snprintf (file, sizeof(file), "%lu.%d_%09u.%s%s%s%s%s%s",
|
||||
+ ti, mypid, transact++, mdlocaldomain, (f ? MDSEP(2) : ""),
|
||||
+ MDFLAG(Draft, f&fDRAFT), MDFLAG(Flagged, f&fFLAGGED),
|
||||
+ MDFLAG(Replied, f&fANSWERED), MDFLAG(Seen, f&fSEEN));
|
||||
+ /* build tmp file name */
|
||||
+ if (maildir_file_path(mailbox, tmp, sizeof(tmp)))
|
||||
+ MSGPATH(path1, tmp, file, Tmp);
|
||||
+ if (maildir_file_path(mailbox, tmp, sizeof(tmp))) /* copy in TMP */
|
||||
+ MSGPATH(path1, tmp, file, Tmp);
|
||||
+ /* build final filename to use */
|
||||
+ if (maildir_file_path(mailbox, tmp, sizeof(tmp)))
|
||||
+ MSGPATH(path2, tmp, file, New); /* copy in NEW */
|
||||
+ if(stat(path1, &sbuf) < 0 && errno == ENOENT
|
||||
+ && stat(path2, &sbuf) < 0 && errno == ENOENT)
|
||||
+ done++;
|
||||
+ else
|
||||
+ fail++;
|
||||
+ if(fail == 1000){
|
||||
+ snprintf (tmp, sizeof(tmp), "Failure to create append message name");
|
||||
+ mm_log (tmp, ERROR);
|
||||
+ return NIL;
|
||||
+ }
|
||||
+ } while (done == 0);
|
||||
+
|
||||
+ if ((fd = open (path1,O_WRONLY|O_CREAT|O_EXCL,S_IREAD|S_IWRITE)) < 0) {
|
||||
+ snprintf (tmp, sizeof(tmp), "Can't open append mailbox: %s", strerror (errno));
|
||||
@ -1887,15 +1917,18 @@ Index: alpine-2.11/imap/src/osdep/unix/maildir.c
|
||||
+ }
|
||||
+ fs_give ((void **) &s); /* flush the buffer */
|
||||
+ close (fd); /* close the file */
|
||||
+ /* build final filename to use */
|
||||
+ if (maildir_file_path(mailbox, tmp, sizeof(tmp)))
|
||||
+ MSGPATH(path2, tmp, file, New);
|
||||
+
|
||||
+ if (rename (path1,path2) < 0) {
|
||||
+ snprintf (tmp, sizeof(tmp), "Message append failed: %s", strerror (errno));
|
||||
+ mm_log (tmp, ERROR);
|
||||
+ ret = NIL;
|
||||
+ }
|
||||
+ unlink (path1);
|
||||
+ if(date){
|
||||
+ time_t tp[2];
|
||||
+ tp[0] = tp[1] = ti;
|
||||
+ utime (path2,tp);
|
||||
+ }
|
||||
+
|
||||
+ if (ret)
|
||||
+ if (!(*af) (stream,data,&flags,&date,&message)) ret = NIL;
|
||||
@ -2093,11 +2126,11 @@ Index: alpine-2.11/imap/src/osdep/unix/maildir.c
|
||||
+void maildir_lsub (MAILSTREAM *stream,char *ref,char *pat)
|
||||
+{
|
||||
+ void *sdb = NIL;
|
||||
+ char *s, test[MAILTMPLEN];
|
||||
+ char *s, test[MAILTMPLEN], tmp[MAILTMPLEN];
|
||||
+ /* get canonical form of name */
|
||||
+ if (maildir_canonicalize (test, ref, pat) && (s = sm_read (&sdb))) {
|
||||
+ if (maildir_canonicalize (test, ref, pat) && (s = sm_read (tmp, &sdb))) {
|
||||
+ do if (pmatch_full (s, test, '/')) mm_lsub (stream, '/', s, NIL);
|
||||
+ while ((s = sm_read (&sdb)) != NULL); /* until no more subscriptions */
|
||||
+ while ((s = sm_read (tmp, &sdb)) != NULL); /* until no more subscriptions */
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
@ -2191,7 +2224,7 @@ Index: alpine-2.11/imap/src/osdep/unix/maildir.c
|
||||
+ char c, curdir[MAILTMPLEN], tmp[MAILTMPLEN];
|
||||
+ char realname[MAILTMPLEN], realpat[MAILTMPLEN] = {'\0'};
|
||||
+ int i, found;
|
||||
+ long style = (long) maildir_parameters(GET_COURIERSTYLE, NIL), j;
|
||||
+ long style = *(long *) maildir_parameters(GET_COURIERSTYLE, NIL), j;
|
||||
+ char *maildirpath = mdirpath();
|
||||
+ COURIER_S *cdir;
|
||||
+
|
||||
@ -2780,7 +2813,7 @@ Index: alpine-2.11/imap/src/osdep/unix/maildir.c
|
||||
+void
|
||||
+courier_list_info(COURIER_S **cdirp, char *data, int i)
|
||||
+{
|
||||
+ long style = (long) maildir_parameters(GET_COURIERSTYLE, NIL);
|
||||
+ long style = *(long *) maildir_parameters(GET_COURIERSTYLE, NIL);
|
||||
+ COURIER_S *cdir = *cdirp;
|
||||
+
|
||||
+ if(maildir_valid(cdir->data[i]->name)){
|
||||
@ -3047,10 +3080,10 @@ Index: alpine-2.11/imap/src/osdep/unix/maildir.c
|
||||
+ LOCAL->uidtempfile = cpystr(tmp);
|
||||
+ }
|
||||
+}
|
||||
Index: alpine-2.11/imap/src/osdep/unix/maildir.h
|
||||
Index: alpine-2.20/imap/src/osdep/unix/maildir.h
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ alpine-2.11/imap/src/osdep/unix/maildir.h
|
||||
+++ alpine-2.20/imap/src/osdep/unix/maildir.h
|
||||
@@ -0,0 +1,226 @@
|
||||
+/*
|
||||
+ * A few definitions that try to make this module portable to other
|
||||
@ -3278,10 +3311,10 @@ Index: alpine-2.11/imap/src/osdep/unix/maildir.h
|
||||
+void maildir_assign_uid(MAILSTREAM *stream, unsigned long msgno, unsigned long uid);
|
||||
+void maildir_uid_renew_tempfile(MAILSTREAM *stream);
|
||||
+
|
||||
Index: alpine-2.11/imap/src/osdep/unix/os_cyg.h
|
||||
Index: alpine-2.20/imap/src/osdep/unix/os_cyg.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/imap/src/osdep/unix/os_cyg.h
|
||||
+++ alpine-2.11/imap/src/osdep/unix/os_cyg.h
|
||||
--- alpine-2.20.orig/imap/src/osdep/unix/os_cyg.h
|
||||
+++ alpine-2.20/imap/src/osdep/unix/os_cyg.h
|
||||
@@ -47,6 +47,7 @@
|
||||
#define setpgrp setpgid
|
||||
|
||||
@ -3290,11 +3323,11 @@ Index: alpine-2.11/imap/src/osdep/unix/os_cyg.h
|
||||
#define geteuid Geteuid
|
||||
uid_t Geteuid (void);
|
||||
|
||||
Index: alpine-2.11/pith/conf.c
|
||||
Index: alpine-2.20/pith/conf.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/conf.c
|
||||
+++ alpine-2.11/pith/conf.c
|
||||
@@ -434,6 +434,9 @@ CONF_TXT_T cf_text_window_position[] = "
|
||||
--- alpine-2.20.orig/pith/conf.c
|
||||
+++ alpine-2.20/pith/conf.c
|
||||
@@ -436,6 +436,9 @@ CONF_TXT_T cf_text_window_position[] = "
|
||||
|
||||
CONF_TXT_T cf_text_newsrc_path[] = "Full path and name of NEWSRC file";
|
||||
|
||||
@ -3304,7 +3337,7 @@ Index: alpine-2.11/pith/conf.c
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
These are the variables that control a number of pine functions. They
|
||||
@@ -638,6 +641,10 @@ static struct variable variables[] = {
|
||||
@@ -642,6 +645,10 @@ static struct variable variables[] = {
|
||||
NULL, cf_text_news_active},
|
||||
{"news-spool-directory", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0,
|
||||
NULL, cf_text_news_spooldir},
|
||||
@ -3315,7 +3348,7 @@ Index: alpine-2.11/pith/conf.c
|
||||
{"upload-command", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0,
|
||||
NULL, cf_text_upload_cmd},
|
||||
{"upload-command-prefix", 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0,
|
||||
@@ -2271,6 +2278,12 @@ init_vars(struct pine *ps, void (*cmds_f
|
||||
@@ -2283,6 +2290,12 @@ init_vars(struct pine *ps, void (*cmds_f
|
||||
mail_parameters(NULL, SET_NEWSSPOOL,
|
||||
(void *)VAR_NEWS_SPOOL_DIR);
|
||||
|
||||
@ -3328,7 +3361,7 @@ Index: alpine-2.11/pith/conf.c
|
||||
/* guarantee a save default */
|
||||
set_current_val(&vars[V_DEFAULT_SAVE_FOLDER], TRUE, TRUE);
|
||||
if(!VAR_DEFAULT_SAVE_FOLDER || !VAR_DEFAULT_SAVE_FOLDER[0])
|
||||
@@ -2909,6 +2922,10 @@ feature_list(int index)
|
||||
@@ -2921,6 +2934,10 @@ feature_list(int index)
|
||||
F_SORT_DEFAULT_SAVE_ALPHA, h_config_sort_save_alpha, PREF_FLDR, 0},
|
||||
{"vertical-folder-list", "Use Vertical Folder List",
|
||||
F_VERTICAL_FOLDER_LIST, h_config_vertical_list, PREF_FLDR, 0},
|
||||
@ -3339,20 +3372,30 @@ Index: alpine-2.11/pith/conf.c
|
||||
|
||||
/* Addr book */
|
||||
{"combined-addrbook-display", "Combined Address Book Display",
|
||||
@@ -7034,6 +7051,12 @@ toggle_feature(struct pine *ps, struct v
|
||||
@@ -7047,7 +7064,7 @@ toggle_feature(struct pine *ps, struct v
|
||||
int just_flip_value, EditWhich ew)
|
||||
{
|
||||
char **vp, *p, **lval, ***alval;
|
||||
- int og, on_before, was_set;
|
||||
+ int og, on_before, was_set, i;
|
||||
char *err;
|
||||
long l;
|
||||
|
||||
@@ -7100,6 +7117,13 @@ toggle_feature(struct pine *ps, struct v
|
||||
|
||||
break;
|
||||
|
||||
+#ifndef _WINDOWS
|
||||
+ case F_COURIER_FOLDER_LIST:
|
||||
+ mail_parameters(NULL,SET_COURIERSTYLE,(void *)(F_ON(f->id ,ps)? 1 : 0));
|
||||
+ i = F_ON(f->id ,ps) ? 1 : 0;
|
||||
+ mail_parameters(NULL,SET_COURIERSTYLE, (void *) &i);
|
||||
+ break; /* COURIER == 1, CCLIENT == 0, see maildir.h */
|
||||
+#endif
|
||||
+
|
||||
case F_COLOR_LINE_IMPORTANT :
|
||||
case F_DATES_TO_LOCAL :
|
||||
clear_index_cache(ps->mail_stream, 0);
|
||||
@@ -7819,6 +7842,10 @@ config_help(int var, int feature)
|
||||
@@ -7887,6 +7911,10 @@ config_help(int var, int feature)
|
||||
return(h_config_newmailwidth);
|
||||
case V_NEWSRC_PATH :
|
||||
return(h_config_newsrc_path);
|
||||
@ -3363,11 +3406,11 @@ Index: alpine-2.11/pith/conf.c
|
||||
case V_BROWSER :
|
||||
return(h_config_browser);
|
||||
#if defined(DOS) || defined(OS2)
|
||||
Index: alpine-2.11/pith/conf.h
|
||||
Index: alpine-2.20/pith/conf.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/conf.h
|
||||
+++ alpine-2.11/pith/conf.h
|
||||
@@ -255,6 +255,10 @@
|
||||
--- alpine-2.20.orig/pith/conf.h
|
||||
+++ alpine-2.20/pith/conf.h
|
||||
@@ -257,6 +257,10 @@
|
||||
#define GLO_NEWS_ACTIVE_PATH vars[V_NEWS_ACTIVE_PATH].global_val.p
|
||||
#define VAR_NEWS_SPOOL_DIR vars[V_NEWS_SPOOL_DIR].current_val.p
|
||||
#define GLO_NEWS_SPOOL_DIR vars[V_NEWS_SPOOL_DIR].global_val.p
|
||||
@ -3378,11 +3421,11 @@ Index: alpine-2.11/pith/conf.h
|
||||
#define VAR_DISABLE_DRIVERS vars[V_DISABLE_DRIVERS].current_val.l
|
||||
#define VAR_DISABLE_AUTHS vars[V_DISABLE_AUTHS].current_val.l
|
||||
#define VAR_REMOTE_ABOOK_METADATA vars[V_REMOTE_ABOOK_METADATA].current_val.p
|
||||
Index: alpine-2.11/pith/conftype.h
|
||||
Index: alpine-2.20/pith/conftype.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/conftype.h
|
||||
+++ alpine-2.11/pith/conftype.h
|
||||
@@ -117,6 +117,9 @@ typedef enum { V_PERSONAL_NAME = 0
|
||||
--- alpine-2.20.orig/pith/conftype.h
|
||||
+++ alpine-2.20/pith/conftype.h
|
||||
@@ -118,6 +118,9 @@ typedef enum { V_PERSONAL_NAME = 0
|
||||
, V_NEWSRC_PATH
|
||||
, V_NEWS_ACTIVE_PATH
|
||||
, V_NEWS_SPOOL_DIR
|
||||
@ -3392,7 +3435,7 @@ Index: alpine-2.11/pith/conftype.h
|
||||
, V_UPLOAD_CMD
|
||||
, V_UPLOAD_CMD_PREFIX
|
||||
, V_DOWNLOAD_CMD
|
||||
@@ -393,6 +396,9 @@ typedef enum {
|
||||
@@ -395,6 +398,9 @@ typedef enum {
|
||||
F_PASS_C1_CONTROL_CHARS,
|
||||
F_SINGLE_FOLDER_LIST,
|
||||
F_VERTICAL_FOLDER_LIST,
|
||||
@ -3402,10 +3445,10 @@ Index: alpine-2.11/pith/conftype.h
|
||||
F_TAB_CHK_RECENT,
|
||||
F_AUTO_REPLY_TO,
|
||||
F_VERBOSE_POST,
|
||||
Index: alpine-2.11/pith/init.c
|
||||
Index: alpine-2.20/pith/init.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/init.c
|
||||
+++ alpine-2.11/pith/init.c
|
||||
--- alpine-2.20.orig/pith/init.c
|
||||
+++ alpine-2.20/pith/init.c
|
||||
@@ -408,6 +408,9 @@ get_mail_list(CONTEXT_S *list_cntxt, cha
|
||||
&& stricmp(filename, folder_base)){
|
||||
#else
|
||||
@ -3416,11 +3459,22 @@ Index: alpine-2.11/pith/init.c
|
||||
&& strcmp(filename, folder_base)){
|
||||
#endif
|
||||
#endif
|
||||
Index: alpine-2.11/pith/pattern.c
|
||||
Index: alpine-2.20/pith/pattern.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/pattern.c
|
||||
+++ alpine-2.11/pith/pattern.c
|
||||
@@ -5483,6 +5483,15 @@ match_pattern_folder_specific(PATTERN_S
|
||||
--- alpine-2.20.orig/pith/pattern.c
|
||||
+++ alpine-2.20/pith/pattern.c
|
||||
@@ -49,7 +49,9 @@ static char rcsid[] = "$Id: pattern.c 12
|
||||
#include "../pith/icache.h"
|
||||
#include "../pith/ablookup.h"
|
||||
#include "../pith/keyword.h"
|
||||
-
|
||||
+#ifndef _WINDOWS
|
||||
+int maildir_file_path(char *name, char *tmp, size_t sizeoftmp);
|
||||
+#endif /* _WINDOWS */
|
||||
|
||||
/*
|
||||
* Internal prototypes
|
||||
@@ -5485,6 +5487,15 @@ match_pattern_folder_specific(PATTERN_S
|
||||
break;
|
||||
|
||||
case '#':
|
||||
@ -3428,7 +3482,7 @@ Index: alpine-2.11/pith/pattern.c
|
||||
+ if(!struncmp(patfolder, "#md/", 4)
|
||||
+ || !struncmp(patfolder, "#mc/", 4)){
|
||||
+ maildir_file_path(patfolder, tmp1, sizeof(tmp1));
|
||||
+ if(!strcmp(patfolder, stream->mailbox))
|
||||
+ if(!strcmp(tmp1, stream->mailbox))
|
||||
+ match++;
|
||||
+ break;
|
||||
+ }
|
||||
@ -3436,7 +3490,7 @@ Index: alpine-2.11/pith/pattern.c
|
||||
if(!strcmp(patfolder, stream->mailbox))
|
||||
match++;
|
||||
|
||||
@@ -7903,7 +7912,7 @@ move_filtered_msgs(MAILSTREAM *stream, M
|
||||
@@ -7905,7 +7916,7 @@ move_filtered_msgs(MAILSTREAM *stream, M
|
||||
int we_cancel = 0, width;
|
||||
CONTEXT_S *save_context = NULL;
|
||||
char buf[MAX_SCREEN_COLS+1], sbuf[MAX_SCREEN_COLS+1];
|
||||
@ -3445,7 +3499,7 @@ Index: alpine-2.11/pith/pattern.c
|
||||
#define FILTMSG_MAX 30
|
||||
|
||||
if(!stream)
|
||||
@@ -7937,6 +7946,16 @@ move_filtered_msgs(MAILSTREAM *stream, M
|
||||
@@ -7939,6 +7950,16 @@ move_filtered_msgs(MAILSTREAM *stream, M
|
||||
if(F_OFF(F_QUELL_FILTER_MSGS, ps_global))
|
||||
we_cancel = busy_cue(buf, NULL, 0);
|
||||
|
||||
@ -3462,7 +3516,7 @@ Index: alpine-2.11/pith/pattern.c
|
||||
if(!is_absolute_path(dstfldr)
|
||||
&& !(save_context = default_save_context(ps_global->context_list)))
|
||||
save_context = ps_global->context_list;
|
||||
@@ -8000,6 +8019,11 @@ move_filtered_msgs(MAILSTREAM *stream, M
|
||||
@@ -8002,6 +8023,11 @@ move_filtered_msgs(MAILSTREAM *stream, M
|
||||
if(we_cancel)
|
||||
cancel_busy_cue(buf[0] ? 0 : -1);
|
||||
|
||||
@ -3474,11 +3528,11 @@ Index: alpine-2.11/pith/pattern.c
|
||||
return(buf[0] != '\0');
|
||||
}
|
||||
|
||||
Index: alpine-2.11/pith/pine.hlp
|
||||
Index: alpine-2.20/pith/pine.hlp
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/pine.hlp
|
||||
+++ alpine-2.11/pith/pine.hlp
|
||||
@@ -21664,6 +21664,102 @@ your account's home directory).
|
||||
--- alpine-2.20.orig/pith/pine.hlp
|
||||
+++ alpine-2.20/pith/pine.hlp
|
||||
@@ -22060,6 +22060,102 @@ your account's home directory).
|
||||
<End of help on this topic>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -3581,7 +3635,7 @@ Index: alpine-2.11/pith/pine.hlp
|
||||
====== h_config_literal_sig =====
|
||||
<HTML>
|
||||
<HEAD>
|
||||
@@ -29690,6 +29786,49 @@ than across the columns as is the defaul
|
||||
@@ -30086,6 +30182,49 @@ than across the columns as is the defaul
|
||||
<P>
|
||||
<End of help on this topic>
|
||||
</BODY>
|
||||
@ -3631,11 +3685,21 @@ Index: alpine-2.11/pith/pine.hlp
|
||||
</HTML>
|
||||
====== h_config_verbose_post =====
|
||||
<HTML>
|
||||
Index: alpine-2.11/pith/send.c
|
||||
Index: alpine-2.20/pith/send.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/send.c
|
||||
+++ alpine-2.11/pith/send.c
|
||||
@@ -257,6 +257,13 @@ postponed_stream(MAILSTREAM **streamp, c
|
||||
--- alpine-2.20.orig/pith/send.c
|
||||
+++ alpine-2.20/pith/send.c
|
||||
@@ -47,6 +47,9 @@ static char rcsid[] = "$Id: send.c 1204
|
||||
|
||||
#include "../c-client/smtp.h"
|
||||
#include "../c-client/nntp.h"
|
||||
+#ifndef _WINDOWS
|
||||
+int maildir_file_path(char *name, char *tmp, size_t sizeoftmp);
|
||||
+#endif /* _WINDOWS */
|
||||
|
||||
|
||||
/* this is used in pine_send and pine_simple_send */
|
||||
@@ -257,6 +260,13 @@ postponed_stream(MAILSTREAM **streamp, c
|
||||
|
||||
if(exists & FEX_ISFILE){
|
||||
context_apply(tmp, p_cntxt, mbox, sizeof(tmp));
|
||||
|
@ -2,11 +2,11 @@
|
||||
imap/src/c-client/mail.c | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: alpine-2.11/imap/src/c-client/mail.c
|
||||
Index: alpine-2.20/imap/src/c-client/mail.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/imap/src/c-client/mail.c
|
||||
+++ alpine-2.11/imap/src/c-client/mail.c
|
||||
@@ -3361,13 +3361,13 @@ unsigned long mail_filter (char *text,un
|
||||
--- alpine-2.20.orig/imap/src/c-client/mail.c
|
||||
+++ alpine-2.20/imap/src/c-client/mail.c
|
||||
@@ -3400,13 +3400,13 @@ unsigned long mail_filter (char *text,un
|
||||
long flags)
|
||||
{
|
||||
STRINGLIST *hdrs;
|
||||
@ -22,7 +22,7 @@ Index: alpine-2.11/imap/src/c-client/mail.c
|
||||
while (src < end) { /* process header */
|
||||
/* slurp header line name */
|
||||
for (s = src,e = s + MAILTMPLEN - 1,e = (e < end ? e : end),t = tmp;
|
||||
@@ -3406,6 +3406,10 @@ unsigned long mail_filter (char *text,un
|
||||
@@ -3447,6 +3447,10 @@ unsigned long mail_filter (char *text,un
|
||||
}
|
||||
}
|
||||
*dst = '\0'; /* tie off destination */
|
||||
|
69
lint.diff
Normal file
69
lint.diff
Normal file
@ -0,0 +1,69 @@
|
||||
From: Jan Engelhardt <jengelh@inai.de>
|
||||
Date: 2015-03-25 18:25:22.663262139 +0100
|
||||
|
||||
rpmlint:
|
||||
W: alpine implicit-pointer-decl dmail.c:160
|
||||
W: alpine implicit-pointer-decl mlock.c:114
|
||||
W: alpine implicit-pointer-decl tmail.c:168
|
||||
E: alpine no-return-in-nonvoid-function imap.c:2790
|
||||
|
||||
gcc:
|
||||
dmail.c:160:5: warning: implicit declaration of function 'isdigit' [-Wimplicit-function-declaration]
|
||||
mlock.c:114:5: warning: implicit declaration of function 'time' [-Wimplicit-function-declaration]
|
||||
tmail.c:168:7: warning: implicit declaration of function 'isdigit' [-Wimplicit-function-declaration]
|
||||
imap.c:2790:1: warning: control reaches end of non-void function [-Wreturn-type]
|
||||
---
|
||||
alpine/imap.c | 1 +
|
||||
imap/src/dmail/dmail.c | 1 +
|
||||
imap/src/mlock/mlock.c | 1 +
|
||||
imap/src/tmail/tmail.c | 1 +
|
||||
4 files changed, 4 insertions(+)
|
||||
|
||||
Index: alpine-2.20/alpine/imap.c
|
||||
===================================================================
|
||||
--- alpine-2.20.orig/alpine/imap.c
|
||||
+++ alpine-2.20/alpine/imap.c
|
||||
@@ -2786,6 +2786,7 @@ if(F_OFF(F_DISABLE_PASSWORD_FILE_SAVING,
|
||||
return(want_to(_("Preserve password on DISK for next login"),
|
||||
'y', 'x', NO_HELP, WT_NORM)
|
||||
== 'y');
|
||||
+return 0;
|
||||
#endif /* PASSFILE */
|
||||
}
|
||||
|
||||
Index: alpine-2.20/imap/src/dmail/dmail.c
|
||||
===================================================================
|
||||
--- alpine-2.20.orig/imap/src/dmail/dmail.c
|
||||
+++ alpine-2.20/imap/src/dmail/dmail.c
|
||||
@@ -24,6 +24,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#include <ctype.h>
|
||||
#include <stdio.h>
|
||||
#include <pwd.h>
|
||||
#include <errno.h>
|
||||
Index: alpine-2.20/imap/src/mlock/mlock.c
|
||||
===================================================================
|
||||
--- alpine-2.20.orig/imap/src/mlock/mlock.c
|
||||
+++ alpine-2.20/imap/src/mlock/mlock.c
|
||||
@@ -32,6 +32,7 @@
|
||||
#include <stdio.h>
|
||||
#include <sysexits.h>
|
||||
#include <syslog.h>
|
||||
+#include <time.h>
|
||||
#include <grp.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/file.h>
|
||||
Index: alpine-2.20/imap/src/tmail/tmail.c
|
||||
===================================================================
|
||||
--- alpine-2.20.orig/imap/src/tmail/tmail.c
|
||||
+++ alpine-2.20/imap/src/tmail/tmail.c
|
||||
@@ -23,6 +23,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
+#include <ctype.h>
|
||||
#include <stdio.h>
|
||||
#include <pwd.h>
|
||||
#include <errno.h>
|
@ -1,26 +1,12 @@
|
||||
---
|
||||
alpine/folder.c | 2 +-
|
||||
imap/src/c-client/mail.c | 10 ++++++++--
|
||||
2 files changed, 9 insertions(+), 3 deletions(-)
|
||||
1 file changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: alpine-2.11/alpine/folder.c
|
||||
Index: alpine-2.20/imap/src/c-client/mail.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/alpine/folder.c
|
||||
+++ alpine-2.11/alpine/folder.c
|
||||
@@ -6132,7 +6132,7 @@ folder_select_count(long int *count, int
|
||||
continue;
|
||||
|
||||
case 14 : /* toggle comparison */
|
||||
- *cmp = ++(*cmp) % 3;
|
||||
+ *cmp = ((*cmp) + 1) % 3;
|
||||
continue;
|
||||
|
||||
case -1 : /* cancel */
|
||||
Index: alpine-2.11/imap/src/c-client/mail.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/imap/src/c-client/mail.c
|
||||
+++ alpine-2.11/imap/src/c-client/mail.c
|
||||
@@ -2940,8 +2940,14 @@ long mail_parse_date (MESSAGECACHE *elt,
|
||||
--- alpine-2.20.orig/imap/src/c-client/mail.c
|
||||
+++ alpine-2.20/imap/src/c-client/mail.c
|
||||
@@ -2979,8 +2979,14 @@ long mail_parse_date (MESSAGECACHE *elt,
|
||||
/* parse time */
|
||||
d = strtoul (s+1,(char **) &s,10);
|
||||
if (*s != ':') return NIL;
|
||||
|
Loading…
Reference in New Issue
Block a user