Example #1
0
  rb_encoding* rb_enc_from_index(int index) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    Encoding* enc = Encoding::from_index(env->state(), index);
    if(enc->nil_p()) return 0;
    return enc->get_encoding();
  }
void UploadVideoImage(LPVOID lpParam)
{
	UploadVideoImageInfo* pUploadInfo = (UploadVideoImageInfo*)lpParam;

	string PackageDataSegment;
	PackageDataSegment.append("site=");
	PackageDataSegment.append(Encoding::Convert(pUploadInfo->strSite, CP_ACP));
	PackageDataSegment.append("&videoid=");
	PackageDataSegment.append(Encoding::Convert(pUploadInfo->strVideoId, CP_ACP));
	PackageDataSegment.append("&xml=%3C%3Fxml%20version%3D%221.0%22%3F%3E%0D%0A%3CFile%20xmlns%3Adt%3D%22urn%3Aschemas-microsoft-com%3Adatatypes%22%3E%3CName%3E");
	PackageDataSegment.append(Encoding::Convert(pUploadInfo->GetFileName(), CP_ACP));
	PackageDataSegment.append("%3C/Name%3E%3CData%20dt%3Adt%3D%22bin.hex%22%3E");
	PackageDataSegment.append(pUploadInfo->GetFileData());
	PackageDataSegment.append("%3C/Data%3E%3C/File%3E");

	vector<BYTE> vPostData(PackageDataSegment.length());
	memcpy(&vPostData.at(0), PackageDataSegment.c_str(), PackageDataSegment.length());

	vector<BYTE> vResponseData;
	WebClient::Download(TEXT("http://wizard2.webdev.com/cgi-bin/article/uploadimages4video"), vResponseData, vPostData);
	vResponseData.push_back(0);

	Encoding encode;
	TSTLSTRING strRetValue = CW2T(encode.Convert((const char*)&vResponseData.at(0), CP_ACP).c_str());

	delete pUploadInfo;
}
ReloadEncodingDialog::ReloadEncodingDialog(TextEdit* textEdit,
                                           const Encoding& fromEncoding,
                                           const Encoding& toEncoding,
                                           QWidget* parent)
    : QDialog(parent),
      m_fromEncoding(fromEncoding),
      m_toEncoding(toEncoding),
      m_textEdit(textEdit) {
  QPushButton* cancelBtn = new QPushButton(tr("&Cancel"));
  QPushButton* reloadBtn = new QPushButton(tr("&Reload"));
  QPushButton* convertBtn = new QPushButton(tr("&Convert"));
  auto buttonBox = new QDialogButtonBox(this);
  // The button box takes ownership of the button
  buttonBox->addButton(reloadBtn, QDialogButtonBox::ActionRole);
  buttonBox->addButton(convertBtn, QDialogButtonBox::ActionRole);
  buttonBox->addButton(cancelBtn, QDialogButtonBox::ResetRole);
  auto label = new QLabel(
      tr("Reload: reload current file from disk in %1\nConvert: convert current text in %1")
          .arg(toEncoding.name()),
      this);
  QVBoxLayout* layout = new QVBoxLayout(this);
  layout->addWidget(label);
  layout->addWidget(buttonBox, 0, Qt::AlignRight);
  setLayout(layout);
  setWindowTitle(tr("%1: Reload or Convert to %2").arg(fromEncoding.name()).arg(toEncoding.name()));
  setFixedHeight(sizeHint().height());

  connect(cancelBtn, &QPushButton::clicked, this, &ReloadEncodingDialog::close);
  connect(reloadBtn, &QPushButton::clicked, this, &ReloadEncodingDialog::reload);
  connect(convertBtn, &QPushButton::clicked, this, &ReloadEncodingDialog::convert);
}
Example #4
0
  rb_encoding* rb_enc_find(const char* name) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    Encoding* enc = Encoding::find(env->state(), name);
    if(enc->nil_p()) return 0;
    return enc->get_encoding();
  }
Example #5
0
  void Encoding::Info::show(STATE, Object* self, int level) {
    Encoding* enc = as<Encoding>(self);

    class_header(state, self);
    indent_attribute(++level, "name"); enc->name()->show_simple(state, level);
    indent_attribute(level, "dummy?"); enc->dummy()->show_simple(state, level);
    close_body(level);
  }
Example #6
0
  Encoding* Encoding::create(STATE, OnigEncodingType* enc, Object* dummy) {
    Encoding* e = state->new_object<Encoding>(G(encoding));

    e->dummy(state, dummy);
    e->encoding_ = enc;

    return e;
  }
Example #7
0
 String* Time::locale_string(STATE, const char* data) {
   String* str = String::create(state, data);
   Encoding* locale = Encoding::find(state, "locale");
   if(!locale->nil_p()) {
     str->encoding(state, locale);
   }
   return str;
 }
Example #8
0
 rb_encoding* rb_filesystem_encoding(void) {
   NativeMethodEnvironment* env = NativeMethodEnvironment::get();
   Encoding* enc = Encoding::find(env->state(), "filesystem");
   if(enc->nil_p()) {
     return rb_ascii8bit_encoding();
   } else {
     return enc->get_encoding();
   }
 }
Example #9
0
 rb_encoding *rb_default_internal_encoding(void) {
   NativeMethodEnvironment* env = NativeMethodEnvironment::get();
   Encoding* enc = Encoding::find(env->state(), "internal");
   if(enc->nil_p()) {
     return 0;
   } else {
     return enc->get_encoding();
   }
 }
Example #10
0
 rb_encoding* rb_locale_encoding(void) {
   NativeMethodEnvironment* env = NativeMethodEnvironment::get();
   Encoding* enc = Encoding::find(env->state(), "locale");
   if(enc->nil_p()) {
     return rb_usascii_encoding();
   } else {
     return enc->get_encoding();
   }
 }
Example #11
0
  Encoding* Encoding::create(STATE, OnigEncodingType* enc, Object* dummy) {
    Encoding* e = state->new_object<Encoding>(G(encoding));

    e->dummy(state, dummy);
    e->encoding_ = enc;
    e->cache_index_ = cCachedOnigDatas - 1;
    e->managed_ = false;

    return e;
  }
Example #12
0
  int rb_enc_get_index(VALUE obj) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    Object* val = env->get_object(obj);
    Encoding* enc = Encoding::get_object_encoding(env->state(), val);

    if(enc->nil_p()) return 0;

    return Encoding::find_index(env->state(), enc->get_encoding()->name);
  }
Example #13
0
std::string estring::toStdString(std::string enc_name) const {
	byte_const_iterator iter = _string.cbegin();
	byte_string str;
	Encoding* enc = Encoding::byName(enc_name);
	while (iter != _string.end()) {
		char_t i = encoding->next(iter);
		enc->append(i, std::back_inserter(str));
	}
	return std::string(reinterpret_cast<char*>(&str[0]));
}
Example #14
0
  rb_encoding* rb_enc_get(VALUE obj) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    Object* val = env->get_object(obj);
    if(!val->reference_p() && !val->symbol_p()) return 0;
    Encoding* enc = Encoding::get_object_encoding(env->state(), val);

    if(enc->nil_p()) return 0;
    return enc->get_encoding();
  }
Example #15
0
  rb_encoding* rb_to_encoding(VALUE obj) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    int index = rb_to_encoding_index(obj);
    if(index < 0) return 0;

    Encoding* enc = try_as<Encoding>(Encoding::from_index(env->state(), index));

    if(!enc) return 0;
    return enc->get_encoding();
  }
Example #16
0
  rb_encoding* rb_enc_get(VALUE obj) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    int index = rb_enc_get_index(obj);
    if(index < 0) return 0;

    Encoding* enc = as<Encoding>(
        Encoding::encoding_list(env->state())->get(env->state(), index));

    return enc->get_encoding();
  }
Example #17
0
  SymbolTable::Kind SymbolTable::detect_kind(STATE, const Symbol* sym) {
    std::string str = strings[sym->index()];
    size_t size = str.size();
    uint8_t* p = reinterpret_cast<uint8_t*>(const_cast<char*>(str.c_str()));

    Encoding* e = Encoding::from_index(state, encodings[sym->index()]);
    OnigEncodingType* enc = e->encoding();

    // Constants start with A-Z, followed by alphanumeric characters or '_' or
    // non-ascii character.
    if(isupper(*p)) {
      uint8_t* e = p + size;
      int n = 0, code = 0;

      for(++p; p < e; p += n) {
        n = Encoding::precise_mbclen(p, e, enc);
        if(!ONIGENC_MBCLEN_CHARFOUND_P(n)) {
          return SymbolTable::eNormal;
        }

        n = ONIGENC_MBCLEN_CHARFOUND_LEN(n);
        code = ONIGENC_MBC_TO_CODE(enc, p, p + n);
        if(!(ONIGENC_IS_CODE_ALNUM(enc, code) || *p == '_' || !ISASCII(*p))) {
          return SymbolTable::eNormal;
        }
      }

      return SymbolTable::eConstant;
    }

    if(p[0] == '@') {
      // A class variable begins with @@
      if(size > 1 && p[1] == '@') {
        return SymbolTable::eCVar;
      }

      // An instance variable can't start with a digit and can't be just @.
      if((size == 1) || (size > 1 && ISDIGIT(p[1]))) {
        return SymbolTable::eNormal;
      }

      // An instance variable begins with @
      return SymbolTable::eIVar;
    }

    // A system variable begins with __
    if(size > 2 && p[0] == '_' && p[1] == '_') {
      return SymbolTable::eSystem;
    }

    // Everything else is normal
    return SymbolTable::eNormal;
  }
void DeleteVideoToServer(LPVOID lpParam)
{
	TCHAR* pKeyBuffer = (TCHAR*)lpParam;
	TSTLSTRING strKey = TSTLSTRING(pKeyBuffer);
	delete [] pKeyBuffer;

	VideoInfo item = VideoDataManager::GetInstance().GetVideoInfo(strKey);

	string PackageDataSegment("VideoID=");
	PackageDataSegment.append(CT2A(item.VideoID.c_str()));

	vector<BYTE> vPostData(PackageDataSegment.length());
	memcpy(&vPostData.at(0), PackageDataSegment.c_str(), PackageDataSegment.length());

	try
	{
		vector<BYTE> vResponseData;
		WebClient::Download(VideoConfig::GetInstance().GetVideoProxyDeleteVideoUrl(), vResponseData, vPostData);
		vResponseData.push_back(0);

		Encoding encode;
		TSTLSTRING strRetValue = CW2T(encode.Convert((const char*)&vResponseData.at(0), CP_UTF8).c_str());
		TSTLSTRING::size_type pos = strRetValue.find(TEXT(":"));
		if(pos == TSTLSTRING::npos)
		{
			TSTLSTRING ErrMsg(TEXT("·þÎñÆ÷·µ»ØÒì³££¡£¨"));
			ErrMsg.append(strRetValue);
			ErrMsg.append(TEXT("£©"));
			VideoDataManager::GetInstance().ErrorDeleteVideoAndResume(strKey, ErrMsg);
			throw Exception(ErrMsg);
		}
		if(TEXT("OK") == strRetValue.substr(0, pos))
		{
			TSTLSTRING strMsg(item.VideoName);
			CTipsDlg::ShowTips(strMsg, false);
			VideoDataManager::GetInstance().LocalDeleteVideo(strKey);
		}
		else
		{
			TSTLSTRING ErrMsg(TEXT("ɾ³ýÊÓƵʧ°Ü£¡£¨"));
			ErrMsg.append(strRetValue.substr(pos + 1));
			ErrMsg.append(TEXT("£©"));
			VideoDataManager::GetInstance().ErrorDeleteVideoAndResume(strKey, ErrMsg);
			throw Exception(ErrMsg);
		}
	}
	catch(Exception& error)
	{
		VideoDataManager::GetInstance().VideoFail(strKey, error.GetMessage());
		MessageBox(NULL, error.GetMessage().c_str(), TEXT("´íÎó"), MB_OK|MB_ICONERROR);
	}

}
Example #19
0
  Encoding* Encoding::define(STATE, const char* name,
                             OnigEncodingType* enc, Object* dummy)
  {
    Encoding* e = create(state, enc, dummy);

    e->name(state, String::create(state, name));

    symbol_map(state)->store(state, state->symbol(name), e);
    add_constant(state, name, e);

    return e;
  }
Example #20
0
  int rb_enc_get_index(VALUE obj) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    Object* val = env->get_object(obj);
    if(!val->reference_p() && !val->symbol_p()) return -1;

    Encoding* enc = Encoding::get_object_encoding(env->state(), val);

    if(enc->nil_p()) return 0;

    return Encoding::find_index(env->state(), enc->name()->c_str(env->state()));
  }
Example #21
0
void DecompressFile(){
	cout << " What is the name of the file you want to decompress? " << endl;
	string compressedFileName = GetLine();
	ibstream filetoDecompress;
	filetoDecompress.open(compressedFileName.c_str());
	if (filetoDecompress.fail()) Error(" Failed to open the specified file");
	cout << " What should we name the decompressed file? " << endl;
	string newDecompedFile = GetLine();

	Encoding dfile;
	obstream decompedFile;
	decompedFile.open(newDecompedFile.c_str());
	dfile.decompress(filetoDecompress, decompedFile);
}
Example #22
0
void CompressFile(){
	Encoding inputFile;
	cout << " What is the file name? " << endl;
	string inputFileName = GetLine();
	ibstream infile;
	infile.open(inputFileName.c_str());
	if (infile.fail()) Error("Can't open input file!");					
	cout << " What do you want to name the compressed file? " << endl;
	string newFileName = GetLine();
	obstream outfile;
	outfile.open(newFileName.c_str());
	if (outfile.fail())Error("That is not a valid file name");
	inputFile.compress(infile, outfile);
}
QString Utils::jsFromScriptFile(const QString& scriptPath, const Encoding& enc)
{
    QFile jsFile(scriptPath);
    if (jsFile.exists() && jsFile.open(QFile::ReadOnly)) {
        QString scriptBody = enc.decode(jsFile.readAll());
        // Remove CLI script heading
        if (scriptBody.startsWith("#!") && !jsFile.fileName().endsWith(COFFEE_SCRIPT_EXTENSION)) {
            scriptBody.prepend("//");
        }

        if (jsFile.fileName().endsWith(COFFEE_SCRIPT_EXTENSION)) {
            QVariant result = Utils::coffee2js(scriptBody);
            if (result.toStringList().at(0) == "false") {
                return QString();
            } else {
                scriptBody = result.toStringList().at(1);
            }
        }
        jsFile.close();

        return scriptBody;
    } else {
        return QString();
    }
}
Example #24
0
static QString jsFromScriptFile(const QString& scriptPath, const QString& scriptLanguage, const Encoding& enc)
{
    QFile jsFile(scriptPath);
    if (jsFile.exists() && jsFile.open(QFile::ReadOnly)) {
        QString scriptBody = enc.decode(jsFile.readAll());
        jsFile.close();

        // Remove CLI script heading
        if (scriptBody.startsWith("#!")) {
            int len = scriptBody.indexOf(QRegExp("[\r\n]"));
            if (len == -1) {
                len = scriptBody.length();
            }
            scriptBody.remove(0, len);
        }

        // If a language is specified and is not "javascript", reject it.
        if (scriptLanguage != "javascript" && !scriptLanguage.isNull()) {
            QString errMessage = QString("Unsupported language: %1").arg(scriptLanguage);
            Terminal::instance()->cerr(errMessage);
            qWarning("%s", qPrintable(errMessage));
            return QString();
        }

        return scriptBody;
    } else {
        return QString();
    }
}
Example #25
0
  void Encoding::init(STATE) {
    onig_init();  // in regexp.cpp too, but idempotent.

    Class* enc = ontology::new_class_under(state, "EncodingClass", G(rubinius));

    GO(encoding).set(ontology::new_class_under(state, "Encoding", enc));
    G(encoding)->set_object_type(state, EncodingType);

    enc->set_const(state, "EncodingMap", LookupTable::create(state));
    enc->set_const(state, "EncodingList", Array::create(state, 3));

    G(encoding)->set_ivar(state, state->symbol("@default_external"), G(undefined));
    G(encoding)->set_ivar(state, state->symbol("@default_internal"), G(undefined));

    Encoding* ascii = create_bootstrap(state, "US-ASCII", eAscii, ONIG_ENCODING_US_ASCII);
    Encoding* binary = create_bootstrap(state, "ASCII-8BIT", eBinary, ONIG_ENCODING_ASCII);
    Encoding* utf8 = create_bootstrap(state, "UTF-8", eUtf8, ONIG_ENCODING_UTF_8);

    ascii->name(state, String::create(state, "US-ASCII"));
    binary->name(state, String::create(state, "ASCII-8BIT"));
    utf8->name(state, String::create(state, "UTF-8"));

#include "vm/gen/encoding_database.cpp"

    int index = -1;
    char* locale_charmap;

#ifdef HAVE_NL_LANGINFO
    setlocale(LC_CTYPE, "");
    locale_charmap = nl_langinfo(CODESET);
#else
    locale_charmap = "US-ASCII";
#endif

    enc->set_const(state, "LocaleCharmap", String::create(state, locale_charmap));

    index = find_index(state, locale_charmap);
    if(index < 0) index = find_index(state, "US-ASCII");

    create_internal(state, "locale", index);
    create_internal(state, "external", index);
    create_internal(state, "filesystem", index);
    create_internal(state, "internal", -1);

    Transcoding::init(state);
    Converter::init(state);
  }
int main() {
    {
        MoveToFront<int> move;
        SHOW(move.enter(4));
        SHOW(move.enter(5));
        SHOW(move.enter(6));
        SHOW(move.enter(4));
        SHOW(move.enter(4));
        SHOW(move.enter(5));
        SHOW(move.enter(4));
    }
    {
        Encoding<int> enc;
        enc.add(10, .5f);
        enc.add(11, .125f);
        enc.add(12, .125f);
        enc.add(13, .125f);
        enc.add(12, .125f);
        enc.print();
        SHOW(enc.huffman_cost());
        SHOW(enc.entropy());
        SHOW(enc.norm_entropy());
        enc.print_top_entries("enc", 2, [](const int& i) { return sform("%d", i); });
    }
    {
        DeltaEncoding de;
        de.enter_sign(0);
        de.enter_bits(3);
        de.enter_sign(0);
        de.enter_bits(4);
        de.enter_sign(1);
        de.enter_bits(5);
        de.enter_sign(1);
        de.enter_bits(4);
        de.enter_sign(1);
        de.enter_bits(3);
        int total_bits = de.analyze("de");
        SHOW(total_bits);
        SHOW(DeltaEncoding::val_bits(13.f));
        SHOW(DeltaEncoding::val_bits(3.15f));
        SHOW(DeltaEncoding::val_bits(3.1f));
        SHOW(DeltaEncoding::val_bits(3.f));
        SHOW(DeltaEncoding::val_bits(2.5f));
        SHOW(DeltaEncoding::val_bits(2.2f));
        SHOW(DeltaEncoding::val_bits(2.0f));
        SHOW(DeltaEncoding::val_bits(1.5f));
        SHOW(DeltaEncoding::val_bits(1.0f));
        SHOW(DeltaEncoding::val_sign(13.3f));
        SHOW(DeltaEncoding::val_sign(-13.3f));
        SHOW(de.total_entropy());
    }
}
Example #27
0
  Encoding* Encoding::define(STATE, const char* name,
                             OnigEncodingType* enc, Object* dummy)
  {
    Encoding* e = create(state, enc, dummy);

    e->name(state, String::create(state, name));

    Array* list = encoding_list(state);
    size_t index = list->size();

    Tuple* ref = encoding_reference(state, index);
    encoding_map(state)->store(state, encoding_symbol(state, name), ref);
    list->set(state, index, e);
    add_constant(state, name, e);

    return e;
  }
Example #28
0
  VALUE rb_external_str_new_with_enc(const char* string, long size, rb_encoding* encoding) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    String* str = String::create(env->state(), string, size);
    str->taint(env->state());

    Encoding* enc = Encoding::find(env->state(), encoding->name);
    if(enc == Encoding::usascii_encoding(env->state())
       && !CBOOL(str->ascii_only_p(env->state()))) {
      str->encoding(env->state(), Encoding::ascii8bit_encoding(env->state()));
    } else {
      str->encoding(env->state(), enc);
    }

    return rb_str_conv_enc(env->get_handle(str), enc->get_encoding(),
                           rb_default_internal_encoding());
  }
Example #29
0
void Genome::FillGenes(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* chromosomeNode, Encoding& encoding){
	for (rapidxml::xml_node<>* geneNode = chromosomeNode->first_node("Gene"); geneNode; geneNode = geneNode->next_sibling("Gene"))
	{
		char* pchRandomData = doc.allocate_string(encoding.RandomData(chromosomeNode).c_str());
		geneNode->value(pchRandomData);

	}


}
Example #30
0
  int rb_enc_get_index(VALUE obj) {
    NativeMethodEnvironment* env = NativeMethodEnvironment::get();

    Object* val = env->get_object(obj);
    Encoding* enc;

    if(String* str = try_as<String>(val)) {
      enc = str->encoding(env->state());
    } else if(Regexp* reg = try_as<Regexp>(val)) {
      enc = reg->encoding(env->state());
    } else if(Symbol* sym = try_as<Symbol>(val)) {
      enc = sym->encoding(env->state());
    } else {
      rb_raise(rb_eArgError, "object does not have an associated Encoding");
    }

    if(enc->nil_p()) return -1;

    return Encoding::find_index(env->state(), enc->get_encoding()->name);
  }