Pipe names are case sensitive.
Troy Rollo
wine at troy.rollo.name
Tue Apr 19 01:20:48 CDT 2005
Pipe names are currently case sensitive. This affects instmsiw.exe since the
service is created as "MSIService" and connected to as "MsiService". The
result is that instmsiw.exe always fails to query the service status.
I have insmsiw.exe from Office 2K working (at least to get as far as
installing Microsoft's version of MSI) with the patches I just sent through
to wine-patches, plus the hack below (which will also fix the problem for
other IPC objects).
One alternative to this hack would appear to be to make sync_namespace case
insensitive in wineserver, although I am not sure if that is the correct
approach. It seems to me that sync_namespace must have been chosen as case
sensitive for a reason, although a grep doesn't reveal anything that should
obviously be case sensitive in that namespace.
A third alternative would be to have find_object and create_object take a flag
that forces case insensitivity even in a case sensitive namespace.
Which approach is to be preferred here?
Index: ntdll/path.c
===================================================================
RCS file: /home/wine/wine/dlls/ntdll/path.c,v
retrieving revision 1.28
diff -u -r1.28 path.c
--- ntdll/path.c 13 Aug 2004 23:53:44 -0000 1.28
+++ ntdll/path.c 19 Apr 2005 05:34:20 -0000
@@ -360,6 +360,16 @@
break;
}
+ /* This is an ugly hack that will never make it into WINE */
+ if (offset == 4)
+ {
+ WCHAR *src = ptr + offset;
+ WCHAR *dst = ntpath->Buffer + strlenW(ntpath->Buffer);
+
+ while (*src)
+ *dst++ = RtlUpcaseUnicodeChar(*src++);
+ *dst = 0;
+ } else
strcatW(ntpath->Buffer, ptr + offset);
ntpath->Length = strlenW(ntpath->Buffer) * sizeof(WCHAR);
More information about the wine-devel
mailing list