return;
}
- int nTabSize = GetTabSize();
+ const int nTabSize = GetTabSize ();
+
+ // Calculate offset from begin of line
+ int nActualOffset = 0;
+ for (int i = 0; i < nOffset; i++)
+ {
+ if (pszChars[i] == _T ('\t'))
+ nActualOffset += (nTabSize - nActualOffset % nTabSize);
+ else
+ nActualOffset++;
+ }
pszChars += nOffset;
int nLength = nCount;
int nTabCount = 0;
- for (int i = 0; i < nLength; i++)
+ for (i = 0; i < nLength; i++)
{
if (pszChars[i] == _T('\t'))
nTabCount++;
{
if (pszChars[i] == _T('\t'))
{
- int nSpaces = nTabSize - nCurPos % nTabSize;
+ int nSpaces = nTabSize - (nActualOffset + nCurPos) % nTabSize;
if (m_bViewTabs)
{
pszBuf[nCurPos++] = TAB_CHARACTER;
+2003-04-10 Kimmo
+ PATCH: [ 717688 ] CrystalEditor optimisations and memleaks
+ fix tab bug.
+ editlib: ccrystaltextview.cpp
+
2003-04-09 Kimmo
PATCH: [ 717688 ] CrystalEditor optimisations and memleaks
editlib: ccrystaltextview.cpp