#include <locale>
#include <iostream>
+#include <QFile>
+
#include <boost/assert.hpp>
}
+IconvProcessor & utf8ToUcs4()
+{
+ static IconvProcessor iconv(ucs4_codeset, "UTF-8");
+ return iconv;
+}
+
+
+
void utf8_to_ucs4(std::string const & utf8, docstring & ucs4)
{
size_t n = utf8.size();
}
+docstring const from_filesystem8bit(std::string const & s)
+{
+ QByteArray const encoded(s.c_str(), s.length());
+ return qstring_to_ucs4(QFile::decodeName(encoded));
+}
+
+
+std::string const to_filesystem8bit(docstring const & s)
+{
+ QByteArray const encoded = QFile::encodeName(toqstr(s));
+ return std::string(encoded.begin(), encoded.end());
+}
+
+
bool operator==(lyx::docstring const & l, char const * r)
{
int const len = l.length();
if (fill >= 0x80)
throw num_put_failure();
- // 64 is large enough
- std::string s(64, '\0');
+ std::streamsize const sz = b.width() > b.precision() ?
+ b.width() : b.precision();
+ // 64 is large enough, unless width or precision are bigger
+ std::streamsize const wd = (sz > 56 ? sz : 56) + 8;
+ std::string s(wd, '\0');
string_num_put_facet f;
std::string::const_iterator cit = s.begin();
std::string::const_iterator end =