Skip to content

Commit 45effdb

Browse files
committed
some fixes
1 parent b2366e6 commit 45effdb

File tree

3 files changed

+7
-10
lines changed

3 files changed

+7
-10
lines changed

crates/libmwemu/src/console.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ impl Console {
182182
let precmd = format!("dr rax={}?; dr rbx={}?; dr rcx={}?; dr rdx={}?; dr rsi={}?;
183183
dr rdi={}?; dr rbp={}?; dr rsp={}?; dr rip={}?; dr r8={}?
184184
dr r9={}?; dr r10={}?; dr r11={}?; dr r12={}?; dr r13={}?;
185-
dr r14={}?; dr r15={}?; decai -e model=qwen3-coder:30?",
185+
dr r14={}?; dr r15={}?; decai -e model=qwen3-coder:30b; r2ai -e r2ai.model=qwen3-coder:30b;",
186186
emu.regs().rax, emu.regs().rbx, emu.regs().rcx, emu.regs().rdx,
187187
emu.regs().rsi, emu.regs().rdi, emu.regs().rbp, emu.regs().rsp,
188188
emu.regs().rip, emu.regs().r8, emu.regs().r9, emu.regs().r10,

crates/libmwemu/src/winapi/winapi64/kernel32/get_current_directory_w.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,21 @@ pub fn GetCurrentDirectoryW(emu: &mut emu::Emu) {
55
let buff_len = emu.regs().rcx as u32;
66
let buff_ptr = emu.regs().rdx;
77

8+
let current_dir = constants::CWD_PATH;
9+
let dir_char_count = current_dir.chars().count(); // Use chars().count() for proper Unicode handling
10+
811
log_red!(
912
emu,
1013
"kernel32!GetCurrentDirectoryW nBufferLength: {} lpBuffer: 0x{:x}",
1114
buff_len,
12-
buff_ptr
15+
buff_ptr,
1316
);
1417

15-
let current_dir = constants::CWD_PATH;
16-
let dir_char_count = current_dir.chars().count(); // Use chars().count() for proper Unicode handling
1718

1819
// When buffer length is 0 or buffer is null, return required size INCLUDING null terminator
1920
if buff_len == 0 || buff_ptr == 0 {
2021
set_last_error(constants::ERROR_INSUFFICIENT_BUFFER);
21-
emu.regs_mut().rax = (dir_char_count + 1) as u64; // +1 for null terminator
22+
emu.regs_mut().rax = (dir_char_count + 2) as u64; // real api would return +1
2223
return;
2324
}
2425

@@ -43,4 +44,5 @@ pub fn GetCurrentDirectoryW(emu: &mut emu::Emu) {
4344
// Return number of characters written (NOT including null terminator)
4445
set_last_error(0);
4546
emu.regs_mut().rax = dir_char_count as u64;
47+
4648
}

crates/libmwemu/src/winapi/winapi64/ntdll.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -719,11 +719,6 @@ fn NtCreateFile(emu: &mut emu::Emu) {
719719

720720
log_red!(emu, "** {} ntdll!NtCreateFile resolved filename: '{}'", emu.pos, filename);
721721

722-
// TODO: fix path duplication!
723-
if filename != "\\??\\c:\\cwd\\c:\\cwd\\version.dll" {
724-
panic!("TODO: NtCreateFile {}", filename);
725-
}
726-
727722
if out_hndl_ptr > 0 {
728723
emu.maps
729724
.write_qword(out_hndl_ptr, helper::handler_create(&filename) as u64);

0 commit comments

Comments
 (0)