mirror of
https://github.com/openvswitch/ovs
synced 2025-08-31 06:15:47 +00:00
string: Implement strcasestr for Windows.
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 <dlu998@gmail.com> Co-authored-by: Ben Pfaff <blp@ovn.org> Signed-off-by: Ben Pfaff <blp@ovn.org>
This commit is contained in:
22
lib/string.c
22
lib/string.c
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2009, 2011 Nicira, Inc.
|
||||
* Copyright (c) 2009, 2011, 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
|
||||
|
Reference in New Issue
Block a user