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 }