]> Dogcows Code - chaz/openbox/commitdiff
fix compiling with --disable-nls
authorDana Jansens <danakj@orodu.net>
Thu, 23 May 2002 15:11:41 +0000 (15:11 +0000)
committerDana Jansens <danakj@orodu.net>
Thu, 23 May 2002 15:11:41 +0000 (15:11 +0000)
src/i18n.cc

index b8aa361a45f7eec351e905e28ea39dff7b1418b9..b31dd5a32e72e1e8ba9084e8fddb8273e89d5bb8 100644 (file)
@@ -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
This page took 0.022626 seconds and 4 git commands to generate.