From bb69160b48492a44b15015dbf0abcc12c2709fa4 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sat, 12 Jul 2008 01:28:57 +0000 Subject: [PATCH] Changed GetStringFromRegion() to not insert '\n' for soft line breaks. Fixes bug #2515. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26387 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/terminal/BasicTerminalBuffer.cpp | 10 ++++++---- src/apps/terminal/BasicTerminalBuffer.h | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/apps/terminal/BasicTerminalBuffer.cpp b/src/apps/terminal/BasicTerminalBuffer.cpp index 7ee5708531..eb0f5f41ed 100644 --- a/src/apps/terminal/BasicTerminalBuffer.cpp +++ b/src/apps/terminal/BasicTerminalBuffer.cpp @@ -320,7 +320,9 @@ BasicTerminalBuffer::GetStringFromRegion(BString& string, const TermPos& start, // get all but the last line while (pos.y < end.y) { - if (_GetPartialLineString(string, pos.y, pos.x, fWidth)) + TerminalLine* line = _GetPartialLineString(string, pos.y, pos.x, + fWidth); + if (line != NULL && !line->softBreak) string.Append('\n', 1); pos.x = 0; pos.y++; @@ -1347,14 +1349,14 @@ BasicTerminalBuffer::_InsertGap(int32 width) /*! \a endColumn is not inclusive. */ -bool +TerminalLine* BasicTerminalBuffer::_GetPartialLineString(BString& string, int32 row, int32 startColumn, int32 endColumn) const { TerminalLine* lineBuffer = ALLOC_LINE_ON_STACK(fWidth); TerminalLine* line = _HistoryLineAt(row, lineBuffer); if (line == NULL) - return false; + return NULL; if (endColumn > line->length) endColumn = line->length; @@ -1367,7 +1369,7 @@ BasicTerminalBuffer::_GetPartialLineString(BString& string, int32 row, x++; } - return true; + return line; } diff --git a/src/apps/terminal/BasicTerminalBuffer.h b/src/apps/terminal/BasicTerminalBuffer.h index f1593d5fea..3372bcbb0f 100644 --- a/src/apps/terminal/BasicTerminalBuffer.h +++ b/src/apps/terminal/BasicTerminalBuffer.h @@ -160,7 +160,7 @@ protected: void _PadLineToCursor(); static void _TruncateLine(TerminalLine* line, int32 length); void _InsertGap(int32 width); - bool _GetPartialLineString(BString& string, + TerminalLine* _GetPartialLineString(BString& string, int32 row, int32 startColumn, int32 endColumn) const; bool _PreviousChar(TermPos& pos, UTF8Char& c) const;