[nemiver] Allow the ',' separator in NMV_LOG_DOMAINS env var
- From: Dodji Seketeli <dodji src gnome org>
- To: svn-commits-list gnome org
- Subject: [nemiver] Allow the ',' separator in NMV_LOG_DOMAINS env var
- Date: Tue, 2 Jun 2009 10:17:59 -0400 (EDT)
commit 8d00e17f0e5475f77f3323dd3f6b6b425c8429cc
Author: Dodji Seketeli <dodji redhat com>
Date: Tue Jun 2 15:44:22 2009 +0200
Allow the ',' separator in NMV_LOG_DOMAINS env var
* src/common/nmv-log-stream.cc:
(LogStream::Priv::load_enabled_domains_from_env): Allow
use of ',' and space as separators in the content of the
nmv_log_domains environment variable.
* src/common/nmv-ustring.cc,h:
(UString::split_set): New method.
---
src/common/nmv-log-stream.cc | 2 +-
src/common/nmv-ustring.cc | 28 +++++++++++++++++++++++++++-
src/common/nmv-ustring.h | 1 +
3 files changed, 29 insertions(+), 2 deletions(-)
diff --git a/src/common/nmv-log-stream.cc b/src/common/nmv-log-stream.cc
index c950962..f56c61b 100644
--- a/src/common/nmv-log-stream.cc
+++ b/src/common/nmv-log-stream.cc
@@ -299,7 +299,7 @@ struct LogStream::Priv
}
if (!str) {return;}
UString domains_str = Glib::locale_to_utf8 (str) ;
- enabled_domains_from_env = domains_str.split (" ") ;
+ enabled_domains_from_env = domains_str.split_set (" ,") ;
}
}
;//end LogStream::Priv
diff --git a/src/common/nmv-ustring.cc b/src/common/nmv-ustring.cc
index 3d6bf76..e3bb08f 100644
--- a/src/common/nmv-ustring.cc
+++ b/src/common/nmv-ustring.cc
@@ -201,7 +201,8 @@ UString::split (const UString &a_delim) const
for (gchar **cur = splited ; cur && *cur; ++cur) {
result.push_back (UString (*cur)) ;
}
- } catch (...) {}
+ } catch (...) {
+ }
if (splited) {
g_strfreev (splited) ;
@@ -209,6 +210,31 @@ UString::split (const UString &a_delim) const
return result ;
}
+vector<UString>
+UString::split_set (const UString &a_delim_set) const
+{
+ vector<UString> result ;
+ if (size () == Glib::ustring::size_type (0)) {return result;}
+
+ gint len = bytes () + 1 ;
+ CharSafePtr buf (new gchar[len]);
+ memset (buf.get (), 0, len);
+ memcpy (buf.get (), c_str (), bytes ());
+
+ gchar **splited = g_strsplit_set (buf.get (), a_delim_set.c_str (), -1);
+ try {
+ for (gchar **cur = splited ; cur && *cur; ++cur) {
+ result.push_back (UString (*cur));
+ }
+ } catch (...) {
+ }
+
+ if (splited) {
+ g_strfreev (splited);
+ }
+ return result;
+}
+
UString
UString::join (const vector<UString> &a_elements,
const UString &a_delim)
diff --git a/src/common/nmv-ustring.h b/src/common/nmv-ustring.h
index bb98e87..95e8bff 100644
--- a/src/common/nmv-ustring.h
+++ b/src/common/nmv-ustring.h
@@ -63,6 +63,7 @@ public:
UString& operator= (UString const &a_cstr) ;
bool operator! () const ;
vector<UString> split (const UString &a_delim) const ;
+ vector<UString> split_set (const UString &a_delim_set) const ;
static UString join (const vector<UString> &a_elements,
const UString &a_delim=" ") ;
static UString join (vector<UString>::const_iterator &a_from,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]