t_string interpolate_variables_into_tstring(const t_string &tstr, const variable_set& variables) { if(!tstr.str().empty()) { std::string interp = utils::interpolate_variables_into_string(tstr.str(), variables); if(tstr.str() != interp) { return t_string(interp); } } return tstr; }
variant luaW_tofaivariant(lua_State* L, int i) { switch(lua_type(L, i)) { case LUA_TBOOLEAN: return variant(lua_tointeger(L, i)); case LUA_TNUMBER: return variant(lua_tonumber(L, i), variant::DECIMAL_VARIANT); case LUA_TSTRING: return variant(lua_tostring(L, i)); case LUA_TTABLE: return variant(new lua_callable(L, i)); case LUA_TUSERDATA: static t_string tstr; static vconfig vcfg = vconfig::unconstructed_vconfig(); static map_location loc; if(luaW_totstring(L, i, tstr)) { return variant(tstr.str()); } else if(luaW_tovconfig(L, i, vcfg)) { return variant(new config_callable(vcfg.get_parsed_config())); } else if(unit* u = luaW_tounit(L, i)) { return variant(new unit_callable(*u)); } else if(luaW_tolocation(L, i, loc)) { return variant(new location_callable(loc)); } break; } return variant(); }
void generate_pot(std::set<std::string>& msgids, const t_string& tstr, const std::string& default_textdomain) { if (tstr.str().empty()) { return; } std::vector<t_string_base::trans_str> trans = tstr.valuex(); if (!trans.empty()) { if (trans[0].td.empty() || trans[0].td == default_textdomain) { msgids.insert(trans[0].str); } } return; }
std::string operator()(t_string const &s) const { return s.str(); }
std::string operator()(const t_string& s) const { return s.str(); }
variant operator()(const t_string& s) const {return variant(s.str());}
inline t_string operator+(const std::string& a, const t_string& b) { return t_string(a + b.str()); }
inline bool operator!=(const std::string& a, const t_string& b) { return a != b.str(); }