#define streq(s1, s2) (strcmp (s1, s2) == 0)
-#if DEBUG
-# define xmalloc(size) malloc_wrap_debug(size, __FILE__, __LINE__)
-# define xcalloc(nmemb, size) calloc_wrap_debug(nmemb, size, __FILE__, __LINE__)
-# define xrealloc(ptr, size) realloc_wrap_debug(ptr, size, __FILE__, __LINE__)
-#else
+#if !DEBUG
# define xmalloc(size) malloc_wrap(size)
# define xcalloc(nmemb, size) calloc_wrap(nmemb, size)
# define xrealloc(ptr, size) realloc_wrap(ptr, size)
+#else
+# define xmalloc(size) malloc_wrap_debug(size, __FILE__, __LINE__)
+# define xcalloc(nmemb, size) calloc_wrap_debug(nmemb, size, __FILE__, __LINE__)
+# define xrealloc(ptr, size) realloc_wrap_debug(ptr, size, __FILE__, __LINE__)
#endif
#define free_null(ptr) free_wrap((void **)&ptr)
release_var (vars_list, stacked_vars, (void **)&ptr); \
} while (false)
-#define MEM_ALLOC_FAIL_DEBUG(file, line) do { \
- fprintf (stderr, "Memory allocation failure in source file %s, line %u\n", file, line); \
- exit (2); \
-} while (false)
-#define MEM_ALLOC_FAIL() do { \
+#if !DEBUG
+# define MEM_ALLOC_FAIL() do { \
fprintf (stderr, "%s: memory allocation failure\n", program_name); \
exit (2); \
} while (false)
+#else
+# define MEM_ALLOC_FAIL_DEBUG(file, line) do { \
+ fprintf (stderr, "Memory allocation failure in source file %s, line %u\n", file, line); \
+ exit (2); \
+} while (false)
+#endif
#define ABORT_TRACE() \
fprintf (stderr, "Aborting in source file %s, line %u\n", __FILE__, __LINE__); \
#define COLOR_SEP_CHAR '/'
-#define VERSION "0.53"
+#define VERSION "0.54"
typedef enum { false, true } bool;
static void print_line (bool, const struct color **, const char * const, unsigned int);
static void print_clean (const char *);
static void print_free_offsets (const char *, char ***, unsigned int);
+#if !DEBUG
static void *malloc_wrap (size_t);
static void *calloc_wrap (size_t, size_t);
static void *realloc_wrap (void *, size_t);
+#else
static void *malloc_wrap_debug (size_t, const char *, unsigned int);
static void *calloc_wrap_debug (size_t, size_t, const char *, unsigned int);
static void *realloc_wrap_debug (void *, size_t, const char *, unsigned int);
+#endif
static void free_wrap (void **);
static char *strdup_wrap (const char *);
static char *str_concat (const char *, const char *);
if (have_file)
{
+ const char *file_exists = color_string;
if (file_string)
- vfprintf_fail (formats[FMT_QUOTE], get_file_type (mode), color_string, "cannot be used as color string");
+ vfprintf_fail (formats[FMT_QUOTE], get_file_type (mode), file_exists, "cannot be used as color string");
else
{
if (VALID_FILE_TYPE (mode))
- vfprintf_fail (formats[FMT_QUOTE], get_file_type (mode), color_string, "must be preceeded by color string");
+ vfprintf_fail (formats[FMT_QUOTE], get_file_type (mode), file_exists, "must be preceeded by color string");
else
- vfprintf_fail (formats[FMT_QUOTE], get_file_type (mode), color_string, "is not a valid file type");
+ vfprintf_fail (formats[FMT_QUOTE], get_file_type (mode), file_exists, "is not a valid file type");
}
}
}
FILE *s;
const char *file = file_string;
struct stat sb;
- int errno, ret;
+ int ret;
errno = 0;
ret = lstat (file, &sb);
free_null (offsets);
}
+#if !DEBUG
static void *
malloc_wrap (size_t size)
{
MEM_ALLOC_FAIL ();
return p;
}
-
+#else
static void *
malloc_wrap_debug (size_t size, const char *file, unsigned int line)
{
MEM_ALLOC_FAIL_DEBUG (file, line);
return p;
}
+#endif
static void
free_wrap (void **ptr)