diff options
author | Raphael Langella <raphael.langella@gmail.com> | 2012-05-15 00:31:01 +0200 |
---|---|---|
committer | Raphael Langella <raphael.langella@gmail.com> | 2012-05-15 00:31:01 +0200 |
commit | d52d0508f811bf4613de55db0f9e30e44558b43e (patch) | |
tree | 620897226938a764c811f8d5a5a6ea13332b84f4 /crawl-ref/source/database.cc | |
parent | 5729a0d575f660a9b7b98980c921bdfc47b14302 (diff) | |
download | crawl-ref-d52d0508f811bf4613de55db0f9e30e44558b43e.tar.gz crawl-ref-d52d0508f811bf4613de55db0f9e30e44558b43e.zip |
Add an alias functionality to database lookups.
Putting <foo> in a database entry redirects to key foo.
Diffstat (limited to 'crawl-ref/source/database.cc')
-rw-r--r-- | crawl-ref/source/database.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/crawl-ref/source/database.cc b/crawl-ref/source/database.cc index 7c10aab816..140329aa86 100644 --- a/crawl-ref/source/database.cc +++ b/crawl-ref/source/database.cc @@ -731,6 +731,13 @@ static std::string _query_database(TextDB &db, std::string key, std::string str((const char *)result.dptr, result.dsize); + // <foo> is an alias to key foo + if (str[0] == '<' and str[str.size() - 2] == '>') + { + return _query_database(db, str.substr(1, str.size() - 3), + canonicalise_key, run_lua, untranslated); + } + if (run_lua) _execute_embedded_lua(str); |