TRACE(_T("%c"),ch);\r
int linenum;\r
int index;\r
+ linenum = this->m_ctrlCmdOut.GetLineCount();\r
\r
if( ch == _T('\r') )\r
{\r
- linenum = this->m_ctrlCmdOut.GetLineCount();\r
if(linenum>0)\r
index = this->m_ctrlCmdOut.LineIndex(linenum-1);\r
else\r
index = 0;\r
\r
+ TRACE(_T("line %d\n"),linenum);\r
}else\r
index = -1;\r
\r
this->m_ctrlCmdOut.SetSel(index,-1);\r
- \r
- this->m_ctrlCmdOut.ReplaceSel(CString(ch));\r
- \r
- this->m_ctrlCmdOut.LineScroll(linenum-1);\r
+ \r
+ if( ch != _T('\r') )\r
+ this->m_ctrlCmdOut.ReplaceSel(CString(ch));\r
+ \r
+ int firstline = m_ctrlCmdOut.GetFirstVisibleLine();\r
+ if( linenum - firstline > 4 )\r
+ this->m_ctrlCmdOut.LineScroll(linenum - firstline -4);\r
\r
if( ch == _T('\r') || ch == _T('\n') )\r
{\r