From 483a5a91ada151e7edba90b98ce376b06b0013e3 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Fri, 21 Jan 2000 01:40:27 +0000 Subject: [PATCH] add isc_strsep() and isc/string.h --- lib/isc/include/isc/string.h | 31 ++++++++++++++++++++++++++++ lib/isc/strsep.c | 40 ++++++++++++++++++++++++++++++++++++ util/copyrights | 2 ++ 3 files changed, 73 insertions(+) create mode 100644 lib/isc/include/isc/string.h create mode 100644 lib/isc/strsep.c diff --git a/lib/isc/include/isc/string.h b/lib/isc/include/isc/string.h new file mode 100644 index 0000000000..40182c4962 --- /dev/null +++ b/lib/isc/include/isc/string.h @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2000 Internet Software Consortium. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS + * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE + * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include + +#include +#include + +ISC_LANG_BEGINDECLS + +#ifdef ISC_PLATFORM_NEEDSTRSEP +char * +isc_strsep(char **stringp, const char *delim); +#define strsep isc_strsep +#endif + +ISC_LANG_ENDDECLS diff --git a/lib/isc/strsep.c b/lib/isc/strsep.c new file mode 100644 index 0000000000..5c71c711b9 --- /dev/null +++ b/lib/isc/strsep.c @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2000 Internet Software Consortium. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS + * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE + * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + */ + +#include +#include + +char * +isc_strsep(char **stringp, const char *delim) { + char *string = *stringp; + char *s; + const char *d; + char sc, dc; + + if (string == NULL) + return (NULL); + + for (s = string; (sc = *s) != '\0'; s++) + for (d = delim; (dc = *d) != '\0'; d++) + if (sc == dc) { + *s++ = '\0'; + *stringp = s; + return (string); + } + *stringp = NULL; + return (string); +} diff --git a/util/copyrights b/util/copyrights index 252374e911..f60bb81640 100644 --- a/util/copyrights +++ b/util/copyrights @@ -583,6 +583,7 @@ ./lib/isc/include/isc/sockaddr.h C 1998,1999,2000 ./lib/isc/include/isc/socket.h C 1998,1999,2000 ./lib/isc/include/isc/str.h C 1999,2000 +./lib/isc/include/isc/string.h C 2000 ./lib/isc/include/isc/symtab.h C 1996,1997,1998,1999,2000 ./lib/isc/include/isc/task.h C 1998,1999,2000 ./lib/isc/include/isc/taskpool.h C 1999,2000 @@ -621,6 +622,7 @@ ./lib/isc/serial.c C 1999,2000 ./lib/isc/sockaddr.c C 1999,2000 ./lib/isc/str.c C 1999,2000 +./lib/isc/strsep.c C 2000 ./lib/isc/symtab.c C 1996,1997,1998,1999,2000 ./lib/isc/task.c C 1998,1999,2000 ./lib/isc/taskpool.c C 1999,2000