summaryrefslogtreecommitdiff
path: root/src/lua/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/mod.rs')
-rw-r--r--src/lua/mod.rs19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/lua/mod.rs b/src/lua/mod.rs
index ae619b0..815b38d 100644
--- a/src/lua/mod.rs
+++ b/src/lua/mod.rs
@@ -18,24 +18,25 @@ pub mod runnable;
pub mod runtime;
macro_rules! ud_is_type {
- ($writer:ident, $ud:ident, $f:ty => $fe:expr $(, $($r:ty => $e:expr),+)? $(,)?) => {
+ ($content:ident, $ud:ident, $f:ty => $fe:expr $(, $($r:ty => $e:expr),+)? $(,)?) => {
if $ud.is::<$f>() {
- $writer.write(format!("{:#?}", $fe))
+ $content += &format!("{:#?}", $fe);
} $($( else if $ud.is::<$r>() {
- $writer.write(format!("{:#?}", $e))
+ $content += &format!("{:#?}", $e);
})*)? else {
- $writer.write(format!("{:#?}", $ud));
+ $content += &format!("{:#?}", $ud);
}
};
}
fn print(_: &Lua, args: LuaMultiValue) -> LuaResult<()> {
let mut writer = iobuffer::iobuffer().write().unwrap();
+ let mut content = String::new();
for (i, arg) in args.iter().enumerate() {
if let Some(ud) = arg.as_userdata() {
ud_is_type!(
- writer,
+ content,
ud,
CellRef => ud.borrow::<CellRef>(),
GlobalConfig => GlobalConfig::get(),
@@ -45,14 +46,16 @@ fn print(_: &Lua, args: LuaMultiValue) -> LuaResult<()> {
SheetViewState => GlobalState::get().view,
);
} else {
- writer.write(format!("{:#?}", arg));
+ content += &format!("{:#?}", arg);
}
if i < args.len() - 1 {
- writer.write(", ");
+ content += ", ";
}
}
- writer.writeln("");
+ content += "\n";
+
+ writer.print(content);
Ok(())
}