X-Git-Url: https://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fnote.c;h=247d8d9a4e7eec80aaf2ba1888032f0ab848f0c2;hb=d90d80c49709335e9101657d1a82cdd964e14c40;hp=c5b225a563b519cd080df6d631caee4766b522ea;hpb=2306c86fb2ec18c15e04a7373f28c8b438d78271;p=ptask.git diff --git a/src/note.c b/src/note.c index c5b225a..247d8d9 100644 --- a/src/note.c +++ b/src/note.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2012 jeanfi@gmail.com + * Copyright (C) 2012-2013 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 @@ -23,16 +23,21 @@ #include #include +#include #include +#include +#include -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"); if (!home) { - fprintf(stderr, "HOME environment variable not defined\n"); + log_err("HOME environment variable not defined"); return NULL; } @@ -40,8 +45,27 @@ static char *get_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); + 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); @@ -58,7 +82,7 @@ void note_put(const char *uuid, const char *note) if (!path) return ; - printf("note_put %s %s %s\n", path, uuid, note); + log_debug("note_put %s %s %s", path, uuid, note); f = fopen(path, "w"); @@ -66,7 +90,7 @@ void note_put(const char *uuid, const char *note) fwrite(note, 1, strlen(note), f); fclose(f); } else { - fprintf(stderr, "Failed to open %s\n", path); + log_err("Failed to open %s", path); } free(path); @@ -99,7 +123,7 @@ char *note_get(const char *uuid) } fclose(f); } else { - fprintf(stderr, "Failed to open %s\n", path); + log_debug("%s does not exist or cannot be opened", path); } return str;