From 72bac26a22373fe0ebed377cd5229dbbc8286996 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 27 Apr 2014 00:44:47 +1200 Subject: Tidier Perl for custom clip script --- urxvt/ext/clip | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'urxvt/ext') diff --git a/urxvt/ext/clip b/urxvt/ext/clip index 4f890c0e..b09eadfe 100644 --- a/urxvt/ext/clip +++ b/urxvt/ext/clip @@ -5,6 +5,10 @@ use strict; use warnings; +use Carp; + +our $VERSION = 1.0; + sub on_start { my ($self) = @_; $self->enable( sel_grab => \&clip ); @@ -13,12 +17,14 @@ sub on_start { sub clip { my ($self) = @_; - if ( open CLIPBOARD, '| xsel -ib' ) { - my $sel = $self->selection(); - utf8::encode($sel); - print CLIPBOARD $sel; - close CLIPBOARD; - } + my $selection = $self->selection(); + utf8::encode($selection); + open my $clipboard, q{|-}, 'xsel -ib' + or croak('xsel(1) not available'); + print {$clipboard} $selection + or croak('Failed to write to xsel(1) pipe'); + close $clipboard + or croak('Failed to close xsel(1) pipe'); return; } -- cgit v1.2.3