summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-04-19 07:50:02 +0000
committerDana Jansens <danakj@orodu.net>2002-04-19 07:50:02 +0000
commit7440ad2e6fe345d0fbc037c690913705bc351e68 (patch)
treee13b5b835e188a9c3f8a28a7b9b3850ee0def97e
parent940c1f614fa380a9153c3b81d0614201b27957c2 (diff)
starting openbox without an rc file now works. it makes an empty Xrm db instead of crashing :)
-rw-r--r--src/Resource.cc7
-rw-r--r--src/Resource.h1
-rw-r--r--src/openbox.cc2
3 files changed, 9 insertions, 1 deletions
diff --git a/src/Resource.cc b/src/Resource.cc
index cff9bd38..2a678f89 100644
--- a/src/Resource.cc
+++ b/src/Resource.cc
@@ -85,6 +85,13 @@ bool Resource::load() {
return true;
}
+void Resource::create() {
+ if (m_database != NULL)
+ XrmDestroyDatabase(m_database);
+ m_modified = false;
+ ASSERT(NULL != (m_database = XrmGetStringDatabase("")));
+}
+
void Resource::setValue(const std::string &rname, bool value) {
ASSERT(m_database != NULL);
diff --git a/src/Resource.h b/src/Resource.h
index 726755f3..7d792494 100644
--- a/src/Resource.h
+++ b/src/Resource.h
@@ -50,6 +50,7 @@ public:
void save();
bool load();
+ void create();
void setValue(const std::string &rname, bool value);
void setValue(const std::string &rname, int value);
diff --git a/src/openbox.cc b/src/openbox.cc
index dff68102..86baec6e 100644
--- a/src/openbox.cc
+++ b/src/openbox.cc
@@ -1001,7 +1001,7 @@ void Openbox::save() {
void Openbox::load() {
if (!config.load())
- return;
+ config.create();
std::string s;
long l;