summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--shells/Makefile12
-rw-r--r--shells/es/Makefile16
-rw-r--r--shells/es/files/md51
-rw-r--r--shells/es/patches/patch-aa93
-rw-r--r--shells/es/pkg/COMMENT1
-rw-r--r--shells/es/pkg/DESCR13
-rw-r--r--shells/es/pkg/PLIST3
-rw-r--r--shells/pkg/COMMENT1
-rw-r--r--shells/tcsh/Makefile36
-rw-r--r--shells/tcsh/files/md51
-rw-r--r--shells/tcsh/patches/patch-aa56
-rw-r--r--shells/tcsh/patches/patch-ab19
-rw-r--r--shells/tcsh/patches/patch-ac19
-rw-r--r--shells/tcsh/patches/patch-ad83
-rw-r--r--shells/tcsh/patches/patch-ae67
-rw-r--r--shells/tcsh/patches/patch-af23
-rw-r--r--shells/tcsh/patches/patch-ag44
-rw-r--r--shells/tcsh/pkg/COMMENT1
-rw-r--r--shells/tcsh/pkg/DESCR2
-rw-r--r--shells/tcsh/pkg/PLIST13
-rw-r--r--shells/zsh/Makefile36
-rw-r--r--shells/zsh/files/md51
-rw-r--r--shells/zsh/patches/patch-aa19
-rw-r--r--shells/zsh/patches/patch-ab21
-rw-r--r--shells/zsh/patches/patch-ac13
-rw-r--r--shells/zsh/pkg/COMMENT1
-rw-r--r--shells/zsh/pkg/DESCR6
-rw-r--r--shells/zsh/pkg/PLIST18
28 files changed, 619 insertions, 0 deletions
diff --git a/shells/Makefile b/shells/Makefile
new file mode 100644
index 00000000000..e478c392b8d
--- /dev/null
+++ b/shells/Makefile
@@ -0,0 +1,12 @@
+# FreeBSD Id: Makefile,v 1.13 1997/01/03 00:40:55 max Exp
+#
+
+ SUBDIR += bash
+ SUBDIR += bash2
+ SUBDIR += es
+ SUBDIR += scsh
+ SUBDIR += pdksh
+ SUBDIR += tcsh
+ SUBDIR += zsh
+
+.include <bsd.port.subdir.mk>
diff --git a/shells/es/Makefile b/shells/es/Makefile
new file mode 100644
index 00000000000..7266de1668e
--- /dev/null
+++ b/shells/es/Makefile
@@ -0,0 +1,16 @@
+# New ports collection makefile for: es
+# Version required: 0.9a1
+# Date created: Sun Aug 13 12:36:14 CDT 1995
+# Whom: erich@rrnet.com
+#
+# FreeBSD Id: Makefile,v 1.4 1996/11/18 11:39:46 asami Exp
+#
+
+DISTNAME= es-0.9-alpha1
+PKGNAME= es-0.9a1
+CATEGORIES= shells
+MASTER_SITES= ftp://ftp.sys.toronto.edu/pub/es/
+
+MAINTAINER= erich@FreeBSD.org
+
+.include <bsd.port.mk>
diff --git a/shells/es/files/md5 b/shells/es/files/md5
new file mode 100644
index 00000000000..cef218f706f
--- /dev/null
+++ b/shells/es/files/md5
@@ -0,0 +1 @@
+MD5 (es-0.9-alpha1.tar.gz) = 2e7372fc4c8eaeb00571e721730b6108
diff --git a/shells/es/patches/patch-aa b/shells/es/patches/patch-aa
new file mode 100644
index 00000000000..1f649e60e89
--- /dev/null
+++ b/shells/es/patches/patch-aa
@@ -0,0 +1,93 @@
+*** Makefile.orig Tue May 30 06:14:14 1995
+--- Makefile Fri Aug 11 16:02:11 1995
+***************
+*** 33,40 ****
+ SHELL = /bin/sh
+ CC = cc
+ #CC = gcc
+! CFLAGS = -g
+! #CFLAGS = -g -O -Wall
+ LDFLAGS =
+ LIBS =
+
+--- 33,40 ----
+ SHELL = /bin/sh
+ CC = cc
+ #CC = gcc
+! #CFLAGS = -g
+! CFLAGS = -O2
+ LDFLAGS =
+ LIBS =
+
+***************
+*** 52,57 ****
+--- 52,66 ----
+ tree.o util.o var.o vec.o version.o y.tab.o
+ OTHER = Makefile parse.y mksignal
+ GEN = esdump y.tab.c y.tab.h y.output token.h sigmsgs.c initial.c
++
++ all: es
++
++ install:
++ $(INSTALL) -c es $(PREFIX)/bin
++ $(INSTALL) -c esdebug $(PREFIX)/bin/esdebug
++ $(INSTALL) -c es.1 $(PREFIX)/man/man1
++ strip $(PREFIX)/bin/es
++ gzip -9nf $(PREFIX)/man/man1/es.1
+
+ es : ${OFILES} initial.o
+ ${CC} -o es ${LDFLAGS} ${OFILES} initial.o ${LIBS}
+--- prim-sys.c.orig Tue May 30 06:13:51 1995
++++ prim-sys.c Thu Apr 10 10:15:40 1997
+@@ -194,7 +194,7 @@
+
+ static void printlimit(const Limit *limit, Boolean hard) {
+ struct rlimit rlim;
+- long lim;
++ u_quad_t lim;
+ getrlimit(limit->flag, &rlim);
+ if (hard)
+ lim = rlim.rlim_max;
+@@ -209,11 +209,11 @@
+ lim /= suf->amount;
+ break;
+ }
+- print("%-8s\t%d%s\n", limit->name, lim, (suf == NULL || lim == 0) ? "" : suf->name);
++ print("%-8s\t%ud%s\n", limit->name, (unsigned int)lim, (suf == NULL || lim == 0) ? "" : suf->name);
+ }
+ }
+
+-static long parselimit(const Limit *limit, char *s) {
++static u_quad_t parselimit(const Limit *limit, char *s) {
+ long lim;
+ char *t;
+ const Suffix *suf = limit->suffix;
+--- main.c~ Tue May 30 06:13:50 1995
++++ main.c Thu Apr 10 09:20:49 1997
+@@ -9,7 +9,7 @@
+ Boolean gcinfo = FALSE; /* -I */
+ #endif
+
+-#if !HPUX && !defined(linux)
++#if !HPUX && !defined(linux) && !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__)
+ extern int getopt (int argc, char **argv, const char *optstring);
+ #endif
+ extern int optind;
+--- stdenv.h~ Tue May 30 06:13:53 1995
++++ stdenv.h Thu Apr 10 09:32:22 1997
+@@ -283,6 +283,7 @@
+
+ /* stdlib */
+
++#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__)
+ extern noreturn exit(int);
+ extern noreturn abort(void);
+ extern long strtol(const char *num, char **end, int base);
+@@ -290,6 +291,7 @@
+ void *base, size_t nmemb, size_t size,
+ int (*compar)(const void *, const void *)
+ );
++#endif
+
+ /* setjmp */
+
diff --git a/shells/es/pkg/COMMENT b/shells/es/pkg/COMMENT
new file mode 100644
index 00000000000..b62d029d1b5
--- /dev/null
+++ b/shells/es/pkg/COMMENT
@@ -0,0 +1 @@
+An extensible shell, derived from plan9's rc
diff --git a/shells/es/pkg/DESCR b/shells/es/pkg/DESCR
new file mode 100644
index 00000000000..6b6cdba3348
--- /dev/null
+++ b/shells/es/pkg/DESCR
@@ -0,0 +1,13 @@
+Es is an extensible shell. The language was derived from the Plan 9
+shell, rc, and was influenced by functional programming languages,
+such as Scheme, and the Tcl embeddable programming language. This
+implementation is derived from Byron Rakitzis's public domain
+implementation of rc.
+
+Es is in the public domain. We hold no copyrights or patents on
+the source code, and do not place any restrictions on its distribution.
+We would appreciate it if any distributions do credit the authors.
+
+Enjoy!
+
+-- Paul Haahr & Byron Rakitzis
diff --git a/shells/es/pkg/PLIST b/shells/es/pkg/PLIST
new file mode 100644
index 00000000000..03aafe9fe6b
--- /dev/null
+++ b/shells/es/pkg/PLIST
@@ -0,0 +1,3 @@
+bin/es
+bin/esdebug
+man/man1/es.1.gz
diff --git a/shells/pkg/COMMENT b/shells/pkg/COMMENT
new file mode 100644
index 00000000000..d7fcaa968c4
--- /dev/null
+++ b/shells/pkg/COMMENT
@@ -0,0 +1 @@
+Shells.
diff --git a/shells/tcsh/Makefile b/shells/tcsh/Makefile
new file mode 100644
index 00000000000..e5cfc77226d
--- /dev/null
+++ b/shells/tcsh/Makefile
@@ -0,0 +1,36 @@
+# New ports collection makefile for: tcsh
+# Version required: 6.07.02
+# Date created: 22 August 1994
+# Whom: jkh
+#
+# FreeBSD Id: Makefile,v 1.17 1996/12/17 05:18:09 asami Exp
+#
+
+DISTNAME= tcsh-6.07
+PKGNAME= tcsh-6.07.02
+CATEGORIES= shells
+MASTER_SITES= ftp://ftp.deshaw.com/pub/tcsh/
+
+MAINTAINER= ache@FreeBSD.ORG
+
+GNU_CONFIGURE= yes
+WRKSRC= ${WRKDIR}/${PKGNAME}
+ALL_TARGET= all catalogs
+INSTALL_TARGET= install install.man
+MAN1= tcsh.1
+
+post-install:
+ chown bin.bin ${PREFIX}/bin/tcsh
+ chown bin.bin ${PREFIX}/man/man1/tcsh.1
+ cd ${WRKSRC}; ${INSTALL_DATA} tcsh.C.cat ${PREFIX}/share/nls/C/tcsh.cat
+ cd ${WRKSRC}; ${INSTALL_DATA} tcsh.french.cat ${PREFIX}/share/nls/fr_FR.ISO_8859-1/tcsh.cat
+ ln -sf ${PREFIX}/share/nls/fr_FR.ISO_8859-1/tcsh.cat ${PREFIX}/share/nls/fr_BE.ISO_8859-1/tcsh.cat
+ ln -sf ${PREFIX}/share/nls/fr_FR.ISO_8859-1/tcsh.cat ${PREFIX}/share/nls/fr_CA.ISO_8859-1/tcsh.cat
+ ln -sf ${PREFIX}/share/nls/fr_FR.ISO_8859-1/tcsh.cat ${PREFIX}/share/nls/fr_CH.ISO_8859-1/tcsh.cat
+ cd ${WRKSRC}; ${INSTALL_DATA} tcsh.german.cat ${PREFIX}/share/nls/de_DE.ISO_8859-1/tcsh.cat
+ ln -sf ${PREFIX}/share/nls/de_DE.ISO_8859-1/tcsh.cat ${PREFIX}/share/nls/de_AT.ISO_8859-1/tcsh.cat
+ ln -sf ${PREFIX}/share/nls/de_DE.ISO_8859-1/tcsh.cat ${PREFIX}/share/nls/de_CH.ISO_8859-1/tcsh.cat
+ install -d -o ${BINOWN} -g ${BINGRP} -m 755 ${PREFIX}/share/nls/el_GR.ISO_8859-7
+ cd ${WRKSRC}; ${INSTALL_DATA} tcsh.greek.cat ${PREFIX}/share/nls/el_GR.ISO_8859-7/tcsh.cat
+
+.include <bsd.port.mk>
diff --git a/shells/tcsh/files/md5 b/shells/tcsh/files/md5
new file mode 100644
index 00000000000..87e4635683b
--- /dev/null
+++ b/shells/tcsh/files/md5
@@ -0,0 +1 @@
+MD5 (tcsh-6.07.tar.gz) = 18a9d8091c6da38ebdd63ab509324eb5
diff --git a/shells/tcsh/patches/patch-aa b/shells/tcsh/patches/patch-aa
new file mode 100644
index 00000000000..00182738a6a
--- /dev/null
+++ b/shells/tcsh/patches/patch-aa
@@ -0,0 +1,56 @@
+*** configure.in.orig Sun Oct 27 08:58:56 1996
+--- configure.in Sat Apr 19 21:37:17 1997
+***************
+*** 76,81 ****
+--- 76,91 ----
+ tcsh_config_file=sysV88
+ ;;
+
++ ## FreeBSD
++ *-*-freebsd*)
++ tcsh_config_file=bsd4.4
++ ;;
++
++ ## OpenBSD
++ *-*-openbsd*)
++ tcsh_config_file=bsd4.4
++ ;;
++
+ ## NetBSD systems
+ *-*-netbsd*)
+ tcsh_config_file=bsd4.4
+*** configure.orig Sun Oct 27 08:58:55 1996
+--- configure Sat Apr 19 21:39:29 1997
+***************
+*** 582,587 ****
+--- 582,597 ----
+ tcsh_config_file=sysV88
+ ;;
+
++ ## FreeBSD
++ *-*-freebsd*)
++ tcsh_config_file=bsd4.4
++ ;;
++
++ ## OpenBSD
++ *-*-openbsd*)
++ tcsh_config_file=bsd4.4
++ ;;
++
+ ## NetBSD systems
+ *-*-netbsd*)
+ tcsh_config_file=bsd4.4
+*** config.guess.dist Sat Oct 19 10:54:43 1996
+--- config.guess Sat Apr 19 22:52:46 1997
+***************
+*** 308,313 ****
+--- 308,316 ----
+ *:FreeBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit 0 ;;
++ *:OpenBSD:*:*)
++ echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
++ exit 0 ;;
+ *:NetBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ exit 0 ;;
diff --git a/shells/tcsh/patches/patch-ab b/shells/tcsh/patches/patch-ab
new file mode 100644
index 00000000000..666000918fe
--- /dev/null
+++ b/shells/tcsh/patches/patch-ab
@@ -0,0 +1,19 @@
+*** nls/greek/set20.bak Fri Apr 26 23:24:30 1996
+--- nls/greek/set20 Mon Dec 16 02:56:43 1996
+***************
+*** 13,19 ****
+ 10 %-15s-> δεν έχει οριστεί\n
+ 11 BUG!!! το %s δεν είναι συσχετισμένο με τίποτα.\n
+ 12 Χρήση: bindkey [επιλογές] [--] [ΠΛΗΚΤΡΟ [ΕΝΤΟΛΗ]]\n
+! 13 -a εμφάνιση ή συσχέτιση ΠΛΗΚΤΡΟυ στον εναλλακτικό χάρτη πλήκτρων\ν
+ 14 -b ερμηνεία ΠΛΗΚΤΡΟυ ως C-, M-, F- or X- όνομα πλήκτρου\n
+ 15 -s ερμηνεία ΕΝΤΟΛΗς ως κυριολεκτικού string γιά εμφάνιση\n
+ 16 -c ερμηνεία ΕΝΤΟΛΗς ως εσωτερικής ή εξωτερικής εντολής\n
+--- 13,19 ----
+ 10 %-15s-> δεν έχει οριστεί\n
+ 11 BUG!!! το %s δεν είναι συσχετισμένο με τίποτα.\n
+ 12 Χρήση: bindkey [επιλογές] [--] [ΠΛΗΚΤΡΟ [ΕΝΤΟΛΗ]]\n
+! 13 -a εμφάνιση ή συσχέτιση ΠΛΗΚΤΡΟυ στον εναλλακτικό χάρτη πλήκτρων\n
+ 14 -b ερμηνεία ΠΛΗΚΤΡΟυ ως C-, M-, F- or X- όνομα πλήκτρου\n
+ 15 -s ερμηνεία ΕΝΤΟΛΗς ως κυριολεκτικού string γιά εμφάνιση\n
+ 16 -c ερμηνεία ΕΝΤΟΛΗς ως εσωτερικής ή εξωτερικής εντολής\n
diff --git a/shells/tcsh/patches/patch-ac b/shells/tcsh/patches/patch-ac
new file mode 100644
index 00000000000..32a0e6c9522
--- /dev/null
+++ b/shells/tcsh/patches/patch-ac
@@ -0,0 +1,19 @@
+*** sh.h.bak Sat Oct 19 21:54:12 1996
+--- sh.h Mon Dec 16 03:02:35 1996
+***************
+*** 1085,1091 ****
+ /*
+ * To print system call errors...
+ */
+! #ifdef __NetBSD__
+ # include <errno.h>
+ #else
+ # ifndef linux
+--- 1085,1091 ----
+ /*
+ * To print system call errors...
+ */
+! #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
+ # include <errno.h>
+ #else
+ # ifndef linux
diff --git a/shells/tcsh/patches/patch-ad b/shells/tcsh/patches/patch-ad
new file mode 100644
index 00000000000..490b9f6b044
--- /dev/null
+++ b/shells/tcsh/patches/patch-ad
@@ -0,0 +1,83 @@
+*** glob.c.orig Sat Nov 13 03:40:56 1993
+--- glob.c Mon Dec 16 03:09:07 1996
+***************
+*** 139,144 ****
+--- 139,165 ----
+ #define M_SET META('[')
+ #define ismeta(c) (((c)&M_META) != 0)
+
++ int collate_range_cmp (c1, c2)
++ int c1, c2;
++ {
++ #if defined(NLS) && defined(LC_COLLATE)
++ static char s1[2], s2[2];
++ int ret;
++ #endif
++
++ c1 &= 0xFF;
++ c2 &= 0xFF;
++ #if defined(NLS) && defined(LC_COLLATE)
++ if (c1 == c2)
++ return (0);
++ s1[0] = c1;
++ s2[0] = c2;
++ if ((ret = strcoll(s1, s2)) != 0)
++ return (ret);
++ #endif
++ return (c1 - c2);
++ }
++
+ /*
+ * Need to dodge two kernel bugs:
+ * opendir("") != opendir(".")
+***************
+*** 646,652 ****
+ ++pat;
+ while (((c = *pat++) & M_MASK) != M_END) {
+ if ((*pat & M_MASK) == M_RNG) {
+! if (c <= k && k <= pat[1])
+ ok = 1;
+ pat += 2;
+ }
+--- 667,675 ----
+ ++pat;
+ while (((c = *pat++) & M_MASK) != M_END) {
+ if ((*pat & M_MASK) == M_RNG) {
+! if ( collate_range_cmp(CHAR(c), CHAR(k)) <= 0
+! && collate_range_cmp(CHAR(k), CHAR(pat[1])) <= 0
+! )
+ ok = 1;
+ pat += 2;
+ }
+*** sh.glob.c.orig Sun May 14 00:49:17 1995
+--- sh.glob.c Thu Oct 31 18:04:28 1996
+***************
+*** 85,90 ****
+--- 85,91 ----
+ static void pword __P((int));
+ static void psave __P((int));
+ static void backeval __P((Char *, bool));
++ extern int collate_range_cmp __P((int, int));
+
+ static Char *
+ globtilde(nv, s)
+***************
+*** 1038,1045 ****
+ if (match)
+ continue;
+ if (rangec == '-' && *(pattern-2) != '[' && *pattern != ']') {
+! match = (stringc <= (*pattern & TRIM) &&
+! (*(pattern-2) & TRIM) <= stringc);
+ pattern++;
+ }
+ else
+--- 1039,1047 ----
+ if (match)
+ continue;
+ if (rangec == '-' && *(pattern-2) != '[' && *pattern != ']') {
+! match = ( collate_range_cmp(stringc, *pattern & TRIM) <= 0
+! && collate_range_cmp(*(pattern-2) & TRIM, stringc) <= 0
+! );
+ pattern++;
+ }
+ else
diff --git a/shells/tcsh/patches/patch-ae b/shells/tcsh/patches/patch-ae
new file mode 100644
index 00000000000..51d93eddeb1
--- /dev/null
+++ b/shells/tcsh/patches/patch-ae
@@ -0,0 +1,67 @@
+*** tc.os.h.old Sun May 14 00:49:26 1995
+--- tc.os.h Sat Jun 17 06:02:53 1995
+***************
+*** 417,423 ****
+ # define NEEDgethostname
+ #endif /* _SEQUENT_ */
+
+! #if defined(BSD) && defined(POSIXJOBS) && !defined(__hp_osf)
+ # define setpgid(pid, pgrp) setpgrp(pid, pgrp)
+ #endif /* BSD && POSIXJOBS && !__hp_osf */
+
+--- 417,423 ----
+ # define NEEDgethostname
+ #endif /* _SEQUENT_ */
+
+! #if defined(BSD) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && defined(POSIXJOBS) && !defined(__hp_osf)
+ # define setpgid(pid, pgrp) setpgrp(pid, pgrp)
+ #endif /* BSD && POSIXJOBS && !__hp_osf */
+
+***************
+*** 468,474 ****
+ #ifndef POSIX
+ # define mygetpgrp() getpgrp(0)
+ #else /* POSIX */
+! # if defined(BSD) || defined(SUNOS4) || defined(IRIS4D) || defined(DGUX)
+ # define mygetpgrp() getpgrp(0)
+ # else /* !(BSD || SUNOS4 || IRIS4D || DGUX) */
+ # define mygetpgrp() getpgrp()
+--- 468,474 ----
+ #ifndef POSIX
+ # define mygetpgrp() getpgrp(0)
+ #else /* POSIX */
+! # if (defined(BSD) && !defined(__FreeBSD__)) || defined(SUNOS4) || defined(IRIS4D) || defined(DGUX)
+ # define mygetpgrp() getpgrp(0)
+ # else /* !(BSD || SUNOS4 || IRIS4D || DGUX) */
+ # define mygetpgrp() getpgrp()
+***************
+*** 657,670 ****
+ # endif /* REMOTEHOST */
+ #endif /* SUNOS4 && __GNUC__ == 2 */
+
+! #if (defined(BSD) && !defined(__386BSD__)) || defined(SUNOS4)
+ # if defined(__alpha) && defined(__osf__) && DECOSF1 < 200
+ extern void bcopy __P((const void *, void *, size_t));
+ # define memmove(a, b, c) (bcopy((char *) (b), (char *) (a), (int) (c)), a)
+ # endif /* __alpha && __osf__ && DECOSF1 < 200 */
+ #endif /* (BSD && !__386BSD__) || SUNOS4 */
+
+! #if !defined(hpux) && !defined(COHERENT) && ((SYSVREL < 4) || defined(_SEQUENT_)) && !defined(__386BSD__) && !defined(memmove)
+ # define NEEDmemmove
+ #endif /* !hpux && !COHERENT && (SYSVREL < 4 || _SEQUENT_) && !__386BSD__ && !memmove */
+
+--- 657,670 ----
+ # endif /* REMOTEHOST */
+ #endif /* SUNOS4 && __GNUC__ == 2 */
+
+! #if (defined(BSD) && !defined(__386BSD__) && !defined(__FreeBSD__)) || defined(SUNOS4)
+ # if defined(__alpha) && defined(__osf__) && DECOSF1 < 200
+ extern void bcopy __P((const void *, void *, size_t));
+ # define memmove(a, b, c) (bcopy((char *) (b), (char *) (a), (int) (c)), a)
+ # endif /* __alpha && __osf__ && DECOSF1 < 200 */
+ #endif /* (BSD && !__386BSD__) || SUNOS4 */
+
+! #if !defined(hpux) && !defined(COHERENT) && ((SYSVREL < 4) || defined(_SEQUENT_)) && !defined(__386BSD__) && !defined(__FreeBSD__) && !defined(memmove)
+ # define NEEDmemmove
+ #endif /* !hpux && !COHERENT && (SYSVREL < 4 || _SEQUENT_) && !__386BSD__ && !memmove */
+
diff --git a/shells/tcsh/patches/patch-af b/shells/tcsh/patches/patch-af
new file mode 100644
index 00000000000..249e9dc2f6d
--- /dev/null
+++ b/shells/tcsh/patches/patch-af
@@ -0,0 +1,23 @@
+*** config_f.h.bak Fri Apr 26 23:17:30 1996
+--- config_f.h Mon Dec 16 03:53:59 1996
+***************
+*** 65,71 ****
+ * if you don't have <nl_types.h>, you don't want
+ * to define this.
+ */
+! #undef NLS_CATALOGS
+
+ /*
+ * LOGINFIRST Source ~/.login before ~/.cshrc
+--- 65,75 ----
+ * if you don't have <nl_types.h>, you don't want
+ * to define this.
+ */
+! #if defined(__FreeBSD__) || defined(__OpenBSD__)
+! # define NLS_CATALOGS
+! #else
+! # undef NLS_CATALOGS
+! #endif
+
+ /*
+ * LOGINFIRST Source ~/.login before ~/.cshrc
diff --git a/shells/tcsh/patches/patch-ag b/shells/tcsh/patches/patch-ag
new file mode 100644
index 00000000000..b03604b22b0
--- /dev/null
+++ b/shells/tcsh/patches/patch-ag
@@ -0,0 +1,44 @@
+*** sh.func.c.bak Sat Oct 5 21:39:10 1996
+--- sh.func.c Mon Dec 16 04:25:04 1996
+***************
+*** 1312,1319 ****
+ # ifdef LC_COLLATE
+ (void) setlocale(LC_COLLATE, "");
+ # endif
+! # if defined(NLS_CATALOGS) && defined(LC_MESSAGES)
+ (void) setlocale(LC_MESSAGES, "");
+ (void) catclose(catd);
+ nlsinit();
+ # endif /* NLS_CATALOGS && LC_MESSAGES */
+--- 1312,1321 ----
+ # ifdef LC_COLLATE
+ (void) setlocale(LC_COLLATE, "");
+ # endif
+! # ifdef NLS_CATALOGS
+! # ifdef LC_MESSAGES
+ (void) setlocale(LC_MESSAGES, "");
++ # endif
+ (void) catclose(catd);
+ nlsinit();
+ # endif /* NLS_CATALOGS && LC_MESSAGES */
+***************
+*** 1475,1482 ****
+ # ifdef LC_COLLATE
+ (void) setlocale(LC_COLLATE, "");
+ # endif
+! # if defined(NLS_CATALOGS) && defined(LC_MESSAGES)
+ (void) setlocale(LC_MESSAGES, "");
+ (void) catclose(catd);
+ nlsinit();
+ # endif /* NLS_CATALOGS && LC_MESSAGES */
+--- 1477,1486 ----
+ # ifdef LC_COLLATE
+ (void) setlocale(LC_COLLATE, "");
+ # endif
+! # ifdef NLS_CATALOGS
+! # ifdef LC_MESSAGES
+ (void) setlocale(LC_MESSAGES, "");
++ # endif
+ (void) catclose(catd);
+ nlsinit();
+ # endif /* NLS_CATALOGS && LC_MESSAGES */
diff --git a/shells/tcsh/pkg/COMMENT b/shells/tcsh/pkg/COMMENT
new file mode 100644
index 00000000000..11c830c0b80
--- /dev/null
+++ b/shells/tcsh/pkg/COMMENT
@@ -0,0 +1 @@
+An extended C-shell with many useful features.
diff --git a/shells/tcsh/pkg/DESCR b/shells/tcsh/pkg/DESCR
new file mode 100644
index 00000000000..7c3c806b984
--- /dev/null
+++ b/shells/tcsh/pkg/DESCR
@@ -0,0 +1,2 @@
+TCSH is an extended C-shell with many useful features like
+filename completion, history editing, etc.
diff --git a/shells/tcsh/pkg/PLIST b/shells/tcsh/pkg/PLIST
new file mode 100644
index 00000000000..d060882a38a
--- /dev/null
+++ b/shells/tcsh/pkg/PLIST
@@ -0,0 +1,13 @@
+bin/tcsh
+@exec echo "updating /etc/shells"; cp /etc/shells /etc/shells.bak; (grep -v %D/%F /etc/shells.bak; echo %D/%F) >/etc/shells
+@unexec echo "updating /etc/shells"; cp /etc/shells /etc/shells.bak; (grep -v %D/%F /etc/shells.bak) >/etc/shells
+man/man1/tcsh.1.gz
+share/nls/C/tcsh.cat
+share/nls/fr_FR.ISO_8859-1/tcsh.cat
+@exec ln -fs %D/%F %D/share/nls/fr_BE.ISO_8859-1/tcsh.cat
+@exec ln -fs %D/%F %D/share/nls/fr_CA.ISO_8859-1/tcsh.cat
+@exec ln -fs %D/%F %D/share/nls/fr_CH.ISO_8859-1/tcsh.cat
+share/nls/de_DE.ISO_8859-1/tcsh.cat
+@exec ln -fs %D/%F %D/share/nls/de_AT.ISO_8859-1/tcsh.cat
+@exec ln -fs %D/%F %D/share/nls/de_CH.ISO_8859-1/tcsh.cat
+share/nls/el_GR.ISO_8859-7/tcsh.cat
diff --git a/shells/zsh/Makefile b/shells/zsh/Makefile
new file mode 100644
index 00000000000..5728aa2c664
--- /dev/null
+++ b/shells/zsh/Makefile
@@ -0,0 +1,36 @@
+# New ports collection makefile for: zsh
+# Version required: 3.0.5
+# Date created: 11 Feb. 1995
+# Whom: torstenb
+#
+# FreeBSD Id: Makefile,v 1.26 1997/09/26 08:23:14 torstenb Exp
+#
+
+DISTNAME= zsh-3.0.5
+PKGNAME= zsh-3.0.5
+CATEGORIES= shells
+MASTER_SITES= ftp://ftp.math.gatech.edu/pub/zsh/ \
+ ftp://ftp.sterling.com/zsh/ \
+ ftp://ftp.rge.com/pub/zsh/ \
+ ftp://ftp.cenatls.cena.dgac.fr/pub/shells/zsh/ \
+ ftp://mrrl.lut.ac.uk/zsh/ \
+ ftp://ftp.fu-berlin.de/pub/unix/shells/zsh/ \
+ ftp://ftp.ips.oz.au/pub/packages/zsh/ \
+ ftp://ftp.uit.no/pub/unix/shells/zsh/
+
+MAINTAINER= torstenb@FreeBSD.ORG
+
+GNU_CONFIGURE= yes
+MAN1= zsh.1 zshbuiltins.1 zshcompctl.1 zshexpn.1 zshmisc.1 \
+ zshoptions.1 zshall.1 zshparam.1 zshzle.1
+
+# If you want to build a static binary, uncomment the following line
+#LDFLAGS+=-static
+
+post-install:
+ @if [ ! -f ${PREFIX}/info/dir ]; then \
+ ${SED} -ne '1,/Menu:/p' /usr/share/info/dir > ${PREFIX}/info/dir; \
+ fi
+ @install-info ${PREFIX}/info/zsh.info ${PREFIX}/info/dir
+
+.include <bsd.port.mk>
diff --git a/shells/zsh/files/md5 b/shells/zsh/files/md5
new file mode 100644
index 00000000000..8cd98e52e4e
--- /dev/null
+++ b/shells/zsh/files/md5
@@ -0,0 +1 @@
+MD5 (zsh-3.0.5.tar.gz) = 7c3ce278a75ee8d05c5d0fc1821b2a7a
diff --git a/shells/zsh/patches/patch-aa b/shells/zsh/patches/patch-aa
new file mode 100644
index 00000000000..28109c3ca0d
--- /dev/null
+++ b/shells/zsh/patches/patch-aa
@@ -0,0 +1,19 @@
+*** Src/Makefile.in.orig Tue Jul 9 11:00:39 1996
+--- Src/Makefile.in Tue Jul 9 11:00:46 1996
+***************
+*** 138,144 ****
+ # install binary, creating install directory if necessary
+ install.bin: zsh
+ $(top_srcdir)/mkinstalldirs $(bindir)
+! -if [ -f $(bindir)/zsh ]; then mv $(bindir)/zsh $(bindir)/zsh.old; fi
+ $(INSTALL_PROGRAM) zsh $(bindir)/zsh
+ -if [ -f $(bindir)/zsh-$(VERSION) ]; then rm -f $(bindir)/zsh-$(VERSION); fi
+ ln $(bindir)/zsh $(bindir)/zsh-$(VERSION)
+--- 138,144 ----
+ # install binary, creating install directory if necessary
+ install.bin: zsh
+ $(top_srcdir)/mkinstalldirs $(bindir)
+! -if [ -f $(bindir)/zsh ]; then mv -f $(bindir)/zsh $(bindir)/zsh.old; fi
+ $(INSTALL_PROGRAM) zsh $(bindir)/zsh
+ -if [ -f $(bindir)/zsh-$(VERSION) ]; then rm -f $(bindir)/zsh-$(VERSION); fi
+ ln $(bindir)/zsh $(bindir)/zsh-$(VERSION)
diff --git a/shells/zsh/patches/patch-ab b/shells/zsh/patches/patch-ab
new file mode 100644
index 00000000000..c80f4c7f852
--- /dev/null
+++ b/shells/zsh/patches/patch-ab
@@ -0,0 +1,21 @@
+--- Doc/Makefile.in.orig Wed Dec 18 05:14:11 1996
++++ Doc/Makefile.in Mon Jun 16 20:40:29 1997
+@@ -93,7 +93,8 @@
+ everything: all zsh_us.ps zsh_a4.ps zsh_toc.html
+
+ zsh.info: zsh.texi
+- @$(MAKEINFO) -I$(srcdir) $(srcdir)/zsh.texi || { \
++ @rm -f zsh.info*
++ @$(MAKEINFO) --no-split -I$(srcdir) $(srcdir)/zsh.texi || { \
+ echo Info documentation cannot be compiled without $(MAKEINFO). ; \
+ echo You can find precompiled info files in zsh-doc.tar.gz. ; }
+
+@@ -127,7 +128,7 @@
+ # install info pages, creating install directory if necessary
+ install.info: zsh.info
+ $(top_srcdir)/mkinstalldirs $(infodir)
+- for file in zsh.info zsh.info-[1-9]; do \
++ for file in zsh.info*; do \
+ [ -f "$$file" ] && $(INSTALL_DATA) $$file $(infodir) ; \
+ done
+
diff --git a/shells/zsh/patches/patch-ac b/shells/zsh/patches/patch-ac
new file mode 100644
index 00000000000..20799ee0948
--- /dev/null
+++ b/shells/zsh/patches/patch-ac
@@ -0,0 +1,13 @@
+--- Doc/zsh.texi.orig Thu Dec 19 09:00:10 1996
++++ Doc/zsh.texi Mon Jun 16 20:35:02 1997
+@@ -2,6 +2,10 @@
+ @c %**start of header
+ @setfilename zsh.info
+ @settitle zsh
++@dircategory Shells
++@direntry
++* Zsh: (zsh). The Z shell.
++@end direntry
+ @c %**end of header
+
+ @setchapternewpage odd
diff --git a/shells/zsh/pkg/COMMENT b/shells/zsh/pkg/COMMENT
new file mode 100644
index 00000000000..c64b941259c
--- /dev/null
+++ b/shells/zsh/pkg/COMMENT
@@ -0,0 +1 @@
+The Z shell.
diff --git a/shells/zsh/pkg/DESCR b/shells/zsh/pkg/DESCR
new file mode 100644
index 00000000000..8f4144f053e
--- /dev/null
+++ b/shells/zsh/pkg/DESCR
@@ -0,0 +1,6 @@
+Zsh is a UNIX command interpreter (shell) which of the standard shells
+most resembles the Korn shell (ksh), although it is not completely
+compatible. It includes enhancements of many types, notably in the
+command-line editor, options for customising its behaviour, filename
+globbing, features to make C-shell (csh) users feel more at home and
+extra features drawn from tcsh (another `custom' shell).
diff --git a/shells/zsh/pkg/PLIST b/shells/zsh/pkg/PLIST
new file mode 100644
index 00000000000..9c5f1e29fa4
--- /dev/null
+++ b/shells/zsh/pkg/PLIST
@@ -0,0 +1,18 @@
+bin/zsh
+@exec echo "updating /etc/shells"; cp /etc/shells /etc/shells.bak; (grep -v %D/%F /etc/shells.bak; echo %D/%F) >/etc/shells
+@unexec echo "updating /etc/shells"; cp /etc/shells /etc/shells.bak; (grep -v %D/%F /etc/shells.bak) >/etc/shells
+bin/zsh-3.0.5
+@unexec install-info --delete %D/info/zsh.info %D/info/dir
+info/zsh.info
+@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/zsh.info %D/info/dir
+info/dir
+man/man1/zshcompctl.1.gz
+man/man1/zshexpn.1.gz
+man/man1/zshmisc.1.gz
+man/man1/zshoptions.1.gz
+man/man1/zshall.1.gz
+man/man1/zshzle.1.gz
+man/man1/zsh.1.gz
+man/man1/zshbuiltins.1.gz
+man/man1/zshparam.1.gz