OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [intl.c] - Diff between revs 154 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 154 Rev 816
/* Message translation utilities.
/* Message translation utilities.
   Copyright (C) 2001, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
   Copyright (C) 2001, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
 
 
This file is part of GCC.
This file is part of GCC.
 
 
GCC is free software; you can redistribute it and/or modify it under
GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
Software Foundation; either version 3, or (at your option) any later
version.
version.
 
 
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.
for more details.
 
 
You should have received a copy of the GNU General Public License
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.  */
<http://www.gnu.org/licenses/>.  */
 
 
#include "config.h"
#include "config.h"
#include "system.h"
#include "system.h"
#include "coretypes.h"
#include "coretypes.h"
#include "tm.h"
#include "tm.h"
#include "intl.h"
#include "intl.h"
 
 
#ifdef HAVE_LANGINFO_CODESET
#ifdef HAVE_LANGINFO_CODESET
#include <langinfo.h>
#include <langinfo.h>
#endif
#endif
 
 
/* Opening quotation mark for diagnostics.  */
/* Opening quotation mark for diagnostics.  */
const char *open_quote = "'";
const char *open_quote = "'";
 
 
/* Closing quotation mark for diagnostics.  */
/* Closing quotation mark for diagnostics.  */
const char *close_quote = "'";
const char *close_quote = "'";
 
 
#ifdef ENABLE_NLS
#ifdef ENABLE_NLS
 
 
/* Initialize the translation library for GCC.  This performs the
/* Initialize the translation library for GCC.  This performs the
   appropriate sequence of calls - setlocale, bindtextdomain,
   appropriate sequence of calls - setlocale, bindtextdomain,
   textdomain.  LC_CTYPE determines the character set used by the
   textdomain.  LC_CTYPE determines the character set used by the
   terminal, so it has be set to output messages correctly.  */
   terminal, so it has be set to output messages correctly.  */
 
 
void
void
gcc_init_libintl (void)
gcc_init_libintl (void)
{
{
#ifdef HAVE_LC_MESSAGES
#ifdef HAVE_LC_MESSAGES
  setlocale (LC_CTYPE, "");
  setlocale (LC_CTYPE, "");
  setlocale (LC_MESSAGES, "");
  setlocale (LC_MESSAGES, "");
#else
#else
  setlocale (LC_ALL, "");
  setlocale (LC_ALL, "");
#endif
#endif
 
 
  (void) bindtextdomain ("gcc", LOCALEDIR);
  (void) bindtextdomain ("gcc", LOCALEDIR);
  (void) textdomain ("gcc");
  (void) textdomain ("gcc");
 
 
  /* Opening quotation mark.  */
  /* Opening quotation mark.  */
  open_quote = _("`");
  open_quote = _("`");
 
 
  /* Closing quotation mark.  */
  /* Closing quotation mark.  */
  close_quote = _("'");
  close_quote = _("'");
 
 
  if (!strcmp (open_quote, "`") && !strcmp (close_quote, "'"))
  if (!strcmp (open_quote, "`") && !strcmp (close_quote, "'"))
    {
    {
#if defined HAVE_LANGINFO_CODESET
#if defined HAVE_LANGINFO_CODESET
      const char *encoding;
      const char *encoding;
#endif
#endif
      /* Untranslated quotes that it may be possible to replace with
      /* Untranslated quotes that it may be possible to replace with
         U+2018 and U+2019; but otherwise use "'" instead of "`" as
         U+2018 and U+2019; but otherwise use "'" instead of "`" as
         opening quote.  */
         opening quote.  */
      open_quote = "'";
      open_quote = "'";
#if defined HAVE_LANGINFO_CODESET
#if defined HAVE_LANGINFO_CODESET
      encoding = nl_langinfo (CODESET);
      encoding = nl_langinfo (CODESET);
      if (encoding != NULL
      if (encoding != NULL
          && (!strcasecmp (encoding, "utf-8")
          && (!strcasecmp (encoding, "utf-8")
              || !strcasecmp (encoding, "utf8")))
              || !strcasecmp (encoding, "utf8")))
        {
        {
          open_quote = "\xe2\x80\x98";
          open_quote = "\xe2\x80\x98";
          close_quote = "\xe2\x80\x99";
          close_quote = "\xe2\x80\x99";
        }
        }
#endif
#endif
    }
    }
}
}
 
 
#if defined HAVE_WCHAR_H && defined HAVE_WORKING_MBSTOWCS && defined HAVE_WCSWIDTH
#if defined HAVE_WCHAR_H && defined HAVE_WORKING_MBSTOWCS && defined HAVE_WCSWIDTH
#include <wchar.h>
#include <wchar.h>
 
 
/* Returns the width in columns of MSGSTR, which came from gettext.
/* Returns the width in columns of MSGSTR, which came from gettext.
   This is for indenting subsequent output.  */
   This is for indenting subsequent output.  */
 
 
size_t
size_t
gcc_gettext_width (const char *msgstr)
gcc_gettext_width (const char *msgstr)
{
{
  size_t nwcs = mbstowcs (0, msgstr, 0);
  size_t nwcs = mbstowcs (0, msgstr, 0);
  wchar_t *wmsgstr = alloca ((nwcs + 1) * sizeof (wchar_t));
  wchar_t *wmsgstr = alloca ((nwcs + 1) * sizeof (wchar_t));
 
 
  mbstowcs (wmsgstr, msgstr, nwcs + 1);
  mbstowcs (wmsgstr, msgstr, nwcs + 1);
  return wcswidth (wmsgstr, nwcs);
  return wcswidth (wmsgstr, nwcs);
}
}
 
 
#else  /* no wcswidth */
#else  /* no wcswidth */
 
 
/* We don't have any way of knowing how wide the string is.  Guess
/* We don't have any way of knowing how wide the string is.  Guess
   the length of the string.  */
   the length of the string.  */
 
 
size_t
size_t
gcc_gettext_width (const char *msgstr)
gcc_gettext_width (const char *msgstr)
{
{
  return strlen (msgstr);
  return strlen (msgstr);
}
}
 
 
#endif
#endif
 
 
#endif /* ENABLE_NLS */
#endif /* ENABLE_NLS */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.