diff --git a/data/common/lib/fs.obj b/data/common/lib/fs.obj index 41891db76b..f73c4e164c 100644 Binary files a/data/common/lib/fs.obj and b/data/common/lib/fs.obj differ diff --git a/programs/cmm/eolite/include/copy.h b/programs/cmm/eolite/include/copy.h index bb79896330..877a0adc25 100644 --- a/programs/cmm/eolite/include/copy.h +++ b/programs/cmm/eolite/include/copy.h @@ -74,7 +74,8 @@ void PasteThread() IF(DSBYTE[buf]=='/')tmp = buf; buf++; } - sprintf(TEMP,"%s/%s",#path,tmp); + tmp++; + sprintf(TEMP,"%s%s",#path,tmp); IF(cut_active) fs.move(_copy_path_,TEMP); ELSE fs.copy(_copy_path_,TEMP); free(_copy_path_); diff --git a/programs/cmm/lib/obj/fs.h b/programs/cmm/lib/obj/fs.h index 5214e05fd4..f4eeab5c58 100644 --- a/programs/cmm/lib/obj/fs.h +++ b/programs/cmm/lib/obj/fs.h @@ -34,6 +34,7 @@ :byte FILE_SYSTEM_FUNCTION::remove(dword path) { dword tmp = path; + lib_init_fs(); remove_pointer stdcall(tmp); return EAX; } @@ -41,6 +42,7 @@ :dword FILE_SYSTEM_FUNCTION::read(dword path) { dword tmp = path; + lib_init_fs(); read_pointer stdcall(tmp); return EAX; } @@ -49,6 +51,7 @@ { dword tmp1 = path1; dword tmp2 = arg; + lib_init_fs(); run_pointer stdcall(tmp1,tmp2); return EAX; } @@ -56,6 +59,7 @@ :qword FILE_SYSTEM_FUNCTION::get_size(dword path) { dword tmp = path; + lib_init_fs(); get_size_pointer stdcall(tmp); return EAX; } @@ -64,6 +68,7 @@ { dword tmp1 = path1; dword tmp2 = path2; + lib_init_fs(); move_pointer stdcall(tmp1,tmp2); return EAX; } @@ -72,6 +77,7 @@ { dword tmp1 = path1; dword tmp2 = path2; + lib_init_fs(); copy_pointer stdcall(tmp1,tmp2); return EAX; }