summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjluehrs2 <jluehrs2@uiuc.edu>2008-05-22 11:34:31 -0500
committerjluehrs2 <jluehrs2@uiuc.edu>2008-05-22 11:34:31 -0500
commitbdc063779a1387312b7d4020123ce4a319061594 (patch)
treea26ef59dcd54e94c58e5cc7b9b2829b0423ebc31
parentad82f647a16c45719e81d190164f94e9348013e3 (diff)
downloadlanguage-teco-bdc063779a1387312b7d4020123ce4a319061594.tar.gz
language-teco-bdc063779a1387312b7d4020123ce4a319061594.zip
add error handling for the delete command
-rw-r--r--lib/Language/TECO/Buffer.pm4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/Language/TECO/Buffer.pm b/lib/Language/TECO/Buffer.pm
index 9ed6d44..bc0f7c8 100644
--- a/lib/Language/TECO/Buffer.pm
+++ b/lib/Language/TECO/Buffer.pm
@@ -34,8 +34,10 @@ sub delete {
my $length = shift;
if ($length < 0) {
$length = -$length;
- $self->{pointer} -= $length;
+ $self->offset(-$length);
}
+ die "Pointer off page"
+ if $self->{pointer} + $length > length $self->{buffer};
substr($self->{buffer}, $self->{pointer}, $length) = '';
}