From c854f6ad447a5a21e0b3c739bdfbf307c2f2a184 Mon Sep 17 00:00:00 2001 From: jluehrs2 Date: Thu, 22 May 2008 00:19:59 -0500 Subject: implement the 't' command, or try, at least --- lib/Language/TECO.pm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/lib/Language/TECO.pm b/lib/Language/TECO.pm index 587d641..9c39886 100644 --- a/lib/Language/TECO.pm +++ b/lib/Language/TECO.pm @@ -175,6 +175,31 @@ sub execute { $self->push_cmd('c'); redo; } + elsif (/t/i) { + $self->cmd(sub { + my $self = shift; + if (defined $self->{n2}) { + $self->{buffer}->print(($self->num)); + } + else { + my $num = $self->num; + if ($num > 0) { + my $regex = "(?:.*\n){$num}"; + pos $self->{buffer}->{buffer} = $self->{buffer}->{pointer}; + $self->{buffer}->{buffer} =~ /$regex/g; + $self->{buffer}->print($self->{buffer}->{pointer}, + $+[0]); + } + else { + my $rev = reverse $self->{buffer}->{buffer}; + my $regex = ".*?(?:\n.*?){$num}(?=\n|\$)"; + pos $rev = length($self->{buffer}->{buffer}) - $self->{buffer}->{pointer}; + $rev =~ /$regex/sg; + $self->{buffer}->print(length($self->{buffer}->{buffer}) - $+[0], $self->{buffer}->{pointer}); + } + } + }); + } } } -- cgit v1.2.3-54-g00ecf