From fff474d8639fd387aac437e0a84a06604000c3ba Mon Sep 17 00:00:00 2001 From: aiju Date: Mon, 12 Jun 2017 19:56:57 +0000 Subject: [PATCH] xd: use new bio magic to make -u more efficient --- sys/src/cmd/xd.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/sys/src/cmd/xd.c b/sys/src/cmd/xd.c index 71726569b..76d08df44 100644 --- a/sys/src/cmd/xd.c +++ b/sys/src/cmd/xd.c @@ -58,6 +58,13 @@ char *afmt[2][3] = { Biobuf bin; Biobuf bout; +int +flushout(Biobufhdr *bp, void *v, long n) +{ + Bflush(&bout); + return read(bp->fid, v, n); +} + void main(int argc, char *argv[]) { @@ -206,6 +213,7 @@ xd(char *name, int title) bp = &bin; Binit(bp, fd, OREAD); } + if(flush) Biofn(bp, flushout); Blethal(bp, nil); if(title) xprint("%s\n", name); @@ -237,15 +245,11 @@ xd(char *name, int title) xprint(ap->afmt, addr); (*ap->fn)(ap->fmt); xprint("\n", 0); - if(flush) - Bflush(&bout); } addr += ndata; if(ndata<16){ xprint(afmt[0][abase], addr); xprint("\n", 0); - if(flush) - Bflush(&bout); break; } }