bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: HAVE_LC_MESSAGES


From: Bruno Haible
Subject: Re: HAVE_LC_MESSAGES
Date: Thu, 14 Jul 2011 23:18:41 +0200
User-agent: KMail/1.9.9

Sam Steingold asked:
> Does clisp need to know whether LC_MESSAGES is supported by the system,
> or is a fake one defined by libintl or gnulib.
> ...
> > No, this is not needed: gettext's libintl.h already defines LC_MESSAGES when
> > needed, and clisp uses libintl.h.
> 
> CLISP includes libintl.h only if ENABLE_NLS is defined (i.e., when
> gettext is present).
> It uses HAVE_LC_MESSAGES in spvw_ctype.d:init_ctype which is called
> unconditionally in spvw.d.
> I.e., on platforms without gettext where LC_MESSAGES is not defined
> init_ctype is still called and its call
> 
>   setlocale(LC_MESSAGES,"");
> 
> must be guarded by either "#if HAVE_LC_MESSAGES" or "#ifdef LC_MESSAGES".

By looking at the clisp code history:
  $ hg annotate -r 11858 spvw_ctype.d
  $ hg diff -r 3562 -r 3563
I think the point was to allow the setlocale() call to be enabled even on
platforms where <locale.h> does not have LC_MESSAGES (namely, native Windows).
The macro HAVE_LC_MESSAGES means
  - on Unix platforms, that LC_MESSAGES was found in <locale.h>,
  - on Windows platforms, that gettext is in use (always).

I think you can remove the #if because all Unix platforms nowadays have
LC_MESSAGES.

Bruno
-- 
In memoriam The men and boys of Srebenica 
<http://en.wikipedia.org/wiki/Srebrenica_massacre>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]