-Exec=env WINEPREFIX="${WINEPREFIX:-$HOME/.wine}" wine "$path" $args +Exec=env WINEPREFIX="${WINEPREFIX:-$HOME/.wine}" wine start "$path" $args
This is not correct. If console needs to be created for those apps and there isn't one, then Wine should do it when starting an app.
This is correct. "wine start" is the right way to start complicated (which use AllocConsole/FreeConsole and HWND) console applications (bug #10827 and bug #10867).
I do not understand how to detect lack of console even for applications called from desktop shortcut. Dumb IO console is always present AFAIK. I tried to following:
Create simple console application. #include <stdio.h>
int main(void) { FILE *f = fopen("ia.txt", "w"); int ret;
ret = fprintf(stdout, "qqq\n"); fprintf(f, "%d\n", ret); fclose(f); return 0; }
compiled it as windows console app and run it: 1) $ wine a.exe 2) $ wine start a.exe 3) create a desktop shortcut and click on it.
1'), 2'), 3') compiled the same app as a UNIX app and run it via desktop shortcut. In all cases results are the same: successful output to stdout (res=4).
This makes me think that stdio handles are always present. I may be wrong, just let me know.
-- Kirill