commit 56d3388
Devine Lu Linvega
·
2025-01-22 23:41:33 +0000 UTC
parent c7ad87c
(file.c) Remove indirection
1 files changed,
+6,
-7
+6,
-7
1@@ -85,16 +85,15 @@ put_statfile(Uint8 *dest, unsigned int len, const char *filepath, const char *ba
2 }
3
4 static int
5-put_fdir(int id, Uint8 *dest, int len)
6+put_fdir(Uint8 *dest, int len, const char *filepath, DIR *dir)
7 {
8- UxnFile *uf = &uxn_file[id];
9 Uint8 *_dest = dest;
10 static char pathname[0x2000];
11- int in_folder = uf->filepath[0] == '.';
12- struct dirent *de = readdir(uf->dir);
13- for(; de != NULL; de = readdir(uf->dir)) {
14+ int in_folder = filepath[0] == '.';
15+ struct dirent *de = readdir(dir);
16+ for(; de != NULL; de = readdir(dir)) {
17 if(de->d_name[0] == '.' && de->d_name[1] == 0) continue;
18- snprintf(pathname, 0x2000, in_folder ? "%s/%s" : "%s%s", uf->filepath, de->d_name);
19+ snprintf(pathname, 0x2000, in_folder ? "%s/%s" : "%s%s", filepath, de->d_name);
20 dest += put_statfile(dest, len, pathname, de->d_name);
21 }
22 return dest - _dest;
23@@ -164,7 +163,7 @@ file_read(int id, Uint16 addr, int len)
24 if(uf->state == FILE_READ)
25 return fread(dest, 1, len, uf->f);
26 if(uf->state == DIR_READ)
27- return put_fdir(id, dest, len);
28+ return put_fdir(dest, len, uf->filepath, uf->dir);
29 return 0;
30 }
31