diff options
Diffstat (limited to 'src/console.rs')
| -rw-r--r-- | src/console.rs | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/console.rs b/src/console.rs index 98090d5..c8c9601 100644 --- a/src/console.rs +++ b/src/console.rs @@ -1,17 +1,31 @@ -use libctru::console::{PrintConsole, consoleInit}; +use libctru::console::{PrintConsole, consoleInit, consoleClear}; use libctru::gfx; -use rcstring::CString; use core::ptr; extern "C" { - fn puts(cstr: *const u8) -> u8; + fn putchar(ch: u8) -> i32; } pub fn console_default_init() -> *mut PrintConsole { unsafe { consoleInit(gfx::gfxScreen_t::GFX_TOP, ptr::null_mut()) } } -pub fn console_write<'a>(s: &'a str) -> u8 { - unsafe { puts(CString::new(s).unwrap().into_raw()) } +pub fn console_write<'a>(s: &'a str) { + unsafe { + for c in s.as_bytes().iter() { + putchar(*c); + } + } +} + +pub fn console_writeln<'a>(s: &'a str) { + unsafe { + console_write(s); + putchar('\n' as u8); + } +} + +pub fn console_clear() { + unsafe { consoleClear() } } |