aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/acme/xfid.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2006-02-21 20:46:49 +0000
committerrsc <devnull@localhost>2006-02-21 20:46:49 +0000
commit95409400f71c426d4ef5811f5dbdf1c0778464f5 (patch)
tree4443f8ea9f57b6fe0f33949d0dba65d4f9ce340f /src/cmd/acme/xfid.c
parentc42a1d3d6168df56f966ea1f3ba3ef39ebbff4e4 (diff)
downloadplan9port-95409400f71c426d4ef5811f5dbdf1c0778464f5.tar.gz
plan9port-95409400f71c426d4ef5811f5dbdf1c0778464f5.tar.bz2
plan9port-95409400f71c426d4ef5811f5dbdf1c0778464f5.zip
events buffer need not end in NUL
Diffstat (limited to 'src/cmd/acme/xfid.c')
-rw-r--r--src/cmd/acme/xfid.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/cmd/acme/xfid.c b/src/cmd/acme/xfid.c
index 126a5fe9..15b411ce 100644
--- a/src/cmd/acme/xfid.c
+++ b/src/cmd/acme/xfid.c
@@ -976,7 +976,6 @@ void
xfideventread(Xfid *x, Window *w)
{
Fcall fc;
- char *b;
int i, n;
i = 0;
@@ -1000,10 +999,14 @@ xfideventread(Xfid *x, Window *w)
fc.count = n;
fc.data = w->events;
respond(x, &fc, nil);
- b = w->events;
- w->events = estrdup(w->events+n);
- free(b);
w->nevents -= n;
+ if(w->nevents){
+ memmove(w->events, w->events+n, w->nevents);
+ w->events = erealloc(w->events, w->nevents);
+ }else{
+ free(w->events);
+ w->events = nil;
+ }
}
void