// edits.cpp defines functions previously found in edits.asm #define Uses_TEditor #include char TV_CDECL TEditor::bufChar( size_t p ) { return buffer[p + ((p >= curPtr) ? gapLen : 0)]; } size_t TV_CDECL TEditor::bufPtr( size_t p ) { return (p >= curPtr) ? p + gapLen : p; } void TV_CDECL TEditor::formatLine( void *DrawBuf, size_t LinePtr, int Width, ushort Color ) { register int i = 0; // index in the DrawBuf register size_t p = LinePtr; // index in the Buffer ushort curColor; while ((p < curPtr) && (buffer[p] != 0x0D) && (i <= Width)) { curColor = (p>=selStart && p= curPtr) { p += gapLen; while ((p < bufSize) && (buffer[p] != 0x0D) && (i <= Width)) { curColor = ((p-gapLen)>=selStart && (p-gapLen)=selStart && p curPtr) if (buffer[--p + gapLen] == 0x0D) return p + 2; if (curPtr == 0) return 0; while (p > 0) if (buffer[--p] == 0x0D) return p + 2; return 0; */ while (p > curPtr) if (buffer[--p + gapLen] == 0x0D) if (p+1 == bufLen || buffer[p+gapLen+1] != 0x0A) return p + 1; else return p + 2; if (curPtr == 0) return 0; while (p > 0) if (buffer[--p] == 0x0D) if (p+1 == bufLen || p+1 == curPtr || buffer[p+1] != 0x0A) return p + 1; else return p + 2; return 0; } size_t TV_CDECL TEditor::nextChar( size_t p ) { if (p == bufLen) return p; if (++p == bufLen) return p; int t = (p >= curPtr) ? p + gapLen : p; return ((buffer [t-1] == 0x0D) && (buffer [t] == 0x0A)) ? p + 1 : p; } size_t TV_CDECL TEditor::prevChar( size_t p ) { if (p == 0) return p; if (--p == 0) return p; int t = (p >= curPtr) ? p + gapLen : p; return ((buffer [t-1] == 0x0D) && (buffer [t] == 0x0A)) ? p - 1 : p; }