X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Futils.c;h=515c9a08154145717082d8645aae5c5098cf6f26;hp=1cd3dc93f6a1879a3ed9ca7b5b66b51d51c6154e;hb=5ba9c2f13fedf1d8d6ed907ef1f505616290efaa;hpb=d39e2c447b0d163a5a63f480b23d06edb7a73aa0 diff --git a/sbr/utils.c b/sbr/utils.c index 1cd3dc9..515c9a0 100644 --- a/sbr/utils.c +++ b/sbr/utils.c @@ -11,6 +11,9 @@ #include #include #include +#include +#include +#include /* ** We allocate space for messages (msgs array) @@ -27,11 +30,11 @@ mh_xmalloc(size_t size) void *memory; if (size == 0) - adios(NULL, "Tried to malloc 0 bytes"); + adios(EX_SOFTWARE, NULL, "Tried to malloc 0 bytes"); memory = malloc(size); if (!memory) - adios(NULL, "Malloc failed"); + adios(EX_OSERR, NULL, "Malloc failed"); return memory; } @@ -45,15 +48,16 @@ mh_xrealloc(void *ptr, size_t size) void *memory; /* Some non-POSIX realloc()s don't cope with realloc(NULL,sz) */ - if (!ptr) + if (!ptr) { return mh_xmalloc(size); + } if (size == 0) - adios(NULL, "Tried to realloc 0bytes"); + adios(EX_SOFTWARE, NULL, "Tried to realloc 0 bytes"); memory = realloc(ptr, size); if (!memory) - adios(NULL, "Realloc failed"); + adios(EX_OSERR, NULL, "Realloc failed"); return memory; } @@ -65,7 +69,7 @@ mh_xrealloc(void *ptr, size_t size) char * pwd(void) { - register char *cp; + char *cp; static char curwd[PATH_MAX]; if (!getcwd(curwd, PATH_MAX)) { @@ -124,30 +128,6 @@ add(char *s2, char *s1) return cp; } -/* -** folder_exists -** Check to see if a folder exists. -*/ -int -folder_exists(char *folder) -{ - struct stat st; - int exists = 0; - - if (stat(folder, &st) == -1) { - /* - ** The folder either doesn't exist, or we hit an error. - ** Either way return a failure. - */ - exists = 0; - } else { - /* We can see a folder with the right name */ - exists = 1; - } - - return exists; -} - /* ** create_folder @@ -162,19 +142,19 @@ create_folder(char *folder, int autocreate, void (*done_callback)(int)) if (stat(folder, &st) == -1) { if (errno != ENOENT) - adios(folder, "error on folder"); + adios(EX_IOERR, folder, "error on folder"); if (autocreate == 0) { /* ask before creating folder */ cp = concat("Create folder \"", folder, "\"? ", NULL); if (!getanswer(cp)) - done_callback(1); + done_callback(EX_CANTCREAT); free(cp); } else if (autocreate == -1) { /* do not create, so exit */ - done_callback(1); + done_callback(EX_CANTCREAT); } if (!makedir(folder)) - adios(NULL, "unable to create folder %s", folder); + adios(EX_CANTCREAT, NULL, "unable to create folder %s", folder); } } @@ -189,7 +169,7 @@ num_digits(int n) /* Sanity check */ if (n < 0) - adios(NULL, "oops, num_digits called with negative value"); + adios(EX_SOFTWARE, NULL, "oops, num_digits called with negative value"); if (n == 0) return 1; @@ -215,19 +195,3 @@ app_msgarg(struct msgs_array *msgs, char *cp) (msgs->max+=MAXMSGS)*sizeof(*msgs->msgs)); msgs->msgs[msgs->size++] = cp; } - -/* Open a form or components file */ -int -open_form(char **form, char *def) -{ - int in; - if (*form) { - if ((in = open(etcpath(*form), O_RDONLY)) == NOTOK) - adios(*form, "unable to open form file"); - } else { - if ((in = open(etcpath(def), O_RDONLY)) == NOTOK) - adios(def, "unable to open default components file"); - *form = def; - } - return in; -}