X-Git-Url: https://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fnote.c;h=0097d33647f5ec641c4029019b4d620a249602c1;hb=64d52e239f715717646357783d01ff8650dbdb2d;hp=77f98cfa48b9debec6e8fb74cec0b4a4c2f19297;hpb=2cf9ca6ed6eca3a02209f58ab86d663d7cfbf710;p=ptask.git diff --git a/src/note.c b/src/note.c index 77f98cf..0097d33 100644 --- a/src/note.c +++ b/src/note.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012-2013 jeanfi@gmail.com + * Copyright (C) 2012-2016 jeanfi@gmail.com * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -25,10 +25,14 @@ #include #include +#include +#include -static char *get_default_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"); @@ -41,17 +45,31 @@ static char *get_default_path(const char *uuid) 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); - - free(dir); - - return path; + return dir; } static char *get_path(const char *uuid) { - return get_default_path(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); + + return path; } void note_put(const char *uuid, const char *note)