Skip to content
Snippets Groups Projects
c-config-parser.cpp 1.18 KiB
Newer Older
  • Learn to ignore specific revisions
  • #include "c-config-parser.h"
    
    #include "config-parser.h"
    #include <string>
    
    // *: static class
    static scm::ConfigParser config;
    
    
    #ifdef __cplusplus
    extern "C" {  
    #endif  
    
        int config_run(const char* filename) {
            return (int)config.run(filename);
        }
    
        int config_is_varname(const char* name) {
            return (int)config.is_varname(name);
        }
    
        int config_get_int(const char* name, int* value) {
            return (int)config.get_value(name, value);
        }
        int config_get_float(const char* name, float* value) {
            return (int)config.get_value(name, value);
        }
        int config_get_double(const char* name, double* value) {
            return (int)config.get_value(name, value);
        }
    
        int config_get_string_len(const char* name) 
        {
            std::string str;
            bool status = config.get_value(name, str);
    
            if (!status) return 0;
            return (int)str.size();
        }
    
        int config_get_string_unsafe(const char* name, char* c_str) 
        {
            std::string str;
            bool status = config.get_value(name, str);
            if (!status) return 0;
    
            memcpy(c_str, str.c_str(), (int)str.size() * sizeof(char));
            return 1;
        }
    
    #ifdef __cplusplus
    }
    #endif