mirror of
https://github.com/xiaoyifang/goldendict-ng.git
synced 2024-11-27 19:24:08 +00:00
epwing:handle invalid position
This commit is contained in:
parent
71935fb929
commit
4282827506
26
epwing.cc
26
epwing.cc
|
@ -352,6 +352,8 @@ void EpwingDictionary::loadArticleNextPage(string & articleHeadword, string & ar
|
||||||
{
|
{
|
||||||
text = QString( "Article reading error: %1")
|
text = QString( "Article reading error: %1")
|
||||||
.arg( QString::fromUtf8( e.what() ) );
|
.arg( QString::fromUtf8( e.what() ) );
|
||||||
|
articleText = string( text.toUtf8().data() );
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
articleHeadword = string( headword.toUtf8().data() );
|
articleHeadword = string( headword.toUtf8().data() );
|
||||||
|
@ -384,9 +386,11 @@ void EpwingDictionary::loadArticlePreviousPage(
|
||||||
{
|
{
|
||||||
Mutex::Lock _( eBook.getLibMutex() );
|
Mutex::Lock _( eBook.getLibMutex() );
|
||||||
pos = eBook.getArticlePreviousPage( headword, text, articlePage, articleOffset, false );
|
pos = eBook.getArticlePreviousPage( headword, text, articlePage, articleOffset, false );
|
||||||
} catch( std::exception & e )
|
}
|
||||||
{
|
catch( std::exception & e ) {
|
||||||
text = QString( "Article reading error: %1" ).arg( QString::fromUtf8( e.what() ) );
|
text = QString( "Article reading error: %1" ).arg( QString::fromUtf8( e.what() ) );
|
||||||
|
articleText = string( text.toUtf8().data() );
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
articleHeadword = string( headword.toUtf8().data() );
|
articleHeadword = string( headword.toUtf8().data() );
|
||||||
|
@ -629,17 +633,17 @@ void EpwingArticleRequest::run()
|
||||||
articlesIncluded.insert( chain[ x ].articleOffset );
|
articlesIncluded.insert( chain[ x ].articleOffset );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Also try to find word in the built-in dictionary index
|
|
||||||
getBuiltInArticle(word, pages, offsets, mainArticles );
|
|
||||||
for( unsigned x = 0; x < alts.size(); ++x )
|
|
||||||
{
|
|
||||||
getBuiltInArticle( alts[ x ], pages, offsets, alternateArticles );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
QRegularExpressionMatch m = RX::Epwing::refWord.match( gd::toQString( word ) );
|
QRegularExpressionMatch m = RX::Epwing::refWord.match( gd::toQString( word ) );
|
||||||
bool ref = m.hasMatch();
|
bool ref = m.hasMatch();
|
||||||
|
|
||||||
|
if( !ref ) {
|
||||||
|
// Also try to find word in the built-in dictionary index
|
||||||
|
getBuiltInArticle( word, pages, offsets, mainArticles );
|
||||||
|
for( unsigned x = 0; x < alts.size(); ++x ) {
|
||||||
|
getBuiltInArticle( alts[ x ], pages, offsets, alternateArticles );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ( mainArticles.empty() && alternateArticles.empty() && !ref)
|
if ( mainArticles.empty() && alternateArticles.empty() && !ref)
|
||||||
{
|
{
|
||||||
// No such word
|
// No such word
|
||||||
|
|
Loading…
Reference in a new issue