@@ -564,12 +564,15 @@ void ZepMode::AddCommand(std::shared_ptr<ZepCommand> spCmd)
564
564
return ;
565
565
}
566
566
567
+ auto & undoStack = m_pCurrentWindow->GetBuffer ().GetUndoStack ();
568
+ auto & redoStack = m_pCurrentWindow->GetBuffer ().GetRedoStack ();
569
+
567
570
spCmd->Redo ();
568
- m_undoStack .push (spCmd);
571
+ undoStack .push (spCmd);
569
572
570
573
// Can't redo anything beyond this point
571
574
std::stack<std::shared_ptr<ZepCommand>> empty;
572
- m_redoStack .swap (empty);
575
+ redoStack .swap (empty);
573
576
574
577
if (spCmd->GetCursorAfter ().Valid ())
575
578
{
@@ -584,27 +587,30 @@ void ZepMode::Redo()
584
587
return ;
585
588
}
586
589
587
- if (m_redoStack.empty ())
590
+ auto & undoStack = m_pCurrentWindow->GetBuffer ().GetUndoStack ();
591
+ auto & redoStack = m_pCurrentWindow->GetBuffer ().GetRedoStack ();
592
+
593
+ if (redoStack.empty ())
588
594
return ;
589
595
590
- if (std::dynamic_pointer_cast<ZepCommand_GroupMarker>(m_redoStack .top ()) != nullptr )
596
+ if (std::dynamic_pointer_cast<ZepCommand_GroupMarker>(redoStack .top ()) != nullptr )
591
597
{
592
- m_undoStack .push (m_redoStack .top ());
593
- m_redoStack .pop ();
598
+ undoStack .push (redoStack .top ());
599
+ redoStack .pop ();
594
600
}
595
601
596
- while (!m_redoStack .empty ())
602
+ while (!redoStack .empty ())
597
603
{
598
- auto & spCommand = m_redoStack .top ();
604
+ auto & spCommand = redoStack .top ();
599
605
spCommand->Redo ();
600
606
601
607
if (spCommand->GetCursorAfter ().Valid ())
602
608
{
603
609
GetCurrentWindow ()->SetBufferCursor (spCommand->GetCursorAfter ());
604
610
}
605
611
606
- m_undoStack .push (spCommand);
607
- m_redoStack .pop ();
612
+ undoStack .push (spCommand);
613
+ redoStack .pop ();
608
614
609
615
if (std::dynamic_pointer_cast<ZepCommand_GroupMarker>(spCommand) != nullptr )
610
616
{
@@ -620,27 +626,29 @@ void ZepMode::Undo()
620
626
return ;
621
627
}
622
628
623
- if (m_undoStack.empty ())
629
+ auto & undoStack = m_pCurrentWindow->GetBuffer ().GetUndoStack ();
630
+ auto & redoStack = m_pCurrentWindow->GetBuffer ().GetRedoStack ();
631
+ if (undoStack.empty ())
624
632
return ;
625
633
626
- if (std::dynamic_pointer_cast<ZepCommand_GroupMarker>(m_undoStack .top ()) != nullptr )
634
+ if (std::dynamic_pointer_cast<ZepCommand_GroupMarker>(undoStack .top ()) != nullptr )
627
635
{
628
- m_redoStack .push (m_undoStack .top ());
629
- m_undoStack .pop ();
636
+ redoStack .push (undoStack .top ());
637
+ undoStack .pop ();
630
638
}
631
639
632
- while (!m_undoStack .empty ())
640
+ while (!undoStack .empty ())
633
641
{
634
- auto & spCommand = m_undoStack .top ();
642
+ auto & spCommand = undoStack .top ();
635
643
spCommand->Undo ();
636
644
637
645
if (spCommand->GetCursorBefore ().Valid ())
638
646
{
639
647
GetCurrentWindow ()->SetBufferCursor (spCommand->GetCursorBefore ());
640
648
}
641
649
642
- m_redoStack .push (spCommand);
643
- m_undoStack .pop ();
650
+ redoStack .push (spCommand);
651
+ undoStack .pop ();
644
652
645
653
if (std::dynamic_pointer_cast<ZepCommand_GroupMarker>(spCommand) != nullptr )
646
654
{
0 commit comments