From cf44448e712c99ea9467ab8e666692ef8db0eeff Mon Sep 17 00:00:00 2001
From: Mike Smith <msmith@FreeBSD.org>
Date: Wed, 25 Jun 1997 08:04:52 +0000
Subject: [PATCH] Add stringlist functions from NetBSD. (required for the new
 ftp(1) Obtained from:	NetBSD

---
 include/Makefile     |  8 +++----
 include/stringlist.h | 55 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+), 4 deletions(-)
 create mode 100644 include/stringlist.h

diff --git a/include/Makefile b/include/Makefile
index 35e953806fa4..0f9e6bc88a06 100644
--- a/include/Makefile
+++ b/include/Makefile
@@ -1,5 +1,5 @@
 #	From: @(#)Makefile	8.2 (Berkeley) 1/4/94
-#	$Id: Makefile,v 1.57 1997/05/28 04:46:38 wpaul Exp $
+#	$Id: Makefile,v 1.58 1997/06/05 21:20:58 jkh Exp $
 #
 # Doing a make install builds /usr/include
 #
@@ -15,9 +15,9 @@ FILES=	a.out.h ar.h assert.h bitstring.h ctype.h db.h dirent.h disktab.h \
 	kvm.h limits.h link.h locale.h malloc.h memory.h mpool.h \
 	ndbm.h netdb.h nl_types.h nlist.h paths.h pthread.h pthread_np.h pwd.h \
 	ranlib.h regex.h regexp.h resolv.h rune.h runetype.h setjmp.h sgtty.h \
-	signal.h stab.h stddef.h stdio.h stdlib.h string.h strings.h \
-	struct.h sysexits.h tar.h time.h timers.h ttyent.h unistd.h utime.h \
-	utmp.h vis.h
+	signal.h stab.h stddef.h stdio.h stdlib.h string.h stringlist.h \
+	strings.h struct.h sysexits.h tar.h time.h timers.h ttyent.h unistd.h \
+	utime.h utmp.h vis.h
 .if defined(WANT_CSRG_LIBM)
 FILES+=	math.h
 .endif
diff --git a/include/stringlist.h b/include/stringlist.h
new file mode 100644
index 000000000000..138b2a71da0b
--- /dev/null
+++ b/include/stringlist.h
@@ -0,0 +1,55 @@
+/*	$NetBSD: stringlist.h,v 1.2 1997/01/17 06:11:36 lukem Exp $	*/
+
+/*
+ * Copyright (c) 1994 Christos Zoulas
+ * 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 Christos Zoulas.
+ * 4. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+ */
+
+#ifndef _STRINGLIST_H
+#define _STRINGLIST_H 
+#include <sys/cdefs.h>
+#include <sys/types.h>
+
+/*
+ * Simple string list
+ */
+typedef struct _stringlist {
+	char	**sl_str;
+	size_t	  sl_max;
+	size_t	  sl_cur;
+} StringList;
+
+__BEGIN_DECLS
+StringList *sl_init	__P((void));
+void	 sl_add		__P((StringList *, char *));
+void	 sl_free	__P((StringList *, int));
+char	*sl_find	__P((StringList *, char *));
+__END_DECLS
+
+#endif /* _STRINGLIST_H */