setup_once.h: HP-UX specific 'bool', 'false' and 'true' definitions.

Also reverts commit f254c59dc7
diff --git a/lib/setup_once.h b/lib/setup_once.h
index df28af2..e7104b0 100644
--- a/lib/setup_once.h
+++ b/lib/setup_once.h
@@ -305,6 +305,18 @@
 
 
 /*
+ * 'bool' stuff compatible with HP-UX headers.
+ */
+
+#if defined(__hpux) && !defined(HAVE_BOOL_T)
+   typedef int bool;
+#  define false 0
+#  define true 1
+#  define HAVE_BOOL_T
+#endif
+
+
+/*
  * 'bool' exists on platforms with <stdbool.h>, i.e. C99 platforms.
  * On non-C99 platforms there's no bool, so define an enum for that.
  * On C99 platforms 'false' and 'true' also exist. Enum uses a
@@ -345,18 +357,6 @@
 
 
 /*
- * Some HP-UX system headers require TRUE defined to 1 and FALSE to 0.
- */
-
-#if defined(__hpux)
-#undef TRUE
-#define TRUE 1
-#undef FALSE
-#define FALSE 0
-#endif
-
-
-/*
  * Macro WHILE_FALSE may be used to build single-iteration do-while loops,
  * avoiding compiler warnings. Mostly intended for other macro definitions.
  */