Plan 9 from Bell Labs’s /usr/web/sources/contrib/fernan/nhc98/src/runtime/Builtin/cHGetBuffering.c

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include "haskell2c.h"


/* foreign import hGetBufferingC :: Handle -> IO BufferMode */
NodePtr hGetBufferingC (FileDesc *f)
{
  switch(f->bm) {
    case _IONBF: return nhc_mkNoBuffering(); break;
    case _IOLBF: return nhc_mkLineBuffering(); break;
    case _IOFBF:
        if(f->size>=0) return nhc_mkBlockBuffering(nhc_mkJust(nhc_mkInt(f->size)));
        else           return nhc_mkBlockBuffering(nhc_mkNothing());
        break;
    default: break;
  }
}

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.