Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Nov 1997 01:02:54 +0800 (CST)
From:      Yen-Shuo Su <yssu@netflow.nctu.edu.tw>
To:        FreeBSD-gnats-submit@FreeBSD.ORG, yssu@CCCA.NCTU.edu.tw
Subject:   ports/5083: New port: zh-pine-3.96
Message-ID:  <199711181702.BAA22062@netflow.nctu.edu.tw>
Resent-Message-ID: <199711181810.KAA10418@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         5083
>Category:       ports
>Synopsis:       New port: zh-pine-3.96
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports
>State:          open
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Nov 18 10:10:00 PST 1997
>Last-Modified:
>Originator:     Yen-Shuo Su
>Organization:
Campus Computer Comminication Association
>Release:        FreeBSD 2.2-970625-RELENG i386
>Environment:


>Description:

	New port: zh-pine-3.96 in chinese cat.
	This port fixed chinese display/input problem.

>How-To-Repeat:


>Fix:

Patch file for zh-pine-3.96 under ports/chinese
	
diff -ruN pine.orig/Makefile pine/Makefile
--- pine.orig/Makefile	Thu Jan  1 08:00:00 1970
+++ pine/Makefile	Wed Nov 19 00:59:03 1997
@@ -0,0 +1,24 @@
+# New ports collection makefile for:	pine
+# Version required:     3.96
+# Date created:		19 Nov1997
+# Whom:			Yen-Shuo Su <yssu@CCCA.NCTU.edu.tw>
+#
+# $Id$
+#
+
+DISTNAME=       pine3.96
+PKGNAME=        zh-pine-3.96
+CATEGORIES=     chinese
+MASTER_SITES=	ftp://ftp.cac.washington.edu/pine/
+
+MAINTAINER=	woju@freebsd.ee.ntu.edu.tw
+
+MAN1= 		pine.1 pico.1 pilot.1
+
+post-install:
+	${INSTALL} -d -o ${SHAREOWN} -g ${SHAREGRP} -m 755 \
+		${PREFIX}/share/doc/pine
+	cd ${WRKSRC} && \
+		${INSTALL_DATA} doc/tech-notes.txt ${PREFIX}/share/doc/pine
+
+.include <bsd.port.mk>
diff -ruN pine.orig/files/Makefile pine/files/Makefile
--- pine.orig/files/Makefile	Thu Jan  1 08:00:00 1970
+++ pine/files/Makefile	Tue Nov 18 23:19:55 1997
@@ -0,0 +1,15 @@
+all:
+	./build bsf
+install:
+	install -c -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} bin/libpico.so.1.3 ${PREFIX}/lib/libpico.so.1.3
+	/sbin/ldconfig -m ${PREFIX}/lib
+	install -c -s -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} bin/pico ${PREFIX}/bin/pico
+	install -c -s -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} bin/pilot ${PREFIX}/bin/pilot
+	install -c -s -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} bin/pine ${PREFIX}/bin/pine
+	install -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} ../../files/pgpencrypt ${PREFIX}/bin/pgpencrypt
+	install -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} ../../files/pgpdecode ${PREFIX}/bin/pgpdecode
+	install -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} ../../files/pgpsign ${PREFIX}/bin/pgpsign
+	install -c -o ${SHAREOWN} -g ${SHAREGRP} -m ${SHAREMODE} ../../files/dot.pinerc.pgp.sample ${PREFIX}/etc/dot.pinerc.pgp.sample
+	install -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} doc/pico.1 ${PREFIX}/man/man1/pico.1
+	install -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} doc/pilot.1 ${PREFIX}/man/man1/pilot.1
+	install -c -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} doc/pine.1 ${PREFIX}/man/man1/pine.1
diff -ruN pine.orig/files/dot.pinerc.pgp.sample pine/files/dot.pinerc.pgp.sample
--- pine.orig/files/dot.pinerc.pgp.sample	Thu Jan  1 08:00:00 1970
+++ pine/files/dot.pinerc.pgp.sample	Tue Nov 18 23:19:55 1997
@@ -0,0 +1,16 @@
+# List of features; see Pine's Setup/options menu for the current set.
+# e.g. feature-list= select-without-confirm, signature-at-bottom
+# Default condition for all of the features is no-.
+feature-list=compose-send-offers-first-filter
+
+# This variable takes a list of programs that message text is piped into
+# after MIME decoding, prior to display.
+display-filters="-----BEGIN PGP" /usr/local/bin/pgpdecode
+
+# This defines a program that message text is piped into before MIME
+# encoding, prior to sending
+sending-filters=/usr/local/bin/pgpsign,
+        /usr/local/bin/pgpencrypt _RECIPIENTS_
+
+# hook, to get rid of the sucking 'quoted printable' ;-))
+# enable-8bit-esmtp-negotiation
diff -ruN pine.orig/files/md5 pine/files/md5
--- pine.orig/files/md5	Thu Jan  1 08:00:00 1970
+++ pine/files/md5	Tue Nov 18 23:19:55 1997
@@ -0,0 +1 @@
+MD5 (pine3.96.tar.gz) = bf32b0bf1296ff2151e1bc7f546d43ab
diff -ruN pine.orig/files/pgpdecode pine/files/pgpdecode
--- pine.orig/files/pgpdecode	Thu Jan  1 08:00:00 1970
+++ pine/files/pgpdecode	Tue Nov 18 23:19:55 1997
@@ -0,0 +1,14 @@
+#! /bin/sh
+# ---------- pgpdecode ---------
+# 21.03.96 Roland Rosenfeld <roland@spinnaker.rhein.de>
+#
+# Sun Mar 24 12:01:21 MET 1996 Andreas Klemm <andreas@knobel.gun.de>
+# The tmp files in the original version were world readable for
+# the short time of unpacking, setting suitable umask prevents this
+#
+umask 077
+trap "rm -f /tmp/pgpdecode.???.$$; exit" 0 1 2 15
+(pgp -f > /tmp/pgpdecode.txt.$$) 2>&1 | tee /tmp/pgpdecode.pgp.$$ 1>&2
+sed -e 's/^/| /' /tmp/pgpdecode.pgp.$$
+echo " "
+cat /tmp/pgpdecode.txt.$$
diff -ruN pine.orig/files/pgpencrypt pine/files/pgpencrypt
--- pine.orig/files/pgpencrypt	Thu Jan  1 08:00:00 1970
+++ pine/files/pgpencrypt	Tue Nov 18 23:19:55 1997
@@ -0,0 +1,4 @@
+#!/bin/sh
+# ---------- pgpencrypt ---------
+# 21.03.96 Roland Rosenfeld <roland@spinnaker.rhein.de>
+pgp -feast $*
diff -ruN pine.orig/files/pgpsign pine/files/pgpsign
--- pine.orig/files/pgpsign	Thu Jan  1 08:00:00 1970
+++ pine/files/pgpsign	Tue Nov 18 23:19:55 1997
@@ -0,0 +1,4 @@
+#!/bin/sh
+# ---------- pgpsign ---------
+# 21.03.96 Roland Rosenfeld <roland@spinnaker.rhein.de>
+pgp -fast
diff -ruN pine.orig/patches/patch-aa pine/patches/patch-aa
--- pine.orig/patches/patch-aa	Thu Jan  1 08:00:00 1970
+++ pine/patches/patch-aa	Tue Nov 18 23:19:56 1997
@@ -0,0 +1,100 @@
+*** pico/makefile.bsf.orig	Fri Jun 14 00:15:20 1996
+--- pico/makefile.bsf	Fri Jun 14 00:15:20 1996
+***************
+*** 0 ****
+--- 1,95 ----
++ #
++ #   Michael Seibel
++ #   Networks and Distributed Computing
++ #   Computing and Communications
++ #   University of Washington
++ #   Administration Builiding, AG-44
++ #   Seattle, Washington, 98195, USA
++ #   Internet: mikes@cac.washington.edu
++ #
++ #   Please address all bugs and comments to "pine-bugs@cac.washington.edu"
++ #
++ #
++ #   Pine and Pico are registered trademarks of the University of Washington.
++ #   No commercial use of these trademarks may be made without prior written
++ #   permission of the University of Washington.
++ #
++ #   Pine, Pico, and Pilot software and its included text are Copyright
++ #   1989-1996 by the University of Washington.
++ #
++ #   The full text of our legal notices is contained in the file called
++ #   CPYRIGHT, included with this distribution.
++ #
++ 
++ #
++ # Makefile for the FreeBSD shared-lib version of the PINE composer library and 
++ # stand-alone editor pico.
++ #
++ 
++ #includes symbol info for debugging 
++ DASHO=		# -g
++ #for normal build
++ #DASHO=		-O
++ 
++ STDCFLAGS=	-DBSDI -DBSDI2 -DPOSIX -DJOB_CONTROL -DANSI -DMOUSE
++ CFLAGS+=		$(EXTRACFLAGS) $(DASHO) $(STDCFLAGS)
++ 
++ # switches for library building
++ LIBCMD=		ar
++ LIBARGS=	ru
++ RANLIB=		ranlib
++ 
++ LIBS=		$(EXTRALIBES) -ltermcap
++ 
++ OFILES=		attach.o ansi.o basic.o bind.o browse.o buffer.o \
++ 		composer.o display.o file.o fileio.o line.o osdep.o \
++ 		pico.o random.o region.o search.o spell.o tcap.o window.o word.o
++ 
++ # Lets be elite and not retype in the above
++ SOFILES=	${OFILES:.o=.so}
++ 
++ CFILES=		attach.c ansi.c basic.c bind.c browse.c buffer.c \
++ 		composer.c display.c file.c fileio.c line.c osdep.c \
++ 		pico.c random.c region.c search.c spell.c tcap.c window.c word.c
++ 
++ HFILES=		estruct.h edef.h efunc.h ebind.h pico.h osdep.h
++ 
++ # Need this for the shared library rule to work correctly
++ .SUFFIXES: .o .so
++ 
++ #
++ # dependencies for the Unix versions of pico and libpico.a
++ #
++ all:		pico pilot
++ 
++ osdep.c:	os_unix.c
++ 		rm -f osdep.c
++ 		cp os_unix.c osdep.c
++ 
++ osdep.h:	os_unix.h
++ 		rm -f osdep.h
++ 		cp os_unix.h osdep.h
++ 
++ libpico.a:	osdep.c osdep.h $(OFILES)
++ 		$(LIBCMD) $(LIBARGS) libpico.a $(OFILES)
++ 		$(RANLIB) libpico.a
++ 
++ libpico.so.1.3:	osdep.c osdep.h $(SOFILES)
++ 		ld -Bshareable -x -o libpico.so.1.3 $(SOFILES)
++ 
++ pico:		main.c libpico.so.1.3
++ 		$(CC) $(CFLAGS) main.c -L. -lpico $(LIBS) -o pico
++ 
++ pilot:		pilot.c libpico.so.1.3
++ 		$(CC) $(CFLAGS) pilot.c -L. -lpico $(LIBS) -o pilot
++ 
++ .c.so:		; $(CC) -fpic -DPIC -c $(CFLAGS) ${@:.so=.c} -o $@
++ 
++ .c.o:		; $(CC) -c $(CFLAGS) $*.c
++ 
++ $(OFILES):	$(HFILES)
++ 
++ $(SOFILES):	$(HFILES)
++ 
++ clean:
++ 		rm -f *.a *.so.1.3 *.o *.so *~ osdep.c osdep.h pico pilot
diff -ruN pine.orig/patches/patch-ab pine/patches/patch-ab
--- pine.orig/patches/patch-ab	Thu Jan  1 08:00:00 1970
+++ pine/patches/patch-ab	Tue Nov 18 23:19:55 1997
@@ -0,0 +1,15 @@
+*** pico/os_unix.c.orig	Wed Jun 12 15:47:21 1996
+--- pico/os_unix.c	Fri Jun 14 00:15:30 1996
+***************
+*** 1343,1347 ****
+      extern int  sys_nerr;
+  
+!     return((err >= 0 && err < sys_nerr) ? sys_errlist[err] : NULL);
+  }
+  
+--- 1343,1347 ----
+      extern int  sys_nerr;
+  
+!     return(((err >= 0) && (err < sys_nerr)) ? (char*)sys_errlist[err] : NULL);
+  }
+  
diff -ruN pine.orig/patches/patch-ac pine/patches/patch-ac
--- pine.orig/patches/patch-ac	Thu Jan  1 08:00:00 1970
+++ pine/patches/patch-ac	Tue Nov 18 23:19:55 1997
@@ -0,0 +1,411 @@
+*** pine/osdep/os-bsf.h.orig	Tue Dec  3 16:36:18 1996
+--- pine/osdep/os-bsf.h	Tue Dec  3 17:46:48 1996
+***************
+*** 0 ****
+--- 1,406 ----
++ /*----------------------------------------------------------------------
++ 
++             T H E    P I N E    M A I L   S Y S T E M
++ 
++    Laurence Lundblade and Mike Seibel
++    Networks and Distributed Computing
++    Computing and Communications
++    University of Washington
++    Administration Builiding, AG-44
++    Seattle, Washington, 98195, USA
++    Internet: lgl@CAC.Washington.EDU
++              mikes@CAC.Washington.EDU
++ 
++    Please address all bugs and comments to "pine-bugs@cac.washington.edu"
++ 
++ 
++    Pine and Pico are registered trademarks of the University of Washington.
++    No commercial use of these trademarks may be made without prior written
++    permission of the University of Washington.
++ 
++    Pine, Pico, and Pilot software and its included text are Copyright
++    1989-1996 by the University of Washington.
++ 
++    The full text of our legal notices is contained in the file called
++    CPYRIGHT, included with this distribution.
++ 
++ 
++    Pine is in part based on The Elm Mail System:
++     ***********************************************************************
++     *  The Elm Mail System  -  Revision: 2.13                             *
++     *                                                                     *
++     * 			Copyright (c) 1986, 1987 Dave Taylor              *
++     * 			Copyright (c) 1988, 1989 USENET Community Trust   *
++     ***********************************************************************
++  
++ 
++   ----------------------------------------------------------------------*/
++ 
++ #ifndef _OS_INCLUDED
++ #define _OS_INCLUDED
++ 
++ 
++ /*----------------------------------------------------------------------
++ 
++    This first section has some constants that you may want to change
++    for your configuration.  This is the BSD/386 Gamma 4.1 version of the
++    os.h file.
++    Further down in the file are os-dependent things that need to be set up
++    correctly for each os.  They aren't interesting, they just have to be
++    right.  There are also a few constants down there that may be of
++    interest to some.
++ 
++  ----*/
++ 
++ /*----------------------------------------------------------------------
++    Define this if you want the disk quota to be checked on startup.
++    Of course, this only makes sense if your system has quotas.  If it doesn't,
++    there should be a dummy disk_quota() routine in os-xxx.c so that defining
++    this won't be harmful anyway.
++  ----*/
++ /* #define USE_QUOTAS  /* comment out if you never want quotas checked */
++ 
++ 
++ 
++ /*----------------------------------------------------------------------
++    Define this if you want to allow the users to change their From header
++    line when they send out mail.  The users will still have to configure
++    either default-composer-hdrs or customized-hdrs to get at the From
++    header, even if this is set.
++  ----*/
++ #define ALLOW_CHANGING_FROM  /* comment out to not allow changing From */
++ 
++ 
++ 
++ /*----------------------------------------------------------------------
++    Define this if you want to allow users to turn on the feature that
++    enables sending to take place in a fork()'d child.  This may reduce
++    the time on the user's wall clock it takes to post mail.
++    NOTE: You'll also have to make sure the appropriate osdep/postreap.*
++          file is included in the os-*.ic file for your system.
++  ----*/
++ #define BACKGROUND_POST  /* comment out to disable posting from child */
++ 
++ 
++ 
++ /*----------------------------------------------------------------------
++     Turn this on if you want to disable the keyboard lock function.
++  ----*/
++ /* #define NO_KEYBOARD_LOCK */
++ 
++ 
++ 
++ /*----------------------------------------------------------------------
++     Turn this on to trigger QP encoding of sent message text if it contains
++   "From " at the beginning of a line or "." on a line by itself.
++  ----*/
++ /* #define ENCODE_FROMS */
++ 
++ 
++ 
++ /*----------------------------------------------------------------------
++     Timeouts (seconds)
++  ----*/
++ #define DF_MAILCHECK      "150" /* How often to check for new mail, by
++ 				   default.  There's some expense in doing
++ 				   this so it shouldn't be done too
++ 				   frequently.  (Can be set in config
++ 				   file now.)  */
++ 
++ /*----------------------------------------------------------------------
++     Check pointing (seconds)
++  ----*/
++ #define CHECK_POINT_TIME (7*60) /* Check point the mail file (write changes
++ 				   to disk) if more than CHECK_POINT_TIME
++ 				   seconds have passed since the first
++ 				   change was made.  Depending on what is
++ 				   happening, we may wait up to three times
++ 				   this long, since we don't want to do the
++ 				   slow check pointing and irritate the user. */
++                                      
++ #define CHECK_POINT_FREQ   (12) /* Check point the mail file if there have been
++                                    at least this many (status) changes to the
++ 				   current mail file.  We may wait longer if
++ 				   it isn't a good time to do the checkpoint. */
++ 
++ 
++ 
++ /*----------------------------------------------------------------------
++  In scrolling through text, the number of lines from the previous
++  screen to overlap when showing the next screen.  Usually set to two.
++  ----*/
++ #define	DF_OVERLAP	"2"
++ 
++ 
++ 
++ /*----------------------------------------------------------------------
++  When scrolling screens, the number of lines from top and bottom of
++  the screen to initiate single-line scrolling.
++  ----*/
++ #define	DF_MARGIN	"0"
++ 
++ 
++ 
++ /*----------------------------------------------------------------------
++  Default fill column for pine composer and maximum fill column.  The max
++  is used to stop people from setting their custom fill column higher than
++  that number.  Note that DF_FILLCOL is a string but MAX_FILLCOL is an integer.
++  ----*/
++ #define	DF_FILLCOL	"74"
++ #define	MAX_FILLCOL	80
++ 
++ 
++ 
++ /*----- System-wide config file ----------------------------------------*/
++ #define SYSTEM_PINERC             "/usr/local/etc/pine.conf"
++ #define SYSTEM_PINERC_FIXED       "/usr/local/etc/pine.conf.fixed"
++ 
++ 
++ 
++ /*----------------------------------------------------------------------
++    The default folder names and folder directories (some for backwards
++    compatibility).  Think hard before changing any of these.
++  ----*/
++ #define DF_DEFAULT_FCC            "sent-mail"
++ #define DEFAULT_SAVE              "saved-messages"
++ #define POSTPONED_MAIL            "postponed-mail"
++ #define POSTPONED_MSGS            "postponed-msgs"
++ #define INTERRUPTED_MAIL          ".pine-interrupted-mail"
++ #define DEADLETTER                "dead.letter"
++ #define DF_MAIL_DIRECTORY         "mail"
++ #define INBOX_NAME                "INBOX"
++ #define DF_SIGNATURE_FILE         ".signature"
++ #define DF_ELM_STYLE_SAVE         "no"
++ #define DF_HEADER_IN_REPLY        "no"
++ #define DF_OLD_STYLE_REPLY        "no"
++ #define DF_USE_ONLY_DOMAIN_NAME   "no"
++ #define DF_FEATURE_LEVEL          "sapling"
++ #define DF_SAVE_BY_SENDER         "no"
++ #define DF_SORT_KEY               "arrival"
++ #define DF_AB_SORT_RULE           "fullname-with-lists-last"
++ #define DF_SAVED_MSG_NAME_RULE    "default-folder"
++ #define DF_FCC_RULE               "default-fcc"
++ #define DF_STANDARD_PRINTER       "lpr"
++ #define ANSI_PRINTER              "attached-to-ansi"
++ #define DF_ADDRESSBOOK            ".addressbook"
++ #define DF_BUGS_FULLNAME          "Pine Developers"
++ #define DF_BUGS_ADDRESS           "pine-bugs@cac.washington.edu"
++ #define DF_SUGGEST_FULLNAME       "Pine Developers"
++ #define DF_SUGGEST_ADDRESS        "pine-suggestions@cac.washington.edu"
++ #define DF_PINEINFO_FULLNAME      "Pine-Info News Group"
++ #define DF_PINEINFO_ADDRESS       "pine-info@cac.washington.edu"
++ #define DF_LOCAL_FULLNAME         "Local Support"
++ #define DF_LOCAL_ADDRESS          "postmaster"
++ #define DF_KBLOCK_PASSWD_COUNT    "1"
++ 
++ /*----------------------------------------------------------------------
++    The default printer when pine starts up for the first time with no printer
++  ----*/
++ #define DF_DEFAULT_PRINTER        ANSI_PRINTER
++ 
++ 
++ 
++ /*----------------------------------------------------------------------
++ 
++    OS dependencies, BSD/386 Gamma 4.1 version.  See also the os-bsi.c files.
++    The following stuff may need to be changed for a new port, but once
++    the port is done, it won't change.  At the bottom of the file are a few
++    constants that you may want to configure differently than they
++    are configured, but probably not.
++ 
++  ----*/
++ 
++ 
++ 
++ /*----------------- Are we ANSI? ---------------------------------------*/
++ #define ANSI		/* this is an ANSI compiler */
++ 
++ /*------ If our compiler doesn't understand type void ------------------*/
++ /* #define void char     /* no void in compiler */
++ 
++ 
++ 
++ /*------- Some more includes that should usually be correct ------------*/
++ #include <pwd.h>
++ #include <sys/wait.h>
++ #include <sys/stat.h>
++ #include <fcntl.h>
++ #include <netdb.h>
++ 
++ 
++ 
++ /*----------------- locale.h -------------------------------------------*/
++ #include <locale.h>  /* To make matching and sorting work right */
++ 
++ 
++ 
++ /*----------------- time.h ---------------------------------------------*/
++ #include <time.h>
++ /* plain time.h isn't enough on some systems */
++ /* #include <sys/time.h>  /* For struct timeval usually in time.h */ 
++ 
++ 
++ 
++ /*--------------- signal.h ---------------------------------------------*/
++ #include <signal.h>      /* sometimes both required, sometimes */
++ /* #include <sys/signal.h>  /* only one or the other */
++ 
++ #define SigType void     /* value returned by sig handlers is void */
++ /* #define SigType int      /* value returned by sig handlers is int */
++ 
++ #define POSIX_SIGNALS    /* use POSIX signal semantics (ttyin.c) */
++ /* #define SYSV_SIGNALS    /* use System-V signal semantics (ttyin.c) */
++ 
++ 
++ 
++ 
++ /*-------------- A couple typedef's for integer sizes ------------------*/
++ typedef unsigned int usign32_t;
++ typedef unsigned short usign16_t;
++ 
++ 
++ 
++ /*-------------- qsort argument type -----------------------------------*/
++ #define QSType void  /* qsort arg is of type void * */
++ /* #define QSType char  /* qsort arg is of type char * */
++ 
++ 
++ 
++ /*-------------- fcntl flag to set non-blocking IO ---------------------*/
++ #define	NON_BLOCKING_IO	O_NONBLOCK		/* POSIX style */
++ /* #define	NON_BLOCKING_IO	FNDELAY		/* good ol' bsd style  */
++ 
++ 
++ 
++ /*------ how help text is referenced (always char ** on Unix) ----------*/
++ #define HelpType char **
++ #define NO_HELP (char **)NULL
++ 
++ 
++ 
++ /*
++  * Choose one of the following three terminal drivers
++  */
++ 
++ /*--------- Good 'ol BSD -----------------------------------------------*/
++ /* #include <sgtty.h>      /* BSD-based systems */
++ 
++ /*--------- System V terminal driver -----------------------------------*/
++ /* #define HAVE_TERMIO     /* this is for pure System V */
++ /* #include <termio.h>     /* Sys V */
++ 
++ /*--------- POSIX terminal driver --------------------------------------*/
++ #define HAVE_TERMIOS    /* this is an alternative */
++ #include <termios.h>    /* POSIX */
++ 
++ 
++ 
++ /*-------- Use poll system call instead of select ----------------------*/
++ /* #define USE_POLL        /* use the poll() system call instead of select() */
++ 
++ 
++ 
++ /*-------- Use terminfo database instead of termcap --------------------*/
++ /* #define USE_TERMINFO    /* use terminfo instead of termcap */
++ 
++ 
++ 
++ /*-- What argument does wait(2) take? Define this if it is a union -----*/
++ /* #define HAVE_WAIT_UNION  /* the arg to wait is a union wait * */
++ 
++ 
++ 
++ /*-------- Is window resizing available? -------------------------------*/
++ #if defined(TIOCGWINSZ) && defined(SIGWINCH)
++ #define RESIZING  /* SIGWINCH and friends */
++ #endif
++ 
++ 
++ 
++ /*-------- If no vfork, use regular fork -------------------------------*/
++ /* #define vfork fork  /* vfork is just a lightweight fork, so can use fork */
++ 
++ 
++ 
++ /*----- The usual sendmail configuration for sending mail on Unix ------*/
++ #define SENDMAIL	"/usr/sbin/sendmail"
++ #define SENDMAILFLAGS	"-bs -odb -oem"	/* send via smtp with backgroud
++ 					   delivery and mail back errors */
++ 
++ 
++ /*----------------------------------------------------------------------
++    If no nntp-servers are defined, this program will be used to post news.
++  ----*/
++ #define SENDNEWS     "/usr/local/news/lib/inews -h"       /* news posting cmd */
++ 
++ 
++ /*--------- Program employed by users to change their password ---------*/
++ #define	PASSWD_PROG	"/usr/bin/passwd"
++ 
++ 
++ /*-------------- A couple constants used to size arrays ----------------*/
++ #include <sys/param.h>          /* Get it from param.h if available */
++ #undef MAXPATH                  /* Sometimes defined in param.h differently */
++ #define MAXPATH MAXPATHLEN      /* Longest pathname we ever expect */
++ /* #define MAXPATH        (512)    /* Longest pathname we ever expect */
++ #define MAXFOLDER      (64)     /* Longest foldername we ever expect */  
++ 
++ 
++ /*-- Max screen pine will display on. Used to define some array sizes --*/
++ #define MAX_SCREEN_COLS  (170) 
++ #define MAX_SCREEN_ROWS  (200) 
++ 
++ 
++ /*---- When no screen size can be discovered this is the size used -----*/
++ #define DEFAULT_LINES_ON_TERMINAL	(24)
++ #define DEFAULT_COLUMNS_ON_TERMINAL	(80)
++ 
++ 
++ /*----------------------------------------------------------------------
++     Where to put the output of pine in debug mode. Files are created
++  in the user's home directory and have a number appended to them when
++  there is more than one.
++  ----*/
++ #define DEBUGFILE	".pine-debug"
++ 
++ /*----------------------------------------------------------------------
++     The number of debug files to save in the user's home diretory. The files
++  are useful for figuring out what a user did when he complains that something
++  went wrong. It's important to keep a bunch around, usually 4, so that the
++  debug file in question will still be around when the problem gets 
++  investigated. Users tend to go in and out of Pine a few times and there
++  is one file for each pine invocation
++  ----*/
++ #define NUMDEBUGFILES 4
++ 
++ /*----------------------------------------------------------------------
++    The default debug level to set (approximate meanings):
++        1 logs only highest level events and errors
++        2 logs events like file writes
++        3
++        4 logs each command
++        5
++        6 
++        7 logs details of command execution (7 is highest to run any production)
++        8
++        9 logs gross details of command execution
++  ----*/
++ #define DEFAULT_DEBUG 0
++ 
++ 
++ 
++ /*----------------------------------------------------------------------
++     Various maximum field lengths, probably shouldn't be changed.
++  ----*/
++ #define MAX_FULLNAME     (100) 
++ #define MAX_NICKNAME      (40)
++ #define MAX_ADDRESS      (200)
++ #define MAX_NEW_LIST     (500)  /* Max addrs to be added when creating list */
++ #define MAX_SEARCH       (100)  /* Longest string to search for             */
++ #define MAX_ADDR_EXPN   (1000)  /* Longest expanded addr                    */
++ #define MAX_ADDR_FIELD (10000)  /* Longest fully-expanded addr field        */
++ 
++ 
++ #endif /* _OS_INCLUDED */
++ 
++ 
diff -ruN pine.orig/patches/patch-ad pine/patches/patch-ad
--- pine.orig/patches/patch-ad	Thu Jan  1 08:00:00 1970
+++ pine/patches/patch-ad	Tue Nov 18 23:19:55 1997
@@ -0,0 +1,138 @@
+*** pine/osdep/os-bsf.ic.orig	Fri Jun 14 00:15:47 1996
+--- pine/osdep/os-bsf.ic	Fri Jun 14 00:57:02 1996
+***************
+*** 0 ****
+--- 1,133 ----
++ ;
++ ; FreeBSD os-fbs.ic file for building os-fbs.c.
++ ;
++ ; Boilerplate header.
++ include(header)
++ 
++ ; Can_access function.  Just calls access.  Only one version available.
++ include(canacces)
++ 
++ ; File_size function.  Only one version available.
++ include(filesize)
++ 
++ ; Is_writable_dir function.  Only one version available.
++ include(writ_dir)
++ 
++ ; Create_mail_dir function.  All Unixes use creatdir and DOS
++ ; uses creatdir.dos.
++ include(creatdir)
++ 
++ ; Rename_file function.  All Unixes use rename and DOS uses
++ ; rename.dos.  There is also one called rename.hom which
++ ; is currently unused.  Hom stands for homemade.
++ include(rename)
++ 
++ ; Build_path function.  All Unixes use bld_path and DOS
++ ; uses bld_path.dos.
++ include(bld_path)
++ 
++ ; Last_cmpnt function.  All Unixes use lstcmpnt and DOS
++ ; uses lstcmpnt.dos.
++ include(lstcmpnt)
++ 
++ ; Expand_foldername function.  All Unixes use expnfldr and DOS
++ ; uses expnfldr.dos.
++ include(expnfldr)
++ 
++ ; Fnexpand function.  All Unixes use fnexpand and DOS
++ ; uses fnexpand.dos.
++ include(fnexpand)
++ 
++ ; Filter_filename function.  All Unixes use fltrname and DOS
++ ; uses fltrname.dos.
++ include(fltrname)
++ 
++ ; There are several versions of disk quotas.  Standard BSD-style quotas
++ ; (Australian) include diskquot.  Systems which don't have quotas use
++ ; diskquot.non.  Systems which use Sun-style quotas are slightly more
++ ; complicated.  They usually require different include files.  They are
++ ; set up to include the file sunquota and prepend include file info to
++ ; that.  See diskquot.*.
++ include(diskquot.non)
++ 
++ ; Read_file function.  All Unixes use readfile and DOS
++ ; uses readfile.dos.
++ include(readfile)
++ 
++ ; Create_tmpfile function.  This usually just calls the ANSI standard
++ ; tmpfile function if there is one.  That is the version in the file tempfile.
++ ; There is also a tempfile.non for Unix systems which don't have a tmpfile
++ ; function already.
++ include(tempfile)
++ 
++ ; Temp_nam function.  This usually just calls the "standard"
++ ; tmpnam function if there is one.  That is the version in the file tempnam.
++ include(tempnam)
++ 
++ ; Coredump function.  Version called coredump just calls abort, coredump.fpe
++ ; uses a floating point exception to cause the coredump on some systems.
++ include(coredump)
++ 
++ ; This is usually a call to gethostname.  That version is in the file hostname.
++ ; There is also a version called hostname.una which uses the uname system
++ ; call commonly found in SysV systems.  An unused version called
++ ; hostname.hom also exists.
++ include(hostname)
++ 
++ ; Getdomainnames function.  All Unixes use domnames and DOS
++ ; uses domnames.dos.
++ include(domnames)
++ 
++ ; Canonical_name function.  All Unixes use canonicl and DOS
++ ; uses canonicl.dos.
++ include(canonicl)
++ 
++ ; This file includes two functions, have_job_control and stop_process.
++ ; The Unix version is called jobcntrl and the slightly-different DOS
++ ; version is jobcntrl.dos.
++ include(jobcntrl)
++ 
++ ; Error_desciption function.  All Unixes use err_desc.  The version
++ ; called err_desc.dos is the same except that it doesn't declare the
++ ; variable sys_errlist[], which is already declared.  There
++ ; is also a version called err_desc.hom which is unused.
++ include(err_desc.dos)
++ 
++ ; There are six functions in this include.  They are get_system_login,
++ ; get_system_fullname, get_system_homedir, get_system_passwd, gcos_name,
++ ; and local_name_lookup.  The Unix version is pw_stuff and the dos version
++ ; is pw_stuff.dos.  There is also a pw_stuff.fun.  Fun stands for funny
++ ; GCOS field.  It's currently unused.
++ include(pw_stuff)
++ 
++ ; Change_passwd function.  Unixes use chnge_pw.
++ ; There is also a DOS version.
++ include(chnge_pw)
++ 
++ ; Mime_can_display function.  Only a single version of this now.
++ include(mimedisp)
++ 
++ ; Most systems have the ANSI fgetpos and fsetpos functions.  For those,
++ ; use fgetpos.  If a system doesn't have it use fgetpos.non.
++ include(fgetpos)
++ 
++ ; These functions are similar to popen(), but allow both an input stream 
++ ; and an output buffer.
++ include(pipe)
++ 
++ ; These functions are used to wait on a fork'd child doing our posting
++ include(postreap.wtp)
++ 
++ ; These functions are used to hand messages off to local mail transport
++ ; and posting agents (typically, "sendmail").
++ include(sendmail)
++ 
++ ; This function is used to actually spawn the given command (usually dredged
++ ; from mailcap) on the given data file (usually on /tmp).
++ include(execview)
++ 
++ ; This includes the various routines to support printing
++ include(print)
++ 
++ ; Debug file maintenance.
++ include(debuging)
diff -ruN pine.orig/patches/patch-ae pine/patches/patch-ae
--- pine.orig/patches/patch-ae	Thu Jan  1 08:00:00 1970
+++ pine/patches/patch-ae	Tue Nov 18 23:19:55 1997
@@ -0,0 +1,149 @@
+*** pine/makefile.bsf.orig	Fri Jun 14 00:15:35 1996
+--- pine/makefile.bsf	Fri Jun 14 00:15:35 1996
+***************
+*** 0 ****
+--- 1,144 ----
++ #
++ #            T H E    P I N E    M A I L   S Y S T E M
++ #
++ #   Laurence Lundblade and Mike Seibel
++ #   Networks and Distributed Computing
++ #   Computing and Communications
++ #   University of Washington
++ #   Administration Building, AG-44
++ #   Seattle, Washington, 98195, USA
++ #   Internet: lgl@CAC.Washington.EDU
++ #             mikes@CAC.Washington.EDU
++ #
++ #   Please address all bugs and comments to "pine-bugs@cac.washington.edu"
++ #
++ #
++ #   Pine and Pico are registered trademarks of the University of Washington.
++ #   No commercial use of these trademarks may be made without prior written
++ #   permission of the University of Washington.
++ #
++ #   Pine, Pico, and Pilot software and its included text are Copyright
++ #   1989-1996 by the University of Washington.
++ #
++ #   The full text of our legal notices is contained in the file called
++ #   CPYRIGHT, included with this distribution.
++ #
++ #
++ #   Pine is in part based on The Elm Mail System:
++ #    ***********************************************************************
++ #    *  The Elm Mail System  -  Revision: 2.13                             *
++ #    *                                                                     *
++ #    * 			Copyright (c) 1986, 1987 Dave Taylor               *
++ #    * 			Copyright (c) 1988, 1989 USENET Community Trust    *
++ #    ***********************************************************************
++ #
++ #
++ 
++ 
++ #
++ #     Make file for the Pine mail system for FreeBSD
++ #
++ #
++ #   Most commonly fiddled flags for compiler.
++ #   Uncomment the setttings desired here
++ #
++ RM=          rm -f
++ LN=          ln -s
++ MAKE=        make
++ #OPTIMIZE=    -O
++ PROFILE=     # -pg
++ DEBUG=       -DDEBUG #-g
++ 
++ IMAPDIR=     ../c-client
++ PICODIR=     ../pico
++ 
++ STDLIBES=    -ltermlib -lcrypt
++ #LOCLIBES=   $(PICODIR)/libpico.a $(IMAPDIR)/c-client.a
++ LOCLIBES=    -lpico $(IMAPDIR)/c-client.a
++ LOCLIBDIR=   -L$(PICODIR)
++ LIBES=       $(EXTRALIBES) $(LOCLIBDIR) $(LOCLIBES) $(STDLIBES)
++ 
++ STDCFLAGS=   -DBSDI -DSYSTYPE=\"BSF\" -DMOUSE
++ CFLAGS+=     $(OPTIMIZE) $(PROFILE) $(DEBUG) $(EXTRACFLAGS) $(STDCFLAGS)
++ 
++ obj=    addrbook.o adrbklib.o args.o context.o filter.o \
++ 	folder.o help.o helptext.o imap.o init.o mailcap.o mailcmd.o \
++ 	mailindx.o mailpart.o mailview.o newmail.o other.o pine.o \
++ 	reply.o screen.o send.o signals.o status.o strings.o ttyin.o \
++ 	ttyout.o os.o
++ 
++ cfiles= addrbook.c adrbklib.c args.c context.c filter.c \
++ 	folder.c help.c helptext.c imap.c init.c mailcap.c mailcmd.c \
++ 	mailindx.c mailpart.c mailview.c newmail.c other.c pine.c \
++ 	reply.c screen.c send.c signals.c status.c strings.c ttyin.c \
++ 	ttyout.c os.c
++ 
++ pine:  $(obj) $(LOCLIBES)
++ 	echo "char datestamp[]="\"`LC_TIME=C date`\"";" > date.c
++ 	echo "char hoststamp[]="\"`hostname`\"";" >> date.c
++ 	$(CC) $(LDFLAGS) $(CFLAGS) -o pine $(obj) date.c $(LIBES)
++ 
++ # this is not part of pine
++ pine-use:	pine-use.c
++ 	$(CC) -o pine-use pine-use.c
++ 
++ clean:
++ 	$(RM) *.o os.h os.c helptext.c helptext.h
++ 	cd osdep; make clean; cd ..
++ 
++ 
++ HEADERS= headers.h pine.h os.h helptext.h context.h \
++ 	  $(IMAPDIR)/mail.h $(IMAPDIR)/osdep.h
++ 
++ addrbook.o:	addrbook.c  $(HEADERS) adrbklib.h $(PICODIR)/pico.h
++ adrbklib.o: 	adrbklib.c  $(HEADERS) adrbklib.h
++ args.o:		args.c      $(HEADERS)
++ context.o:	context.c   $(HEADERS) $(IMAPDIR)/misc.h
++ filter.o:	filter.c    $(HEADERS) $(PICODIR)/pico.h
++ folder.o:	folder.c    $(HEADERS)
++ help.o:		help.c      $(HEADERS)
++ helptext.o:	helptext.c
++ imap.o:	        imap.c      $(HEADERS)
++ init.o:		init.c      $(HEADERS)
++ mailcap.o:	mailcap.c   $(HEADERS)
++ mailcmd.o:	mailcmd.c   $(HEADERS) $(PICODIR)/pico.h
++ mailindx.o:	mailindx.c  $(HEADERS)
++ mailpart.o:	mailpart.c  $(HEADERS)
++ mailview.o:	mailview.c  $(HEADERS)
++ newmail.o:	newmail.c   $(HEADERS)
++ os.o:		os.c 	    $(HEADERS)
++ other.o:	other.c     $(HEADERS) $(PICODIR)/pico.h
++ pine.o:		pine.c      $(HEADERS)
++ reply.o:	reply.c     $(HEADERS)
++ screen.o:	screen.c    $(HEADERS)
++ send.o:	        send.c      $(HEADERS) $(IMAPDIR)/smtp.h $(PICODIR)/pico.h
++ signals.o:	signals.c   $(HEADERS)
++ status.o:	status.c    $(HEADERS)
++ strings.o:	strings.c   $(HEADERS)
++ ttyin.o:	ttyin.c     $(HEADERS)
++ ttyout.o:	ttyout.c    $(HEADERS)
++ 
++ os.h:	osdep/os-bsf.h
++ 	$(RM) os.h
++ 	$(LN) osdep/os-bsf.h os.h
++ 
++ helptext.c:	pine.hlp
++ 		./cmplhelp.sh  < pine.hlp > helptext.c
++ 
++ helptext.h:	pine.hlp
++ 		./cmplhlp2.sh  < pine.hlp > helptext.h
++ 
++ os.c:	osdep/os-bsf.c
++ 	$(RM) os.c
++ 	$(LN) osdep/os-bsf.c os.c
++ 
++ osdep/os-bsf.c:	osdep/bld_path osdep/canacces osdep/canonicl \
++ 		osdep/chnge_pw osdep/coredump osdep/creatdir \
++ 		osdep/diskquot.non osdep/domnames osdep/err_desc.dos \
++ 		osdep/expnfldr osdep/fgetpos osdep/filesize osdep/fltrname \
++ 		osdep/fnexpand osdep/header osdep/hostname \
++ 		osdep/jobcntrl osdep/lstcmpnt osdep/mimedisp osdep/pipe \
++ 		osdep/print osdep/pw_stuff osdep/readfile osdep/debuging \
++ 		osdep/rename osdep/tempfile osdep/tempnam osdep/writ_dir \
++ 		osdep/sendmail osdep/execview osdep/os-bsf.ic
++ 	cd osdep; $(MAKE) includer os-bsf.c; cd ..
diff -ruN pine.orig/patches/patch-af pine/patches/patch-af
--- pine.orig/patches/patch-af	Thu Jan  1 08:00:00 1970
+++ pine/patches/patch-af	Tue Nov 18 23:19:55 1997
@@ -0,0 +1,37 @@
+*** imap/ANSI/c-client/Makefile.orig	Sat Jun 22 01:25:45 1996
+--- imap/ANSI/c-client/Makefile	Sun Jan 12 19:41:38 1997
+***************
+*** 36,43 ****
+  BINARIES=mail.o bezerk.o mtx.o tenex2.o mbox.o mh.o mmdf.o imap2.o pop3.o \
+  	news.o nntpcunx.o phile.o dummy.o smtp.o nntp.o rfc822.o misc.o \
+  	osdep.o sm_unix.o newsrc.o
+! CC=cc
+! CFLAGS=$(EXTRACFLAGS)
+  DEFAULTDRIVERS=imap nntp pop3 mh tenex mtx mmdf bezerk news phile dummy
+  LN=ln -s
+  MAKE=make
+--- 36,43 ----
+  BINARIES=mail.o bezerk.o mtx.o tenex2.o mbox.o mh.o mmdf.o imap2.o pop3.o \
+  	news.o nntpcunx.o phile.o dummy.o smtp.o nntp.o rfc822.o misc.o \
+  	osdep.o sm_unix.o newsrc.o
+! #CC=cc
+! #CFLAGS=$(EXTRACFLAGS)
+  DEFAULTDRIVERS=imap nntp pop3 mh tenex mtx mmdf bezerk news phile dummy
+  LN=ln -s
+  MAKE=make
+***************
+*** 118,123 ****
+--- 118,130 ----
+  		STDPROTO=bezerkproto MAILSPOOL=/var/mail \
+  		ACTIVEFILE=/usr/lib/news/active NEWSSPOOL=/usr/spool/news \
+  		RSHPATH=/usr/bin/rsh CFLAGS="-g -O -pipe -DNFSKLUDGE $(EXTRACFLAGS)"
++ 
++ bsf:	# FreeBSD
++ 	$(MAKE) $(ARCHIVE) OS=bsi EXTRADRIVERS="$(EXTRADRIVERS)" \
++ 		STDPROTO=bezerkproto MAILSPOOL=/var/mail \
++ 		ACTIVEFILE=/usr/local/news/lib/active NEWSSPOOL=/var/news \
++               RSHPATH=/usr/bin/rsh CFLAGS="${CFLAGS} -DNFSKLUDGE $(EXTRACFLAGS)" \
++ 		LDFLAGS="-lcrypt"
+  
+  cvx:	# Convex
+  	$(MAKE) mtest OS=$@ EXTRADRIVERS="$(EXTRADRIVERS)" \
diff -ruN pine.orig/patches/patch-ag pine/patches/patch-ag
--- pine.orig/patches/patch-ag	Thu Jan  1 08:00:00 1970
+++ pine/patches/patch-ag	Tue Nov 18 23:19:55 1997
@@ -0,0 +1,28 @@
+*** imap/ANSI/c-client/mh.c.orig	Wed May 15 13:49:54 1996
+--- imap/ANSI/c-client/mh.c	Fri Jun 14 00:12:23 1996
+***************
+*** 808,812 ****
+    if (sbuf.st_ctime != LOCAL->scantime) {
+      struct direct **names = NIL;
+!     long nfiles = scandir (LOCAL->dir,&names,mh_select,mh_numsort);
+      old = nmsgs ? mail_elt (stream,nmsgs)->data1 : 0;
+  				/* note scanned now */
+--- 808,812 ----
+    if (sbuf.st_ctime != LOCAL->scantime) {
+      struct direct **names = NIL;
+!     long nfiles = scandir (LOCAL->dir,&names,mh_select,(void*)mh_numsort);
+      old = nmsgs ? mail_elt (stream,nmsgs)->data1 : 0;
+  				/* note scanned now */
+***************
+*** 1050,1054 ****
+    }
+    mh_file (tmp,mailbox);	/* build file name we will use */
+!   if (nfiles = scandir (tmp,&names,mh_select,mh_numsort)) {
+  				/* largest number */
+      last = atoi (names[nfiles-1]->d_name);    
+--- 1050,1054 ----
+    }
+    mh_file (tmp,mailbox);	/* build file name we will use */
+!   if (nfiles = scandir (tmp,&names,mh_select,(void*)mh_numsort)) {
+  				/* largest number */
+      last = atoi (names[nfiles-1]->d_name);    
diff -ruN pine.orig/patches/patch-ah pine/patches/patch-ah
--- pine.orig/patches/patch-ah	Thu Jan  1 08:00:00 1970
+++ pine/patches/patch-ah	Tue Nov 18 23:19:55 1997
@@ -0,0 +1,15 @@
+*** imap/ANSI/c-client/news.c.orig	Wed May 15 13:50:02 1996
+--- imap/ANSI/c-client/news.c	Fri Jun 14 00:12:49 1996
+***************
+*** 310,314 ****
+    while (s = strchr (s,'.')) *s = '/';
+  				/* scan directory */
+!   if ((nmsgs = scandir (tmp,&names,news_select,news_numsort)) >= 0) {
+      stream->local = fs_get (sizeof (NEWSLOCAL));
+      LOCAL->dirty = NIL;		/* no update to .newsrc needed yet */
+--- 310,314 ----
+    while (s = strchr (s,'.')) *s = '/';
+  				/* scan directory */
+!   if ((nmsgs = scandir (tmp,&names,news_select,(void*)news_numsort)) >= 0) {
+      stream->local = fs_get (sizeof (NEWSLOCAL));
+      LOCAL->dirty = NIL;		/* no update to .newsrc needed yet */
diff -ruN pine.orig/patches/patch-ai pine/patches/patch-ai
--- pine.orig/patches/patch-ai	Thu Jan  1 08:00:00 1970
+++ pine/patches/patch-ai	Tue Nov 18 23:19:55 1997
@@ -0,0 +1,69 @@
+*** pine/send.c.orig	Tue Feb 25 00:57:38 1997
+--- pine/send.c	Sun Jul 20 02:50:31 1997
+***************
+*** 5352,5364 ****
+  		body->subtype = cpystr("octet-stream");
+  	    }
+  
+  	    /*
+  	     * Apply maximal encoding regardless of previous
+  	     * setting.  This segment's either not text, or is 
+  	     * unlikely to be readable with > 30% of the
+  	     * text encoded anyway, so we might as well save space...
+  	     */
+! 	    new_encoding = ENCBINARY;   /*  > 30% 8 bit chars */
+  	}
+      }
+  
+--- 5352,5367 ----
+  		body->subtype = cpystr("octet-stream");
+  	    }
+  
++ 	    if(body->type == TYPETEXT)
++ 	      new_encoding = ENC8BIT;
++ 	    else
+  	    /*
+  	     * Apply maximal encoding regardless of previous
+  	     * setting.  This segment's either not text, or is 
+  	     * unlikely to be readable with > 30% of the
+  	     * text encoded anyway, so we might as well save space...
+  	     */
+! 	      new_encoding = ENCBINARY;   /*  > 30% 8 bit chars */
+  	}
+      }
+  
+***************
+*** 6113,6119 ****
+  
+  	switch (body->encoding) {	/* all else needs filtering */
+  	  case ENC8BIT:			/* encode 8BIT into QUOTED-PRINTABLE */
+! 	    gf_link_filter(gf_8bit_qp);
+  	    break;
+  
+  	  case ENCBINARY:		/* encode binary into BASE64 */
+--- 6116,6123 ----
+  
+  	switch (body->encoding) {	/* all else needs filtering */
+  	  case ENC8BIT:			/* encode 8BIT into QUOTED-PRINTABLE */
+! 	    if(F_OFF(F_ENABLE_8BIT, ps_global))
+! 		gf_link_filter(gf_8bit_qp);
+  	    break;
+  
+  	  case ENCBINARY:		/* encode binary into BASE64 */
+***************
+*** 6172,6178 ****
+        sprintf (*dst += strlen (*dst), "Content-Transfer-Encoding: %s\015\012",
+  	       body_encodings[(body->encoding == ENCBINARY)
+  				? ENCBASE64
+! 				: (body->encoding == ENC8BIT)
+  				    ? ENCQUOTEDPRINTABLE
+  				    : (body->encoding <= ENCMAX)
+  					? body->encoding : ENCOTHER]);
+--- 6176,6182 ----
+        sprintf (*dst += strlen (*dst), "Content-Transfer-Encoding: %s\015\012",
+  	       body_encodings[(body->encoding == ENCBINARY)
+  				? ENCBASE64
+! 				: (body->encoding == ENC8BIT && F_OFF(F_ENABLE_8BIT, ps_global))
+  				    ? ENCQUOTEDPRINTABLE
+  				    : (body->encoding <= ENCMAX)
+  					? body->encoding : ENCOTHER]);
diff -ruN pine.orig/patches/patch-aj pine/patches/patch-aj
--- pine.orig/patches/patch-aj	Thu Jan  1 08:00:00 1970
+++ pine/patches/patch-aj	Tue Nov 18 23:19:55 1997
@@ -0,0 +1,17 @@
+*** imap/ANSI/c-client/os_bsi.h.bak	Wed Feb  7 12:01:07 1996
+--- imap/ANSI/c-client/os_bsi.h	Sun Jul 20 01:47:23 1997
+***************
+*** 36,42 ****
+--- 36,47 ----
+  #include <stdlib.h>
+  #include <string.h>
+  #include <sys/types.h>
++ #ifdef __FreeBSD__
++ #include <dirent.h>
++ #define direct dirent
++ #else
+  #include <sys/dir.h>
++ #endif
+  #include <sys/uio.h>		/* needed for writev() prototypes */
+  #include <fcntl.h>
+  #include <syslog.h>
diff -ruN pine.orig/patches/patch-ak pine/patches/patch-ak
--- pine.orig/patches/patch-ak	Thu Jan  1 08:00:00 1970
+++ pine/patches/patch-ak	Tue Nov 18 23:19:56 1997
@@ -0,0 +1,50 @@
+*** imap/Makefile.orig	Thu May 30 07:33:10 1996
+--- imap/Makefile	Sun Jan 12 17:05:17 1997
+***************
+*** 47,53 ****
+  
+  # ANSI compiler ports.  Note for SCO you may have to set LN to "copy -rom"
+  
+! a32 a41 aix bsi d-g drs lnx lyn mct mnt neb nxt osf sc5 sco sgi slx sos:
+  	$(MAKE) build SYSTYPE=ANSI OS=$@
+  
+  # Non-ANSI compiler ports.
+--- 47,53 ----
+  
+  # ANSI compiler ports.  Note for SCO you may have to set LN to "copy -rom"
+  
+! a32 a41 aix bsi bsf d-g drs lnx lyn mct mnt neb nxt osf sc5 sco sgi slx sos:
+  	$(MAKE) build SYSTYPE=ANSI OS=$@
+  
+  # Non-ANSI compiler ports.
+***************
+*** 82,87 ****
+--- 82,90 ----
+  bs2:
+  	$(MAKE) build SYSTYPE=ANSI OS=bsi
+  
++ bsf:
++ 	$(MAKE) build OS=bsf PROCESS=an
++ 
+  pt1:
+  	$(MAKE) build SYSTYPE=non-ANSI OS=ptx
+  
+***************
+*** 92,99 ****
+  	$(LN) $(SYSTYPE) systype
+  	cd $(SYSTYPE)/c-client; $(MAKE) $(OS)
+  	cd $(SYSTYPE)/ms;$(MAKE)
+! 	cd $(SYSTYPE)/ipopd;$(MAKE)
+! 	cd $(SYSTYPE)/imapd;$(MAKE)
+  
+  clean:
+  	$(RM) systype
+--- 95,102 ----
+  	$(LN) $(SYSTYPE) systype
+  	cd $(SYSTYPE)/c-client; $(MAKE) $(OS)
+  	cd $(SYSTYPE)/ms;$(MAKE)
+! #       cd $(SYSTYPE)/ipopd;$(MAKE)
+! #       cd $(SYSTYPE)/imapd;$(MAKE)
+  
+  clean:
+  	$(RM) systype
diff -ruN pine.orig/patches/patch-al pine/patches/patch-al
--- pine.orig/patches/patch-al	Thu Jan  1 08:00:00 1970
+++ pine/patches/patch-al	Tue Nov 18 23:19:56 1997
@@ -0,0 +1,55 @@
+*** build.orig	Tue May 14 23:22:47 1996
+--- build	Sun Jan 12 20:18:50 1997
+***************
+*** 167,180 ****
+          cd $PHOME/bin
+          rm -f pine mtest imapd pico pilot
+          if [ -s ../pine/pine ] ;      then ln ../pine/pine  pine      ; fi
+-         if [ -s ../c-client/mtest ] ; then ln ../c-client/mtest mtest ; fi
+-         if [ -s ../imapd/imapd ] ;    then ln ../imapd/imapd imapd    ; fi
+          if [ -s ../pico/pico ] ;      then ln ../pico/pico pico ; fi
+          if [ -s ../pico/pilot ] ;     then ln ../pico/pilot pilot ; fi
+          cd $PHOME
+          echo ''
+          echo "Links to executables are in bin directory:"
+-         size bin/pine bin/mtest bin/imapd bin/pico bin/pilot
+          echo "Done"
+          ;;
+  
+--- 167,179 ----
+          cd $PHOME/bin
+          rm -f pine mtest imapd pico pilot
+          if [ -s ../pine/pine ] ;      then ln ../pine/pine  pine      ; fi
+          if [ -s ../pico/pico ] ;      then ln ../pico/pico pico ; fi
+          if [ -s ../pico/pilot ] ;     then ln ../pico/pilot pilot ; fi
++         if [ -s ../pico/libpico.so.1.3 ] ;     
++ 		then ln ../pico/libpico.so.1.3 libpico.so.1.3 ; fi
+          cd $PHOME
+          echo ''
+          echo "Links to executables are in bin directory:"
+          echo "Done"
+          ;;
+  
+***************
+*** 185,194 ****
+  	make clean
+          echo "Cleaning Pine"
+          cd $PHOME/pine
+!         make -f makefile.ult clean
+          echo "Cleaning pico"
+          cd $PHOME/pico
+!         make $makeargs -f makefile.ult clean
+          echo "Done"
+          cd $PHOME
+          ;;
+--- 184,193 ----
+  	make clean
+          echo "Cleaning Pine"
+          cd $PHOME/pine
+!         make -f makefile.bsf clean
+          echo "Cleaning pico"
+          cd $PHOME/pico
+!         make $makeargs -f makefile.bsf clean
+          echo "Done"
+          cd $PHOME
+          ;;
diff -ruN pine.orig/patches/patch-am pine/patches/patch-am
--- pine.orig/patches/patch-am	Thu Jan  1 08:00:00 1970
+++ pine/patches/patch-am	Tue Nov 18 23:19:56 1997
@@ -0,0 +1,19 @@
+*** pine/pine.h.bak	Thu Jul 11 22:15:44 1996
+--- pine/pine.h	Tue Dec  3 20:52:56 1996
+***************
+*** 2085,2091 ****
+  } ATABLE_S;
+  
+  
+! #define TAG_EMBED	'\377'	/* Announces embedded data in text string */
+  #define	TAG_INVON	'\001'	/* Supported character attributes	  */
+  #define	TAG_INVOFF	'\002'
+  #define	TAG_BOLDON	'\003'
+--- 2085,2091 ----
+  } ATABLE_S;
+  
+  
+! #define TAG_EMBED       '\001'  /* Announces embedded data in text string */
+  #define	TAG_INVON	'\001'	/* Supported character attributes	  */
+  #define	TAG_INVOFF	'\002'
+  #define	TAG_BOLDON	'\003'
diff -ruN pine.orig/patches/patch-an pine/patches/patch-an
--- pine.orig/patches/patch-an	Thu Jan  1 08:00:00 1970
+++ pine/patches/patch-an	Tue Nov 18 23:28:36 1997
@@ -0,0 +1,8 @@
+--- pico/estruct.h.orig	Sat Dec 28 02:40:35 1996
++++ pico/estruct.h	Sat Dec 28 02:41:45 1996
+@@ -114,6 +114,6 @@
+ #define	LOBIT_CHAR(C)	((C) > 0x1f && (C) < 0x7f)
+ #define	HIBIT_CHAR(C)	((C) > 0x7f && (C) <= 0xff)
+ #define	HIBIT_OK(C)	(!(gmode & MDHBTIGN))
+-#define	VALID_KEY(C)	(LOBIT_CHAR(C) || (HIBIT_OK(C) && HIBIT_CHAR(C)))
++#define	VALID_KEY(ch)  (((ch) & 0x80) ? 1 : LOBIT_CHAR(ch))
diff -ruN pine.orig/patches/patch-ao pine/patches/patch-ao
--- pine.orig/patches/patch-ao	Thu Jan  1 08:00:00 1970
+++ pine/patches/patch-ao	Sat Dec 28 02:37:43 1996
@@ -0,0 +1,27 @@
+--- pine/send.c.orig	Tue Jul  9 02:10:50 1996
++++ pine/send.c	Sat Dec 28 02:36:30 1996
+@@ -49,6 +49,11 @@
+ #include "headers.h"
+ #include "../c-client/smtp.h"
+ #include "../c-client/nntp.h"
++/*
++woju
++disable bitstrip, keep 8-bit clean
++*/
++#define bitstrip(x) (x)
+ 
+ 
+ #ifndef TCPSTREAM
+@@ -5427,6 +5432,12 @@
+ 
+     if(body->encoding == ENCOTHER)
+       body->encoding = new_encoding;
++/*
++woju
++disable qp-encode
++*/
++    if (body->encoding == ENC8BIT)
++       body->encoding = 0;
+ 
+ #ifndef	DOS
+     fs_give((void **)&buf);
diff -ruN pine.orig/pkg/COMMENT pine/pkg/COMMENT
--- pine.orig/pkg/COMMENT	Thu Jan  1 08:00:00 1970
+++ pine/pkg/COMMENT	Tue Nov 18 23:21:17 1997
@@ -0,0 +1 @@
+Program for Internet E-mail and News with Chinese support
diff -ruN pine.orig/pkg/DESCR pine/pkg/DESCR
--- pine.orig/pkg/DESCR	Thu Jan  1 08:00:00 1970
+++ pine/pkg/DESCR	Tue Nov 18 23:19:56 1997
@@ -0,0 +1,18 @@
+Pine for FreeBSD 2.x is a tool for reading, sending, and managing
+electronic messages.  It was designed specifically with novice
+computer users in mind, but can be tailored to accommodate the needs
+of "power users" as well.  Pine uses Internet message protocols (e.g.
+RFC-822, SMTP, MIME, IMAP, NNTP) and runs on Unix and PCs.  This
+package also includes the Pico editor, the IMAP daemon, a POP2 server, 
+and a POP3 server.
+
+If you want to use the spell checking feature of pine, set the
+environment variable SPELL to "/usr/local/bin/ispell -l".
+
+An optional configuration file "pine.conf" can be put into /usr/local/etc 
+to set system wide defaults.  The format of this file is identical to the 
+.pinerc file that is auto-generated by pine in your home directory.
+
+Also included in dot.pinerc.pgp.sample are example entries needed to
+add to your .pinerc to activate the pgp add on scripts pgpdecode,
+pgpencode, and pgpsign.
diff -ruN pine.orig/pkg/PLIST pine/pkg/PLIST
--- pine.orig/pkg/PLIST	Thu Jan  1 08:00:00 1970
+++ pine/pkg/PLIST	Tue Nov 18 23:19:56 1997
@@ -0,0 +1,13 @@
+bin/pico
+bin/pilot
+bin/pine
+lib/libpico.so.1.3
+@exec /sbin/ldconfig -m %B
+bin/pgpencrypt
+bin/pgpdecode
+bin/pgpsign
+etc/dot.pinerc.pgp.sample
+man/man1/pico.1.gz
+man/man1/pilot.1.gz
+man/man1/pine.1.gz
+share/doc/pine/tech-notes.txt
diff -ruN pine.orig/scripts/configure pine/scripts/configure
--- pine.orig/scripts/configure	Thu Jan  1 08:00:00 1970
+++ pine/scripts/configure	Tue Nov 18 23:19:56 1997
@@ -0,0 +1,7 @@
+#!/bin/sh
+#
+# $Id: configure,v 1.3 1994/10/04 15:12:02 jkh Exp $
+#
+
+rm -f ${WRKSRC}/makefile
+cp ${FILESDIR}/Makefile ${WRKSRC}/Makefile

>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199711181702.BAA22062>