Plan 9 from Bell Labs’s /usr/web/sources/contrib/fernan/nhc98/src/prelude/Binary/IsEOFBin.gc

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


module NHC.Binary
  ( isEOFBin
  ) where

import NHC.GreenCard
import BinHandle ({-type-}BinHandle(..))

%-#include "cLowBinary.h"

%fun isEOFBin :: BinHandle -> IO Bool
%call (binHandle bh)
%code
%  if (bh->file)
%    b = bh->cptr >= 8*(CACHESIZE-bh->attrib.eof);
%  else
%    b = bh->adjust.here + (bh->cptr/8) >= bh->attrib.size;
%result (bool b)

-- This could return the wrong result.  Check whether the underlying
-- C routines reset the eof flag correctly following a forceCacheTo
-- (or other) movement.  Checked OK 980325.

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.