From 971e82df55143cdfde1c65874a5d1714fede6bd9 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Sun, 9 Aug 2015 19:12:03 +0200 Subject: [PATCH] Added string format for formspec compatibility and securized S's outputs - Added a little hack to handle errors when S returns nil (it was noticed with Unicode characters) - Added a step before using strings from fields to make them compatible with formspecs (escapes) --- memorandum/init.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/memorandum/init.lua b/memorandum/init.lua index bbb89f1..9dd461d 100644 --- a/memorandum/init.lua +++ b/memorandum/init.lua @@ -73,8 +73,8 @@ minetest.register_node("memorandum:letter_empty", { return end local meta = minetest.get_meta(pos) - fields.text = fields.text - fields.signed = fields.signed + fields.text = minetest.formspec_escape(fields.text) or "" + fields.signed = minetest.formspec_escape(fields.signed) or "" --[[print((sender:get_player_name() or "").." wrote \""..fields.text.. "\" to paper at "..minetest.pos_to_string(pos))]] local fdir = minetest.get_node(pos).param2 @@ -178,8 +178,8 @@ minetest.register_node("memorandum:letter_written", { local item = sender:get_wielded_item() if item:get_name() == "memorandum:eraser" then local meta = minetest.get_meta(pos) - fields.text = fields.text - fields.signed = fields.signed + fields.text = minetest.format_escape(fields.text) or "" + fields.signed = minetest.format_escape(fields.signed) or "" --[[print((sender:get_player_name() or "").." wrote \""..fields.text.. "\" to paper at "..minetest.pos_to_string(pos))]] local fdir = minetest.get_node(pos).param2 @@ -188,8 +188,8 @@ minetest.register_node("memorandum:letter_written", { end meta:set_string("text", fields.text) meta:set_string("signed", "") - meta:set_string("infotext", S('%s %s" Unsigned'):format(info,fields.text)) - if fields.signed ~= "" then + meta:set_string("infotext", (S('%s %s" Unsigned') or '%s %s" Unsigned'):format(info,fields.text)) + if fields.signed and fields.signed ~= "" then meta:set_string("signed", fields.signed) meta:set_string("infotext", info..fields.text..sign..fields.signed) end