* path.cc (path_conv::check): Leave symlink expansion loop in case

a not-ENOENT error happens.

	* cygheap.h (cygheap_fdmanip::fhandler_pipe *): New cast operator.
	* pinfo.cc (_pinfo::commune_recv): Add PICOM_PIPE_FHANDLER handling.
	(_pinfo::commune_send): Ditto.
	(_pinfo::pipe_fhandler): New method.
	* pinfo.h (enum picom): Add PICOM_PIPE_FHANDLER.
	(_pinfo::pipe_fhandler): Declare.
	* pipe.cc (fhandler_pipe::open): Rewrite.  Allow to open foreign
	pipe handles.
This commit is contained in:
Corinna Vinschen
2005-02-06 11:15:29 +00:00
parent 85a798d6e7
commit 7d880770d3
6 changed files with 187 additions and 43 deletions

View File

@@ -27,12 +27,15 @@ enum picom
PICOM_CWD = 3,
PICOM_ROOT = 4,
PICOM_FDS = 5,
PICOM_FD = 6
PICOM_FD = 6,
PICOM_PIPE_FHANDLER = 7
};
#define EXITCODE_SET 0x80000000
#define EXITCODE_NOSET 0x40000000
class fhandler_pipe;
class _pinfo
{
public:
@@ -110,6 +113,7 @@ public:
void commune_recv ();
commune_result commune_send (DWORD, ...);
bool alive ();
fhandler_pipe *pipe_fhandler (HANDLE hdl, size_t &);
char *fd (int fd, size_t &);
char *fds (size_t &);
char *root (size_t &);