diff options
author | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-05-24 19:28:20 +0000 |
---|---|---|
committer | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-05-24 19:28:20 +0000 |
commit | 89e7e0057fced928551d3169ccaec1a106be123b (patch) | |
tree | 8e604d480ecc6f087099ac7d2f0f4f6d9b68c228 /gcc/intl.c | |
parent | b0a309b25cdcff60f332a21043d584943c2e384c (diff) | |
download | gcc-89e7e0057fced928551d3169ccaec1a106be123b.tar.gz |
* intl.h (open_quote, close_quote): New.
* intl.c (open_quote, close_quote): New.
(gcc_init_libintl): Set them.
* pretty-print.c: Include "intl.h".
(pp_base_format_text): Support 'q' format flag and %` and %'
formats. Use ' instead of ` in comments.
* c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
foramt_types_orig): Describe these new formats.
(decode_format_attr, check_function_format,
check_format_info_main): Use these new formats.
(status_warning): Use ATTRIBUTE_GCC_DIAG.
* toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
check these formats to 3.5.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@82215 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/intl.c')
-rw-r--r-- | gcc/intl.c | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/gcc/intl.c b/gcc/intl.c index 04613294ac4..e5aa941021f 100644 --- a/gcc/intl.c +++ b/gcc/intl.c @@ -1,5 +1,5 @@ /* Message translation utilities. - Copyright (C) 2001, 2003 Free Software Foundation, Inc. + Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc. This file is part of GCC. @@ -24,6 +24,16 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include "tm.h" #include "intl.h" +#ifdef HAVE_LANGINFO_CODESET +#include <langinfo.h> +#endif + +/* Opening quotation mark for diagnostics. */ +const char *open_quote = "'"; + +/* Closing quotation mark for diagnostics. */ +const char *close_quote = "'"; + #ifdef ENABLE_NLS /* Initialize the translation library for GCC. This performs the @@ -43,6 +53,33 @@ gcc_init_libintl (void) (void) bindtextdomain ("gcc", LOCALEDIR); (void) textdomain ("gcc"); + + /* Opening quotation mark. */ + open_quote = _("`"); + + /* Closing quotation mark. */ + close_quote = _("'"); + + if (!strcmp (open_quote, "`") && !strcmp (close_quote, "'")) + { +#if defined HAVE_LANGINFO_CODESET + const char *encoding; +#endif + /* Untranslated quotes that it may be possible to replace with + U+2018 and U+2019; but otherwise use "'" instead of "`" as + opening quote. */ + open_quote = "'"; +#if defined HAVE_LANGINFO_CODESET + encoding = nl_langinfo (CODESET); + if (encoding != NULL + && (!strcasecmp (encoding, "utf-8") + || !strcasecmp (encoding, "utf8"))) + { + open_quote = "\xe2\x80\x98"; + close_quote = "\xe2\x80\x99"; + } +#endif + } } #if defined HAVE_WCHAR_H && defined HAVE_WORKING_MBSTOWCS && defined HAVE_WCSWIDTH |