X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Foreign%2FPtr.hs;h=514de593cef38c4b573898b13f5c340e7af1e572;hb=78e47c07f1587f736ef2484101451555183a039a;hp=00798284870d2186ca8fee753afd6a678231ef4e;hpb=29246dd4eb44d03cc48cbd894821d3c9501d8829;p=ghc-base.git diff --git a/Foreign/Ptr.hs b/Foreign/Ptr.hs index 0079828..514de59 100644 --- a/Foreign/Ptr.hs +++ b/Foreign/Ptr.hs @@ -9,7 +9,7 @@ -- Stability : provisional -- Portability : portable -- --- The "Ptr" module provides typed pointers to foreign data. It is part +-- This module provides typed pointers to foreign data. It is part -- of the Foreign Function Interface (FFI) and will normally be -- imported via the "Foreign" module. -- @@ -67,6 +67,9 @@ import NHC.FFI ) #endif +#ifdef __HUGS__ +import Hugs.Ptr +#endif #ifdef __GLASGOW_HASKELL__ #include "MachDeps.h" @@ -76,7 +79,7 @@ instance Show (Ptr a) where showsPrec p (Ptr a) rs = pad_out (showHex (word2Integer(int2Word#(addr2Int# a))) "") rs where -- want 0s prefixed to pad it out to a fixed length. - pad_out ('0':'x':ls) rs = + pad_out ls rs = '0':'x':(replicate (2*SIZEOF_HSPTR - length ls) '0') ++ ls ++ rs -- word2Integer :: Word# -> Integer (stolen from Word.lhs) word2Integer w = case word2Integer# w of @@ -85,9 +88,7 @@ instance Show (Ptr a) where instance Show (FunPtr a) where showsPrec p = showsPrec p . castFunPtrToPtr #endif -#endif -#ifndef __NHC__ foreign import ccall unsafe "freeHaskellFunctionPtr" freeHaskellFunPtr :: FunPtr a -> IO () #endif