* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
* USA
*
- * $Id: helper.c 26092 2008-09-19 15:13:52Z androsyn $
*/
+
#include <librb_config.h>
#include <rb_lib.h>
#include <commio-int.h>
parv[0] = buf;
parv[1] = NULL;
-#ifdef _WIN32
- SetHandleInformation((HANDLE) rb_get_fd(in_f[1]), HANDLE_FLAG_INHERIT, 1);
- SetHandleInformation((HANDLE) rb_get_fd(out_f[0]), HANDLE_FLAG_INHERIT, 1);
-#endif
+ rb_clear_cloexec(in_f[1]);
+ rb_clear_cloexec(out_f[0]);
pid = rb_spawn_process(fullpath, (const char **)parv);
rb_helper_write_queue(rb_helper *helper, const char *format, ...)
{
va_list ap;
+ rb_strf_t strings = { .format = format, .format_args = &ap, .next = NULL };
+
va_start(ap, format);
- rb_linebuf_putmsg(&helper->sendq, format, &ap, NULL);
+ rb_linebuf_put(&helper->sendq, &strings);
va_end(ap);
}
rb_helper_write(rb_helper *helper, const char *format, ...)
{
va_list ap;
+ rb_strf_t strings = { .format = format, .format_args = &ap, .next = NULL };
+
va_start(ap, format);
- rb_linebuf_putmsg(&helper->sendq, format, &ap, NULL);
+ rb_linebuf_put(&helper->sendq, &strings);
va_end(ap);
+
rb_helper_write_flush(helper);
}
static void
-rb_helper_read_cb(rb_fde_t *F, void *data)
+rb_helper_read_cb(rb_fde_t *F __attribute__((unused)), void *data)
{
rb_helper *helper = (rb_helper *)data;
static char buf[32768];