diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2017-07-20 17:34:03 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2017-07-20 18:22:16 +0300 |
commit | 7f26449a38b4a491880d05ea36a10e1cfd111808 (patch) | |
tree | fdf338b02ef535ea6b0bef6edd6187f9e6097ae6 /Capture.xs | |
download | posixruncapture-7f26449a38b4a491880d05ea36a10e1cfd111808.tar.gz posixruncapture-7f26449a38b4a491880d05ea36a10e1cfd111808.tar.bz2 |
Initial commit
Diffstat (limited to 'Capture.xs')
-rw-r--r-- | Capture.xs | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/Capture.xs b/Capture.xs new file mode 100644 index 0000000..ac80697 --- /dev/null +++ b/Capture.xs @@ -0,0 +1,74 @@ +#include "capture.h" + +MODULE = POSIX::Run::Capture PACKAGE = POSIX::Run::Capture PREFIX = capture_ +PROTOTYPES: ENABLE + +POSIX::Run::Capture +capture_new(package, argv) + char *package; + AV *argv; + CODE: + RETVAL = capture_new(argv); + if (!RETVAL) + croak("Out of memory!"); + OUTPUT: + RETVAL + +void +capture_DESTROY(rc) + POSIX::Run::Capture rc; + +int +capture_run(rc) + POSIX::Run::Capture rc; + CODE: + if (!rc->rc_argv) + croak("no command line given"); + RETVAL = runcap(rc, 0); + OUTPUT: + RETVAL + +int +capture_status(rc) + POSIX::Run::Capture rc; + CODE: + RETVAL = rc->rc_status; + OUTPUT: + RETVAL + +int +capture_errno(rc) + POSIX::Run::Capture rc; + CODE: + RETVAL = rc->rc_errno; + OUTPUT: + RETVAL + +size_t +capture_nlines(rc, n) + POSIX::Run::Capture rc; + int n; + CODE: + if (n != RUNCAP_STDOUT && n != RUNCAP_STDERR) { + croak("invalid stream number: %d", n); + } + RETVAL = rc->rc_cap[n].sc_nlines; + OUTPUT: + RETVAL + +size_t +capture_length(rc, n) + POSIX::Run::Capture rc; + int n; + CODE: + if (n != RUNCAP_STDOUT && n != RUNCAP_STDERR) { + croak("invalid stream number: %d", n); + } + RETVAL = rc->rc_cap[n].sc_leng; + OUTPUT: + RETVAL + +char * +capture_next_line(rc, n) + POSIX::Run::Capture rc; + int n; |