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 )