errx is always called with eval being 1, so it's really just an overcomplicated
fprintf + exit. More importantly, err.h is not provided by Solaris 9.

Part 1 of a fix for #6611.

Signed-off-by: Jesse Adkins <[email protected]>
---
 configure.ac  |    1 -
 main.c        |   22 +++++++++++++++++-----
 rendercheck.h |   21 ++++-----------------
 tests.c       |   18 +++++++++---------
 4 files changed, 30 insertions(+), 32 deletions(-)

diff --git a/configure.ac b/configure.ac
index a71e53f..6470a5d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -24,7 +24,6 @@ AC_PROG_SED
 
 # Checks for header files.
 AC_HEADER_STDC
-AC_CHECK_HEADERS([err.h])
 
 AC_ARG_ENABLE(werror,        AS_HELP_STRING([--enable-werror],
                                  [Treat warnings as errors (default: 
disabled)]),
diff --git a/main.c b/main.c
index 99d8441..17252fb 100644
--- a/main.c
+++ b/main.c
@@ -43,6 +43,18 @@ int pixmap_move_iter = 1;
 int win_width = 40;
 int win_height = 40;
 
+void fatal(const char *fmt, ...)
+{
+    va_list args;
+
+    va_start(args, fmt);
+    fprintf(stderr, "Fatal Error: ");
+    fprintf(stderr, fmt, args);
+    fputc('\n', stderr);
+    va_end(args);
+    exit(EXIT_FAILURE);
+}
+
 int
 bit_count(int i)
 {
@@ -178,7 +190,7 @@ int main(int argc, char **argv)
                        format_whitelist = malloc(sizeof(char *) *
                            format_whitelist_len);
                        if (format_whitelist == NULL)
-                               errx(1, "malloc");
+                               fatal("malloc");
 
                        /* Now the list is separated by \0s, so use strlen to
                         * step between entries.
@@ -249,16 +261,16 @@ int main(int argc, char **argv)
 
        dpy = XOpenDisplay(display);
        if (dpy == NULL)
-               errx(1, "Couldn't open display.");
+               fatal("Couldn't open display.");
        if (is_sync)
                XSynchronize(dpy, 1);
 
        if (!XRenderQueryExtension(dpy, &i, &i))
-               errx(1, "Render extension missing.");
+               fatal("Render extension missing.");
 
        XRenderQueryVersion(dpy, &maj, &min);
        if (maj != 0 || min < 1)
-               errx(1, "Render extension version too low (%d.%d).", maj, min);
+               fatal("Render extension version too low (%d.%d).", maj, min);
 
        printf("Render extension version %d.%d\n", maj, min);
 
@@ -282,7 +294,7 @@ int main(int argc, char **argv)
            window.format, 0, NULL);
        window.name = (char *)malloc(20);
        if (window.name == NULL)
-               errx(1, "malloc error");
+               fatal("malloc error");
        describe_format(window.name, 20, window.format);
        printf("Window format: %s\n", window.name);
        strncat(window.name, " window", 20);
diff --git a/rendercheck.h b/rendercheck.h
index bb35c5e..6a5a0a7 100644
--- a/rendercheck.h
+++ b/rendercheck.h
@@ -23,23 +23,7 @@
 #include <X11/Xlib.h>
 #include <X11/extensions/Xrender.h>
 
-#if HAVE_ERR_H
-# include <err.h>
-#else
-# include <stdarg.h>
-# include <stdio.h>
-# include <stdlib.h>
-static inline void errx(int eval, const char *fmt, ...) {
-    va_list args;
-
-    va_start(args, fmt);
-    fprintf(stderr, "Fatal Error: ");
-    fprintf(stderr, fmt, args);
-    fprintf(stderr, "\n", args);
-    va_end(args);
-    exit(eval);
-}
-#endif
+#include <stdarg.h>
 
 #define min(a, b) (a < b ? a : b)
 #define max(a, b) (a > b ? a : b)
@@ -101,6 +85,9 @@ describe_format(char *desc, int len, XRenderPictFormat 
*format);
 int
 bit_count(int i);
 
+void
+fatal(const char *fmt, ...);
+
 /* tests.c */
 void
 color_correct(picture_info *pi, color4d *color);
diff --git a/tests.c b/tests.c
index 47a10dc..73b259a 100644
--- a/tests.c
+++ b/tests.c
@@ -215,7 +215,7 @@ create_formats_list(Display *dpy)
 
     format_list = malloc(sizeof(XRenderPictFormat *) * nformats_allocated);
     if (format_list == NULL)
-       errx(1, "malloc error");
+       fatal("malloc error");
     nformats = 0;
 
     argb32index = -1;
@@ -228,7 +228,7 @@ create_formats_list(Display *dpy)
            format_list = realloc(format_list, sizeof(XRenderPictFormat *) *
                nformats_allocated);
            if (format_list == NULL)
-               errx(1, "realloc error");
+               fatal("realloc error");
        }
 
        format_list[nformats] = XRenderFindFormat(dpy, PictFormatType, &templ,
@@ -277,7 +277,7 @@ create_formats_list(Display *dpy)
        nformats++;
     }
     if (argb32index == -1) {
-       errx(1, "required ARGB32 format not found");
+       fatal("required ARGB32 format not found");
     }
 }
 
@@ -295,7 +295,7 @@ do_tests(Display *dpy, picture_info *win)
        num_dests = nformats;
        dests = (picture_info *)malloc(num_dests * sizeof(dests[0]));
        if (dests == NULL)
-               errx(1, "malloc error");
+               fatal("malloc error");
 
        for (i = 0; i < num_dests; i++) {
                dests[i].format = format_list[i];
@@ -306,14 +306,14 @@ do_tests(Display *dpy, picture_info *win)
 
                dests[i].name = (char *)malloc(20);
                if (dests[i].name == NULL)
-                       errx(1, "malloc error");
+                       fatal("malloc error");
                describe_format(dests[i].name, 20, dests[i].format);
        }
 
        pictures_1x1 = (picture_info *)malloc(num_colors * nformats *
            sizeof(picture_info));
        if (pictures_1x1 == NULL)
-               errx(1, "malloc error");
+               fatal("malloc error");
 
        for (i = 0; i < num_colors * nformats; i++) {
                XRenderPictureAttributes pa;
@@ -329,7 +329,7 @@ do_tests(Display *dpy, picture_info *win)
 
                pictures_1x1[i].name = (char *)malloc(20);
                if (pictures_1x1[i].name == NULL)
-                       errx(1, "malloc error");
+                       fatal("malloc error");
                sprintf(pictures_1x1[i].name, "1x1R ");
                describe_format(pictures_1x1[i].name +
                    strlen(pictures_1x1[i].name), 20 -
@@ -349,7 +349,7 @@ do_tests(Display *dpy, picture_info *win)
        pictures_10x10 = (picture_info *)malloc(num_colors * nformats *
            sizeof(picture_info));
        if (pictures_10x10 == NULL)
-               errx(1, "malloc error");
+               fatal("malloc error");
 
        for (i = 0; i < num_colors * nformats; i++) {
                XRenderPictureAttributes pa;
@@ -365,7 +365,7 @@ do_tests(Display *dpy, picture_info *win)
 
                pictures_10x10[i].name = (char *)malloc(20);
                if (pictures_10x10[i].name == NULL)
-                       errx(1, "malloc error");
+                       fatal("malloc error");
                sprintf(pictures_10x10[i].name, "10x10 ");
                describe_format(pictures_10x10[i].name +
                    strlen(pictures_10x10[i].name), 20 -
-- 
1.7.1

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to