API or PB Bug with 'TAB'
Code: Select all
Import ""
OemToCharA(*scr, *dst)
OemToCharW(*scr, *dst)
EndImport
CompilerIf #PB_Compiler_Version < 550
Procedure Ascii(Text.s)
Protected *mem
*mem = AllocateMemory(Len(text) + 1)
PokeS(*mem, Text, -1, #PB_Ascii)
ProcedureReturn *mem
EndProcedure
CompilerEndIf
Procedure.s OemToString(in.s)
Protected r1, out.s, *pScr, *pDst, i, cnt
*pScr = Ascii(in)
*pDst = AllocateMemory(Len(in) * 2 + 2)
r1 = OemToCharW(*pScr, *pDst)
out = PeekS(*pDst, -1, #PB_Unicode)
FreeMemory(*pScr)
FreeMemory(*pDst)
ProcedureReturn out
EndProcedure
Procedure.s OemToAscII(in.s)
Protected r1, out.s, *pScr, *pDst, i, cnt
*pScr = Ascii(in)
*pDst = AllocateMemory(Len(in) * 1 + 2)
r1 = OemToCharA(*pScr, *pDst)
out = PeekS(*pDst, -1, #PB_Ascii)
FreeMemory(*pScr)
FreeMemory(*pDst)
ProcedureReturn out
EndProcedure
Procedure OemWriteStringN(File, Text.s)
Protected r1, *pDst, len
text + #CRLF$
len = Len(text)
*pDst = AllocateMemory(len + 2)
CharToOem_(@Text, *pDst)
r1 = WriteData(File, *pDst, len)
FreeMemory(*pDst)
ProcedureReturn r1
EndProcedure
; OEM String
a.s = "1808 18 P„ck PŽCK"
;ShowMemoryViewer(@a, 64)
b.s = OemToString(a)
c.s = OemToAscII(a)
Debug "Bug: " + b
Debug "Ok: " + c
ShowMemoryViewer(@b, 64)