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
|
int
|
||||||
Bprint(Biobuf *bp, char *fmt, ...)
|
Bprint(Biobuf *bp, char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
|
||||||
Fmt f;
|
|
||||||
int n;
|
int n;
|
||||||
|
va_list arg;
|
||||||
|
|
||||||
if(Bfmtinit(&f, bp) < 0)
|
va_start(arg, fmt);
|
||||||
return -1;
|
n = Bvprint(bp, fmt, arg);
|
||||||
va_start(args, fmt);
|
va_end(arg);
|
||||||
n = fmtvprint(&f, fmt, args);
|
|
||||||
va_end(args);
|
|
||||||
if(n > 0 && Bfmtflush(&f) < 0)
|
|
||||||
return -1;
|
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,20 +6,20 @@ OFILES=\
|
||||||
bbuffered.$O\
|
bbuffered.$O\
|
||||||
bfildes.$O\
|
bfildes.$O\
|
||||||
bflush.$O\
|
bflush.$O\
|
||||||
bfmt.$O\
|
|
||||||
bgetc.$O\
|
bgetc.$O\
|
||||||
|
bgetrune.$O\
|
||||||
bgetd.$O\
|
bgetd.$O\
|
||||||
binit.$O\
|
binit.$O\
|
||||||
boffset.$O\
|
boffset.$O\
|
||||||
bprint.$O\
|
bprint.$O\
|
||||||
bputc.$O\
|
bputc.$O\
|
||||||
|
bputrune.$O\
|
||||||
brdline.$O\
|
brdline.$O\
|
||||||
brdstr.$O\
|
brdstr.$O\
|
||||||
bread.$O\
|
bread.$O\
|
||||||
bseek.$O\
|
bseek.$O\
|
||||||
|
bvprint.$O\
|
||||||
bwrite.$O\
|
bwrite.$O\
|
||||||
bgetrune.$O\
|
|
||||||
bputrune.$O\
|
|
||||||
|
|
||||||
HFILES=\
|
HFILES=\
|
||||||
$PLAN9/include/bio.h\
|
$PLAN9/include/bio.h\
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue