On Mon, Sep 18, 2006 at 09:43:24AM +0200, Markus Gothe wrote: > I agree with you on this, actually this introduced a bug rendering gnash > unusuable on unix. So the commented out section is reverted.
I'd suggest to revert the patch and raise some discussion before applying any non-trivial patch. Adding testcases, or commented references to external URL showing the problems might help in the future. --strk > > //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 > > > > _______________________________________________ > Gnash-commit mailing list > [email protected] > http://lists.gnu.org/mailman/listinfo/gnash-commit -- /"\ ASCII Ribbon Campaign \ / Respect for low technology. X Keep e-mail messages readable by any computer system. / \ Keep it ASCII. _______________________________________________ Gnash-commit mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnash-commit
