AAPT fix printf %zd crash on Windows.

There's no printf %zd on Mingw/Cygwin so the verbose
printf crashes aapt.

SDK bugs: 20395, 20986

Change-Id: I5b8ac36749263205a19f1448b1aaca90d5a2e06d
diff --git a/tools/aapt/Resource.cpp b/tools/aapt/Resource.cpp
index 887fa74..1ecf7da 100644
--- a/tools/aapt/Resource.cpp
+++ b/tools/aapt/Resource.cpp
@@ -14,6 +14,14 @@
 #include "FileFinder.h"
 #include "CacheUpdater.h"
 
+#if HAVE_PRINTF_ZD
+#  define ZD "%zd"
+#  define ZD_TYPE ssize_t
+#else
+#  define ZD "%ld"
+#  define ZD_TYPE long
+#endif
+
 #define NOISY(x) // x
 
 // ==========================================================================
@@ -566,11 +574,11 @@
                         DefaultKeyedVector<AaptGroupEntry, sp<AaptFile> > baseFiles =
                                 baseGroup->getFiles();
                         for (size_t i=0; i < baseFiles.size(); i++) {
-                            printf("baseFile %zd has flavor %s\n", i,
+                            printf("baseFile " ZD " has flavor %s\n", (ZD_TYPE) i,
                                     baseFiles.keyAt(i).toString().string());
                         }
                         for (size_t i=0; i < overlayFiles.size(); i++) {
-                            printf("overlayFile %zd has flavor %s\n", i,
+                            printf("overlayFile " ZD " has flavor %s\n", (ZD_TYPE) i,
                                     overlayFiles.keyAt(i).toString().string());
                         }
                     }
@@ -584,8 +592,8 @@
                                 keyAt(overlayGroupIndex));
                         if (baseFileIndex < UNKNOWN_ERROR) {
                             if (bundle->getVerbose()) {
-                                printf("found a match (%zd) for overlay file %s, for flavor %s\n",
-                                        baseFileIndex,
+                                printf("found a match (" ZD ") for overlay file %s, for flavor %s\n",
+                                        (ZD_TYPE) baseFileIndex,
                                         overlayGroup->getLeaf().string(),
                                         overlayFiles.keyAt(overlayGroupIndex).toString().string());
                             }
diff --git a/tools/aapt/StringPool.cpp b/tools/aapt/StringPool.cpp
index d067d59..9a0a1c4 100644
--- a/tools/aapt/StringPool.cpp
+++ b/tools/aapt/StringPool.cpp
@@ -8,6 +8,14 @@
 
 #include <utils/ByteOrder.h>
 
+#if HAVE_PRINTF_ZD
+#  define ZD "%zd"
+#  define ZD_TYPE ssize_t
+#else
+#  define ZD "%ld"
+#  define ZD_TYPE long
+#endif
+
 #define NOISY(x) //x
 
 void strcpy16_htod(uint16_t* dst, const uint16_t* src)
@@ -30,7 +38,7 @@
             str = String8(pool->stringAt(s, &len)).string();
         }
 
-        printf("String #%zd: %s\n", s, str);
+        printf("String #" ZD ": %s\n", (ZD_TYPE) s, str);
     }
 }