bgetd.c - 9base - revived minimalist port of Plan 9 userland to Unix
 (HTM) git clone git://git.suckless.org/9base
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       bgetd.c (383B)
       ---
            1 #include "lib9.h"
            2 #include <bio.h>
            3 
            4 struct        bgetd
            5 {
            6         Biobuf*        b;
            7         int                eof;
            8 };
            9 
           10 static int
           11 Bgetdf(void *vp)
           12 {
           13         int c;
           14         struct bgetd *bg = vp;
           15 
           16         c = Bgetc(bg->b);
           17         if(c == Beof)
           18                 bg->eof = 1;
           19         return c;
           20 }
           21 
           22 int
           23 Bgetd(Biobuf *bp, double *dp)
           24 {
           25         double d;
           26         struct bgetd b;
           27 
           28         b.b = bp;
           29         b.eof = 0;
           30         d = fmtcharstod(Bgetdf, &b);
           31         if(b.eof)
           32                 return -1;
           33         Bungetc(bp);
           34         *dp = d;
           35         return 1;
           36 }