Loading...
include/inttypes.h Libc-825.24 Libc-763.12
--- Libc/Libc-825.24/include/inttypes.h
+++ Libc/Libc-763.12/include/inttypes.h
@@ -31,9 +31,23 @@
 #if !defined(_INTTYPES_H_)
 #define _INTTYPES_H_
 
-#  define __PRI_8_LENGTH_MODIFIER__ "hh"
-#  define __PRI_64_LENGTH_MODIFIER__ "ll"
-#  define __SCN_64_LENGTH_MODIFIER__ "ll"
+#  undef __PRI_8_LENGTH_MODIFIER__
+#  undef __PRI_64_LENGTH_MODIFIER__
+#  undef __SCN_64_LENGTH_MODIFIER__
+
+#  if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0 > 1020
+#    define __PRI_8_LENGTH_MODIFIER__ "hh"
+#    define __PRI_64_LENGTH_MODIFIER__ "ll"
+#    define __SCN_64_LENGTH_MODIFIER__ "ll"
+#  else
+/* These could be "hh", "ll", and "ll" respectively, but that doesn't work on
+   10.2, and these do.  Note that there's no way to use scanf to scan a
+   decimal into a 'char' argument on 10.2, so "hh" is used unconditionally
+   and programs that use it won't work on Jaguar.  */
+#    define __PRI_8_LENGTH_MODIFIER__ ""  /* none */
+#    define __PRI_64_LENGTH_MODIFIER__ "q"
+#    define __SCN_64_LENGTH_MODIFIER__ "q"
+#  endif
 #  define __PRI_MAX_LENGTH_MODIFIER__ "j"
 #  define __SCN_MAX_LENGTH_MODIFIER__ "j"
 
@@ -136,11 +150,19 @@
 #  define PRIxMAX        __PRI_MAX_LENGTH_MODIFIER__ "x"
 #  define PRIXMAX        __PRI_MAX_LENGTH_MODIFIER__ "X"
 
-#  define SCNd8         __PRI_8_LENGTH_MODIFIER__ "d"
-#  define SCNi8         __PRI_8_LENGTH_MODIFIER__ "i"
-#  define SCNo8         __PRI_8_LENGTH_MODIFIER__ "o"
-#  define SCNu8         __PRI_8_LENGTH_MODIFIER__ "u"
-#  define SCNx8         __PRI_8_LENGTH_MODIFIER__ "x"
+#  if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0 > 1020
+#    define SCNd8         __PRI_8_LENGTH_MODIFIER__ "d"
+#    define SCNi8         __PRI_8_LENGTH_MODIFIER__ "i"
+#    define SCNo8         __PRI_8_LENGTH_MODIFIER__ "o"
+#    define SCNu8         __PRI_8_LENGTH_MODIFIER__ "u"
+#    define SCNx8         __PRI_8_LENGTH_MODIFIER__ "x"
+#  else
+#    define SCNd8         "hhd"
+#    define SCNi8         "hhi"
+#    define SCNo8         "hho"
+#    define SCNu8         "hhu"
+#    define SCNx8         "hhx"
+#  endif
 
 #  define SCNd16        "hd"
 #  define SCNi16        "hi"