summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2008-07-19 14:54:16 (UTC)
committer Michael Krelin <hacker@klever.net>2008-07-19 14:54:16 (UTC)
commit57a74ccfbdd7c1c419f069f999fb47cef53b6b12 (patch) (side-by-side diff)
tree25c83369ad35d0c0481ebf7bbdc2d09df6e108bb
parent8a24019a28e046189e15fdbade21d1a716edbb56 (diff)
downloadnapkin-57a74ccfbdd7c1c419f069f999fb47cef53b6b12.zip
napkin-57a74ccfbdd7c1c419f069f999fb47cef53b6b12.tar.gz
napkin-57a74ccfbdd7c1c419f069f999fb47cef53b6b12.tar.bz2
whitespace-only change
Signed-off-by: Michael Krelin <hacker@klever.net>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--src/db.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/db.cc b/src/db.cc
index 9ae5f8f..c350e68 100644
--- a/src/db.cc
+++ b/src/db.cc
@@ -1,83 +1,83 @@
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <cassert>
#include <napkin/exception.h>
#include "db.h"
#include "config.h"
namespace napkin {
extern const char *sql_bootstrap;
db_t::db_t() {
const char *h = getenv("HOME");
if(h) {
datadir = h;
datadir += "/."PACKAGE_NAME"/";
}else{
#if defined(HAVE_GET_CURRENT_DIR_NAME)
char *cwd = get_current_dir_name();
if(!cwd)
throw napkin::exception("failed to get_current_dir_name()");
datadir = cwd;
free(cwd);
#elif defined(HAVE_GETCWD)
{
char cwd[
# if defined(MAXPATH)
MAXPATH
# elif defined(MAXPATHLEN)
MAXPATHLEN
# else /* maxpath */
512
-#endif /* maxpath */
+# endif /* maxpath */
];
if(!getcwd(cwd,sizeof(cwd)))
throw napkin::exception("failed to getcwd()");
datadir = cwd;
}
#else /* get cwd */
# error dunno how to get current workdir
#endif /* get cwd */
datadir += "/."PACKAGE_NAME"/";
}
if(access(datadir.c_str(),R_OK|W_OK)
&& mkdir(datadir.c_str(),0700))
throw napkin::exception("no access to '"+datadir+"' directory");
open((datadir+PACKAGE_NAME".db").c_str());
assert(_D);
char **resp; int nr,nc; char *errm;
if(sqlite3_get_table(
_D,
"SELECT s_tobed FROM sleeps LIMIT 0",
&resp,&nr,&nc,&errm)!=SQLITE_OK) {
if(sqlite3_exec(_D,sql_bootstrap,NULL,NULL,&errm)!=SQLITE_OK)
throw napkin::exception(string("failed to bootstrap sqlite database: ")+errm);
}else
sqlite3_free_table(resp);
}
void db_t::store(const hypnodata_t& hd) {
sqlite::mem_t<char*> S = sqlite3_mprintf(
"INSERT INTO sleeps ("
"s_tobed,s_alarm,"
"s_window,s_data_a,"
"s_almost_awakes,"
"s_timezone"
") VALUES ("
"%Q,%Q,%d,%d,%Q,%ld"
")",
hd.w3c_to_bed().c_str(),
hd.w3c_alarm().c_str(),
hd.window,hd.data_a,
hd.w3c_almostawakes().c_str(),
timezone );
try {
exec(S);
}catch(sqlite::exception& se) {
if(se.rcode==SQLITE_CONSTRAINT)
throw exception_db_already("The record seems to be already in the database");
throw exception_db("Well, some error occured");
}