X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Ffolder.c;h=b332af06110b092534c4e33a81f54318457f0047;hp=2cc9bde689d0a51d44564b75bf910e5394f53970;hb=0cebd8284370988c8b1807ef2544bd80804d074e;hpb=6c42153ad9362cc676ea66563bf400d7511b3b68 diff --git a/uip/folder.c b/uip/folder.c index 2cc9bde..b332af0 100644 --- a/uip/folder.c +++ b/uip/folder.c @@ -12,6 +12,7 @@ */ #include +#include #include static struct swit switches[] = { @@ -66,8 +67,6 @@ static struct swit switches[] = { { NULL, 0 } }; -extern int errno; - static int fshort = 0; /* output only folder names */ static int fcreat = 0; /* should we ask to create new folders? */ static int fpack = 0; /* are we packing the folder? */ @@ -122,7 +121,6 @@ static int maxFolderInfo; static void dodir (char *); static int get_folder_info (char *, char *); static void print_folders (void); -static int num_digits (int); static int sfold (struct msgs *, char *); static void addir (char *); static void addfold (char *); @@ -355,13 +353,11 @@ main (int argc, char **argv) /* Allocate initial space to record folder names */ maxfolders = NUMFOLDERS; - if ((folds = malloc (maxfolders * sizeof(char *))) == NULL) - adios (NULL, "unable to allocate storage for folder names"); + folds = mh_xmalloc (maxfolders * sizeof(char *)); /* Allocate initial space to record folder information */ maxFolderInfo = NUMFOLDERS; - if ((fi = malloc (maxFolderInfo * sizeof(*fi))) == NULL) - adios (NULL, "unable to allocate storage for folder info"); + fi = mh_xmalloc (maxFolderInfo * sizeof(*fi)); /* * Scan the folders @@ -396,22 +392,7 @@ main (int argc, char **argv) * Check if folder exists. If not, then see if * we should create it, or just exit. */ - if (stat (strncpy (buf, m_maildir (folder), sizeof(buf)), &st) == -1) { - if (errno != ENOENT) - adios (buf, "error on folder"); - if (fcreat == 0) { - /* ask before creating folder */ - cp = concat ("Create folder \"", buf, "\"? ", NULL); - if (!getanswer (cp)) - done (1); - free (cp); - } else if (fcreat == -1) { - /* do not create, so exit */ - done (1); - } - if (!makedir (buf)) - adios (NULL, "unable to create folder %s", buf); - } + create_folder (m_maildir (folder), fcreat, done); if (get_folder_info (folder, msg) && argfolder) { /* update current folder */ @@ -472,8 +453,7 @@ get_folder_info (char *fold, char *msg) */ if (total_folders >= maxFolderInfo) { maxFolderInfo += NUMFOLDERS; - if ((fi = realloc (fi, maxFolderInfo * sizeof(*fi))) == NULL) - adios (NULL, "unable to re-allocate storage for folder info"); + fi = mh_xrealloc (fi, maxFolderInfo * sizeof(*fi)); } fi[i].name = fold; @@ -660,29 +640,6 @@ print_folders (void) } /* - * Calculate the number of digits in a nonnegative integer - */ -int -num_digits (int n) -{ - int ndigits = 0; - - /* Sanity check */ - if (n < 0) - adios (NULL, "oops, num_digits called with negative value"); - - if (n == 0) - return 1; - - while (n) { - n /= 10; - ndigits++; - } - - return ndigits; -} - -/* * Set the current message and sychronize sequences */ @@ -777,8 +734,7 @@ addfold (char *fold) /* if necessary, reallocate the space for folder names */ if (foldp >= maxfolders) { maxfolders += NUMFOLDERS; - if ((folds = realloc (folds, maxfolders * sizeof(char *))) == NULL) - adios (NULL, "unable to re-allocate storage for folder names"); + folds = mh_xrealloc (folds, maxfolders * sizeof(char *)); } cp = getcpy (fold); @@ -818,10 +774,6 @@ readonly_folders (void) char atrcur[BUFSIZ]; register struct node *np; - /* sanity check - check that context has been read */ - if (defpath == NULL) - adios (NULL, "oops, context hasn't been read yet"); - snprintf (atrcur, sizeof(atrcur), "atr-%s-", current); atrlen = strlen (atrcur);