예제 #1
0
static PyObject *meth_QByteArrayMatcher_setPattern(PyObject *sipSelf, PyObject *sipArgs)
{
    PyObject *sipParseErr = NULL;

    {
        const QByteArray* a0;
        int a0State = 0;
        QByteArrayMatcher *sipCpp;

        if (sipParseArgs(&sipParseErr, sipArgs, "BJ1", &sipSelf, sipType_QByteArrayMatcher, &sipCpp, sipType_QByteArray, &a0, &a0State))
        {
            Py_BEGIN_ALLOW_THREADS
            sipCpp->setPattern(*a0);
            Py_END_ALLOW_THREADS
            sipReleaseType(const_cast<QByteArray *>(a0),sipType_QByteArray,a0State);

            Py_INCREF(Py_None);
            return Py_None;
        }
    }

    /* Raise an exception if the arguments couldn't be parsed. */
    sipNoMethod(sipParseErr, sipName_QByteArrayMatcher, sipName_setPattern, doc_QByteArrayMatcher_setPattern);

    return NULL;
}
void tst_QByteArrayMatcher::indexIn()
{
    const char p_data[] = { 0x0, 0x0, 0x1 };
    QByteArray pattern(p_data, sizeof(p_data));

    QByteArray haystack(8, '\0');
    haystack[7] = 0x1;

    matcher = QByteArrayMatcher(pattern);
    QCOMPARE(matcher.indexIn(haystack, 0), 5);
    QCOMPARE(matcher.indexIn(haystack, 1), 5);
    QCOMPARE(matcher.indexIn(haystack, 2), 5);

    matcher.setPattern(pattern);
    QCOMPARE(matcher.indexIn(haystack, 0), 5);
    QCOMPARE(matcher.indexIn(haystack, 1), 5);
    QCOMPARE(matcher.indexIn(haystack, 2), 5);
}
QByteArrayMatcher FgXmlProtocol::setSep (const QString& what) {
  QByteArrayMatcher matcher;
  if (what==ProtXmlDef::SepNewlineRep) 
    matcher.setPattern(QString('\n').toAscii());
  else if (what==ProtXmlDef::SepTabRep) 
    matcher.setPattern(QString('\t').toAscii());
  else if (what==ProtXmlDef::SepSpaceRep)
    matcher.setPattern(QString(' ').toAscii());
  else if (what==ProtXmlDef::SepFormfeedRep)
    matcher.setPattern(QString('\f').toAscii());
  else if (what==ProtXmlDef::SepCarriagereturnRep)
    matcher.setPattern(QString('\r').toAscii());
  else if (what==ProtXmlDef::SepVerticaltabRep)
    matcher.setPattern(QString('\v').toAscii());
  else matcher.setPattern(what.toAscii());
    
  return matcher;
}