commit 6f2bfe0
Devine Lu Linvega
·
2025-01-23 00:22:11 +0000 UTC
parent 86f9fa3
(file.c) Brought back compatibility with C89
1 files changed,
+9,
-5
+9,
-5
1@@ -1,4 +1,3 @@
2-#define _XOPEN_SOURCE 500
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <dirent.h>
6@@ -55,7 +54,7 @@ put_fill(Uint8 *dest, int len, char c)
7 }
8
9 static int
10-put_size(Uint8 *dest, int len, off_t size)
11+put_size(Uint8 *dest, int len, int size)
12 {
13 int i;
14 for(i = 0, dest += len; i < len; i++, size >>= 4)
15@@ -69,6 +68,7 @@ put_text(Uint8 *dest, const char *text)
16 Uint8 *anchor = dest;
17 while(*text)
18 *dest = *text++, dest++;
19+ *dest = 0;
20 return dest - anchor;
21 }
22
23@@ -101,13 +101,17 @@ static int
24 put_fdir(Uint8 *dest, int len, const char *filepath, DIR *dir)
25 {
26 Uint8 *_dest = dest;
27- static char pathname[0x2000];
28 int in_folder = filepath[0] == '.';
29 struct dirent *de = readdir(dir);
30 for(; de != NULL; de = readdir(dir)) {
31 if(de->d_name[0] == '.' && de->d_name[1] == 0) continue;
32- snprintf(pathname, 0x2000, in_folder ? "%s/%s" : "%s%s", filepath, de->d_name);
33- dest += put_statfile(dest, len, pathname, de->d_name);
34+ if(in_folder)
35+ dest += put_statfile(dest, len, de->d_name, de->d_name);
36+ else{
37+ static char pathname[0x2000];
38+ put_text(put_text(pathname, filepath) + pathname, de->d_name);
39+ dest += put_statfile(dest, len, pathname, de->d_name);
40+ }
41 }
42 return dest - _dest;
43 }