Update of /project/mcclim/cvsroot/mcclim/Drei In directory clnet:/tmp/cvs-serv19881
Modified Files: editing.lisp Log Message: We also need different line-transposition methods for left- and right-sticky-marks.
--- /project/mcclim/cvsroot/mcclim/Drei/editing.lisp 2006/11/29 09:39:57 1.3 +++ /project/mcclim/cvsroot/mcclim/Drei/editing.lisp 2006/11/29 09:59:00 1.4 @@ -299,7 +299,7 @@
;; Autogenerated TRANSPOSE-LINES is not good enough. (defmethod transpose-lines - (mark syntax) + ((mark left-sticky-mark) syntax) (beginning-of-line mark) (unless (beginning-of-buffer-p mark) (backward-line mark syntax)) @@ -312,11 +312,28 @@ (unless (end-of-buffer-p mark) (delete-range mark)) (end-of-line mark) - (insert-object mark #\Newline) (forward-line mark syntax 0) (insert-sequence mark line) (insert-object mark #\Newline)))
+(defmethod transpose-lines + ((mark right-sticky-mark) syntax) + (beginning-of-line mark) + (unless (beginning-of-buffer-p mark) + (backward-line mark syntax)) + (let* ((bol (offset mark)) + (eol (progn (end-of-line mark) + (offset mark))) + (line (buffer-sequence (buffer mark) bol eol))) + (delete-region bol mark) + ;; Remove newline at end of line as well. + (unless (end-of-buffer-p mark) + (delete-range mark)) + (end-of-line mark) + (insert-object mark #\Newline) + (forward-line mark syntax 0) + (insert-sequence mark line))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; Word editing