Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
b9641d17
Kaydet (Commit)
b9641d17
authored
Tem 26, 2013
tarafından
Kohei Yoshida
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
More of the same.
Change-Id: I29c60f2f7a31b69b224d4c910392c88990b48572
üst
7af53e4e
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
19 additions
and
17 deletions
+19
-17
xetable.cxx
sc/source/filter/excel/xetable.cxx
+1
-1
xlformula.cxx
sc/source/filter/excel/xlformula.cxx
+9
-8
xlformula.hxx
sc/source/filter/inc/xlformula.hxx
+1
-1
tool.cxx
sc/source/filter/lotus/tool.cxx
+8
-7
No files found.
sc/source/filter/excel/xetable.cxx
Dosyayı görüntüle @
b9641d17
...
...
@@ -399,7 +399,7 @@ XclExpTableopRef XclExpTableopBuffer::CreateOrExtendTableop(
// try to extract cell references of a multiple operations formula
XclMultipleOpRefs
aRefs
;
if
(
XclTokenArrayHelper
::
GetMultipleOpRefs
(
aRefs
,
rScTokArr
)
)
if
(
XclTokenArrayHelper
::
GetMultipleOpRefs
(
aRefs
,
rScTokArr
,
rScPos
)
)
{
// try to find an existing TABLEOP record for this cell position
for
(
size_t
nPos
=
0
,
nSize
=
maTableopList
.
GetSize
();
!
xRec
&&
(
nPos
<
nSize
);
++
nPos
)
...
...
sc/source/filter/excel/xlformula.cxx
Dosyayı görüntüle @
b9641d17
...
...
@@ -780,14 +780,14 @@ const ScTokenArray* XclTokenArrayHelper::GetSharedFormula( const XclRoot& rRoot,
namespace
{
inline
bool
lclGetAddress
(
ScAddress
&
rAddress
,
const
FormulaToken
&
rToken
)
inline
bool
lclGetAddress
(
ScAddress
&
rAddress
,
const
FormulaToken
&
rToken
,
const
ScAddress
&
rPos
)
{
OpCode
eOpCode
=
rToken
.
GetOpCode
();
bool
bIsSingleRef
=
(
eOpCode
==
ocPush
)
&&
(
rToken
.
GetType
()
==
svSingleRef
);
if
(
bIsSingleRef
)
{
const
ScSingleRefData
&
rRef
=
static_cast
<
const
ScToken
&>
(
rToken
).
GetSingleRef
();
rAddress
.
Set
(
rRef
.
nCol
,
rRef
.
nRow
,
rRef
.
nTab
);
rAddress
=
rRef
.
toAbs
(
rPos
);
bIsSingleRef
=
!
rRef
.
IsDeleted
();
}
return
bIsSingleRef
;
...
...
@@ -795,7 +795,8 @@ inline bool lclGetAddress( ScAddress& rAddress, const FormulaToken& rToken )
}
// namespace
bool
XclTokenArrayHelper
::
GetMultipleOpRefs
(
XclMultipleOpRefs
&
rRefs
,
const
ScTokenArray
&
rScTokArr
)
bool
XclTokenArrayHelper
::
GetMultipleOpRefs
(
XclMultipleOpRefs
&
rRefs
,
const
ScTokenArray
&
rScTokArr
,
const
ScAddress
&
rScPos
)
{
rRefs
.
mbDblRefMode
=
false
;
enum
...
...
@@ -817,32 +818,32 @@ bool XclTokenArrayHelper::GetMultipleOpRefs( XclMultipleOpRefs& rRefs, const ScT
eState
=
(
eOpCode
==
ocOpen
)
?
stOpen
:
stError
;
break
;
case
stOpen
:
eState
=
lclGetAddress
(
rRefs
.
maFmlaScPos
,
*
aIt
)
?
stFormula
:
stError
;
eState
=
lclGetAddress
(
rRefs
.
maFmlaScPos
,
*
aIt
,
rScPos
)
?
stFormula
:
stError
;
break
;
case
stFormula
:
eState
=
bIsSep
?
stFormulaSep
:
stError
;
break
;
case
stFormulaSep
:
eState
=
lclGetAddress
(
rRefs
.
maColFirstScPos
,
*
aIt
)
?
stColFirst
:
stError
;
eState
=
lclGetAddress
(
rRefs
.
maColFirstScPos
,
*
aIt
,
rScPos
)
?
stColFirst
:
stError
;
break
;
case
stColFirst
:
eState
=
bIsSep
?
stColFirstSep
:
stError
;
break
;
case
stColFirstSep
:
eState
=
lclGetAddress
(
rRefs
.
maColRelScPos
,
*
aIt
)
?
stColRel
:
stError
;
eState
=
lclGetAddress
(
rRefs
.
maColRelScPos
,
*
aIt
,
rScPos
)
?
stColRel
:
stError
;
break
;
case
stColRel
:
eState
=
bIsSep
?
stColRelSep
:
((
eOpCode
==
ocClose
)
?
stClose
:
stError
);
break
;
case
stColRelSep
:
eState
=
lclGetAddress
(
rRefs
.
maRowFirstScPos
,
*
aIt
)
?
stRowFirst
:
stError
;
eState
=
lclGetAddress
(
rRefs
.
maRowFirstScPos
,
*
aIt
,
rScPos
)
?
stRowFirst
:
stError
;
rRefs
.
mbDblRefMode
=
true
;
break
;
case
stRowFirst
:
eState
=
bIsSep
?
stRowFirstSep
:
stError
;
break
;
case
stRowFirstSep
:
eState
=
lclGetAddress
(
rRefs
.
maRowRelScPos
,
*
aIt
)
?
stRowRel
:
stError
;
eState
=
lclGetAddress
(
rRefs
.
maRowRelScPos
,
*
aIt
,
rScPos
)
?
stRowRel
:
stError
;
break
;
case
stRowRel
:
eState
=
(
eOpCode
==
ocClose
)
?
stClose
:
stError
;
...
...
sc/source/filter/inc/xlformula.hxx
Dosyayı görüntüle @
b9641d17
...
...
@@ -537,7 +537,7 @@ public:
@descr Requires that the formula contains a single MULTIPLE.OPERATION function call.
Spaces in the formula are silently ignored.
@return true = Multiple operation found, and all references successfully extracted. */
static
bool
GetMultipleOpRefs
(
XclMultipleOpRefs
&
rRefs
,
const
ScTokenArray
&
rScTokArr
);
static
bool
GetMultipleOpRefs
(
XclMultipleOpRefs
&
rRefs
,
const
ScTokenArray
&
rScTokArr
,
const
ScAddress
&
rScPos
);
};
// ----------------------------------------------------------------------------
...
...
sc/source/filter/lotus/tool.cxx
Dosyayı görüntüle @
b9641d17
...
...
@@ -465,16 +465,16 @@ void LotusRangeList::Append( LotusRange* pLR, const String& rName )
ScSingleRefData
*
pSingRef
=
&
aComplRef
.
Ref1
;
pSingRef
->
nCol
=
pLR
->
nColStart
;
pSingRef
->
nRow
=
pLR
->
nRowStart
;
pSingRef
->
SetAbsCol
(
pLR
->
nColStart
)
;
pSingRef
->
SetAbsRow
(
pLR
->
nRowStart
)
;
if
(
pLR
->
IsSingle
()
)
aTokArray
.
AddSingleReference
(
*
pSingRef
);
else
{
pSingRef
=
&
aComplRef
.
Ref2
;
pSingRef
->
nCol
=
pLR
->
nColEnd
;
pSingRef
->
nRow
=
pLR
->
nRowEnd
;
pSingRef
->
SetAbsCol
(
pLR
->
nColEnd
)
;
pSingRef
->
SetAbsRow
(
pLR
->
nRowEnd
)
;
aTokArray
.
AddDoubleReference
(
aComplRef
);
}
...
...
@@ -515,11 +515,12 @@ void RangeNameBufferWK3::Add( const String& rOrgName, const ScComplexRefData& rC
const
ScSingleRefData
&
rRef1
=
rCRD
.
Ref1
;
const
ScSingleRefData
&
rRef2
=
rCRD
.
Ref2
;
if
(
rRef1
.
nCol
==
rRef2
.
nCol
&&
rRef1
.
nRow
==
rRef2
.
nRow
&&
rRef1
.
nTab
==
rRef2
.
nTab
)
ScAddress
aAbs1
=
rRef1
.
toAbs
(
ScAddress
());
ScAddress
aAbs2
=
rRef2
.
toAbs
(
ScAddress
());
if
(
aAbs1
==
aAbs2
)
{
pScTokenArray
->
AddSingleReference
(
rCRD
.
Ref1
);
aInsert
.
bSingleRef
=
sal_T
rue
;
aInsert
.
bSingleRef
=
t
rue
;
}
else
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment