commit 922bca8
Devine Lu Linvega
·
2026-02-18 16:14:41 +0000 UTC
parent 63e8ecf
Do not S_ISDIR on error
1 files changed,
+6,
-6
+6,
-6
1@@ -525,7 +525,7 @@ screen_deo_sprite(void)
2 const int layer = ctrl & 0x40, layer_mask = layer ? 0x3 : 0xc;
3 const int blend = ctrl & 0xf;
4 const int opaque_mask = blend % 5;
5- const int row_step = flipy ? -1 : 1;
6+ const int row_incr = flipy ? -1 : 1;
7 const int row_start = flipy ? 7 : 0;
8 const Uint8 *table = blend_lut[blend][layer >> 6];
9 if(ctrl & 0x80) {
10@@ -535,7 +535,7 @@ screen_deo_sprite(void)
11 if(x0 + 8 >= screen_wmar2 || y0 + 8 >= screen_hmar2) continue;
12 Uint8 *dst = screen_layers + y0 * screen_wmar2 + x0;
13 const Uint8 *rowptr = &ram[rA + row_start];
14- for(j = 0; j < 8; j++, dst += screen_wmar2, rowptr += row_step) {
15+ for(j = 0; j < 8; j++, dst += screen_wmar2, rowptr += row_incr) {
16 Uint8 *d = dst, bits1 = rowptr[0], bits2 = rowptr[8];
17 if(flipx)
18 for(int k = 0; k < 8; k++, d++, bits1 >>= 1, bits2 >>= 1) {
19@@ -558,7 +558,7 @@ screen_deo_sprite(void)
20 if(x0 + 8 >= screen_wmar2 || y0 + 8 >= screen_hmar2) continue;
21 Uint8 *dst = screen_layers + y0 * screen_wmar2 + x0;
22 const Uint8 *rowptr = &ram[rA + row_start];
23- for(j = 0; j < 8; j++, dst += screen_wmar2, rowptr += row_step) {
24+ for(j = 0; j < 8; j++, dst += screen_wmar2, rowptr += row_incr) {
25 Uint8 *d = dst, bits = rowptr[0];
26 if(flipx)
27 for(int k = 0; k < 8; k++, d++, bits >>= 1) {
28@@ -758,7 +758,7 @@ put_statfile(Uint8 *dest, const char *filepath, const char *basename)
29 char pathbuf[0x2000];
30 make_pathfile(pathbuf, filepath, basename);
31 err = stat(pathbuf, &st);
32- dir = S_ISDIR(st.st_mode);
33+ dir = !err && S_ISDIR(st.st_mode);
34 dest += put_stat(dest, 4, st.st_size, err, dir, 1);
35 dest += put_text(dest, " ");
36 dest += put_text(dest, basename);
37@@ -895,7 +895,7 @@ file_stat(unsigned int id, Uint16 addr, unsigned int len)
38 if(addr + len > 0x10000)
39 len = 0x10000 - addr;
40 err = stat(ufs[id].filepath, &st);
41- dir = S_ISDIR(st.st_mode);
42+ dir = !err && S_ISDIR(st.st_mode);
43 return put_stat(&ram[addr], len, st.st_size, err, dir, 0);
44 }
45
46@@ -1334,7 +1334,7 @@ main(int argc, char **argv)
47 {
48 int i = 1;
49 if(argc == 2 && argv[1][0] == '-' && argv[1][1] == 'v')
50- return !fprintf(stdout, "%s - Varvara Emulator, 17 Feb 2026.\n", argv[0]);
51+ return !fprintf(stdout, "%s - Varvara Emulator, 18 Feb 2026.\n", argv[0]);
52 else if(argc == 1)
53 return !fprintf(stdout, "usage: %s [-v] file.rom [args..]\n", argv[0]);
54 else if(!system_boot(argv[i++], argc > 2))