mirror of
https://github.com/matrix-construct/construct
synced 2024-12-26 15:33:54 +01:00
ircd: Remove legacy locale header / unit.
This commit is contained in:
parent
71eba6bf45
commit
da1f3e0d1c
4 changed files with 0 additions and 318 deletions
|
@ -54,7 +54,6 @@
|
||||||
#include "backtrace.h"
|
#include "backtrace.h"
|
||||||
#include "info.h"
|
#include "info.h"
|
||||||
#include "icu.h"
|
#include "icu.h"
|
||||||
#include "locale.h"
|
|
||||||
#include "time.h"
|
#include "time.h"
|
||||||
#include "lex_cast.h"
|
#include "lex_cast.h"
|
||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
|
|
|
@ -1,60 +0,0 @@
|
||||||
// Matrix Construct
|
|
||||||
//
|
|
||||||
// Copyright (C) Matrix Construct Developers, Authors & Contributors
|
|
||||||
// Copyright (C) 2016-2018 Jason Volk <jason@zemos.net>
|
|
||||||
//
|
|
||||||
// Permission to use, copy, modify, and/or distribute this software for any
|
|
||||||
// purpose with or without fee is hereby granted, provided that the above
|
|
||||||
// copyright notice and this permission notice is present in all copies. The
|
|
||||||
// full license for this software is available in the LICENSE file.
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
#define HAVE_IRCD_LOCALE_H
|
|
||||||
|
|
||||||
/// Utilities for internationalization.
|
|
||||||
namespace ircd::locale
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// On newer platforms (gcc-5 etc) these conversions are standard C++.
|
|
||||||
// On older platforms the definition file may use boost::locale.
|
|
||||||
namespace ircd::locale::char16
|
|
||||||
{
|
|
||||||
char conv(const char16_t &);
|
|
||||||
char16_t conv(const char &);
|
|
||||||
|
|
||||||
size_t conv(const char16_t *const &, const size_t &len, char *const &buf, const size_t &max);
|
|
||||||
size_t conv(const char *const &, const size_t &len, char16_t *const &buf, const size_t &max); // uint8_t = max*2
|
|
||||||
|
|
||||||
size_t conv(const char16_t *const &, char *const &buf, const size_t &max);
|
|
||||||
size_t conv(const char *const &, char16_t *const &buf, const size_t &max); // uint8_t = max*2
|
|
||||||
|
|
||||||
std::string conv(const char16_t *const &, const size_t &len);
|
|
||||||
std::string conv(const char16_t *const &);
|
|
||||||
std::string conv(const std::u16string &);
|
|
||||||
|
|
||||||
std::u16string conv(const char *const &, const size_t &len);
|
|
||||||
std::u16string conv(const char *const &);
|
|
||||||
std::u16string conv(const std::string &);
|
|
||||||
|
|
||||||
std::ostream &operator<<(std::ostream &, const std::u16string &);
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace ircd::locale
|
|
||||||
{
|
|
||||||
using char16::operator<<;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace ircd
|
|
||||||
{
|
|
||||||
using locale::operator<<;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline std::ostream &
|
|
||||||
ircd::locale::char16::operator<<(std::ostream &s,
|
|
||||||
const std::u16string &u)
|
|
||||||
{
|
|
||||||
s << conv(u);
|
|
||||||
return s;
|
|
||||||
}
|
|
|
@ -122,7 +122,6 @@ libircd_la_SOURCES += demangle.cc
|
||||||
libircd_la_SOURCES += backtrace.cc
|
libircd_la_SOURCES += backtrace.cc
|
||||||
libircd_la_SOURCES += fpe.cc
|
libircd_la_SOURCES += fpe.cc
|
||||||
libircd_la_SOURCES += icu.cc
|
libircd_la_SOURCES += icu.cc
|
||||||
libircd_la_SOURCES += locale.cc
|
|
||||||
libircd_la_SOURCES += timedate.cc
|
libircd_la_SOURCES += timedate.cc
|
||||||
libircd_la_SOURCES += lex_cast.cc
|
libircd_la_SOURCES += lex_cast.cc
|
||||||
libircd_la_SOURCES += stringops.cc
|
libircd_la_SOURCES += stringops.cc
|
||||||
|
@ -236,7 +235,6 @@ endif
|
||||||
json.lo: AM_CPPFLAGS := ${SPIRIT_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
|
json.lo: AM_CPPFLAGS := ${SPIRIT_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
|
||||||
json.lo: AM_CXXFLAGS := ${SPIRIT_UNIT_CXXFLAGS} ${AM_CXXFLAGS}
|
json.lo: AM_CXXFLAGS := ${SPIRIT_UNIT_CXXFLAGS} ${AM_CXXFLAGS}
|
||||||
lex_cast.lo: AM_CPPFLAGS := @BOOST_CPPFLAGS@ ${AM_CPPFLAGS}
|
lex_cast.lo: AM_CPPFLAGS := @BOOST_CPPFLAGS@ ${AM_CPPFLAGS}
|
||||||
locale.lo: AM_CPPFLAGS := @BOOST_CPPFLAGS@ ${AM_CPPFLAGS}
|
|
||||||
tokens.lo: AM_CPPFLAGS := @BOOST_CPPFLAGS@ ${AM_CPPFLAGS}
|
tokens.lo: AM_CPPFLAGS := @BOOST_CPPFLAGS@ ${AM_CPPFLAGS}
|
||||||
prof.lo: AM_CPPFLAGS := @BOOST_CPPFLAGS@ ${AM_CPPFLAGS}
|
prof.lo: AM_CPPFLAGS := @BOOST_CPPFLAGS@ ${AM_CPPFLAGS}
|
||||||
if MAGIC
|
if MAGIC
|
||||||
|
|
255
ircd/locale.cc
255
ircd/locale.cc
|
@ -1,255 +0,0 @@
|
||||||
// Matrix Construct
|
|
||||||
//
|
|
||||||
// Copyright (C) Matrix Construct Developers, Authors & Contributors
|
|
||||||
// Copyright (C) 2016-2018 Jason Volk <jason@zemos.net>
|
|
||||||
//
|
|
||||||
// Permission to use, copy, modify, and/or distribute this software for any
|
|
||||||
// purpose with or without fee is hereby granted, provided that the above
|
|
||||||
// copyright notice and this permission notice is present in all copies. The
|
|
||||||
// full license for this software is available in the LICENSE file.
|
|
||||||
|
|
||||||
#include <boost/locale.hpp>
|
|
||||||
|
|
||||||
namespace ircd {
|
|
||||||
namespace locale {
|
|
||||||
|
|
||||||
} // namespace locale
|
|
||||||
} // namespace ircd
|
|
||||||
|
|
||||||
#ifdef HAVE_CODECVT
|
|
||||||
std::u16string
|
|
||||||
ircd::locale::char16::conv(const std::string &s)
|
|
||||||
{
|
|
||||||
static std::wstring_convert<std::codecvt_utf8<char16_t>, char16_t> converter;
|
|
||||||
return converter.from_bytes(s);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
std::u16string
|
|
||||||
ircd::locale::char16::conv(const std::string &s)
|
|
||||||
{
|
|
||||||
return boost::locale::conv::utf_to_utf<char16_t>(s);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_CODECVT
|
|
||||||
std::u16string
|
|
||||||
ircd::locale::char16::conv(const char *const &s)
|
|
||||||
{
|
|
||||||
static std::wstring_convert<std::codecvt_utf8<char16_t>, char16_t> converter;
|
|
||||||
return s? converter.from_bytes(s) : std::u16string{};
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
std::u16string
|
|
||||||
ircd::locale::char16::conv(const char *const &s)
|
|
||||||
{
|
|
||||||
return boost::locale::conv::utf_to_utf<char16_t>(s);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_CODECVT
|
|
||||||
std::u16string
|
|
||||||
ircd::locale::char16::conv(const char *const &s,
|
|
||||||
const size_t &len)
|
|
||||||
{
|
|
||||||
static std::wstring_convert<std::codecvt_utf8<char16_t>, char16_t> converter;
|
|
||||||
return s && len? converter.from_bytes(s, s + len) : std::u16string{};
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
std::u16string
|
|
||||||
ircd::locale::char16::conv(const char *const &s,
|
|
||||||
const size_t &len)
|
|
||||||
{
|
|
||||||
return boost::locale::conv::utf_to_utf<char16_t>(s, s + len);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_CODECVT
|
|
||||||
std::string
|
|
||||||
ircd::locale::char16::conv(const std::u16string &s)
|
|
||||||
{
|
|
||||||
static std::wstring_convert<std::codecvt_utf8<char16_t>, char16_t> converter;
|
|
||||||
return converter.to_bytes(s);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
std::string
|
|
||||||
ircd::locale::char16::conv(const std::u16string &s)
|
|
||||||
{
|
|
||||||
return boost::locale::conv::utf_to_utf<char>(s);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_CODECVT
|
|
||||||
std::string
|
|
||||||
ircd::locale::char16::conv(const char16_t *const &s)
|
|
||||||
{
|
|
||||||
static std::wstring_convert<std::codecvt_utf8<char16_t>, char16_t> converter;
|
|
||||||
return s? converter.to_bytes(s) : std::string{};
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
std::string
|
|
||||||
ircd::locale::char16::conv(const char16_t *const &s)
|
|
||||||
{
|
|
||||||
return boost::locale::conv::utf_to_utf<char>(s);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_CODECVT
|
|
||||||
std::string
|
|
||||||
ircd::locale::char16::conv(const char16_t *const &s,
|
|
||||||
const size_t &len)
|
|
||||||
{
|
|
||||||
static std::wstring_convert<std::codecvt_utf8<char16_t>, char16_t> converter;
|
|
||||||
return s && len? converter.to_bytes(s, s + len) : std::string{};
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
std::string
|
|
||||||
ircd::locale::char16::conv(const char16_t *const &s,
|
|
||||||
const size_t &len)
|
|
||||||
{
|
|
||||||
return boost::locale::conv::utf_to_utf<char>(s, s + len);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_CODECVT
|
|
||||||
size_t
|
|
||||||
ircd::locale::char16::conv(const char16_t *const &str,
|
|
||||||
char *const &buf,
|
|
||||||
const size_t &max)
|
|
||||||
{
|
|
||||||
static std::wstring_convert<std::codecvt_utf8<char16_t>, char16_t> converter;
|
|
||||||
|
|
||||||
//TODO: optimize
|
|
||||||
const auto s(converter.to_bytes(str));
|
|
||||||
return strlcpy(buf, s.c_str(), max);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
size_t
|
|
||||||
ircd::locale::char16::conv(const char16_t *const &str,
|
|
||||||
char *const &buf,
|
|
||||||
const size_t &max)
|
|
||||||
{
|
|
||||||
//TODO: optimize
|
|
||||||
const auto s(boost::locale::conv::utf_to_utf<char>(str));
|
|
||||||
return strlcpy(buf, s.c_str(), max);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_CODECVT
|
|
||||||
size_t
|
|
||||||
ircd::locale::char16::conv(const char16_t *const &str,
|
|
||||||
const size_t &len,
|
|
||||||
char *const &buf,
|
|
||||||
const size_t &max)
|
|
||||||
{
|
|
||||||
static std::wstring_convert<std::codecvt_utf8<char16_t>, char16_t> converter;
|
|
||||||
|
|
||||||
//TODO: optimize
|
|
||||||
const auto s(converter.to_bytes(str, str + len));
|
|
||||||
return strlcpy(buf, s.c_str(), max);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
size_t
|
|
||||||
ircd::locale::char16::conv(const char16_t *const &str,
|
|
||||||
const size_t &len,
|
|
||||||
char *const &buf,
|
|
||||||
const size_t &max)
|
|
||||||
{
|
|
||||||
//TODO: optimize
|
|
||||||
const auto s(boost::locale::conv::utf_to_utf<char>(str, str + len));
|
|
||||||
return strlcpy(buf, s.c_str(), max);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_CODECVT
|
|
||||||
size_t
|
|
||||||
ircd::locale::char16::conv(const char *const &str,
|
|
||||||
char16_t *const &buf,
|
|
||||||
const size_t &max)
|
|
||||||
{
|
|
||||||
static std::wstring_convert<std::codecvt_utf8<char16_t>, char16_t> converter;
|
|
||||||
|
|
||||||
if(unlikely(!max))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
//TODO: optimize
|
|
||||||
const auto s(converter.from_bytes(str));
|
|
||||||
const auto cpsz(std::min(s.size(), size_t(max - 1)));
|
|
||||||
memcpy(buf, s.data(), cpsz * 2);
|
|
||||||
buf[cpsz] = char16_t(0);
|
|
||||||
return cpsz;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
size_t
|
|
||||||
ircd::locale::char16::conv(const char *const &str,
|
|
||||||
char16_t *const &buf,
|
|
||||||
const size_t &max)
|
|
||||||
{
|
|
||||||
if(unlikely(!max))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
//TODO: optimize
|
|
||||||
const auto s(boost::locale::conv::utf_to_utf<char16_t>(str));
|
|
||||||
const auto cpsz(std::min(s.size(), size_t(max - 1)));
|
|
||||||
memcpy(buf, s.data(), cpsz * 2);
|
|
||||||
buf[cpsz] = char16_t(0);
|
|
||||||
return cpsz;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_CODECVT
|
|
||||||
size_t
|
|
||||||
ircd::locale::char16::conv(const char *const &str,
|
|
||||||
const size_t &len,
|
|
||||||
char16_t *const &buf,
|
|
||||||
const size_t &max)
|
|
||||||
{
|
|
||||||
static std::wstring_convert<std::codecvt_utf8<char16_t>, char16_t> converter;
|
|
||||||
|
|
||||||
if(unlikely(!max))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
//TODO: optimize
|
|
||||||
const auto s(converter.from_bytes(str, str + len));
|
|
||||||
const auto cpsz(std::min(s.size(), size_t(max - 1)));
|
|
||||||
memcpy(buf, s.data(), cpsz * 2);
|
|
||||||
buf[cpsz] = char16_t(0);
|
|
||||||
return cpsz;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
size_t
|
|
||||||
ircd::locale::char16::conv(const char *const &str,
|
|
||||||
const size_t &len,
|
|
||||||
char16_t *const &buf,
|
|
||||||
const size_t &max)
|
|
||||||
{
|
|
||||||
if(unlikely(!max))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
//TODO: optimize
|
|
||||||
const auto s(boost::locale::conv::utf_to_utf<char16_t>(str, str + len));
|
|
||||||
const auto cpsz(std::min(s.size(), size_t(max - 1)));
|
|
||||||
memcpy(buf, s.data(), cpsz * 2);
|
|
||||||
buf[cpsz] = char16_t(0);
|
|
||||||
return cpsz;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
char16_t
|
|
||||||
ircd::locale::char16::conv(const char &c)
|
|
||||||
{
|
|
||||||
//TODO: optimize
|
|
||||||
char16_t ret[2];
|
|
||||||
char cs[2] = { c, '\0' };
|
|
||||||
conv(cs, ret, 1);
|
|
||||||
return ret[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
char
|
|
||||||
ircd::locale::char16::conv(const char16_t &c)
|
|
||||||
{
|
|
||||||
//TODO: optimize
|
|
||||||
char ret[2];
|
|
||||||
char16_t cs[2] = { c, char16_t(0) };
|
|
||||||
conv(cs, ret, 1);
|
|
||||||
return ret[0];
|
|
||||||
}
|
|
Loading…
Reference in a new issue