diff options
-rw-r--r-- | urpm/msg.pm | 1 | ||||
-rwxr-xr-x | urpmi | 10 |
2 files changed, 9 insertions, 2 deletions
diff --git a/urpm/msg.pm b/urpm/msg.pm index 1957916f..308deda3 100644 --- a/urpm/msg.pm +++ b/urpm/msg.pm @@ -35,6 +35,7 @@ sub log_it { sub to_utf8 { Locale::gettext::iconv($_[0], undef, "UTF-8") } +#- this function returns a value via $?. this is evil; FIXME (and use zenity) sub gmessage { my ($msg, %params) = @_; my $ok = to_utf8($params{ok} || N("Ok")); @@ -400,8 +400,14 @@ sub ask_choice { if (@l > 1 && !$urpm->{options}{auto}) { my $msg = N("One of the following packages is needed:"); if ($urpm::args::options{X}) { - system(qq(gchooser "$msg" @l)); - $n = $? >> 8 or die "\n"; + if (-x '/usr/bin/zenity') { + my $choice = qx(zenity --list --column=RPM --text="$msg" @l); + chomp $choice; + each_index { $_ eq $choice and $n = $::i } @l; + } else { + system(qq(gchooser "$msg" @l)); + $n = $? >> 8 or die "\n"; + } } else { message($msg); my $i = 0; foreach (@l) { message(" " . ++$i . "- $_") } |