showdone;
void newtask(sqlite3 *db){
- char *cmd = malloc(MAXLINE*sizeof(char));
+ int len = 45+strlen(group)+strlen(task);
+ char *cmd = malloc(len*sizeof(char));
if (exists == 0){
sprintf(cmd,"%s (%i, '%s', '%s', 0);",INSERT,hash,task,group);
char *filepath(void){
char *dir = getenv("XDG_DATA_HOME");
- char *db = malloc(MAXLINE * sizeof(char));
+ char *database = malloc(MAXLINE * sizeof(char));
/* set dir to $HOME/.local/share if XDG isn't set */
if (!dir) {
if (err) error(DIRERR);
}
- sprintf(db,"%s/odot.db",dir);
+ sprintf(database,"%s/odot.db",dir);
+ free(dir);
- return db;
+ return database;
}
void checksame(char *task,char *oldgroup){
int err = 0;
sqlite3 *db;
- err = sqlite3_open(filepath(),&db);
+
+ char *dbpath = malloc(MAXLINE*sizeof(char));
+ dbpath = filepath();
+ err = sqlite3_open(dbpath,&db);
+ free(dbpath);
+
if (err < 0) sqlerror(db);
+
sqlcmd(db,BUILDTABLE,'c');
/* show all tasks if called alone */