]> git.saurik.com Git - cycript.git/commitdiff
Add $snprintfp trampoline helper, "just in case".
authorJay Freeman (saurik) <saurik@saurik.com>
Wed, 4 Jun 2014 10:15:23 +0000 (03:15 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Wed, 4 Jun 2014 10:15:23 +0000 (03:15 -0700)
Trampoline.t.cpp

index b3bf31dc49cc741b51631f52976460ab6fce000d..4ebf8200d2f587007ded3df6faf796364cc22e6e 100644 (file)
@@ -66,6 +66,24 @@ static void $strlcpy(char *dst, const char *src, size_t size) {
     } dst[i] = '\0';
 }
 
+__attribute__((__unused__))
+static void $snprintfp(char *dst, size_t size, const void *pointer) {
+    uintptr_t value(reinterpret_cast<uintptr_t>(pointer));
+    char buffer[32];
+    char *end(buffer + sizeof(buffer));
+    *--end = '\0';
+    if (value == 0)
+        *--end = '0';
+    else do {
+        unsigned digit(value & 0xf);
+        value >>= 4;
+        *--end = (digit < 10 ? '0' : 'a' - 10) + digit;
+    } while (value != 0);
+    *--end = 'x';
+    *--end = '0';
+    $strlcpy(dst, end, size);
+}
+
 #ifdef __LP64__
 typedef struct mach_header_64 mach_header_xx;
 typedef struct nlist_64 nlist_xx;