Szerkesztő:UTF46/src/editor/texteditor.pm
Megjelenés
editor/texteditor.pm forráskódja[szerkesztés]
package editor::texteditor;
use utf8;
use strict;
use warnings;
sub new {
my $class=shift;
my $editor=$ENV{EDITOR};
die "NO EDITOR in environment variables set. set it explicitely" if not $editor;
die "Enter explicite filename of the editor in the environment variable. PATH is unsupported" if $editor !~ /\//;
if ($editor =~ /^(\/[\w\-\/]+)$/) {
$editor=$1;
} else {
die "unexpected character in EDITOR env-var";
};
my $self={
editor=>$editor,
};
bless $self,$class;
return $self;
};
sub automata {
my $self=shift;
return 0;
};
sub edit {
my $self=shift;
my $title=shift;
my $text=shift;
my $fname="file_$$";
my $fsummary="summary_$$";
my $summary='';
local $ENV{PATH}='/bin:/usr/bin';
while (not $summary) {
open F,">:utf8",$fname;
print F $text;
close F;
system ($self->{editor},$fname,$fsummary);
local $/=undef;
open F,"<:utf8",$fname;
$text=<F>;
close F;
open F,"<:utf8",$fsummary;
$summary=<F>;
close F;
$summary=~ s/[\s\r\n]+/ /sg;
if ($text=~ /^(.*)$/) {
$text=$1;
};
if ($summary=~ /^(.*)$/) {
$summary=$1;
};
};
return {
summary=>$summary,
text=>$text,
notminor=>1,
nocreate=>1,
};
};
1;