I agree with you on this, actually this introduced a bug rendering gnash unusuable on unix. So the commented out section is reverted.
//Markus strk wrote: > A quick grep shows there's no .cpp file calling either get_workdir > or set_workdir, so URL is currently the only class making use of it. > I don't think the URL class should NOT ever *set* the working dir, it's > only use is to *parse* URLs and resolve relative ones based on another > URL that is *passed* at construction time. > > The CWD fetch is just a fall back, we might as well raise an error > in that case (relative url given, no parent url to resolve it against). > > --strk; > > On Mon, Sep 11, 2006 at 02:24:11PM +0000, Vitaly Alexeev wrote: >> CVSROOT: /sources/gnash >> Module name: gnash >> Changes by: Vitaly Alexeev <alexeev> 06/09/11 14:24:11 >> >> Modified files: >> libbase : URL.cpp >> >> Log message: >> loadMovie() should be compatible with Flash >> >> CVSWeb URLs: >> http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/URL.cpp?cvsroot=gnash&r1=1.21&r2=1.22 >> >> Patches: >> Index: URL.cpp >> =================================================================== >> RCS file: /sources/gnash/gnash/libbase/URL.cpp,v >> retrieving revision 1.21 >> retrieving revision 1.22 >> diff -u -b -r1.21 -r1.22 >> --- URL.cpp 2 Sep 2006 14:28:35 -0000 1.21 >> +++ URL.cpp 11 Sep 2006 14:24:11 -0000 1.22 >> @@ -42,6 +42,7 @@ >> >> #include <iostream> >> #include "URL.h" >> +#include "impl.h" >> //#include "rc.h" >> >> #include <string> >> @@ -134,22 +135,34 @@ >> { >> //cerr << "It's absolute" << endl; >> init_absolute(absolute_url); >> + >> + // The current system directory is not current working >> directory of Flash. >> + // Current working directory of Flash is a directory of the >> first swf file. >> + if (strlen(get_workdir()) == 0) >> + { >> + size_t n = absolute_url.find_last_of("/\\"); >> + if (n != string::npos) >> + { >> + set_workdir(absolute_url.substr(0, n + >> 1).c_str()); >> + } >> + } >> } >> else >> { >> //cerr << "It's relative" << endl; >> - char buf[PATH_MAX+1]; >> - if ( ! getcwd(buf, PATH_MAX) ) >> - { >> - stringstream err; >> - err << "getcwd failed: " << strerror(errno); >> - throw gnash::GnashException(err.str()); >> - } >> - char* ptr = buf+strlen(buf); >> - *ptr = '/'; >> - ++ptr; >> - *ptr = '\0'; >> - URL cwd(buf); >> +// char buf[PATH_MAX+1]; >> +// if ( ! getcwd(buf, PATH_MAX) ) >> +// { >> +// stringstream err; >> +// err << "getcwd failed: " << strerror(errno); >> +// throw gnash::GnashException(err.str()); >> +// } >> +// char* ptr = buf+strlen(buf); >> +// *ptr = '/'; >> +// ++ptr; >> +// *ptr = '\0'; >> + >> + URL cwd(get_workdir()); >> init_relative(absolute_url, cwd); >> } >> } >> >> >> _______________________________________________ >> Gnash-commit mailing list >> [email protected] >> http://lists.gnu.org/mailman/listinfo/gnash-commit >
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Gnash-commit mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnash-commit
