Accepting request 197243 from server:mail
- Update to new upstream release 2.11 (forwarded request 197185 from jengelh) OBS-URL: https://build.opensuse.org/request/show/197243 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/alpine?expand=0&rev=33
This commit is contained in:
parent
71a80ea808
commit
544ac66853
@ -1,10 +0,0 @@
|
||||
--- configure.ac
|
||||
+++ configure.ac
|
||||
@@ -1307,6 +1307,7 @@
|
||||
AC_CHECK_LIB(pam, pam_start,
|
||||
[
|
||||
alpine_c_client_target="lnp"
|
||||
+ LIBS="$LIBS -lpam"
|
||||
],
|
||||
[
|
||||
if test -f /etc/shadow ; then
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ee9a0a08e2bdeafb42448c759fcc38f1d960ed9485a7c7178d8c4016b13898cc
|
||||
size 4849936
|
3
alpine-2.11.tar.xz
Normal file
3
alpine-2.11.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fecc9ca5df03e0f368edec65cd61444325157b5635b5c92380cedf9c4ce8fbf6
|
||||
size 4403188
|
@ -1,6 +1,13 @@
|
||||
--- ./imap/src/osdep/unix/dummy.c 2009/06/02 09:53:30 1.1
|
||||
+++ ./imap/src/osdep/unix/dummy.c 2009/06/02 10:04:31
|
||||
@@ -723,6 +723,17 @@
|
||||
---
|
||||
imap/src/osdep/unix/dummy.c | 14 ++++++++++++--
|
||||
pith/send.c | 1 +
|
||||
2 files changed, 13 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: alpine-2.11/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
|
||||
return NIL;
|
||||
}
|
||||
|
||||
@ -18,7 +25,7 @@
|
||||
|
||||
/* Dummy append message string
|
||||
* Accepts: mail stream
|
||||
@@ -742,8 +753,7 @@
|
||||
@@ -755,8 +766,7 @@ long dummy_append (MAILSTREAM *stream,ch
|
||||
/* append to INBOX? */
|
||||
if (!compare_cstring (mailbox,"INBOX")) {
|
||||
/* yes, if no empty proto try creating */
|
||||
@ -28,9 +35,11 @@
|
||||
}
|
||||
else if (dummy_file (tmp,mailbox) && ((fd = open (tmp,O_RDONLY,NIL)) < 0)) {
|
||||
if ((e = errno) == ENOENT) /* failed, was it no such file? */
|
||||
--- pith/send.c 2009/06/02 10:04:13 1.11
|
||||
+++ pith/send.c 2009/06/02 10:04:31
|
||||
@@ -1569,6 +1569,7 @@
|
||||
Index: alpine-2.11/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);
|
||||
}
|
||||
}
|
||||
|
@ -1,39 +0,0 @@
|
||||
--- imap/src/osdep/unix/maildir.c 2011-10-17 10:11:55.000000000 +0200
|
||||
+++ imap/src/osdep/unix/maildir.c 2011-10-17 10:39:31.000000000 +0200
|
||||
@@ -2396,7 +2396,6 @@
|
||||
|| !strncmp(d->d_name, MDUIDTEMP, strlen(MDUIDTEMP)))
|
||||
break;
|
||||
}
|
||||
- closedir(dir);
|
||||
rv = d ? !strncmp(d->d_name, tmp, strlen(tmp)) : 1;
|
||||
createtemp = d ? 0 : 1;
|
||||
if (d && rv == 0){ /* is there a temp file that is not ours? */
|
||||
@@ -2410,6 +2409,7 @@
|
||||
unlink(tmp);
|
||||
}
|
||||
}
|
||||
+ closedir(dir);
|
||||
if(createtemp){
|
||||
FILE *fp;
|
||||
sprintf(tmp,"%s/%s.%d.%lu", LOCAL->dir, MDUIDTEMP, getpid(), time(0));
|
||||
@@ -2442,7 +2442,6 @@
|
||||
if(!strncmp(d->d_name, MDUIDLAST, strlen(MDUIDLAST)))
|
||||
break;
|
||||
}
|
||||
- closedir(dir);
|
||||
createuid = d == NULL ? 1 : 0;
|
||||
if(uid_last == NULL)
|
||||
deleteuid++;
|
||||
@@ -2473,9 +2472,10 @@
|
||||
}
|
||||
}
|
||||
if(deleteuid){
|
||||
- sprintf(tmp,"%s/%s", LOCAL->dir, d->d_name);
|
||||
+ snprintf(tmp, sizeof(tmp), "%s/%s", LOCAL->dir, d->d_name);
|
||||
unlink(tmp);
|
||||
}
|
||||
+ closedir(dir);
|
||||
if(createuid)
|
||||
maildir_write_uid(stream, (uid_last ? *uid_last : stream->uid_last),
|
||||
uid_validity ? *uid_validity : time(0));
|
||||
Nur in alpine-2.00/imap/src/osdep/unix: maildir.c~.
|
@ -1,6 +1,12 @@
|
||||
--- pith/string.c
|
||||
+++ pith/string.c
|
||||
@@ -769,6 +769,7 @@
|
||||
---
|
||||
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];
|
||||
@ -8,7 +14,7 @@
|
||||
struct tm tm;
|
||||
|
||||
memset(&tm, 0, sizeof(tm));
|
||||
@@ -810,6 +811,12 @@
|
||||
@@ -811,6 +812,12 @@ month_abbrev_locale(int month_num)
|
||||
|
||||
buf[0] = ' ';
|
||||
}
|
||||
@ -21,7 +27,7 @@
|
||||
|
||||
return(buf);
|
||||
}
|
||||
@@ -841,12 +848,19 @@
|
||||
@@ -842,12 +849,19 @@ month_name_locale(int month_num)
|
||||
return("");
|
||||
else{
|
||||
static char buf[20];
|
||||
|
@ -3,10 +3,10 @@
|
||||
configure.ac | 3 ++-
|
||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: alpine-2.10/alpine/Makefile.am
|
||||
Index: alpine-2.11/alpine/Makefile.am
|
||||
===================================================================
|
||||
--- alpine-2.10.orig/alpine/Makefile.am
|
||||
+++ alpine-2.10/alpine/Makefile.am
|
||||
--- alpine-2.11.orig/alpine/Makefile.am
|
||||
+++ alpine-2.11/alpine/Makefile.am
|
||||
@@ -35,7 +35,7 @@ BUILT_SOURCES = date.c
|
||||
LDADD = ../pico/libpico.a ../pico/osdep/libpicoosd.a \
|
||||
../pith/libpith.a ../pith/osdep/libpithosd.a \
|
||||
@ -16,11 +16,11 @@ Index: alpine-2.10/alpine/Makefile.am
|
||||
|
||||
AM_CPPFLAGS = -I@top_builddir@/include -I@top_srcdir@/include -DLOCALEDIR=\"$(localedir)\"
|
||||
|
||||
Index: alpine-2.10/configure.ac
|
||||
Index: alpine-2.11/configure.ac
|
||||
===================================================================
|
||||
--- alpine-2.10.orig/configure.ac
|
||||
+++ alpine-2.10/configure.ac
|
||||
@@ -37,8 +37,9 @@ WEB_BUILD=web/src/alpined.d
|
||||
--- alpine-2.11.orig/configure.ac
|
||||
+++ alpine-2.11/configure.ac
|
||||
@@ -38,8 +38,9 @@ WEB_BUILD=web/src/alpined.d
|
||||
|
||||
dnl CHECK PROGRAMS
|
||||
|
||||
|
@ -1,3 +1,27 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 2 14:07:32 UTC 2013 - jengelh@inai.de
|
||||
|
||||
- Update to new upstream release 2.11
|
||||
* Increase encryption of S/MIME encrypted messages.
|
||||
* Pico: Improvements in justification of paragraphs: lines that
|
||||
begin with a quote string, followed by a space were considered
|
||||
individual paragraphs, now they are considered part of a paragraph.
|
||||
* Unix Alpine: Allow local .pinerc file to be a symbolic link.
|
||||
* Experimental extended support of recognition of UTF-8 in urls
|
||||
* Added recognition of ws and wss URIs.
|
||||
* Add ability to color folder names, directory names, and text in
|
||||
the FOLDER SCREEN.
|
||||
* Add the ability to color any token used in the display of the
|
||||
INDEX SCREEN.
|
||||
* New option preserve-original-fields that adds the ability to
|
||||
preserve To: and Cc: fields when replying to a message, as
|
||||
specified by original sender.
|
||||
* Added Quota subcommands for printing, forwarding, saving, etc.
|
||||
- Refresh from homepage (and save as unified): chappa-*.patch
|
||||
- Refresh for -p1: operation-may-be-undefined-warning.diff,
|
||||
fix-implicit.patch, alpine-gcc44.diff
|
||||
- Drop quilt-patches/alpine-2.00-as_needed.patch (merged upstream)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 22 20:37:21 UTC 2013 - jengelh@inai.de
|
||||
|
||||
|
59
alpine.spec
59
alpine.spec
@ -17,34 +17,16 @@
|
||||
|
||||
|
||||
Name: alpine
|
||||
#
|
||||
# For debugging only:
|
||||
%define build_vanilla 0
|
||||
#
|
||||
Summary: Mail User Agent
|
||||
License: Apache-2.0
|
||||
Group: Productivity/Networking/Email/Clients
|
||||
BuildRequires: imap-devel
|
||||
BuildRequires: krb5-devel
|
||||
BuildRequires: libgssapi
|
||||
BuildRequires: libtool
|
||||
BuildRequires: ncurses-devel
|
||||
BuildRequires: openldap2-devel
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: pam-devel
|
||||
BuildRequires: update-desktop-files
|
||||
BuildRequires: xz
|
||||
# pgp4pine requires pine:
|
||||
Provides: pine
|
||||
#
|
||||
Obsoletes: pine4
|
||||
Provides: pine4
|
||||
#
|
||||
Version: 2.10
|
||||
Version: 2.11
|
||||
Release: 0
|
||||
Url: http://www.washington.edu/alpine/
|
||||
Source: http://patches.freeiz.com/alpine/patches/alpine-2.10/alpine-2.10.clean.tar.lzma
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Url: http://patches.freeiz.com/alpine/
|
||||
|
||||
Source: http://patches.freeiz.com/alpine/release/src/%name-%version.tar.xz
|
||||
Source1: %name.png
|
||||
Source2: %name.desktop
|
||||
Patch1: pine-nonvoid-function.patch
|
||||
@ -52,7 +34,6 @@ Patch2: make-use-of-strncat-safer.diff
|
||||
Patch3: operation-may-be-undefined-warning.diff
|
||||
Patch4: fix-implicit.patch
|
||||
Patch5: alpine-gcc44.diff
|
||||
Patch6: alpine-2.00-as_needed.patch
|
||||
Patch7: alpine-month_name-utf8.patch
|
||||
Patch10: pico-fix-spurious-undef-warnings.diff
|
||||
Patch20: pine-expression-warnings.diff
|
||||
@ -70,6 +51,22 @@ Patch604: chappa-maildir.patch
|
||||
Patch605: chappa-WrtAcc.patch
|
||||
Patch606: chappa-unixnullbug.patch
|
||||
Patch613: alpine-no-add-needed.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildRequires: autoconf >= 2.69
|
||||
BuildRequires: imap-devel
|
||||
BuildRequires: krb5-devel
|
||||
BuildRequires: libgssapi
|
||||
BuildRequires: libtool
|
||||
BuildRequires: ncurses-devel
|
||||
BuildRequires: openldap2-devel
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: pam-devel
|
||||
BuildRequires: update-desktop-files
|
||||
BuildRequires: xz
|
||||
# pgp4pine requires pine:
|
||||
Provides: pine
|
||||
Obsoletes: pine4
|
||||
Provides: pine4
|
||||
|
||||
%description
|
||||
Alpine is a display-oriented email client that is suitable for both
|
||||
@ -133,11 +130,10 @@ fi
|
||||
#
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3
|
||||
%patch4 -p0
|
||||
%patch5 -p0
|
||||
%patch6 -p0
|
||||
%patch7
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch7 -p1
|
||||
%patch10 -p1
|
||||
%patch20 -p1
|
||||
%patch40 -p1
|
||||
@ -188,6 +184,13 @@ autoreconf -fiv
|
||||
grep -B9 -A20 'failed program was' config.log | grep -A24 checking
|
||||
exit 5
|
||||
}
|
||||
%{?fedora_version: tag=LFD}
|
||||
%{?mandriva_version: tag=LMD}
|
||||
%{?redhat_version: tag=LRH}
|
||||
%{?centos_version: tag=LRH}
|
||||
%{?suse_version: tag=LSU}
|
||||
perl -i -pe 's{(define SYSTYPE) "LNX"}{$1 "'"$tag"'"}g' include/config.h
|
||||
|
||||
#
|
||||
# imap does not use CFLAGS from configure, needs EXTRACFLAGS/EXTRALDFLAGS:
|
||||
#
|
||||
|
@ -1,9 +1,18 @@
|
||||
diff -rc alpine-2.10/pico/basic.c alpine-2.10.WrtAcc/pico/basic.c
|
||||
*** alpine-2.10/pico/basic.c 2013-01-11 11:25:28.000000000 -0700
|
||||
--- alpine-2.10.WrtAcc/pico/basic.c 2013-01-11 20:43:11.000000000 -0700
|
||||
***************
|
||||
*** 344,349 ****
|
||||
--- 344,532 ----
|
||||
---
|
||||
pico/basic.c | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
pico/composer.c | 9 ++
|
||||
pico/display.c | 7 +-
|
||||
pico/ebind.h | 8 +-
|
||||
pico/efunc.h | 3
|
||||
pico/main.c | 6 +
|
||||
pico/search.c | 6 -
|
||||
7 files changed, 214 insertions(+), 8 deletions(-)
|
||||
|
||||
Index: alpine-2.11/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)
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
@ -193,29 +202,20 @@ diff -rc alpine-2.10/pico/basic.c alpine-2.10.WrtAcc/pico/basic.c
|
||||
|
||||
/*
|
||||
* go forword to the end of the current paragraph
|
||||
diff -rc alpine-2.10/pico/composer.c alpine-2.10.WrtAcc/pico/composer.c
|
||||
*** alpine-2.10/pico/composer.c 2013-01-11 19:45:41.000000000 -0700
|
||||
--- alpine-2.10.WrtAcc/pico/composer.c 2013-01-11 20:43:11.000000000 -0700
|
||||
***************
|
||||
*** 2015,2021 ****
|
||||
Index: alpine-2.11/pico/composer.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pico/composer.c
|
||||
+++ alpine-2.11/pico/composer.c
|
||||
@@ -2015,7 +2015,7 @@ LineEdit(int allowedit, UCS *lastch)
|
||||
tbufp = &strng[ods.p_len];
|
||||
|
||||
if(VALID_KEY(ch)){ /* char input */
|
||||
! /*
|
||||
- /*
|
||||
+insert_char:/*
|
||||
* if we are allowing editing, insert the new char
|
||||
* end up leaving tbufp pointing to newly
|
||||
* inserted character in string, and offset to the
|
||||
--- 2015,2021 ----
|
||||
tbufp = &strng[ods.p_len];
|
||||
|
||||
if(VALID_KEY(ch)){ /* char input */
|
||||
! insert_char:/*
|
||||
* if we are allowing editing, insert the new char
|
||||
* end up leaving tbufp pointing to newly
|
||||
* inserted character in string, and offset to the
|
||||
***************
|
||||
*** 2095,2100 ****
|
||||
--- 2095,2107 ----
|
||||
@@ -2095,6 +2095,13 @@ LineEdit(int allowedit, UCS *lastch)
|
||||
}
|
||||
else { /* interpret ch as a command */
|
||||
switch (ch = normalize_cmd(ch, ckm, 2)) {
|
||||
@ -229,12 +229,11 @@ diff -rc alpine-2.10/pico/composer.c alpine-2.10.WrtAcc/pico/composer.c
|
||||
case (CTRL|KEY_LEFT): /* word skip left */
|
||||
if(ods.p_ind > 0) /* Scoot one char left if possible */
|
||||
ods.p_ind--;
|
||||
diff -rc alpine-2.10/pico/display.c alpine-2.10.WrtAcc/pico/display.c
|
||||
*** alpine-2.10/pico/display.c 2013-01-11 11:25:29.000000000 -0700
|
||||
--- alpine-2.10.WrtAcc/pico/display.c 2013-01-11 20:43:11.000000000 -0700
|
||||
***************
|
||||
*** 1751,1756 ****
|
||||
--- 1751,1761 ----
|
||||
Index: alpine-2.11/pico/display.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pico/display.c
|
||||
+++ alpine-2.11/pico/display.c
|
||||
@@ -1751,6 +1751,11 @@ mlreplyd(UCS *prompt, UCS *buf, int nbuf
|
||||
b = &buf[ucs4_strlen(buf)];
|
||||
continue;
|
||||
|
||||
@ -246,85 +245,53 @@ diff -rc alpine-2.10/pico/display.c alpine-2.10.WrtAcc/pico/display.c
|
||||
case (CTRL|'F') : /* CTRL-F forward a char*/
|
||||
case KEY_RIGHT :
|
||||
if(*b == '\0')
|
||||
***************
|
||||
*** 1869,1875 ****
|
||||
@@ -1881,7 +1886,7 @@ mlreplyd(UCS *prompt, UCS *buf, int nbuf
|
||||
#endif
|
||||
|
||||
default :
|
||||
!
|
||||
-
|
||||
+text:
|
||||
/* look for match in extra_v */
|
||||
for(i = 0; i < 12; i++)
|
||||
if(c && c == extra_v[i]){
|
||||
--- 1874,1880 ----
|
||||
#endif
|
||||
|
||||
default :
|
||||
! text:
|
||||
/* look for match in extra_v */
|
||||
for(i = 0; i < 12; i++)
|
||||
if(c && c == extra_v[i]){
|
||||
diff -rc alpine-2.10/pico/ebind.h alpine-2.10.WrtAcc/pico/ebind.h
|
||||
*** alpine-2.10/pico/ebind.h 2013-01-11 11:25:29.000000000 -0700
|
||||
--- alpine-2.10.WrtAcc/pico/ebind.h 2013-01-11 20:43:11.000000000 -0700
|
||||
***************
|
||||
*** 61,67 ****
|
||||
Index: alpine-2.11/pico/ebind.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pico/ebind.h
|
||||
+++ alpine-2.11/pico/ebind.h
|
||||
@@ -61,7 +61,7 @@ KEYTAB keytab[NBINDS] = {
|
||||
#ifdef MOUSE
|
||||
{KEY_MOUSE, mousepress},
|
||||
#ifndef _WINDOWS
|
||||
! {CTRL|'\\', toggle_xterm_mouse},
|
||||
- {CTRL|'\\', toggle_xterm_mouse},
|
||||
+ {CTRL|'|', toggle_xterm_mouse},
|
||||
#endif
|
||||
#endif
|
||||
{CTRL|'A', gotobol},
|
||||
--- 61,67 ----
|
||||
#ifdef MOUSE
|
||||
{KEY_MOUSE, mousepress},
|
||||
#ifndef _WINDOWS
|
||||
! {CTRL|'|', toggle_xterm_mouse},
|
||||
#endif
|
||||
#endif
|
||||
{CTRL|'A', gotobol},
|
||||
***************
|
||||
*** 100,106 ****
|
||||
@@ -100,7 +100,9 @@ KEYTAB keytab[NBINDS] = {
|
||||
{CTRL|KEY_HOME, gotobob},
|
||||
{CTRL|KEY_END, gotoeob},
|
||||
{0x7F, backdel},
|
||||
! {0, NULL}
|
||||
- {0, NULL}
|
||||
+ {CTRL|'\\', pineaccent},
|
||||
+ {0,
|
||||
+NULL}
|
||||
};
|
||||
|
||||
|
||||
--- 100,108 ----
|
||||
{CTRL|KEY_HOME, gotobob},
|
||||
{CTRL|KEY_END, gotoeob},
|
||||
{0x7F, backdel},
|
||||
! {CTRL|'\\', pineaccent},
|
||||
! {0,
|
||||
! NULL}
|
||||
};
|
||||
|
||||
|
||||
***************
|
||||
*** 123,129 ****
|
||||
@@ -123,7 +125,7 @@ KEYTAB pkeytab[NBINDS] = {
|
||||
#ifdef MOUSE
|
||||
{KEY_MOUSE, mousepress},
|
||||
#ifndef _WINDOWS
|
||||
! {CTRL|'\\', toggle_xterm_mouse},
|
||||
- {CTRL|'\\', toggle_xterm_mouse},
|
||||
+ {CTRL|'|', toggle_xterm_mouse},
|
||||
#endif
|
||||
#endif
|
||||
{CTRL|'A', gotobol},
|
||||
--- 125,131 ----
|
||||
#ifdef MOUSE
|
||||
{KEY_MOUSE, mousepress},
|
||||
#ifndef _WINDOWS
|
||||
! {CTRL|'|', toggle_xterm_mouse},
|
||||
#endif
|
||||
#endif
|
||||
{CTRL|'A', gotobol},
|
||||
diff -rc alpine-2.10/pico/efunc.h alpine-2.10.WrtAcc/pico/efunc.h
|
||||
*** alpine-2.10/pico/efunc.h 2013-01-11 11:25:29.000000000 -0700
|
||||
--- alpine-2.10.WrtAcc/pico/efunc.h 2013-01-11 20:43:11.000000000 -0700
|
||||
***************
|
||||
*** 54,59 ****
|
||||
--- 54,62 ----
|
||||
Index: alpine-2.11/pico/efunc.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pico/efunc.h
|
||||
+++ alpine-2.11/pico/efunc.h
|
||||
@@ -54,6 +54,9 @@ extern int forwline(int, int);
|
||||
extern int backline(int, int);
|
||||
extern int gotobop(int, int);
|
||||
extern int gotoeop(int, int);
|
||||
@ -334,12 +301,11 @@ diff -rc alpine-2.10/pico/efunc.h alpine-2.10.WrtAcc/pico/efunc.h
|
||||
extern int forwpage(int, int);
|
||||
extern int backpage(int, int);
|
||||
extern int scrollupline(int, int);
|
||||
diff -rc alpine-2.10/pico/main.c alpine-2.10.WrtAcc/pico/main.c
|
||||
*** alpine-2.10/pico/main.c 2013-01-11 11:25:29.000000000 -0700
|
||||
--- alpine-2.10.WrtAcc/pico/main.c 2013-01-11 20:43:11.000000000 -0700
|
||||
***************
|
||||
*** 416,421 ****
|
||||
--- 416,427 ----
|
||||
Index: alpine-2.11/pico/main.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pico/main.c
|
||||
+++ alpine-2.11/pico/main.c
|
||||
@@ -416,6 +416,12 @@ main(int argc, char *argv[])
|
||||
emlwrite(_("You may possibly have new mail."), NULL);
|
||||
}
|
||||
|
||||
@ -352,57 +318,34 @@ diff -rc alpine-2.10/pico/main.c alpine-2.10.WrtAcc/pico/main.c
|
||||
if(km_popped)
|
||||
switch(c){
|
||||
case NODATA:
|
||||
diff -rc alpine-2.10/pico/search.c alpine-2.10.WrtAcc/pico/search.c
|
||||
*** alpine-2.10/pico/search.c 2013-01-11 11:25:29.000000000 -0700
|
||||
--- alpine-2.10.WrtAcc/pico/search.c 2013-01-11 20:43:11.000000000 -0700
|
||||
***************
|
||||
*** 274,280 ****
|
||||
Index: alpine-2.11/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)
|
||||
}
|
||||
|
||||
if(status + curwp->w_doto >= llength(curwp->w_dotp) ||
|
||||
! !eq(defpat[status],lgetc(curwp->w_dotp, curwp->w_doto + status).c))
|
||||
- !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! */
|
||||
status++;
|
||||
}
|
||||
--- 274,280 ----
|
||||
}
|
||||
|
||||
if(status + curwp->w_doto >= llength(curwp->w_dotp) ||
|
||||
! !eq((unsigned char)defpat[status],lgetc(curwp->w_dotp, curwp->w_doto + status).c))
|
||||
break; /* do nothing! */
|
||||
status++;
|
||||
}
|
||||
***************
|
||||
*** 927,933 ****
|
||||
@@ -931,7 +931,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..*/
|
||||
- if (eq(c, patrn[0]) != FALSE) { /* if we find it..*/
|
||||
+ if (eq(c, (unsigned char)patrn[0]) != FALSE) { /* if we find it..*/
|
||||
/* setup match pointers */
|
||||
matchline = curline;
|
||||
matchoff = curoff;
|
||||
--- 927,933 ----
|
||||
c = lgetc(curline, curoff++).c; /* get the char */
|
||||
|
||||
/* test it against first char in pattern */
|
||||
! if (eq(c, (unsigned char)patrn[0]) != FALSE) { /* if we find it..*/
|
||||
/* setup match pointers */
|
||||
matchline = curline;
|
||||
matchoff = curoff;
|
||||
***************
|
||||
*** 948,954 ****
|
||||
@@ -952,7 +952,7 @@ forscan(int *wrapt, /* boolean indicatin
|
||||
return(FALSE);
|
||||
|
||||
/* and test it against the pattern */
|
||||
! if (eq(*patptr, c) == FALSE)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
--- 948,954 ----
|
||||
return(FALSE);
|
||||
|
||||
/* and test it against the pattern */
|
||||
! if (eq((unsigned char) *patptr, c) == FALSE)
|
||||
- if (eq(*patptr, c) == FALSE)
|
||||
+ if (eq((unsigned char) *patptr, c) == FALSE)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
|
@ -1,9 +1,21 @@
|
||||
diff -rc alpine-2.10/alpine/confscroll.c alpine-2.10.colortext/alpine/confscroll.c
|
||||
*** alpine-2.10/alpine/confscroll.c 2013-01-11 15:21:34.000000000 -0700
|
||||
--- alpine-2.10.colortext/alpine/confscroll.c 2013-01-11 20:43:16.000000000 -0700
|
||||
***************
|
||||
*** 5180,5185 ****
|
||||
--- 5180,5188 ----
|
||||
---
|
||||
alpine/confscroll.c | 3
|
||||
pith/conf.c | 14 +++
|
||||
pith/conf.h | 4 +
|
||||
pith/conftype.h | 3
|
||||
pith/mailview.c | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
pith/mailview.h | 15 ++++
|
||||
pith/pine.hlp | 63 +++++++++++++++++
|
||||
pith/state.c | 3
|
||||
pith/state.h | 2
|
||||
pith/text.c | 9 ++
|
||||
10 files changed, 308 insertions(+)
|
||||
|
||||
Index: alpine-2.11/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
|
||||
|
||||
clear_index_cache(ps->mail_stream, 0);
|
||||
}
|
||||
@ -13,12 +25,11 @@ diff -rc alpine-2.10/alpine/confscroll.c alpine-2.10.colortext/alpine/confscroll
|
||||
else if(var == &ps->vars[V_INIT_CMD_LIST]){
|
||||
if(!revert)
|
||||
q_status_message(SM_ASYNC, 0, 3,
|
||||
diff -rc alpine-2.10/pith/conf.c alpine-2.10.colortext/pith/conf.c
|
||||
*** alpine-2.10/pith/conf.c 2013-01-11 19:45:41.000000000 -0700
|
||||
--- alpine-2.10.colortext/pith/conf.c 2013-01-11 20:43:16.000000000 -0700
|
||||
***************
|
||||
*** 226,231 ****
|
||||
--- 226,233 ----
|
||||
Index: alpine-2.11/pith/conf.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/conf.c
|
||||
+++ alpine-2.11/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.";
|
||||
|
||||
@ -27,9 +38,7 @@ diff -rc alpine-2.10/pith/conf.c alpine-2.10.colortext/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.";
|
||||
***************
|
||||
*** 558,563 ****
|
||||
--- 560,567 ----
|
||||
@@ -560,6 +562,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},
|
||||
@ -38,9 +47,7 @@ diff -rc alpine-2.10/pith/conf.c alpine-2.10.colortext/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,
|
||||
***************
|
||||
*** 809,814 ****
|
||||
--- 813,820 ----
|
||||
@@ -817,6 +821,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},
|
||||
@ -49,9 +56,7 @@ diff -rc alpine-2.10/pith/conf.c alpine-2.10.colortext/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},
|
||||
***************
|
||||
*** 1972,1977 ****
|
||||
--- 1978,1985 ----
|
||||
@@ -1985,6 +1991,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);
|
||||
@ -60,19 +65,15 @@ diff -rc alpine-2.10/pith/conf.c alpine-2.10.colortext/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);
|
||||
***************
|
||||
*** 6424,6429 ****
|
||||
--- 6432,6438 ----
|
||||
@@ -6483,6 +6491,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);
|
||||
+ set_color_val(&vars[V_SPECIAL_TEXT_FORE_COLOR], 0);
|
||||
|
||||
set_current_val(&ps->vars[V_INDEX_TOKEN_COLORS], TRUE, TRUE);
|
||||
set_current_val(&ps->vars[V_VIEW_HDR_COLORS], TRUE, TRUE);
|
||||
set_current_val(&ps->vars[V_KW_COLORS], TRUE, TRUE);
|
||||
***************
|
||||
*** 7599,7604 ****
|
||||
--- 7608,7615 ----
|
||||
@@ -7664,6 +7673,8 @@ config_help(int var, int feature)
|
||||
return(h_config_scroll_margin);
|
||||
case V_DEADLETS :
|
||||
return(h_config_deadlets);
|
||||
@ -81,9 +82,7 @@ diff -rc alpine-2.10/pith/conf.c alpine-2.10.colortext/pith/conf.c
|
||||
case V_FILLCOL :
|
||||
return(h_config_composer_wrap_column);
|
||||
case V_TCPOPENTIMEO :
|
||||
***************
|
||||
*** 7758,7763 ****
|
||||
--- 7769,7777 ----
|
||||
@@ -7829,6 +7840,9 @@ config_help(int var, int feature)
|
||||
case V_SIGNATURE_FORE_COLOR :
|
||||
case V_SIGNATURE_BACK_COLOR :
|
||||
return(h_config_signature_color);
|
||||
@ -93,12 +92,11 @@ diff -rc alpine-2.10/pith/conf.c alpine-2.10.colortext/pith/conf.c
|
||||
case V_PROMPT_FORE_COLOR :
|
||||
case V_PROMPT_BACK_COLOR :
|
||||
return(h_config_prompt_color);
|
||||
diff -rc alpine-2.10/pith/conf.h alpine-2.10.colortext/pith/conf.h
|
||||
*** alpine-2.10/pith/conf.h 2013-01-11 11:26:44.000000000 -0700
|
||||
--- alpine-2.10.colortext/pith/conf.h 2013-01-11 20:43:16.000000000 -0700
|
||||
***************
|
||||
*** 161,166 ****
|
||||
--- 161,168 ----
|
||||
Index: alpine-2.11/pith/conf.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/conf.h
|
||||
+++ alpine-2.11/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
|
||||
#define GLO_SPELLER vars[V_SPELLER].global_val.p
|
||||
@ -107,9 +105,7 @@ diff -rc alpine-2.10/pith/conf.h alpine-2.10.colortext/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
|
||||
***************
|
||||
*** 444,449 ****
|
||||
--- 446,453 ----
|
||||
@@ -456,6 +458,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
|
||||
@ -118,12 +114,11 @@ diff -rc alpine-2.10/pith/conf.h alpine-2.10.colortext/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
|
||||
diff -rc alpine-2.10/pith/conftype.h alpine-2.10.colortext/pith/conftype.h
|
||||
*** alpine-2.10/pith/conftype.h 2013-01-11 19:45:41.000000000 -0700
|
||||
--- alpine-2.10.colortext/pith/conftype.h 2013-01-11 20:43:16.000000000 -0700
|
||||
***************
|
||||
*** 80,85 ****
|
||||
--- 80,86 ----
|
||||
Index: alpine-2.11/pith/conftype.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/conftype.h
|
||||
+++ alpine-2.11/pith/conftype.h
|
||||
@@ -80,6 +80,7 @@ typedef enum { V_PERSONAL_NAME = 0
|
||||
, V_EDITOR
|
||||
, V_SPELLER
|
||||
, V_FILLCOL
|
||||
@ -131,9 +126,7 @@ diff -rc alpine-2.10/pith/conftype.h alpine-2.10.colortext/pith/conftype.h
|
||||
, V_REPLY_STRING
|
||||
, V_REPLY_INTRO
|
||||
, V_QUOTE_REPLACE_STRING
|
||||
***************
|
||||
*** 224,229 ****
|
||||
--- 225,232 ----
|
||||
@@ -230,6 +231,8 @@ typedef enum { V_PERSONAL_NAME = 0
|
||||
, V_INCUNSEEN_BACK_COLOR
|
||||
, V_SIGNATURE_FORE_COLOR
|
||||
, V_SIGNATURE_BACK_COLOR
|
||||
@ -142,12 +135,11 @@ diff -rc alpine-2.10/pith/conftype.h alpine-2.10.colortext/pith/conftype.h
|
||||
, V_PROMPT_FORE_COLOR
|
||||
, V_PROMPT_BACK_COLOR
|
||||
, V_HEADER_GENERAL_FORE_COLOR
|
||||
diff -rc alpine-2.10/pith/mailview.c alpine-2.10.colortext/pith/mailview.c
|
||||
*** alpine-2.10/pith/mailview.c 2013-01-11 17:43:09.000000000 -0700
|
||||
--- alpine-2.10.colortext/pith/mailview.c 2013-01-11 20:43:16.000000000 -0700
|
||||
***************
|
||||
*** 282,287 ****
|
||||
--- 282,295 ----
|
||||
Index: alpine-2.11/pith/mailview.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/mailview.c
|
||||
+++ alpine-2.11/pith/mailview.c
|
||||
@@ -282,6 +282,14 @@ format_body(long int msgno, BODY *body,
|
||||
if((flgs & FM_DISPLAY)
|
||||
&& !(flgs & FM_NOCOLOR)
|
||||
&& pico_usingcolor()
|
||||
@ -162,9 +154,7 @@ diff -rc alpine-2.10/pith/mailview.c alpine-2.10.colortext/pith/mailview.c
|
||||
&& ps_global->VAR_SIGNATURE_FORE_COLOR
|
||||
&& ps_global->VAR_SIGNATURE_BACK_COLOR){
|
||||
gf_link_filter(gf_line_test, gf_line_test_opt(color_signature, &is_in_sig));
|
||||
***************
|
||||
*** 2503,2508 ****
|
||||
--- 2511,2700 ----
|
||||
@@ -2503,6 +2511,190 @@ hdr_color(char *fieldname, char *value,
|
||||
return(color_pair);
|
||||
}
|
||||
|
||||
@ -355,12 +345,11 @@ diff -rc alpine-2.10/pith/mailview.c alpine-2.10.colortext/pith/mailview.c
|
||||
|
||||
/*
|
||||
* The argument fieldname is something like "Subject:..." or "Subject".
|
||||
diff -rc alpine-2.10/pith/mailview.h alpine-2.10.colortext/pith/mailview.h
|
||||
*** alpine-2.10/pith/mailview.h 2013-01-11 11:26:44.000000000 -0700
|
||||
--- alpine-2.10.colortext/pith/mailview.h 2013-01-11 20:43:16.000000000 -0700
|
||||
***************
|
||||
*** 30,35 ****
|
||||
--- 30,41 ----
|
||||
Index: alpine-2.11/pith/mailview.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/mailview.h
|
||||
+++ alpine-2.11/pith/mailview.h
|
||||
@@ -30,6 +30,12 @@
|
||||
#include "../pith/color.h"
|
||||
|
||||
|
||||
@ -373,9 +362,7 @@ diff -rc alpine-2.10/pith/mailview.h alpine-2.10.colortext/pith/mailview.h
|
||||
/* format_message flags */
|
||||
#define FM_DISPLAY 0x0001 /* result is headed for display */
|
||||
#define FM_NEW_MESS 0x0002 /* a new message so zero out attachment descrip */
|
||||
***************
|
||||
*** 126,131 ****
|
||||
--- 132,146 ----
|
||||
@@ -126,6 +132,15 @@ char *format_body(long int, BODY *, HAND
|
||||
int url_hilite(long, char *, LT_INS_S **, void *);
|
||||
int handle_start_color(char *, size_t, int *, int);
|
||||
int handle_end_color(char *, size_t, int *);
|
||||
@ -391,12 +378,11 @@ diff -rc alpine-2.10/pith/mailview.h alpine-2.10.colortext/pith/mailview.h
|
||||
|
||||
/*
|
||||
* BUG: BELOW IS UNIX/PC ONLY since config'd browser means nothing to webpine
|
||||
diff -rc alpine-2.10/pith/pine.hlp alpine-2.10.colortext/pith/pine.hlp
|
||||
*** alpine-2.10/pith/pine.hlp 2013-01-11 20:33:27.000000000 -0700
|
||||
--- alpine-2.10.colortext/pith/pine.hlp 2013-01-11 20:43:16.000000000 -0700
|
||||
***************
|
||||
*** 3517,3522 ****
|
||||
--- 3517,3523 ----
|
||||
Index: alpine-2.11/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
|
||||
<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>
|
||||
@ -404,9 +390,7 @@ diff -rc alpine-2.10/pith/pine.hlp alpine-2.10.colortext/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>
|
||||
***************
|
||||
*** 3545,3550 ****
|
||||
--- 3546,3552 ----
|
||||
@@ -3591,6 +3592,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>
|
||||
@ -414,9 +398,7 @@ diff -rc alpine-2.10/pith/pine.hlp alpine-2.10.colortext/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>
|
||||
***************
|
||||
*** 22792,22797 ****
|
||||
--- 22794,22836 ----
|
||||
@@ -22838,6 +22840,43 @@ That won't work because spell works in a
|
||||
<End of help on this topic>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -460,9 +442,7 @@ diff -rc alpine-2.10/pith/pine.hlp alpine-2.10.colortext/pith/pine.hlp
|
||||
====== h_config_display_filters =====
|
||||
<HTML>
|
||||
<HEAD>
|
||||
***************
|
||||
*** 31396,31401 ****
|
||||
--- 31435,31464 ----
|
||||
@@ -31455,6 +31494,30 @@ the Quote3 Color is black characters on
|
||||
<P>
|
||||
<A HREF="h_color_setup">Descriptions of the available commands</A>
|
||||
<P>
|
||||
@ -493,12 +473,11 @@ diff -rc alpine-2.10/pith/pine.hlp alpine-2.10.colortext/pith/pine.hlp
|
||||
Look <A HREF="h_edit_nav_cmds">here</A>
|
||||
to see the available Editing and Navigation commands.
|
||||
<P>
|
||||
diff -rc alpine-2.10/pith/state.c alpine-2.10.colortext/pith/state.c
|
||||
*** alpine-2.10/pith/state.c 2013-01-11 11:26:44.000000000 -0700
|
||||
--- alpine-2.10.colortext/pith/state.c 2013-01-11 20:43:16.000000000 -0700
|
||||
***************
|
||||
*** 131,136 ****
|
||||
--- 131,139 ----
|
||||
Index: alpine-2.11/pith/state.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/state.c
|
||||
+++ alpine-2.11/pith/state.c
|
||||
@@ -131,6 +131,9 @@ free_pine_struct(struct pine **pps)
|
||||
if((*pps)->folders_dir != NULL)
|
||||
fs_give((void **)&(*pps)->folders_dir);
|
||||
|
||||
@ -508,12 +487,11 @@ diff -rc alpine-2.10/pith/state.c alpine-2.10.colortext/pith/state.c
|
||||
if((*pps)->ui.homedir)
|
||||
fs_give((void **)&(*pps)->ui.homedir);
|
||||
|
||||
diff -rc alpine-2.10/pith/state.h alpine-2.10.colortext/pith/state.h
|
||||
*** alpine-2.10/pith/state.h 2013-01-11 19:45:41.000000000 -0700
|
||||
--- alpine-2.10.colortext/pith/state.h 2013-01-11 20:43:16.000000000 -0700
|
||||
***************
|
||||
*** 320,325 ****
|
||||
--- 320,327 ----
|
||||
Index: alpine-2.11/pith/state.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/state.h
|
||||
+++ alpine-2.11/pith/state.h
|
||||
@@ -326,6 +326,8 @@ struct pine {
|
||||
char *display_charmap; /* needs to be freed */
|
||||
char *keyboard_charmap; /* needs to be freed */
|
||||
void *input_cs;
|
||||
@ -522,12 +500,11 @@ diff -rc alpine-2.10/pith/state.h alpine-2.10.colortext/pith/state.h
|
||||
|
||||
char *posting_charmap; /* needs to be freed */
|
||||
|
||||
diff -rc alpine-2.10/pith/text.c alpine-2.10.colortext/pith/text.c
|
||||
*** alpine-2.10/pith/text.c 2013-01-11 11:26:44.000000000 -0700
|
||||
--- alpine-2.10.colortext/pith/text.c 2013-01-11 20:43:16.000000000 -0700
|
||||
***************
|
||||
*** 171,176 ****
|
||||
--- 171,185 ----
|
||||
Index: alpine-2.11/pith/text.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/text.c
|
||||
+++ alpine-2.11/pith/text.c
|
||||
@@ -171,6 +171,15 @@ decode_text(ATTACH_S *att,
|
||||
gf_url_hilite_opt(&uh,handlesp,0));
|
||||
}
|
||||
|
||||
|
2138
chappa-fancy.patch
2138
chappa-fancy.patch
File diff suppressed because it is too large
Load Diff
@ -1,9 +1,16 @@
|
||||
diff -rc alpine-2.10/alpine/mailcmd.c alpine-2.10.ignoresize/alpine/mailcmd.c
|
||||
*** alpine-2.10/alpine/mailcmd.c 2013-01-11 15:21:34.000000000 -0700
|
||||
--- alpine-2.10.ignoresize/alpine/mailcmd.c 2013-01-11 20:43:20.000000000 -0700
|
||||
***************
|
||||
*** 3349,3354 ****
|
||||
--- 3349,3357 ----
|
||||
---
|
||||
alpine/mailcmd.c | 3 +++
|
||||
pith/conf.c | 2 ++
|
||||
pith/conftype.h | 1 +
|
||||
pith/pine.hlp | 35 +++++++++++++++++++++++++++++++++++
|
||||
pith/save.c | 1 +
|
||||
5 files changed, 42 insertions(+)
|
||||
|
||||
Index: alpine-2.11/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
|
||||
{-1, 0, NULL, NULL}
|
||||
};
|
||||
|
||||
@ -13,12 +20,11 @@ diff -rc alpine-2.10/alpine/mailcmd.c alpine-2.10.ignoresize/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");
|
||||
diff -rc alpine-2.10/pith/conf.c alpine-2.10.ignoresize/pith/conf.c
|
||||
*** alpine-2.10/pith/conf.c 2013-01-11 19:45:41.000000000 -0700
|
||||
--- alpine-2.10.ignoresize/pith/conf.c 2013-01-11 20:43:20.000000000 -0700
|
||||
***************
|
||||
*** 3082,3087 ****
|
||||
--- 3082,3089 ----
|
||||
Index: alpine-2.11/pith/conf.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/conf.c
|
||||
+++ alpine-2.11/pith/conf.c
|
||||
@@ -3123,6 +3123,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},
|
||||
@ -27,12 +33,11 @@ diff -rc alpine-2.10/pith/conf.c alpine-2.10.ignoresize/pith/conf.c
|
||||
{"maildrops-preserve-state", NULL,
|
||||
F_MAILDROPS_PRESERVE_STATE, h_config_maildrops_preserve_state,
|
||||
PREF_MISC, 0},
|
||||
diff -rc alpine-2.10/pith/conftype.h alpine-2.10.ignoresize/pith/conftype.h
|
||||
*** alpine-2.10/pith/conftype.h 2013-01-11 19:45:41.000000000 -0700
|
||||
--- alpine-2.10.ignoresize/pith/conftype.h 2013-01-11 20:43:20.000000000 -0700
|
||||
***************
|
||||
*** 335,340 ****
|
||||
--- 335,341 ----
|
||||
Index: alpine-2.11/pith/conftype.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/conftype.h
|
||||
+++ alpine-2.11/pith/conftype.h
|
||||
@@ -346,6 +346,7 @@ typedef enum {
|
||||
F_FORCE_ARROW,
|
||||
F_PRUNE_USES_ISO,
|
||||
F_ALT_ED_NOW,
|
||||
@ -40,22 +45,19 @@ diff -rc alpine-2.10/pith/conftype.h alpine-2.10.ignoresize/pith/conftype.h
|
||||
F_SHOW_DELAY_CUE,
|
||||
F_CANCEL_CONFIRM,
|
||||
F_AUTO_OPEN_NEXT_UNREAD,
|
||||
diff -rc alpine-2.10/pith/pine.hlp alpine-2.10.ignoresize/pith/pine.hlp
|
||||
*** alpine-2.10/pith/pine.hlp 2013-01-11 20:33:27.000000000 -0700
|
||||
--- alpine-2.10.ignoresize/pith/pine.hlp 2013-01-11 20:43:20.000000000 -0700
|
||||
***************
|
||||
*** 3251,3256 ****
|
||||
--- 3251,3257 ----
|
||||
Index: alpine-2.11/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
|
||||
<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>
|
||||
+<li><a href="h_config_ignore_size">FEATURE: <!--#echo var="FEAT_ignore-size-changes"--></a>
|
||||
<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>
|
||||
<li><a href="h_config_hide_nntp_path">FEATURE: <!--#echo var="FEAT_hide-nntp-path"--></a>
|
||||
***************
|
||||
*** 30437,30442 ****
|
||||
--- 30438,30477 ----
|
||||
@@ -30787,6 +30788,40 @@ but that is not implemented.
|
||||
|
||||
<P>
|
||||
<End of help on this topic>
|
||||
@ -96,12 +98,11 @@ diff -rc alpine-2.10/pith/pine.hlp alpine-2.10.ignoresize/pith/pine.hlp
|
||||
</BODY>
|
||||
</HTML>
|
||||
====== h_config_force_low_speed =====
|
||||
diff -rc alpine-2.10/pith/save.c alpine-2.10.ignoresize/pith/save.c
|
||||
*** alpine-2.10/pith/save.c 2013-01-11 11:26:44.000000000 -0700
|
||||
--- alpine-2.10.ignoresize/pith/save.c 2013-01-11 20:43:20.000000000 -0700
|
||||
***************
|
||||
*** 1157,1162 ****
|
||||
--- 1157,1163 ----
|
||||
Index: alpine-2.11/pith/save.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/save.c
|
||||
+++ alpine-2.11/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",
|
||||
mn_raw2m(pkg->msgmap, raw));
|
||||
|
@ -1,9 +1,13 @@
|
||||
diff -rc alpine-2.10/pico/display.c alpine-2.10.insertpat/pico/display.c
|
||||
*** alpine-2.10/pico/display.c 2013-01-11 11:25:29.000000000 -0700
|
||||
--- alpine-2.10.insertpat/pico/display.c 2013-01-11 20:43:15.000000000 -0700
|
||||
***************
|
||||
*** 1760,1765 ****
|
||||
--- 1760,1777 ----
|
||||
---
|
||||
pico/display.c | 12 ++++++++++++
|
||||
pico/search.c | 4 ++++
|
||||
2 files changed, 16 insertions(+)
|
||||
|
||||
Index: alpine-2.11/pico/display.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pico/display.c
|
||||
+++ alpine-2.11/pico/display.c
|
||||
@@ -1760,6 +1760,18 @@ mlreplyd(UCS *prompt, UCS *buf, int nbuf
|
||||
|
||||
continue;
|
||||
|
||||
@ -22,12 +26,11 @@ diff -rc alpine-2.10/pico/display.c alpine-2.10.insertpat/pico/display.c
|
||||
case (CTRL|'G') : /* CTRL-G help */
|
||||
if(term.t_mrow == 0 && km_popped == 0){
|
||||
movecursor(term.t_nrow-2, 0);
|
||||
diff -rc alpine-2.10/pico/search.c alpine-2.10.insertpat/pico/search.c
|
||||
*** alpine-2.10/pico/search.c 2013-01-11 11:25:29.000000000 -0700
|
||||
--- alpine-2.10.insertpat/pico/search.c 2013-01-11 20:43:15.000000000 -0700
|
||||
***************
|
||||
*** 76,81 ****
|
||||
--- 76,85 ----
|
||||
Index: alpine-2.11/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
|
||||
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."),
|
||||
" ",
|
||||
|
@ -1,9 +1,182 @@
|
||||
diff -rc alpine-2.10/alpine/alpine.c alpine-2.10.maildir/alpine/alpine.c
|
||||
*** alpine-2.10/alpine/alpine.c 2013-01-11 15:21:34.000000000 -0700
|
||||
--- alpine-2.10.maildir/alpine/alpine.c 2013-01-11 20:43:06.000000000 -0700
|
||||
***************
|
||||
*** 557,562 ****
|
||||
--- 557,567 ----
|
||||
---
|
||||
README.maildir | 149 ++
|
||||
alpine/alpine.c | 5
|
||||
alpine/confscroll.c | 6
|
||||
imap/src/c-client/mail.c | 11
|
||||
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.h | 226 +++
|
||||
imap/src/osdep/unix/os_cyg.h | 1
|
||||
pith/conf.c | 27
|
||||
pith/conf.h | 4
|
||||
pith/conftype.h | 6
|
||||
pith/init.c | 3
|
||||
pith/pattern.c | 26
|
||||
pith/pine.hlp | 139 ++
|
||||
pith/send.c | 7
|
||||
17 files changed, 3293 insertions(+), 15 deletions(-)
|
||||
|
||||
Index: alpine-2.11/README.maildir
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ alpine-2.11/README.maildir
|
||||
@@ -0,0 +1,149 @@
|
||||
+---------------------------------------
|
||||
+
|
||||
+Maildir Driver for Alpine 2.0
|
||||
+By Eduardo Chappa
|
||||
+<chappa@gmx.com>
|
||||
+
|
||||
+---------------------------------------
|
||||
+1. General Information About This Patch
|
||||
+---------------------------------------
|
||||
+
|
||||
+This patch adds support for the maildir format to Alpine. We take the
|
||||
+approach that this patch is one more driver among the number of formats
|
||||
+supported by Alpine (more generally c-client). This approach differs from
|
||||
+older versions of similar patches, in that once a maildir patch was
|
||||
+applied, it was assumed that all your folders would be created in the
|
||||
+maildir format.
|
||||
+
|
||||
+This patch does not assume that maildir is a preferred format, instead
|
||||
+puts maildir in equal footing with other formats (mbox, mbx, mix, etc),
|
||||
+and so a maildir folder in the mail/ collection is treated in the same way
|
||||
+as any other folder in any other format. In other words, just by reading
|
||||
+the name of a folder, or opening it, or doing any operation with it, you
|
||||
+can not know in which format the folder is.
|
||||
+
|
||||
+This implies that if you want to add a folder in the maildir format to the
|
||||
+mail/ collection, then you must add by pressing "A" in the folder list
|
||||
+collection and enter "#driver.md/mail/name_maildir_folder".
|
||||
+
|
||||
+If you only want to use maildir, however, you can do so too. In this case,
|
||||
+you must create a maildir collection. In that collection, only maildir
|
||||
+folders will be listed. If there is any folder in any other format, that
|
||||
+folder will be ignored. In another words, any folder listed there is in
|
||||
+maildir format and can be accessed through that collection, conversely,
|
||||
+any folder not listed there is not in maildir format and there is no way
|
||||
+to access it using this collection.
|
||||
+
|
||||
+In order to create a maildir collection, you could press M S L, and "A" to
|
||||
+add a collection. Fill in the required fields as follows:
|
||||
+
|
||||
+Nickname : Anything
|
||||
+Server :
|
||||
+Path : #md/relative/path/to/maildir/collection/
|
||||
+View :
|
||||
+
|
||||
+For example, if "path" is set to "#md/mail/", then Alpine will look for your
|
||||
+maildir folders that are in ~/mail/.
|
||||
+
|
||||
+The code in this patch is mostly based in code for the unix driver plus
|
||||
+some combinations of the mh, mbx and nntp drivers for the c-client
|
||||
+library. Those drivers were designed by Mark Crispin, and bugs in this
|
||||
+code are not his bugs, but my own.
|
||||
+
|
||||
+ I got all the specification for this patch from
|
||||
+http://cr.yp.to/proto/maildir.html. If you know of a place with a better
|
||||
+specification for maildir format please let me know. The method this patch
|
||||
+uses to create a unique filename for a message is one of the "old
|
||||
+fashioned" methods. I realize that this is old fashioned, but it is
|
||||
+portable, and portability is the main reason why I decided to use an old
|
||||
+fashioned method (most methods are not portable. See the word
|
||||
+"Unfortunately" in that document).
|
||||
+
|
||||
+--------------
|
||||
+2. Other Goals
|
||||
+--------------
|
||||
+
|
||||
+ It is intended that this code will work well with any application
|
||||
+written using the c-client library. Of paramount importance is to make the
|
||||
+associated imap server work well when the server accesses a folder in
|
||||
+Maildir format. The program mailutil should also work flawlessly with this
|
||||
+implemetation of the driver.
|
||||
+
|
||||
+ It is intended that this driver be fast and stable. We intend not to
|
||||
+patch Alpine to make this driver do its work, unless such patching is for
|
||||
+fixing bugs in Alpine or to pass parameters to the driver.
|
||||
+
|
||||
+------------------------------------------------------------------------
|
||||
+3. What are the known bugs of this implementation of the Maildir driver?
|
||||
+------------------------------------------------------------------------
|
||||
+
|
||||
+ I don't know any at this time. There have been bugs before, though, but
|
||||
+I try to fix bugs as soon as they are reported.
|
||||
+
|
||||
+----------
|
||||
+4. On UIDs
|
||||
+----------
|
||||
+
|
||||
+ This patch keeps uids in the name of the file that contains the message,
|
||||
+by adding a ",u=" string to the file name to save the uid of a message. A
|
||||
+file is kept between sessions to save information on the last uid assigned
|
||||
+and its time of validity. Only one session with writing access can write
|
||||
+uids, all others must wait for the other session to assign them. The
|
||||
+session assigning uids creates a ".uidtemp" file which other sessions must
|
||||
+not disturb.
|
||||
+
|
||||
+ Uid support appeared in Alpine 1.00 (snapshot 925), and is experimental,
|
||||
+please report any problems.
|
||||
+
|
||||
+----------------------------------------------
|
||||
+5. Configuring Alpine and Setting up a Maildir
|
||||
+----------------------------------------------
|
||||
+
|
||||
+Once this approach was chosen, it implied the following:
|
||||
+
|
||||
+ * This patch assumes that your INBOX is located at "$HOME/Maildir".
|
||||
+ This is a directory which should have three subdirectories "cur",
|
||||
+ "tmp" and "new". Mail is delivered to 'new' and read from 'cur'. I
|
||||
+ have added a configuration option "maildir-location" which can be
|
||||
+ used to tell Alpine where your Maildir inbox is, in case your system
|
||||
+ does not use the above directory (e.g. your system may use
|
||||
+ "~/.maildir"). In this case define that variable to be the name of
|
||||
+ the directory where your e-mail is being delivered (e.g.
|
||||
+ ".maildir").
|
||||
+
|
||||
+ * If you want to use the above configuration as your inbox, you must
|
||||
+ define your inbox-path as "#md/inbox" (no quotes). You can define
|
||||
+ the inbox-path like above even if you have changed the
|
||||
+ maildir-location variable. That's the whole point of that variable.
|
||||
+
|
||||
+-------------------------------------------
|
||||
+6. What about Courier/Dovecot file systems?
|
||||
+-------------------------------------------
|
||||
+
|
||||
+In a courier file system all folders are subfolders of a root folder
|
||||
+called INBOX. Normally INBOX is located at ~/Maildir and subfolders are
|
||||
+"dot" directories in ~/Maildir. For example ~/Maildir/.Trash is a
|
||||
+subfolder of INBOX and is accessed with the nickname "INBOX.Trash".
|
||||
+
|
||||
+You can not access folders in this way unless you preceed them with the
|
||||
+string "#mc/". The purpose of the string "#mc/" is to warn Alpine that a
|
||||
+collection in the Courier format is going to be accessed. Therefore, you
|
||||
+can SELECT a folder like "#mc/INBOX.Trash", but not "INBOX.Trash"
|
||||
+
|
||||
+You can access a collection through a server, but if you want to access a
|
||||
+collection of folders created using the Courier server, you MUST edit your
|
||||
+".pinerc" file and enter the definition of the collection as follows:
|
||||
+
|
||||
+folder-collections="Anything you want" #mc/INBOX.[]
|
||||
+
|
||||
+You can replace the string "#mc/INBOX." by something different, for example
|
||||
+"#mc/Courier/." will make Alpine search for your collection in ~/Courier.
|
||||
+
|
||||
+You can not add this setting directly into Alpine because Alpine fails to
|
||||
+accept this value from its input, but it takes it correctly when it is
|
||||
+added through the ".pinerc" file.
|
||||
+
|
||||
+You can access your inbox as "#mc/INBOX" or "#md/INBOX". Both definitions
|
||||
+point to the same place.
|
||||
+
|
||||
+Last Updated May 28, 2011
|
||||
Index: alpine-2.11/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)
|
||||
if(F_ON(F_MAILDROPS_PRESERVE_STATE, ps_global))
|
||||
mail_parameters(NULL, SET_SNARFPRESERVE, (void *) TRUE);
|
||||
|
||||
@ -15,12 +188,11 @@ diff -rc alpine-2.10/alpine/alpine.c alpine-2.10.maildir/alpine/alpine.c
|
||||
rvl = 0L;
|
||||
if(pine_state->VAR_NNTPRANGE){
|
||||
if(!SVAR_NNTPRANGE(pine_state, rvl, tmp_20k_buf, SIZEOF_20KBUF))
|
||||
diff -rc alpine-2.10/alpine/confscroll.c alpine-2.10.maildir/alpine/confscroll.c
|
||||
*** alpine-2.10/alpine/confscroll.c 2013-01-11 15:21:34.000000000 -0700
|
||||
--- alpine-2.10.maildir/alpine/confscroll.c 2013-01-11 20:43:06.000000000 -0700
|
||||
***************
|
||||
*** 5493,5498 ****
|
||||
--- 5493,5504 ----
|
||||
Index: alpine-2.11/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
|
||||
(void *)var->current_val.p);
|
||||
}
|
||||
#endif
|
||||
@ -33,29 +205,20 @@ diff -rc alpine-2.10/alpine/confscroll.c alpine-2.10.maildir/alpine/confscroll.c
|
||||
else if(revert && standard_radio_var(ps, var)){
|
||||
|
||||
cur_rule_value(var, TRUE, FALSE);
|
||||
diff -rc alpine-2.10/imap/src/c-client/mail.c alpine-2.10.maildir/imap/src/c-client/mail.c
|
||||
*** alpine-2.10/imap/src/c-client/mail.c 2013-01-11 15:21:34.000000000 -0700
|
||||
--- alpine-2.10.maildir/imap/src/c-client/mail.c 2013-01-11 20:43:06.000000000 -0700
|
||||
***************
|
||||
*** 991,997 ****
|
||||
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
|
||||
@@ -991,7 +991,7 @@ long mail_create (MAILSTREAM *stream,cha
|
||||
MAILSTREAM *ts;
|
||||
char *s,*t,tmp[MAILTMPLEN];
|
||||
size_t i;
|
||||
! DRIVER *d;
|
||||
- DRIVER *d;
|
||||
+ DRIVER *d, *md;
|
||||
/* never allow names with newlines */
|
||||
if (s = strpbrk (mailbox,"\015\012")) {
|
||||
MM_LOG ("Can't create mailbox with such a name",ERROR);
|
||||
--- 991,997 ----
|
||||
MAILSTREAM *ts;
|
||||
char *s,*t,tmp[MAILTMPLEN];
|
||||
size_t i;
|
||||
! DRIVER *d, *md;
|
||||
/* never allow names with newlines */
|
||||
if (s = strpbrk (mailbox,"\015\012")) {
|
||||
MM_LOG ("Can't create mailbox with such a name",ERROR);
|
||||
***************
|
||||
*** 1015,1020 ****
|
||||
--- 1015,1022 ----
|
||||
@@ -1015,6 +1015,8 @@ long mail_create (MAILSTREAM *stream,cha
|
||||
return NIL;
|
||||
}
|
||||
|
||||
@ -64,9 +227,7 @@ diff -rc alpine-2.10/imap/src/c-client/mail.c alpine-2.10.maildir/imap/src/c-cli
|
||||
/* see if special driver hack */
|
||||
if ((mailbox[0] == '#') && ((mailbox[1] == 'd') || (mailbox[1] == 'D')) &&
|
||||
((mailbox[2] == 'r') || (mailbox[2] == 'R')) &&
|
||||
***************
|
||||
*** 1045,1050 ****
|
||||
--- 1047,1059 ----
|
||||
@@ -1045,6 +1047,13 @@ long mail_create (MAILSTREAM *stream,cha
|
||||
(((*mailbox == '{') || (*mailbox == '#')) &&
|
||||
(stream = mail_open (NIL,mailbox,OP_PROTOTYPE | OP_SILENT))))
|
||||
d = stream->dtb;
|
||||
@ -80,12 +241,11 @@ diff -rc alpine-2.10/imap/src/c-client/mail.c alpine-2.10.maildir/imap/src/c-cli
|
||||
else if ((*mailbox != '{') && (ts = default_proto (NIL))) d = ts->dtb;
|
||||
else { /* failed utterly */
|
||||
sprintf (tmp,"Can't create mailbox %.80s: indeterminate format",mailbox);
|
||||
diff -rc alpine-2.10/imap/src/c-client/mail.h alpine-2.10.maildir/imap/src/c-client/mail.h
|
||||
*** alpine-2.10/imap/src/c-client/mail.h 2013-01-11 17:43:09.000000000 -0700
|
||||
--- alpine-2.10.maildir/imap/src/c-client/mail.h 2013-01-11 20:43:06.000000000 -0700
|
||||
***************
|
||||
*** 353,358 ****
|
||||
--- 353,362 ----
|
||||
Index: alpine-2.11/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 @@
|
||||
#define SET_SCANCONTENTS (long) 573
|
||||
#define GET_MHALLOWINBOX (long) 574
|
||||
#define SET_MHALLOWINBOX (long) 575
|
||||
@ -96,32 +256,60 @@ diff -rc alpine-2.10/imap/src/c-client/mail.h alpine-2.10.maildir/imap/src/c-cli
|
||||
|
||||
/* Driver flags */
|
||||
|
||||
diff -rc alpine-2.10/imap/src/osdep/unix/dummy.c alpine-2.10.maildir/imap/src/osdep/unix/dummy.c
|
||||
*** alpine-2.10/imap/src/osdep/unix/dummy.c 2011-01-09 21:00:19.000000000 -0700
|
||||
--- alpine-2.10.maildir/imap/src/osdep/unix/dummy.c 2013-01-11 20:43:06.000000000 -0700
|
||||
***************
|
||||
*** 106,118 ****
|
||||
Index: alpine-2.11/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
|
||||
# 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.
|
||||
#
|
||||
-DEFAULTDRIVERS=imap nntp pop3 mix mx mbx tenex mtx mh mmdf unix news phile
|
||||
+DEFAULTDRIVERS=maildir courier imap nntp pop3 mix mx mbx tenex mtx mh mmdf unix news phile
|
||||
CHUNKSIZE=65536
|
||||
|
||||
# Normally no need to change any of these
|
||||
@@ -153,7 +153,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 \
|
||||
- unix.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o mix.o
|
||||
+ unix.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o mix.o maildir.o
|
||||
CFLAGS=-g
|
||||
|
||||
CAT=cat
|
||||
@@ -290,7 +290,7 @@ cvx: # Convex
|
||||
|
||||
cyg: # Cygwin - note that most local file drivers don't work!!
|
||||
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
|
||||
- DEFAULTDRIVERS="imap nntp pop3 mbx unix phile" \
|
||||
+ DEFAULTDRIVERS="imap nntp pop3 mbx unix maildir phile" \
|
||||
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
|
||||
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
|
||||
-
|
||||
+maildir.o: mail.h misc.h osdep.h maildir.h dummy.h
|
||||
|
||||
# OS-dependent
|
||||
|
||||
Index: alpine-2.11/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};
|
||||
* Accepts: mailbox name
|
||||
* Returns: our driver if name is valid, NIL otherwise
|
||||
*/
|
||||
!
|
||||
-
|
||||
+char * maildir_remove_root(char *);
|
||||
DRIVER *dummy_valid (char *name)
|
||||
{
|
||||
! char *s,tmp[MAILTMPLEN];
|
||||
struct stat sbuf;
|
||||
/* must be valid local mailbox */
|
||||
! if (name && *name && (*name != '{') && (s = mailboxfile (tmp,name))) {
|
||||
/* indeterminate clearbox INBOX */
|
||||
if (!*s) return &dummydriver;
|
||||
else if (!stat (s,&sbuf)) switch (sbuf.st_mode & S_IFMT) {
|
||||
--- 106,124 ----
|
||||
* Accepts: mailbox name
|
||||
* Returns: our driver if name is valid, NIL otherwise
|
||||
*/
|
||||
! char * maildir_remove_root(char *);
|
||||
DRIVER *dummy_valid (char *name)
|
||||
{
|
||||
! char *s,tmp[MAILTMPLEN], *rname;
|
||||
- char *s,tmp[MAILTMPLEN];
|
||||
+ char *s,tmp[MAILTMPLEN], *rname;
|
||||
struct stat sbuf;
|
||||
+
|
||||
+ if(strlen(name) > MAILTMPLEN)
|
||||
@ -130,33 +318,23 @@ diff -rc alpine-2.10/imap/src/osdep/unix/dummy.c alpine-2.10.maildir/imap/src/os
|
||||
+ strcpy(tmp, name);
|
||||
+ rname = maildir_remove_root(tmp);
|
||||
/* must be valid local mailbox */
|
||||
! if (rname && *rname && (*rname != '{') && (s = mailboxfile (tmp,rname))) {
|
||||
- if (name && *name && (*name != '{') && (s = mailboxfile (tmp,name))) {
|
||||
+ if (rname && *rname && (*rname != '{') && (s = mailboxfile (tmp,rname))) {
|
||||
/* indeterminate clearbox INBOX */
|
||||
if (!*s) return &dummydriver;
|
||||
else if (!stat (s,&sbuf)) switch (sbuf.st_mode & S_IFMT) {
|
||||
***************
|
||||
*** 121,128 ****
|
||||
@@ -121,8 +127,9 @@ DRIVER *dummy_valid (char *name)
|
||||
return &dummydriver;
|
||||
}
|
||||
/* blackbox INBOX does not exist yet */
|
||||
! else if (!compare_cstring (name,"INBOX")) return &dummydriver;
|
||||
}
|
||||
return NIL;
|
||||
}
|
||||
|
||||
--- 127,135 ----
|
||||
return &dummydriver;
|
||||
}
|
||||
/* blackbox INBOX does not exist yet */
|
||||
! else if (!compare_cstring (rname,"INBOX")) return &dummydriver;
|
||||
- else if (!compare_cstring (name,"INBOX")) return &dummydriver;
|
||||
+ else if (!compare_cstring (rname,"INBOX")) return &dummydriver;
|
||||
}
|
||||
+ if(rname) fs_give((void **)&rname);
|
||||
return NIL;
|
||||
}
|
||||
|
||||
***************
|
||||
*** 454,459 ****
|
||||
--- 461,468 ----
|
||||
@@ -454,6 +461,8 @@ long dummy_create (MAILSTREAM *stream,ch
|
||||
{
|
||||
char *s,tmp[MAILTMPLEN];
|
||||
long ret = NIL;
|
||||
@ -165,9 +343,7 @@ diff -rc alpine-2.10/imap/src/osdep/unix/dummy.c alpine-2.10.maildir/imap/src/os
|
||||
/* validate name */
|
||||
if (!(compare_cstring (mailbox,"INBOX") && (s = dummy_file (tmp,mailbox)))) {
|
||||
sprintf (tmp,"Can't create %.80s: invalid name",mailbox);
|
||||
***************
|
||||
*** 519,524 ****
|
||||
--- 528,541 ----
|
||||
@@ -519,6 +528,14 @@ long dummy_delete (MAILSTREAM *stream,ch
|
||||
{
|
||||
struct stat sbuf;
|
||||
char *s,tmp[MAILTMPLEN];
|
||||
@ -182,68 +358,43 @@ diff -rc alpine-2.10/imap/src/osdep/unix/dummy.c alpine-2.10.maildir/imap/src/os
|
||||
if (!(s = dummy_file (tmp,mailbox))) {
|
||||
sprintf (tmp,"Can't delete - invalid name: %.80s",s);
|
||||
MM_LOG (tmp,ERROR);
|
||||
***************
|
||||
*** 544,555 ****
|
||||
@@ -544,12 +561,23 @@ long dummy_delete (MAILSTREAM *stream,ch
|
||||
long dummy_rename (MAILSTREAM *stream,char *old,char *newname)
|
||||
{
|
||||
struct stat sbuf;
|
||||
! char c,*s,tmp[MAILTMPLEN],mbx[MAILTMPLEN],oldname[MAILTMPLEN];
|
||||
- char c,*s,tmp[MAILTMPLEN],mbx[MAILTMPLEN],oldname[MAILTMPLEN];
|
||||
+ char c,*s,tmp[MAILTMPLEN],mbx[MAILTMPLEN],oldname[MAILTMPLEN], *rold, *rnewname;
|
||||
+
|
||||
+ if(strlen(old) > MAILTMPLEN)
|
||||
+ old[MAILTMPLEN] = '\0';
|
||||
+
|
||||
+ if(strlen(newname) > MAILTMPLEN)
|
||||
+ newname[MAILTMPLEN] = '\0';
|
||||
+
|
||||
+ strcpy(tmp, old);
|
||||
+ rold = maildir_remove_root(tmp);
|
||||
+ strcpy(tmp, newname);
|
||||
+ rnewname = maildir_remove_root(tmp);
|
||||
/* no trailing / allowed */
|
||||
! if (!dummy_file (oldname,old) || !(s = dummy_file (mbx,newname)) ||
|
||||
- if (!dummy_file (oldname,old) || !(s = dummy_file (mbx,newname)) ||
|
||||
+ if (!dummy_file (oldname,rold) || !(s = dummy_file (mbx,rnewname)) ||
|
||||
stat (oldname,&sbuf) || ((s = strrchr (s,'/')) && !s[1] &&
|
||||
((sbuf.st_mode & S_IFMT) != S_IFDIR))) {
|
||||
! sprintf (mbx,"Can't rename %.80s to %.80s: invalid name",old,newname);
|
||||
- sprintf (mbx,"Can't rename %.80s to %.80s: invalid name",old,newname);
|
||||
+ sprintf (mbx,"Can't rename %.80s to %.80s: invalid name",rold,rnewname);
|
||||
MM_LOG (mbx,ERROR);
|
||||
return NIL;
|
||||
}
|
||||
--- 561,583 ----
|
||||
long dummy_rename (MAILSTREAM *stream,char *old,char *newname)
|
||||
{
|
||||
struct stat sbuf;
|
||||
! char c,*s,tmp[MAILTMPLEN],mbx[MAILTMPLEN],oldname[MAILTMPLEN], *rold, *rnewname;
|
||||
!
|
||||
! if(strlen(old) > MAILTMPLEN)
|
||||
! old[MAILTMPLEN] = '\0';
|
||||
!
|
||||
! if(strlen(newname) > MAILTMPLEN)
|
||||
! newname[MAILTMPLEN] = '\0';
|
||||
!
|
||||
! strcpy(tmp, old);
|
||||
! rold = maildir_remove_root(tmp);
|
||||
! strcpy(tmp, newname);
|
||||
! rnewname = maildir_remove_root(tmp);
|
||||
/* no trailing / allowed */
|
||||
! if (!dummy_file (oldname,rold) || !(s = dummy_file (mbx,rnewname)) ||
|
||||
stat (oldname,&sbuf) || ((s = strrchr (s,'/')) && !s[1] &&
|
||||
((sbuf.st_mode & S_IFMT) != S_IFDIR))) {
|
||||
! sprintf (mbx,"Can't rename %.80s to %.80s: invalid name",rold,rnewname);
|
||||
MM_LOG (mbx,ERROR);
|
||||
return NIL;
|
||||
}
|
||||
***************
|
||||
*** 565,578 ****
|
||||
@@ -565,14 +593,16 @@ long dummy_rename (MAILSTREAM *stream,ch
|
||||
}
|
||||
}
|
||||
/* rename of non-ex INBOX creates dest */
|
||||
! if (!compare_cstring (old,"INBOX") && stat (oldname,&sbuf))
|
||||
- if (!compare_cstring (old,"INBOX") && stat (oldname,&sbuf))
|
||||
+ if (!compare_cstring (rold,"INBOX") && stat (oldname,&sbuf))
|
||||
return dummy_create (NIL,mbx);
|
||||
if (rename (oldname,mbx)) {
|
||||
! sprintf (tmp,"Can't rename mailbox %.80s to %.80s: %.80s",old,newname,
|
||||
strerror (errno));
|
||||
MM_LOG (tmp,ERROR);
|
||||
return NIL;
|
||||
}
|
||||
return T; /* return success */
|
||||
}
|
||||
|
||||
--- 593,608 ----
|
||||
}
|
||||
}
|
||||
/* rename of non-ex INBOX creates dest */
|
||||
! if (!compare_cstring (rold,"INBOX") && stat (oldname,&sbuf))
|
||||
return dummy_create (NIL,mbx);
|
||||
if (rename (oldname,mbx)) {
|
||||
! sprintf (tmp,"Can't rename mailbox %.80s to %.80s: %.80s",rold,rnewname,
|
||||
- sprintf (tmp,"Can't rename mailbox %.80s to %.80s: %.80s",old,newname,
|
||||
+ sprintf (tmp,"Can't rename mailbox %.80s to %.80s: %.80s",rold,rnewname,
|
||||
strerror (errno));
|
||||
MM_LOG (tmp,ERROR);
|
||||
return NIL;
|
||||
@ -253,12 +404,11 @@ diff -rc alpine-2.10/imap/src/osdep/unix/dummy.c alpine-2.10.maildir/imap/src/os
|
||||
return T; /* return success */
|
||||
}
|
||||
|
||||
diff -rc alpine-2.10/imap/src/osdep/unix/maildir.c alpine-2.10.maildir/imap/src/osdep/unix/maildir.c
|
||||
*** alpine-2.10/imap/src/osdep/unix/maildir.c 2013-01-11 20:43:06.000000000 -0700
|
||||
--- alpine-2.10.maildir/imap/src/osdep/unix/maildir.c 2013-01-11 20:43:06.000000000 -0700
|
||||
***************
|
||||
*** 0 ****
|
||||
--- 1,2638 ----
|
||||
Index: alpine-2.11/imap/src/osdep/unix/maildir.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ alpine-2.11/imap/src/osdep/unix/maildir.c
|
||||
@@ -0,0 +1,2638 @@
|
||||
+/*
|
||||
+ * Maildir driver for Alpine 2.00
|
||||
+ *
|
||||
@ -2897,12 +3047,11 @@ diff -rc alpine-2.10/imap/src/osdep/unix/maildir.c alpine-2.10.maildir/imap/src/
|
||||
+ LOCAL->uidtempfile = cpystr(tmp);
|
||||
+ }
|
||||
+}
|
||||
diff -rc alpine-2.10/imap/src/osdep/unix/maildir.h alpine-2.10.maildir/imap/src/osdep/unix/maildir.h
|
||||
*** alpine-2.10/imap/src/osdep/unix/maildir.h 2013-01-11 20:43:06.000000000 -0700
|
||||
--- alpine-2.10.maildir/imap/src/osdep/unix/maildir.h 2013-01-11 20:43:06.000000000 -0700
|
||||
***************
|
||||
*** 0 ****
|
||||
--- 1,226 ----
|
||||
Index: alpine-2.11/imap/src/osdep/unix/maildir.h
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ alpine-2.11/imap/src/osdep/unix/maildir.h
|
||||
@@ -0,0 +1,226 @@
|
||||
+/*
|
||||
+ * A few definitions that try to make this module portable to other
|
||||
+ * platforms (e.g. Cygwin). This module is based on the information from
|
||||
@ -3129,83 +3278,11 @@ diff -rc alpine-2.10/imap/src/osdep/unix/maildir.h alpine-2.10.maildir/imap/src/
|
||||
+void maildir_assign_uid(MAILSTREAM *stream, unsigned long msgno, unsigned long uid);
|
||||
+void maildir_uid_renew_tempfile(MAILSTREAM *stream);
|
||||
+
|
||||
diff -rc alpine-2.10/imap/src/osdep/unix/Makefile alpine-2.10.maildir/imap/src/osdep/unix/Makefile
|
||||
*** alpine-2.10/imap/src/osdep/unix/Makefile 2011-01-09 21:00:19.000000000 -0700
|
||||
--- alpine-2.10.maildir/imap/src/osdep/unix/Makefile 2013-01-11 20:43:06.000000000 -0700
|
||||
***************
|
||||
*** 144,150 ****
|
||||
# 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.
|
||||
#
|
||||
! DEFAULTDRIVERS=imap nntp pop3 mix mx mbx tenex mtx mh mmdf unix news phile
|
||||
CHUNKSIZE=65536
|
||||
|
||||
# Normally no need to change any of these
|
||||
--- 144,150 ----
|
||||
# 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.
|
||||
#
|
||||
! DEFAULTDRIVERS=maildir courier imap nntp pop3 mix mx mbx tenex mtx mh mmdf unix news phile
|
||||
CHUNKSIZE=65536
|
||||
|
||||
# Normally no need to change any of these
|
||||
***************
|
||||
*** 153,159 ****
|
||||
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 \
|
||||
! unix.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o mix.o
|
||||
CFLAGS=-g
|
||||
|
||||
CAT=cat
|
||||
--- 153,159 ----
|
||||
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 \
|
||||
! unix.o mbx.o mmdf.o tenex.o mtx.o news.o phile.o mh.o mx.o mix.o maildir.o
|
||||
CFLAGS=-g
|
||||
|
||||
CAT=cat
|
||||
***************
|
||||
*** 290,296 ****
|
||||
|
||||
cyg: # Cygwin - note that most local file drivers don't work!!
|
||||
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
|
||||
! DEFAULTDRIVERS="imap nntp pop3 mbx unix phile" \
|
||||
SIGTYPE=psx CHECKPW=cyg LOGINPW=cyg CRXTYPE=std \
|
||||
SPOOLDIR=/var \
|
||||
ACTIVEFILE=/usr/local/news/lib/active \
|
||||
--- 290,296 ----
|
||||
|
||||
cyg: # Cygwin - note that most local file drivers don't work!!
|
||||
$(BUILD) `$(CAT) SPECIALS` OS=$@ \
|
||||
! DEFAULTDRIVERS="imap nntp pop3 mbx unix maildir phile" \
|
||||
SIGTYPE=psx CHECKPW=cyg LOGINPW=cyg CRXTYPE=std \
|
||||
SPOOLDIR=/var \
|
||||
ACTIVEFILE=/usr/local/news/lib/active \
|
||||
***************
|
||||
*** 900,906 ****
|
||||
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
|
||||
!
|
||||
|
||||
# OS-dependent
|
||||
|
||||
--- 900,906 ----
|
||||
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
|
||||
! maildir.o: mail.h misc.h osdep.h maildir.h dummy.h
|
||||
|
||||
# OS-dependent
|
||||
|
||||
diff -rc alpine-2.10/imap/src/osdep/unix/os_cyg.h alpine-2.10.maildir/imap/src/osdep/unix/os_cyg.h
|
||||
*** alpine-2.10/imap/src/osdep/unix/os_cyg.h 2011-01-09 21:00:19.000000000 -0700
|
||||
--- alpine-2.10.maildir/imap/src/osdep/unix/os_cyg.h 2013-01-11 20:43:06.000000000 -0700
|
||||
***************
|
||||
*** 47,52 ****
|
||||
--- 47,53 ----
|
||||
Index: alpine-2.11/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
|
||||
@@ -47,6 +47,7 @@
|
||||
#define setpgrp setpgid
|
||||
|
||||
#define SYSTEMUID 18 /* Cygwin returns this for SYSTEM */
|
||||
@ -3213,12 +3290,11 @@ diff -rc alpine-2.10/imap/src/osdep/unix/os_cyg.h alpine-2.10.maildir/imap/src/o
|
||||
#define geteuid Geteuid
|
||||
uid_t Geteuid (void);
|
||||
|
||||
diff -rc alpine-2.10/pith/conf.c alpine-2.10.maildir/pith/conf.c
|
||||
*** alpine-2.10/pith/conf.c 2013-01-11 19:45:41.000000000 -0700
|
||||
--- alpine-2.10.maildir/pith/conf.c 2013-01-11 20:43:06.000000000 -0700
|
||||
***************
|
||||
*** 428,433 ****
|
||||
--- 428,436 ----
|
||||
Index: alpine-2.11/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[] = "
|
||||
|
||||
CONF_TXT_T cf_text_newsrc_path[] = "Full path and name of NEWSRC file";
|
||||
|
||||
@ -3228,9 +3304,7 @@ diff -rc alpine-2.10/pith/conf.c alpine-2.10.maildir/pith/conf.c
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
These are the variables that control a number of pine functions. They
|
||||
***************
|
||||
*** 628,633 ****
|
||||
--- 631,640 ----
|
||||
@@ -638,6 +641,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},
|
||||
@ -3241,9 +3315,7 @@ diff -rc alpine-2.10/pith/conf.c alpine-2.10.maildir/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,
|
||||
***************
|
||||
*** 2245,2250 ****
|
||||
--- 2252,2263 ----
|
||||
@@ -2271,6 +2278,12 @@ init_vars(struct pine *ps, void (*cmds_f
|
||||
mail_parameters(NULL, SET_NEWSSPOOL,
|
||||
(void *)VAR_NEWS_SPOOL_DIR);
|
||||
|
||||
@ -3256,9 +3328,7 @@ diff -rc alpine-2.10/pith/conf.c alpine-2.10.maildir/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])
|
||||
***************
|
||||
*** 2870,2875 ****
|
||||
--- 2883,2892 ----
|
||||
@@ -2909,6 +2922,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},
|
||||
@ -3269,9 +3339,7 @@ diff -rc alpine-2.10/pith/conf.c alpine-2.10.maildir/pith/conf.c
|
||||
|
||||
/* Addr book */
|
||||
{"combined-addrbook-display", "Combined Address Book Display",
|
||||
***************
|
||||
*** 6940,6945 ****
|
||||
--- 6957,6968 ----
|
||||
@@ -7034,6 +7051,12 @@ toggle_feature(struct pine *ps, struct v
|
||||
|
||||
break;
|
||||
|
||||
@ -3284,9 +3352,7 @@ diff -rc alpine-2.10/pith/conf.c alpine-2.10.maildir/pith/conf.c
|
||||
case F_COLOR_LINE_IMPORTANT :
|
||||
case F_DATES_TO_LOCAL :
|
||||
clear_index_cache(ps->mail_stream, 0);
|
||||
***************
|
||||
*** 7721,7726 ****
|
||||
--- 7744,7753 ----
|
||||
@@ -7819,6 +7842,10 @@ config_help(int var, int feature)
|
||||
return(h_config_newmailwidth);
|
||||
case V_NEWSRC_PATH :
|
||||
return(h_config_newsrc_path);
|
||||
@ -3297,12 +3363,11 @@ diff -rc alpine-2.10/pith/conf.c alpine-2.10.maildir/pith/conf.c
|
||||
case V_BROWSER :
|
||||
return(h_config_browser);
|
||||
#if defined(DOS) || defined(OS2)
|
||||
diff -rc alpine-2.10/pith/conf.h alpine-2.10.maildir/pith/conf.h
|
||||
*** alpine-2.10/pith/conf.h 2013-01-11 11:26:44.000000000 -0700
|
||||
--- alpine-2.10.maildir/pith/conf.h 2013-01-11 20:43:06.000000000 -0700
|
||||
***************
|
||||
*** 250,255 ****
|
||||
--- 250,259 ----
|
||||
Index: alpine-2.11/pith/conf.h
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/conf.h
|
||||
+++ alpine-2.11/pith/conf.h
|
||||
@@ -255,6 +255,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
|
||||
@ -3313,12 +3378,11 @@ diff -rc alpine-2.10/pith/conf.h alpine-2.10.maildir/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
|
||||
diff -rc alpine-2.10/pith/conftype.h alpine-2.10.maildir/pith/conftype.h
|
||||
*** alpine-2.10/pith/conftype.h 2013-01-11 19:45:41.000000000 -0700
|
||||
--- alpine-2.10.maildir/pith/conftype.h 2013-01-11 20:43:06.000000000 -0700
|
||||
***************
|
||||
*** 115,120 ****
|
||||
--- 115,123 ----
|
||||
Index: alpine-2.11/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
|
||||
, V_NEWSRC_PATH
|
||||
, V_NEWS_ACTIVE_PATH
|
||||
, V_NEWS_SPOOL_DIR
|
||||
@ -3328,9 +3392,7 @@ diff -rc alpine-2.10/pith/conftype.h alpine-2.10.maildir/pith/conftype.h
|
||||
, V_UPLOAD_CMD
|
||||
, V_UPLOAD_CMD_PREFIX
|
||||
, V_DOWNLOAD_CMD
|
||||
***************
|
||||
*** 381,386 ****
|
||||
--- 384,392 ----
|
||||
@@ -393,6 +396,9 @@ typedef enum {
|
||||
F_PASS_C1_CONTROL_CHARS,
|
||||
F_SINGLE_FOLDER_LIST,
|
||||
F_VERTICAL_FOLDER_LIST,
|
||||
@ -3340,12 +3402,11 @@ diff -rc alpine-2.10/pith/conftype.h alpine-2.10.maildir/pith/conftype.h
|
||||
F_TAB_CHK_RECENT,
|
||||
F_AUTO_REPLY_TO,
|
||||
F_VERBOSE_POST,
|
||||
diff -rc alpine-2.10/pith/init.c alpine-2.10.maildir/pith/init.c
|
||||
*** alpine-2.10/pith/init.c 2013-01-11 11:26:43.000000000 -0700
|
||||
--- alpine-2.10.maildir/pith/init.c 2013-01-11 20:43:06.000000000 -0700
|
||||
***************
|
||||
*** 408,413 ****
|
||||
--- 408,416 ----
|
||||
Index: alpine-2.11/pith/init.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/pith/init.c
|
||||
+++ alpine-2.11/pith/init.c
|
||||
@@ -408,6 +408,9 @@ get_mail_list(CONTEXT_S *list_cntxt, cha
|
||||
&& stricmp(filename, folder_base)){
|
||||
#else
|
||||
if(strncmp(filename, folder_base, folder_base_len) == 0
|
||||
@ -3355,12 +3416,11 @@ diff -rc alpine-2.10/pith/init.c alpine-2.10.maildir/pith/init.c
|
||||
&& strcmp(filename, folder_base)){
|
||||
#endif
|
||||
#endif
|
||||
diff -rc alpine-2.10/pith/pattern.c alpine-2.10.maildir/pith/pattern.c
|
||||
*** alpine-2.10/pith/pattern.c 2013-01-11 11:26:44.000000000 -0700
|
||||
--- alpine-2.10.maildir/pith/pattern.c 2013-01-11 20:43:06.000000000 -0700
|
||||
***************
|
||||
*** 5483,5488 ****
|
||||
--- 5483,5497 ----
|
||||
Index: alpine-2.11/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
|
||||
break;
|
||||
|
||||
case '#':
|
||||
@ -3376,26 +3436,16 @@ diff -rc alpine-2.10/pith/pattern.c alpine-2.10.maildir/pith/pattern.c
|
||||
if(!strcmp(patfolder, stream->mailbox))
|
||||
match++;
|
||||
|
||||
***************
|
||||
*** 7903,7909 ****
|
||||
@@ -7903,7 +7912,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];
|
||||
! char *save_ref = NULL;
|
||||
- char *save_ref = NULL;
|
||||
+ char *save_ref = NULL, *save_dstfldr = NULL, *save_dstfldr2 = NULL;
|
||||
#define FILTMSG_MAX 30
|
||||
|
||||
if(!stream)
|
||||
--- 7912,7918 ----
|
||||
int we_cancel = 0, width;
|
||||
CONTEXT_S *save_context = NULL;
|
||||
char buf[MAX_SCREEN_COLS+1], sbuf[MAX_SCREEN_COLS+1];
|
||||
! char *save_ref = NULL, *save_dstfldr = NULL, *save_dstfldr2 = NULL;
|
||||
#define FILTMSG_MAX 30
|
||||
|
||||
if(!stream)
|
||||
***************
|
||||
*** 7937,7942 ****
|
||||
--- 7946,7961 ----
|
||||
@@ -7937,6 +7946,16 @@ move_filtered_msgs(MAILSTREAM *stream, M
|
||||
if(F_OFF(F_QUELL_FILTER_MSGS, ps_global))
|
||||
we_cancel = busy_cue(buf, NULL, 0);
|
||||
|
||||
@ -3412,9 +3462,7 @@ diff -rc alpine-2.10/pith/pattern.c alpine-2.10.maildir/pith/pattern.c
|
||||
if(!is_absolute_path(dstfldr)
|
||||
&& !(save_context = default_save_context(ps_global->context_list)))
|
||||
save_context = ps_global->context_list;
|
||||
***************
|
||||
*** 8000,8005 ****
|
||||
--- 8019,8029 ----
|
||||
@@ -8000,6 +8019,11 @@ move_filtered_msgs(MAILSTREAM *stream, M
|
||||
if(we_cancel)
|
||||
cancel_busy_cue(buf[0] ? 0 : -1);
|
||||
|
||||
@ -3426,12 +3474,11 @@ diff -rc alpine-2.10/pith/pattern.c alpine-2.10.maildir/pith/pattern.c
|
||||
return(buf[0] != '\0');
|
||||
}
|
||||
|
||||
diff -rc alpine-2.10/pith/pine.hlp alpine-2.10.maildir/pith/pine.hlp
|
||||
*** alpine-2.10/pith/pine.hlp 2013-01-11 20:33:27.000000000 -0700
|
||||
--- alpine-2.10.maildir/pith/pine.hlp 2013-01-11 20:43:06.000000000 -0700
|
||||
***************
|
||||
*** 21449,21454 ****
|
||||
--- 21449,21550 ----
|
||||
Index: alpine-2.11/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).
|
||||
<End of help on this topic>
|
||||
</BODY>
|
||||
</HTML>
|
||||
@ -3534,9 +3581,7 @@ diff -rc alpine-2.10/pith/pine.hlp alpine-2.10.maildir/pith/pine.hlp
|
||||
====== h_config_literal_sig =====
|
||||
<HTML>
|
||||
<HEAD>
|
||||
***************
|
||||
*** 29356,29361 ****
|
||||
--- 29452,29500 ----
|
||||
@@ -29690,6 +29786,49 @@ than across the columns as is the defaul
|
||||
<P>
|
||||
<End of help on this topic>
|
||||
</BODY>
|
||||
@ -3586,12 +3631,11 @@ diff -rc alpine-2.10/pith/pine.hlp alpine-2.10.maildir/pith/pine.hlp
|
||||
</HTML>
|
||||
====== h_config_verbose_post =====
|
||||
<HTML>
|
||||
diff -rc alpine-2.10/pith/send.c alpine-2.10.maildir/pith/send.c
|
||||
*** alpine-2.10/pith/send.c 2013-01-11 11:26:44.000000000 -0700
|
||||
--- alpine-2.10.maildir/pith/send.c 2013-01-11 20:43:06.000000000 -0700
|
||||
***************
|
||||
*** 257,262 ****
|
||||
--- 257,269 ----
|
||||
Index: alpine-2.11/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
|
||||
|
||||
if(exists & FEX_ISFILE){
|
||||
context_apply(tmp, p_cntxt, mbox, sizeof(tmp));
|
||||
@ -3605,158 +3649,3 @@ diff -rc alpine-2.10/pith/send.c alpine-2.10.maildir/pith/send.c
|
||||
if(!(IS_REMOTE(tmp) || is_absolute_path(tmp))){
|
||||
/*
|
||||
* The mbox is relative to the home directory.
|
||||
diff -rc alpine-2.10/README.maildir alpine-2.10.maildir/README.maildir
|
||||
*** alpine-2.10/README.maildir 2013-01-11 20:43:06.000000000 -0700
|
||||
--- alpine-2.10.maildir/README.maildir 2013-01-11 20:43:06.000000000 -0700
|
||||
***************
|
||||
*** 0 ****
|
||||
--- 1,149 ----
|
||||
+ ---------------------------------------
|
||||
+
|
||||
+ Maildir Driver for Alpine 2.0
|
||||
+ By Eduardo Chappa
|
||||
+ <chappa@gmx.com>
|
||||
+
|
||||
+ ---------------------------------------
|
||||
+ 1. General Information About This Patch
|
||||
+ ---------------------------------------
|
||||
+
|
||||
+ This patch adds support for the maildir format to Alpine. We take the
|
||||
+ approach that this patch is one more driver among the number of formats
|
||||
+ supported by Alpine (more generally c-client). This approach differs from
|
||||
+ older versions of similar patches, in that once a maildir patch was
|
||||
+ applied, it was assumed that all your folders would be created in the
|
||||
+ maildir format.
|
||||
+
|
||||
+ This patch does not assume that maildir is a preferred format, instead
|
||||
+ puts maildir in equal footing with other formats (mbox, mbx, mix, etc),
|
||||
+ and so a maildir folder in the mail/ collection is treated in the same way
|
||||
+ as any other folder in any other format. In other words, just by reading
|
||||
+ the name of a folder, or opening it, or doing any operation with it, you
|
||||
+ can not know in which format the folder is.
|
||||
+
|
||||
+ This implies that if you want to add a folder in the maildir format to the
|
||||
+ mail/ collection, then you must add by pressing "A" in the folder list
|
||||
+ collection and enter "#driver.md/mail/name_maildir_folder".
|
||||
+
|
||||
+ If you only want to use maildir, however, you can do so too. In this case,
|
||||
+ you must create a maildir collection. In that collection, only maildir
|
||||
+ folders will be listed. If there is any folder in any other format, that
|
||||
+ folder will be ignored. In another words, any folder listed there is in
|
||||
+ maildir format and can be accessed through that collection, conversely,
|
||||
+ any folder not listed there is not in maildir format and there is no way
|
||||
+ to access it using this collection.
|
||||
+
|
||||
+ In order to create a maildir collection, you could press M S L, and "A" to
|
||||
+ add a collection. Fill in the required fields as follows:
|
||||
+
|
||||
+ Nickname : Anything
|
||||
+ Server :
|
||||
+ Path : #md/relative/path/to/maildir/collection/
|
||||
+ View :
|
||||
+
|
||||
+ For example, if "path" is set to "#md/mail/", then Alpine will look for your
|
||||
+ maildir folders that are in ~/mail/.
|
||||
+
|
||||
+ The code in this patch is mostly based in code for the unix driver plus
|
||||
+ some combinations of the mh, mbx and nntp drivers for the c-client
|
||||
+ library. Those drivers were designed by Mark Crispin, and bugs in this
|
||||
+ code are not his bugs, but my own.
|
||||
+
|
||||
+ I got all the specification for this patch from
|
||||
+ http://cr.yp.to/proto/maildir.html. If you know of a place with a better
|
||||
+ specification for maildir format please let me know. The method this patch
|
||||
+ uses to create a unique filename for a message is one of the "old
|
||||
+ fashioned" methods. I realize that this is old fashioned, but it is
|
||||
+ portable, and portability is the main reason why I decided to use an old
|
||||
+ fashioned method (most methods are not portable. See the word
|
||||
+ "Unfortunately" in that document).
|
||||
+
|
||||
+ --------------
|
||||
+ 2. Other Goals
|
||||
+ --------------
|
||||
+
|
||||
+ It is intended that this code will work well with any application
|
||||
+ written using the c-client library. Of paramount importance is to make the
|
||||
+ associated imap server work well when the server accesses a folder in
|
||||
+ Maildir format. The program mailutil should also work flawlessly with this
|
||||
+ implemetation of the driver.
|
||||
+
|
||||
+ It is intended that this driver be fast and stable. We intend not to
|
||||
+ patch Alpine to make this driver do its work, unless such patching is for
|
||||
+ fixing bugs in Alpine or to pass parameters to the driver.
|
||||
+
|
||||
+ ------------------------------------------------------------------------
|
||||
+ 3. What are the known bugs of this implementation of the Maildir driver?
|
||||
+ ------------------------------------------------------------------------
|
||||
+
|
||||
+ I don't know any at this time. There have been bugs before, though, but
|
||||
+ I try to fix bugs as soon as they are reported.
|
||||
+
|
||||
+ ----------
|
||||
+ 4. On UIDs
|
||||
+ ----------
|
||||
+
|
||||
+ This patch keeps uids in the name of the file that contains the message,
|
||||
+ by adding a ",u=" string to the file name to save the uid of a message. A
|
||||
+ file is kept between sessions to save information on the last uid assigned
|
||||
+ and its time of validity. Only one session with writing access can write
|
||||
+ uids, all others must wait for the other session to assign them. The
|
||||
+ session assigning uids creates a ".uidtemp" file which other sessions must
|
||||
+ not disturb.
|
||||
+
|
||||
+ Uid support appeared in Alpine 1.00 (snapshot 925), and is experimental,
|
||||
+ please report any problems.
|
||||
+
|
||||
+ ----------------------------------------------
|
||||
+ 5. Configuring Alpine and Setting up a Maildir
|
||||
+ ----------------------------------------------
|
||||
+
|
||||
+ Once this approach was chosen, it implied the following:
|
||||
+
|
||||
+ * This patch assumes that your INBOX is located at "$HOME/Maildir".
|
||||
+ This is a directory which should have three subdirectories "cur",
|
||||
+ "tmp" and "new". Mail is delivered to 'new' and read from 'cur'. I
|
||||
+ have added a configuration option "maildir-location" which can be
|
||||
+ used to tell Alpine where your Maildir inbox is, in case your system
|
||||
+ does not use the above directory (e.g. your system may use
|
||||
+ "~/.maildir"). In this case define that variable to be the name of
|
||||
+ the directory where your e-mail is being delivered (e.g.
|
||||
+ ".maildir").
|
||||
+
|
||||
+ * If you want to use the above configuration as your inbox, you must
|
||||
+ define your inbox-path as "#md/inbox" (no quotes). You can define
|
||||
+ the inbox-path like above even if you have changed the
|
||||
+ maildir-location variable. That's the whole point of that variable.
|
||||
+
|
||||
+ -------------------------------------------
|
||||
+ 6. What about Courier/Dovecot file systems?
|
||||
+ -------------------------------------------
|
||||
+
|
||||
+ In a courier file system all folders are subfolders of a root folder
|
||||
+ called INBOX. Normally INBOX is located at ~/Maildir and subfolders are
|
||||
+ "dot" directories in ~/Maildir. For example ~/Maildir/.Trash is a
|
||||
+ subfolder of INBOX and is accessed with the nickname "INBOX.Trash".
|
||||
+
|
||||
+ You can not access folders in this way unless you preceed them with the
|
||||
+ string "#mc/". The purpose of the string "#mc/" is to warn Alpine that a
|
||||
+ collection in the Courier format is going to be accessed. Therefore, you
|
||||
+ can SELECT a folder like "#mc/INBOX.Trash", but not "INBOX.Trash"
|
||||
+
|
||||
+ You can access a collection through a server, but if you want to access a
|
||||
+ collection of folders created using the Courier server, you MUST edit your
|
||||
+ ".pinerc" file and enter the definition of the collection as follows:
|
||||
+
|
||||
+ folder-collections="Anything you want" #mc/INBOX.[]
|
||||
+
|
||||
+ You can replace the string "#mc/INBOX." by something different, for example
|
||||
+ "#mc/Courier/." will make Alpine search for your collection in ~/Courier.
|
||||
+
|
||||
+ You can not add this setting directly into Alpine because Alpine fails to
|
||||
+ accept this value from its input, but it takes it correctly when it is
|
||||
+ added through the ".pinerc" file.
|
||||
+
|
||||
+ You can access your inbox as "#mc/INBOX" or "#md/INBOX". Both definitions
|
||||
+ point to the same place.
|
||||
+
|
||||
+ Last Updated May 28, 2011
|
||||
|
@ -1,38 +1,28 @@
|
||||
diff -rc alpine-2.10/imap/src/c-client/mail.c alpine-2.10.unixnullbug/imap/src/c-client/mail.c
|
||||
*** alpine-2.10/imap/src/c-client/mail.c 2013-01-11 15:21:34.000000000 -0700
|
||||
--- alpine-2.10.unixnullbug/imap/src/c-client/mail.c 2013-01-11 20:45:05.000000000 -0700
|
||||
***************
|
||||
*** 3352,3364 ****
|
||||
---
|
||||
imap/src/c-client/mail.c | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
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
|
||||
@@ -3361,13 +3361,13 @@ unsigned long mail_filter (char *text,un
|
||||
long flags)
|
||||
{
|
||||
STRINGLIST *hdrs;
|
||||
! int notfound;
|
||||
- int notfound;
|
||||
+ int notfound, fix = text[len - 1] == '\0';
|
||||
unsigned long i;
|
||||
char c,*s,*e,*t,tmp[MAILTMPLEN];
|
||||
char *src = text;
|
||||
char *dst = src;
|
||||
char *end = text + len;
|
||||
! text[len] = '\012'; /* guard against running off buffer */
|
||||
- text[len] = '\012'; /* guard against running off buffer */
|
||||
+ text[fix ? len - 1 : len] = '\012'; /* guard against running off buffer */
|
||||
while (src < end) { /* process header */
|
||||
/* slurp header line name */
|
||||
for (s = src,e = s + MAILTMPLEN - 1,e = (e < end ? e : end),t = tmp;
|
||||
--- 3352,3364 ----
|
||||
long flags)
|
||||
{
|
||||
STRINGLIST *hdrs;
|
||||
! int notfound, fix = text[len - 1] == '\0';
|
||||
unsigned long i;
|
||||
char c,*s,*e,*t,tmp[MAILTMPLEN];
|
||||
char *src = text;
|
||||
char *dst = src;
|
||||
char *end = text + len;
|
||||
! text[fix ? len - 1 : len] = '\012'; /* guard against running off buffer */
|
||||
while (src < end) { /* process header */
|
||||
/* slurp header line name */
|
||||
for (s = src,e = s + MAILTMPLEN - 1,e = (e < end ? e : end),t = tmp;
|
||||
***************
|
||||
*** 3397,3402 ****
|
||||
--- 3397,3406 ----
|
||||
@@ -3406,6 +3406,10 @@ unsigned long mail_filter (char *text,un
|
||||
}
|
||||
}
|
||||
*dst = '\0'; /* tie off destination */
|
||||
|
@ -1,111 +0,0 @@
|
||||
diff -rc alpine-2.10/alpine/reply.c alpine-2.10.unverified/alpine/reply.c
|
||||
*** alpine-2.10/alpine/reply.c 2013-01-11 11:19:33.000000000 -0700
|
||||
--- alpine-2.10.unverified/alpine/reply.c 2013-01-11 16:20:11.000000000 -0700
|
||||
***************
|
||||
*** 1165,1173 ****
|
||||
}
|
||||
else if(!outgoing->newsgroups)
|
||||
outgoing->newsgroups = cpystr(env->newsgroups);
|
||||
- if(!IS_NEWS(ps_global->mail_stream))
|
||||
- q_status_message(SM_ORDER, 2, 3,
|
||||
- _("Replying to message that MAY or MAY NOT have been posted to newsgroup"));
|
||||
}
|
||||
|
||||
return(ret);
|
||||
--- 1165,1170 ----
|
||||
diff -rc alpine-2.10/imap/src/c-client/imap4r1.c alpine-2.10.unverified/imap/src/c-client/imap4r1.c
|
||||
*** alpine-2.10/imap/src/c-client/imap4r1.c 2011-01-09 21:00:20.000000000 -0700
|
||||
--- alpine-2.10.unverified/imap/src/c-client/imap4r1.c 2013-01-11 16:20:11.000000000 -0700
|
||||
***************
|
||||
*** 4527,4532 ****
|
||||
--- 4527,4533 ----
|
||||
if (*env) { /* need to merge this header into envelope? */
|
||||
if (!(*env)->newsgroups) { /* need Newsgroups? */
|
||||
(*env)->newsgroups = nenv->newsgroups;
|
||||
+ (*env)->ngpathexists = nenv->ngpathexists;
|
||||
nenv->newsgroups = NIL;
|
||||
}
|
||||
if (!(*env)->followup_to) { /* need Followup-To? */
|
||||
***************
|
||||
*** 4581,4586 ****
|
||||
--- 4582,4588 ----
|
||||
if (oenv) { /* need to merge old envelope? */
|
||||
(*env)->newsgroups = oenv->newsgroups;
|
||||
oenv->newsgroups = NIL;
|
||||
+ (*env)->ngpathexists = oenv->ngpathexists;
|
||||
(*env)->followup_to = oenv->followup_to;
|
||||
oenv->followup_to = NIL;
|
||||
(*env)->references = oenv->references;
|
||||
diff -rc alpine-2.10/imap/src/c-client/mail.h alpine-2.10.unverified/imap/src/c-client/mail.h
|
||||
*** alpine-2.10/imap/src/c-client/mail.h 2013-01-11 15:21:34.000000000 -0700
|
||||
--- alpine-2.10.unverified/imap/src/c-client/mail.h 2013-01-11 16:20:11.000000000 -0700
|
||||
***************
|
||||
*** 685,690 ****
|
||||
--- 685,691 ----
|
||||
/* Message envelope */
|
||||
|
||||
typedef struct mail_envelope {
|
||||
+ unsigned int ngpathexists : 1; /* newsgroups may be bogus */
|
||||
unsigned int incomplete : 1; /* envelope may be incomplete */
|
||||
unsigned int imapenvonly : 1; /* envelope only has IMAP envelope */
|
||||
char *remail; /* remail header if any */
|
||||
diff -rc alpine-2.10/imap/src/c-client/rfc822.c alpine-2.10.unverified/imap/src/c-client/rfc822.c
|
||||
*** alpine-2.10/imap/src/c-client/rfc822.c 2011-01-09 21:00:20.000000000 -0700
|
||||
--- alpine-2.10.unverified/imap/src/c-client/rfc822.c 2013-01-11 16:20:11.000000000 -0700
|
||||
***************
|
||||
*** 128,133 ****
|
||||
--- 128,134 ----
|
||||
ENVELOPE *env = (*en = mail_newenvelope ());
|
||||
BODY *body = bdy ? (*bdy = mail_newbody ()) : NIL;
|
||||
long MIMEp = -1; /* flag that MIME semantics are in effect */
|
||||
+ long PathP = NIL; /* flag that a Path: was seen */
|
||||
parseline_t pl = (parseline_t) mail_parameters (NIL,GET_PARSELINE,NIL);
|
||||
if (!host) host = BADHOST; /* make sure that host is non-null */
|
||||
while (i && *s != '\n') { /* until end of header */
|
||||
***************
|
||||
*** 230,235 ****
|
||||
--- 231,239 ----
|
||||
*t++ = '\0';
|
||||
}
|
||||
break;
|
||||
+ case 'P': /* possible Path: */
|
||||
+ if (!strcmp (tmp+1,"ATH")) env->ngpathexists = T;
|
||||
+ break;
|
||||
case 'R': /* possible Reply-To: */
|
||||
if (!strcmp (tmp+1,"EPLY-TO"))
|
||||
rfc822_parse_adrlist (&env->reply_to,d,host);
|
||||
diff -rc alpine-2.10/pith/mailview.c alpine-2.10.unverified/pith/mailview.c
|
||||
*** alpine-2.10/pith/mailview.c 2013-01-11 11:26:43.000000000 -0700
|
||||
--- alpine-2.10.unverified/pith/mailview.c 2013-01-11 16:20:11.000000000 -0700
|
||||
***************
|
||||
*** 2379,2386 ****
|
||||
format_addr_string(s, n, sect, "Return-Path: ", e->return_path,
|
||||
flags, oacs, pc);
|
||||
|
||||
! if((which & FE_NEWSGROUPS) && e->newsgroups)
|
||||
format_newsgroup_string("Newsgroups: ", e->newsgroups, flags, pc);
|
||||
|
||||
if((which & FE_FOLLOWUPTO) && e->followup_to)
|
||||
format_newsgroup_string("Followup-To: ", e->followup_to, flags, pc);
|
||||
--- 2379,2399 ----
|
||||
format_addr_string(s, n, sect, "Return-Path: ", e->return_path,
|
||||
flags, oacs, pc);
|
||||
|
||||
! if((which & FE_NEWSGROUPS) && e->newsgroups){
|
||||
! int bogus = NIL;
|
||||
format_newsgroup_string("Newsgroups: ", e->newsgroups, flags, pc);
|
||||
+ if (!e->ngpathexists && e->message_id &&
|
||||
+ strncmp (e->message_id,"<alpine.",8) &&
|
||||
+ strncmp (e->message_id,"<Pine.",6) &&
|
||||
+ strncmp (e->message_id,"<MS-C.",6) &&
|
||||
+ strncmp (e->message_id,"<MailManager.",13) &&
|
||||
+ strncmp (e->message_id,"<EasyMail.",11) &&
|
||||
+ strncmp (e->message_id,"<ML-",4)) bogus = T;
|
||||
+
|
||||
+ if(bogus)
|
||||
+ q_status_message(SM_ORDER, 0, 3,
|
||||
+ "Unverified Newsgroup header -- Message MAY or MAY NOT have been posted");
|
||||
+ }
|
||||
|
||||
if((which & FE_FOLLOWUPTO) && e->followup_to)
|
||||
format_newsgroup_string("Followup-To: ", e->followup_to, flags, pc);
|
@ -1,5 +1,11 @@
|
||||
--- imap/src/mlock/mlock.c
|
||||
+++ imap/src/mlock/mlock.c
|
||||
---
|
||||
imap/src/mlock/mlock.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
Index: alpine-2.11/imap/src/mlock/mlock.c
|
||||
===================================================================
|
||||
--- alpine-2.11.orig/imap/src/mlock/mlock.c
|
||||
+++ alpine-2.11/imap/src/mlock/mlock.c
|
||||
@@ -28,6 +28,7 @@
|
||||
|
||||
#include <errno.h>
|
||||
|
@ -1,6 +1,13 @@
|
||||
--- alpine/folder.c
|
||||
+++ alpine/folder.c
|
||||
@@ -6013,7 +6013,7 @@
|
||||
---
|
||||
alpine/folder.c | 2 +-
|
||||
imap/src/c-client/mail.c | 10 ++++++++--
|
||||
2 files changed, 9 insertions(+), 3 deletions(-)
|
||||
|
||||
Index: alpine-2.11/alpine/folder.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 */
|
||||
@ -9,9 +16,11 @@
|
||||
continue;
|
||||
|
||||
case -1 : /* cancel */
|
||||
--- imap/src/c-client/mail.c
|
||||
+++ imap/src/c-client/mail.c
|
||||
@@ -2931,8 +2931,14 @@
|
||||
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,
|
||||
/* parse time */
|
||||
d = strtoul (s+1,(char **) &s,10);
|
||||
if (*s != ':') return NIL;
|
||||
|
Loading…
Reference in New Issue
Block a user