Ejemplo n.º 1
0
ThreadSafeLocaleHandler::ThreadSafeLocaleHandler() {
  m_category_locale_map = {
#define FILL_IN_CATEGORY_LOCALE_MAP(category) \
  {category, category ## _MASK, #category, ""}
      FILL_IN_CATEGORY_LOCALE_MAP(LC_CTYPE),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_NUMERIC),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_TIME),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_COLLATE),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_MONETARY),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_MESSAGES),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_ALL),
      #ifndef __APPLE__
      FILL_IN_CATEGORY_LOCALE_MAP(LC_PAPER),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_NAME),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_ADDRESS),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_TELEPHONE),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_MEASUREMENT),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_IDENTIFICATION),
      #endif
    #undef FILL_IN_CATEGORY_LOCALE_MAP
  };

  m_locale = s_null_locale;
  reset();
}
Ejemplo n.º 2
0
ThreadSafeLocaleHandler::ThreadSafeLocaleHandler() {
#define FILL_IN_CATEGORY_LOCALE_MAP(category) \
  {category, category ## _MASK, #category, ""}
  m_category_locale_map = {
      FILL_IN_CATEGORY_LOCALE_MAP(LC_CTYPE),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_NUMERIC),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_TIME),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_COLLATE),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_MONETARY),
      #ifndef _MSC_VER
      FILL_IN_CATEGORY_LOCALE_MAP(LC_MESSAGES),
      #endif
      FILL_IN_CATEGORY_LOCALE_MAP(LC_ALL),
      #if !defined(__APPLE__) && !defined(_MSC_VER)
      FILL_IN_CATEGORY_LOCALE_MAP(LC_PAPER),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_NAME),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_ADDRESS),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_TELEPHONE),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_MEASUREMENT),
      FILL_IN_CATEGORY_LOCALE_MAP(LC_IDENTIFICATION),
      #endif
  };
#undef FILL_IN_CATEGORY_LOCALE_MAP

#ifdef _MSC_VER
  _configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
  ::setlocale(LC_ALL, "C");
#else
  m_locale = s_null_locale;
#endif

  reset();
}