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:
parent
48ed72a399
commit
2bd020439a
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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';
|
||||
|
|
31
gcc/intl.c
31
gcc/intl.c
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue