tacme: fix owner bug in elogapply - plan9port - [fork] Plan 9 from user space
git clone git://src.adamsgaard.dk/plan9port
Log
Files
Refs
README
LICENSE
---
commit f0315273ec908f463929cfd3fb40a4c43945a678
parent ff086a82325b22fcbd373edecfc3870e95049401
Author: Russ Cox 
Date:   Sun,  1 Jun 2008 09:11:21 -0400

acme: fix owner bug in elogapply

Diffstat:
  M src/cmd/acme/elog.c                 |      13 ++++++++++++-

1 file changed, 12 insertions(+), 1 deletion(-)
---
diff --git a/src/cmd/acme/elog.c b/src/cmd/acme/elog.c
t@@ -221,6 +221,7 @@ elogapply(File *f)
         uint tq0, tq1;
         Buffer *log;
         Text *t;
+        int owner;
 
         elogflush(f);
         log = f->elogbuf;
t@@ -229,6 +230,13 @@ elogapply(File *f)
         buf = fbufalloc();
         mod = FALSE;
 
+        owner = 0;
+        if(t->w){
+                owner = t->w->owner;
+                if(owner == 0)
+                        t->w->owner = 'E';
+        }
+
         /*
          * The edit commands have already updated the selection in t->q0, t->q1,
          * but using coordinates relative to the unmodified buffer.  As we apply the log,
t@@ -328,7 +336,7 @@ elogapply(File *f)
         }
         fbuffree(buf);
         elogterm(f);
-
+        
         /*
          * Bad addresses will cause bufload to crash, so double check.
          * If changes were out of order, we expect problems so don't complain further.
t@@ -339,4 +347,7 @@ elogapply(File *f)
                 t->q1 = min(t->q1, f->b.nc);
                 t->q0 = min(t->q0, t->q1);
         }
+
+        if(t->w)
+                t->w->owner = owner;
 }