module Bindings.C.Locale where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word
data C'lconv = C'lconv{
c'lconv'currency_symbol :: CString
,
c'lconv'decimal_point :: CString
,
c'lconv'frac_digits :: CChar
,
c'lconv'grouping :: CString
,
c'lconv'int_curr_symbol :: CString
,
c'lconv'int_frac_digits :: CChar
,
c'lconv'int_n_cs_precedes :: CChar
,
c'lconv'int_n_sep_by_space :: CChar
,
c'lconv'int_n_sign_posn :: CChar
,
c'lconv'int_p_cs_precedes :: CChar
,
c'lconv'int_p_sep_by_space :: CChar
,
c'lconv'int_p_sign_posn :: CChar
,
c'lconv'mon_decimal_point :: CString
,
c'lconv'mon_grouping :: CString
,
c'lconv'mon_thousands_sep :: CString
,
c'lconv'negative_sign :: CString
,
c'lconv'n_cs_precedes :: CChar
,
c'lconv'n_sep_by_space :: CChar
,
c'lconv'n_sign_posn :: CChar
,
c'lconv'positive_sign :: CString
,
c'lconv'p_cs_precedes :: CChar
,
c'lconv'p_sep_by_space :: CChar
,
c'lconv'p_sign_posn :: CChar
,
c'lconv'thousands_sep :: CString
} deriving (Eq,Show)
instance Storable C'lconv where
sizeOf _ = 56
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 16
v1 <- peekByteOff p 0
v2 <- peekByteOff p 41
v3 <- peekByteOff p 8
v4 <- peekByteOff p 12
v5 <- peekByteOff p 40
v6 <- peekByteOff p 50
v7 <- peekByteOff p 51
v8 <- peekByteOff p 53
v9 <- peekByteOff p 48
v10 <- peekByteOff p 49
v11 <- peekByteOff p 52
v12 <- peekByteOff p 20
v13 <- peekByteOff p 28
v14 <- peekByteOff p 24
v15 <- peekByteOff p 36
v16 <- peekByteOff p 44
v17 <- peekByteOff p 45
v18 <- peekByteOff p 47
v19 <- peekByteOff p 32
v20 <- peekByteOff p 42
v21 <- peekByteOff p 43
v22 <- peekByteOff p 46
v23 <- peekByteOff p 4
return $ C'lconv v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23
poke p (C'lconv v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23) = do
pokeByteOff p 16 v0
pokeByteOff p 0 v1
pokeByteOff p 41 v2
pokeByteOff p 8 v3
pokeByteOff p 12 v4
pokeByteOff p 40 v5
pokeByteOff p 50 v6
pokeByteOff p 51 v7
pokeByteOff p 53 v8
pokeByteOff p 48 v9
pokeByteOff p 49 v10
pokeByteOff p 52 v11
pokeByteOff p 20 v12
pokeByteOff p 28 v13
pokeByteOff p 24 v14
pokeByteOff p 36 v15
pokeByteOff p 44 v16
pokeByteOff p 45 v17
pokeByteOff p 47 v18
pokeByteOff p 32 v19
pokeByteOff p 42 v20
pokeByteOff p 43 v21
pokeByteOff p 46 v22
pokeByteOff p 4 v23
return ()
c'LC_ALL = 6
c'LC_ALL :: (Num a) => a
c'LC_COLLATE = 3
c'LC_COLLATE :: (Num a) => a
c'LC_CTYPE = 0
c'LC_CTYPE :: (Num a) => a
c'LC_MONETARY = 4
c'LC_MONETARY :: (Num a) => a
c'LC_NUMERIC = 1
c'LC_NUMERIC :: (Num a) => a
c'LC_TIME = 2
c'LC_TIME :: (Num a) => a
foreign import ccall "localeconv" c'localeconv
:: IO (Ptr C'lconv)
foreign import ccall "&localeconv" p'localeconv
:: FunPtr (IO (Ptr C'lconv))
foreign import ccall "setlocale" c'setlocale
:: CInt -> CString -> IO CString
foreign import ccall "&setlocale" p'setlocale
:: FunPtr (CInt -> CString -> IO CString)