diff --git a/far/changelog b/far/changelog index 629a26f79b..3fe01d78a1 100644 --- a/far/changelog +++ b/far/changelog @@ -1,4 +1,8 @@ -zg 18.03.2015 16:13:08 +0200 - build 4314 +drkns 18.03.2015 22:06:40 +0200 - build 4315 + +1. Продолжение 4309. + +zg 18.03.2015 16:13:08 +0200 - build 4314 1. уточнение 4309: по ctrla в редакторе выделялся блок неопределённого типа. diff --git a/far/editor.cpp b/far/editor.cpp index c2979c6177..981565ac1e 100644 --- a/far/editor.cpp +++ b/far/editor.cpp @@ -676,7 +676,7 @@ __int64 Editor::VMProcess(int OpCode,void *vParam,__int64 iParam) { int Ret=0; - if (CheckLine(m_it_MBlockStart)) + if (m_it_MBlockStart != Lines.end()) { EditorSelect eSel={sizeof(EditorSelect)}; eSel.BlockType=(Action == 2)?BTYPE_STREAM:BTYPE_COLUMN; @@ -1505,7 +1505,7 @@ int Editor::ProcessKey(const Manager::Key& Key) case KEY_CTRLINS: case KEY_CTRLNUMPAD0: case KEY_RCTRLINS: case KEY_RCTRLNUMPAD0: { - if (/*!EdOpt.PersistentBlocks && */ IsNoSelection()) + if (/*!EdOpt.PersistentBlocks && */ !IsAnySelection()) { m_it_AnyBlockStart = m_it_CurLine; m_it_CurLine->AddSelect(0,-1); @@ -3086,7 +3086,7 @@ Editor::numbered_iterator Editor::DeleteString(numbered_iterator DelPtr, bool De } if (!VBlockSizeY) { - m_it_AnyBlockStart = EndIterator(); + Unselect(); } } @@ -3106,9 +3106,9 @@ Editor::numbered_iterator Editor::DeleteString(numbered_iterator DelPtr, bool De UpdateIterator(m_it_LastGetLine); UpdateIterator(m_it_MBlockStart); - if (m_it_MBlockStart != Lines.end() && !m_it_MBlockStart->IsSelection()) + if (IsAnySelection() && !m_it_AnyBlockStart->IsSelection()) { - m_it_MBlockStart = EndIterator(); + Unselect(); } if (IsLastLine(DelPtr)) @@ -4369,7 +4369,7 @@ void Editor::DeleteBlock() } AddUndoData(UNDO_END); - m_it_AnyBlockStart = EndIterator(); + Unselect(); } @@ -4412,7 +4412,7 @@ void Editor::UnmarkBlock() ++m_it_AnyBlockStart; } - m_it_AnyBlockStart = EndIterator(); + Unselect(); Show(); } @@ -5194,7 +5194,7 @@ void Editor::DeleteVBlock() } AddUndoData(UNDO_END); - m_it_AnyBlockStart = EndIterator(); + Unselect(); } void Editor::VCopy(int Append) diff --git a/far/editor.hpp b/far/editor.hpp index e9709761fc..76efdf9a00 100644 --- a/far/editor.hpp +++ b/far/editor.hpp @@ -314,7 +314,8 @@ class Editor: public SimpleScreenObject bool IsAnySelection() const { assert(Lines.end() == m_it_AnyBlockStart || m_BlockType != BTYPE_NONE); return Lines.end() != m_it_AnyBlockStart; } bool IsStreamSelection() const { return IsAnySelection() && m_BlockType == BTYPE_STREAM; } bool IsVerticalSelection() const { return IsAnySelection() && m_BlockType == BTYPE_COLUMN; } - bool IsNoSelection() const { return !IsAnySelection(); } + + void Unselect() { m_it_AnyBlockStart = EndIterator(); m_BlockType = BTYPE_NONE; } // ( 0xFF) ScreenObject!!! enum editor_flags diff --git a/far/findfile.cpp b/far/findfile.cpp index ecec509c2f..8b2c22b293 100644 --- a/far/findfile.cpp +++ b/far/findfile.cpp @@ -80,8 +80,6 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "filestr.hpp" #include "exitcode.hpp" -const int CHAR_TABLE_SIZE=5; - // . , FindList->ArcIndex . struct ArcListItem { diff --git a/far/vbuild.m4 b/far/vbuild.m4 index 00a28dad1f..1e68579293 100644 --- a/far/vbuild.m4 +++ b/far/vbuild.m4 @@ -1 +1 @@ -m4_define(BUILD,4314)m4_dnl +m4_define(BUILD,4315)m4_dnl