summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--VERSION2
-rw-r--r--alpine/osdep/alpine-splash.bmpbin532014 -> 712866 bytes
-rw-r--r--alpine/osdep/execview.c4
-rw-r--r--alpine/osdep/mswin.rc8
-rw-r--r--alpine/osdep/mswinver.c2
-rw-r--r--alpine/pine-use.c2
-rwxr-xr-xconfigure208
-rw-r--r--configure.ac56
-rw-r--r--doc/alpine.12
-rw-r--r--doc/tech-notes/index.html2
-rw-r--r--doc/tech-notes/tech-notes.txt102
-rw-r--r--imap/src/c-client/smtp.c7
-rw-r--r--imap/src/osdep/unix/tcp_unix.c2
-rw-r--r--mapi/pmapi.c2
-rw-r--r--mapi/pmapi.rc8
-rw-r--r--pico/estruct.h2
-rw-r--r--pico/osdep/mswin_spell.c19
-rw-r--r--pith/conf.c15
-rw-r--r--pith/pine.hlp39
-rw-r--r--pith/reply.c5
-rw-r--r--po/Makefile.in16
21 files changed, 345 insertions, 158 deletions
diff --git a/VERSION b/VERSION
index 02f5e709..4e2200b9 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.19.9999
+2.20.1
diff --git a/alpine/osdep/alpine-splash.bmp b/alpine/osdep/alpine-splash.bmp
index 0bd797be..3289bc2b 100644
--- a/alpine/osdep/alpine-splash.bmp
+++ b/alpine/osdep/alpine-splash.bmp
Binary files differ
diff --git a/alpine/osdep/execview.c b/alpine/osdep/execview.c
index d79c85db..9ef2855e 100644
--- a/alpine/osdep/execview.c
+++ b/alpine/osdep/execview.c
@@ -269,11 +269,11 @@ exec_mailcap_cmd(MCAP_CMD_S *mc_cmd, char *image_file, int needsterminal)
q = cpystr("");
#endif /* PSEFCMD */
- l = 32 + strlen(cmd) + 2*strlen(image_file) + strlen(q);
+ l = 45 + strlen(cmd) + 2*strlen(image_file) + strlen(q);
p = command = (char *)fs_get((l+1) * sizeof(char));
if(!needsterminal) /* put in background if it doesn't need terminal */
*p++ = '(';
- snprintf(p, l+1-(p-command), "%s ; %s rm -f %s", cmd, q, image_file);
+ snprintf(p, l+1-(p-command), "%s ; %s sleep 5 ; rm -f %s", cmd, q, image_file);
fs_give((void **)&q);
command[l] = '\0';
p += strlen(p);
diff --git a/alpine/osdep/mswin.rc b/alpine/osdep/mswin.rc
index 5d3d1352..2769c8c3 100644
--- a/alpine/osdep/mswin.rc
+++ b/alpine/osdep/mswin.rc
@@ -244,8 +244,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,19,9999,0
- PRODUCTVERSION 2,19,9999,0
+ FILEVERSION 2,20,1,0
+ PRODUCTVERSION 2,20,1,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -267,12 +267,12 @@ BEGIN
#else
VALUE "FileDescription", "Alpine\0"
#endif
- VALUE "FileVersion", "2.19.9999\0"
+ VALUE "FileVersion", "2.20.1\0"
VALUE "InternalName", "alpine\0"
VALUE "LegalCopyright", "Copyright 2006-2009 University of Washington, Copyright 2013-2014\0"
VALUE "OriginalFilename", "alpine.exe\0"
VALUE "ProductName", "alpine\0"
- VALUE "ProductVersion", "2.19.9999\0"
+ VALUE "ProductVersion", "2.20.1\0"
END
END
BLOCK "VarFileInfo"
diff --git a/alpine/osdep/mswinver.c b/alpine/osdep/mswinver.c
index 28f1a0ac..3c932123 100644
--- a/alpine/osdep/mswinver.c
+++ b/alpine/osdep/mswinver.c
@@ -13,7 +13,7 @@
*/
#define VER_MAJOR 2
-#define VER_MINOR 19
+#define VER_MINOR 20
extern char datestamp[];
diff --git a/alpine/pine-use.c b/alpine/pine-use.c
index 7337b7c7..ab6ee2e6 100644
--- a/alpine/pine-use.c
+++ b/alpine/pine-use.c
@@ -148,7 +148,7 @@ main(argc, argv)
printf("%5d: last year\n", user_count[3]);
printf("%5d: more than a year\n", user_count[4]);
printf("%5d: core files\n", core_files);
- printf("%5d: Average messages in inbox (%ld/%d)\n",
+ printf("%5ld: Average messages in inbox (%ld/%ld)\n",
inbox_mess/(inboxes ? inboxes : 1), inbox_mess, inboxes);
printf("%5d: Largest inbox in messages\n", inbox_mess_max);
printf("%5d: Total users checked\n", so_far);
diff --git a/configure b/configure
index 6b97f9ee..47e55a6a 100755
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
#! /bin/sh
-# From configure.ac Rev:14 by chappa@washington.edu.
+# From configure.ac Rev:16 by chappa@washington.edu.
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for alpine 2.19.9999.
+# Generated by GNU Autoconf 2.69 for alpine 2.20.1.
#
# Report bugs to <chappa@washington.edu>.
#
@@ -591,8 +591,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='alpine'
PACKAGE_TARNAME='alpine'
-PACKAGE_VERSION='2.19.9999'
-PACKAGE_STRING='alpine 2.19.9999'
+PACKAGE_VERSION='2.20.1'
+PACKAGE_STRING='alpine 2.20.1'
PACKAGE_BUGREPORT='chappa@washington.edu'
PACKAGE_URL=''
@@ -1466,7 +1466,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures alpine 2.19.9999 to adapt to many kinds of systems.
+\`configure' configures alpine 2.20.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1536,7 +1536,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of alpine 2.19.9999:";;
+ short | recursive ) echo "Configuration of alpine 2.20.1:";;
esac
cat <<\_ACEOF
@@ -1830,7 +1830,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-alpine configure 2.19.9999
+alpine configure 2.20.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2436,7 +2436,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by alpine $as_me 2.19.9999, which was
+It was created by alpine $as_me 2.20.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3305,7 +3305,7 @@ fi
# Define the identity of the package.
PACKAGE='alpine'
- VERSION='2.19.9999'
+ VERSION='2.20.1'
cat >>confdefs.h <<_ACEOF
@@ -16760,6 +16760,9 @@ if test "${with_ssl_lib_dir+set}" = set; then :
fi
+fi
+
+if test "x$alpine_SSLTYPE" != "xnone" ; then
if test -n "$alpine_SSLINCLUDE" ; then
CPPFLAGS="-I$alpine_SSLINCLUDE $CPPFLAGS"
elif test -n "$alpine_SSLDIR" ; then
@@ -16773,6 +16776,7 @@ fi
fi
+
# Check whether --with-krb5 was given.
if test "${with_krb5+set}" = set; then :
withval=$with_krb5; with_krb5=$withval
@@ -17636,9 +17640,48 @@ if test "x$alpine_DL" = "xnone" ; then
fi
if test "x$alpine_SSLTYPE" != "xnone" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing SSLeay" >&5
-$as_echo_n "checking for library containing SSLeay... " >&6; }
-if ${ac_cv_search_SSLeay+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Openssl library version >= 1.0.0c" >&5
+$as_echo_n "checking Openssl library version >= 1.0.0c... " >&6; }
+ if test "$cross_compiling" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cross compiling: not checking" >&5
+$as_echo "$as_me: WARNING: cross compiling: not checking" >&2;}
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#if HAVE_STDINT_H
+#include <stdint.h>
+#endif /* HAVE_STDINT_H */
+#include <openssl/ssl.h>
+int main(void) {
+
+ if (OPENSSL_VERSION_NUMBER >= 0x1000003f)
+ exit(0);
+
+ exit(2);
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ alpine_SSLTYPE="none"
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+ if test "x$alpine_SSLTYPE" = "xnone" ; then
+ as_fn_error $? "Install openssl version >= 1.0.0c" "$LINENO" 5
+ exit 1
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing TLSv1_2_client_method" >&5
+$as_echo_n "checking for library containing TLSv1_2_client_method... " >&6; }
+if ${ac_cv_search_TLSv1_2_client_method+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
@@ -17651,16 +17694,16 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#ifdef __cplusplus
extern "C"
#endif
-char SSLeay ();
+char TLSv1_2_client_method ();
int
main ()
{
-return SSLeay ();
+return TLSv1_2_client_method ();
;
return 0;
}
_ACEOF
-for ac_lib in '' crypto; do
+for ac_lib in '' ssl; do
if test -z "$ac_lib"; then
ac_res="none required"
else
@@ -17668,42 +17711,40 @@ for ac_lib in '' crypto; do
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_search_SSLeay=$ac_res
+ ac_cv_search_TLSv1_2_client_method=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
- if ${ac_cv_search_SSLeay+:} false; then :
+ if ${ac_cv_search_TLSv1_2_client_method+:} false; then :
break
fi
done
-if ${ac_cv_search_SSLeay+:} false; then :
+if ${ac_cv_search_TLSv1_2_client_method+:} false; then :
else
- ac_cv_search_SSLeay=no
+ ac_cv_search_TLSv1_2_client_method=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_SSLeay" >&5
-$as_echo "$ac_cv_search_SSLeay" >&6; }
-ac_res=$ac_cv_search_SSLeay
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_TLSv1_2_client_method" >&5
+$as_echo "$ac_cv_search_TLSv1_2_client_method" >&6; }
+ac_res=$ac_cv_search_TLSv1_2_client_method
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+ alpine_c_client_cflags="$alpine_c_client_cflags -DTLSV1_2"
+
+$as_echo "#define SSL_SUPPORTS_TLSV1_2 1" >>confdefs.h
+
-else
- alpine_CRYPTO="none"
fi
- if test "x$alpine_CRYPTO" = "xnone" ; then
- as_fn_error $? "crypto library NOT found" "$LINENO" 5
- exit 1
- fi
fi
if test "x$alpine_SSLTYPE" != "xnone" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing SSL_library_init" >&5
-$as_echo_n "checking for library containing SSL_library_init... " >&6; }
-if ${ac_cv_search_SSL_library_init+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing SSLeay" >&5
+$as_echo_n "checking for library containing SSLeay... " >&6; }
+if ${ac_cv_search_SSLeay+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
@@ -17716,16 +17757,16 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#ifdef __cplusplus
extern "C"
#endif
-char SSL_library_init ();
+char SSLeay ();
int
main ()
{
-return SSL_library_init ();
+return SSLeay ();
;
return 0;
}
_ACEOF
-for ac_lib in '' ssl; do
+for ac_lib in '' crypto; do
if test -z "$ac_lib"; then
ac_res="none required"
else
@@ -17733,79 +17774,42 @@ for ac_lib in '' ssl; do
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_search_SSL_library_init=$ac_res
+ ac_cv_search_SSLeay=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
- if ${ac_cv_search_SSL_library_init+:} false; then :
+ if ${ac_cv_search_SSLeay+:} false; then :
break
fi
done
-if ${ac_cv_search_SSL_library_init+:} false; then :
+if ${ac_cv_search_SSLeay+:} false; then :
else
- ac_cv_search_SSL_library_init=no
+ ac_cv_search_SSLeay=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_SSL_library_init" >&5
-$as_echo "$ac_cv_search_SSL_library_init" >&6; }
-ac_res=$ac_cv_search_SSL_library_init
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_SSLeay" >&5
+$as_echo "$ac_cv_search_SSLeay" >&6; }
+ac_res=$ac_cv_search_SSLeay
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
else
- alpine_SSLTYPE="none"
+ alpine_CRYPTO="none"
fi
-
- if test "x$alpine_SSLTYPE" = "xnone" ; then
- as_fn_error $? "No library containing SSL_library_init found in your path" "$LINENO" 5
+ if test "x$alpine_CRYPTO" = "xnone" ; then
+ as_fn_error $? "crypto library NOT found" "$LINENO" 5
exit 1
fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Openssl library version >= 1.0.1c" >&5
-$as_echo_n "checking Openssl library version >= 1.0.1c... " >&6; }
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <openssl/ssl.h>
-int main(void) {
-
- if (OPENSSL_VERSION_NUMBER >= 0x1000003f)
- exit(0);
-
- exit(2);
-}
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
- alpine_SSLTYPE="none"
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-
- if test "x$alpine_SSLTYPE" = "xnone" ; then
- as_fn_error $? "Install openssl version >= 1.0.1c" "$LINENO" 5
- exit 1
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing TLSv1_2_client_method" >&5
-$as_echo_n "checking for library containing TLSv1_2_client_method... " >&6; }
-if ${ac_cv_search_TLSv1_2_client_method+:} false; then :
+if test "x$alpine_SSLTYPE" != "xnone" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing SSL_library_init" >&5
+$as_echo_n "checking for library containing SSL_library_init... " >&6; }
+if ${ac_cv_search_SSL_library_init+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_func_search_save_LIBS=$LIBS
@@ -17818,11 +17822,11 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#ifdef __cplusplus
extern "C"
#endif
-char TLSv1_2_client_method ();
+char SSL_library_init ();
int
main ()
{
-return TLSv1_2_client_method ();
+return SSL_library_init ();
;
return 0;
}
@@ -17835,33 +17839,37 @@ for ac_lib in '' ssl; do
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_search_TLSv1_2_client_method=$ac_res
+ ac_cv_search_SSL_library_init=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext
- if ${ac_cv_search_TLSv1_2_client_method+:} false; then :
+ if ${ac_cv_search_SSL_library_init+:} false; then :
break
fi
done
-if ${ac_cv_search_TLSv1_2_client_method+:} false; then :
+if ${ac_cv_search_SSL_library_init+:} false; then :
else
- ac_cv_search_TLSv1_2_client_method=no
+ ac_cv_search_SSL_library_init=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_TLSv1_2_client_method" >&5
-$as_echo "$ac_cv_search_TLSv1_2_client_method" >&6; }
-ac_res=$ac_cv_search_TLSv1_2_client_method
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_SSL_library_init" >&5
+$as_echo "$ac_cv_search_SSL_library_init" >&6; }
+ac_res=$ac_cv_search_SSL_library_init
if test "$ac_res" != no; then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
- alpine_c_client_cflags="$alpine_c_client_cflags -DTLSV1_2"
-$as_echo "#define SSL_SUPPORTS_TLSV1_2 1" >>confdefs.h
+else
+ alpine_SSLTYPE="none"
+fi
-fi
+ if test "x$alpine_SSLTYPE" = "xnone" ; then
+ as_fn_error $? "No library containing SSL_library_init found in your path" "$LINENO" 5
+ exit 1
+ fi
fi
@@ -20608,6 +20616,8 @@ else
certdir="${alpine_SSLDIR}/ssl/certs"
elif test -n "$alpine_SSLCERTS_ORIG" -a -d "$alpine_SSLCERTS_ORIG" ; then
certdir="$alpine_SSLCERTS_ORIG"
+ elif test -n "$alpine_SSLCERTS" ; then
+ certdir="$alpine_SSLCERTS"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: SSL Problem: certificate directory not found" >&5
$as_echo "$as_me: SSL Problem: certificate directory not found" >&6;}
@@ -21287,7 +21297,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by alpine $as_me 2.19.9999, which was
+This file was extended by alpine $as_me 2.20.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -21353,7 +21363,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-alpine config.status 2.19.9999
+alpine config.status 2.20.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 30f380cf..ab83a4ad 100644
--- a/configure.ac
+++ b/configure.ac
@@ -15,7 +15,7 @@ dnl */
AC_PREREQ([2.69])
-AC_REVISION([Rev:14 by chappa@washington.edu])
+AC_REVISION([Rev:16 by chappa@washington.edu])
dnl Alpine Version Number is in $srcdir/VERSION
AC_INIT([alpine],[m4_normalize(m4_include(VERSION))],[chappa@washington.edu])
@@ -903,6 +903,9 @@ dnl find it anywhere else.
alpine_SSLLIB=$withval
fi
])
+fi
+
+if test "x$alpine_SSLTYPE" != "xnone" ; then
dnl setup globals so tests below work
if test -n "$alpine_SSLINCLUDE" ; then
CPPFLAGS="-I$alpine_SSLINCLUDE $CPPFLAGS"
@@ -916,6 +919,7 @@ dnl find it anywhere else.
fi
fi
+
dnl Include Kerberos?
dnl Set GSSDIR for c-client make
AC_ARG_WITH(krb5,
@@ -1346,29 +1350,16 @@ if test "x$alpine_DL" = "xnone" ; then
exit 1
fi
-dnl Crypto support is needed
+dnl Check Openssl/LibreSSL version first
if test "x$alpine_SSLTYPE" != "xnone" ; then
- AC_SEARCH_LIBS(SSLeay,crypto,, [ alpine_CRYPTO="none" ])
- if test "x$alpine_CRYPTO" = "xnone" ; then
- AC_MSG_ERROR(crypto library NOT found)
- exit 1
- fi
-fi
-
-dnl provide SSL support?
-if test "x$alpine_SSLTYPE" != "xnone" ; then
- AC_SEARCH_LIBS(SSL_library_init,ssl,,[ alpine_SSLTYPE="none" ])
-
- if test "x$alpine_SSLTYPE" = "xnone" ; then
- AC_MSG_ERROR(No library containing SSL_library_init found in your path)
- exit 1
- fi
-
- AC_MSG_CHECKING([Openssl library version >= 1.0.1c])
+ AC_MSG_CHECKING([Openssl library version >= 1.0.0c])
AC_RUN_IFELSE(
[AC_LANG_SOURCE([[
#include <stdio.h>
#include <stdlib.h>
+#if HAVE_STDINT_H
+#include <stdint.h>
+#endif /* HAVE_STDINT_H */
#include <openssl/ssl.h>
int main(void) {
@@ -1379,10 +1370,11 @@ int main(void) {
}
]])],
[ AC_MSG_RESULT(yes) ],
- [ alpine_SSLTYPE="none" ])
+ [ alpine_SSLTYPE="none" ],
+ [ AC_MSG_WARN([cross compiling: not checking])])
if test "x$alpine_SSLTYPE" = "xnone" ; then
- AC_MSG_ERROR(Install openssl version >= 1.0.1c)
+ AC_MSG_ERROR(Install openssl version >= 1.0.0c)
exit 1
fi
AC_SEARCH_LIBS(TLSv1_2_client_method,ssl,
@@ -1391,6 +1383,26 @@ int main(void) {
])
fi
+dnl Crypto support is needed
+if test "x$alpine_SSLTYPE" != "xnone" ; then
+ AC_SEARCH_LIBS(SSLeay,crypto,, [ alpine_CRYPTO="none" ])
+ if test "x$alpine_CRYPTO" = "xnone" ; then
+ AC_MSG_ERROR(crypto library NOT found)
+ exit 1
+ fi
+fi
+
+dnl provide SSL support?
+if test "x$alpine_SSLTYPE" != "xnone" ; then
+ AC_SEARCH_LIBS(SSL_library_init,ssl,,[ alpine_SSLTYPE="none" ])
+
+ if test "x$alpine_SSLTYPE" = "xnone" ; then
+ AC_MSG_ERROR(No library containing SSL_library_init found in your path)
+ exit 1
+ fi
+
+fi
+
dnl provide LDAP support?
if test "$alpine_with_ldap" = "yes" ; then
alpine_has_ldap=
@@ -1848,6 +1860,8 @@ else
certdir="${alpine_SSLDIR}/ssl/certs"
elif test -n "$alpine_SSLCERTS_ORIG" -a -d "$alpine_SSLCERTS_ORIG" ; then
certdir="$alpine_SSLCERTS_ORIG"
+ elif test -n "$alpine_SSLCERTS" ; then
+ certdir="$alpine_SSLCERTS"
else
AC_MSG_NOTICE([SSL Problem: certificate directory not found])
fi
diff --git a/doc/alpine.1 b/doc/alpine.1
index 2b6daf34..5ca4f8b8 100644
--- a/doc/alpine.1
+++ b/doc/alpine.1
@@ -1,4 +1,4 @@
-.TH alpine 1 "Version 2.19.9999"
+.TH alpine 1 "Version 2.20.1"
.SH NAME
alpine \- an Alternatively Licensed Program for Internet News and Email
.SH SYNTAX
diff --git a/doc/tech-notes/index.html b/doc/tech-notes/index.html
index 00a8df2b..f9dda945 100644
--- a/doc/tech-notes/index.html
+++ b/doc/tech-notes/index.html
@@ -3,7 +3,7 @@
<BODY>
<H1>Alpine Technical Notes</H1>
-Version 2.19.9999, January 2015
+Version 2.20.1, January 2015
<H2><A NAME="TOC">Table of Contents</A></H2><P>
diff --git a/doc/tech-notes/tech-notes.txt b/doc/tech-notes/tech-notes.txt
index 1cd14179..e339aaaa 100644
--- a/doc/tech-notes/tech-notes.txt
+++ b/doc/tech-notes/tech-notes.txt
@@ -1,4 +1,106 @@
+ Alpine Technical Notes
+
+ Version 2.20.1, January 2015
+
+Table of Contents
+
+ Introduction
+
+ * Design Goals
+ * Alpine Components
+
+ Background Details
+
+ * Domain Names
+ * RFC 2822 Compliance
+ * SMTP and Sendmail
+ * Internet Message Access Protocol (IMAP)
+ * Multipurpose Internet Mail Extensions (MIME)
+ * Folder Collections
+
+ Building and Installation
+
+ * Compile-time Options
+ * Including LDAP Functionality
+ * Including Kerberos 5 Functionality
+ * Other Alpine Compile-time Options
+ * IMAPd Compile-time Options
+ * Building the Alpine Programs
+ * Installing Alpine and Pico on UNIX Platforms
+ * Installing PC-Alpine
+ * Installing IMAPd
+ * Support Files and Environment Variables: UNIX Alpine
+ * Support Files, Environment Variables, and Registry Values:
+ PC-Alpine
+
+ Command Line Arguments
+
+ * Alpine
+ * Pico
+ * Pilot
+
+ Configuration and Preferences
+
+ * Alpine Configuration
+ * General Configuration Variables
+ * Configuration Features
+ * Hidden Config Variables and Features
+ * Retired Variables
+ * Tokens for Index and Replying
+ * Conditional Inclusion of Text for Reply-Leadin, Signatures, and
+ Templates
+ * Per Server Directory Configuration
+ * Color Configuration
+ * Index Line Color Configuration
+ * Role Configuration
+ * Filtering Configuration
+ * Scoring Configuration
+ * Other Rules Configuration
+ * Search Rules Configuration
+ * Patterns
+ * Configuring News
+ Configuration Notes
+ + Alpine in Function Key Mode
+ + Domain Settings
+ + Syntax for Collections
+ + Syntax for Folder Names
+ + Server Name Syntax
+ + Folder Namespaces
+ + What is a Mail Drop?
+ + Sorting a Folder
+ + Alternate Editor
+ + Signatures and Signature Placement
+ + Feature List Variable
+ + Configuration Inheritance
+ + Using Environment Variables
+ + SMTP Servers
+ + MIME.Types file
+ + Color Details
+ + S/MIME Overview
+ + Additional Notes on PC-Alpine
+
+ Behind the Scenes
+
+ * Address Books
+ * Remote Configuration
+ * Checkpointing
+ * Debug Files
+ * INBOX and Special Folders
+ * Internal Help Files
+ * International Character Sets
+ * Interrupted and Postponed Messages
+ * Message Status
+ * MIME: Reading a Message
+ * MIME: Sending a Message
+ * New Mail Notification
+ * NFS
+ * Printers and Printing
+ * Save and Export
+ * Sent Mail
+ * Spell Checker
+ * Terminal Emulation and Key Mapping
+
Introduction
Design Goals
diff --git a/imap/src/c-client/smtp.c b/imap/src/c-client/smtp.c
index 1c72670c..1a79d28d 100644
--- a/imap/src/c-client/smtp.c
+++ b/imap/src/c-client/smtp.c
@@ -1,4 +1,5 @@
/* ========================================================================
+ * Copyright 2015 Eduardo Chappa
* Copyright 2008 Mark Crispin
* ========================================================================
*/
@@ -9,7 +10,8 @@
* Author: Mark Crispin
*
* Date: 27 July 1988
- * Last Edited: 19 November 2008
+ * Last Edited: 19 November 2008 (Crispin)
+ * Last Edited: 16 January 2015 (Chappa)
*
* Previous versions of this file were
*
@@ -345,8 +347,9 @@ void *smtp_challenge (void *s,unsigned long *len)
if ((stream->replycode == SMTPAUTHREADY) &&
!(ret = rfc822_base64 ((unsigned char *) stream->reply + 4,
strlen (stream->reply + 4),len))) {
- sprintf (tmp,"SMTP SERVER BUG (invalid challenge): %.80s",stream->reply+4);
+ sprintf (tmp,"SMTP SERVER BUG (invalid challenge, continuing): %.80s",stream->reply+4);
mm_log (tmp,ERROR);
+ ret = cpystr(""); /* This is silly: fake a reply, it will be ignored */
}
return ret;
}
diff --git a/imap/src/osdep/unix/tcp_unix.c b/imap/src/osdep/unix/tcp_unix.c
index 652f1250..4fe8194d 100644
--- a/imap/src/osdep/unix/tcp_unix.c
+++ b/imap/src/osdep/unix/tcp_unix.c
@@ -312,7 +312,7 @@ int tcp_socket_open (int family,void *adr,size_t adrlen,unsigned short port,
/* This used to be a zero-byte read(), but that crashes Solaris */
/* get socket status */
if(FD_ISSET(sock,&rfds))
- while (((i = *ctr = read (sock,tmp,1)) < 0) && (errno == EINTR));
+ while (((i = *ctr = read (sock,tmp,0)) < 0) && (errno == EINTR));
}
if (i <= 0) { /* timeout or error? */
i = i ? errno : ETIMEDOUT;/* determine error code */
diff --git a/mapi/pmapi.c b/mapi/pmapi.c
index 1d8d4ecd..6b050415 100644
--- a/mapi/pmapi.c
+++ b/mapi/pmapi.c
@@ -1952,7 +1952,7 @@ BOOL APIENTRY DllMain(
now = time((time_t *)0);
tm_now = localtime(&now);
- fprintf(ms_global->dfd, "pmapi32.dll for Alpine Version 2.19.9999\r\n");
+ fprintf(ms_global->dfd, "pmapi32.dll for Alpine Version 2.20.1\r\n");
fprintf(ms_global->dfd, " Build date: %s\r\n", datestamp);
fprintf(ms_global->dfd,
" please report all bugs to chappa@gmx.com\r\n");
diff --git a/mapi/pmapi.rc b/mapi/pmapi.rc
index d3d7c8ed..27fc3426 100644
--- a/mapi/pmapi.rc
+++ b/mapi/pmapi.rc
@@ -98,8 +98,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,19,9999,0
- PRODUCTVERSION 2,19,9999,0
+ FILEVERSION 2,20,1,0
+ PRODUCTVERSION 2,20,1,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x29L
@@ -117,14 +117,14 @@ BEGIN
VALUE "Comments", "alpine info: http://patches.freeiz.com/alpine\0"
VALUE "CompanyName", "Patches for Alpine\0"
VALUE "FileDescription", "Simple MAPI DLL for Alpine for Windows\0"
- VALUE "FileVersion", "2.19.9999\0"
+ VALUE "FileVersion", "2.20.1\0"
VALUE "InternalName", "pmapi32\0"
VALUE "LegalCopyright", "Copyright ? University of Washington 2006-2009, Eduardo Chappa 2013-2014\0"
VALUE "LegalTrademarks", "Apache License, Version 2.0\0"
VALUE "OriginalFilename", "pmapi32.dll\0"
VALUE "PrivateBuild", " \0"
VALUE "ProductName", "Simple MAPI for Alpine for Windows\0"
- VALUE "ProductVersion", "2.19.9999\0"
+ VALUE "ProductVersion", "2.20.1\0"
VALUE "SpecialBuild", " \0"
END
END
diff --git a/pico/estruct.h b/pico/estruct.h
index f0090881..410dfc02 100644
--- a/pico/estruct.h
+++ b/pico/estruct.h
@@ -238,7 +238,7 @@ typedef struct {
*/
typedef struct CELL {
unsigned int c : 24; /* Character value in cell */
- unsigned int a : 8; /* Its attributes */
+ unsigned int a : 7; /* Its attributes */
unsigned int d : 1; /* direction */
} CELL;
diff --git a/pico/osdep/mswin_spell.c b/pico/osdep/mswin_spell.c
index e921cfcd..ac899421 100644
--- a/pico/osdep/mswin_spell.c
+++ b/pico/osdep/mswin_spell.c
@@ -437,6 +437,9 @@ spell_dlg_proc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
static int
get_next_word(WORD_INFO *word_info)
{
+ UCS *ucst;
+ int i, hibit;
+
// Skip quoted lines
while(lgetc(curwp->w_dotp, 0).c == '>')
{
@@ -479,9 +482,19 @@ get_next_word(WORD_INFO *word_info)
break;
}
- word_info->word_utf8 = ucs4_to_utf8_cpystr_n(
- (UCS *)&word_info->word_dotp->l_text[word_info->word_doto],
- word_info->word_size);
+ ucst = (UCS *)&word_info->word_dotp->l_text[word_info->word_doto];
+ for(i = 0, hibit = 0; i < word_info->word_size; i++)
+ if(ucst[i] & 0xff000000)
+ hibit++;
+
+ if(hibit > 0){
+ ucst = ucs4_cpystr(ucst);
+ for(i = 0; i < word_info->word_size; i++)
+ ucst[i] &= 0xffffff;
+ }
+ word_info->word_utf8 = ucs4_to_utf8_cpystr_n(ucst, word_info->word_size);
+ if(hibit > 0)
+ fs_give((void **)&ucst);
return 1;
}
diff --git a/pith/conf.c b/pith/conf.c
index aca7ea28..e8c1ceb9 100644
--- a/pith/conf.c
+++ b/pith/conf.c
@@ -5938,16 +5938,21 @@ write_pinerc(struct pine *ps, EditWhich which, int flags)
slpath = cpystr(slink);
else{
char * basep;
+ int n;
+
basep = strrchr(filename, '/');
- if(basep == NULL){
+ if(basep != NULL){
*basep = '\0';
- slpath = (char *) fs_get((strlen(filename) + strlen(slink) + 2)*sizeof(char));
- snprintf(slpath, sizeof(slpath), "%s/%s", filename, slink);
+ n = strlen(filename) + strlen(slink) + 2;
+ slpath = (char *) fs_get(n*sizeof(char));
+ snprintf(slpath, n, "%s/%s", filename, slink);
*basep = '/';
} else {
- slpath = (char *) fs_get((strlen(ps_global->home_dir) + strlen(slink) + 2)*sizeof(char));
- snprintf(slpath, sizeof(slpath), "%s/%s", ps_global->home_dir, slink);
+ n = strlen(ps_global->home_dir) + strlen(slink) + 2;
+ slpath = (char *) fs_get(n*sizeof(char));
+ snprintf(slpath, n, "%s/%s", ps_global->home_dir, slink);
}
+ slpath[n-1] = '\0';
}
file_attrib_copy(tmp, slpath);
r = rename_file(tmp, slpath);
diff --git a/pith/pine.hlp b/pith/pine.hlp
index 3152fb7e..f360dda6 100644
--- a/pith/pine.hlp
+++ b/pith/pine.hlp
@@ -140,7 +140,7 @@ with help text for the config screen and the composer that didn't have any
reasonable place to be called from.
Dummy change to get revision in pine.hlp
============= h_revision =================
-Alpine Commit 67 2015-01-07 21:01:57
+Alpine Commit 68 2015-01-25 18:52:07
============= h_news =================
<HTML>
<HEAD>
@@ -178,6 +178,41 @@ addresses bugs found in previous releases and has a few additions as well.
<P>
Additions include:
+<UL>
+ <LI> Ignore message from smtp server after a successful authentication
+ challenge.
+ <LI> If SSLDIR is defined somehow, do not disable S/MIME if the
+ SSLCERTSDIR is not found.
+</UL>
+
+<P>
+Bugs that have been addressed include:
+<UL>
+ <LI> Alpine would not set include and lib paths for OpenSSL if this was
+ installed in /usr/local/ssl.
+
+ <LI> If the .pinerc file is a symbolic link, Alpine might not write its
+ contents when saving its configuration.
+
+ <LI> The _INIT_ token does not skip over non-alpha numeric characters in
+ the name. Reported by Andreas Fehr.
+
+ <LI> Mismatch in size of UCS and CELL caused a corruption in the
+ content of a pointer, which made the speller in PC-Alpine get
+ the content of a word incorrectly.
+
+ <LI> Skip testing openssl compatibility version when cross-compilation
+ is detected. Fix contributed by Antti Seppälä.
+
+</UL>
+
+
+<P>
+Version 2.20 addresses bugs found in previous releases and has several
+additions as well.
+
+<P>
+Additions include:
<P>
<UL>
@@ -362,7 +397,7 @@ Additions include:
<P>
<UL>
- <LI> Alpine requires version 1.0.1c of Openssl to build.
+ <LI> Alpine requires version 1.0.0c of Openssl to build.
<LI> Increase encryption of S/MIME encrypted messages.
<LI> Pico: Improvements in justification of paragraphs: lines that begin
with a quote string, followed by a space were considered individual paragraphs,
diff --git a/pith/reply.c b/pith/reply.c
index 52a3c81c..54223e68 100644
--- a/pith/reply.c
+++ b/pith/reply.c
@@ -820,6 +820,10 @@ reply_quote_initials(char *name)
continue;
}
+ /* skip over non-alpha stuff */
+ if(i == 0 && !isalnum((unsigned char) cbuf.cbuf[0]))
+ goto reset_cbuf;
+
/* copy cbuf */
for(j = 0; j <= i; j++) *w++ = cbuf.cbuf[j];
@@ -827,6 +831,7 @@ reply_quote_initials(char *name)
while(*s && (unsigned char) *s != ' ')
s++;
+reset_cbuf:
cbuf.cbuf[i = 0] = '\0';
cbuf.cbufp = cbuf.cbuf;
cbuf.cbufend = cbuf.cbuf;
diff --git a/po/Makefile.in b/po/Makefile.in
index bb0cc64f..4abd6756 100644
--- a/po/Makefile.in
+++ b/po/Makefile.in
@@ -11,7 +11,7 @@
# Origin: gettext-0.16
PACKAGE = alpine
-VERSION = 2.19.9993
+VERSION = 2.20.1
PACKAGE_BUGREPORT = chappa@washington.edu
SHELL = /bin/sh
@@ -34,12 +34,12 @@ INSTALL_DATA = ${INSTALL} -m 644
# We use $(mkdir_p).
# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as
# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions,
-# ${SHELL} /var/run/media/echappa/Work/alpine/alpinegit/install-sh does not start with $(SHELL), so we add it.
+# ${SHELL} /home/echappa/backup/011115.0/alpine/alpinegit/install-sh does not start with $(SHELL), so we add it.
# In automake >= 1.10, $(MKDIR_P) is derived from ${MKDIR_P}, which is defined
# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake
# versions, $(mkinstalldirs) and $(install_sh) are unused.
-mkinstalldirs = $(SHELL) ${SHELL} /var/run/media/echappa/Work/alpine/alpinegit/install-sh -d
-install_sh = $(SHELL) ${SHELL} /var/run/media/echappa/Work/alpine/alpinegit/install-sh
+mkinstalldirs = $(SHELL) ${SHELL} /home/echappa/backup/011115.0/alpine/alpinegit/install-sh -d
+install_sh = $(SHELL) ${SHELL} /home/echappa/backup/011115.0/alpine/alpinegit/install-sh
MKDIR_P = /usr/bin/mkdir -p
mkdir_p = $(MKDIR_P)
@@ -51,12 +51,12 @@ MSGFMT_ = /usr/bin/msgfmt
MSGFMT_no = /usr/bin/msgfmt
MSGFMT_yes = /usr/bin/msgfmt
MSGFMT = $(MSGFMT_$(USE_MSGCTXT))
-XGETTEXT_ = :
-XGETTEXT_no = :
-XGETTEXT_yes = :
+XGETTEXT_ = /usr/bin/xgettext
+XGETTEXT_no = /usr/bin/xgettext
+XGETTEXT_yes = /usr/bin/xgettext
XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))
MSGMERGE = msgmerge
-MSGMERGE_UPDATE = : --update
+MSGMERGE_UPDATE = /usr/bin/msgmerge --update
MSGINIT = msginit
MSGCONV = msgconv
MSGFILTER = msgfilter