fixed cmd-space bug

original commit: cac32c3a556f6f57710ad2d048f20dc9ea971569
This commit is contained in:
Robby Findler 1998-08-09 15:17:06 +00:00
parent e7b4b7f84d
commit 6476f4e6e0

View File

@ -252,17 +252,23 @@
#t)]
[collapse-variable-space
(lambda (leave-one? edit event)
(letrec ([find-nonwhite
(letrec ([end-pos (send edit last-position)]
[find-nonwhite
(lambda (pos d)
(let ([c (send edit get-character pos)])
(cond
[(char=? #\newline c) pos]
[(or (and (< pos 0) (= d -1))
(and (> pos end-pos) (= d 1)))
(if (= d -1)
-1
end-pos)]
[(char-whitespace? c)
(find-nonwhite (+ pos d) d)]
[else pos])))])
(let ([sel-start (send edit get-start-position)]
[sel-end (send edit get-end-position)])
(if (= sel-start sel-end)
(when (= sel-start sel-end)
(let ([start (+ (find-nonwhite (- sel-start 1) -1)
(if leave-one? 2 1))]
[end (find-nonwhite sel-start 1)])
@ -277,7 +283,7 @@
(send edit insert " " (sub1 start) start))
(send edit set-position start)
(send edit end-edit-sequence))
(if leave-one?
(when leave-one?
(let ([at-start
(send edit get-character sel-start)]
[after-start
@ -293,7 +299,8 @@
(if (not (char=? after-start #\space))
(send edit insert " " (sub1 sel-start)
sel-start))]
[else (send edit insert " ")])))))))))]
[else
(send edit insert " ")])))))))))]
[collapse-space
(lambda (edit event)