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),
ini_configurator::~ini_configurator()
{
WHACK(_ini_name);
-#ifdef __UNIX__
+#if defined(__UNIX__) || defined(__GNU_WINDOWS__)
WHACK(_parser);
#endif
}
void ini_configurator::refresh()
{
-#ifdef __UNIX__
+#if defined(__UNIX__) || defined(__GNU_WINDOWS__)
write_ini_file();
WHACK(_parser);
_parser = new ini_parser("", behavior());
// that don't include a directory name.
if (_where == OS_DIRECTORY) use_appdir = false;
if (_where == ALL_USERS_DIRECTORY) use_appdir = false;
-#ifndef __WIN32__
+#ifdef _MSC_VER
use_appdir = true;
#endif
// we must create the filename if they specified no directory at all.
_ini_name->basename());
}
}
-#ifdef __UNIX__
+#if defined(__UNIX__) || defined(__GNU_WINDOWS__)
// read in the file's contents.
read_ini_file();
#endif
//hmmm: refactor section_exists to use the sections call, if it's faser?
bool ini_configurator::section_exists(const astring §ion)
{
-#ifdef __WIN32__
+#ifdef _MSC_VER
string_table infos;
// heavy-weight call here...
return get_section(section, infos);
#endif
}
-#ifdef __UNIX__
+#if defined(__UNIX__) || defined(__GNU_WINDOWS__)
void ini_configurator::read_ini_file()
{
#ifdef DEBUG_INI_CONFIGURATOR
bool ini_configurator::delete_section(const astring §ion)
{
-#ifdef __WIN32__
+#ifdef _MSC_VER
return put_profile_string(section, "", "");
#else
// zap the section.
bool ini_configurator::delete_entry(const astring §ion, const astring &ent)
{
-#ifdef __WIN32__
+#ifdef _MSC_VER
return put_profile_string(section, ent, "");
#else
// zap the entry.
bool ini_configurator::put(const astring §ion, const astring &entry,
const astring &to_store)
{
-/// FUNCDEF("put");
+ FUNCDEF("put");
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__
+#ifdef _MSC_VER
return put_profile_string(section, entry, to_store);
#else
// write the entry.
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];
bool ini_configurator::get_section(const astring §ion, string_table &info)
{
-/// FUNCDEF("get_section");
-#ifndef __WIN32__
+ FUNCDEF("get_section");
+#if defined(__UNIX__) || defined(__GNU_WINDOWS__)
return _parser->get_section(section, info);
#else
info.reset();
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();
#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())));
}
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()));
}