From 29531873ea4395a2dc65cefcc28db09569c38c18 Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Sun, 19 Dec 2021 01:09:13 +0100 Subject: STR 3289: Fluid i18n, gettext, catguts improvements Removed some unneeded code. --- fluid/code.cxx | 45 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 9 deletions(-) (limited to 'fluid/code.cxx') diff --git a/fluid/code.cxx b/fluid/code.cxx index e9af1fd53..d6b4bdc38 100644 --- a/fluid/code.cxx +++ b/fluid/code.cxx @@ -573,28 +573,55 @@ int write_code(const char *s, const char *t) { } write_declare("#include "); + if (t && include_H_from_C) { + if (*header_file_name == '.' && strchr(header_file_name, '/') == NULL) { + write_c("#include \"%s\"\n", fl_filename_name(t)); + } else { + write_c("#include \"%s\"\n", t); + } + } if (i18n_type && i18n_include[0]) { + int conditional = (i18n_conditional[0]!=0); + if (conditional) { + write_c("#ifdef %s\n", i18n_conditional); + indentation++; + } if (i18n_include[0] != '<' && i18n_include[0] != '\"') - write_c("#include \"%s\"\n", i18n_include); + write_c("#%sinclude \"%s\"\n", indent(), i18n_include); else - write_c("#include %s\n", i18n_include); + write_c("#%sinclude %s\n", indent(), i18n_include); if (i18n_type == 2) { if (i18n_file[0]) write_c("extern nl_catd %s;\n", i18n_file); else { write_c("// Initialize I18N stuff now for menus...\n"); - write_c("#include \n"); + write_c("#%sinclude \n", indent()); write_c("static char *_locale = setlocale(LC_MESSAGES, \"\");\n"); write_c("static nl_catd _catalog = catopen(\"%s\", 0);\n", i18n_program); } } - } - if (t && include_H_from_C) { - if (*header_file_name == '.' && strchr(header_file_name, '/') == NULL) { - write_c("#include \"%s\"\n", fl_filename_name(t)); - } else { - write_c("#include \"%s\"\n", t); + if (conditional) { + write_c("#else\n"); + if (i18n_type == 1) { + if (i18n_function[0]) { + write_c("#%sifndef %s\n", indent(), i18n_function); + write_c("#%sdefine %s(text) text\n", indent_plus(1), i18n_function); + write_c("#%sendif\n", indent()); + } + } + if (i18n_type == 2) { + write_c("#%sifndef catgets\n", indent()); + write_c("#%sdefine catgets(catalog, set, msgid, text) text\n", indent_plus(1)); + write_c("#%sendif\n", indent()); + } + indentation--; + write_c("#endif\n"); + } + if (i18n_type == 1 && i18n_static_function[0]) { + write_c("#ifndef %s\n", i18n_static_function); + write_c("#%sdefine %s(text) text\n", indent_plus(1), i18n_static_function); + write_c("#endif\n"); } } for (Fl_Type* p = first_type; p;) { -- cgit v1.2.3