add env keyword to cfg

This commit is contained in:
vaxerski 2023-03-05 13:12:01 +00:00
parent 4abc608bc0
commit d5093f7af0
2 changed files with 17 additions and 0 deletions

View file

@ -1039,6 +1039,20 @@ void CConfigManager::handleBindWS(const std::string& command, const std::string&
boundWorkspaces.push_back({ARGS[0], ARGS[1]}); boundWorkspaces.push_back({ARGS[0], ARGS[1]});
} }
void CConfigManager::handleEnv(const std::string& command, const std::string& value) {
if (!isFirstLaunch)
return;
const auto ARGS = CVarList(value, 2);
if (ARGS[0].empty()) {
parseError = "env empty";
return;
}
setenv(ARGS[0].c_str(), ARGS[1].c_str(), 1);
}
std::string CConfigManager::parseKeyword(const std::string& COMMAND, const std::string& VALUE, bool dynamic) { std::string CConfigManager::parseKeyword(const std::string& COMMAND, const std::string& VALUE, bool dynamic) {
if (dynamic) { if (dynamic) {
parseError = ""; parseError = "";
@ -1083,6 +1097,8 @@ std::string CConfigManager::parseKeyword(const std::string& COMMAND, const std::
handleBlurLS(COMMAND, VALUE); handleBlurLS(COMMAND, VALUE);
else if (COMMAND == "wsbind") else if (COMMAND == "wsbind")
handleBindWS(COMMAND, VALUE); handleBindWS(COMMAND, VALUE);
else if (COMMAND == "env")
handleEnv(COMMAND, VALUE);
else { else {
configSetValueSafe(currentCategory + (currentCategory == "" ? "" : ":") + COMMAND, VALUE); configSetValueSafe(currentCategory + (currentCategory == "" ? "" : ":") + COMMAND, VALUE);
needsLayoutRecalc = 2; needsLayoutRecalc = 2;

View file

@ -244,6 +244,7 @@ class CConfigManager {
void handleSubmap(const std::string&, const std::string&); void handleSubmap(const std::string&, const std::string&);
void handleBlurLS(const std::string&, const std::string&); void handleBlurLS(const std::string&, const std::string&);
void handleBindWS(const std::string&, const std::string&); void handleBindWS(const std::string&, const std::string&);
void handleEnv(const std::string&, const std::string&);
}; };
inline std::unique_ptr<CConfigManager> g_pConfigManager; inline std::unique_ptr<CConfigManager> g_pConfigManager;