[Libreoffice-commits] .: 3 commits - basic/inc basic/source
August Sodora
augsod at kemper.freedesktop.org
Sat Jan 7 15:33:45 PST 2012
basic/inc/basrid.hxx | 6 ---
basic/source/comp/scanner.cxx | 79 ++++++++++++++++++++++++------------------
basic/source/inc/scanner.hxx | 1
3 files changed, 47 insertions(+), 39 deletions(-)
New commits:
commit d3a52bd7b3fe11fc6cf5f3296dd00eba524e40a0
Author: August Sodora <augsod at gmail.com>
Date: Sat Jan 7 18:32:47 2012 -0500
scanner cleanup for consistency
diff --git a/basic/source/comp/scanner.cxx b/basic/source/comp/scanner.cxx
index 7eb6fb0..25a493a 100644
--- a/basic/source/comp/scanner.cxx
+++ b/basic/source/comp/scanner.cxx
@@ -162,18 +162,18 @@ void SbiScanner::scanAlphanumeric()
void SbiScanner::scanGoto()
{
- sal_Int32 nTestCol = nCol;
- while(nTestCol < aLine.getLength() && theBasicCharClass::get().isWhitespace(aLine[nTestCol]))
- nTestCol++;
+ sal_Int32 n = nCol;
+ while(n < aLine.getLength() && theBasicCharClass::get().isWhitespace(aLine[n]))
+ ++n;
- if(nTestCol + 1 < aLine.getLength())
+ if(n + 1 < aLine.getLength())
{
- ::rtl::OUString aTestSym = aLine.copy(nTestCol, 2);
- if(aTestSym.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("to")))
+ ::rtl::OUString aTemp = aLine.copy(n, 2);
+ if(aTemp.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("to")))
{
aSym = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("goto"));
- pLine += nTestCol + 2 - nCol;
- nCol = nTestCol + 2;
+ pLine += n + 2 - nCol;
+ nCol = n + 2;
}
}
}
commit 1e04280bce397f6c4c6715ab882fa9fd8f372c09
Author: August Sodora <augsod at gmail.com>
Date: Sat Jan 7 18:23:45 2012 -0500
Refactor readLine in scanner
diff --git a/basic/source/comp/scanner.cxx b/basic/source/comp/scanner.cxx
index 1c49f98..7eb6fb0 100644
--- a/basic/source/comp/scanner.cxx
+++ b/basic/source/comp/scanner.cxx
@@ -178,6 +178,40 @@ void SbiScanner::scanGoto()
}
}
+bool SbiScanner::readLine()
+{
+ if(nBufPos >= aBuf.getLength())
+ return false;
+
+ sal_Int32 n = nBufPos;
+ sal_Int32 nLen = aBuf.getLength();
+
+ while(n < nLen && aBuf[n] != '\r' && aBuf[n] != '\n')
+ ++n;
+
+ // Trim trailing whitespace
+ sal_Int32 nEnd = n;
+ while(nBufPos < nEnd && theBasicCharClass::get().isWhitespace(aBuf[nEnd - 1]))
+ --nEnd;
+
+ aLine = aBuf.copy(nBufPos, nEnd - nBufPos);
+
+ // Fast-forward past the line ending
+ if(n + 1 < nLen && aBuf[n] == '\r' && aBuf[n + 1] == '\n')
+ n += 2;
+ else if(n < nLen)
+ n++;
+
+ nBufPos = n;
+ pLine = aLine.getStr();
+
+ ++nLine;
+ nCol = nCol1 = nCol2 = 0;
+ nColLock = 0;
+
+ return true;
+}
+
bool SbiScanner::NextSym()
{
// memorize for the EOLN-case
@@ -195,33 +229,12 @@ bool SbiScanner::NextSym()
// read in line?
if( !pLine )
{
- sal_Int32 n = nBufPos;
- sal_Int32 nLen = aBuf.getLength();
- if( nBufPos >= nLen )
+ if(!readLine())
return false;
- const sal_Unicode* p2 = aBuf.getStr();
- p2 += n;
- while( ( n < nLen ) && ( *p2 != '\n' ) && ( *p2 != '\r' ) )
- p2++, n++;
- // #163944# ignore trailing whitespace
- sal_Int32 nCopyEndPos = n;
- while( (nBufPos < nCopyEndPos) && theBasicCharClass::get().isWhitespace( aBuf[ nCopyEndPos - 1 ] ) )
- --nCopyEndPos;
- aLine = aBuf.copy( nBufPos, nCopyEndPos - nBufPos );
- if( n < nLen )
- {
- if( *p2 == '\r' && *( p2+1 ) == '\n' )
- n += 2;
- else
- n++;
- }
- nBufPos = n;
- pLine = aLine.getStr();
- nOldLine = ++nLine;
- nCol = nCol1 = nCol2 = nOldCol1 = nOldCol2 = 0;
- nColLock = 0;
- }
+ nOldLine = nLine;
+ nOldCol1 = nOldCol2 = 0;
+ }
while( theBasicCharClass::get().isWhitespace( *pLine ) )
pLine++, nCol++, bSpaces = true;
diff --git a/basic/source/inc/scanner.hxx b/basic/source/inc/scanner.hxx
index 96b0658..69c3d87 100644
--- a/basic/source/inc/scanner.hxx
+++ b/basic/source/inc/scanner.hxx
@@ -48,6 +48,7 @@ class SbiScanner
void scanAlphanumeric();
void scanGoto();
+ bool readLine();
protected:
::rtl::OUString aSym;
String aError;
commit db1faf486837c44a69406a53ea67f66a6fe56d34
Author: August Sodora <augsod at gmail.com>
Date: Sat Jan 7 17:50:21 2012 -0500
Remove unused class SttResId
diff --git a/basic/inc/basrid.hxx b/basic/inc/basrid.hxx
index f79778c..ecb55fc 100644
--- a/basic/inc/basrid.hxx
+++ b/basic/inc/basrid.hxx
@@ -31,12 +31,6 @@
#include <tools/resid.hxx>
-class SttResId : public ResId
-{
- public:
- SttResId( sal_uInt32 nId );
-};
-
class BasResId : public ResId
{
public:
More information about the Libreoffice-commits
mailing list