From 1435a1726aa20fdf07da2132e1e0f8f023120dcc Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Tue, 11 Apr 2000 11:11:00 +0000 Subject: Added smart indentation support code. --- src/Document.cxx | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) (limited to 'src/Document.cxx') diff --git a/src/Document.cxx b/src/Document.cxx index 7e4b888fc..709deaf80 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -530,7 +530,7 @@ static void CreateIndentation(char *linebuf, int length, int indent, int tabSize int Document::GetLineIndentation(int line) { int indent = 0; - if (line >= 0) { + if ((line >= 0) && (line < LinesTotal())) { int lineStart = LineStart(line); int length = Length(); for (int i=lineStart;i= lineTop; line--) { int indentOfLine = GetLineIndentation(line); - int indentNew = indentOfLine; if (forwards) - indentNew += IndentSize(); + SetLineIndentation(line, indentOfLine + IndentSize()); else - indentNew -= IndentSize(); - if (indentNew < 0) - indentNew = 0; - if (indentNew != indentOfLine) { - CreateIndentation(linebuf, sizeof(linebuf), indentNew, tabInChars, !useTabs); - int thisLineStart = LineStart(line); - int indentPos = GetLineIndentPosition(line); - DeleteChars(thisLineStart, indentPos - thisLineStart); - InsertString(thisLineStart, linebuf); - } + SetLineIndentation(line, indentOfLine - IndentSize()); } } -- cgit v1.2.3