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