aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/base64.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/lib/base64.c b/lib/base64.c
index ee533189f..3b36fd0b9 100644
--- a/lib/base64.c
+++ b/lib/base64.c
@@ -220,6 +220,8 @@ int main(int argc, char **argv, char **envp)
#ifdef TEST_DECODE
/* decoding test harness. Read in a base64 string from stdin and write out the
* length returned by Curl_base64_decode, followed by the decoded data itself
+ *
+ * gcc -DTEST_DECODE base64.c -o base64 mprintf.o memdebug.o
*/
#include <stdio.h>
@@ -232,7 +234,7 @@ int main(int argc, char **argv, char **envp)
int base64Len;
unsigned char *data;
int dataLen;
- int i;
+ int i, j;
base64 = (char *)suck(&base64Len);
data = (unsigned char *)malloc(base64Len * 3/4 + 8);
@@ -240,9 +242,23 @@ int main(int argc, char **argv, char **envp)
fprintf(stderr, "%d\n", dataLen);
- for(i=0; i < dataLen; i++)
- printf("%02x ", data[i]);
- puts("");
+ for(i=0; i < dataLen; i+=0x10) {
+ printf("0x%02x: ", i);
+ for(j=0; j < 0x10; j++)
+ if((j+i) < dataLen)
+ printf("%02x ", data[i+j]);
+ else
+ printf(" ");
+
+ printf(" | ");
+
+ for(j=0; j < 0x10; j++)
+ if((j+i) < dataLen)
+ printf("%c", isgraph(data[i+j])?data[i+j]:'.');
+ else
+ break;
+ puts("");
+ }
free(base64); free(data);
return 0;