aboutsummaryrefslogtreecommitdiffhomepage
path: root/notmuch.c
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2009-10-26 15:17:10 -0700
committerGravatar Carl Worth <cworth@cworth.org>2009-10-26 15:17:10 -0700
commit8e96a87fff4d34a154d1456e9ad47e7b0c322d54 (patch)
tree7b95e88500f85cfbb7f19c77ee73870fac51e1a2 /notmuch.c
parent94f01d9de914b609e1f02385092b82fd61ca73b5 (diff)
Remove all calls to g_strdup_printf
Replacing them with calls to talloc_asprintf if possible, otherwise to asprintf (with it's painful error-handling leaving the pointer undefined).
Diffstat (limited to 'notmuch.c')
-rw-r--r--notmuch.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/notmuch.c b/notmuch.c
index bfcc2f6a..fd0e0b25 100644
--- a/notmuch.c
+++ b/notmuch.c
@@ -41,8 +41,6 @@
#include <talloc.h>
-#include <glib.h> /* g_strdup_printf */
-
#define unused(x) x __attribute__ ((unused))
/* There's no point in continuing when we've detected that we've done
@@ -236,7 +234,7 @@ add_files_recursive (notmuch_database_t *notmuch,
continue;
}
- next = g_strdup_printf ("%s/%s", path, entry->d_name);
+ next = talloc_asprintf (notmuch, "%s/%s", path, entry->d_name);
if (stat (next, st)) {
fprintf (stderr, "Error reading %s: %s\n",
@@ -289,7 +287,7 @@ add_files_recursive (notmuch_database_t *notmuch,
ret = status;
}
- free (next);
+ talloc_free (next);
next = NULL;
}
@@ -299,7 +297,7 @@ add_files_recursive (notmuch_database_t *notmuch,
DONE:
if (next)
- free (next);
+ talloc_free (next);
if (entry)
free (entry);
if (dir)
@@ -342,7 +340,7 @@ static void
count_files (const char *path, int *count)
{
DIR *dir;
- struct dirent *entry, *e;
+ struct dirent *e, *entry = NULL;
int entry_length;
int err;
char *next;
@@ -353,7 +351,7 @@ count_files (const char *path, int *count)
if (dir == NULL) {
fprintf (stderr, "Warning: failed to open directory %s: %s\n",
path, strerror (errno));
- return;
+ goto DONE;
}
entry_length = offsetof (struct dirent, d_name) +
@@ -366,7 +364,7 @@ count_files (const char *path, int *count)
fprintf (stderr, "Error reading directory: %s\n",
strerror (errno));
free (entry);
- return;
+ goto DONE;
}
if (e == NULL)
@@ -384,7 +382,12 @@ count_files (const char *path, int *count)
continue;
}
- next = g_strdup_printf ("%s/%s", path, entry->d_name);
+ if (asprintf (&next, "%s/%s", path, entry->d_name) == -1) {
+ next = NULL;
+ fprintf (stderr, "Error descending from %s to %s: Out of memory\n",
+ path, entry->d_name);
+ continue;
+ }
stat (next, &st);
@@ -401,7 +404,9 @@ count_files (const char *path, int *count)
free (next);
}
- free (entry);
+ DONE:
+ if (entry)
+ free (entry);
closedir (dir);
}