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
This commit is contained in:
@@ -320,7 +320,9 @@ BasicTerminalBuffer::GetStringFromRegion(BString& string, const TermPos& start,
|
|||||||
|
|
||||||
// get all but the last line
|
// get all but the last line
|
||||||
while (pos.y < end.y) {
|
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);
|
string.Append('\n', 1);
|
||||||
pos.x = 0;
|
pos.x = 0;
|
||||||
pos.y++;
|
pos.y++;
|
||||||
@@ -1347,14 +1349,14 @@ BasicTerminalBuffer::_InsertGap(int32 width)
|
|||||||
|
|
||||||
/*! \a endColumn is not inclusive.
|
/*! \a endColumn is not inclusive.
|
||||||
*/
|
*/
|
||||||
bool
|
TerminalLine*
|
||||||
BasicTerminalBuffer::_GetPartialLineString(BString& string, int32 row,
|
BasicTerminalBuffer::_GetPartialLineString(BString& string, int32 row,
|
||||||
int32 startColumn, int32 endColumn) const
|
int32 startColumn, int32 endColumn) const
|
||||||
{
|
{
|
||||||
TerminalLine* lineBuffer = ALLOC_LINE_ON_STACK(fWidth);
|
TerminalLine* lineBuffer = ALLOC_LINE_ON_STACK(fWidth);
|
||||||
TerminalLine* line = _HistoryLineAt(row, lineBuffer);
|
TerminalLine* line = _HistoryLineAt(row, lineBuffer);
|
||||||
if (line == NULL)
|
if (line == NULL)
|
||||||
return false;
|
return NULL;
|
||||||
|
|
||||||
if (endColumn > line->length)
|
if (endColumn > line->length)
|
||||||
endColumn = line->length;
|
endColumn = line->length;
|
||||||
@@ -1367,7 +1369,7 @@ BasicTerminalBuffer::_GetPartialLineString(BString& string, int32 row,
|
|||||||
x++;
|
x++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return line;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ protected:
|
|||||||
void _PadLineToCursor();
|
void _PadLineToCursor();
|
||||||
static void _TruncateLine(TerminalLine* line, int32 length);
|
static void _TruncateLine(TerminalLine* line, int32 length);
|
||||||
void _InsertGap(int32 width);
|
void _InsertGap(int32 width);
|
||||||
bool _GetPartialLineString(BString& string,
|
TerminalLine* _GetPartialLineString(BString& string,
|
||||||
int32 row, int32 startColumn,
|
int32 row, int32 startColumn,
|
||||||
int32 endColumn) const;
|
int32 endColumn) const;
|
||||||
bool _PreviousChar(TermPos& pos, UTF8Char& c) const;
|
bool _PreviousChar(TermPos& pos, UTF8Char& c) const;
|
||||||
|
|||||||
Reference in New Issue
Block a user