Fix strcasestr for Windows
authorH.G.Muller <hgm@hgm-xboard.(none)>
Sat, 31 Dec 2016 19:37:53 +0000 (20:37 +0100)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Sat, 31 Dec 2016 19:40:59 +0000 (20:40 +0100)
The strcasestr definition, which we have to supply ourselves to make
the Windows version compilable, was not upto the task of having a
string constant as first argument, and a string that needs decapitalization
as the second argument.

UCI2WB.c

index 4d3a4df..ebcd79c 100644 (file)
--- a/UCI2WB.c
+++ b/UCI2WB.c
@@ -55,7 +55,7 @@ FILE *toE, *fromE, *fromF;
 int pid;\r
 \r
 #ifdef WIN32\r
 int pid;\r
 \r
 #ifdef WIN32\r
-char *strcasestr (char *p, char *q) { char *r = p; while(*r) *r = tolower(*r), r++; return strstr(p, q); }\r
+char *strcasestr (char *p, char *q) { while(*p) { char *r=p++, *s=q; while(tolower(*r++) == tolower(*s) && *s) s++; if(!*s) return p-1; } return NULL; }\r
 \r
 WinPipe(HANDLE *hRd, HANDLE *hWr)\r
 {\r
 \r
 WinPipe(HANDLE *hRd, HANDLE *hWr)\r
 {\r