diff options
author | Nicholas Marriott <nicholas.marriott@gmail.com> | 2009-07-02 07:31:02 +0000 |
---|---|---|
committer | Nicholas Marriott <nicholas.marriott@gmail.com> | 2009-07-02 07:31:02 +0000 |
commit | 1f1623e04d8d926af440b98a5c20e5eac94bca11 (patch) | |
tree | eaf3feb5d9c530c66fc274e0c53bdce46ae688cb | |
parent | 3c0500f2824b6013e28d0d4b9722b8f676df4870 (diff) | |
download | rtmux-1f1623e04d8d926af440b98a5c20e5eac94bca11.tar.gz rtmux-1f1623e04d8d926af440b98a5c20e5eac94bca11.tar.bz2 rtmux-1f1623e04d8d926af440b98a5c20e5eac94bca11.zip |
Solaris has no strcasestr.
-rw-r--r-- | compat.h | 7 | ||||
-rw-r--r-- | compat/strcasestr.c | 61 | ||||
-rwxr-xr-x | configure | 10 |
3 files changed, 76 insertions, 2 deletions
@@ -1,4 +1,4 @@ -/* $Id: compat.h,v 1.5 2009-07-01 22:46:13 nicm Exp $ */ +/* $Id: compat.h,v 1.6 2009-07-02 07:30:59 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -119,6 +119,11 @@ #define TTY_NAME_MAX 32 #endif +#ifndef HAVE_STRCASESTR +/* strcasestr.c */ +char *strcasestr(const char *, const char *); +#endif + #ifndef HAVE_STRTONUM /* strtonum.c */ long long strtonum(const char *, long long, long long, const char **); diff --git a/compat/strcasestr.c b/compat/strcasestr.c new file mode 100644 index 00000000..08a77934 --- /dev/null +++ b/compat/strcasestr.c @@ -0,0 +1,61 @@ +/* $Id: strcasestr.c,v 1.1 2009-07-02 07:31:02 nicm Exp $ */ +/* $OpenBSD: strcasestr.c,v 1.3 2006/03/31 05:34:55 deraadt Exp $ */ +/* $NetBSD: strcasestr.c,v 1.2 2005/02/09 21:35:47 kleink Exp $ */ + +/*- + * Copyright (c) 1990, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Chris Torek. + * + * 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. 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. + */ + +#include <ctype.h> +#include <string.h> + +/* + * Find the first occurrence of find in s, ignore case. + */ +char * +strcasestr(const char *s, const char *find) +{ + char c, sc; + size_t len; + + if ((c = *find++) != 0) { + c = (char)tolower((unsigned char)c); + len = strlen(find); + do { + do { + if ((sc = *s++) == 0) + return (NULL); + } while ((char)tolower((unsigned char)sc) != c); + } while (strncasecmp(s, find, len) != 0); + s--; + } + return ((char *)s); +} @@ -1,5 +1,5 @@ #!/bin/sh -# $Id: configure,v 1.16 2009-07-01 22:28:56 nicm Exp $ +# $Id: configure,v 1.17 2009-07-02 07:31:01 nicm Exp $ TMUX_PLATFORM=${TMUX_PLATFORM:-`uname -s`} @@ -25,6 +25,7 @@ cat <<EOF >>$CONFIG_H #undef HAVE_PTY_H #undef HAVE_QUEUE_H #undef HAVE_SETPROCTITLE +#undef HAVE_STRCASESTR #undef HAVE_STRLCAT #undef HAVE_STRLCPY #undef HAVE_STRTONUM @@ -48,6 +49,7 @@ case $TMUX_PLATFORM in #define HAVE_PROGNAME #define HAVE_QUEUE_H #define HAVE_SETPROCTITLE +#define HAVE_STRCASESTR #define HAVE_STRLCAT #define HAVE_STRLCPY #define HAVE_STRTONUM @@ -70,6 +72,7 @@ EOF #define HAVE_POLL #define HAVE_PROGNAME #define HAVE_PTY_H +#define HAVE_STRCASESTR EOF cat <<EOF >>$CONFIG_MK SRCS+= osdep-linux.c \ @@ -95,6 +98,7 @@ SRCS+= osdep-unknown.c \ compat/bsd-poll.c \ compat/daemon.c \ compat/forkpty-aix.c \ + compat/strcasestr.c \ compat/strlcat.c \ compat/strlcpy.c \ compat/strtonum.c \ @@ -125,6 +129,7 @@ SRCS+= osdep-unknown.c \ compat/fgetln.c \ compat/forkpty-sunos.c \ compat/getopt.c \ + compat/strcasestr.c \ compat/strtonum.c \ compat/vis.c EOF @@ -139,6 +144,7 @@ EOF #define HAVE_GETOPT #define HAVE_PATHS_H #define HAVE_PROGNAME +#define HAVE_STRCASESTR #define HAVE_STRLCAT #define HAVE_STRLCPY #define HAVE_UTIL_H @@ -163,6 +169,7 @@ EOF #define HAVE_POLL #define HAVE_PROGNAME #define HAVE_SETPROCTITLE +#define HAVE_STRCASESTR #define HAVE_STRLCAT #define HAVE_STRLCPY #define HAVE_STRTONUM @@ -185,6 +192,7 @@ EOF #define HAVE_POLL #define HAVE_PROGNAME #define HAVE_SETPROCTITLE +#define HAVE_STRCASESTR #define HAVE_STRLCAT #define HAVE_STRLCPY #define HAVE_UTIL_H |