sc/source/core/tool/compiler.cxx | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-)
New commits: commit e1fee5ae6e762994737ec80d2fb267d8b956339a Author: Eike Rathke <er...@redhat.com> Date: Fri Mar 13 16:18:33 2015 +0000 TableRef: scan whatever (translated) item name up to the next ']' closer Change-Id: Ifd18e4dd369a0fbe98da7a7b972c012f5269af3e diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx index fd0bf45..7188176 100644 --- a/sc/source/core/tool/compiler.cxx +++ b/sc/source/core/tool/compiler.cxx @@ -89,6 +89,7 @@ enum ScanState ssGetReference, ssSkipReference, ssGetErrorConstant, + ssGetTableRefItem, ssStop }; @@ -1985,7 +1986,10 @@ Label_MaskStateMachine: else if( nMask & SC_COMPILER_C_CHAR_ERRCONST ) { *pSym++ = c; - eState = ssGetErrorConstant; + if (!maTableRefs.empty() && maTableRefs.back().mnLevel) + eState = ssGetTableRefItem; + else + eState = ssGetErrorConstant; } else if( nMask & SC_COMPILER_C_CHAR_DONTCARE ) { @@ -2188,6 +2192,26 @@ Label_MaskStateMachine: } } break; + case ssGetTableRefItem: + { + // Scan whatever up to the next ']' closer. + if (c != ']') + { + if( pSym == &cSymbol[ MAXSTRLEN-1 ] ) + { + SetError( errStringOverflow); + eState = ssStop; + } + else + *pSym++ = c; + } + else + { + --pSrc; + eState = ssStop; + } + } + break; case ssGetReference: if( pSym == &cSymbol[ MAXSTRLEN-1 ] ) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits