diff options
author | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-05-28 19:19:43 +0000 |
---|---|---|
committer | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-05-28 19:19:43 +0000 |
commit | 292816a9de3eb80cee7c0feb8f02cc6069a7a718 (patch) | |
tree | bbaa51520fbae7c7416021261e1c28df5eb31110 | |
parent | c352a8d5a475e0bca449bfc0121e2065b848fdef (diff) | |
download | crawl-ref-292816a9de3eb80cee7c0feb8f02cc6069a7a718.tar.gz crawl-ref-292816a9de3eb80cee7c0feb8f02cc6069a7a718.zip |
Fix broken handling of option aliases in included files (dpeg).
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5315 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r-- | crawl-ref/source/externs.h | 3 | ||||
-rw-r--r-- | crawl-ref/source/initfile.cc | 6 |
2 files changed, 7 insertions, 2 deletions
diff --git a/crawl-ref/source/externs.h b/crawl-ref/source/externs.h index 340acef5df..697ee9192a 100644 --- a/crawl-ref/source/externs.h +++ b/crawl-ref/source/externs.h @@ -1887,7 +1887,8 @@ public: unsigned int tutorial_left; private: - std::map<std::string, std::string> aliases; + typedef std::map<std::string, std::string> string_map; + string_map aliases; std::set<std::string> included; // Files we've included already. public: diff --git a/crawl-ref/source/initfile.cc b/crawl-ref/source/initfile.cc index 92b230a6dc..ff2dcef9b8 100644 --- a/crawl-ref/source/initfile.cc +++ b/crawl-ref/source/initfile.cc @@ -2886,11 +2886,15 @@ void game_options::include(const std::string &rawfilename, // Change this->filename to the included filename while we're reading it. unwind_var<std::string> optfile(this->filename, include_file); + + // Also unwind any aliases defined in included files. + unwind_var<string_map> unwalias(aliases); + FILE* f = fopen( include_file.c_str(), "r" ); if (f) { FileLineInput fl(f); - read_options(fl, runscript); + this->read_options(fl, runscript, false); fclose(f); } } |