From f3d82567c9dc98d5b1fa8724055727956ed351eb Mon Sep 17 00:00:00 2001
From: est31 <MTest31@outlook.com>
Date: Sun, 18 Oct 2015 02:18:10 +0200
Subject: [PATCH] Display sane output for empty descriptions

According to its man page, the function gettext(3)
"may return a nonempty string" when msgid is "".

This commit fixes a bug where the comment ""
for some settings caused gettext to return a
"nonempty string", in this case header info of the
po file.
---
 builtin/mainmenu/tab_settings.lua | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/builtin/mainmenu/tab_settings.lua b/builtin/mainmenu/tab_settings.lua
index 90d245337..f3605fd48 100644
--- a/builtin/mainmenu/tab_settings.lua
+++ b/builtin/mainmenu/tab_settings.lua
@@ -234,7 +234,15 @@ local function create_change_setting_formspec(dialogdata)
 
 	formspec = formspec .. ",,"
 
-	for _, comment_line in ipairs(fgettext_ne(setting.comment):split("\n")) do
+	local comment_text = ""
+
+	-- fgettext_ne("") doesn't have to return "", according to specification of gettext(3)
+	if setting.comment == "" then
+		comment_text = fgettext_ne("(No description of setting given)")
+	else
+		comment_text = fgettext_ne(setting.comment)
+	end
+	for _, comment_line in ipairs(comment_text:split("\n")) do
 		formspec = formspec .. "," .. core.formspec_escape(comment_line) .. ","
 	end
 
@@ -334,7 +342,7 @@ local function create_settings_formspec(tabview, name, tabdata)
 		else
 			name = entry.name
 		end
-		
+
 		if entry.type == "category" then
 			current_level = entry.level
 			formspec = formspec .. "#FFFF00," .. current_level .. "," .. core.formspec_escape(name) .. ",,"
@@ -385,7 +393,7 @@ local function handle_settings_buttons(this, fields, tabname, tabdata)
 			return true
 		end
 	end
-	
+
 	if fields["btn_edit"] or list_enter then
 		local setting = settings[selected_setting]
 		if setting.type ~= "category" then
-- 
GitLab