patches/gnash-03-gnashrc.diff
author jurikm
Sun, 12 Feb 2012 14:04:10 +0000
changeset 8245 383896da4129
parent 2259 c0ed6d3782ea
permissions -rw-r--r--
SFEsauerbraten.spec: add IPS package name

--- gnash-0.8.6.orig/libbase/rc.cpp	2009-09-13 19:22:16.000000000 -0400
+++ gnash-0.8.6/libbase/rc.cpp	2009-12-10 11:49:46.065126344 -0500
@@ -37,7 +37,7 @@
 #include <limits>
 #include <cstdlib> // getenv
 #include <string>
-#include <vector>
+#include <list>
 #include <iostream>
 #include <fstream>
 #include <sstream>
@@ -164,18 +164,23 @@
     }
 
     // Check the GNASHRC environment variable
-    // TODO: keep note of the already-parsed files
-    //       to avoid parsign multiple times ?
-    //       (would mess up user-reguested order)
+    // Parse each file only once
     char *gnashrc = std::getenv("GNASHRC");
     if (gnashrc)
     {
         std::string paths(gnashrc);
-
         Tok t(paths, Sep(":"));
 
+        std::list<std::string> l;
+
         for (Tok::iterator i = t.begin(), e = t.end(); i != e; ++i)
         {
+            l.remove(*i);
+            l.push_back(*i);
+        }
+
+        for (std::list<std::string>::const_iterator i = l.begin(), e = l.end(); i != e; ++i)
+        {
             parseFile(*i);
         }
     }