From df005d9975b81f8e310761ebed0afbabd40acfe3 Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Fri, 26 May 2023 21:25:04 -0400 Subject: [PATCH] Replace Gnulib striconv with copyright_symbol from dxcommon. The only use of the striconv module is to produce the copyright symbol for --version output and at the start of an interactive session. Using the new, single-purpose function reduces code size quite a bit. --- Makefile.am | 6 +++++- common | 2 +- m4/gnulib-cache.m4 | 2 -- src/cdecl99.c | 13 ++----------- 4 files changed, 8 insertions(+), 15 deletions(-) diff --git a/Makefile.am b/Makefile.am index 3dd5de8..e9a16fc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -65,9 +65,13 @@ dummy $(static_gl_objects): $(gnulib_headers) bin_PROGRAMS = cdecl99 cdecl99_SOURCES = common/src/help.c src/commands.c src/cdecl99.h cdecl99_LDADD = $(libmain_a_OBJECTS) $(libexec_a_OBJECTS) libcdecl.la \ - libgnu.a $(LTLIBICONV) $(LTLIBINTL) $(LTLIBREADLINE) + libgnu.a $(LTLIBINTL) $(LTLIBREADLINE) $(cdecl99_OBJECTS): $(gnulib_headers) +if USE_NLS +cdecl99_SOURCES += common/src/copysym.c +endif + EXTRA_LIBRARIES += libexec.a libexec_a_SOURCES = src/execute.c src/commands.h $(libexec_a_OBJECTS): $(gnulib_headers) diff --git a/common b/common index 70c8454..207d0db 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit 70c84546fa5ecaba26e4ed021b292a5580f304f0 +Subproject commit 207d0dbfbbfa7ad70b59ada3a741895842958885 diff --git a/m4/gnulib-cache.m4 b/m4/gnulib-cache.m4 index 82646fb..3c2bb31 100644 --- a/m4/gnulib-cache.m4 +++ b/m4/gnulib-cache.m4 @@ -50,7 +50,6 @@ # mbswidth \ # readline \ # snprintf \ -# striconv \ # tls # Specification in the form of a few gnulib-tool.m4 macro invocations: @@ -66,7 +65,6 @@ gl_MODULES([ mbswidth readline snprintf - striconv tls ]) gl_AVOID([std-gnu11]) diff --git a/src/cdecl99.c b/src/cdecl99.c index 015cf7a..1da195e 100644 --- a/src/cdecl99.c +++ b/src/cdecl99.c @@ -30,13 +30,13 @@ #include #include #include -#include #include #include #include "cdecl99.h" #include "cdecl.h" #include "help.h" +#include "copysym.h" static const char *progname = "cdecl99"; static bool interactive = true; @@ -65,22 +65,13 @@ void print_error(const char *fmt, ...) static void print_version(void) { - const char *copysign = "(C)"; - void *convsign = NULL; - - if (ENABLE_NLS) { - convsign = str_iconv("\xc2\xa9", "UTF-8", locale_charset()); - if (convsign) - copysign = convsign; - } + const char *copysign = copyright_symbol(locale_charset()); puts(PACKAGE_STRING); printf("Copyright %s 2023 Nick Bowler.\n", copysign); puts("License GPLv3+: GNU GPL version 3 or any later version."); puts("This is free software: you are free to change and redistribute it."); puts("There is NO WARRANTY, to the extent permitted by law."); - - free(convsign); } static void print_usage(FILE *f) -- 2.43.2