From 1dedfc90f6eee7cad10f1a1ceb39a7a1c4dbd1b1 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 23 Oct 2011 12:05:13 -0300 Subject: xutil.c: remove duplicate copies, create new library libutil.a to contain xutil. We keep the lib/xutil.c version. As a consequence, also factor out _internal_error and associated macros. It might be overkill to make a new file error_util.c for this, but _internal_error does not really belong in database.cc. --- lib/Makefile.local | 5 +- lib/database.cc | 15 ------ lib/notmuch-private.h | 20 +------- lib/xutil.c | 134 -------------------------------------------------- lib/xutil.h | 55 --------------------- 5 files changed, 3 insertions(+), 226 deletions(-) delete mode 100644 lib/xutil.c delete mode 100644 lib/xutil.h (limited to 'lib') diff --git a/lib/Makefile.local b/lib/Makefile.local index be51eaa1..d58552c4 100644 --- a/lib/Makefile.local +++ b/lib/Makefile.local @@ -54,8 +54,7 @@ libnotmuch_c_srcs = \ $(dir)/message-file.c \ $(dir)/messages.c \ $(dir)/sha1.c \ - $(dir)/tags.c \ - $(dir)/xutil.c + $(dir)/tags.c libnotmuch_cxx_srcs = \ $(dir)/database.cc \ @@ -71,7 +70,7 @@ $(dir)/libnotmuch.a: $(libnotmuch_modules) $(call quiet,AR) rcs $@ $^ $(dir)/$(LIBNAME): $(libnotmuch_modules) notmuch.sym - $(call quiet,CXX $(CXXFLAGS)) $(libnotmuch_modules) $(FINAL_LIBNOTMUCH_LDFLAGS) $(LIBRARY_LINK_FLAG) -o $@ + $(call quiet,CXX $(CXXFLAGS)) $(libnotmuch_modules) $(FINAL_LIBNOTMUCH_LDFLAGS) $(LIBRARY_LINK_FLAG) -o $@ -L$(srcdir)/util -lutil notmuch.sym: $(srcdir)/$(dir)/notmuch.h $(libnotmuch_modules) sh $(srcdir)/$(lib)/gen-version-script.sh $< $(libnotmuch_modules) > $@ diff --git a/lib/database.cc b/lib/database.cc index e77fd536..88be9391 100644 --- a/lib/database.cc +++ b/lib/database.cc @@ -209,21 +209,6 @@ static prefix_t PROBABILISTIC_PREFIX[]= { { "folder", "XFOLDER"} }; -int -_internal_error (const char *format, ...) -{ - va_list va_args; - - va_start (va_args, format); - - fprintf (stderr, "Internal error: "); - vfprintf (stderr, format, va_args); - - exit (1); - - return 1; -} - const char * _find_prefix (const char *name) { diff --git a/lib/notmuch-private.h b/lib/notmuch-private.h index d3195305..0d3cc27e 100644 --- a/lib/notmuch-private.h +++ b/lib/notmuch-private.h @@ -47,6 +47,7 @@ NOTMUCH_BEGIN_DECLS #include #include "xutil.h" +#include "error_util.h" #pragma GCC visibility push(hidden) @@ -60,25 +61,6 @@ NOTMUCH_BEGIN_DECLS #define STRNCMP_LITERAL(var, literal) \ strncmp ((var), (literal), sizeof (literal) - 1) -/* There's no point in continuing when we've detected that we've done - * something wrong internally (as opposed to the user passing in a - * bogus value). - * - * Note that PRINTF_ATTRIBUTE comes from talloc.h - */ -int -_internal_error (const char *format, ...) PRINTF_ATTRIBUTE (1, 2); - -/* There's no point in continuing when we've detected that we've done - * something wrong internally (as opposed to the user passing in a - * bogus value). - * - * Note that __location__ comes from talloc.h. - */ -#define INTERNAL_ERROR(format, ...) \ - _internal_error (format " (%s).\n", \ - ##__VA_ARGS__, __location__) - #define unused(x) x __attribute__ ((unused)) #ifdef __cplusplus diff --git a/lib/xutil.c b/lib/xutil.c deleted file mode 100644 index 268225b8..00000000 --- a/lib/xutil.c +++ /dev/null @@ -1,134 +0,0 @@ -/* xutil.c - Various wrapper functions to abort on error. - * - * Copyright © 2009 Carl Worth - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see http://www.gnu.org/licenses/ . - * - * Author: Carl Worth - */ - -#include "notmuch-private.h" - -#include - -void * -xcalloc (size_t nmemb, size_t size) -{ - void *ret; - - ret = calloc (nmemb, size); - if (ret == NULL) { - fprintf (stderr, "Out of memory.\n"); - exit (1); - } - - return ret; -} - -void * -xmalloc (size_t size) -{ - void *ret; - - ret = malloc (size); - if (ret == NULL) { - fprintf (stderr, "Out of memory.\n"); - exit (1); - } - - return ret; -} - -void * -xrealloc (void *ptr, size_t size) -{ - void *ret; - - ret = realloc (ptr, size); - if (ret == NULL) { - fprintf (stderr, "Out of memory.\n"); - exit (1); - } - - return ret; -} - -char * -xstrdup (const char *s) -{ - char *ret; - - ret = strdup (s); - if (ret == NULL) { - fprintf (stderr, "Out of memory.\n"); - exit (1); - } - - return ret; -} - -char * -xstrndup (const char *s, size_t n) -{ - char *ret; - - if (strlen (s) <= n) - n = strlen (s); - - ret = malloc (n + 1); - if (ret == NULL) { - fprintf (stderr, "Out of memory.\n"); - exit (1); - } - memcpy (ret, s, n); - ret[n] = '\0'; - - return ret; -} - -void -xregcomp (regex_t *preg, const char *regex, int cflags) -{ - int rerr; - - rerr = regcomp (preg, regex, cflags); - if (rerr) { - size_t error_size = regerror (rerr, preg, NULL, 0); - char *error = xmalloc (error_size); - - regerror (rerr, preg, error, error_size); - INTERNAL_ERROR ("compiling regex %s: %s\n", - regex, error); - } -} - -int -xregexec (const regex_t *preg, const char *string, - size_t nmatch, regmatch_t pmatch[], int eflags) -{ - unsigned int i; - int rerr; - - rerr = regexec (preg, string, nmatch, pmatch, eflags); - if (rerr) - return rerr; - - for (i = 0; i < nmatch; i++) { - if (pmatch[i].rm_so == -1) - INTERNAL_ERROR ("matching regex against %s: Sub-match %d not found\n", - string, i); - } - - return 0; -} diff --git a/lib/xutil.h b/lib/xutil.h deleted file mode 100644 index fd77f733..00000000 --- a/lib/xutil.h +++ /dev/null @@ -1,55 +0,0 @@ -/* xutil.h - Various wrapper functions to abort on error. - * - * Copyright © 2009 Carl Worth - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see http://www.gnu.org/licenses/ . - * - * Author: Carl Worth - */ - -#ifndef NOTMUCH_XUTIL_H -#define NOTMUCH_XUTIL_H - -#include -#include -#include - -#pragma GCC visibility push(hidden) - -/* xutil.c */ -void * -xcalloc (size_t nmemb, size_t size); - -void * -xmalloc (size_t size); - -void * -xrealloc (void *ptrr, size_t size); - -char * -xstrdup (const char *s); - -char * -xstrndup (const char *s, size_t n); - -void -xregcomp (regex_t *preg, const char *regex, int cflags); - -int -xregexec (const regex_t *preg, const char *string, - size_t nmatch, regmatch_t pmatch[], int eflags); - -#pragma GCC visibility pop - -#endif -- cgit v1.2.3