From: Eli Zaretskii Date: Sat, 17 May 2014 08:58:17 +0000 (+0300) Subject: Fix bug #17511 with unclear documentation of line-move-ignore-invisible. X-Git-Tag: emacs-24.3.92~199 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=1e046d37a49e235c2461630086a65a09ec6cb792;p=emacs.git Fix bug #17511 with unclear documentation of line-move-ignore-invisible. lisp/simple.el (line-move-ignore-invisible): Doc fix. doc/lispref/display.texi (Invisible Text): Clarify the description of line-move-ignore-invisible. --- diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 3a82523df2e..87f2d85cc40 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,8 @@ +2014-05-17 Eli Zaretskii + + * display.texi (Invisible Text): Clarify the description of + line-move-ignore-invisible. (Bug#17511) + 2014-05-07 Paul Eggert * internals.texi (C Dialect): New section. diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index acbef6b9495..e93f9ab5a4d 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -930,12 +930,14 @@ current value of @code{buffer-invisibility-spec}. @vindex line-move-ignore-invisible Ordinarily, functions that operate on text or move point do not care -whether the text is invisible. The user-level line motion commands -ignore invisible newlines if @code{line-move-ignore-invisible} is -non-@code{nil} (the default), but only because they are explicitly -programmed to do so. - - However, if a command ends with point inside or at the boundary of +whether the text is invisible, they process invisible characters and +visible characters alike. The user-level line motion commands, +such as @code{next-line}, @code{previous-line}, ignore invisible +newlines if @code{line-move-ignore-invisible} is non-@code{nil} (the +default), i.e., behave like these invisible newlines didn't exist in +the buffer, but only because they are explicitly programmed to do so. + + If a command ends with point inside or at the boundary of invisible text, the main editing loop relocates point to one of the two ends of the invisible text. Emacs chooses the direction of relocation so that it is the same as the overall movement direction of @@ -952,6 +954,10 @@ command moved point forward into an invisible range, Emacs moves point forward to the first visible character that follows the invisible text and then forward one more character. + These @dfn{adjustments} of point that ended up in the middle of +invisible text can be disabled by setting @code{disable-point-adjustment} +to a non-@code{nil} value. @xref{Adjusting Point}. + Incremental search can make invisible overlays visible temporarily and/or permanently when a match includes invisible text. To enable this, the overlay should have a non-@code{nil} diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 3907aade58e..fc18c9d77d8 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2014-05-17 Eli Zaretskii + + * simple.el (line-move-ignore-invisible): Doc fix. (Bug#17511) + 2014-05-16 Michael Albinus * net/dbus.el (dbus-init-bus, dbus-call-method) diff --git a/lisp/simple.el b/lisp/simple.el index 36d2d0b3a15..1b14250e2fd 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -4978,7 +4978,16 @@ When the `track-eol' feature is doing its job, the value is `most-positive-fixnum'.") (defcustom line-move-ignore-invisible t - "Non-nil means \\[next-line] and \\[previous-line] ignore invisible lines. + "Non-nil means commands that move by lines ignore invisible newlines. + +When this option is non-nil, \\[next-line], \\[previous-line], \\[move-end-of-line], and \\[move-beginning-of-line] behave +as if newlines that are invisible didn't exist, and count +only visible newlines. Thus, moving across across 2 newlines +one of which is invisible will be counted as a one-line move. +Also, a non-nil value causes invisible text to be ignored when +counting columns for the purposes of keeping point in the same +column by \\[next-line] and \\[previous-line]. + Outline mode sets this." :type 'boolean :group 'editing-basics)