diff --git a/hemlock/text.lisp b/hemlock/text.lisp index c1fdeace1ecf8e8db74bc31c7edfba5a52c90462..83776da8593b5d3b0fb38c5b64f0fa11376dac44 100644 --- a/hemlock/text.lisp +++ b/hemlock/text.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/hemlock/text.lisp,v 1.1.1.2 1991/02/08 16:38:33 ram Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/hemlock/text.lisp,v 1.1.1.3 1991/10/03 15:16:27 ram Exp $") ;;; ;;; ********************************************************************** ;;; @@ -306,16 +306,18 @@ (do () ((not (sentence-closing-char-attribute-p (next-character ,mark)))) (mark-after ,mark)) - (cond ((char= (next-character ,mark) #\newline) - ,(if (eq direction :forward) mark `(mark-after ,mark))) - ((and (char= (next-character ,mark) #\space) - (or (char= (next-character (mark-after ,mark)) #\space) - (char= (next-character ,mark) #\newline))) - ,(if (eq direction :forward) - `(mark-before ,mark) - `(mark-after ,mark))) - (t (move-to-position ,mark start) - nil)))) + (let ((next (next-character ,mark))) + (cond ((or (not next) + (char= next #\newline)) + ,(if (eq direction :forward) mark `(mark-after ,mark))) + ((and (char= next #\space) + (member (next-character (mark-after ,mark)) + '(nil #\space #\newline))) + ,(if (eq direction :forward) + `(mark-before ,mark) + `(mark-after ,mark))) + (t (move-to-position ,mark start) + nil))))) ); (eval-when (compile eval)