I haven't looked at the patch, but the call to SHELL should look like this:
"%pathToExe%" -flags -etc "%pathToFile%" Basically, anything that could have a space in it needs quotes. The only potential edge case might be if it contains a caret (^), which is the shell escape character (and, is not allowed in file names, I believe). -- Mike Caron -----Original Message----- From: Ralph Versteegen <[email protected]> Date: Fri, 12 Feb 2010 19:21:13 To: <[email protected]> Subject: Re: [Ohrrpgce] SVN: james/3379 Update text files for ypsiliform+2 On 9 February 2010 12:04, James Paige <[email protected]> wrote: > On Tue, Feb 09, 2010 at 11:49:37AM +1300, Ralph Versteegen wrote: >> >> Is it too late to delay release? I found a rather large bug in music >> importation. >> >> Ralph > > Yep, it too late to hold ypsiliform+2 > But I see absolutely no good reason why we couldn't release +3 tomorrow > :) > > What is the import bug? > > --- > James Calling oggenc and madplay doesn't work when Custom's path contains spaces. In addition, the fix for the SHELL call to oggenc/madplay causing gfx_sdl to lose track of the state of the keyboard didn't work either (recall that this happens on windows only, when not compiling with -s console). GLOW reported that trying to import an mp3 file into his game (his Custom's path contained all kinds of spaces, commas and exclamation marks) caused the import to loop, walked through several of his songs, and overwrote them with whatever ogg file was first in the directory! On testing, I managed to see SHELL cause SDL to get confused just once, but GLOW reported that it happens most of the time on his computer. As a workaround, I got him to switch to gfx_fb. The way that Windows' system() (which is all that a call to SHELL on windows is) handles spaces and quotes is braindead (seems to be a holdover from the DOS 1.0 or whatever days, type "cmd /?" to read about it) - its behaviour changes depending whether the last character in the string is a quote, and much other insanity - but I figured out how to fix it, the patch is attached (didn't wrap it in #ifdefs). However, I didn't check it in because it doesn't fix the root problem, which is that SHELL just doesn't work well enough. I want some alternative to SHELL which runs asynchronously, returns program output simply, optionally runs hidden without popping up a console on Windows, and returns the program exit code. Since FB doesn't have anything like this, I think we'll have wrap platform specific system calls and build our own. _______________________________________________ Ohrrpgce mailing list [email protected] http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org _______________________________________________ Ohrrpgce mailing list [email protected] http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
