X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FVariables.C;h=3b3f6d4f9d25d2c4bf31272349b5139564d13997;hb=52eb91c94fb70d58dceef430659c8781de2eccda;hp=128f5538b5c12d0024c50604bbad1600b232ecec;hpb=ab45a3ae914b295478724c1d80ca8ec84789e027;p=lyx.git diff --git a/src/Variables.C b/src/Variables.C index 128f5538b5..3b3f6d4f9d 100644 --- a/src/Variables.C +++ b/src/Variables.C @@ -1,78 +1,85 @@ -/* This file is part of -* ====================================================== -* -* LyX, The Document Processor -* -* Copyright 1995 Matthias Ettrich -* Copyright 1995-2000 the LyX Team. -* -* ====================================================== */ +/** + * \file Variables.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author Lars Gullik Bjønnes + * \author Jean-Marc Lasgouttes + * + * Full author contact details are available in file CREDITS. + */ #include -#ifdef __GNUG__ -#pragma implementation "Variables.h" -#endif - #include "Variables.h" #include "support/LRegex.h" -void Variables::set(string const &var, string const &val) + +void Variables::set(string const & var, string const & val) { - Vars::const_iterator cit = vars_.find(var); - if (cit != vars_.end()) - vars_.erase(var); - vars_[var] = val;; + // We want to use const_iterator (Lgb) + Vars::iterator cit = vars_.find(var); + if (cit != vars_.end()) + vars_.erase(var); + vars_[var] = val;; } -string Variables::get(string const &var) const +string const Variables::get(string const & var) const { - Vars::const_iterator cit = vars_.find(var); - if (cit != vars_.end()) - return (*cit).second; - else - return string(); + Vars::const_iterator cit = vars_.find(var); + if (cit != vars_.end()) + return cit->second; + else + return string(); } -bool Variables::isset(string const & var) const + +bool Variables::isSet(string const & var) const { - Vars::const_iterator cit = vars_.find(var); - return (cit != vars_.end()); + Vars::const_iterator cit = vars_.find(var); + return (cit != vars_.end()); } -string Variables::expand(string str) const + +string const Variables::expand(string const & s) const { - LRegex reg("\\$\\{\\(.*\\)\\}"); - - if (!reg.exact_match(str)) - return str; - - LRegex::MatchPair match; - string var; - - do { - match = reg.first_match(str); - var = str.substr(match.first,match.second); - // we correct the match to take ${} in account. - str.replace(match.first - 2, match.second + 3, get(var)); - } while (reg.exact_match(str)); - - return str; + string str(s); + LRegex reg("\\$\\{\\(.*\\)\\}"); + + if (!reg.exact_match(str)) + return str; + + LRegex::MatchPair match; + string var; + + do { + match = reg.first_match(str); + var = str.substr(match.first,match.second); + // we correct the match to take ${} in account. + str.replace(match.first - 2, match.second + 3, get(var)); + } while (reg.exact_match(str)); + + return str; } #ifdef TEST #include + + +namespace lyx { using std::endl; using std::cout; int main() { - Variables vars; - vars.set("x", "hello"); - vars.set("y", "world"); - cout << vars.expand("${x}") << endl; + Variables vars; + vars.set("x", "hello"); + vars.set("y", "world"); + cout << vars.expand("${x}") << endl; } #endif + +} // namespace lyx