Update of /project/climacs/cvsroot/climacs In directory common-lisp.net:/tmp/cvs-serv18516
Modified Files: base.lisp Log Message: modified previous-line and next-line to take an optional column argument.
Date: Thu Jan 6 17:38:55 2005 Author: rstrandh
Index: climacs/base.lisp diff -u climacs/base.lisp:1.10 climacs/base.lisp:1.11 --- climacs/base.lisp:1.10 Wed Jan 5 06:09:04 2005 +++ climacs/base.lisp Thu Jan 6 17:38:54 2005 @@ -28,29 +28,31 @@
(in-package :climacs-base)
-(defun previous-line (mark) +(defun previous-line (mark &optional column) "Move a mark up one line conserving horizontal position." - (let ((column (column-number mark))) - (beginning-of-line mark) - (if (beginning-of-buffer-p mark) - (incf (offset mark) column) - (progn (decf (offset mark)) - (when (> (column-number mark) column) - (beginning-of-line mark) - (incf (offset mark) column)))))) + (unless column + (setf column (column-number mark))) + (beginning-of-line mark) + (if (beginning-of-buffer-p mark) + (incf (offset mark) column) + (progn (decf (offset mark)) + (when (> (column-number mark) column) + (beginning-of-line mark) + (incf (offset mark) column)))))
-(defun next-line (mark) +(defun next-line (mark &optional column) "Move a mark down one line conserving horizontal position." - (let ((column (column-number mark))) - (end-of-line mark) - (if (end-of-buffer-p mark) - (progn (beginning-of-line mark) - (incf (offset mark) column)) - (progn (incf (offset mark)) - (end-of-line mark) - (when (> (column-number mark) column) - (beginning-of-line mark) - (incf (offset mark) column)))))) + (unless column + (setf column (column-number mark))) + (end-of-line mark) + (if (end-of-buffer-p mark) + (progn (beginning-of-line mark) + (incf (offset mark) column)) + (progn (incf (offset mark)) + (end-of-line mark) + (when (> (column-number mark) column) + (beginning-of-line mark) + (incf (offset mark) column)))))
(defun open-line (mark) "Create a new line in a buffer."