I always find the returns from str*cmp confusing too. Clearly, this is looking for a return of zero. Changelog: strcasecmp returns zero on a match
Index: dlls/shell32/shellord.c =================================================================== RCS file: /home/wine/wine/dlls/shell32/shellord.c,v retrieving revision 1.98 diff -u -r1.98 shellord.c --- dlls/shell32/shellord.c 2 Jul 2002 02:05:17 -0000 1.98 +++ dlls/shell32/shellord.c 3 Jul 2002 02:16:01 -0000 @@ -1032,7 +1032,7 @@ { BOOL failed = TRUE; - if ((!sei->lpVerb)||(strcasecmp(sei->lpVerb,"open"))) + if ((!sei->lpVerb)||(!strcasecmp(sei->lpVerb,"open"))) { LPSTR ext = PathFindExtensionA(szApplicationName); CHAR key[1023];