X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=nucleus%2Flibrary%2Fconfiguration%2Fini_configurator.cpp;h=ece059ade5f3b0aabbff02a7c29f812c0d0c1cc4;hb=aa7455f9107b309dde0f3088cb1be5c995e43600;hp=8f66f01a2f128a3b41ee4cd0b59c4f5ff9618b20;hpb=51d71c226be424b6a698c7474d237e8c69661af5;p=feisty_meow.git diff --git a/nucleus/library/configuration/ini_configurator.cpp b/nucleus/library/configuration/ini_configurator.cpp index 8f66f01a..ece059ad 100644 --- a/nucleus/library/configuration/ini_configurator.cpp +++ b/nucleus/library/configuration/ini_configurator.cpp @@ -30,6 +30,8 @@ #include #include +#include + #undef LOG #define LOG(to_print) printf("%s::%s: %s\n", static_class_name(), func, astring(to_print).s()) @@ -51,19 +53,21 @@ ini_configurator::ini_configurator(const astring &ini_filename, treatment_of_defaults behavior, file_location_default where) : configurator(behavior), _ini_name(new filename), -#ifdef __UNIX__ +#if defined(__UNIX__) || defined(__GNU_WINDOWS__) _parser(new ini_parser("", behavior)), #endif _where(where), _add_spaces(false) { + FUNCDEF("constructor"); name(ini_filename); // set name properly. +//LOG(astring("calculated ini name as: '") + _ini_name->raw() + "'"); } ini_configurator::~ini_configurator() { WHACK(_ini_name); -#ifdef __UNIX__ +#if defined(__UNIX__) || defined(__GNU_WINDOWS__) WHACK(_parser); #endif } @@ -72,7 +76,7 @@ astring ini_configurator::name() const { return _ini_name->raw(); } void ini_configurator::refresh() { -#ifdef __UNIX__ +#if defined(__UNIX__) || defined(__GNU_WINDOWS__) write_ini_file(); WHACK(_parser); _parser = new ini_parser("", behavior()); @@ -88,9 +92,9 @@ void ini_configurator::name(const astring &name) // that don't include a directory name. if (_where == OS_DIRECTORY) use_appdir = false; if (_where == ALL_USERS_DIRECTORY) use_appdir = false; -#ifndef __WIN32__ - use_appdir = true; -#endif +//#ifdef _MSC_VER +// use_appdir = true; +//#endif // we must create the filename if they specified no directory at all. if (!_ini_name->had_directory()) { if (use_appdir) { @@ -108,7 +112,7 @@ void ini_configurator::name(const astring &name) _ini_name->basename()); } } -#ifdef __UNIX__ +#if defined(__UNIX__) || defined(__GNU_WINDOWS__) // read in the file's contents. read_ini_file(); #endif @@ -139,16 +143,16 @@ void ini_configurator::sections(string_array &list) //hmmm: refactor section_exists to use the sections call, if it's faser? bool ini_configurator::section_exists(const astring §ion) { -#ifdef __WIN32__ - string_table infos; - // heavy-weight call here... - return get_section(section, infos); -#else +//#ifdef _MSC_VER +// string_table infos; +// // heavy-weight call here... +// return get_section(section, infos); +//#else return _parser->section_exists(section); -#endif +//#endif } -#ifdef __UNIX__ +#if defined(__UNIX__) || defined(__GNU_WINDOWS__) void ini_configurator::read_ini_file() { #ifdef DEBUG_INI_CONFIGURATOR @@ -200,28 +204,28 @@ void ini_configurator::write_ini_file() bool ini_configurator::delete_section(const astring §ion) { -#ifdef __WIN32__ - return put_profile_string(section, "", ""); -#else +//#ifdef _MSC_VER +// return put_profile_string(section, "", ""); +//#else // zap the section. bool to_return = _parser->delete_section(section); // schedule the file to write. write_ini_file(); return to_return; -#endif +//#endif } bool ini_configurator::delete_entry(const astring §ion, const astring &ent) { -#ifdef __WIN32__ - return put_profile_string(section, ent, ""); -#else +//#ifdef _MSC_VER +// return put_profile_string(section, ent, ""); +//#else // zap the entry. bool to_return = _parser->delete_entry(section, ent); // schedule the file to write. write_ini_file(); return to_return; -#endif +//#endif } bool ini_configurator::put(const astring §ion, const astring &entry, @@ -231,21 +235,21 @@ bool ini_configurator::put(const astring §ion, const astring &entry, if (!to_store.length()) return delete_entry(section, entry); else if (!entry.length()) return delete_section(section); else if (!section.length()) return false; -#ifdef __WIN32__ - return put_profile_string(section, entry, to_store); -#else +//#ifdef _MSC_VER +// return put_profile_string(section, entry, to_store); +//#else // write the entry. bool to_return = _parser->put(section, entry, to_store); // schedule file write. write_ini_file(); return to_return; -#endif +//#endif } bool ini_configurator::get(const astring §ion, const astring &entry, astring &found) { -#ifndef __WIN32__ +#if defined(__UNIX__) || defined(__GNU_WINDOWS__) return _parser->get(section, entry, found); #else flexichar temp_buffer[MAXIMUM_LINE_INI_CONFIG]; @@ -260,7 +264,7 @@ bool ini_configurator::get(const astring §ion, const astring &entry, bool ini_configurator::get_section(const astring §ion, string_table &info) { FUNCDEF("get_section"); -#ifndef __WIN32__ +#if defined(__UNIX__) || defined(__GNU_WINDOWS__) return _parser->get_section(section, info); #else info.reset(); @@ -302,7 +306,8 @@ bool ini_configurator::get_section(const astring §ion, string_table &info) bool ini_configurator::put_section(const astring §ion, const string_table &info) { -#ifdef __WIN32__ +/* +#ifdef _MSC_VER variable_tokenizer parser("\1", "="); parser.table() = info; astring flat = parser.text_form(); @@ -322,21 +327,23 @@ bool ini_configurator::put_section(const astring §ion, return WritePrivateProfileSection(to_unicode_temp(section), to_unicode_temp(flat), to_unicode_temp(name())); #else +*/ // write the section. bool to_return = _parser->put_section(section, info); // schedule file write. write_ini_file(); return to_return; -#endif +//#endif } -#ifdef __WIN32__ +/* +#ifdef _MSC_VER bool ini_configurator::put_profile_string(const astring §ion, const astring &entry, const astring &to_store) { return bool(WritePrivateProfileString(to_unicode_temp(section), - entry.length() ? (flexichar *)to_unicode_temp(entry) : NIL, - to_store.length() ? (flexichar *)to_unicode_temp(to_store) : NIL, + entry.length() ? (flexichar *)to_unicode_temp(entry) : NULL_POINTER, + to_store.length() ? (flexichar *)to_unicode_temp(to_store) : NULL_POINTER, to_unicode_temp(name()))); } @@ -345,12 +352,13 @@ void ini_configurator::get_profile_string(const astring §ion, flexichar *return_buffer, int buffer_size) { GetPrivateProfileString(section.length() ? - (flexichar *)to_unicode_temp(section) : NIL, - entry.length() ? (flexichar *)to_unicode_temp(entry) : NIL, + (flexichar *)to_unicode_temp(section) : NULL_POINTER, + entry.length() ? (flexichar *)to_unicode_temp(entry) : NULL_POINTER, to_unicode_temp(default_value), return_buffer, buffer_size, to_unicode_temp(name())); } #endif +*/ } //namespace.