summaryrefslogtreecommitdiffstats
path: root/libdimension
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2014-02-01 18:08:24 -0500
committerTavian Barnes <tavianator@tavianator.com>2014-02-03 13:17:25 -0500
commitb1fccd03798da1930755557cb4516526cc09bb15 (patch)
tree1e55b79bd9f8858d229e6194d714bf784a375a67 /libdimension
parenta93f1969c780b831d5c4cb5bde938320f2ffd763 (diff)
downloaddimension-b1fccd03798da1930755557cb4516526cc09bb15.tar.xz
Use strerror_r if available instead of sys_errlist.
Diffstat (limited to 'libdimension')
-rw-r--r--libdimension/bench/prtree.c6
-rw-r--r--libdimension/dimension-internal.h3
-rw-r--r--libdimension/error.c10
-rw-r--r--libdimension/platform.c4
-rw-r--r--libdimension/tests/error.c4
-rw-r--r--libdimension/tests/prtree.c8
-rw-r--r--libdimension/tests/warning-as-error.c4
-rw-r--r--libdimension/tests/warning.c4
8 files changed, 28 insertions, 15 deletions
diff --git a/libdimension/bench/prtree.c b/libdimension/bench/prtree.c
index 9c1a5b1..11d831b 100644
--- a/libdimension/bench/prtree.c
+++ b/libdimension/bench/prtree.c
@@ -17,11 +17,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
*************************************************************************/
-#include "../bvh.c"
-#include "../prtree.c"
+#include "../platform.c"
#include "../threads.c"
#include "../future.c"
-#include "../platform.c"
+#include "../bvh.c"
+#include "../prtree.c"
#include <sandglass.h>
#include <stdlib.h>
diff --git a/libdimension/dimension-internal.h b/libdimension/dimension-internal.h
index 3f71fb1..99345c0 100644
--- a/libdimension/dimension-internal.h
+++ b/libdimension/dimension-internal.h
@@ -1,5 +1,5 @@
/*************************************************************************
- * Copyright (C) 2009-2012 Tavian Barnes <tavianator@tavianator.com> *
+ * Copyright (C) 2009-2014 Tavian Barnes <tavianator@tavianator.com> *
* *
* This file is part of The Dimension Library. *
* *
@@ -27,7 +27,6 @@
#ifndef DIMENSION_INTERNAL_H
#define DIMENSION_INTERNAL_H
-#define _GNU_SOURCE
#include "dimension.h"
#include "refcount-internal.h"
#include "compiler-internal.h"
diff --git a/libdimension/error.c b/libdimension/error.c
index 371c7cd..1facc72 100644
--- a/libdimension/error.c
+++ b/libdimension/error.c
@@ -1,5 +1,5 @@
/*************************************************************************
- * Copyright (C) 2009-2011 Tavian Barnes <tavianator@tavianator.com> *
+ * Copyright (C) 2009-2014 Tavian Barnes <tavianator@tavianator.com> *
* *
* This file is part of The Dimension Library. *
* *
@@ -25,6 +25,7 @@
#include "dimension-internal.h"
#include <pthread.h>
+#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
@@ -95,7 +96,12 @@ dmnsn_report_error(bool die, const char *func, const char *file,
/* Print the value of errno */
if (err != 0) {
fprintf(stderr, "Last error: %d", err);
-#if DMNSN_SYS_ERRLIST
+#if DMNSN_STRERROR_R
+ char errbuf[256];
+ if (strerror_r(err, errbuf, 256) == 0) {
+ fprintf(stderr, " (%s)", errbuf);
+ }
+#elif DMNSN_SYS_ERRLIST
if (err >= 0 && err < sys_nerr) {
fprintf(stderr, " (%s)", sys_errlist[err]);
}
diff --git a/libdimension/platform.c b/libdimension/platform.c
index a27343d..d9d0e98 100644
--- a/libdimension/platform.c
+++ b/libdimension/platform.c
@@ -1,5 +1,5 @@
/*************************************************************************
- * Copyright (C) 2010-2011 Tavian Barnes <tavianator@tavianator.com> *
+ * Copyright (C) 2010-2014 Tavian Barnes <tavianator@tavianator.com> *
* *
* This file is part of The Dimension Library. *
* *
@@ -23,7 +23,9 @@
* Platform abstractions.
*/
+#define _GNU_SOURCE
#include "dimension-internal.h"
+
#if HAVE_UNISTD_H
#include <unistd.h>
#endif
diff --git a/libdimension/tests/error.c b/libdimension/tests/error.c
index 5a4d7fd..f4ffcee 100644
--- a/libdimension/tests/error.c
+++ b/libdimension/tests/error.c
@@ -1,5 +1,5 @@
/*************************************************************************
- * Copyright (C) 2009-2011 Tavian Barnes <tavianator@tavianator.com> *
+ * Copyright (C) 2009-2014 Tavian Barnes <tavianator@tavianator.com> *
* *
* This file is part of The Dimension Test Suite. *
* *
@@ -21,10 +21,12 @@
#include "dimension.h"
#include <stdlib.h>
+#include <errno.h>
int
main(void)
{
+ errno = ENOMEM;
dmnsn_error("This error is expected.");
return EXIT_SUCCESS;
}
diff --git a/libdimension/tests/prtree.c b/libdimension/tests/prtree.c
index 2642f48..b2a2be6 100644
--- a/libdimension/tests/prtree.c
+++ b/libdimension/tests/prtree.c
@@ -1,5 +1,5 @@
/*************************************************************************
- * Copyright (C) 2010-2012 Tavian Barnes <tavianator@tavianator.com> *
+ * Copyright (C) 2010-2014 Tavian Barnes <tavianator@tavianator.com> *
* *
* This file is part of The Dimension Test Suite. *
* *
@@ -21,11 +21,11 @@
* Basic tests of PR-trees
*/
-#include "../bvh.c"
-#include "../prtree.c"
+#include "../platform.c"
#include "../threads.c"
#include "../future.c"
-#include "../platform.c"
+#include "../bvh.c"
+#include "../prtree.c"
#include <stdio.h>
#include <stdlib.h>
diff --git a/libdimension/tests/warning-as-error.c b/libdimension/tests/warning-as-error.c
index ce274d3..dfc08d6 100644
--- a/libdimension/tests/warning-as-error.c
+++ b/libdimension/tests/warning-as-error.c
@@ -1,5 +1,5 @@
/*************************************************************************
- * Copyright (C) 2009-2011 Tavian Barnes <tavianator@gmail.com> *
+ * Copyright (C) 2009-2014 Tavian Barnes <tavianator@gmail.com> *
* *
* This file is part of The Dimension Test Suite. *
* *
@@ -21,11 +21,13 @@
#include "dimension.h"
#include <stdlib.h>
+#include <errno.h>
int
main(void)
{
dmnsn_die_on_warnings(true);
+ errno = ENOMEM;
dmnsn_warning("This warning is expected.");
return EXIT_SUCCESS;
}
diff --git a/libdimension/tests/warning.c b/libdimension/tests/warning.c
index aecedd5..4e5dd75 100644
--- a/libdimension/tests/warning.c
+++ b/libdimension/tests/warning.c
@@ -1,5 +1,5 @@
/*************************************************************************
- * Copyright (C) 2009-2011 Tavian Barnes <tavianator@tavianator.com> *
+ * Copyright (C) 2009-2014 Tavian Barnes <tavianator@tavianator.com> *
* *
* This file is part of The Dimension Test Suite. *
* *
@@ -21,10 +21,12 @@
#include "dimension.h"
#include <stdlib.h>
+#include <errno.h>
int
main(void)
{
+ errno = ENOMEM;
dmnsn_warning("This warning is expected.");
return EXIT_SUCCESS;
}