mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-27 11:52:03 +00:00
fix Bprint yet again
This commit is contained in:
parent
1369edef9f
commit
8b45564f0f
3 changed files with 7 additions and 53 deletions
|
@ -1,41 +0,0 @@
|
|||
#include "lib9.h"
|
||||
#include <bio.h>
|
||||
|
||||
static int
|
||||
_Bfmtflush(Fmt *f)
|
||||
{
|
||||
Biobuf *b;
|
||||
|
||||
b = f->farg;
|
||||
b->ocount = (char*)f->to - (char*)f->stop;
|
||||
if(Bflush(b) < 0)
|
||||
return 0;
|
||||
f->to = b->ebuf+b->ocount;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
Bfmtinit(Fmt *f, Biobuf *b)
|
||||
{
|
||||
if(b->state != Bwactive)
|
||||
return -1;
|
||||
memset(f, 0, sizeof *f);
|
||||
f->farg = b;
|
||||
f->start = b->bbuf;
|
||||
f->to = b->ebuf+b->ocount;
|
||||
f->stop = b->ebuf;
|
||||
f->flush = _Bfmtflush;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
Bfmtflush(Fmt *f)
|
||||
{
|
||||
Biobuf *b;
|
||||
|
||||
b = f->farg;
|
||||
if(f->to == nil)
|
||||
return -1;
|
||||
b->ocount = (char*)f->to - (char*)f->stop;
|
||||
return f->nfmt;
|
||||
}
|
|
@ -4,16 +4,11 @@
|
|||
int
|
||||
Bprint(Biobuf *bp, char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
Fmt f;
|
||||
int n;
|
||||
va_list arg;
|
||||
|
||||
if(Bfmtinit(&f, bp) < 0)
|
||||
return -1;
|
||||
va_start(args, fmt);
|
||||
n = fmtvprint(&f, fmt, args);
|
||||
va_end(args);
|
||||
if(n > 0 && Bfmtflush(&f) < 0)
|
||||
return -1;
|
||||
va_start(arg, fmt);
|
||||
n = Bvprint(bp, fmt, arg);
|
||||
va_end(arg);
|
||||
return n;
|
||||
}
|
||||
|
|
|
@ -6,20 +6,20 @@ OFILES=\
|
|||
bbuffered.$O\
|
||||
bfildes.$O\
|
||||
bflush.$O\
|
||||
bfmt.$O\
|
||||
bgetc.$O\
|
||||
bgetrune.$O\
|
||||
bgetd.$O\
|
||||
binit.$O\
|
||||
boffset.$O\
|
||||
bprint.$O\
|
||||
bputc.$O\
|
||||
bputrune.$O\
|
||||
brdline.$O\
|
||||
brdstr.$O\
|
||||
bread.$O\
|
||||
bseek.$O\
|
||||
bvprint.$O\
|
||||
bwrite.$O\
|
||||
bgetrune.$O\
|
||||
bputrune.$O\
|
||||
|
||||
HFILES=\
|
||||
$PLAN9/include/bio.h\
|
||||
|
|
Loading…
Reference in a new issue