--- rxvt-unicode/src/perl/background 2012/06/10 13:32:55 1.46 +++ rxvt-unicode/src/perl/background 2012/06/10 15:29:18 1.49 @@ -206,6 +206,7 @@ =cut +our %_IMGCACHE; our $HOME; our ($self, $old, $new); our ($x, $y, $w, $h); @@ -685,8 +686,8 @@ my $img = pop; my ($r, $g, $b, $a) = @_; - ($g, $b) = ($r, $r) if @_ < 4; - $a = 1 if @_ < 5; + ($g, $b) = ($r, $r) if @_ < 3; + $a = 1 if @_ < 4; $img = $img->clone; $img->contrast ($r, $g, $b, $a); @@ -697,8 +698,8 @@ my $img = pop; my ($r, $g, $b, $a) = @_; - ($g, $b) = ($r, $r) if @_ < 4; - $a = 1 if @_ < 5; + ($g, $b) = ($r, $r) if @_ < 3; + $a = 1 if @_ < 4; $img = $img->clone; $img->brightness ($r, $g, $b, $a); @@ -798,7 +799,7 @@ my $img = eval { $self->{expr}->() }; warn $@ if $@;#d# - die if !UNIVERSAL::isa $img, "urxvt::img"; + die "background-expr did not return an image.\n" if !UNIVERSAL::isa $img, "urxvt::img"; $state->{size_sensitive} = 1 if $img->repeat_mode != urxvt::RepeatNormal; @@ -858,13 +859,16 @@ sub on_start { my ($self) = @_; - my $expr = $self->x_resource ("background.expr") + my $expr = $self->x_resource ("%.expr") or return; + $self->has_render + or die "background extension needs RENDER extension 0.10 or higher, ignoring background-expr.\n"; + $self->set_expr (parse_expr $expr); - $self->{border} = $self->x_resource_boolean ("background.border"); + $self->{border} = $self->x_resource_boolean ("%.border"); - $MIN_INTERVAL = $self->x_resource ("background.interval"); + $MIN_INTERVAL = $self->x_resource ("%.interval"); () }