Hi Eike
thanks for the info :-)
On Tue, 2007-10-23 at 14:59 +0200, Eike Rathke wrote:
> Hi Noel,
>
> On Tuesday, 2007-10-23 12:32:25 +0100, Noel Power wrote:
>
> > yes you are right, I am just passing SCA_VALID as the nMask so I didn't
> > see this. Given if we change this there is a possibility that someone
> > somewhere depends on the full set of range flags being set
> > do you mean either
> > a) the client of ScRangeList::Parse must take care of this OR
> > b) ScRangeList::Parse should detect the single range was parsed by
> > ScRange::ParseAny and it should apply the remaining flags (
> > SCA_VALID_COL2 | SCA_VALID_ROW2 | SCA_VALID_TAB2 ) OR
>
> Yes, that's what I meant. Of course apply them only if the corresponding
> bit is set for the single address as well.
how about
--- sc/source/core/tool/rangelst.cxx 27 Feb 2007 12:18:02 -0000
1.10
+++ sc/source/core/tool/rangelst.cxx 23 Oct 2007 14:14:58 -0000
@@ -109,15 +109,22 @@ USHORT ScRangeList::Parse( const String&
for ( USHORT i=0; i<nTCount; i++ )
{
aOne = rStr.GetToken( i, cDelimiter );
- // FIXME : broken for Lotus
- if ( aOne.Search( ':' ) == STRING_NOTFOUND )
- { // Range muss es sein
- String aStrTmp( aOne );
- aOne += ':';
- aOne += aStrTmp;
- }
aRange.aStart.SetTab( nTab ); // Default Tab
wenn nicht angegeben
- USHORT nRes = aRange.Parse( aOne, pDoc, eConv );
+ USHORT nRes = aRange.ParseAny( aOne, pDoc,
eConv );
+
+ USHORT nEndRangeBits = SCA_VALID_COL2 |
SCA_VALID_ROW2 | SCA_VALID_TAB2;
+ USHORT nStartRangeBits = SCA_VALID_COL |
SCA_VALID_ROW | SCA_VALID_TAB;
+ USHORT nTmp1 = ( nRes & nStartRangeBits );
+ USHORT nTmp2 = ( nRes & nEndRangeBits );
+ // If we have a valid single range with
+ // any of the address bits we are interested in
+ // set - set the equiv end range bits
+ if ( (nRes & SCA_VALID ) && ( nTmp1 ==
nStartRangeBits ) )
+ {
+ if ( nTmp2 != nEndRangeBits )
+ nRes |= ( nTmp1 << 4 );
+ }
+
if ( (nRes & nMask) == nMask )
Append( aRange );
nResult &= nRes; // alle
gemeinsamen Bits bleiben erhalten
>
is that something like you had in mind?
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]