Beispiel #1
0
bool PhoneEmailDetector::FindContent(const string16::const_iterator& begin,
                             const string16::const_iterator& end,
                             size_t* start_pos,
                             size_t* end_pos)
{
#if 0 // CAPPFIX_WEB_NUMBER_PASSING
    FindReset(&m_findState);
    m_foundResult = FOUND_NONE;
    if (m_isPhoneDetectionEnabled)
        m_foundResult = FindPartialNumber(begin, end - begin, &m_findState);
    if (m_foundResult == FOUND_COMPLETE)
        m_prefix = kTelSchemaPrefix;
    else {
        FindReset(&m_findState);
        if (m_isEmailDetectionEnabled)
            m_foundResult = FindPartialEMail(begin, end - begin, &m_findState);
        m_prefix = kEmailSchemaPrefix;
    }
#else
    FindReset(&m_findState);
    m_foundResult = FOUND_NONE;
    if (m_isEmailDetectionEnabled)
        m_foundResult = FindPartialEMail(begin, end - begin, &m_findState);
    if (m_foundResult == FOUND_COMPLETE)
        m_prefix = kEmailSchemaPrefix;
    else {
        FindReset(&m_findState);
        if (m_isPhoneDetectionEnabled)
            m_foundResult = FindPartialNumber(begin, end - begin, &m_findState);
        m_prefix = kTelSchemaPrefix;
    }
#endif // CAPPFIX_WEB_NUMBER_PASSING_END
    *start_pos = m_findState.mStartResult;
    *end_pos = m_findState.mEndResult;
    return m_foundResult == FOUND_COMPLETE;
}
bool PhoneEmailDetector::FindContent(const string16::const_iterator& begin,
                             const string16::const_iterator& end,
                             size_t* start_pos,
                             size_t* end_pos)
{
    #define HANDLE_FOUND_RESULTS() \
            if (foundResult == FOUND_COMPLETE && \
                (m_foundResult != FOUND_COMPLETE || \
                findState.mStartResult < m_findState.mStartResult)) { \
                FindStateCopy(&m_findState, &findState); \
                m_foundResult = foundResult; \
            }

    FindReset(&m_findState);
    m_foundResult = FOUND_NONE;
    if (m_isPhoneDetectionEnabled) {
        FoundState foundResult = FOUND_NONE;
        FindState findState;

        ChinaFindReset(&findState);
        foundResult = ChinaFindPhoneNum(begin, end - begin, &findState);
        HANDLE_FOUND_RESULTS();

        FindReset(&findState);
        foundResult = FindPartialNumber(begin, end - begin, &findState);
        HANDLE_FOUND_RESULTS();
    }

    if (m_foundResult == FOUND_COMPLETE)
        m_prefix = kTelSchemaPrefix;
    else {
        FindReset(&m_findState);
        if (m_isEmailDetectionEnabled)
            m_foundResult = FindPartialEMail(begin, end - begin, &m_findState);
        m_prefix = kEmailSchemaPrefix;
    }
    *start_pos = m_findState.mStartResult;
    *end_pos = m_findState.mEndResult;
    return m_foundResult == FOUND_COMPLETE;
}