mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-11 05:33:33 +00:00
More unicode work. Fixup some usages.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14968 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
2a06b31354
commit
bb61b2655f
@ -202,18 +202,18 @@ string QLyXKeySym::getSymbolName() const
|
|||||||
|
|
||||||
size_t QLyXKeySym::getUCSEncoded() const
|
size_t QLyXKeySym::getUCSEncoded() const
|
||||||
{
|
{
|
||||||
unsigned short const * ptr = text_.ucs2();
|
if (text_.isEmpty())
|
||||||
std::vector<unsigned short> tmp(ptr, ptr + text_.length());
|
return 0;
|
||||||
|
|
||||||
|
//unsigned short const * ptr = text_.ucs2();
|
||||||
|
//std::vector<unsigned short> tmp(ptr, ptr + text_.length());
|
||||||
|
|
||||||
//lyxerr << "Data is " << tmp << endl;
|
//lyxerr << "Data is " << tmp << endl;
|
||||||
//lyxerr << "Length is " << text_.length() << endl;
|
//lyxerr << "Length is " << text_.length() << endl;
|
||||||
|
|
||||||
if (text_.isEmpty())
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
//size_t res = utf8_to_ucs4(tmp, tmp.length());
|
//size_t res = utf8_to_ucs4(tmp, tmp.length());
|
||||||
//lyxerr << "Res is " << res << endl;
|
//lyxerr << "Res is " << res << endl;
|
||||||
return ucs2_to_ucs4(tmp)[0];
|
return ucs2_to_ucs4(text_.ucs2(), text_.length())[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ QString const toqstr(string const & str)
|
|||||||
QString const toqstr(docstring const & str)
|
QString const toqstr(docstring const & str)
|
||||||
{
|
{
|
||||||
std::vector<unsigned short> ucs2 =
|
std::vector<unsigned short> ucs2 =
|
||||||
ucs4_to_ucs2(str.c_str(), str.length());
|
ucs4_to_ucs2(str.data(), str.length());
|
||||||
ucs2.push_back('\0');
|
ucs2.push_back('\0');
|
||||||
return QString::fromUcs2(&ucs2[0]);
|
return QString::fromUcs2(&ucs2[0]);
|
||||||
}
|
}
|
||||||
@ -149,8 +149,7 @@ string const fromqstr(QString const & str)
|
|||||||
docstring const qstring_to_ucs4(QString const & str)
|
docstring const qstring_to_ucs4(QString const & str)
|
||||||
{
|
{
|
||||||
unsigned short const * const ucs2 = str.ucs2();
|
unsigned short const * const ucs2 = str.ucs2();
|
||||||
std::vector<char_type> const ucs4 = ucs2_to_ucs4(
|
std::vector<char_type> const ucs4 = ucs2_to_ucs4(ucs2, str.length());
|
||||||
std::vector<unsigned short>(ucs2, ucs2 + str.length()));
|
|
||||||
return docstring(ucs4.begin(), ucs4.end());
|
return docstring(ucs4.begin(), ucs4.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ docstring const from_ascii(std::string const & ascii)
|
|||||||
docstring const from_utf8(std::string const & utf8)
|
docstring const from_utf8(std::string const & utf8)
|
||||||
{
|
{
|
||||||
std::vector<boost::uint32_t> const ucs4 =
|
std::vector<boost::uint32_t> const ucs4 =
|
||||||
utf8_to_ucs4(std::vector<char>(utf8.begin(), utf8.end()));
|
utf8_to_ucs4(utf8.data(), utf8.size());
|
||||||
return docstring(ucs4.begin(), ucs4.end());
|
return docstring(ucs4.begin(), ucs4.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ docstring const from_utf8(std::string const & utf8)
|
|||||||
std::string const to_utf8(docstring const & ucs4)
|
std::string const to_utf8(docstring const & ucs4)
|
||||||
{
|
{
|
||||||
std::vector<char> const utf8 =
|
std::vector<char> const utf8 =
|
||||||
ucs4_to_utf8(std::vector<boost::uint32_t>(ucs4.begin(), ucs4.end()));
|
ucs4_to_utf8(ucs4.data(), ucs4.size());
|
||||||
return std::string(utf8.begin(), utf8.end());
|
return std::string(utf8.begin(), utf8.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,19 +125,47 @@ iconv_convert(iconv_t * cd,
|
|||||||
|
|
||||||
|
|
||||||
std::vector<boost::uint32_t> utf8_to_ucs4(std::vector<char> const & utf8str)
|
std::vector<boost::uint32_t> utf8_to_ucs4(std::vector<char> const & utf8str)
|
||||||
|
{
|
||||||
|
return utf8_to_ucs4(&utf8str[0], utf8str.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
std::vector<boost::uint32_t>
|
||||||
|
utf8_to_ucs4(char const * utf8str, size_t ls)
|
||||||
{
|
{
|
||||||
static iconv_t cd = (iconv_t)(-1);
|
static iconv_t cd = (iconv_t)(-1);
|
||||||
return iconv_convert<boost::uint32_t>(&cd, ucs4_codeset, "UTF-8",
|
return iconv_convert<boost::uint32_t>(&cd, ucs4_codeset, "UTF-8",
|
||||||
&utf8str[0], utf8str.size());
|
utf8str, ls);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
boost::uint32_t
|
||||||
|
ucs2_to_ucs4(unsigned short c)
|
||||||
|
{
|
||||||
|
return ucs2_to_ucs4(&c, 1)[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
std::vector<boost::uint32_t>
|
std::vector<boost::uint32_t>
|
||||||
ucs2_to_ucs4(std::vector<unsigned short> const & ucs2str)
|
ucs2_to_ucs4(std::vector<unsigned short> const & ucs2str)
|
||||||
|
{
|
||||||
|
return ucs2_to_ucs4(&ucs2str[0], ucs2str.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
std::vector<boost::uint32_t>
|
||||||
|
ucs2_to_ucs4(unsigned short const * ucs2str, size_t ls)
|
||||||
{
|
{
|
||||||
static iconv_t cd = (iconv_t)(-1);
|
static iconv_t cd = (iconv_t)(-1);
|
||||||
return iconv_convert<boost::uint32_t>(&cd, ucs4_codeset, ucs2_codeset,
|
return iconv_convert<boost::uint32_t>(&cd, ucs4_codeset, ucs2_codeset,
|
||||||
&ucs2str[0], ucs2str.size());
|
ucs2str, ls);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
unsigned short
|
||||||
|
ucs4_to_ucs2(boost::uint32_t c)
|
||||||
|
{
|
||||||
|
return ucs4_to_ucs2(&c, 1)[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -157,24 +185,25 @@ ucs4_to_ucs2(boost::uint32_t const * s, size_t ls)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned short
|
std::vector<char>
|
||||||
ucs4_to_ucs2(boost::uint32_t c)
|
ucs4_to_utf8(boost::uint32_t c)
|
||||||
{
|
|
||||||
boost::uint32_t tmp[] = { c, 0 };
|
|
||||||
return ucs4_to_ucs2(tmp, 1)[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
std::vector<char> ucs4_to_utf8(std::vector<boost::uint32_t> const & ucs4str)
|
|
||||||
{
|
|
||||||
static iconv_t cd = (iconv_t)(-1);
|
|
||||||
return iconv_convert<char>(&cd, "UTF-8", ucs4_codeset,
|
|
||||||
&ucs4str[0], ucs4str.size());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
std::vector<char> ucs4_to_utf8(boost::uint32_t c)
|
|
||||||
{
|
{
|
||||||
static iconv_t cd = (iconv_t)(-1);
|
static iconv_t cd = (iconv_t)(-1);
|
||||||
return iconv_convert<char>(&cd, "UTF-8", ucs4_codeset, &c, 1);
|
return iconv_convert<char>(&cd, "UTF-8", ucs4_codeset, &c, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
std::vector<char>
|
||||||
|
ucs4_to_utf8(std::vector<boost::uint32_t> const & ucs4str)
|
||||||
|
{
|
||||||
|
return ucs4_to_utf8(&ucs4str[0], ucs4str.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
std::vector<char>
|
||||||
|
ucs4_to_utf8(boost::uint32_t const * ucs4str, size_t ls)
|
||||||
|
{
|
||||||
|
static iconv_t cd = (iconv_t)(-1);
|
||||||
|
return iconv_convert<char>(&cd, "UTF-8", ucs4_codeset,
|
||||||
|
ucs4str, ls);
|
||||||
|
}
|
||||||
|
@ -16,25 +16,48 @@
|
|||||||
#include <boost/cstdint.hpp>
|
#include <boost/cstdint.hpp>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
// utf8_to_ucs4
|
||||||
|
|
||||||
|
// A single codepoint conversion for utf8_to_ucs4 does not make
|
||||||
|
// sense, so that function is left out.
|
||||||
|
|
||||||
std::vector<boost::uint32_t>
|
std::vector<boost::uint32_t>
|
||||||
utf8_to_ucs4(std::vector<char> const & utf8str);
|
utf8_to_ucs4(std::vector<char> const & utf8str);
|
||||||
|
|
||||||
|
std::vector<boost::uint32_t>
|
||||||
|
utf8_to_ucs4(char const * utf8str, size_t ls);
|
||||||
|
|
||||||
|
// ucs2_to_ucs4
|
||||||
|
|
||||||
|
boost::uint32_t
|
||||||
|
ucs2_to_ucs4(unsigned short c);
|
||||||
|
|
||||||
std::vector<boost::uint32_t>
|
std::vector<boost::uint32_t>
|
||||||
ucs2_to_ucs4(std::vector<unsigned short> const & ucs2str);
|
ucs2_to_ucs4(std::vector<unsigned short> const & ucs2str);
|
||||||
|
|
||||||
|
std::vector<boost::uint32_t>
|
||||||
|
ucs2_to_ucs4(unsigned short const * ucs2str, size_t ls);
|
||||||
|
|
||||||
|
// ucs4_to_ucs2
|
||||||
|
|
||||||
|
unsigned short
|
||||||
|
ucs4_to_ucs2(boost::uint32_t c);
|
||||||
|
|
||||||
std::vector<unsigned short>
|
std::vector<unsigned short>
|
||||||
ucs4_to_ucs2(std::vector<boost::uint32_t> const & ucs4str);
|
ucs4_to_ucs2(std::vector<boost::uint32_t> const & ucs4str);
|
||||||
|
|
||||||
std::vector<unsigned short>
|
std::vector<unsigned short>
|
||||||
ucs4_to_ucs2(boost::uint32_t const * s, size_t ls);
|
ucs4_to_ucs2(boost::uint32_t const * s, size_t ls);
|
||||||
|
|
||||||
unsigned short
|
// ucs4_to_utf8
|
||||||
ucs4_to_ucs2(boost::uint32_t c);
|
|
||||||
|
std::vector<char>
|
||||||
|
ucs4_to_utf8(boost::uint32_t c);
|
||||||
|
|
||||||
std::vector<char>
|
std::vector<char>
|
||||||
ucs4_to_utf8(std::vector<boost::uint32_t> const & ucs4str);
|
ucs4_to_utf8(std::vector<boost::uint32_t> const & ucs4str);
|
||||||
|
|
||||||
std::vector<char>
|
std::vector<char>
|
||||||
ucs4_to_utf8(boost::uint32_t c);
|
ucs4_to_utf8(boost::uint32_t const * ucs4str, size_t ls);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user