9 #define DBG(fmt, argc...) printf("<%s:%d> "fmt"\n", __func__, __LINE__, ##argc)
10 #define ERR(fmt, argc...) printf("<%s:%d> [ERROR] "fmt"\n", __func__, __LINE__, ##argc)
14 static int print_content(const char *filename)
17 unsigned char buf[BUF_SIZE];
18 char *b64_de, *b64_en;
21 fp = fopen(filename, "r");
27 while ((n = fread(buf, 1, sizeof(buf), fp)) > 0) {
29 b64_en = g_base64_encode(buf, n);
30 fwrite(b64_en, 1, n, stdout);
32 b64_de = (char*)g_base64_decode(b64_en, &n);
33 fwrite(b64_de, 1, n, stdout);
46 static void printdir(char *dir, int depth)
52 if ((dp = opendir(dir)) == NULL) {
58 while ((entry = readdir(dp)) != NULL) {
59 lstat(entry->d_name, &statbuf);
60 if (S_ISDIR(statbuf.st_mode)) {
61 if (strcmp(".", entry->d_name) == 0 ||
62 strcmp("..", entry->d_name) == 0)
65 DBG("%*s%s", depth, "", entry->d_name);
66 printdir(entry->d_name, depth+strlen(entry->d_name));
69 DBG("%*s%s", depth, "", entry->d_name);
70 print_content(entry->d_name);
77 int main(int argc, char *argv[])