Ann & Jason Edmeades wrote:
We need to check context before than refer to context -> skip_rest .
But we have just referred to it higher up, and I didn't think it was valid to get into this routine without a context.
Whats the problem you are trying to fix?
I run a program which uses a *.bat files via "wine wineconsole --backend=user start program.bat" and this program runs well but after exit it program fails with:
Backtrace: =>1 0x7ed518e5 WCMD_batch+0x105(file=0x346e1c, command=0x16d038, called=0x0, startLabel=0x0, pgmHandle=0xffffffff) [/srv/vostok/Projects/wi 2 0x7ed5e14c WCMD_run_program+0x85c(command=0x16d038, called=0x0) [/srv/vostok/Projects/wine/programs/cmd/wcmdmain.c:1056] in cmd (0x0034 3 0x7ed5e63e WCMD_process_command+0x28e(command=0x167580, cmdList=0x34f5e0) [/srv/vostok/Projects/wine/programs/cmd/wcmdmain.c:813] in cm 4 0x7ed53f26 WCMD_execute+0x1b6(orig_cmd=<register EDI not in topmost frame>, param=0x0, subst=0x0, cmdList=0x34f5e0) [/srv/vostok/Projec 5 0x7ed5bcc0 WCMD_process_commands+0x90(thisCmd=0x167568, oneBracket=0x0, var=<register EDI not in topmost frame>, val=0x0) [/srv/vostok/ 6 0x7ed5d6f3 wmain+0xa83(argc=0x3, argvW=0x110338) [/srv/vostok/Projects/wine/programs/cmd/wcmdmain.c:328] in cmd (0x0034fee8) 7 0x7ed5fd5e __wine_spec_exe_wentry+0x4e(peb=0x7ffdf000) [/srv/vostok/Projects/wine/dlls/winecrt0/exe_wentry.c:36] in cmd (0x0034ff08) 8 0x7ee53e60 start_process+0xc0(arg=0x0) [/srv/vostok/Projects/wine/dlls/kernel32/process.c:834] in kernel32 (0x0034ffe8) 9 0xb7e5a917 wine_switch_to_stack+0x17() in libwine.so.1 (0x00000000) 0x7ed518e5 WCMD_batch+0x105 [/srv/vostok/Projects/wine/programs/cmd/batch.c:108] in cmd: movl 0x34(%eax),%eax Unable to open file '/srv/vostok/Projects/wine/programs/cmd/batch.c' Modules: Module Address Debug info Name (58 modules) ELF 4792e000-4830f000 Deferred libglcore.so.1 ELF 4946e000-4955c000 Deferred libx11.so.6 ELF 4955e000-4956c000 Deferred libxext.so.6 ELF 4956e000-49576000 Deferred libxrender.so.1 ELF 49578000-4957b000 Deferred libxinerama.so.1 ELF 4957d000-49583000 Deferred libxrandr.so.2 ELF 49585000-4958e000 Deferred libxcursor.so.1 ELF 49590000-49595000 Deferred libxfixes.so.3 ELF 4a0fd000-4a102000 Deferred libxxf86vm.so.1 ELF 4a4b1000-4a550000 Deferred libgl.so.1 ELF 4acaa000-4acc3000 Deferred ld-linux.so.2 ELF 4acc5000-4acc7000 Deferred libnvidia-tls.so.1 ELF 4b6ac000-4b7d2000 Deferred libc.so.6 ELF 4b7d4000-4b7d8000 Deferred libdl.so.2 ELF 4b7da000-4b800000 Deferred libm.so.6 ELF 4b802000-4b818000 Deferred libpthread.so.0 ELF 4b81a000-4b82e000 Deferred libz.so.1 ELF 4b830000-4b835000 Deferred libxdmcp.so.6 ELF 4b837000-4b83a000 Deferred libxau.so.6 ELF 4b93c000-4b95c000 Deferred libexpat.so.1 ELF 4e4a4000-4e51e000 Deferred libfreetype.so.6 ELF 4e520000-4e528000 Deferred libsm.so.6 ELF 4e560000-4e590000 Deferred libfontconfig.so.1 ELF 4e592000-4e5a9000 Deferred libice.so.6
In loop
while ( context -> skip_rest == FALSE ) {
CMD_LIST *toExecute = NULL; /* Commands left to be executed */
if (WCMD_ReadAndParseLine(NULL, &toExecute, h) == NULL)
break;
WCMD_process_commands(toExecute, FALSE, NULL, NULL);
WCMD_free_commands(toExecute);
toExecute = NULL;
}
the context may be damaged and I have tried to correct it addition of check.