X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Futils.c;h=2a7a1ccfb150ac67826d8b23abb0a953711f6209;hp=8741b2086f7a023f01b1910d3ff451625b1bed2d;hb=08aa8c17c3241bb5c6a997ed2e01e25a4d0089ce;hpb=1513f7668c494c4583141d6115669b7198c14556 diff --git a/sbr/utils.c b/sbr/utils.c index 8741b20..2a7a1cc 100644 --- a/sbr/utils.c +++ b/sbr/utils.c @@ -12,6 +12,7 @@ #include #include #include +#include /* * Safely call malloc @@ -111,3 +112,32 @@ add (char *s2, char *s1) return cp; } + +/* + * create_folder + * Check to see if a folder exists, if not, prompt the user to create + * it. + */ +void create_folder(char *folder, int autocreate, void (*done_callback)()) +{ + struct stat st; + extern int errno; + char *cp; + + if (stat (folder, &st) == -1) { + if (errno != ENOENT) + adios (folder, "error on folder"); + if (autocreate == 0) { + /* ask before creating folder */ + cp = concat ("Create folder \"", folder, "\"? ", NULL); + if (!getanswer (cp)) + done_callback (1); + free (cp); + } else if (autocreate == -1) { + /* do not create, so exit */ + done_callback (1); + } + if (!makedir (folder)) + adios (NULL, "unable to create folder %s", folder); + } +}