volatile int nReadEnd;
char lpBuffer[LINE_INPUT_MAX_CHAR];
char lpReadBuffer[LINE_INPUT_MAX_CHAR];
+ char szWriteBuffer[LINE_INPUT_MAX_CHAR];
+ DWORD dwWriteIndex;
const char *name;
+ const char *command;
+ BOOL quit_pending;
} pipex_t;
io_t io[1];
pid_t pid;
int state;
+ bool quit_pending;
+ const char *command;
} pipex_t;
#endif
// part common to WIN32 and POSIX
+// macros
+
+#define PIPEX_MAGIC "!@#$%"
+
// functions
extern void pipex_open (pipex_t *pipex,
const char *name,
+ const char *working_dir,
const char *command);
extern bool pipex_active (pipex_t *pipex);
extern bool pipex_readln (pipex_t *pipex, char *string);
extern bool pipex_readln_nb (pipex_t *pipex, char *string);
extern void pipex_writeln (pipex_t *pipex, const char *string);
+extern void pipex_write (pipex_t *pipex, const char *string);
extern bool pipex_eof (pipex_t *pipex);
extern void pipex_send_eof (pipex_t *pipex);
extern void pipex_exit (pipex_t *pipex);