When we discard the content of an undo buffer
is because we don't need it anymore, and it means
that we don't care about the modify state of the buffer
so we can reset the modflag in clearundo(), and
remove this assignation each time clearundo() is called.
---
 ed.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/ed.c b/ed.c
index 623c6b4..751e973 100644
--- a/ed.c
+++ b/ed.c
@@ -247,6 +247,7 @@ clearundo(void)
        free(udata.vec);
        udata.vec = NULL;
        newcmd = udata.nr = udata.cap = 0;
+       modflag = 0;
 }
 
 static void
@@ -342,7 +343,6 @@ setscratch()
                error("input/output error in scratch file");
        relink(k, k, k, k);
        clearundo();
-       modflag = 0;
 }
 
 static void
@@ -1211,7 +1211,6 @@ repeat:
                deflines(curln, curln);
                doread(savfname);
                clearundo();
-               modflag = 0;
                break;
        default:
                error("unknown command");
-- 
2.1.4


Reply via email to