Index: NEWS =================================================================== RCS file: /cvsroot/mailman/mailman/NEWS,v retrieving revision 1.25.2.16 retrieving revision 1.25.2.17 diff -u -r1.25.2.16 -r1.25.2.17 --- NEWS 2 Jul 2002 17:34:17 -0000 1.25.2.16 +++ NEWS 29 Jul 2002 16:15:45 -0000 1.25.2.17 @@ -4,6 +4,14 @@ Here is a history of user visible changes to Mailman. +2.0.13 (29-Jul-2002) + + - Fixed some Python 1.5.2 compatibility problems that crept into + Mailman 2.0.12. + + - Fixed some configure script incompatibilities on certain + platforms. + 2.0.12 (02-Jul-2002) - Implemented a guard against some reply loops and 'bot Index: configure =================================================================== RCS file: /cvsroot/mailman/mailman/configure,v retrieving revision 1.49.2.1 retrieving revision 1.49.2.3 diff -u -r1.49.2.1 -r1.49.2.3 --- configure 2 Jul 2002 16:30:50 -0000 1.49.2.1 +++ configure 11 Jul 2002 23:50:37 -0000 1.49.2.3 @@ -1,6 +1,6 @@ #! /bin/sh -# From configure.in Revision: 1.51 +# From configure.in Revision: 1.51.2.2 # Guess values for system-dependent variables and create Makefiles. # Generated automatically using autoconf version 2.13 @@ -1471,7 +1471,7 @@ if not fqdn: try: host, aliases, ipaddrs = gethostbyaddr(gethostbyname(gethostname())) - except herror: + except error: barf(fqdn, www) aliases.insert(0, host) for h in aliases: @@ -1488,7 +1488,9 @@ if www is None: www = fqdn fp = open('conftest.out', 'w') -if not www and fqdn: +if www and fqdn: + fp.write('%s\n%s\n' % (fqdn, www)) +elif not www and fqdn: fp.write('%s\n%s\n' % (fqdn, fqdn)) elif www: dhn = string.join(string.split(www, '.')[1:], '.') @@ -1498,20 +1500,20 @@ fp.close() EOF $PYTHON conftest.py -if [ "$?" == "1" ] +if [ $? -eq 1 ] then exit fi echo $ac_n "checking for default fully qualified host name""... $ac_c" 1>&6 -echo "configure:1508: checking for default fully qualified host name" >&5 +echo "configure:1510: checking for default fully qualified host name" >&5 if test -z "$FQDN" then FQDN=`head -1 conftest.out` fi echo "$ac_t""$FQDN" 1>&6 echo $ac_n "checking for default URL host component""... $ac_c" 1>&6 -echo "configure:1515: checking for default URL host component" >&5 +echo "configure:1517: checking for default URL host component" >&5 if test -z "$URL" then URL=`tail -1 conftest.out` @@ -1523,12 +1525,12 @@ for ac_func in strerror setregid syslog do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1527: checking for $ac_func" >&5 +echo "configure:1529: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1532 "configure" +#line 1534 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -1551,7 +1553,7 @@ ; return 0; } EOF -if { (eval echo configure:1555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -1582,17 +1584,17 @@ # with the appropriate include. for lib in bsd socket inet; do echo $ac_n "checking for syslog in -l$lib""... $ac_c" 1>&6 -echo "configure:1586: checking for syslog in -l$lib" >&5 +echo "configure:1588: checking for syslog in -l$lib" >&5 Mailman_LIBS_save="$LIBS"; LIBS="$LIBS -l$lib" cat > conftest.$ac_ext <<EOF -#line 1589 "configure" +#line 1591 "configure" #include "confdefs.h" #include <syslog.h> int main() { syslog(LOG_DEBUG, "Just a test..."); ; return 0; } EOF -if { (eval echo configure:1596: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1598: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF @@ -1614,7 +1616,7 @@ # Checks for header files. echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1618: checking how to run the C preprocessor" >&5 +echo "configure:1620: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1629,13 +1631,13 @@ # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext <<EOF -#line 1633 "configure" +#line 1635 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1639: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1641: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1646,13 +1648,13 @@ rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext <<EOF -#line 1650 "configure" +#line 1652 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1656: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1658: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1663,13 +1665,13 @@ rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext <<EOF -#line 1667 "configure" +#line 1669 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1673: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1675: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1694,12 +1696,12 @@ echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:1698: checking for ANSI C header files" >&5 +echo "configure:1700: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1703 "configure" +#line 1705 "configure" #include "confdefs.h" #include <stdlib.h> #include <stdarg.h> @@ -1707,7 +1709,7 @@ #include <float.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1711: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1713: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1724,7 +1726,7 @@ if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext <<EOF -#line 1728 "configure" +#line 1730 "configure" #include "confdefs.h" #include <string.h> EOF @@ -1742,7 +1744,7 @@ if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext <<EOF -#line 1746 "configure" +#line 1748 "configure" #include "confdefs.h" #include <stdlib.h> EOF @@ -1763,7 +1765,7 @@ : else cat > conftest.$ac_ext <<EOF -#line 1767 "configure" +#line 1769 "configure" #include "confdefs.h" #include <ctype.h> #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -1774,7 +1776,7 @@ exit (0); } EOF -if { (eval echo configure:1778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -1801,17 +1803,17 @@ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1805: checking for $ac_hdr" >&5 +echo "configure:1807: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1810 "configure" +#line 1812 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1815: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1817: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1840,12 +1842,12 @@ # Checks for typedefs, structures, and compiler characteristics. echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:1844: checking for uid_t in sys/types.h" >&5 +echo "configure:1846: checking for uid_t in sys/types.h" >&5 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1849 "configure" +#line 1851 "configure" #include "confdefs.h" #include <sys/types.h> EOF @@ -1874,7 +1876,7 @@ fi echo $ac_n "checking type of array argument to getgroups""... $ac_c" 1>&6 -echo "configure:1878: checking type of array argument to getgroups" >&5 +echo "configure:1880: checking type of array argument to getgroups" >&5 if eval "test \"`echo '$''{'ac_cv_type_getgroups'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1882,7 +1884,7 @@ ac_cv_type_getgroups=cross else cat > conftest.$ac_ext <<EOF -#line 1886 "configure" +#line 1888 "configure" #include "confdefs.h" /* Thanks to Mike Rendell for this test. */ @@ -1907,7 +1909,7 @@ } EOF -if { (eval echo configure:1911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_type_getgroups=gid_t else @@ -1921,7 +1923,7 @@ if test $ac_cv_type_getgroups = cross; then cat > conftest.$ac_ext <<EOF -#line 1925 "configure" +#line 1927 "configure" #include "confdefs.h" #include <unistd.h> EOF @@ -1949,12 +1951,12 @@ for ac_func in vsnprintf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1953: checking for $ac_func" >&5 +echo "configure:1955: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 1958 "configure" +#line 1960 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -1977,7 +1979,7 @@ ; return 0; } EOF -if { (eval echo configure:1981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1983: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else Index: configure.in =================================================================== RCS file: /cvsroot/mailman/mailman/configure.in,v retrieving revision 1.51.2.1 retrieving revision 1.51.2.3 diff -u -r1.51.2.1 -r1.51.2.3 --- configure.in 2 Jul 2002 16:30:50 -0000 1.51.2.1 +++ configure.in 11 Jul 2002 23:50:37 -0000 1.51.2.3 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. dnl Process this file with autoconf to produce a configure script. -AC_REVISION($Revision: 1.51.2.1 $) +AC_REVISION($Revision: 1.51.2.3 $) AC_PREREQ(2.0) AC_INIT(src/alias-wrapper.c) @@ -414,7 +414,7 @@ if not fqdn: try: host, aliases, ipaddrs = gethostbyaddr(gethostbyname(gethostname())) - except herror: + except error: barf(fqdn, www) aliases.insert(0, host) for h in aliases: @@ -431,7 +431,9 @@ if www is None: www = fqdn fp = open('conftest.out', 'w') -if not www and fqdn: +if www and fqdn: + fp.write('%s\n%s\n' % (fqdn, www)) +elif not www and fqdn: fp.write('%s\n%s\n' % (fqdn, fqdn)) elif www: dhn = string.join(string.split(www, '.')[1:], '.') @@ -441,7 +443,7 @@ fp.close() EOF $PYTHON conftest.py -if [ "$?" == "1" ] +if [ $? -eq 1 ] then exit fi Index: Mailman/Defaults.py.in =================================================================== RCS file: /cvsroot/mailman/mailman/Mailman/Defaults.py.in,v retrieving revision 1.125 retrieving revision 1.125.2.1 diff -u -r1.125 -r1.125.2.1 --- Mailman/Defaults.py.in 16 Nov 2000 04:23:52 -0000 1.125 +++ Mailman/Defaults.py.in 24 Jul 2002 13:02:27 -0000 1.125.2.1 @@ -54,6 +54,7 @@ DEFAULT_HOST_NAME = '@FQDN@' # DEFAULT_URL must end in a slash! DEFAULT_URL = 'http://@URL@/mailman/' +# PUBLIC_ARCHIVE_URL and PRIVATE_ARCHIVE_URL should not end in slashes! PUBLIC_ARCHIVE_URL = '/pipermail' PRIVATE_ARCHIVE_URL = '/mailman/private' Index: Mailman/MailCommandHandler.py =================================================================== RCS file: /cvsroot/mailman/mailman/Mailman/Attic/MailCommandHandler.py,v retrieving revision 1.70.2.1 retrieving revision 1.70.2.2 diff -u -r1.70.2.1 -r1.70.2.2 --- Mailman/MailCommandHandler.py 2 Jul 2002 16:33:23 -0000 1.70.2.1 +++ Mailman/MailCommandHandler.py 11 Jul 2002 21:19:34 -0000 1.70.2.2 @@ -120,8 +120,8 @@ # of these clues, so there's little we can do to break loops in that # case, except throttle the number of responses sent to any one # requester in a day. That's a job for MM2.1. - precedence = msg.get('precedence', '').lower() - ack = msg.get('x-ack', '').lower() + precedence = string.lower(msg.get('precedence', '')) + ack = string.lower(msg.get('x-ack', '')) beenthere = msg.get('x-beenthere', '') listid = msg.get('list-id', '') if (precedence in ('bulk', 'list', 'junk') or Index: Mailman/Utils.py =================================================================== RCS file: /cvsroot/mailman/mailman/Mailman/Utils.py,v retrieving revision 1.104.2.9 retrieving revision 1.104.2.10 diff -u -r1.104.2.9 -r1.104.2.10 --- Mailman/Utils.py 2 Jul 2002 17:04:17 -0000 1.104.2.9 +++ Mailman/Utils.py 11 Jul 2002 21:44:28 -0000 1.104.2.10 @@ -765,6 +765,9 @@ try: idhost = socket.getfqdn() except AttributeError: - idhost = socket.gethostbyaddr(socket.gethostname())[0] + try: + idhost = socket.gethostbyaddr(socket.gethostname())[0] + except socket.error: + idhost = mm_cfg.DEFAULT_HOST_NAME msgid = '<%s.%s.%s%s@%s>' % (utcdate, pid, randint, idstring, idhost) return msgid Index: Mailman/Version.py =================================================================== RCS file: /cvsroot/mailman/mailman/Mailman/Version.py,v retrieving revision 1.20.2.12 retrieving revision 1.20.2.13 diff -u -r1.20.2.12 -r1.20.2.13 --- Mailman/Version.py 2 Jul 2002 17:23:32 -0000 1.20.2.12 +++ Mailman/Version.py 29 Jul 2002 15:59:23 -0000 1.20.2.13 @@ -15,7 +15,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Mailman version -VERSION = "2.0.12" +VERSION = "2.0.13" # And as a hex number in the manner of PY_VERSION_HEX ALPHA = 0xa @@ -27,7 +27,7 @@ MAJOR_REV = 2 MINOR_REV = 0 -MICRO_REV = 12 +MICRO_REV = 13 REL_LEVEL = FINAL # at most 15 beta releases! REL_SERIAL = 0 Index: Mailman/Handlers/Decorate.py =================================================================== RCS file: /cvsroot/mailman/mailman/Mailman/Handlers/Decorate.py,v retrieving revision 1.7.2.2 retrieving revision 1.7.2.3 diff -u -r1.7.2.2 -r1.7.2.3 --- Mailman/Handlers/Decorate.py 29 Aug 2001 18:38:17 -0000 1.7.2.2 +++ Mailman/Handlers/Decorate.py 23 Jul 2002 16:19:01 -0000 1.7.2.3 @@ -1,4 +1,4 @@ -# Copyright (C) 1998,1999,2000 by the Free Software Foundation, Inc. +# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -43,7 +43,8 @@ try: footer = string.replace(mlist.msg_footer % d, '\r\n', '\n') except (ValueError, TypeError), e: - syslog('error', 'Exception while calculating message footer:\n%s' % e) + syslog('error', 'Exception while calculating message footer: %s\n%s' % + (mlist.internal_name(), e)) footer = '[INVALID FOOTER]' msg.body = header + msg.body + footer # Mark the message as dirty so that its text will be forced to disk next Index: Mailman/Handlers/ToDigest.py =================================================================== RCS file: /cvsroot/mailman/mailman/Mailman/Handlers/ToDigest.py,v retrieving revision 1.14 retrieving revision 1.14.2.2 diff -u -r1.14 -r1.14.2.2 --- Mailman/Handlers/ToDigest.py 6 Oct 2000 20:33:36 -0000 1.14 +++ Mailman/Handlers/ToDigest.py 23 Jul 2002 16:22:19 -0000 1.14.2.2 @@ -1,4 +1,4 @@ -# Copyright (C) 1998,1999,2000 by the Free Software Foundation, Inc. +# Copyright (C) 1998,1999,2000,2001,2002 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -310,7 +310,13 @@ lines.append("Content-type: text/plain; charset=us-ascii") lines.append("Content-description: Digest Footer") lines.append('') - lines.append(self.__mlist.digest_footer % self.TemplateRefs()) + try: + lines.append(self.__mlist.digest_footer % self.TemplateRefs()) + except (ValueError, TypeError), e: + syslog('error', + 'Exception while calculating digest footer: %s\n%s' % + (self.__mlist.internal_name(), e)) + lines.append('[INVALID FOOTER]') # Close: if mime: # Close encompassing mime envelope. Index: admin/www/download.ht =================================================================== RCS file: /cvsroot/mailman/mailman/admin/www/download.ht,v retrieving revision 1.5.2.15 retrieving revision 1.5.2.16 diff -u -r1.5.2.15 -r1.5.2.16 --- admin/www/download.ht 2 Jul 2002 17:24:54 -0000 1.5.2.15 +++ admin/www/download.ht 29 Jul 2002 15:59:43 -0000 1.5.2.16 @@ -60,9 +60,9 @@ <h3>Downloading</h3> <p>Version -(<!-VERSION--->2.0.12<!-VERSION--->, +(<!-VERSION--->2.0.13<!-VERSION--->, released on -<!-DATE--->Jul 2 2002<!-DATE--->) +<!-DATE--->Jul 29 2002<!-DATE--->) is the current GNU release. It is available from the following mirror sites: <ul> Index: admin/www/download.html =================================================================== RCS file: /cvsroot/mailman/mailman/admin/www/download.html,v retrieving revision 1.6.2.17 retrieving revision 1.6.2.18 diff -u -r1.6.2.17 -r1.6.2.18 --- admin/www/download.html 2 Jul 2002 17:24:55 -0000 1.6.2.17 +++ admin/www/download.html 29 Jul 2002 15:59:43 -0000 1.6.2.18 @@ -1,7 +1,7 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. --> -<!-- Tue Jul 2 13:24:21 2002 --> +<!-- Mon Jul 29 11:59:32 2002 --> <!-- USING HT2HTML 2.0 --> <!-- SEE http://ht2html.sf.net --> <!-- User-specified headers: @@ -246,9 +246,9 @@ <h3>Downloading</h3> <p>Version -(<!-VERSION--->2.0.12<!-VERSION--->, +(<!-VERSION--->2.0.13<!-VERSION--->, released on -<!-DATE--->Jul 2 2002<!-DATE--->) +<!-DATE--->Jul 29 2002<!-DATE--->) is the current GNU release. It is available from the following mirror sites: <ul> Index: admin/www/otherdocs.ht =================================================================== RCS file: /cvsroot/mailman/mailman/admin/www/otherdocs.ht,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -r1.1 -r1.1.2.1 --- admin/www/otherdocs.ht 8 Nov 2000 18:43:39 -0000 1.1 +++ admin/www/otherdocs.ht 29 Jul 2002 15:58:24 -0000 1.1.2.1 @@ -9,7 +9,7 @@ <a href="lists.html">Mailman-Users</a> mailing list. <p><a href="http://www.aurora.edu/~ckolar">Chris Kolar</a> has made -available <a href="http://www.aurora.edu/~ckolar/mailman/">Mailman +available <a href="http://staff.imsa.edu/~ckolar/mailman">Mailman documentation</a>, primarily for list owners who are not necessarily technical, but who own Mailman mailing lists. Index: admin/www/otherdocs.html =================================================================== RCS file: /cvsroot/mailman/mailman/admin/www/otherdocs.html,v retrieving revision 1.4.2.3 retrieving revision 1.4.2.4 diff -u -r1.4.2.3 -r1.4.2.4 --- admin/www/otherdocs.html 4 Apr 2002 18:07:27 -0000 1.4.2.3 +++ admin/www/otherdocs.html 29 Jul 2002 15:58:24 -0000 1.4.2.4 @@ -1,7 +1,7 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <!-- THIS PAGE IS AUTOMATICALLY GENERATED. DO NOT EDIT. --> -<!-- Thu Apr 4 12:57:31 2002 --> +<!-- Mon Jul 29 11:58:10 2002 --> <!-- USING HT2HTML 2.0 --> <!-- SEE http://ht2html.sf.net --> <!-- User-specified headers: @@ -189,7 +189,7 @@ <a href="lists.html">Mailman-Users</a> mailing list. <p><a href="http://www.aurora.edu/~ckolar">Chris Kolar</a> has made -available <a href="http://www.aurora.edu/~ckolar/mailman/">Mailman +available <a href="http://staff.imsa.edu/~ckolar/mailman">Mailman documentation</a>, primarily for list owners who are not necessarily technical, but who own Mailman mailing lists.