Propagate the encoding to TerminalBuffer. It doesn't really belong

there, but that's the easiest solution for the time being.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25887 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2008-06-09 20:12:38 +00:00
parent 066dcdc34b
commit cbe6d01c9d
3 changed files with 17 additions and 3 deletions
+4
View File
@@ -356,6 +356,7 @@ TermView::_InitObject(int32 argc, const char **argv)
status_t error = fTextBuffer->Init(fTermColumns, fTermRows, fScrBufSize);
if (error != B_OK)
return error;
fTextBuffer->SetEncoding(fEncoding);
fShell = new (std::nothrow) Shell();
if (fShell == NULL)
@@ -537,6 +538,9 @@ TermView::SetEncoding(int encoding)
// the string value of encoding. But when this function is called and
// the encoding changes, the new value is never passed to Shell.
fEncoding = encoding;
BAutolock _(fTextBuffer);
fTextBuffer->SetEncoding(fEncoding);
}
+10 -3
View File
@@ -89,7 +89,8 @@ TerminalBuffer::_CursorChanged()
TerminalBuffer::TerminalBuffer()
:
BLocker("terminal buffer"),
fHistory(NULL)
fHistory(NULL),
fEncoding(M_UTF8)
{
}
@@ -145,8 +146,14 @@ TerminalBuffer::SetListener(BMessenger listener)
int
TerminalBuffer::Encoding() const
{
// TODO: Remove, if not needed!
return M_UTF8;
return fEncoding;
}
void
TerminalBuffer::SetEncoding(int encoding)
{
fEncoding = encoding;
}
+3
View File
@@ -50,6 +50,7 @@ public:
void SetListener(BMessenger listener);
int Encoding() const;
void SetEncoding(int encoding);
int32 Width() const { return fWidth; }
int32 Height() const { return fHeight; }
@@ -182,6 +183,8 @@ private:
bool fOverwriteMode; // false for insert
int fEncoding;
// listener/dirty region management
BMessenger fListener;
TerminalBufferDirtyInfo fDirtyInfo;