From ac62af410dd5ea8ade914f47c9d5d269de16d59a Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Thu, 23 May 2002 15:11:41 +0000 Subject: [PATCH] fix compiling with --disable-nls --- src/i18n.cc | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/src/i18n.cc b/src/i18n.cc index b8aa361a..b31dd5a3 100644 --- a/src/i18n.cc +++ b/src/i18n.cc @@ -87,13 +87,17 @@ I18n::~I18n() { } -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 @@ void I18n::openCatalog(const char *catalog) { 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 -- 2.45.2