Implement Env util class
authorPeng Huang <shawn.p.huang@gmail.com>
Mon, 28 Dec 2009 13:23:17 +0000 (21:23 +0800)
committerPeng Huang <shawn.p.huang@gmail.com>
Fri, 1 Jan 2010 11:10:08 +0000 (19:10 +0800)
src/Database.cc
src/Util.h

index b955134..7207496 100644 (file)
@@ -137,7 +137,7 @@ Database::initUserDatabase (const gchar *userdb)
     m_sql << "INSERT OR IGNORE INTO userdb.desc VALUES " << "('version', '1.2.0');\n"
           << "INSERT OR IGNORE INTO userdb.desc VALUES " << "('uuid', '" << UUID () << "');\n"
           << "INSERT OR IGNORE INTO userdb.desc VALUES " << "('hostname', '" << Hostname () << "');\n"
-          << "INSERT OR IGNORE INTO userdb.desc VALUES " << "('username', '" << getenv ("USERNAME") << "');\n"
+          << "INSERT OR IGNORE INTO userdb.desc VALUES " << "('username', '" << Env ("USERNAME") << "');\n"
           << "INSERT OR IGNORE INTO userdb.desc VALUES " << "('create-time', datetime());\n"
           << "INSERT OR IGNORE INTO userdb.desc VALUES " << "('attach-time', datetime());\n";
 
index aaa0178..836e8f3 100644 (file)
@@ -3,6 +3,8 @@
 
 #include <uuid/uuid.h>
 #include <sys/utsname.h>
+#include <stdlib.h>
+#include "String.h"
 
 namespace PY {
 
@@ -40,6 +42,18 @@ public:
     }
 };
 
+class Env : public String {
+public:
+    Env (const gchar *name) {
+        gchar *str;
+        str = getenv (name);
+        assign (str != NULL ? str : "");
+    }
+    operator const gchar *(void) const {
+        return c_str();
+    }
+};
+
 class StaticString {
 public:
     StaticString (const gchar *str) : m_string (str) {}