From b8205a49dfb140e07cf69b78588805b6dc3de831 Mon Sep 17 00:00:00 2001
From: Houtan Bastani <houtan@dynare.org>
Date: Mon, 24 Jun 2019 14:39:35 +0200
Subject: [PATCH] Revert "macro processor: allow @#includepath to accept a
 colon-separated list of paths"

This reverts commit 12b09073e316c6dcda8c6045640546fcf7cdb11c.
---
 src/macro/Directives.cc | 9 +--------
 src/macro/Directives.hh | 4 ++--
 src/macro/Driver.cc     | 5 +----
 3 files changed, 4 insertions(+), 14 deletions(-)

diff --git a/src/macro/Directives.cc b/src/macro/Directives.cc
index fd320e5c..daa781e8 100644
--- a/src/macro/Directives.cc
+++ b/src/macro/Directives.cc
@@ -68,14 +68,7 @@ IncludePath::interpret(ostream &output, bool no_line_macro)
       StringPtr msp = dynamic_pointer_cast<String>(expr->eval());
       if (!msp)
         throw StackTrace("File name does not evaluate to a string");
-      size_t last = 0;
-      size_t next = 0;
-      while ((next = static_cast<string>(*msp).find(":", last)) != string::npos)
-        {
-          path.push_back(static_cast<string>(*msp).substr(last, next-last));
-          last = next + 1;
-        }
-      path.push_back(static_cast<string>(*msp).substr(last));
+      path = *msp;
     }
   catch (StackTrace &ex)
     {
diff --git a/src/macro/Directives.hh b/src/macro/Directives.hh
index 38048a7a..314f3362 100644
--- a/src/macro/Directives.hh
+++ b/src/macro/Directives.hh
@@ -83,12 +83,12 @@ namespace macro
   {
   private:
     const ExpressionPtr expr;
-    vector<string> path;
+    string path;
   public:
     IncludePath(const ExpressionPtr expr_arg, Environment &env_arg, const Tokenizer::location location_arg) :
       Directive(env_arg, move(location_arg)), expr{move(expr_arg)} { }
     void interpret(ostream &output, bool no_line_macro) override;
-    inline vector<string> getPath() const { return path; }
+    inline string getPath() const { return path; }
   };
 
 
diff --git a/src/macro/Driver.cc b/src/macro/Driver.cc
index f700b473..d24469db 100644
--- a/src/macro/Driver.cc
+++ b/src/macro/Driver.cc
@@ -85,10 +85,7 @@ Driver::parse(const string &file_arg, const string &basename_arg, istream &modfi
 
       auto ipp = dynamic_pointer_cast<IncludePath>(statement);
       if (ipp)
-        {
-          auto p = ipp->getPath();
-          paths.insert(paths.end(), p.begin(), p.end());
-        }
+        paths.emplace_back(ipp->getPath());
 
       auto ip = dynamic_pointer_cast<Include>(statement);
       if (ip)
-- 
GitLab