mirror of
https://github.com/mappu/miqt.git
synced 2024-12-22 08:58:37 +00:00
257 lines
8.7 KiB
C++
257 lines
8.7 KiB
C++
#include <QByteArray>
|
|
#include <QChar>
|
|
#include <QList>
|
|
#include <QString>
|
|
#include <QByteArray>
|
|
#include <cstring>
|
|
#include <QTextCodec>
|
|
#define WORKAROUND_INNER_CLASS_DEFINITION_QTextCodec__ConverterState
|
|
#include <QTextDecoder>
|
|
#include <QTextEncoder>
|
|
#include "qtextcodec.h"
|
|
|
|
#include "gen_qtextcodec.h"
|
|
|
|
extern "C" {
|
|
extern void miqt_exec_callback(void* cb, int argc, void* argv);
|
|
}
|
|
|
|
QTextCodec* QTextCodec_CodecForName(QByteArray* name) {
|
|
return QTextCodec::codecForName(*name);
|
|
}
|
|
|
|
QTextCodec* QTextCodec_CodecForNameWithName(const char* name) {
|
|
return QTextCodec::codecForName(name);
|
|
}
|
|
|
|
QTextCodec* QTextCodec_CodecForMib(int mib) {
|
|
return QTextCodec::codecForMib(static_cast<int>(mib));
|
|
}
|
|
|
|
void QTextCodec_AvailableCodecs(QByteArray*** _out, size_t* _out_len) {
|
|
QList<QByteArray> ret = QTextCodec::availableCodecs();
|
|
// Convert QList<> from C++ memory to manually-managed C memory of copy-constructed pointers
|
|
QByteArray** __out = static_cast<QByteArray**>(malloc(sizeof(QByteArray**) * ret.length()));
|
|
for (size_t i = 0, e = ret.length(); i < e; ++i) {
|
|
__out[i] = new QByteArray(ret[i]);
|
|
}
|
|
*_out = __out;
|
|
*_out_len = ret.length();
|
|
}
|
|
|
|
void QTextCodec_AvailableMibs(int** _out, size_t* _out_len) {
|
|
QList<int> ret = QTextCodec::availableMibs();
|
|
// Convert QList<> from C++ memory to manually-managed C memory
|
|
int* __out = static_cast<int*>(malloc(sizeof(int) * ret.length()));
|
|
for (size_t i = 0, e = ret.length(); i < e; ++i) {
|
|
__out[i] = ret[i];
|
|
}
|
|
*_out = __out;
|
|
*_out_len = ret.length();
|
|
}
|
|
|
|
QTextCodec* QTextCodec_CodecForLocale() {
|
|
return QTextCodec::codecForLocale();
|
|
}
|
|
|
|
void QTextCodec_SetCodecForLocale(QTextCodec* c) {
|
|
QTextCodec::setCodecForLocale(c);
|
|
}
|
|
|
|
QTextCodec* QTextCodec_CodecForHtml(QByteArray* ba) {
|
|
return QTextCodec::codecForHtml(*ba);
|
|
}
|
|
|
|
QTextCodec* QTextCodec_CodecForHtml2(QByteArray* ba, QTextCodec* defaultCodec) {
|
|
return QTextCodec::codecForHtml(*ba, defaultCodec);
|
|
}
|
|
|
|
QTextCodec* QTextCodec_CodecForUtfText(QByteArray* ba) {
|
|
return QTextCodec::codecForUtfText(*ba);
|
|
}
|
|
|
|
QTextCodec* QTextCodec_CodecForUtfText2(QByteArray* ba, QTextCodec* defaultCodec) {
|
|
return QTextCodec::codecForUtfText(*ba, defaultCodec);
|
|
}
|
|
|
|
bool QTextCodec_CanEncode(const QTextCodec* self, QChar* param1) {
|
|
return self->canEncode(*param1);
|
|
}
|
|
|
|
bool QTextCodec_CanEncodeWithQString(const QTextCodec* self, const char* param1, size_t param1_Strlen) {
|
|
QString param1_QString = QString::fromUtf8(param1, param1_Strlen);
|
|
return self->canEncode(param1_QString);
|
|
}
|
|
|
|
void QTextCodec_ToUnicode(const QTextCodec* self, QByteArray* param1, char** _out, int* _out_Strlen) {
|
|
QString ret = self->toUnicode(*param1);
|
|
// Convert QString from UTF-16 in C++ RAII memory to UTF-8 in manually-managed C memory
|
|
QByteArray b = ret.toUtf8();
|
|
*_out = static_cast<char*>(malloc(b.length()));
|
|
memcpy(*_out, b.data(), b.length());
|
|
*_out_Strlen = b.length();
|
|
}
|
|
|
|
void QTextCodec_ToUnicodeWithChars(const QTextCodec* self, const char* chars, char** _out, int* _out_Strlen) {
|
|
QString ret = self->toUnicode(chars);
|
|
// Convert QString from UTF-16 in C++ RAII memory to UTF-8 in manually-managed C memory
|
|
QByteArray b = ret.toUtf8();
|
|
*_out = static_cast<char*>(malloc(b.length()));
|
|
memcpy(*_out, b.data(), b.length());
|
|
*_out_Strlen = b.length();
|
|
}
|
|
|
|
QByteArray* QTextCodec_FromUnicode(const QTextCodec* self, const char* uc, size_t uc_Strlen) {
|
|
QString uc_QString = QString::fromUtf8(uc, uc_Strlen);
|
|
QByteArray ret = self->fromUnicode(uc_QString);
|
|
// Copy-construct value returned type into heap-allocated copy
|
|
return static_cast<QByteArray*>(new QByteArray(ret));
|
|
}
|
|
|
|
void QTextCodec_ToUnicode2(const QTextCodec* self, const char* in, int length, char** _out, int* _out_Strlen) {
|
|
QString ret = self->toUnicode(in, static_cast<int>(length));
|
|
// Convert QString from UTF-16 in C++ RAII memory to UTF-8 in manually-managed C memory
|
|
QByteArray b = ret.toUtf8();
|
|
*_out = static_cast<char*>(malloc(b.length()));
|
|
memcpy(*_out, b.data(), b.length());
|
|
*_out_Strlen = b.length();
|
|
}
|
|
|
|
QByteArray* QTextCodec_FromUnicode2(const QTextCodec* self, QChar* in, int length) {
|
|
QByteArray ret = self->fromUnicode(in, static_cast<int>(length));
|
|
// Copy-construct value returned type into heap-allocated copy
|
|
return static_cast<QByteArray*>(new QByteArray(ret));
|
|
}
|
|
|
|
QTextDecoder* QTextCodec_MakeDecoder(const QTextCodec* self) {
|
|
return self->makeDecoder();
|
|
}
|
|
|
|
QTextEncoder* QTextCodec_MakeEncoder(const QTextCodec* self) {
|
|
return self->makeEncoder();
|
|
}
|
|
|
|
QByteArray* QTextCodec_Name(const QTextCodec* self) {
|
|
QByteArray ret = self->name();
|
|
// Copy-construct value returned type into heap-allocated copy
|
|
return static_cast<QByteArray*>(new QByteArray(ret));
|
|
}
|
|
|
|
void QTextCodec_Aliases(const QTextCodec* self, QByteArray*** _out, size_t* _out_len) {
|
|
QList<QByteArray> ret = self->aliases();
|
|
// Convert QList<> from C++ memory to manually-managed C memory of copy-constructed pointers
|
|
QByteArray** __out = static_cast<QByteArray**>(malloc(sizeof(QByteArray**) * ret.length()));
|
|
for (size_t i = 0, e = ret.length(); i < e; ++i) {
|
|
__out[i] = new QByteArray(ret[i]);
|
|
}
|
|
*_out = __out;
|
|
*_out_len = ret.length();
|
|
}
|
|
|
|
int QTextCodec_MibEnum(const QTextCodec* self) {
|
|
return self->mibEnum();
|
|
}
|
|
|
|
void QTextCodec_ToUnicode3(const QTextCodec* self, const char* in, int length, QTextCodec__ConverterState* state, char** _out, int* _out_Strlen) {
|
|
QString ret = self->toUnicode(in, static_cast<int>(length), state);
|
|
// Convert QString from UTF-16 in C++ RAII memory to UTF-8 in manually-managed C memory
|
|
QByteArray b = ret.toUtf8();
|
|
*_out = static_cast<char*>(malloc(b.length()));
|
|
memcpy(*_out, b.data(), b.length());
|
|
*_out_Strlen = b.length();
|
|
}
|
|
|
|
QByteArray* QTextCodec_FromUnicode3(const QTextCodec* self, QChar* in, int length, QTextCodec__ConverterState* state) {
|
|
QByteArray ret = self->fromUnicode(in, static_cast<int>(length), state);
|
|
// Copy-construct value returned type into heap-allocated copy
|
|
return static_cast<QByteArray*>(new QByteArray(ret));
|
|
}
|
|
|
|
QTextDecoder* QTextCodec_MakeDecoder1(const QTextCodec* self, int flags) {
|
|
return self->makeDecoder(static_cast<QTextCodec::ConversionFlags>(flags));
|
|
}
|
|
|
|
QTextEncoder* QTextCodec_MakeEncoder1(const QTextCodec* self, int flags) {
|
|
return self->makeEncoder(static_cast<QTextCodec::ConversionFlags>(flags));
|
|
}
|
|
|
|
QTextEncoder* QTextEncoder_new(QTextCodec* codec) {
|
|
return new QTextEncoder(codec);
|
|
}
|
|
|
|
QTextEncoder* QTextEncoder_new2(QTextCodec* codec, int flags) {
|
|
return new QTextEncoder(codec, static_cast<QTextCodec::ConversionFlags>(flags));
|
|
}
|
|
|
|
QByteArray* QTextEncoder_FromUnicode(QTextEncoder* self, const char* str, size_t str_Strlen) {
|
|
QString str_QString = QString::fromUtf8(str, str_Strlen);
|
|
QByteArray ret = self->fromUnicode(str_QString);
|
|
// Copy-construct value returned type into heap-allocated copy
|
|
return static_cast<QByteArray*>(new QByteArray(ret));
|
|
}
|
|
|
|
QByteArray* QTextEncoder_FromUnicode2(QTextEncoder* self, QChar* uc, int lenVal) {
|
|
QByteArray ret = self->fromUnicode(uc, static_cast<int>(lenVal));
|
|
// Copy-construct value returned type into heap-allocated copy
|
|
return static_cast<QByteArray*>(new QByteArray(ret));
|
|
}
|
|
|
|
bool QTextEncoder_HasFailure(const QTextEncoder* self) {
|
|
return self->hasFailure();
|
|
}
|
|
|
|
void QTextEncoder_Delete(QTextEncoder* self) {
|
|
delete self;
|
|
}
|
|
|
|
QTextDecoder* QTextDecoder_new(QTextCodec* codec) {
|
|
return new QTextDecoder(codec);
|
|
}
|
|
|
|
QTextDecoder* QTextDecoder_new2(QTextCodec* codec, int flags) {
|
|
return new QTextDecoder(codec, static_cast<QTextCodec::ConversionFlags>(flags));
|
|
}
|
|
|
|
void QTextDecoder_ToUnicode(QTextDecoder* self, const char* chars, int lenVal, char** _out, int* _out_Strlen) {
|
|
QString ret = self->toUnicode(chars, static_cast<int>(lenVal));
|
|
// Convert QString from UTF-16 in C++ RAII memory to UTF-8 in manually-managed C memory
|
|
QByteArray b = ret.toUtf8();
|
|
*_out = static_cast<char*>(malloc(b.length()));
|
|
memcpy(*_out, b.data(), b.length());
|
|
*_out_Strlen = b.length();
|
|
}
|
|
|
|
void QTextDecoder_ToUnicodeWithBa(QTextDecoder* self, QByteArray* ba, char** _out, int* _out_Strlen) {
|
|
QString ret = self->toUnicode(*ba);
|
|
// Convert QString from UTF-16 in C++ RAII memory to UTF-8 in manually-managed C memory
|
|
QByteArray b = ret.toUtf8();
|
|
*_out = static_cast<char*>(malloc(b.length()));
|
|
memcpy(*_out, b.data(), b.length());
|
|
*_out_Strlen = b.length();
|
|
}
|
|
|
|
bool QTextDecoder_HasFailure(const QTextDecoder* self) {
|
|
return self->hasFailure();
|
|
}
|
|
|
|
bool QTextDecoder_NeedsMoreData(const QTextDecoder* self) {
|
|
return self->needsMoreData();
|
|
}
|
|
|
|
void QTextDecoder_Delete(QTextDecoder* self) {
|
|
delete self;
|
|
}
|
|
|
|
QTextCodec__ConverterState* QTextCodec__ConverterState_new() {
|
|
return new QTextCodec::ConverterState();
|
|
}
|
|
|
|
QTextCodec__ConverterState* QTextCodec__ConverterState_new2(int f) {
|
|
return new QTextCodec::ConverterState(static_cast<QTextCodec::ConversionFlags>(f));
|
|
}
|
|
|
|
void QTextCodec__ConverterState_Delete(QTextCodec__ConverterState* self) {
|
|
delete self;
|
|
}
|
|
|