summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjluehrs2 <jluehrs2@uiuc.edu>2008-05-24 17:20:33 -0500
committerjluehrs2 <jluehrs2@uiuc.edu>2008-05-24 17:20:33 -0500
commit57e912eefc5bebd9b0f9f4dcaa53689620965f8d (patch)
treed4bc30ffc6cefb960ec2e9800e9847a605d9734d
parent84aa60a8815d3a35a0cfebe5f9973eff837d1c19 (diff)
downloadlanguage-teco-57e912eefc5bebd9b0f9f4dcaa53689620965f8d.tar.gz
language-teco-57e912eefc5bebd9b0f9f4dcaa53689620965f8d.zip
make indexing off the ends of the buffer do the right thing
-rw-r--r--lib/Language/TECO/Buffer.pm4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/Language/TECO/Buffer.pm b/lib/Language/TECO/Buffer.pm
index 5d45397..e2b7945 100644
--- a/lib/Language/TECO/Buffer.pm
+++ b/lib/Language/TECO/Buffer.pm
@@ -17,8 +17,8 @@ sub endpos { length shift->{buffer} }
sub buffer {
my $self = shift;
my ($start, $end) = @_;
- $start = 0 unless defined $start;
- $end = $self->endpos unless defined $end;
+ $start = 0 if !defined $start || $start < 0;
+ $end = $self->endpos if !defined $end || $end > $self->endpos;
($start, $end) = ($end, $start) if $start > $end;
return substr $self->{buffer}, $start, $end - $start;
}