#include <log.h>
#include <note.h>
+#include <pio.h>
+#include <settings.h>
-static char *get_path(const char *uuid)
+static const char *NOTE_SUF = ".note";
+
+static char *get_default_path()
{
- char *home, *dir, *path;
+ char *home, *dir;
home = getenv("HOME");
sprintf(dir, "%s/%s", home, ".task");
mkdir(dir, 0777);
- path = malloc(strlen(dir) + 1 + strlen(uuid) + strlen(".note") + 1);
- sprintf(path, "%s/%s.note", dir, uuid);
+ return dir;
+}
+
+static char *get_path(const char *uuid)
+{
+ const char *sdir;
+ char *path, *dir;
+
+ sdir = settings_get_notes_dir();
+
+ if (sdir == NULL || *sdir == '\0') {
+ dir = get_default_path();
+ settings_set_notes_dir(dir);
+ } else {
+ dir = strdup(sdir);
+ }
+
+ mkdirs(dir, 0777);
+
+ path = malloc(strlen(dir) + 1 + strlen(uuid) + strlen(NOTE_SUF) + 1);
+ sprintf(path, "%s/%s%s", dir, uuid, NOTE_SUF);
free(dir);