unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#10105: 24.0.91; Possible bug in `scroll-conservatively'
@ 2011-11-22  9:51 Dani Moncayo
  2011-11-25 11:33 ` Eli Zaretskii
  0 siblings, 1 reply; 12+ messages in thread
From: Dani Moncayo @ 2011-11-22  9:51 UTC (permalink / raw)
  To: 10105

[-- Attachment #1: Type: text/plain, Size: 1295 bytes --]

Recipe from "emacs -Q":
1. Eval: "(setq scroll-conservatively 101)".
2. Eval: "(custom-set-faces '(mode-line ((t (:box (:line-width 1))))))".
3. Visit the attached file and from its first line type "C-s h e l l o".

--> The Isearch match should be positioned at the bottom line of the
window (see step #1), but it is at the top line instead.


In GNU Emacs 24.0.91.1 (i386-mingw-nt5.1.2600)
 of 2011-11-22 on MARVIN
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (4.6) --no-opt --cflags
-ID:/devel/emacs/libs/libXpm-3.5.8/include
-ID:/devel/emacs/libs/libXpm-3.5.8/src
-ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
-ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
-ID:/devel/emacs/libs/giflib-4.1.4-1/include
-ID:/devel/emacs/libs/jpeg-6b-4/include
-ID:/devel/emacs/libs/tiff-3.8.2-1/include
-ID:/devel/emacs/libs/gnutls-2.10.1/include --ldflags
-LD:/devel/emacs/libs/gnutls-2.10.1/lib'

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: ESN
  value of $XMODIFIERS: nil
  locale-coding-system: cp1252
  default enable-multibyte-characters: t

-- 
Dani Moncayo

[-- Attachment #2: test.txt --]
[-- Type: text/plain, Size: 295 bytes --]

;; first line




































































































































hello

					

^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#10105: 24.0.91; Possible bug in `scroll-conservatively'
  2011-11-22  9:51 bug#10105: 24.0.91; Possible bug in `scroll-conservatively' Dani Moncayo
@ 2011-11-25 11:33 ` Eli Zaretskii
  2011-11-25 15:43   ` Eli Zaretskii
  0 siblings, 1 reply; 12+ messages in thread
From: Eli Zaretskii @ 2011-11-25 11:33 UTC (permalink / raw)
  To: Dani Moncayo; +Cc: 10105-done

> Date: Tue, 22 Nov 2011 10:51:43 +0100
> From: Dani Moncayo <dmoncayo@gmail.com>
> 
> Recipe from "emacs -Q":
> 1. Eval: "(setq scroll-conservatively 101)".
> 2. Eval: "(custom-set-faces '(mode-line ((t (:box (:line-width 1))))))".
> 3. Visit the attached file and from its first line type "C-s h e l l o".
> 
> --> The Isearch match should be positioned at the bottom line of the
> window (see step #1), but it is at the top line instead.

Fixed in revision 106511 on the trunk.





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#10105: 24.0.91; Possible bug in `scroll-conservatively'
  2011-11-25 11:33 ` Eli Zaretskii
@ 2011-11-25 15:43   ` Eli Zaretskii
  2011-11-25 16:38     ` Dani Moncayo
  2011-11-28 10:38     ` Dani Moncayo
  0 siblings, 2 replies; 12+ messages in thread
From: Eli Zaretskii @ 2011-11-25 15:43 UTC (permalink / raw)
  To: Dani Moncayo; +Cc: 10105

> Date: Fri, 25 Nov 2011 13:33:56 +0200
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: 10105-done@debbugs.gnu.org
> 
> > Date: Tue, 22 Nov 2011 10:51:43 +0100
> > From: Dani Moncayo <dmoncayo@gmail.com>
> > 
> > Recipe from "emacs -Q":
> > 1. Eval: "(setq scroll-conservatively 101)".
> > 2. Eval: "(custom-set-faces '(mode-line ((t (:box (:line-width 1))))))".
> > 3. Visit the attached file and from its first line type "C-s h e l l o".
> > 
> > --> The Isearch match should be positioned at the bottom line of the
> > window (see step #1), but it is at the top line instead.
> 
> Fixed in revision 106511 on the trunk.

Err.. make that 106515; 106511 had a thinko that I fixed in the
followup.





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#10105: 24.0.91; Possible bug in `scroll-conservatively'
  2011-11-25 15:43   ` Eli Zaretskii
@ 2011-11-25 16:38     ` Dani Moncayo
  2011-11-28 10:38     ` Dani Moncayo
  1 sibling, 0 replies; 12+ messages in thread
From: Dani Moncayo @ 2011-11-25 16:38 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 10105

>> > Recipe from "emacs -Q":
>> > 1. Eval: "(setq scroll-conservatively 101)".
>> > 2. Eval: "(custom-set-faces '(mode-line ((t (:box (:line-width 1))))))".
>> > 3. Visit the attached file and from its first line type "C-s h e l l o".
>> >
>> > --> The Isearch match should be positioned at the bottom line of the
>> > window (see step #1), but it is at the top line instead.
>>
>> Fixed in revision 106511 on the trunk.
>
> Err.. make that 106515; 106511 had a thinko that I fixed in the
> followup.

Tested.  Thank you.


-- 
Dani Moncayo





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#10105: 24.0.91; Possible bug in `scroll-conservatively'
  2011-11-25 15:43   ` Eli Zaretskii
  2011-11-25 16:38     ` Dani Moncayo
@ 2011-11-28 10:38     ` Dani Moncayo
  2011-11-28 12:01       ` Eli Zaretskii
  2011-11-29  7:05       ` Juri Linkov
  1 sibling, 2 replies; 12+ messages in thread
From: Dani Moncayo @ 2011-11-28 10:38 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 10105

[-- Attachment #1: Type: text/plain, Size: 1147 bytes --]

>> > Recipe from "emacs -Q":
>> > 1. Eval: "(setq scroll-conservatively 101)".
>> > 2. Eval: "(custom-set-faces '(mode-line ((t (:box (:line-width 1))))))".
>> > 3. Visit the attached file and from its first line type "C-s h e l l o".
>> >
>> > --> The Isearch match should be positioned at the bottom line of the
>> > window (see step #1), but it is at the top line instead.
>>
>> Fixed in revision 106511 on the trunk.
>
> Err.. make that 106515; 106511 had a thinko that I fixed in the
> followup.

I've just seen another behavior that seem to be still wrong.  Please
try this from "emacs -Q":

1. Eval: "(setq scroll-conservatively 101)".
2. Eval: "(custom-set-faces '(mode-line ((t (:box (:line-width 1))))))".
3. Visit the attached file.
4. Type "C-s p C-s C-s C-s".
--> At this point, the Isearch has moved point to line "p1", but it's
positioned at the top of the window.  It should be at the bottom.


In GNU Emacs 24.0.91.1 (i386-mingw-nt5.1.2600)
 of 2011-11-25 on DANI-PC
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (4.6) --cflags -fno-omit-frame-pointer'


-- 
Dani Moncayo

[-- Attachment #2: test-2.txt --]
[-- Type: text/plain, Size: 381 bytes --]

;;begining


































































p1

























































p2






















































;;end

^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#10105: 24.0.91; Possible bug in `scroll-conservatively'
  2011-11-28 10:38     ` Dani Moncayo
@ 2011-11-28 12:01       ` Eli Zaretskii
  2011-11-28 12:12         ` Dani Moncayo
  2011-11-29  7:05       ` Juri Linkov
  1 sibling, 1 reply; 12+ messages in thread
From: Eli Zaretskii @ 2011-11-28 12:01 UTC (permalink / raw)
  To: Dani Moncayo; +Cc: 10105

> Date: Mon, 28 Nov 2011 11:38:05 +0100
> From: Dani Moncayo <dmoncayo@gmail.com>
> Cc: 10105@debbugs.gnu.org
> 
> 1. Eval: "(setq scroll-conservatively 101)".
> 2. Eval: "(custom-set-faces '(mode-line ((t (:box (:line-width 1))))))".
> 3. Visit the attached file.
> 4. Type "C-s p C-s C-s C-s".
> --> At this point, the Isearch has moved point to line "p1", but it's
> positioned at the top of the window.  It should be at the bottom.

I'm quite sure this is by design: the last C-s scrolls _up_, which
under scroll-conservatively means Emacs should put point at the
topmost line.  If you'd get to that line by C-p, that would be where
point should be displayed, right?

Why did you expect it to be at the bottom?

And does the custom-set-faces even make a difference (I cannot test
that where I'm typing this)?





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#10105: 24.0.91; Possible bug in `scroll-conservatively'
  2011-11-28 12:01       ` Eli Zaretskii
@ 2011-11-28 12:12         ` Dani Moncayo
  2011-11-28 13:08           ` Eli Zaretskii
  0 siblings, 1 reply; 12+ messages in thread
From: Dani Moncayo @ 2011-11-28 12:12 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 10105

>> 1. Eval: "(setq scroll-conservatively 101)".
>> 2. Eval: "(custom-set-faces '(mode-line ((t (:box (:line-width 1))))))".
>> 3. Visit the attached file.
>> 4. Type "C-s p C-s C-s C-s".
>> --> At this point, the Isearch has moved point to line "p1", but it's
>> positioned at the top of the window.  It should be at the bottom.
>
> I'm quite sure this is by design: the last C-s scrolls _up_, which
> under scroll-conservatively means Emacs should put point at the
> topmost line.  If you'd get to that line by C-p, that would be where
> point should be displayed, right?
>
> Why did you expect it to be at the bottom?

Because, after the "failing" C-s, the Isearch begins again from the
top of the buffer, so that the search direction is always (at least
conceptually) from top to bottom, i.e. _fordward_.  See info node
"(emacs)Repeat Isearch".

> And does the custom-set-faces even make a difference (I cannot test
> that where I'm typing this)?

Oh no, you're right.  Thus step #2 in the above recipe is unnecessary (sorry).


-- 
Dani Moncayo





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#10105: 24.0.91; Possible bug in `scroll-conservatively'
  2011-11-28 12:12         ` Dani Moncayo
@ 2011-11-28 13:08           ` Eli Zaretskii
  2011-11-28 17:37             ` Stefan Monnier
  0 siblings, 1 reply; 12+ messages in thread
From: Eli Zaretskii @ 2011-11-28 13:08 UTC (permalink / raw)
  To: Dani Moncayo; +Cc: 10105

> Date: Mon, 28 Nov 2011 13:12:48 +0100
> From: Dani Moncayo <dmoncayo@gmail.com>
> Cc: 10105@debbugs.gnu.org
> 
> > Why did you expect it to be at the bottom?
> 
> Because, after the "failing" C-s, the Isearch begins again from the
> top of the buffer, so that the search direction is always (at least
> conceptually) from top to bottom, i.e. _fordward_.

The _search_ direction is forward, that's true.  But
scroll-conservatively is not about the search direction, it is about
the direction in which point moves in the buffer from its last
displayed location.  And that is _backward_, not forward.

> See info node "(emacs)Repeat Isearch".

I will see your manual reference and raise ya.  From info node
"(emacs)Auto Scrolling", pay attention to the last sentence:

   Emacs performs "automatic scrolling" when point moves out of the
   visible portion of the text.

     Normally, this centers point vertically within the window.
   However, if you set `scroll-conservatively' to a small number N,
   then if you move point just a little off the screen (less than N
   lines), Emacs scrolls the text just far enough to bring point back
   on screen.  By default, `scroll-conservatively' is 0.  If you set
   `scroll-conservatively' to a large number (larger than 100), Emacs
   will never center point as result of scrolling, even if point moves
   far away from the text previously displayed in the window.  With
   such a large value, Emacs will always scroll text just enough for
   bringing point into view, so point will end up at the top or bottom
   of the window, depending on the scroll direction.

It talks about the direction in which point moves wrt the window, not
the direction of search.

Anyway, this is not something the display engine can fix.  If we want
point at the window bottom in this case, Isearch should arrange for
that to happen.  The display engine does not know anything about
Isearch and wrap-around, all it has is the previous window start point
and the new location of point in the buffer.  E.g., try "M-x goto-char" 
and you will see that point ends up at the top or bottom line
depending on the direction you move it.

So if you still want to have the behavior changed, please file a
separate bug against Isearch.





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#10105: 24.0.91; Possible bug in `scroll-conservatively'
  2011-11-28 13:08           ` Eli Zaretskii
@ 2011-11-28 17:37             ` Stefan Monnier
  2011-11-28 18:11               ` Eli Zaretskii
  0 siblings, 1 reply; 12+ messages in thread
From: Stefan Monnier @ 2011-11-28 17:37 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 10105

>> > Why did you expect it to be at the bottom?
>> Because, after the "failing" C-s, the Isearch begins again from the
>> top of the buffer, so that the search direction is always (at least
>> conceptually) from top to bottom, i.e. _fordward_.
> The _search_ direction is forward, that's true.
> But scroll-conservatively is not about the search direction, it is
> about the direction in which point moves in the buffer from its last
> displayed location.  And that is _backward_, not forward.

Indeed: it would make sense to put point at the bottom, but that
requires information to which the redisplay does not have access.
If you really insist, you could make isearch force a redisplay with
point at (point-min) when doing the wrap around and before moving to the
actual destination, but I don't think we want to go that far.


        Stefan





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#10105: 24.0.91; Possible bug in `scroll-conservatively'
  2011-11-28 17:37             ` Stefan Monnier
@ 2011-11-28 18:11               ` Eli Zaretskii
  0 siblings, 0 replies; 12+ messages in thread
From: Eli Zaretskii @ 2011-11-28 18:11 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 10105

> From: Stefan Monnier <monnier@IRO.UMontreal.CA>
> Cc: Dani Moncayo <dmoncayo@gmail.com>, 10105@debbugs.gnu.org
> Date: Mon, 28 Nov 2011 12:37:47 -0500
> 
> If you really insist, you could make isearch force a redisplay with
> point at (point-min) when doing the wrap around and before moving to the
> actual destination, but I don't think we want to go that far.

That would momentarily flash incorrect display, so I don't think it's
wise.

Isearch could notice the scroll-conservatively setting, and position
the hit accordingly in this case.  Gross, I know, but...





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#10105: 24.0.91; Possible bug in `scroll-conservatively'
  2011-11-28 10:38     ` Dani Moncayo
  2011-11-28 12:01       ` Eli Zaretskii
@ 2011-11-29  7:05       ` Juri Linkov
  2011-11-29 16:55         ` Eli Zaretskii
  1 sibling, 1 reply; 12+ messages in thread
From: Juri Linkov @ 2011-11-29  7:05 UTC (permalink / raw)
  To: Dani Moncayo; +Cc: 10105

> 1. Eval: "(setq scroll-conservatively 101)".
> 2. Eval: "(custom-set-faces '(mode-line ((t (:box (:line-width 1))))))".
> 3. Visit the attached file.
> 4. Type "C-s p C-s C-s C-s".
> --> At this point, the Isearch has moved point to line "p1", but it's
> positioned at the top of the window.  It should be at the bottom.

I've just noticed that Firefox behaves exactly the same as Emacs.
When typing repeatedly `F3' and wrapping around to the beginning
of the Web page, the search string is highlighted and positioned
at the top of the Firefox window, not at the bottom.  Firefox imitates
Emacs-like Isearch.  So we should not disappoint users by changing
the traditional behavior in Emacs.





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#10105: 24.0.91; Possible bug in `scroll-conservatively'
  2011-11-29  7:05       ` Juri Linkov
@ 2011-11-29 16:55         ` Eli Zaretskii
  0 siblings, 0 replies; 12+ messages in thread
From: Eli Zaretskii @ 2011-11-29 16:55 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 10105

> From: Juri Linkov <juri@jurta.org>
> Cc: Eli Zaretskii <eliz@gnu.org>,  10105@debbugs.gnu.org
> Date: Tue, 29 Nov 2011 09:05:04 +0200
> 
> > 1. Eval: "(setq scroll-conservatively 101)".
> > 2. Eval: "(custom-set-faces '(mode-line ((t (:box (:line-width 1))))))".
> > 3. Visit the attached file.
> > 4. Type "C-s p C-s C-s C-s".
> > --> At this point, the Isearch has moved point to line "p1", but it's
> > positioned at the top of the window.  It should be at the bottom.
> 
> I've just noticed that Firefox behaves exactly the same as Emacs.
> When typing repeatedly `F3' and wrapping around to the beginning
> of the Web page, the search string is highlighted and positioned
> at the top of the Firefox window, not at the bottom.  Firefox imitates
> Emacs-like Isearch.  So we should not disappoint users by changing
> the traditional behavior in Emacs.

I agree with your conclusion, but for the record I'd like to point out
that what you see in Emacs 24 is not the traditional behavior, not in
this case.  All versions of Emacs before 24 would not keep point at
the first or last screen line, they would sooner or later center point
in the window.  Emacs 23.3, in particular, centers point already after
the first "C-s p"; Emacs 22.3 centers it after the next C-s.

Only Emacs 24 behaves consistently when scroll-conservatively is set
to a large value.  IOW, the default "recentering" is now completely
replaced with code that puts point on the first or last line in the
window (barring bugs, of course) when this variable is set.





^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2011-11-29 16:55 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-11-22  9:51 bug#10105: 24.0.91; Possible bug in `scroll-conservatively' Dani Moncayo
2011-11-25 11:33 ` Eli Zaretskii
2011-11-25 15:43   ` Eli Zaretskii
2011-11-25 16:38     ` Dani Moncayo
2011-11-28 10:38     ` Dani Moncayo
2011-11-28 12:01       ` Eli Zaretskii
2011-11-28 12:12         ` Dani Moncayo
2011-11-28 13:08           ` Eli Zaretskii
2011-11-28 17:37             ` Stefan Monnier
2011-11-28 18:11               ` Eli Zaretskii
2011-11-29  7:05       ` Juri Linkov
2011-11-29 16:55         ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).