aboutsummaryrefslogtreecommitdiffstats
path: root/src/mpd_types.h
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2008-09-29 02:35:09 -0700
committerEric Wong <normalperson@yhbt.net>2008-09-29 04:05:48 -0700
commitfcbcdd9869e3147fe4a30ba808af294f680c9373 (patch)
treeccc1799d04cbf2501032107384a81094e18c615a /src/mpd_types.h
parentc7930c993e4624e4e6d9a50cdea448b432a2bf05 (diff)
downloadmpd-fcbcdd9869e3147fe4a30ba808af294f680c9373.tar.gz
mpd-fcbcdd9869e3147fe4a30ba808af294f680c9373.tar.xz
mpd-fcbcdd9869e3147fe4a30ba808af294f680c9373.zip
Switch to C99 types (retaining compat with old compilers)
Seeing the "mpd_" prefix _everywhere_ is mind-numbing as the mind needs to retrain itself to skip over the first 4 tokens of a type to get to its meaning. So avoid having extra characters on my terminal to make it easier to follow code at 2:30 am in the morning. Please report any new issues you may come across on Free toolchains. I realize how difficult it can be to build/maintain cross-compiling toolchains and I have no intention of forcing people to upgrade their toolchains to build mpd. Tested with gcc 2.95.4 and and gcc 4.3.1 on x86-32.
Diffstat (limited to 'src/mpd_types.h')
-rw-r--r--src/mpd_types.h51
1 files changed, 38 insertions, 13 deletions
diff --git a/src/mpd_types.h b/src/mpd_types.h
index dbdfc6865..b61f007ad 100644
--- a/src/mpd_types.h
+++ b/src/mpd_types.h
@@ -21,23 +21,48 @@
#include "../config.h"
-typedef unsigned char mpd_uint8;
-typedef signed char mpd_sint8;
+#if defined(HAVE_INTTYPES_H)
+ /*
+ * inttypes.h pulls in stdint.h on C99 systems, needed for older systems
+ * that didn't provide stdint.h but still defined equivalent types.
+ */
+# include <inttypes.h>
+#elif defined(HAVE_STDINT_H)
+# include <stdint.h>
+#elif defined(HAVE_SYS_INTTYPES_H)
+# include <sys/inttypes.h> /* some ancient systems had this, untested */
+#endif /* C99-ish type headers */
+
+#include <sys/types.h>
+
+#if (!defined(HAVE_STDINT_H) && !defined(HAVE_INTTYPES_H))
+
+/*
+ * this only includes a partial subset of what is expected in a C99
+ * stdint.h or inttypes.h; but includes enough of what is needed for mpd
+ * to function on older platforms
+ * (especially Linux ones still using gcc 2.95)
+ */
+
+typedef unsigned char uint8_t;
+typedef signed char int8_t;
#if SIZEOF_SHORT == 2
-typedef unsigned short mpd_uint16;
-typedef signed short mpd_sint16;
+typedef unsigned short uint16_t;
+typedef signed short int16_t;
#elif SIZEOF_INT == 2
-typedef unsigned int mpd_uint16;
-typedef signed int mpd_sint16;
-#endif
+typedef unsigned int uint16_t;
+typedef signed int int16_t;
+#endif /* (u)int_16_t */
#if SIZEOF_INT == 4
-typedef unsigned int mpd_uint32;
-typedef signed int mpd_sint32;
+typedef unsigned int uint32_t;
+typedef signed int int32_t;
#elif SIZEOF_LONG == 4
-typedef unsigned long mpd_uint32;
-typedef signed long mpd_sint32;
-#endif
+typedef unsigned long uint32_t;
+typedef signed long int32_t;
+#endif /* (u)int_32 */
+
+#endif /* !HAVE_STDINT_H && !HAVE_INTTYPES_H */
-#endif
+#endif /* MPD_TYPES_H */