]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix bug #971 with next/previous-line when goal-column is set.
authorEli Zaretskii <eliz@gnu.org>
Fri, 16 Sep 2011 17:15:16 +0000 (20:15 +0300)
committerEli Zaretskii <eliz@gnu.org>
Fri, 16 Sep 2011 17:15:16 +0000 (20:15 +0300)
 lisp/simple.el (line-move): If goal-column is set, move by logical
 lines, not by display lines.
 (next-line, previous-line, goal-column, line-move-visual): Doc fix
 to reflect the above change.

lisp/ChangeLog
lisp/simple.el

index deded0ff5f04bbbbc9cddae917c2caf2401300f4..d8d4c872d596a6965934ab97638fa4a045b1288c 100644 (file)
@@ -1,3 +1,10 @@
+2011-09-16  Eli Zaretskii  <eliz@gnu.org>
+
+       * simple.el (line-move): If goal-column is set, move by logical
+       lines, not by display lines.  (Bug#971)
+       (next-line, previous-line, goal-column, line-move-visual): Doc fix
+       to reflect the above change.
+
 2011-09-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * image.el (imagemagick-register-types): Use regexp-opt.
index 74343496c72336f19c5cba40a2b56da9c42689ff..4db0aae25ad0d17a57384bf20cda5ec19012f32c 100644 (file)
@@ -4134,7 +4134,9 @@ a semipermanent goal column for this command.
 Then instead of trying to move exactly vertically (or as close as possible),
 this command moves to the specified goal column (or as close as possible).
 The goal column is stored in the variable `goal-column', which is nil
-when there is no goal column.
+when there is no goal column.  Note that setting `goal-column'
+overrides `line-move-visual' and causes this command to move by buffer
+lines rather than by display lines.
 
 If you are thinking of using this in a Lisp program, consider
 using `forward-line' instead.  It is usually easier to use
@@ -4172,7 +4174,9 @@ a semipermanent goal column for this command.
 Then instead of trying to move exactly vertically (or as close as possible),
 this command moves to the specified goal column (or as close as possible).
 The goal column is stored in the variable `goal-column', which is nil
-when there is no goal column.
+when there is no goal column.  Note that setting `goal-column'
+overrides `line-move-visual' and causes this command to move by buffer
+lines rather than by display lines.
 
 If you are thinking of using this in a Lisp program, consider using
 `forward-line' with a negative argument instead.  It is usually easier
@@ -4196,7 +4200,8 @@ This has no effect when `line-move-visual' is non-nil."
   :group 'editing-basics)
 
 (defcustom goal-column nil
-  "Semipermanent goal column for vertical motion, as set by \\[set-goal-column], or nil."
+  "Semipermanent goal column for vertical motion, as set by \\[set-goal-column], or nil.
+A non-nil setting overrides `line-move-visual', which see."
   :type '(choice integer
                 (const :tag "None" nil))
   :group 'editing-basics)
@@ -4226,7 +4231,9 @@ Outline mode sets this."
 This movement is based on where the cursor is displayed on the
 screen, instead of relying on buffer contents alone.  It takes
 into account variable-width characters and line continuation.
-If nil, `line-move' moves point by logical lines."
+If nil, `line-move' moves point by logical lines.
+A non-nil setting of `goal-column' overrides the value of this variable
+and forces movement by logical lines."
   :type 'boolean
   :group 'editing-basics
   :version "23.1")
@@ -4303,7 +4310,7 @@ If nil, `line-move' moves point by logical lines."
               (not executing-kbd-macro)
               (line-move-partial arg noerror to-end))
     (set-window-vscroll nil 0 t)
-    (if line-move-visual
+    (if (and line-move-visual (not goal-column))
        (line-move-visual arg noerror)
       (line-move-1 arg noerror to-end))))