Kaydet (Commit) 86a939d5 authored tarafından Mike Kaganski's avatar Mike Kaganski

tdf#114684: don't print pages for ranges completely outside ...

... of possible pages range.

Change-Id: Ibe50f116aecdad8c7cba7f9844bc04c15716d127
Reviewed-on: https://gerrit.libreoffice.org/47052Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMike Kaganski <mike.kaganski@collabora.com>
üst 230d3d66
......@@ -553,6 +553,10 @@ bool StringRangeEnumerator::insertRange( sal_Int32 i_nFirst, sal_Int32 i_nLast,
bool bSuccess = true;
if( bSequence )
{
// Check if the range is completely outside of possible pages range
if ((i_nFirst < mnMin && i_nLast < mnMin) ||
(i_nFirst > mnMax && i_nLast > mnMax))
return false;
if( i_nFirst < mnMin )
i_nFirst = mnMin;
if( i_nFirst > mnMax )
......@@ -640,12 +644,18 @@ bool StringRangeEnumerator::setRange( const OUString& i_rNewRange )
{
bSequence = true;
if( aNumbers.empty() )
aNumbers.push_back( mnMin );
{
// push out-of-range small value, to exclude ranges totally outside of possible range
aNumbers.push_back( mnMin-1 );
}
}
else if( *pInput == ',' || *pInput == ';' )
{
if( bSequence && !aNumbers.empty() )
aNumbers.push_back( mnMax );
{
// push out-of-range large value, to exclude ranges totally outside of possible range
aNumbers.push_back( mnMax+1 );
}
insertJoinedRanges( aNumbers );
aNumbers.clear();
......@@ -659,7 +669,10 @@ bool StringRangeEnumerator::setRange( const OUString& i_rNewRange )
}
// insert last entries
if( bSequence && !aNumbers.empty() )
aNumbers.push_back( mnMax );
{
// push out-of-range large value, to exclude ranges totally outside of possible range
aNumbers.push_back( mnMax+1 );
}
insertJoinedRanges( aNumbers );
return true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment