summaryrefslogtreecommitdiffabout
path: root/src
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) (unidiff)
tree25c83369ad35d0c0481ebf7bbdc2d09df6e108bb /src
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 (limited to 'src') (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 @@
1#include <unistd.h> 1#include <unistd.h>
2#include <sys/stat.h> 2#include <sys/stat.h>
3#include <sys/types.h> 3#include <sys/types.h>
4#include <cassert> 4#include <cassert>
5#include <napkin/exception.h> 5#include <napkin/exception.h>
6#include "db.h" 6#include "db.h"
7 7
8#include "config.h" 8#include "config.h"
9 9
10namespace napkin { 10namespace napkin {
11 11
12 extern const char *sql_bootstrap; 12 extern const char *sql_bootstrap;
13 13
14 db_t::db_t() { 14 db_t::db_t() {
15 const char *h = getenv("HOME"); 15 const char *h = getenv("HOME");
16 if(h) { 16 if(h) {
17 datadir = h; 17 datadir = h;
18 datadir += "/."PACKAGE_NAME"/"; 18 datadir += "/."PACKAGE_NAME"/";
19 }else{ 19 }else{
20#if defined(HAVE_GET_CURRENT_DIR_NAME) 20#if defined(HAVE_GET_CURRENT_DIR_NAME)
21 char *cwd = get_current_dir_name(); 21 char *cwd = get_current_dir_name();
22 if(!cwd) 22 if(!cwd)
23 throw napkin::exception("failed to get_current_dir_name()"); 23 throw napkin::exception("failed to get_current_dir_name()");
24 datadir = cwd; 24 datadir = cwd;
25 free(cwd); 25 free(cwd);
26#elif defined(HAVE_GETCWD) 26#elif defined(HAVE_GETCWD)
27 { 27 {
28 char cwd[ 28 char cwd[
29# if defined(MAXPATH) 29# if defined(MAXPATH)
30 MAXPATH 30 MAXPATH
31# elif defined(MAXPATHLEN) 31# elif defined(MAXPATHLEN)
32 MAXPATHLEN 32 MAXPATHLEN
33# else /* maxpath */ 33# else /* maxpath */
34 512 34 512
35#endif /* maxpath */ 35# endif /* maxpath */
36 ]; 36 ];
37 if(!getcwd(cwd,sizeof(cwd))) 37 if(!getcwd(cwd,sizeof(cwd)))
38 throw napkin::exception("failed to getcwd()"); 38 throw napkin::exception("failed to getcwd()");
39 datadir = cwd; 39 datadir = cwd;
40 } 40 }
41#else /* get cwd */ 41#else /* get cwd */
42# error dunno how to get current workdir 42# error dunno how to get current workdir
43#endif /* get cwd */ 43#endif /* get cwd */
44 datadir += "/."PACKAGE_NAME"/"; 44 datadir += "/."PACKAGE_NAME"/";
45 } 45 }
46 if(access(datadir.c_str(),R_OK|W_OK) 46 if(access(datadir.c_str(),R_OK|W_OK)
47 && mkdir(datadir.c_str(),0700)) 47 && mkdir(datadir.c_str(),0700))
48 throw napkin::exception("no access to '"+datadir+"' directory"); 48 throw napkin::exception("no access to '"+datadir+"' directory");
49 open((datadir+PACKAGE_NAME".db").c_str()); 49 open((datadir+PACKAGE_NAME".db").c_str());
50 assert(_D); 50 assert(_D);
51 char **resp; int nr,nc; char *errm; 51 char **resp; int nr,nc; char *errm;
52 if(sqlite3_get_table( 52 if(sqlite3_get_table(
53 _D, 53 _D,
54 "SELECT s_tobed FROM sleeps LIMIT 0", 54 "SELECT s_tobed FROM sleeps LIMIT 0",
55 &resp,&nr,&nc,&errm)!=SQLITE_OK) { 55 &resp,&nr,&nc,&errm)!=SQLITE_OK) {
56 if(sqlite3_exec(_D,sql_bootstrap,NULL,NULL,&errm)!=SQLITE_OK) 56 if(sqlite3_exec(_D,sql_bootstrap,NULL,NULL,&errm)!=SQLITE_OK)
57 throw napkin::exception(string("failed to bootstrap sqlite database: ")+errm); 57 throw napkin::exception(string("failed to bootstrap sqlite database: ")+errm);
58 }else 58 }else
59 sqlite3_free_table(resp); 59 sqlite3_free_table(resp);
60 } 60 }
61 61
62 void db_t::store(const hypnodata_t& hd) { 62 void db_t::store(const hypnodata_t& hd) {
63 sqlite::mem_t<char*> S = sqlite3_mprintf( 63 sqlite::mem_t<char*> S = sqlite3_mprintf(
64 "INSERT INTO sleeps (" 64 "INSERT INTO sleeps ("
65 "s_tobed,s_alarm," 65 "s_tobed,s_alarm,"
66 "s_window,s_data_a," 66 "s_window,s_data_a,"
67 "s_almost_awakes," 67 "s_almost_awakes,"
68 "s_timezone" 68 "s_timezone"
69 ") VALUES (" 69 ") VALUES ("
70 "%Q,%Q,%d,%d,%Q,%ld" 70 "%Q,%Q,%d,%d,%Q,%ld"
71 ")", 71 ")",
72 hd.w3c_to_bed().c_str(), 72 hd.w3c_to_bed().c_str(),
73 hd.w3c_alarm().c_str(), 73 hd.w3c_alarm().c_str(),
74 hd.window,hd.data_a, 74 hd.window,hd.data_a,
75 hd.w3c_almostawakes().c_str(), 75 hd.w3c_almostawakes().c_str(),
76 timezone ); 76 timezone );
77 try { 77 try {
78 exec(S); 78 exec(S);
79 }catch(sqlite::exception& se) { 79 }catch(sqlite::exception& se) {
80 if(se.rcode==SQLITE_CONSTRAINT) 80 if(se.rcode==SQLITE_CONSTRAINT)
81 throw exception_db_already("The record seems to be already in the database"); 81 throw exception_db_already("The record seems to be already in the database");
82 throw exception_db("Well, some error occured"); 82 throw exception_db("Well, some error occured");
83 } 83 }