gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash/libbase URL.cpp


From: Vitaly Alexeev
Subject: [Gnash-commit] gnash/libbase URL.cpp
Date: Mon, 11 Sep 2006 14:24:11 +0000

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);
        }
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]