login

<     >

2020-12-19 12:27:11 (UTC-03:00)

Marcel Rodrigues <marcelgmr@gmail.com>

edit: fix redo logic

diff --git a/edit.c b/edit.c
index d2db0d9..15c630e 100644
--- a/edit.c
+++ b/edit.c
@@ -69,7 +69,7 @@ unpop()
 {
     r--;
     q = inc(q);
-    return stack[q & M1];
+    return stack[dec(q) & M1];
 }
 
 static void
@@ -134,9 +134,11 @@ void
 redo(Matrix matrix)
 {
     uint32_t op;
-    while (!isfull) {
+    unsigned int marks = 0;
+    while (r) {
         op = unpop();
-        if (op & 4) {
+        marks += op & 4;
+        if (marks == 8) {
             (void) pop();
             break;
         }