Language-Haskell
view release on metacpan or search on metacpan
hugs98-Nov2003/fptools/libraries/unix/System/Posix/User_hsc_make.c view on Meta::CPAN
hsc_line (178, "User.hsc");
fputs ("", stdout);
#line 178 "User.hsc"
#endif
fputs ("\n"
"", stdout);
hsc_line (179, "User.hsc");
fputs ("\n"
"unpackGroupEntry :: Ptr CGroup -> IO GroupEntry\n"
"unpackGroupEntry ptr = do\n"
" name <- (", stdout);
#line 182 "User.hsc"
hsc_peek (struct group, gr_name);
fputs (") ptr >>= peekCString\n"
"", stdout);
hsc_line (183, "User.hsc");
fputs (" gid <- (", stdout);
#line 183 "User.hsc"
hsc_peek (struct group, gr_gid);
fputs (") ptr\n"
"", stdout);
hsc_line (184, "User.hsc");
fputs (" mem <- (", stdout);
#line 184 "User.hsc"
hsc_peek (struct group, gr_mem);
fputs (") ptr\n"
"", stdout);
hsc_line (185, "User.hsc");
fputs (" members <- peekArray0 nullPtr mem >>= mapM peekCString\n"
" return (GroupEntry name gid members)\n"
"\n"
"-- -----------------------------------------------------------------------------\n"
"-- The user database (pwd.h)\n"
"\n"
"data UserEntry =\n"
" UserEntry {\n"
" userName :: String,\n"
" userID :: UserID,\n"
" userGroupID :: GroupID,\n"
" homeDirectory :: String,\n"
" userShell :: String\n"
" }\n"
"\n"
"getUserEntryForID :: UserID -> IO UserEntry\n"
"", stdout);
#line 201 "User.hsc"
#ifdef HAVE_GETPWUID_R
fputs ("\n"
"", stdout);
hsc_line (202, "User.hsc");
fputs ("getUserEntryForID uid = do\n"
" allocaBytes (", stdout);
#line 203 "User.hsc"
hsc_const (sizeof(struct passwd));
fputs (") $ \\ppw ->\n"
"", stdout);
hsc_line (204, "User.hsc");
fputs (" allocaBytes pwBufSize $ \\pbuf ->\n"
" alloca $ \\ pppw -> do\n"
" throwErrorIfNonZero_ \"getUserEntryForID\" $\n"
"\t c_getpwuid_r uid ppw pbuf (fromIntegral pwBufSize) pppw\n"
"\tunpackUserEntry ppw\n"
"\n"
"foreign import ccall unsafe \"getpwuid_r\"\n"
" c_getpwuid_r :: CUid -> Ptr CPasswd -> \n"
"\t\t\tCString -> CSize -> Ptr (Ptr CPasswd) -> IO CInt\n"
"", stdout);
#line 213 "User.hsc"
#else
fputs ("\n"
"", stdout);
hsc_line (214, "User.hsc");
fputs ("getUserEntryForID = error \"System.Posix.User.getUserEntryForID: not supported\"\n"
"", stdout);
#line 215 "User.hsc"
#endif
fputs ("\n"
"", stdout);
hsc_line (216, "User.hsc");
fputs ("\n"
"getUserEntryForName :: String -> IO UserEntry\n"
"", stdout);
#line 218 "User.hsc"
#if HAVE_GETPWNAM_R
fputs ("\n"
"", stdout);
hsc_line (219, "User.hsc");
fputs ("getUserEntryForName name = do\n"
" allocaBytes (", stdout);
#line 220 "User.hsc"
hsc_const (sizeof(struct passwd));
fputs (") $ \\ppw ->\n"
"", stdout);
hsc_line (221, "User.hsc");
fputs (" allocaBytes pwBufSize $ \\pbuf ->\n"
" alloca $ \\ pppw -> \n"
"\twithCString name $ \\ pstr -> do\n"
" throwErrorIfNonZero_ \"getUserEntryForName\" $\n"
"\t c_getpwnam_r pstr ppw pbuf (fromIntegral pwBufSize) pppw\n"
"\t unpackUserEntry ppw\n"
"\n"
"foreign import ccall unsafe \"getpwnam_r\"\n"
" c_getpwnam_r :: CString -> Ptr CPasswd -> \n"
"\t\t\tCString -> CSize -> Ptr (Ptr CPasswd) -> IO CInt\n"
"", stdout);
#line 231 "User.hsc"
#else
fputs ("\n"
"", stdout);
hsc_line (232, "User.hsc");
fputs ("getUserEntryForName = error \"System.Posix.User.getUserEntryForName: not supported\"\n"
"", stdout);
#line 233 "User.hsc"
#endif
fputs ("\n"
"", stdout);
hsc_line (234, "User.hsc");
fputs ("\n"
"", stdout);
#line 235 "User.hsc"
#if defined(HAVE_GETPWUID_R) || defined(HAVE_GETPWNAM_R)
fputs ("\n"
"", stdout);
hsc_line (236, "User.hsc");
fputs ("pwBufSize :: Int\n"
( run in 1.606 second using v1.01-cache-2.11-cpan-39bf76dae61 )