Revert "Revert "Update aosp/master libcxx rebase to r263688""
This reverts commit 1d4a1edbc7.
Change-Id: I2909937fe582f2c5552bc86e7f4d2d5cff0de0aa
This commit is contained in:
85
include/support/ibm/locale_mgmt_aix.h
Normal file
85
include/support/ibm/locale_mgmt_aix.h
Normal file
@@ -0,0 +1,85 @@
|
||||
// -*- C++ -*-
|
||||
//===------------------- support/ibm/locale_mgmt_aix.h --------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef _LIBCPP_SUPPORT_IBM_LOCALE_MGMT_AIX_H
|
||||
#define _LIBCPP_SUPPORT_IBM_LOCALE_MGMT_AIX_H
|
||||
|
||||
#if defined(_AIX)
|
||||
#include "cstdlib"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if !defined(_AIX71)
|
||||
// AIX 7.1 and higher has these definitions. Definitions and stubs
|
||||
// are provied here as a temporary workaround on AIX 6.1.
|
||||
|
||||
#define LC_COLLATE_MASK 1
|
||||
#define LC_CTYPE_MASK 2
|
||||
#define LC_MESSAGES_MASK 4
|
||||
#define LC_MONETARY_MASK 8
|
||||
#define LC_NUMERIC_MASK 16
|
||||
#define LC_TIME_MASK 32
|
||||
#define LC_ALL_MASK (LC_COLLATE_MASK | LC_CTYPE_MASK | \
|
||||
LC_MESSAGES_MASK | LC_MONETARY_MASK |\
|
||||
LC_NUMERIC_MASK | LC_TIME_MASK)
|
||||
|
||||
typedef void* locale_t;
|
||||
|
||||
// The following are stubs. They are not supported on AIX 6.1.
|
||||
static inline
|
||||
locale_t newlocale(int category_mask, const char *locale, locale_t base)
|
||||
{
|
||||
_LC_locale_t *newloc, *loc;
|
||||
if ((loc = (_LC_locale_t *)__xopen_locale(locale)) == NULL)
|
||||
{
|
||||
errno = EINVAL;
|
||||
return (locale_t)0;
|
||||
}
|
||||
if ((newloc = (_LC_locale_t *)calloc(1, sizeof(_LC_locale_t))) == NULL)
|
||||
{
|
||||
errno = ENOMEM;
|
||||
return (locale_t)0;
|
||||
}
|
||||
if (!base)
|
||||
base = (_LC_locale_t *)__xopen_locale("C");
|
||||
memcpy(newloc, base, sizeof (_LC_locale_t));
|
||||
if (category_mask & LC_COLLATE_MASK)
|
||||
newloc->lc_collate = loc->lc_collate;
|
||||
if (category_mask & LC_CTYPE_MASK)
|
||||
newloc->lc_ctype = loc->lc_ctype;
|
||||
//if (category_mask & LC_MESSAGES_MASK)
|
||||
// newloc->lc_messages = loc->lc_messages;
|
||||
if (category_mask & LC_MONETARY_MASK)
|
||||
newloc->lc_monetary = loc->lc_monetary;
|
||||
if (category_mask & LC_TIME_MASK)
|
||||
newloc->lc_time = loc->lc_time;
|
||||
if (category_mask & LC_NUMERIC_MASK)
|
||||
newloc->lc_numeric = loc->lc_numeric;
|
||||
return (locale_t)newloc;
|
||||
}
|
||||
static inline
|
||||
void freelocale(locale_t locobj)
|
||||
{
|
||||
free(locobj);
|
||||
}
|
||||
static inline
|
||||
locale_t uselocale(locale_t newloc)
|
||||
{
|
||||
return (locale_t)0;
|
||||
}
|
||||
#endif // !defined(_AIX71)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif // defined(_AIX)
|
||||
#endif // _LIBCPP_SUPPORT_IBM_LOCALE_MGMT_AIX_H
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
#ifndef _LIBCPP_SUPPORT_IBM_XLOCALE_H
|
||||
#define _LIBCPP_SUPPORT_IBM_XLOCALE_H
|
||||
#include <support/ibm/locale_mgmt_aix.h>
|
||||
|
||||
#if defined(_AIX)
|
||||
#include "cstdlib"
|
||||
@@ -21,62 +22,6 @@ extern "C" {
|
||||
#if !defined(_AIX71)
|
||||
// AIX 7.1 and higher has these definitions. Definitions and stubs
|
||||
// are provied here as a temporary workaround on AIX 6.1.
|
||||
|
||||
#define LC_COLLATE_MASK 1
|
||||
#define LC_CTYPE_MASK 2
|
||||
#define LC_MESSAGES_MASK 4
|
||||
#define LC_MONETARY_MASK 8
|
||||
#define LC_NUMERIC_MASK 16
|
||||
#define LC_TIME_MASK 32
|
||||
#define LC_ALL_MASK (LC_COLLATE_MASK | LC_CTYPE_MASK | \
|
||||
LC_MESSAGES_MASK | LC_MONETARY_MASK |\
|
||||
LC_NUMERIC_MASK | LC_TIME_MASK)
|
||||
|
||||
typedef void* locale_t;
|
||||
|
||||
// The following are stubs. They are not supported on AIX 6.1.
|
||||
static inline
|
||||
locale_t newlocale(int category_mask, const char *locale, locale_t base)
|
||||
{
|
||||
_LC_locale_t *newloc, *loc;
|
||||
if ((loc = (_LC_locale_t *)__xopen_locale(locale)) == NULL)
|
||||
{
|
||||
errno = EINVAL;
|
||||
return (locale_t)0;
|
||||
}
|
||||
if ((newloc = (_LC_locale_t *)calloc(1, sizeof(_LC_locale_t))) == NULL)
|
||||
{
|
||||
errno = ENOMEM;
|
||||
return (locale_t)0;
|
||||
}
|
||||
if (!base)
|
||||
base = (_LC_locale_t *)__xopen_locale("C");
|
||||
memcpy(newloc, base, sizeof (_LC_locale_t));
|
||||
if (category_mask & LC_COLLATE_MASK)
|
||||
newloc->lc_collate = loc->lc_collate;
|
||||
if (category_mask & LC_CTYPE_MASK)
|
||||
newloc->lc_ctype = loc->lc_ctype;
|
||||
//if (category_mask & LC_MESSAGES_MASK)
|
||||
// newloc->lc_messages = loc->lc_messages;
|
||||
if (category_mask & LC_MONETARY_MASK)
|
||||
newloc->lc_monetary = loc->lc_monetary;
|
||||
if (category_mask & LC_TIME_MASK)
|
||||
newloc->lc_time = loc->lc_time;
|
||||
if (category_mask & LC_NUMERIC_MASK)
|
||||
newloc->lc_numeric = loc->lc_numeric;
|
||||
return (locale_t)newloc;
|
||||
}
|
||||
static inline
|
||||
void freelocale(locale_t locobj)
|
||||
{
|
||||
free(locobj);
|
||||
}
|
||||
static inline
|
||||
locale_t uselocale(locale_t newloc)
|
||||
{
|
||||
return (locale_t)0;
|
||||
}
|
||||
|
||||
static inline
|
||||
int isalnum_l(int c, locale_t locale)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user