use MIME::Base64;
use Encode;

sub on_osc_seq {
	my ($term, $op, $args) = @_;
	return () unless $op eq 52;
	my ($clip, $data) = split ';', $args, 2;
	if ($data eq '?') {
		my $data_free = $term->selection();
		Encode::_utf8_off($data_free); # XXX
		$term->tt_write("\e]52;$clip;".encode_base64($data_free, '')."\a");
	}
	else {	
		my $data_decoded = decode_base64($data);
		Encode::_utf8_on($data_decoded); # XXX
		$term->selection($data_decoded, $clip =~ /c/);
		$term->selection_grab(urxvt::CurrentTime, $clip =~ /c/);
		$term->exec_async('xdg-open', $data_decoded)
			if $clip =~ /x/; # some test extension
	}
	()
}
