strcasestr is not defined for Windows, so implement a version that could be used on Windows. This is needed for an upcoming patch.
Signed-off-by: Darrell Ball <dlu...@gmail.com> Co-authored-by: Ben Pfaff <b...@ovn.org> Signed-off-by: Ben Pfaff <b...@ovn.org> --- lib/string.c | 22 ++++++++++++++++++++-- lib/string.h.in | 3 ++- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/lib/string.c b/lib/string.c index 082359d..bd8bb86 100644 --- a/lib/string.c +++ b/lib/string.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2011 Nicira, Inc. + * Copyright (c) 2009-2017 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,9 +15,11 @@ */ #include <config.h> - +#include <ctype.h> #include <string.h> +#include "util.h" + #ifndef HAVE_STRNLEN size_t strnlen(const char *s, size_t maxlen) @@ -26,3 +28,19 @@ strnlen(const char *s, size_t maxlen) return end ? end - s : maxlen; } #endif + +#ifdef _WIN32 +char *strcasestr(const char *str, const char *substr) +{ + do { + for (size_t i = 0; ; i++) { + if (!substr[i]) { + return CONST_CAST(char *, str); + } else if (tolower(substr[i]) != tolower(str[i])) { + break; + } + } + } while (*str++); + return NULL; +} +#endif diff --git a/lib/string.h.in b/lib/string.h.in index bbdaeb4..7a8e18f 100644 --- a/lib/string.h.in +++ b/lib/string.h.in @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2011, 2013 Nicira, Inc. + * Copyright (c) 2009, 2011, 2013, 2017 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,6 +36,7 @@ #define strcasecmp _stricmp #define strncasecmp _strnicmp #define strerror_r(errnum, buf, buflen) strerror_s(buf, buflen, errnum) +char *strcasestr(const char *, const char *); #endif #ifndef HAVE_STRNLEN -- 1.9.1 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev