[libpng16] Use nanosleep() instead of usleep() in contrib/gregbook/rpng2-x.c
because usleep() is deprecated.
diff --git a/ANNOUNCE b/ANNOUNCE
index 769069e..d6c9cd4 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -33,8 +33,11 @@
Add "#include <setjmp.h>" to contrib/tools/pngfix.c (John Bowler)
Version 1.6.14beta02 [September 14, 2014]
+ Use nanosleep() instead of usleep() in contrib/gregbook/rpng2-x.c
+ because usleep() is deprecated.
Define usleep() in contrib/gregbook/rpng2-x.c if not already defined
- in unistd.h; fixes error introduced in libpng-1.6.13.
+ in unistd.h and nanosleep() is not available; fixes error introduced
+ in libpng-1.6.13.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
diff --git a/CHANGES b/CHANGES
index ab508b8..712bc97 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4986,8 +4986,11 @@
Add "#include <setjmp.h>" to contrib/tools/pngfix.c (John Bowler)
Version 1.6.14beta02 [September 14, 2014]
+ Use nanosleep() instead of usleep() in contrib/gregbook/rpng2-x.c
+ because usleep() is deprecated.
Define usleep() in contrib/gregbook/rpng2-x.c if not already defined
- in unistd.h; fixes error introduced in libpng-1.6.13.
+ in unistd.h and nanosleep() is not available; fixes error introduced
+ in libpng-1.6.13.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
diff --git a/contrib/gregbook/rpng2-x.c b/contrib/gregbook/rpng2-x.c
index 6e02c89..cf37101 100644
--- a/contrib/gregbook/rpng2-x.c
+++ b/contrib/gregbook/rpng2-x.c
@@ -115,8 +115,15 @@
#include <X11/Xos.h>
#include <X11/keysym.h> /* defines XK_* macros */
-/* This is temporary until the code is rewritten to use nanosleep(). */
-#ifndef usleep
+#if _POSIX_C_SOURCE >= 199309L /* have nanosleep() */
+# undef usleep
+# define usleep(usec) { \
+ struct timespec ts; \
+ ts.tv_nsec = (usec) * 1000; \
+ nanosleep(&ts, NULL); }
+# endif
+
+#ifndef usleep /* have neither nanosleep() nor usleep() */
# define usleep(x) sleep(((x)+499999)/1000000)
#endif