configure.in: Check for wchar.h, mbstowcs, and wcswidth.

* configure.in: Check for wchar.h, mbstowcs, and wcswidth.
        * configure, config.in: Regenerate.
        * intl.c (gcc_gettext_width): New function.
        * intl.h: Prototype it.
cp:
        * call.c (print_z_candidates): Use gcc_gettext_width, not
        strlen, to determine how much padding to use.

From-SVN: r65517
This commit is contained in:
Zack Weinberg 2003-04-12 18:07:06 +00:00 committed by Zack Weinberg
parent 48ed72a399
commit 2bd020439a
8 changed files with 62 additions and 9 deletions

View File

@ -1,3 +1,10 @@
2003-04-12 Zack Weinberg <zack@codesourcery.com>
* configure.in: Check for wchar.h, mbstowcs, and wcswidth.
* configure, config.in: Regenerate.
* intl.c (gcc_gettext_width): New function.
* intl.h: Prototype it.
2003-04-12 Stephane Carrez <stcarrez@nerim.fr>
* config/m68hc11/m68hc11.h (TARGET_SWITCHES): Fix -mnominmax option;
@ -52,7 +59,7 @@
* configure: Regenerate.
* config.in: Regenerate.
* config/alpha/t-crtfm: Use -frandom-seed.
* doc/extend.texi (Empty Structures): New.
* c-pch.c: Include flags.h. Add comments to routines.

View File

@ -162,6 +162,9 @@
/* Define if you have the lstat function. */
#undef HAVE_LSTAT
/* Define if you have the mbstowcs function. */
#undef HAVE_MBSTOWCS
/* Define if you have the mempcpy function. */
#undef HAVE_MEMPCPY
@ -216,6 +219,9 @@
/* Define if you have the tsearch function. */
#undef HAVE_TSEARCH
/* Define if you have the wcswidth function. */
#undef HAVE_WCSWIDTH
/* Define if you have the <argz.h> header file. */
#undef HAVE_ARGZ_H
@ -279,6 +285,9 @@
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define if you have the <wchar.h> header file. */
#undef HAVE_WCHAR_H
/* Define to enable the use of a default linker. */
#undef DEFAULT_LINKER

6
gcc/configure vendored
View File

@ -2434,7 +2434,7 @@ fi
# Find some useful tools
for ac_prog in gawk mawk nawk awk
for ac_prog in mawk gawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@ -3102,7 +3102,7 @@ fi
for ac_hdr in limits.h stddef.h string.h strings.h stdlib.h time.h \
fcntl.h unistd.h sys/file.h sys/time.h \
sys/resource.h sys/param.h sys/times.h sys/stat.h \
direct.h malloc.h langinfo.h ldfcn.h
direct.h malloc.h langinfo.h ldfcn.h wchar.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
@ -3714,7 +3714,7 @@ fi
for ac_func in times clock dup2 kill getrlimit setrlimit atoll atoq \
sysconf strsignal putc_unlocked fputc_unlocked fputs_unlocked \
fwrite_unlocked fprintf_unlocked getrusage nl_langinfo lstat \
scandir alphasort gettimeofday
scandir alphasort gettimeofday mbstowcs wcswidth
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:3721: checking for $ac_func" >&5

View File

@ -688,7 +688,7 @@ AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h \
fcntl.h unistd.h sys/file.h sys/time.h \
sys/resource.h sys/param.h sys/times.h sys/stat.h \
direct.h malloc.h langinfo.h ldfcn.h)
direct.h malloc.h langinfo.h ldfcn.h wchar.h)
# Check for thread headers.
AC_CHECK_HEADER(thread.h, [have_thread_h=yes], [have_thread_h=])
@ -787,7 +787,7 @@ dnl gcc_AC_C_ENUM_BF_UNSIGNED
AC_CHECK_FUNCS(times clock dup2 kill getrlimit setrlimit atoll atoq \
sysconf strsignal putc_unlocked fputc_unlocked fputs_unlocked \
fwrite_unlocked fprintf_unlocked getrusage nl_langinfo lstat \
scandir alphasort gettimeofday)
scandir alphasort gettimeofday mbstowcs wcswidth)
AC_CHECK_TYPE(ssize_t, int)

View File

@ -1,3 +1,8 @@
2003-04-12 Zack Weinberg <zack@codesourcery.com>
* call.c (print_z_candidates): Use gcc_gettext_width, not
strlen, to determine how much padding to use.
2003-04-10 Zack Weinberg <zack@codesourcery.com>
* decl.c: Update all calls to shadow_warning.

View File

@ -2508,9 +2508,9 @@ print_z_candidates (struct z_candidate *candidates)
print_z_candidate (str, candidates);
if (candidates->next)
{
/* Indent successive candidates by the length of the translation of
the above string. */
size_t len = strlen (str) + 1;
/* Indent successive candidates by the width of the translation
of the above string. */
size_t len = gcc_gettext_width (str) + 1;
char *spaces = alloca (len);
memset (spaces, ' ', len-1);
spaces[len] = '\0';

View File

@ -45,4 +45,35 @@ gcc_init_libintl ()
(void) textdomain ("gcc");
}
#if defined HAVE_WCHAR_H && defined HAVE_MBSTOWCS && defined HAVE_WCSWIDTH
#include <wchar.h>
/* Returns the width in columns of MSGSTR, which came from gettext.
This is for indenting subsequent output. */
size_t
gcc_gettext_width (msgstr)
const char *msgstr;
{
size_t nwcs = mbstowcs (0, msgstr, 0);
wchar_t *wmsgstr = alloca ((nwcs + 1) * sizeof (wchar_t));
mbstowcs (wmsgstr, msgstr, nwcs + 1);
return wcswidth (wmsgstr, nwcs);
}
#else /* no wcswidth */
/* We don't have any way of knowing how wide the string is. Guess
the length of the string. */
size_t
gcc_gettext_width (msgstr)
const char *msgstr;
{
return strlen (msgstr);
}
#endif
#endif /* ENABLE_NLS */

View File

@ -39,6 +39,7 @@
#ifdef ENABLE_NLS
extern void gcc_init_libintl PARAMS ((void));
extern size_t gcc_gettext_width PARAMS ((const char *));
#else
/* Stubs. */
# undef textdomain