module NHC.Binary
( freezeBin
) where
import NHC.GreenCard
import BinHandle ({-type-}BinHandle(..))
%-#include "cLowBinary.h"
%fun freezeBin :: BinHandle -> IO ()
%call (binHandle bh)
%code
% closecache(bh);
% if (bh->file) {
% if (bh->mode != RO) {
% char c; int i;
% c = (char)(bh->highwater%8);
% i = (c ? 1+(bh->highwater/8) : (bh->highwater/8));
% c = (c ? 16-c : 8);
% lseek(bh->loc.fd,i,SEEK_SET);
% write(bh->loc.fd,&c,1);
% }
% }
% bh->mode = RO;
% opencache(bh);
%result ()
|