Skip to content

Commit

Permalink
fix(zscript): parser configs not working
Browse files Browse the repository at this point in the history
  • Loading branch information
EmilyV99 authored and connorjclark committed Dec 14, 2023
1 parent 6058be2 commit 74a8124
Showing 1 changed file with 21 additions and 16 deletions.
37 changes: 21 additions & 16 deletions src/parser/config.cpp
Expand Up @@ -6,12 +6,19 @@
#include <map>

#include "base/util.h"
#include "base/headers.h"

namespace fs = std::filesystem;

static std::map<std::string, std::string> base_config;
static std::map<std::string, std::string> user_config;

void zconsole_db(const char *format,...);
static inline string& trim(string& str)
{
str.erase(str.find_last_not_of(" \t\r\n")+1);
str.erase(0,str.find_first_not_of(" \t\r\n"));
return str;
}
static bool load_config(std::map<std::string, std::string>& config, std::string path)
{
config.clear();
Expand Down Expand Up @@ -39,8 +46,7 @@ static bool load_config(std::map<std::string, std::string>& config, std::string
util::split(line, tokens, '=');
if (tokens.size() != 2)
continue;

config[tokens[0]] = tokens[1];
config[trim(tokens[0])] = trim(tokens[1]);
}

return true;
Expand All @@ -58,38 +64,37 @@ bool zscript_load_user_config(std::string path)

std::string zscript_get_config_string(std::string key, std::string def_value)
{
auto it = base_config.find(key);
if (it != base_config.end())
auto it = user_config.find(key);
if (it != user_config.end())
return it->second;

it = user_config.find(key);
if (it != user_config.end())
it = base_config.find(key);
if (it != base_config.end())
return it->second;

return def_value;
}

int zscript_get_config_int(std::string key, int def_value)
{
auto it = base_config.find(key);
if (it != base_config.end())
return std::stoi(it->second);

it = user_config.find(key);
auto it = user_config.find(key);
if (it != user_config.end())
return std::stoi(it->second);

it = base_config.find(key);
if (it != base_config.end())
return std::stoi(it->second);
return def_value;
}

double zscript_get_config_double(std::string key, double def_value)
{
auto it = base_config.find(key);
if (it != base_config.end())
auto it = user_config.find(key);
if (it != user_config.end())
return std::stod(it->second);

it = user_config.find(key);
if (it != user_config.end())
it = base_config.find(key);
if (it != base_config.end())
return std::stod(it->second);

return def_value;
Expand Down

0 comments on commit 74a8124

Please sign in to comment.