CasperSecurity

Current Path : /usr/share/perl5/Debconf/Element/Teletype/
Upload File :
Current File : //usr/share/perl5/Debconf/Element/Teletype/Multiselect.pm

#!/usr/bin/perl -w
# This file was preprocessed, do not edit!


package Debconf::Element::Teletype::Multiselect;
use strict;
use Debconf::Gettext;
use Debconf::Config;
use base qw(Debconf::Element::Multiselect Debconf::Element::Teletype::Select);



sub expand_ranges {
	my @ranges = @_;
	my @accumulator;
	for my $item (@ranges) {
		if ($item =~ /\A(\d+)-(\d+)\Z/) {
			my ($begin, $end) = ($1, $2);
			for (my $i = $begin; $i <= $end; $i++) {
				push @accumulator, $i;
			}
		}
		else {
			push @accumulator, $item;
		}
	}
	return @accumulator;
}

sub show {
	my $this=shift;

	my @selected;
	my $none_of_the_above=gettext("none of the above");

	my @choices=$this->question->choices_split;
	my %value = map { $_ => 1 } $this->translate_default;
	if ($this->frontend->promptdefault && $this->question->value ne '') {
		push @choices, $none_of_the_above;
	}
	my @completions=@choices;
	my $i=1;
	my %choicenum=map { $_ => $i++ } @choices;

	$this->frontend->display($this->question->extended_description."\n");

	my $default;
	if (Debconf::Config->terse eq 'false') {
		$this->printlist(@choices);
		$this->frontend->display("\n(".gettext("Enter the items or ranges you want to select, separated by spaces.").")\n");
		push @completions, 1..@choices;
		$default=join(" ", map { $choicenum{$_} }
		                   grep { $value{$_} } @choices);
	}
	else {
		$default=join(" ", grep { $value{$_} } @choices);
	}

	while (1) {
		$_=$this->frontend->prompt(
			prompt => $this->question->description,
		 	default => $default,
			completions => [@completions],
			completion_append_character => " ",
			question => $this->question,
		);
		return unless defined $_;

		@selected=split(/[	 ,]+/, $_);

		@selected=expand_ranges(@selected);

		@selected=map { $this->expandabbrev($_, @choices) } @selected;

		next if grep { $_ eq '' } @selected;

		if ($#selected > 0) {
			map { next if $_ eq $none_of_the_above } @selected;
		}

		last;
	}

	$this->frontend->display("\n");

	if (defined $selected[0] && $selected[0] eq $none_of_the_above) {
		$this->value('');
	}
	else {
		my %selected=map { $_ => 1 } @selected;

		$this->value(join(', ', $this->order_values(
				map { $this->translate_to_C($_) }
		                keys %selected)));
	}
}

1
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY