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 ()