all repos — openbox @ ac62af410dd5ea8ade914f47c9d5d269de16d59a

openbox fork - make it a bit more like ryudo

fix compiling with --disable-nls
Dana Jansens danakj@orodu.net
commit

ac62af410dd5ea8ade914f47c9d5d269de16d59a

parent

d03852ad25b4d43e1420d9aced516507fa572800

1 files changed, 22 insertions(+), 9 deletions(-)

jump to
M src/i18n.ccsrc/i18n.cc

@@ -87,13 +87,17 @@ #endif // HAVE_CATCLOSE

} -void I18n::openCatalog(const char *catalog) { #if defined(NLS) && defined(HAVE_CATOPEN) - string catalog_filename = LOCALEPATH; - catalog_filename += '/'; - catalog_filename += locale; - catalog_filename += '/'; - catalog_filename += catalog; +void I18n::openCatalog(const char *catalog) { + int lp = strlen(LOCALEPATH), lc = strlen(locale), + ct = strlen(catalog), len = lp + lc + ct + 3; + catalog_filename = new char[len]; + + strncpy(catalog_filename, LOCALEPATH, lp); + *(catalog_filename + lp) = '/'; + strncpy(catalog_filename + lp + 1, locale, lc); + *(catalog_filename + lp + lc + 1) = '/'; + strncpy(catalog_filename + lp + lc + 2, catalog, ct + 1); # ifdef MCLoadBySet catalog_fd = catopen(catalog_filename.c_str(), MCLoadBySet);

@@ -103,14 +107,23 @@ # endif // MCLoadBySet

if (catalog_fd == (nl_catd) -1) fprintf(stderr, "failed to open catalog, using default messages\n"); -#endif // HAVE_CATOPEN } +#else // !HAVE_CATOPEN +void I18n::openCatalog(const char *) { + catalog_filename = (char *) 0; +} +#endif // HAVE_CATOPEN -const char* I18n::operator()(int set, int msg, const char *msgString) const { + #if defined(NLS) && defined(HAVE_CATGETS) +const char *I18n::getMessage(int set, int msg, const char *msgString) const { if (catalog_fd != (nl_catd) -1) return catgets(catalog_fd, set, msg, msgString); else -#endif return msgString; } +#else +const char *I18n::getMessage(int, int, const char *msgString) const { + return msgString; +} +#endif