aboutsummaryrefslogtreecommitdiff
path: root/Capture.xs
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2017-07-20 17:34:03 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2017-07-20 18:22:16 +0300
commit7f26449a38b4a491880d05ea36a10e1cfd111808 (patch)
treefdf338b02ef535ea6b0bef6edd6187f9e6097ae6 /Capture.xs
downloadposixruncapture-7f26449a38b4a491880d05ea36a10e1cfd111808.tar.gz
posixruncapture-7f26449a38b4a491880d05ea36a10e1cfd111808.tar.bz2
Initial commit
Diffstat (limited to 'Capture.xs')
-rw-r--r--Capture.xs74
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;

Return to:

Send suggestions and report system problems to the System administrator.