]> git.draconx.ca Git - cdecl99.git/commitdiff
Make library i18n init conditional on NLS support.
authorNick Bowler <nbowler@draconx.ca>
Fri, 13 Aug 2021 02:41:14 +0000 (22:41 -0400)
committerNick Bowler <nbowler@draconx.ca>
Fri, 13 Aug 2021 02:52:02 +0000 (22:52 -0400)
If the package is configured with --disable-nls, the library's i18n
initialization does nothing useful but the internal functions are
not fully removed.  Looks like a simple opportunity for improvement.

Makefile.am
configure.ac
src/cdecl-internal.h
src/i18n.c

index 191a697296a8669737c63e9b50953327d20f91a8..2597f8a2480dc7ad5371b0baa4afcfb2e3d9f6b9 100644 (file)
@@ -41,11 +41,15 @@ lib_LTLIBRARIES = libcdecl.la
 libcdecl_la_LDFLAGS = -export-symbols-regex '^cdecl_[[:lower:]]' \
                       -no-undefined -version-info 1:0:0
 libcdecl_la_SOURCES = src/scan.c src/parse.c src/parse-decl.c src/output.c \
-                      src/explain.c src/declare.c src/i18n.c src/error.c \
-                      src/normalize.c src/cdecl-internal.h
+                      src/explain.c src/declare.c src/error.c src/normalize.c \
+                      src/cdecl-internal.h
 libcdecl_la_LIBADD = libgnu.la $(LTLIBINTL) $(LTLIBTHREAD)
 $(libcdecl_la_OBJECTS): $(gnulib_headers)
 
+if USE_NLS
+libcdecl_la_SOURCES += src/i18n.c
+endif
+
 bin_PROGRAMS = cdecl99
 cdecl99_SOURCES = src/commands.c src/cdecl99.h
 cdecl99_LDADD = $(libmain_a_OBJECTS) $(libexec_a_OBJECTS) libcdecl.la \
index 0784644ab20d89d9cb9013c384abe9b252f65acd..bd07f463a09081e644224de482314bb00057c902 100644 (file)
@@ -61,6 +61,8 @@ m4_traceoff([AM_GNU_GETTEXT])
 AM_GNU_GETTEXT([external])
 DX_LINGUAS
 
+AM_CONDITIONAL([USE_NLS], [test x"$USE_NLS" = x"yes"])
+
 DX_PROG_FLEX([], [have_flex=yes], [have_flex=no])
 AM_CONDITIONAL([HAVE_FLEX], [test x"$have_flex" = x"yes"])
 
index 11903bcf45269a5e62092c8a7694586c554a4fe0..1fba6146e5d842253b68b332014cf005990de9a9 100644 (file)
 struct cdecl_error;
 struct cdecl_declspec;
 
+#if ENABLE_NLS
 void cdecl__init_i18n(void);
+#else
+static inline void cdecl__init_i18n(void)
+{
+}
+#endif
 
 const char *cdecl__strerror(unsigned code);
 void cdecl__err(unsigned code, ...);
index 72bfc23de43b41807bedc865939218c0c5f01510..753cf2719df56c6d314a85045e774c1824a6676f 100644 (file)
@@ -24,7 +24,7 @@
 
 #include <glthread/lock.h>
 
-static void initialize(void)
+static void do_init_i18n(void)
 {
        bindtextdomain(PACKAGE, LOCALEDIR);
        bindtextdomain("bison-runtime", BISON_LOCALEDIR);
@@ -34,6 +34,6 @@ void cdecl__init_i18n(void)
 {
        gl_once_define(static, initialized);
 
-       int err = glthread_once(&initialized, initialize);
+       int err = glthread_once(&initialized, do_init_i18n);
        assert(err == 0);
 }