K2LL33D SHELL

 Apache/2.4.7 (Ubuntu)
 Linux sman1baleendah 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64
 uid=33(www-data) gid=33(www-data) groups=33(www-data)
 safemode : OFF
 MySQL: ON | Perl: ON | cURL: OFF | WGet: ON
  >  / usr / share / perl5 / Debconf / FrontEnd /
server ip : 104.21.89.46

your ip : 108.162.241.113

H O M E


Filename/usr/share/perl5/Debconf/FrontEnd/Readline.pm
Size3.4 kb
Permissionrw-r--r--
Ownerroot : root
Create time27-Apr-2025 09:50
Last modified23-Feb-2014 22:30
Last accessed07-Jul-2025 02:35
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
#!/usr/bin/perl -w
# This file was preprocessed, do not edit!


package Debconf::FrontEnd::Readline;
use strict;
use Term::ReadLine;
use Debconf::Gettext;
use base qw(Debconf::FrontEnd::Teletype);


sub init {
my $this=shift;

$this->SUPER::init(@_);

open(TESTTY, "/dev/tty") || die gettext("This frontend requires a controlling tty.")."\n";
close TESTTY;

$Term::ReadLine::termcap_nowarn = 1; # Turn off stupid termcap warning.
$this->readline(Term::ReadLine->new('debconf'));
$this->readline->ornaments(1);

if (Term::ReadLine->ReadLine =~ /::Gnu$/) {
if (exists $ENV{TERM} && $ENV{TERM} =~ /emacs/i) {
die gettext("Term::ReadLine::GNU is incompatable with emacs shell buffers.")."\n";
}

$this->readline->add_defun('previous-question',
sub {
if ($this->capb_backup) {
$this->_skip(1);
$this->_direction(-1);
$this->readline->stuff_char(ord "\n");
}
else {
$this->readline->ding;
}
}, ord "\cu");
$this->readline->add_defun('next-question',
sub {
if ($this->capb_backup) {
$this->readline->stuff_char(ord "\n");
}
}, ord "\cv");
$this->readline->parse_and_bind('"\e[5~": previous-question');
$this->readline->parse_and_bind('"\e[6~": next-question');
$this->capb('backup');
}

if (Term::ReadLine->ReadLine =~ /::Stub$/) {
$this->promptdefault(1);
}
}


sub elementtype {
return 'Teletype';
}


sub go {
my $this=shift;

foreach my $element (grep ! $_->visible, @{$this->elements}) {
my $value=$element->show;
return if $this->backup && $this->capb_backup;
$element->question->value($value);
}

my @elements=grep $_->visible, @{$this->elements};
unless (@elements) {
$this->_didbackup('');
return 1;
}

my $current=$this->_didbackup ? $#elements : 0;

$this->_direction(1);
for (; $current > -1 && $current < @elements; $current += $this->_direction) {
my $value=$elements[$current]->show;
}

if ($current < 0) {
$this->_didbackup(1);
return;
}
else {
$this->_didbackup('');
return 1;
}
}


sub prompt {
my $this=shift;
my %params=@_;
my $prompt=$params{prompt}." ";
my $default=$params{default};
my $noshowdefault=$params{noshowdefault};
my $completions=$params{completions};

if ($completions) {
my @matches;
$this->readline->Attribs->{completion_entry_function} = sub {
my $text=shift;
my $state=shift;

if ($state == 0) {
@matches=();
foreach (@{$completions}) {
push @matches, $_ if /^\Q$text\E/i;
}
}

return pop @matches;
};
}
else {
$this->readline->Attribs->{completion_entry_function} = undef;
}

if (exists $params{completion_append_character}) {
$this->readline->Attribs->{completion_append_character}=$params{completion_append_character};
}
else {
$this->readline->Attribs->{completion_append_character}='';
}

$this->linecount(0);
my $ret;
$this->_skip(0);
if (! $noshowdefault) {
$ret=$this->readline->readline($prompt, $default);
}
else {
$ret=$this->readline->readline($prompt);
}
$this->display_nowrap("\n");
return if $this->_skip;
$this->_direction(1);
$this->readline->addhistory($ret);
return $ret;
}


sub prompt_password {
my $this=shift;
my %params=@_;

if (Term::ReadLine->ReadLine =~ /::Perl$/) {
return $this->SUPER::prompt_password(%params);
}

delete $params{default};
system('stty -echo 2>/dev/null');
my $ret=$this->prompt(@_, noshowdefault => 1, completions => []);
system('stty sane 2>/dev/null');
print "\n";
return $ret;
}


1