Mercurial > hg > octave-lyh > gnulib-hg
changeset 14177:c6bc5712a6a9
strftime: remove dependencies on multibyte modules
strftime depended on mbrlen, mbsinit, and wchar, but these modules
are needed only if ! MULTIBYTE_IS_FORMAT_SAFE, and that is true
only if __osf__ is defined, and I suspect OSF doesn't need these
other modules. If my guess is wrong, we'll need to come up with a
variant of strftime that doesn't need the multibyte modules.
I discovered this problem when attempting modify Emacs to use the
strftime module. With the previous gnulib, this caused Emacs to
need 31 new files, ranging from lib/config.charset to
m4/wint_t.m4. This was overkill and I expect would be offputting
to the Emacs maintainers. After this change, only 6 new files are
needed, namely strftime.[ch], srtftime.m4, stdbool.in.h,
stdbool.m4, and tm_gmtoff.m4.
* lib/strftime.c (MULTIBYTE_IS_FORMAT_SAFE): Define to 1 always.
Suggested by Bruno Haible in
<http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00238.html>.
* m4/strftime.m4 (gl_FUNC_STRFTIME): Do not require AC_TYPE_MBSTATE_T,
and do not check for wchar.h.
* modules/strftime (Files): Remove m4/mbstate_t.m4.
(Depends-on): Remove mbrlen, mbsinit, wchar.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Tue, 18 Jan 2011 09:40:16 -0800 |
parents | 9fdeb5972bf5 |
children | bdfd0ba6ce2d |
files | ChangeLog lib/strftime.c m4/strftime.m4 modules/strftime |
diffstat | 4 files changed, 31 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,29 @@ +2011-01-18 Paul Eggert <eggert@cs.ucla.edu> + + strftime: remove dependencies on multibyte modules + + strftime depended on mbrlen, mbsinit, and wchar, but these modules + are needed only if ! MULTIBYTE_IS_FORMAT_SAFE, and that is true + only if __osf__ is defined, and I suspect OSF doesn't need these + other modules. If my guess is wrong, we'll need to come up with a + variant of strftime that doesn't need the multibyte modules. + + I discovered this problem when attempting modify Emacs to use the + strftime module. With the previous gnulib, this caused Emacs to + need 31 new files, ranging from lib/config.charset to + m4/wint_t.m4. This was overkill and I expect would be offputting + to the Emacs maintainers. After this change, only 6 new files are + needed, namely strftime.[ch], srtftime.m4, stdbool.in.h, + stdbool.m4, and tm_gmtoff.m4. + + * lib/strftime.c (MULTIBYTE_IS_FORMAT_SAFE): Define to 1 always. + Suggested by Bruno Haible in + <http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00238.html>. + * m4/strftime.m4 (gl_FUNC_STRFTIME): Do not require AC_TYPE_MBSTATE_T, + and do not check for wchar.h. + * modules/strftime (Files): Remove m4/mbstate_t.m4. + (Depends-on): Remove mbrlen, mbsinit, wchar. + 2011-01-18 Bruno Haible <bruno@clisp.org> Tests for module 'get-rusage-as'.
--- a/lib/strftime.c +++ b/lib/strftime.c @@ -48,8 +48,11 @@ GB18030, EUC-TW, BIG5, BIG5-HKSCS, CP950, EUC-JP, EUC-KR, CP949, SHIFT_JIS, CP932, JOHAB) are safe for formats, because the byte '%' cannot occur in a multibyte character except in the first byte. - But this does not hold for the DEC-HANYU encoding used on OSF/1. */ -#if !defined __osf__ + + The DEC-HANYU encoding used on OSF/1 is not safe for formats, but + this encoding has never been seen in real-life use, so we ignore + it. */ +#if !(defined __osf__ && 0) # define MULTIBYTE_IS_FORMAT_SAFE 1 #endif #define DO_MULTIBYTE (! MULTIBYTE_IS_FORMAT_SAFE)
--- a/m4/strftime.m4 +++ b/m4/strftime.m4 @@ -21,11 +21,9 @@ # This defines (or not) HAVE_TZNAME and HAVE_TM_ZONE. AC_REQUIRE([AC_STRUCT_TIMEZONE]) - AC_REQUIRE([AC_TYPE_MBSTATE_T]) AC_REQUIRE([gl_TM_GMTOFF]) AC_CHECK_FUNCS_ONCE([tzset]) - AC_CHECK_HEADERS_ONCE([wchar.h]) AC_DEFINE([my_strftime], [nstrftime], [Define to the name of the strftime replacement function.])