fix text% insert bug

svn: r18356

original commit: a2bf0d3d25b075f1435b1831fd9d9568eb0ee315
This commit is contained in:
Matthew Flatt 2010-02-26 19:50:05 +00:00
parent 1309cd03d7
commit cda1ac7906

View File

@ -1684,6 +1684,13 @@
[else
(loop start str (+ sp 1) (+ i 1) (+ cnt 1) inserted-line?)])))))))))))
(define/private (check-len str len)
(unless (len . <= . (string-length str))
(raise-mismatch-error (method-name 'text% 'insert)
(format "length ~e too large for given string: "
len)
str)))
(define/override (insert . args)
(case-args
args
@ -1696,12 +1703,14 @@
(do-insert #f str #f start end scroll-ok?)]
[([exact-nonnegative-integer? len]
[string? str])
(do-insert #f str #f startpos endpos #t)]
(check-len str len)
(do-insert #f (substring str 0 len) #f startpos endpos #t)]
[([exact-nonnegative-integer? len]
[string? str]
[exact-nonnegative-integer? start]
[(make-alts exact-nonnegative-integer? (symbol-in same)) [end 'same]]
[any? [scroll-ok? #t]])
(check-len str len)
(do-insert #f (substring str 0 len) #f start end scroll-ok?)]
[([snip% snip])
(do-insert snip #f #f startpos endpos #t)]