
| Current Path : /var/www/web-klick.de/dsh/90_akt/DivBasicF/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/web-klick.de/dsh/90_akt/DivBasicF/COMTerminal.pm |
package DivBasicF::COMTerminal;
use strict;
use vars qw(@ISA);
use DivBasicF::COM;
use Term::ReadLine;
use Data::Dumper;
@ISA = qw(DivBasicF::COM);
sub new {
my $class = shift;
my $self = {};
my $pars = shift;
$self->{'OBJ'} = shift;
$self->{'EDIT'} = shift(@$pars);
$self->{'FILE'} = $$;
$self->{'TERM'} = Term::ReadLine->new(0);
$self->{'OUT'} = $self->{'TERM'}->OUT();
$self->{'PROMPT'} = $self->{'FILE'} . " > ";
$self->{'RESULT'} = "";
if ($self->{'EDIT'} =~ s/^\.//) {
$self->{'LAZY'} = 0;
} else {
$self->{'LAZY'} = 1;
}
if ($self->{'EDIT'} =~ s/^(.*?) +win *$/$1/) {
$self->{'CONVERT'} = "win";
}
elsif ($self->{'EDIT'} =~ s/^(.*?) +utf(\d*) *$/$1/) {
$self->{'CONVERT'} = "utf8";
}
elsif ($self->{'EDIT'} =~ s/^(.*?) +linux *$/$1/) {
$self->{'CONVERT'} = "linux";
}
if ($self->{'EDIT'} eq "joe") {
$self->{'CONVERT'} = "linux";
}
elsif ($self->{'EDIT'} eq "ujoe") {
$self->{'EDIT'} = "joe";
$self->{'CONVERT'} = "utf8";
}
elsif ($self->{'EDIT'} eq "notepad") {
$self->{'CONVERT'} = "utf8";
}
$self->{'BATCH'} = [];
bless($self,$class);
return($self);
}
#**************************************************************
sub choose {
my $self = shift;
my $mode = shift;
my $text = shift;
my $o = ($self->query(["getparam",1]))->[0];
return($o) if ($o);
my $o = $self->{'OUT'};
print $o $self->c1($text);
$o = $self->c2( $self->{'TERM'}->readline($self->{'PROMPT'}) );
my $ee = [];
while (0 == 0) {
if ($o =~ s/^ *\"(.*?)\"//) { push(@$ee,$1); }
elsif ($o =~ s/^ *(\S+)//) { push(@$ee,$1); }
else { last; }
}
return($ee);
}
#**************************************************************
sub edit {
my $self = shift;
my $mode = shift;
my $text = shift;
my $o = ($self->query(["getparam",1]))->[0];
if ($o) {
return([$text]) if ($o->[0] eq ".");
return($o);
}
$text = $self->c1($text);
open(FFILE,">".$self->{'FILE'});
print FFILE $text;
close(FFILE);
system($self->{'EDIT'} . " " . $self->{'FILE'});
open(FFILE,"<".$self->{'FILE'});
my $text1 = join("",<FFILE>);
close(FFILE);
$text1 = $self->c2($text1);
unlink($self->{'FILE'});
unlink($self->{'FILE'}."~");
return([$text1]);
}
#**************************************************************
sub startpage {
my $self = shift;
my $mode = shift;
my $text = shift;
print "$text\n\n";
return(["___END___"]);
}
#**************************************************************
1;