http://bugs.winehq.org/show_bug.cgi?id=28525
Bug #: 28525 Summary: Wine doesn't start Dosbox if $PWD = ~/.wine Product: Wine Version: 1.3.29 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: dos AssignedTo: wine-bugs@winehq.org ReportedBy: spammis@spam.la Classification: Unclassified
cd ~/.wine wine test - or - cd ~/.wine/dosdevices wine test
Output: winevdm: Cannot start DOS application C:\test.exe because the DOS memory range is unavailable. Try running this application with DOSBox.
If starting Wine from any other directory, Wine starts the program in Dosbox automatically. For some reason, it doesn't happen in these two directories. The program test.exe was placed in Wine's %PATH%, but I don't see why this would affect anything.
http://bugs.winehq.org/show_bug.cgi?id=28525
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |austinenglish@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=28525
André H. nerv@dawncrow.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nerv@dawncrow.de
--- Comment #1 from André H. nerv@dawncrow.de 2011-09-30 04:36:06 CDT --- did you try the dosbox svn Version?
http://bugs.winehq.org/show_bug.cgi?id=28525
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |00cpxxx@gmail.com
--- Comment #2 from Bruno Jesus 00cpxxx@gmail.com 2011-10-02 11:21:50 CDT --- I can confirm this issue, even using dosbox svn:
winefree@ACER:~/.wine$ wine drive_c/little_big_adventure_2/lba2/PATCH.EXE winevdm: Cannot start DOS application Z:\home\winefree.wine\drive_c\little_big_adventure_2\lba2\PATCH.EXE because the DOS memory range is unavailable. Try running this application with DOSBox.
http://bugs.winehq.org/show_bug.cgi?id=28525
--- Comment #3 from André H. nerv@dawncrow.de 2011-10-02 11:27:14 CDT --- i already sent a patch: http://www.winehq.org/pipermail/wine-patches/2011-October/107407.html
http://bugs.winehq.org/show_bug.cgi?id=28525
--- Comment #4 from Spammer spammis@spam.la 2011-10-02 16:49:37 CDT --- Does this patch mean that Wine will use the name from GetShortPathNameW even if Wine can't produce any short file name? Note that the function GetShortPathName generates something which doesn't look sensible for this directory. I tried getting the short name several times and I always got different results -- but the results don't look like real paths and could maybe confuse Dosbox if you try to CD to the returned values:
user@localhost:~/.wine$ wine path.exe D:.wine @K&h user@localhost:~/.wine$ wine path.exe D:.wine @ï;h user@localhost:~/.wine$ wine path.exe D:.wine @╦M| user@localhost:~/.wine$ wine path.exe D:.wine @╗&h
Would Wine do "@:" (or maybe even "@╗") when trying to set the directory? Would Wine try to "cd &h"?
Clarifications: D: = ~ (mount point set in Wine) first line = long path (from GetCurrentDirectory) second line = short path (long path converted using GetShortPathName -- shows the right path in other directories) path.exe = program compiled from the following code (using i586-mingw32msvc-gcc):
#include <stdio.h> #include <windows.h> int main(int argc, char *argv[]) { char longdirectory[100]; char shortdirectory[100]; GetCurrentDirectory(100, shortdirectory); GetShortPathName(shortdirectory, longdirectory, 100); printf("%s", shortdirectory); printf("%s", "\n"); printf("%s", longdirectory); printf("%s", "\n"); return 0; }
The same situation (no existing short path for the current directory) may also occur under Windows (I suppose) since NTFS directories aren't guaranteed to have short names and since certain UNC paths may refer to files not present on any DOS drive. For example, short names don't seem to be created on NTFS partitions if the files or directories are created under Linux. What does Windows do when this happens? Shouldn't Wine mirror this feature here?
http://bugs.winehq.org/show_bug.cgi?id=28525
--- Comment #5 from André H. nerv@dawncrow.de 2011-10-03 10:30:12 CDT --- First: /*This code is better*/ #include <stdio.h> #include <windows.h> int main(int argc, char *argv[]) { char longdirectory[MAX_PATH] = ""; char shortdirectory[MAX_PATH] = ""; GetCurrentDirectoryA(MAX_PATH, longdirectory); GetShortPathNameA(longdirectory, shortdirectory, MAX_PATH); printf("%x\n", GetLastError()); printf("%s\n", longdirectory); printf("%s\n", shortdirectory); return 0; }
you printed out uninitialized memory as GetShortPathName didn't touch the string because it failed.
Second: Could you simply stop running apps from .wine/? On NT you also can't run thinks from "C:.." AFAIK
http://bugs.winehq.org/show_bug.cgi?id=28525
Vijay Kamuju infyquest@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED CC| |infyquest@gmail.com Resolution| |FIXED
--- Comment #6 from Vijay Kamuju infyquest@gmail.com 2011-10-03 17:46:57 CDT --- fixed in latest git by http://source.winehq.org/git/wine.git/commit/42c1b06a134d71592017062a72364b9...
http://bugs.winehq.org/show_bug.cgi?id=28525
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |42c1b06a134d71592017062a723 | |64b9e38ea407b
http://bugs.winehq.org/show_bug.cgi?id=28525
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #7 from Alexandre Julliard julliard@winehq.org 2011-10-10 13:12:15 CDT --- Closing bugs fixed in 1.3.30.