summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2012-02-25 02:22:32 -0600
committerJesse Luehrs <doy@tozt.net>2012-02-25 02:22:32 -0600
commitcc14ed95214c4d2728a04c05b27bc1d6bf004d9e (patch)
treebf7acaa79a61a8aae306f16288f1f5ef5668dc28
parent3d937997d2563f00b05d842180c47a57f0d59b29 (diff)
downloadterm-filter-cc14ed95214c4d2728a04c05b27bc1d6bf004d9e.tar.gz
term-filter-cc14ed95214c4d2728a04c05b27bc1d6bf004d9e.zip
actually, exposing these is dumb
-rw-r--r--lib/Term/Filter.pm54
1 files changed, 27 insertions, 27 deletions
diff --git a/lib/Term/Filter.pm b/lib/Term/Filter.pm
index b879fb3..dae2cbb 100644
--- a/lib/Term/Filter.pm
+++ b/lib/Term/Filter.pm
@@ -94,29 +94,6 @@ has _raw_mode => (
},
);
-sub read_from_handle {
- my $self = shift;
- my ($handle, $name) = @_;
-
- my $buf;
- sysread $handle, $buf, 4096;
- if (!defined $buf || length $buf == 0) {
- Carp::croak("Error reading from $name: $!")
- unless defined $buf;
- return;
- }
-
- return $buf;
-}
-
-sub write_to_handle {
- my $self = shift;
- my ($handle, $buf) = @_;
-
- # XXX should i select here? or buffer?
- syswrite $handle, $buf;
-}
-
sub run {
my $self = shift;
my @cmd = @_;
@@ -131,19 +108,27 @@ sub run {
$self->_callback('read_error', $eout);
if (vec($rout, fileno($self->input), 1)) {
- my $got = $self->read_from_handle($self->input, "STDIN");
+ my $got = $self->_read_from_handle($self->input, "STDIN");
last unless defined $got;
+
$got = $self->_callback('munge_input', $got)
if $self->_has_callback('munge_input');
- $self->write_to_handle($self->pty, $got);
+
+ # XXX should i select here, or buffer, to make sure this doesn't
+ # block?
+ syswrite $self->pty, $got;
}
if (vec($rout, fileno($self->pty), 1)) {
- my $got = $self->read_from_handle($self->pty, "pty");
+ my $got = $self->_read_from_handle($self->pty, "pty");
last unless defined $got;
+
$got = $self->_callback('munge_output', $got)
if $self->_has_callback('munge_output');
- $self->write_to_handle($self->output, $got);
+
+ # XXX should i select here, or buffer, to make sure this doesn't
+ # block?
+ syswrite $self->output, $got;
}
$self->_callback('read', $rout);
@@ -179,6 +164,21 @@ sub _setup {
});
}
+sub _read_from_handle {
+ my $self = shift;
+ my ($handle, $name) = @_;
+
+ my $buf;
+ sysread $handle, $buf, 4096;
+ if (!defined $buf || length $buf == 0) {
+ Carp::croak("Error reading from $name: $!")
+ unless defined $buf;
+ return;
+ }
+
+ return $buf;
+}
+
__PACKAGE__->meta->make_immutable;
no Moose;