before:
//---------------------------------------- Перекодировка ANSI->OEM ----------
void toOEM (char *s)
{
__asm
{ push esi
mov esi,s ; ESI - адрес строки
mov ebx,offset ANSItoOEM
V2: mov al,[esi] ;
or al,al
je V5
xlatb [ebx] ; Перекодировка поля в EOM
mov [esi],al ;
inc esi ;
jmp V2
V5: pop esi
}
}
after:
//---------------------------------------- Перекодировка ANSI->OEM ----------
void toOEM (char* s)
{
__asm {
push esi
mov esi, s ;
ESI - адрес строки
mov ebx, offset ANSItoOEM
V2: mov al, [esi] ;
or al, al
je V5
xlatb [ebx] ;
Перекодировка поля в EOM
mov [esi], al ;
inc esi ;
jmp V2
V5: pop esi
}
}
Hello,
We have a similar issue with
__asm, it messes up with theswitchthat follow. See https://github.com/Underground78/mpc-hc/commit/3a6457cdaf96dc4bac1a3f62709ed2b6ef29ed63 for an example.I see it is a decade later, but you can test a fix in the latest git commit.
Fixed in 3.4.8.