aboutsummaryrefslogtreecommitdiff
path: root/src/console.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/console.rs')
-rw-r--r--src/console.rs24
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() }
}