if (!s2) {
break;
}
- tmp[0] = 'x';
+ tmp[s2 - tmp] = 'x';
}
}
}
char tmp[MAX_DPATH];
if (!s)
return;
- ua_fs_copy (tmp, MAX_DPATH, s, '_');
+ ua_fs_copy (tmp, MAX_DPATH - 1, s, '_');
au_fs_copy (s, strlen (tmp) + 1, tmp);
}
return;
}
if (extra & 0x2000) {
- // An -> FPIAR
+ // FPIAR -> An
m68k_areg (regs, opcode & 7) = regs.fpiar;
} else {
- // FPIAR -> An
+ // An -> FPIAR
regs.fpiar = m68k_areg (regs, opcode & 7);
}
} else if ((opcode & 0x3f) == 0x3c) {
tmp = (TCHAR *)out;
lines_have = SendMessage(hWnd, EM_GETLINECOUNT, 0, 0);
- while (_tcslen(tmp) > 0 && (p = _tcschr(tmp, '\n')) > 0) {
+ while (_tcslen(tmp) > 0 && (p = _tcschr(tmp, '\n'))) {
lines_new++;
tmp = p + 1;
}
int has_vlb;
static uint8_t ccr0, ccr1, ccr2, ccr3, ccr4, ccr5, ccr6;
+struct cyrixs cyrix;
+
OpFn *x86_dynarec_opcodes;
OpFn *x86_dynarec_opcodes_0f;
OpFn *x86_dynarec_opcodes_d8_a16;
#define SMHR_VALID (1 << 0)
#define SMHR_ADDR_MASK (0xfffffffc)
-struct
+struct cyrixs
{
struct
{
uint64_t size;
} arr[8];
uint32_t smhr;
-} cyrix;
-
+};
+extern struct cyrixs cyrix;
#endif
au_copy (s, size, s2);
return s + size;
} else {
- char s2[MAX_DPATH];
+ bool alloc = false;
+ char s2t[MAX_DPATH + 1];
+ char *s2 = s2t;
char *s1;
+ if (size >= MAX_DPATH + 1) {
+ s2 = xmalloc(char, size + 1);
+ if (!s2) {
+ return NULL;
+ }
+ alloc = true;
+ }
s1 = fgets (s2, size, z->f);
- if (!s1)
+ if (!s1) {
+ if (alloc) {
+ xfree(s2);
+ }
return NULL;
+ }
if (size > strlen (s2) + 1)
size = strlen (s2) + 1;
au_copy (s, size, s2);
+ if (alloc) {
+ xfree(s2);
+ }
return s + size;
}
}