Return and absolut path in DRIVE_FindDriveRoot

Uwe Bonnes bon at elektron.ikp.physik.tu-darmstadt.de
Fri Jun 14 12:20:40 CDT 2002


Hallo,

some application (xilinx webpack) dind't find it's initialisation file when
started in the debugger ("winedbg bin/nt/webpack.exe" versus "wine
bin/nt/exepack" started in "l:/xilinx"). As trap there is also a directory
"l:/xilinx/xilinx". The starting process (wine or winedbg) set the current
working directory to l: and when winedbg started the user process,
DRIVE_Chdir in DIR_Init set the current directory to "l:/xilinx/xilinx".
This was caused by DRIVE_FindDriveRoot not returning an absolute path.

Changelog:
	files/drive.c: DRIVE_FindDriveRoot
	Return and absolut path, if any

Bye

-- 
Uwe Bonnes                bon at elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Index: wine/files/drive.c
===================================================================
RCS file: /home/wine/wine/files/drive.c,v
retrieving revision 1.72
diff -u -r1.72 drive.c
--- wine/files/drive.c	31 May 2002 23:06:47 -0000	1.72
+++ wine/files/drive.c	14 Jun 2002 17:19:03 -0000
@@ -402,6 +402,9 @@
                if ((DOSDrives[drive].dev == st.st_dev) &&
                    (DOSDrives[drive].ino == st.st_ino))
                {
+                   /* Return the path as absolut path, if possible */
+                   if (*(*path +len -1) == '/')
+                       len--;
                    TRACE( "%s -> drive %c:, root='%s', name='%s'\n",
                        *path, 'A' + drive, buffer, *path + len);
                    *path += len;



More information about the wine-patches mailing list