nmh-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Nmh-commits] [SCM] The nmh Mail Handling System branch, master, updated


From: Ken Hornstein
Subject: [Nmh-commits] [SCM] The nmh Mail Handling System branch, master, updated. 55795751a1513b7018b38c6c50c5bccc710feff2
Date: Fri, 06 Jan 2012 15:48:34 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The nmh Mail Handling System".

The branch, master has been updated
       via  55795751a1513b7018b38c6c50c5bccc710feff2 (commit)
       via  9680f38826145311f8720dab2d19d3796e8514ee (commit)
       via  aac9670c207aaefb17521c2ce4db39cb8893f660 (commit)
       via  fd83882889b45c597fd051705147e8bc0ba0890d (commit)
       via  a51ad22240aacc586d164bf9b79b9f0380fc8992 (commit)
       via  c152db5d6a64036d4e51ec75c93b6accbb1bfa13 (commit)
       via  30542ddcbeb83a58e5802ec3421516ed9c252991 (commit)
      from  58af02b57c4d2cc732fea0f5ed86e02789d92438 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit/nmh.git/commit/?id=55795751a1513b7018b38c6c50c5bccc710feff2


commit 55795751a1513b7018b38c6c50c5bccc710feff2
Author: Ken Hornstein <address@hidden>
Date:   Fri Jan 6 10:48:03 2012 -0500

    Garbage collect all of the builtin ftp client support.

diff --git a/acconfig.h b/acconfig.h
index a326761..a6d8742 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -26,15 +26,6 @@
 /* #define REALLYDUMB  1 */
 
 /*
- * Compile simple ftp client into mhn.  This will be used by mhn
- * for ftp access unless you have specified another access method
- * in your .mh_profile or mhn.defaults.  Use the "mhn-access-ftp"
- * profile entry to override this.  Check mhn(1) man page for
- * details.
- */
-#define BUILTIN_FTP 1
-
-/*
  * If you enable POP support, this is the the port name that nmh will use.  
Make
  * sure this is defined in your /etc/services file (or its NIS/NIS+ 
equivalent).
  * If you are using KPOP, you will need to change this to "kpop" unless you 
want
diff --git a/docs/pending-release-notes b/docs/pending-release-notes
index 14ad579..83c39ee 100644
--- a/docs/pending-release-notes
+++ b/docs/pending-release-notes
@@ -8,3 +8,7 @@ Things to add to the release notes for the next full release:
 - Old code enabled by the UCI preprocessor definition has been
   garbage-collected.
 - LOCKDIR is now configurable via --enable-lockdir
+- All configuration options that were formerly only adjustable via editing
+  config.h have been removed.
+- Support for the built-in ftp client (used when dealing with external body
+  message parts in MIME messages) has been removed.
diff --git a/h/arpa_ftp.h b/h/arpa_ftp.h
deleted file mode 100644
index 64532b9..0000000
--- a/h/arpa_ftp.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (c) 1983, 1989, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *     @(#)ftp.h       8.1 (Berkeley) 6/2/93
- */
-
-#ifndef _FTP_H_
-#define        _FTP_H_
-
-/* Definitions for FTP; see RFC-765. */
-
-/*
- * Reply codes.
- */
-#define PRELIM         1       /* positive preliminary */
-#define COMPLETE       2       /* positive completion */
-#define CONTINUE       3       /* positive intermediate */
-#define TRANSIENT      4       /* transient negative completion */
-#define ERROR          5       /* permanent negative completion */
-
-/*
- * Type codes
- */
-#define        TYPE_A          1       /* ASCII */
-#define        TYPE_E          2       /* EBCDIC */
-#define        TYPE_I          3       /* image */
-#define        TYPE_L          4       /* local byte size */
-
-#ifdef FTP_NAMES
-char *typenames[] =  {"0", "ASCII", "EBCDIC", "Image", "Local" };
-#endif
-
-/*
- * Form codes
- */
-#define        FORM_N          1       /* non-print */
-#define        FORM_T          2       /* telnet format effectors */
-#define        FORM_C          3       /* carriage control (ASA) */
-#ifdef FTP_NAMES
-char *formnames[] =  {"0", "Nonprint", "Telnet", "Carriage-control" };
-#endif
-
-/*
- * Structure codes
- */
-#define        STRU_F          1       /* file (no record structure) */
-#define        STRU_R          2       /* record structure */
-#define        STRU_P          3       /* page structure */
-#ifdef FTP_NAMES
-char *strunames[] =  {"0", "File", "Record", "Page" };
-#endif
-
-/*
- * Mode types
- */
-#define        MODE_S          1       /* stream */
-#define        MODE_B          2       /* block */
-#define        MODE_C          3       /* compressed */
-#ifdef FTP_NAMES
-char *modenames[] =  {"0", "Stream", "Block", "Compressed" };
-#endif
-
-/*
- * Record Tokens
- */
-#define        REC_ESC         '\377'  /* Record-mode Escape */
-#define        REC_EOR         '\001'  /* Record-mode End-of-Record */
-#define REC_EOF                '\002'  /* Record-mode End-of-File */
-
-/*
- * Block Header
- */
-#define        BLK_EOR         0x80    /* Block is End-of-Record */
-#define        BLK_EOF         0x40    /* Block is End-of-File */
-#define BLK_ERRORS     0x20    /* Block is suspected of containing errors */
-#define        BLK_RESTART     0x10    /* Block is Restart Marker */
-
-#define        BLK_BYTECOUNT   2       /* Bytes in this block */
-
-#endif /* !_FTP_H_ */
diff --git a/uip/Makefile.in b/uip/Makefile.in
index 5b5ed02..d676db0 100644
--- a/uip/Makefile.in
+++ b/uip/Makefile.in
@@ -68,7 +68,7 @@ SCMDS = inc
 # source files
 SRCS = ali.c aliasbr.c anno.c annosbr.c ap.c burst.c comp.c              \
        conflict.c dist.c distsbr.c dp.c dropsbr.c flist.c fmtdump.c      \
-       folder.c forw.c ftpsbr.c inc.c install-mh.c mark.c md5.c mhbuild.c \
+       folder.c forw.c inc.c install-mh.c mark.c md5.c mhbuild.c         \
        mhbuildsbr.c mhcachesbr.c mhfree.c mhl.c mhlist.c mhlistsbr.c     \
        mhlsbr.c mhmail.c mhmisc.c mhn.c mhoutsbr.c mhparam.c mhparse.c   \
        mhpath.c mhshow.c mhshowsbr.c mhstore.c mhstoresbr.c mhtest.c     \
@@ -135,20 +135,20 @@ install-mh: install-mh.o $(LOCALLIBS)
 mark: mark.o $(LOCALLIBS)
        $(LINK) mark.o $(LINKLIBS)
 
-mhbuild: mhbuild.o mhbuildsbr.o mhcachesbr.o mhlistsbr.o mhoutsbr.o mhmisc.o 
mhfree.o mhparse.o ftpsbr.o termsbr.o md5.o $(LOCALLIBS)
-       $(LINK) mhbuild.o mhbuildsbr.o mhcachesbr.o mhlistsbr.o mhoutsbr.o 
mhmisc.o mhfree.o mhparse.o ftpsbr.o md5.o $(LINKLIBS) $(TERMLIB)
+mhbuild: mhbuild.o mhbuildsbr.o mhcachesbr.o mhlistsbr.o mhoutsbr.o mhmisc.o 
mhfree.o mhparse.o termsbr.o md5.o $(LOCALLIBS)
+       $(LINK) mhbuild.o mhbuildsbr.o mhcachesbr.o mhlistsbr.o mhoutsbr.o 
mhmisc.o mhfree.o mhparse.o md5.o $(LINKLIBS) $(TERMLIB)
 
 mhl: mhl.o mhlsbr.o termsbr.o $(LOCALLIBS)
        $(LINK) mhl.o mhlsbr.o termsbr.o $(LINKLIBS) $(TERMLIB)
 
-mhlist: mhlist.o mhparse.o mhcachesbr.o mhlistsbr.o mhmisc.o mhfree.o ftpsbr.o 
termsbr.o md5.o $(LOCALLIBS)
-       $(LINK) mhlist.o mhparse.o mhcachesbr.o mhlistsbr.o mhmisc.o mhfree.o 
ftpsbr.o termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
+mhlist: mhlist.o mhparse.o mhcachesbr.o mhlistsbr.o mhmisc.o mhfree.o 
termsbr.o md5.o $(LOCALLIBS)
+       $(LINK) mhlist.o mhparse.o mhcachesbr.o mhlistsbr.o mhmisc.o mhfree.o 
termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
 
 mhmail: mhmail.o $(LOCALLIBS)
        $(LINK) mhmail.o $(LINKLIBS)
 
-mhn: mhn.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o mhstoresbr.o 
mhmisc.o mhfree.o ftpsbr.o termsbr.o md5.o $(LOCALLIBS)
-       $(LINK) mhn.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o 
mhstoresbr.o mhmisc.o mhfree.o ftpsbr.o termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
+mhn: mhn.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o mhstoresbr.o 
mhmisc.o mhfree.o termsbr.o md5.o $(LOCALLIBS)
+       $(LINK) mhn.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o 
mhstoresbr.o mhmisc.o mhfree.o termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
 
 mhparam: mhparam.o $(LOCALLIBS)
        $(LINK) mhparam.o $(LINKLIBS)
@@ -156,14 +156,14 @@ mhparam: mhparam.o $(LOCALLIBS)
 mhpath: mhpath.o $(LOCALLIBS)
        $(LINK) mhpath.o $(LINKLIBS)
 
-mhshow: mhshow.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o mhmisc.o 
mhfree.o ftpsbr.o termsbr.o md5.o $(LOCALLIBS)
-       $(LINK) mhshow.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o 
mhmisc.o mhfree.o ftpsbr.o termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
+mhshow: mhshow.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o mhmisc.o 
mhfree.o termsbr.o md5.o $(LOCALLIBS)
+       $(LINK) mhshow.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o 
mhmisc.o mhfree.o termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
 
-mhstore: mhstore.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o mhstoresbr.o 
mhmisc.o mhfree.o ftpsbr.o termsbr.o md5.o $(LOCALLIBS)
-       $(LINK) mhstore.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o 
mhstoresbr.o mhmisc.o mhfree.o ftpsbr.o termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
+mhstore: mhstore.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o mhstoresbr.o 
mhmisc.o mhfree.o termsbr.o md5.o $(LOCALLIBS)
+       $(LINK) mhstore.o mhparse.o mhcachesbr.o mhshowsbr.o mhlistsbr.o 
mhstoresbr.o mhmisc.o mhfree.o termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
 
-mhtest: mhtest.o mhparse.o mhcachesbr.o mhoutsbr.o mhmisc.o mhfree.o ftpsbr.o 
termsbr.o md5.o $(LOCALLIBS)
-       $(LINK) mhtest.o mhparse.o mhcachesbr.o mhoutsbr.o mhmisc.o mhfree.o 
ftpsbr.o termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
+mhtest: mhtest.o mhparse.o mhcachesbr.o mhoutsbr.o mhmisc.o mhfree.o termsbr.o 
md5.o $(LOCALLIBS)
+       $(LINK) mhtest.o mhparse.o mhcachesbr.o mhoutsbr.o mhmisc.o mhfree.o 
termsbr.o md5.o $(LINKLIBS) $(TERMLIB)
 
 msgchk: msgchk.o $(POPLIB) $(LOCALLIBS)
        $(LINK) msgchk.o $(POPLIB) $(LINKLIBS)
diff --git a/uip/ftpsbr.c b/uip/ftpsbr.c
deleted file mode 100644
index 0ffca35..0000000
--- a/uip/ftpsbr.c
+++ /dev/null
@@ -1,515 +0,0 @@
-/*
- * ftpsbr.c -- simple FTP client library
- *
- * This code is Copyright (c) 2002, by the authors of nmh.  See the
- * COPYRIGHT file in the root directory of the nmh distribution for
- * complete copyright information.
- */
-
-#include <h/mh.h>
-#include <h/mime.h>
-
-#include "h/arpa_ftp.h"
-
-#define        v_debug debugsw
-#define        v_verbose verbosw
-
-static int ftp_fd = NOTOK;
-static int data_fd = NOTOK;
-
-static int v_noise;
-
-extern int v_debug;
-extern int v_verbose;
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <errno.h>
-
-#define        start_tcp_client(res) \
-       socket (res->ai_family, res->ai_socktype, res->ai_protocol)
-
-#define        join_tcp_server(fd, sock, len) \
-       connect ((fd), (struct sockaddr *) (sock), len)
-
-/*
- * prototypes
- */
-int ftp_get (char *, char *, char *, char *, char *, char *, int, int);
-int ftp_trans (char *, char *, char *, char *, char *, char *, char *, int, 
int);
-
-/*
- * static prototypes
- */
-static int start_tcp_server (struct sockaddr_in *, int, int, int);
-static void _asnprintf (char *, int, char *, va_list);
-static int ftp_quit (void);
-static int ftp_read (char *, char *, char *, int);
-static int initconn (void);
-static int dataconn (void);
-static int command (int arg1, ...);
-static int vcommand (int, va_list);
-static int getreply (int, int);
-
-
-static int
-start_tcp_server (struct sockaddr_in *sock, int backlog, int opt1, int opt2)
-{
-    int eindex, sd;
-
-    if ((sd = socket (AF_INET, SOCK_STREAM, 0)) == NOTOK)
-       return NOTOK;
-
-    if (bind (sd, (struct sockaddr *) sock, sizeof *sock) == NOTOK) {
-       eindex = errno;
-       close (sd);
-       errno = eindex;
-    } else {
-       listen (sd, backlog);
-    }
-
-    return sd;
-}
-
-
-static int __len__;
-
-#define        join_tcp_client(fd,sock) \
-       accept ((fd), (struct sockaddr *) (sock), \
-               (__len__ = sizeof *(sock), &__len__))
-
-#define        read_tcp_socket  read
-#define        write_tcp_socket write
-#define        close_tcp_socket close
-
-static void
-_asnprintf (char *bp, int len_bp, char *what, va_list ap)
-{
-    int eindex, len;
-    char *fmt;
-
-    eindex = errno;
-
-    *bp = '\0';
-    fmt = va_arg (ap, char *);
-
-    if (fmt) {
-       vsnprintf(bp, len_bp, fmt, ap);
-       len = strlen(bp);
-       bp += len;
-       len_bp -= len;
-    }
-
-    if (what) {
-       char *s;
-
-       if (*what) {
-           snprintf (bp, len_bp, " %s: ", what);
-           len = strlen (bp);
-           bp += len;
-           len_bp -= len;
-       }
-       if ((s = strerror(eindex)))
-           strncpy (bp, s, len_bp);
-       else
-           snprintf (bp, len_bp, "Error %d", eindex);
-       bp += strlen (bp);
-    }
-
-    errno = eindex;
-}
-
-
-int
-ftp_get (char *host, char *user, char *password, char *cwd,
-         char *remote, char *local, int ascii, int stayopen)
-{
-    return ftp_trans (host, user, password, cwd, remote, local,
-                      "RETR", ascii, stayopen);
-}
-
-
-int
-ftp_trans (char *host, char *user, char *password, char *cwd, char *remote,
-           char *local, char *cmd, int ascii, int stayopen)
-{
-    int        result;
-
-    if (stayopen <= 0) {
-       result = ftp_quit ();
-       if (host == NULL)
-           return result;
-    }
-
-    if (ftp_fd == NOTOK) {
-       struct addrinfo hints, *res;
-
-       memset(&hints, 0, sizeof(hints));
-#ifdef AI_ADDRCONFIG
-       hints.ai_flags = AI_ADDRCONFIG;
-#endif
-       hints.ai_family = PF_INET;
-       hints.ai_socktype = SOCK_STREAM;
-
-       result = getaddrinfo(host, "ftp", &hints, &res);
-
-       if (result) {
-           fprintf(stderr, "%s/ftp: %s\n", host, gai_strerror(result));
-           return NOTOK;
-       }
-
-       if ((ftp_fd = start_tcp_client (res)) == NOTOK) {
-           perror (host);
-           freeaddrinfo(res);
-           return NOTOK;
-       }
-       if (join_tcp_server (ftp_fd, res->ai_addr, res->ai_addrlen) == NOTOK) {
-           perror (host);
-           freeaddrinfo(res);
-           close_tcp_socket (ftp_fd), ftp_fd = NOTOK;
-           return NOTOK;
-       }
-       freeaddrinfo(res);
-       getreply (1, 0);
-
-       if (v_verbose) {
-           fprintf (stdout, "Connected to %s\n", host);
-           fflush (stdout);
-       }
-
-       if (user) {
-           if ((result = command (0, "USER %s", user)) == CONTINUE)
-               result = command (1, "PASS %s", password);
-           if (result != COMPLETE) {
-               result = NOTOK;
-               goto out;
-           }
-       }
-
-       if (remote == NULL)
-           return OK;
-    }
-
-    if (cwd && ((result = command (0, "CWD %s", cwd)) != COMPLETE
-                   && result != CONTINUE)) {
-       result = NOTOK;
-       goto out;
-    }
-
-    if (command (1, ascii ? "TYPE A" : "TYPE I") != COMPLETE) {
-       result = NOTOK;
-       goto out;
-    }
-
-    result = ftp_read (remote, local, cmd, ascii);
-
-out: ;
-    if (result != OK || !stayopen)
-       ftp_quit ();
-
-    return result;
-}
-
-
-static int
-ftp_quit (void)
-{
-    int        n;
-
-    if (ftp_fd == NOTOK)
-       return OK;
-
-    n = command (1, "QUIT");
-    close_tcp_socket (ftp_fd), ftp_fd = NOTOK;
-    return (n == 0 || n == COMPLETE ? OK : NOTOK);
-}
-
-static int
-ftp_read (char *remote, char *local, char *cmd, int ascii)
-{
-    int        istdio = 0, istore;
-    register int cc;
-    int        expectingreply = 0;
-    char buffer[BUFSIZ];
-    FILE *fp = NULL;
-
-    if (initconn () == NOTOK)
-       goto bad;
-
-    v_noise = v_verbose;
-    if (command (-1, *remote ? "%s %s" : "%s", cmd, remote) != PRELIM)
-       goto bad;
-
-    expectingreply++;
-    if (dataconn () == NOTOK) {
-bad: ;
-        if (fp && !istdio)
-           fclose (fp);
-       if (data_fd != NOTOK)
-           close_tcp_socket (data_fd), data_fd = NOTOK;
-       if (expectingreply)
-           getreply (-2, 0);
-
-       return NOTOK;
-    }
-
-    istore = !strcmp (cmd, "STOR");
-
-    if ((istdio = !strcmp (local, "-")))
-       fp = istore ? stdin : stdout;
-    else
-       if ((fp = fopen (local, istore ? "r" : "w")) == NULL) {
-           perror (local);
-           goto bad;
-       }
-
-    if (istore) {
-       if (ascii) {
-           int c;
-           FILE *out;
-
-           if (!(out = fdopen (data_fd, "w"))) {
-               perror ("fdopen");
-               goto bad;
-           }
-
-           while ((c = getc (fp)) != EOF) {
-               if (c == '\n')
-                   putc ('\r', out);
-               if (putc (c, out) == EOF) {
-                   perror ("putc");
-                   fclose (out);
-                   data_fd = NOTOK;
-                   goto bad;
-               }
-           }
-
-           fclose (out);
-           data_fd = NOTOK;
-       }
-       else {
-           while ((cc = fread (buffer, sizeof *buffer, sizeof buffer, fp)) > 0)
-               if (write_tcp_socket (data_fd, buffer, cc) != cc) {
-                   perror ("write_tcp_socket");
-                   goto bad;
-               }
-
-           close_tcp_socket (data_fd), data_fd = NOTOK;
-       }
-    }
-    else {
-       if (ascii) {
-           int c;
-           FILE *in;
-
-           if (!(in = fdopen (data_fd, "r"))) {
-               perror ("fdopen");
-               goto bad;
-           }
-
-           while ((c = getc (in)) != EOF) {
-               if (c == '\r')
-                   switch (c = getc (in)) {
-                       case EOF:
-                       case '\0':
-                           c = '\r';
-                           break;
-
-                       case '\n':
-                           break;
-
-                       default:
-                           putc ('\r', fp);
-                           break;
-                       }
-
-               if (putc (c, fp) == EOF) {
-                   perror ("putc");
-                   fclose (in);
-                   data_fd = NOTOK;
-                   goto bad;
-               }
-           }
-
-           fclose (in);
-           data_fd = NOTOK;
-       }
-       else {
-           while ((cc = read_tcp_socket (data_fd, buffer, sizeof buffer)) > 0)
-               if (fwrite (buffer, sizeof *buffer, cc, fp) == 0) {
-                   perror ("fwrite");
-                   goto bad;
-               }
-           if (cc < 0) {
-               perror ("read_tcp_socket");
-               goto bad;
-           }
-
-           close_tcp_socket (data_fd), data_fd = NOTOK;
-       }
-    }
-
-    if (!istdio)
-       fclose (fp);
-
-    v_noise = v_verbose;
-    return (getreply (1, 0) == COMPLETE ? OK : NOTOK);
-}
-
-
-#define        UC(b) (((int) b) & 0xff)
-
-static int
-initconn (void)
-{
-    int        len;
-    register char *a, *p;
-    struct sockaddr_in in_socket;
-
-    if (getsockname (ftp_fd, (struct sockaddr *) &in_socket,
-                    (len = sizeof(in_socket), &len)) == NOTOK) {
-       perror ("getsockname");
-       return NOTOK;
-    }
-    in_socket.sin_port = 0;
-    if ((data_fd = start_tcp_server (&in_socket, 1, 0, 0)) == NOTOK) {
-       perror ("start_tcp_server");
-       return NOTOK;
-    }
-
-    if (getsockname (data_fd, (struct sockaddr *) &in_socket,
-                    (len = sizeof in_socket, &len)) == NOTOK) {
-       perror ("getsockname");
-       return NOTOK;
-    }
-
-    a = (char *) &in_socket.sin_addr;
-    p = (char *) &in_socket.sin_port;
-
-    if (command (1, "PORT %d,%d,%d,%d,%d,%d",
-                     UC(a[0]), UC(a[1]), UC(a[2]), UC(a[3]),
-                     UC(p[0]), UC(p[1])) == COMPLETE)
-       return OK;
-
-    return NOTOK;
-}
-
-static int
-dataconn (void)
-{
-    int        fd;
-    struct sockaddr_in in_socket;
-    
-    if ((fd = join_tcp_client (data_fd, &in_socket)) == NOTOK) {
-       perror ("join_tcp_client");
-       return NOTOK;
-    }
-    close_tcp_socket (data_fd);
-    data_fd = fd;
-
-    return OK;
-}
-
-
-static int
-command (int arg1, ...)
-{
-    int        val;
-    va_list ap;
-
-    va_start (ap, arg1);
-    val = vcommand (arg1, ap);
-    va_end (ap);
-
-    return val;
-}
-
-static int
-vcommand (int complete, va_list ap)
-{
-    int        len;
-    char buffer[BUFSIZ];
-
-    if (ftp_fd == NOTOK)
-       return NOTOK;
-
-    _asnprintf (buffer, sizeof(buffer), NULL, ap);
-    if (v_debug)
-       fprintf (stderr, "<--- %s\n", buffer);
-
-    strcat (buffer, "\r\n");
-    len = strlen (buffer);
-
-    if (write_tcp_socket (ftp_fd, buffer, len) != len) {
-       perror ("write_tcp_socket");
-       return NOTOK;
-    }
-
-    return (getreply (complete, !strcmp (buffer, "QUIT")));
-}
-
-
-static int
-getreply (int complete, int expecteof)
-{
-    for (;;) {
-       register int code, dig, n;
-       int continuation;
-       register char *bp;
-       char buffer[BUFSIZ];
-
-       code = dig = n = continuation = 0;
-       bp = buffer;
-
-       for (;;) {
-           unsigned char c;
-
-           if (read_tcp_socket (ftp_fd, &c, 1) < 1) {
-               if (expecteof)
-                   return OK;
-
-               perror ("read_tcp_socket");
-               return DONE;
-           }
-           if (c == '\n')
-               break;
-           *bp++ = c != '\r' ? c : '\0';
-
-           dig++;
-           if (dig < 4) {
-               if (isdigit(c))
-                   code = code * 10 + (c - '0');
-               else                            /* XXX: naughty FTP... */
-                   if (isspace (c))
-                       continuation++;
-           }
-           else
-               if (dig == 4 && c == '-')
-                   continuation++;
-           if (n == 0)
-               n = c;
-       }
-
-       if (v_debug)
-           fprintf (stderr, "---> %s\n", buffer);
-       if (continuation)
-           continue;
-
-       n -= '0';
-
-       if (v_noise) {
-           fprintf (stdout, "%s\n", buffer);
-           fflush (stdout);
-           v_noise = 0;
-       }
-       else
-           if ((complete == -1 && n != PRELIM)
-                   || (complete == 0 && n != CONTINUE && n != COMPLETE)
-                   || (complete == 1 && n != COMPLETE))
-               fprintf (stderr, "%s\n", buffer);
-
-       return n;
-    }
-}
diff --git a/uip/mhbuildsbr.c b/uip/mhbuildsbr.c
index a36941f..ea2bcd6 100644
--- a/uip/mhbuildsbr.c
+++ b/uip/mhbuildsbr.c
@@ -71,9 +71,6 @@ void content_error (char *, CT, char *, ...);
 /* mhcachesbr.c */
 int find_cache (CT, int, int *, char *, char *, int);
 
-/* ftpsbr.c */
-int ftp_get (char *, char *, char *, char *, char *, char *, int, int);
-
 /* mhfree.c */
 void free_content (CT);
 void free_ctinfo (CT);
diff --git a/uip/mhparse.c b/uip/mhparse.c
index 14322ab..4959dfe 100644
--- a/uip/mhparse.c
+++ b/uip/mhparse.c
@@ -2485,10 +2485,8 @@ openFTP (CT ct, char **file)
     if ((ftp = context_find (nmhaccessftp)) && !*ftp)
        ftp = NULL;
 
-#ifndef BUILTIN_FTP
     if (!ftp)
        return NOTOK;
-#endif
 
     switch (openExternal (e->eb_parent, e->eb_content, ce, file, &fd)) {
        case NOTOK:
@@ -2587,9 +2585,6 @@ openFTP (CT ct, char **file)
        return NOTOK;
     }
 
-#ifdef BUILTIN_FTP
-    if (ftp)
-#endif
     {
        int child_id, i, vecp;
        char *vec[9];
@@ -2625,9 +2620,6 @@ openFTP (CT ct, char **file)
 
            default:
                if (pidXwait (child_id, NULL)) {
-#ifdef BUILTIN_FTP
-losing_ftp:
-#endif
                    username = password = NULL;
                    ce->ce_unlink = 1;
                    return NOTOK;
@@ -2635,14 +2627,6 @@ losing_ftp:
                break;
        }
     }
-#ifdef BUILTIN_FTP
-    else
-       if (ftp_get (e->eb_site, user, pass, e->eb_dir, e->eb_name,
-                    ce->ce_file,
-                    e->eb_mode && !mh_strcasecmp (e->eb_mode, "ascii"), 0)
-               == NOTOK)
-           goto losing_ftp;
-#endif
 
     if (cachefile[0]) {
        if (caching)

http://git.savannah.gnu.org/cgit/nmh.git/commit/?id=9680f38826145311f8720dab2d19d3796e8514ee


commit 9680f38826145311f8720dab2d19d3796e8514ee
Author: Ken Hornstein <address@hidden>
Date:   Fri Jan 6 10:37:38 2012 -0500

    Garbage-collect MHRC (and make it the default).

diff --git a/acconfig.h b/acconfig.h
index ce6b5c4..a326761 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -26,11 +26,6 @@
 /* #define REALLYDUMB  1 */
 
 /*
- * If this is defined, nmh will recognize the ~ construct.
- */
-#define MHRC    1
-
-/*
  * Compile simple ftp client into mhn.  This will be used by mhn
  * for ftp access unless you have specified another access method
  * in your .mh_profile or mhn.defaults.  Use the "mhn-access-ftp"
diff --git a/config/config.c b/config/config.c
index b08b3e2..a4edc46 100644
--- a/config/config.c
+++ b/config/config.c
@@ -9,10 +9,7 @@
 
 #include <h/mh.h>
 #include <stdio.h>
-
-#ifdef MHRC
-# include <pwd.h>
-#endif
+#include <pwd.h>
 
 #define nmhbindir(file) NMHBINDIR#file
 #define nmhetcdir(file) NMHETCDIR#file
@@ -35,21 +32,16 @@ etcpath (char *file)
 {
     static char epath[PATH_MAX];
     char *cp;
-#ifdef MHRC
     char *pp;
     struct passwd *pw;
-#endif
 
-#ifdef MHRC
     context_read();
-#endif
 
     switch (*file) {
        case '/': 
            /* If already absolute pathname, return it */
            return file;
 
-#ifdef MHRC
        case '~': 
            /* Expand ~username */
            if ((cp = strchr(pp = file + 1, '/')))
@@ -73,7 +65,6 @@ etcpath (char *file)
            if (access (epath, R_OK) != NOTOK)
                return epath;   /* else fall */
 try_it:
-#endif /* MHRC */
 
        default: 
            /* Check nmh Mail directory */

http://git.savannah.gnu.org/cgit/nmh.git/commit/?id=aac9670c207aaefb17521c2ce4db39cb8893f660


commit aac9670c207aaefb17521c2ce4db39cb8893f660
Author: Ken Hornstein <address@hidden>
Date:   Fri Jan 6 10:36:21 2012 -0500

    Garbage-collect SLOCAL_MBOX (and make it the default).

diff --git a/acconfig.h b/acconfig.h
index 51bc739..ce6b5c4 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -26,13 +26,6 @@
 /* #define REALLYDUMB  1 */
 
 /*
- * If defined, slocal will use `mbox' format when saving to
- * your standard mail spool.  If not defined, it will use
- * mmdf format.
- */
-#define SLOCAL_MBOX  1
-
-/*
  * If this is defined, nmh will recognize the ~ construct.
  */
 #define MHRC    1
diff --git a/uip/slocal.c b/uip/slocal.c
index 22a21b1..f10c76d 100644
--- a/uip/slocal.c
+++ b/uip/slocal.c
@@ -439,11 +439,7 @@ localmail (int fd, char *mdlvr)
        verbose_printf ("(delivering to standard mail spool)\n");
 
     /* last resort - deliver to standard mail spool */
-#ifdef SLOCAL_MBOX
     return usr_file (fd, mbox, MBOX_FORMAT);
-#else
-    return usr_file (fd, mbox, MMDF_FORMAT);
-#endif
 }
 
 

http://git.savannah.gnu.org/cgit/nmh.git/commit/?id=fd83882889b45c597fd051705147e8bc0ba0890d


commit fd83882889b45c597fd051705147e8bc0ba0890d
Author: Ken Hornstein <address@hidden>
Date:   Fri Jan 6 10:35:16 2012 -0500

    Garbage-collect RPATHS support.

diff --git a/acconfig.h b/acconfig.h
index 85b04d7..51bc739 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -26,14 +26,6 @@
 /* #define REALLYDUMB  1 */
 
 /*
- * Directs inc/slocal to extract the envelope sender from "From "
- * line.  If inc/slocal is saving message to folder, then this
- * sender information is then used to create a Return-Path
- * header which is then added to the message.
- */
-#define RPATHS  1
-
-/*
  * If defined, slocal will use `mbox' format when saving to
  * your standard mail spool.  If not defined, it will use
  * mmdf format.
diff --git a/h/prototypes.h b/h/prototypes.h
index 1c55136..fcc8f0c 100644
--- a/h/prototypes.h
+++ b/h/prototypes.h
@@ -125,10 +125,6 @@ int uprf (char *, char *);
 int vfgets (FILE *, char **);
 char *write_charset_8bit (void);
 
-#ifdef RPATHS
-int get_returnpath (char *, int, char *, int);
-#endif
-
 int mh_strcasecmp (const char *s1, const char *s2);
 int strncasecmp (const char *s1, const char *s2, size_t n);
 
diff --git a/sbr/m_getfld.c b/sbr/m_getfld.c
index be871c4..f31b9c4 100644
--- a/sbr/m_getfld.c
+++ b/sbr/m_getfld.c
@@ -582,10 +582,6 @@ finish:
 }
 
 
-#ifdef RPATHS
-static char unixbuf[BUFSIZ] = "";
-#endif /* RPATHS */
-
 void
 m_unknown(FILE *iob)
 {
@@ -615,15 +611,8 @@ m_unknown(FILE *iob)
            && strncmp (text, "From ", 5) == 0) {
        msg_style = MS_MBOX;
        delimstr = "\nFrom ";
-#ifndef        RPATHS
        while ((c = getc (iob)) != '\n' && c >= 0)
            ;
-#else /* RPATHS */
-       cp = unixbuf;
-       while ((c = getc (iob)) != '\n' && cp - unixbuf < BUFSIZ - 1)
-           *cp++ = c;
-       *cp = 0;
-#endif /* RPATHS */
     } else {
        /* not a Unix style maildrop */
        fseek (iob, pos, SEEK_SET);
@@ -692,9 +681,6 @@ m_Eom (int c, FILE *iob)
     register long pos = 0L;
     register int i;
     char text[10];
-#ifdef RPATHS
-    register char *cp;
-#endif /* RPATHS */
 
     pos = ftell (iob);
     if ((i = fread (text, sizeof *text, edelimlen, iob)) != edelimlen
@@ -715,83 +701,15 @@ m_Eom (int c, FILE *iob)
     }
 
     if (msg_style == MS_MBOX) {
-#ifndef RPATHS
        while ((c = getc (iob)) != '\n')
            if (c < 0)
                break;
-#else /* RPATHS */
-       cp = unixbuf;
-       while ((c = getc (iob)) != '\n' && c >= 0 && cp - unixbuf < BUFSIZ - 1)
-           *cp++ = c;
-       *cp = 0;
-#endif /* RPATHS */
     }
 
     return 1;
 }
 
 
-#ifdef RPATHS
-/*
- * Return the Return-Path and Delivery-Date
- * header information.
- *
- * Currently, I'm assuming that the "From " line
- * takes one of the following forms.
- *
- * From sender date remote from host   (for UUCP delivery)
- * From address@hidden  date              (for sendmail delivery)
- */
-
-int
-get_returnpath (char *rp, int rplen, char *dd, int ddlen)
-{
-    char *ap, *bp, *cp, *dp;
-
-    ap = unixbuf;
-    if (!(bp = cp = strchr(ap, ' ')))
-       return 0;
-
-    /*
-     * Check for "remote from" in envelope to see
-     * if this message uses UUCP style addressing
-     */
-    while ((cp = strchr(++cp, 'r'))) {
-       if (strncmp (cp, "remote from", 11) == 0) {
-           cp = strrchr (cp, ' ');
-           break;
-       }
-    }
-
-    /*
-     * Get the Return-Path information from
-     * the "From " envelope.
-     */
-    if (cp) {
-       /* return path for UUCP style addressing */
-       dp = strchr (++cp, '\n');
-       snprintf (rp, rplen, "%.*s!%.*s\n", (int)(dp - cp), cp, (int)(bp - ap), 
ap);
-    } else {
-       /* return path for standard domain addressing */
-       snprintf (rp, rplen, "%.*s\n", (int)(bp - ap), ap);
-    }
-
-    /*
-     * advance over the spaces to get to
-     * delivery date on envelope
-     */
-    while (*bp == ' ')
-       bp++;
-
-    /* Now get delivery date from envelope */
-    snprintf (dd, ddlen, "%.*s\n", 24, bp);
-
-    unixbuf[0] = 0;
-    return 1;
-}
-#endif /* RPATHS */
-
-
 static unsigned char *
 matchc(int patln, char *pat, int strln, char *str)
 {
diff --git a/uip/scansbr.c b/uip/scansbr.c
index 04dc215..0d12c34 100644
--- a/uip/scansbr.c
+++ b/uip/scansbr.c
@@ -87,11 +87,6 @@ scan (FILE *inb, int innum, int outnum, char *nfs, int 
width, int curflg,
     char name[NAMESZ];
     static int rlwidth, slwidth;
 
-#ifdef RPATHS
-    char returnpath[BUFSIZ];
-    char deliverydate[BUFSIZ];
-#endif
-
     /* first-time only initialization */
     if (!scanl) {
        if (width == 0) {
@@ -173,19 +168,6 @@ scan (FILE *inb, int innum, int outnum, char *nfs, int 
width, int curflg,
        }
        if ((scnout = fopen (scnmsg, "w")) == NULL)
            adios (scnmsg, "unable to write");
-#ifdef RPATHS
-       /*
-        * Add the Return-Path and Delivery-Date
-        * header fields to message.
-        */
-       if (get_returnpath (returnpath, sizeof(returnpath),
-               deliverydate, sizeof(deliverydate))) {
-           FPUTS ("Return-Path: ");
-           FPUTS (returnpath);
-           FPUTS ("Delivery-Date: ");
-           FPUTS (deliverydate);
-       }
-#endif /* RPATHS */
     }
 
     /* scan - main loop */
diff --git a/uip/slocal.c b/uip/slocal.c
index cf91737..22a21b1 100644
--- a/uip/slocal.c
+++ b/uip/slocal.c
@@ -1335,9 +1335,6 @@ you_lose:
        if (first) {
            first = 0;
            if (!strncmp (buffer, "From ", i)) {
-#ifdef RPATHS
-               char *fp, *cp, *hp, *ep;
-#endif
                /* get copy of envelope information ("From " line) */
                envelope = getcpy (buffer);
 
@@ -1348,33 +1345,6 @@ you_lose:
                    goto fputs_error;
 #endif
 
-#ifdef RPATHS
-               /*
-                * Now create a "Return-Path:" line
-                * from the "From " line.
-                */
-               hp = cp = strchr(fp = envelope + i, ' ');
-               while ((hp = strchr(++hp, 'r')))
-                   if (uprf (hp, "remote from")) {
-                       hp = strrchr(hp, ' ');
-                       break;
-                   }
-               if (hp) {
-                   /* return path for UUCP style addressing */
-                   ep = strchr(++hp, '\n');
-                   snprintf (buffer, sizeof(buffer), "Return-Path: 
%.*s!%.*s\n",
-                       (int)(ep - hp), hp, (int)(cp - fp), fp);
-               } else {
-                   /* return path for standard domain addressing */
-                   snprintf (buffer, sizeof(buffer), "Return-Path: %.*s\n",
-                       (int)(cp - fp), fp);
-               }
-
-               /* Add Return-Path header to message */
-               fputs (buffer, ffp);
-               if (ferror (ffp))
-                   goto fputs_error;
-#endif
                /* Put the delivery date in message */
                fputs (ddate, ffp);
                if (ferror (ffp))

http://git.savannah.gnu.org/cgit/nmh.git/commit/?id=a51ad22240aacc586d164bf9b79b9f0380fc8992


commit a51ad22240aacc586d164bf9b79b9f0380fc8992
Author: Ken Hornstein <address@hidden>
Date:   Fri Jan 6 10:29:35 2012 -0500

    Huh, turns out this define hasn't worked in forever ... the original
    changes were made to the lexer output, and silently vanished a decade
    ago when code was reorganized from zotnet to sbr!

diff --git a/acconfig.h b/acconfig.h
index dad1509..85b04d7 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -26,20 +26,6 @@
 /* #define REALLYDUMB  1 */
 
 /*
- * Starting on January 1, 2000, some MUAs like ELM and Ultrix's DXmail started
- * generated bad dates ("00" or "100" for the year).  If this #define is 
active,
- * we use windowing to correct those dates to what we presume to be the 
intended
- * values.  About the only time this could get us into trouble would be if a 
MUA
- * was generating a year of "00" in 2001 or later, due to an unrelated bug.  In
- * this case we would "correct" the year to 2000, which could result in
- * inaccurate bug reports against the offending MUA.  A much more esoteric case
- * in which you might not want to #define this would be if you were OCR'ing in
- * old written correspondence and saving it in email format, and you had dates
- * of 1899 or earlier.
- */
-#define FIX_NON_Y2K_COMPLIANT_MUA_DATES 1
-
-/*
  * Directs inc/slocal to extract the envelope sender from "From "
  * line.  If inc/slocal is saving message to folder, then this
  * sender information is then used to create a Return-Path

http://git.savannah.gnu.org/cgit/nmh.git/commit/?id=c152db5d6a64036d4e51ec75c93b6accbb1bfa13


commit c152db5d6a64036d4e51ec75c93b6accbb1bfa13
Author: Ken Hornstein <address@hidden>
Date:   Fri Jan 6 10:22:44 2012 -0500

    Remove last vestiges of #ifdef BANG

diff --git a/sbr/addrsbr.c b/sbr/addrsbr.c
index 484ec5e..227b40b 100644
--- a/sbr/addrsbr.c
+++ b/sbr/addrsbr.c
@@ -280,12 +280,10 @@ auxformat (struct mailname *mp, int extras)
        else
 #endif /* DUMB */
 
-#ifndef        BANG
        if (mp->m_type != UUCPHOST)
            snprintf (addr, sizeof(addr), mp->m_host ? "address@hidden" : 
"%s%s",
                empty(mp->m_path), empty(mp->m_mbox), mp->m_host);
        else
-#endif /* not BANG */
            snprintf (addr, sizeof(addr), "%s!%s", mp->m_host, mp->m_mbox);
 
     if (!extras)
@@ -354,11 +352,7 @@ adrsprintf (char *username, char *domain)
     if (domain == NULL)
        domain = LocalName();
 
-#ifndef        BANG
     snprintf_return = snprintf (addr, sizeof(addr), "address@hidden", 
username, domain);
-#else /* BANG */
-    snprintf_return = snprintf (addr, sizeof(addr), "%s!%s", domain, username);
-#endif /* BANG */
 
     if (snprintf_return < 0 || snprintf_return >= sizeof(addr))
        adios(NULL, "snprintf() error writing username (%d chars), domain (%d"

http://git.savannah.gnu.org/cgit/nmh.git/commit/?id=30542ddcbeb83a58e5802ec3421516ed9c252991


commit 30542ddcbeb83a58e5802ec3421516ed9c252991
Author: Ken Hornstein <address@hidden>
Date:   Fri Jan 6 10:21:17 2012 -0500

    Remove DBMPWD, make it the default.

diff --git a/acconfig.h b/acconfig.h
index 70c2c6d..dad1509 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -12,12 +12,6 @@
  */
 
 /*
- * Define this if your passwords are stored in some type of
- * distributed name service, such as NIS, or NIS+.
- */
-#define DBMPWD  1
-
-/*
  * Directs nmh not to try and rewrite addresses
  * to their official form.  You probably don't
  * want to change this without good reason.
diff --git a/uip/aliasbr.c b/uip/aliasbr.c
index b1a7e61..50a2cd5 100644
--- a/uip/aliasbr.c
+++ b/uip/aliasbr.c
@@ -350,29 +350,20 @@ addgroup (struct aka *ak, char *grp)
        return 0;
     }
 
-#ifndef DBMPWD
-    if (homehead == NULL)
-       init_pw ();
-#endif /* DBMPWD */
-
     while ((gp = *gr->gr_mem++))
-#ifdef DBMPWD
     {
        struct passwd *pw;
-#endif /* DBMPWD */
        for (hm = homehead; hm; hm = hm->h_next)
            if (!strcmp (hm->h_name, gp)) {
                add_aka (ak, hm->h_name);
                break;
            }
-#ifdef DBMPWD
         if ((pw = getpwnam(gp)))
        {
                hmalloc(pw);
                add_aka (ak, gp);
        }
     }
-#endif /* DBMPWD */
 
     return 1;
 }
@@ -396,10 +387,7 @@ addmember (struct aka *ak, char *grp)
        return 0;
     }
 
-#ifndef DBMPWD
-    if (homehead == NULL)
-#endif /* DBMPWD */
-       init_pw ();
+    init_pw ();
 
     for (hm = homehead; hm; hm = hm->h_next)
        if (hm->h_gid == gid)
@@ -415,10 +403,8 @@ addall (struct aka *ak)
     int noshell = NoShell == NULL || *NoShell == 0;
     register struct home *hm;
 
-#ifndef DBMPWD
-    if (homehead == NULL)
-#endif /* DBMPWD */
-       init_pw ();
+    init_pw ();
+
     if (Everyone < 0)
        Everyone = EVERYONE;
 
@@ -487,28 +473,24 @@ void
 init_pw (void)
 {
     register struct passwd  *pw;
-#ifdef DBMPWD
     static int init;
   
     if (!init)
     {
-          /* if the list has yet to be initialized */
-           /* zap the list, and rebuild from scratch */
-           homehead=NULL;
-           hometail=NULL;
-           init++;
-#endif /* DBMPWD */
+       /* if the list has yet to be initialized */
+       /* zap the list, and rebuild from scratch */
+       homehead=NULL;
+       hometail=NULL;
+       init++;
 
-    setpwent ();
+       setpwent ();
 
-    while ((pw = getpwent ()))
-       if (!hmalloc (pw))
-           break;
+       while ((pw = getpwent ()))
+           if (!hmalloc (pw))
+               break;
 
-    endpwent ();
-#ifdef DBMPWD
+       endpwent ();
     }
-#endif /* DBMPWD */
 }
 
 
@@ -561,22 +543,15 @@ struct home *
 seek_home (char *name)
 {
     register struct home *hp;
-#ifdef DBMPWD
     struct passwd *pw;
     char lname[32];
     unsigned char *c;
     char *c1;
-#else  /* DBMPWD */
-
-    if (homehead == NULL)
-       init_pw ();
-#endif /* DBMPWD */
 
     for (hp = homehead; hp; hp = hp->h_next)
        if (!mh_strcasecmp (name, hp->h_name))
            return hp;
 
-#ifdef DBMPWD
     /*
      * The only place where there might be problems.
      * This assumes that ALL usernames are kept in lowercase.
@@ -590,7 +565,6 @@ seek_home (char *name)
     *c1 = '\0';
     if ((pw = getpwnam(lname)))
        return(hmalloc(pw));
-#endif /* DBMPWD */
-       
+
     return NULL;
 }

-----------------------------------------------------------------------

Summary of changes:
 acconfig.h                 |   49 -----
 config/config.c            |   11 +-
 docs/pending-release-notes |    4 +
 h/arpa_ftp.h               |  109 ----------
 h/prototypes.h             |    4 -
 sbr/addrsbr.c              |    6 -
 sbr/m_getfld.c             |   82 -------
 uip/Makefile.in            |   26 ++--
 uip/aliasbr.c              |   54 ++----
 uip/ftpsbr.c               |  515 --------------------------------------------
 uip/mhbuildsbr.c           |    3 -
 uip/mhparse.c              |   16 --
 uip/scansbr.c              |   18 --
 uip/slocal.c               |   34 ---
 14 files changed, 32 insertions(+), 899 deletions(-)
 delete mode 100644 h/arpa_ftp.h
 delete mode 100644 uip/ftpsbr.c


hooks/post-receive
-- 
The nmh Mail Handling System



reply via email to

[Prev in Thread] Current Thread [Next in Thread]