+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;
* 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.
/* 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
/* 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
/* 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
# 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
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
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
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=])
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)
+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.
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';
(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 */
#ifdef ENABLE_NLS
extern void gcc_init_libintl PARAMS ((void));
+extern size_t gcc_gettext_width PARAMS ((const char *));
#else
/* Stubs. */
# undef textdomain