<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">#!/usr/bin/perl
# This file was preprocessed, do not edit!


package Debconf::Element::Dialog::Multiselect;
use warnings;
use strict;
use base qw(Debconf::Element::Multiselect);
use Debconf::Encoding qw(width);
use Debconf::Log qw(debug);


sub show {
	my $this=shift;

	my ($text, $lines, $columns)=
		$this-&gt;frontend-&gt;makeprompt($this-&gt;question, -2);

	my $screen_lines=$this-&gt;frontend-&gt;screenheight - $this-&gt;frontend-&gt;spacer;
	my @params=();
	my @choices=$this-&gt;question-&gt;choices_split;
	my %value = map { $_ =&gt; 1 } $this-&gt;translate_default;

	my $menu_height=$#choices + 1;
	if ($lines + $#choices + 2 &gt;= $screen_lines) {
		$menu_height = $screen_lines - $lines - 4;
		if ($menu_height &lt; 3 &amp;&amp; $#choices + 1 &gt; 2) {
			$this-&gt;frontend-&gt;showtext($this-&gt;question, $this-&gt;question-&gt;extended_description);
			($text, $lines, $columns)=$this-&gt;frontend-&gt;sizetext($this-&gt;question-&gt;description);
			$menu_height=$#choices + 1;
			if ($lines + $#choices + 2 &gt;= $screen_lines) {
				$menu_height = $screen_lines - $lines - 4;
			}
		}
	}

	$lines=$lines + $menu_height + $this-&gt;frontend-&gt;spacer;
	my $selectspacer = $this-&gt;frontend-&gt;selectspacer;
	my $c=1;
	my %unellipsized;
	foreach (@choices) {
		my $choice = $this-&gt;frontend-&gt;ellipsize($_);

		if (exists $unellipsized{$choice}) {
			debug 'developer' =&gt; sprintf
				'Ambiguous ellipsized choice "%s": "%s" or "%s".  Overflow.',
				$choice, $unellipsized{$choice}, $_;
			$choice = $_;
		}
		$unellipsized{$choice} = $_;

		push @params, ($choice, "");
		push @params, ($value{$_} ? 'on' : 'off');

		if ($columns &lt; width($choice) + $selectspacer) {
			$columns = width($choice) + $selectspacer;
		}
	}

	if ($this-&gt;frontend-&gt;dashsep) {
		unshift @params, $this-&gt;frontend-&gt;dashsep;
	}

	@params=('--separate-output', '--checklist',
	         $text, $lines, $columns, $menu_height, @params);

	my $value=$this-&gt;frontend-&gt;showdialog($this-&gt;question, @params);

	if (defined $value) {
		$this-&gt;value(join(", ", $this-&gt;order_values(
					map { $this-&gt;translate_to_C($unellipsized{$_}) }
					split(/\n/, $value))));
	}
	else {
		my $default='';
		$default=$this-&gt;question-&gt;value
			if defined $this-&gt;question-&gt;value;
		$this-&gt;value($default);
	}
}

1
</pre></body></html>