Unicode support in filesystem breaking compatibility?
Posted: Mon Sep 26, 2016 7:21 pm
Hi. It seems in recent releases of KolibriOS (I tested this for the Sept 26 2016 release currently put up at http://builds.kolibrios.org/eng/latest-distr.7z), getting current folder for thread (SF 30.2) does not work as expected (there may be other functions whose behavior might have changed, but I have only tested 30.2). For example, the following code snippet -
should ideally store "/RD/1" (2F 52 44 2F 31 as it does in older versions) into the buffer. However with the new release it prefixes "2F 03" to the result (2F 03 2F 52 44 2F 31). Can someone verify this behavior? @dunkaist suggests this might be due to the unicode support introduced in filesystem.
Spoiler:
Code: Select all
format binary as ""
use32
; standard header
db 'MENUET01' ; signature
dd 1 ; header version
dd start ; entry point
dd i_end ; initialized size
dd mem+0x1000 ; required memory
dd mem+0x1000 ; stack pointer
dd buf_cmd ; parameters
dd path ; path
include 'macros.inc'
purge mov,add,sub
start:
; initialize heap for using dynamic blocks
mcall 68,11
test eax,eax
je exit
int3
mcall 30, 2, filename_buf, 128
exit:
mcall -1
; data
i_end:
filename_buf rb 128
buf_cmd rb 1024 ; buffer for holding command string
path rb 1024
mem: