unix/fiss

lib/libbio/bgetd.c in master
Repositories | Summary | Log | Files | LICENSE

bgetd.c (411B) download


 1#include "lib9.h"
 2
 3#include <bio.h>
 4
 5struct bgetd {
 6	Biobuf* b;
 7	int     eof;
 8};
 9
10static int
11Bgetdf(void* vp) {
12	int           c;
13	struct bgetd* bg = vp;
14
15	c = Bgetc(bg->b);
16	if (c == Beof)
17		bg->eof = 1;
18	return c;
19}
20
21int Bgetd(Biobuf* bp, double* dp) {
22	double       d;
23	struct bgetd b;
24
25	b.b   = bp;
26	b.eof = 0;
27	d     = fmtcharstod(Bgetdf, &b);
28	if (b.eof)
29		return -1;
30	Bungetc(bp);
31	*dp = d;
32	return 1;
33}