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, ...@@ -553,6 +553,10 @@ bool StringRangeEnumerator::insertRange( sal_Int32 i_nFirst, sal_Int32 i_nLast,
bool bSuccess = true; bool bSuccess = true;
if( bSequence ) 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 ) if( i_nFirst < mnMin )
i_nFirst = mnMin; i_nFirst = mnMin;
if( i_nFirst > mnMax ) if( i_nFirst > mnMax )
...@@ -640,12 +644,18 @@ bool StringRangeEnumerator::setRange( const OUString& i_rNewRange ) ...@@ -640,12 +644,18 @@ bool StringRangeEnumerator::setRange( const OUString& i_rNewRange )
{ {
bSequence = true; bSequence = true;
if( aNumbers.empty() ) 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 == ';' ) else if( *pInput == ',' || *pInput == ';' )
{ {
if( bSequence && !aNumbers.empty() ) 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 ); insertJoinedRanges( aNumbers );
aNumbers.clear(); aNumbers.clear();
...@@ -659,7 +669,10 @@ bool StringRangeEnumerator::setRange( const OUString& i_rNewRange ) ...@@ -659,7 +669,10 @@ bool StringRangeEnumerator::setRange( const OUString& i_rNewRange )
} }
// insert last entries // insert last entries
if( bSequence && !aNumbers.empty() ) 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 ); insertJoinedRanges( aNumbers );
return true; 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