* bug#44929: 28.0.50; Info-next-reference skips next reference
@ 2020-11-28 19:21 Stephen Berman
2020-11-28 19:44 ` Eli Zaretskii
0 siblings, 1 reply; 6+ messages in thread
From: Stephen Berman @ 2020-11-28 19:21 UTC (permalink / raw)
To: 44929
[-- Attachment #1: Type: text/plain, Size: 1578 bytes --]
0. emacs -Q
1. C-h r (if emacs is installed, otherwise `C-u h i /path/to/emacs.info
RET')
2. Repeat `C-n' until the cursor is on the '*' before the first menu
item 'Distrib'.
3. Type TAB
=> The cursor jumps over 'Distrib' and goes to the second menu item
'Intro'.
The same thing happens if the cursor is on the space between '*' and
'Distrib' and you then press TAB. In both cases, I expected the cursor
to go to the immediately following link instead of skipping it. This
behavior annoys me every time I run into it, but I haven't debugged it
till now. The attached patch fixes it. (The code responsible for the
current behavior in Info-next-reference has not changed since the
command was added to Emacs, but I hope you'll nevertheless agree it's a
bug.)
In GNU Emacs 28.0.50 (build 42, x86_64-pc-linux-gnu, GTK+ Version 3.24.17, cairo version 1.17.3)
of 2020-11-21 built on strobe-jhalfs
Repository revision: 0a8cd0116204354e95fbb4ebde64c58123502aa2
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12008000
System Description: Linux From Scratch SVN-20200401
Configured using:
'configure --with-xwidgets 'CFLAGS=-Og -g3'
PKG_CONFIG_PATH=/opt/qt5/lib/pkgconfig'
Configured features:
XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND DBUS GSETTINGS GLIB NOTIFY
INOTIFY ACL GNUTLS LIBXML2 FREETYPE HARFBUZZ ZLIB TOOLKIT_SCROLL_BARS
GTK3 X11 XDBE XIM MODULES THREADS XWIDGETS LIBSYSTEMD PDUMPER LCMS2
Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Info-next-reference.diff --]
[-- Type: text/x-patch, Size: 637 bytes --]
diff --git a/lisp/info.el b/lisp/info.el
index c3684deb96..5c383836c8 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -3148,6 +3148,12 @@ Info-next-reference
(old-pt (point))
(case-fold-search t))
(or (eobp) (forward-char 1))
+ ;; Don't jump over the cross-reference or menu item when the
+ ;; cursor is on the '*' or space in front of it.
+ (unless (looking-at " Menu:")
+ (let ((lbp (line-beginning-position)))
+ (when (looking-back "^\\* ?" lbp)
+ (backward-char (if (looking-back "^\\* " lbp) 2 1)))))
(or (Info-next-reference-or-link pat 'link)
(progn
(goto-char (point-min))
^ permalink raw reply related [flat|nested] 6+ messages in thread
* bug#44929: 28.0.50; Info-next-reference skips next reference
2020-11-28 19:21 bug#44929: 28.0.50; Info-next-reference skips next reference Stephen Berman
@ 2020-11-28 19:44 ` Eli Zaretskii
2020-11-28 19:54 ` Stephen Berman
0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2020-11-28 19:44 UTC (permalink / raw)
To: Stephen Berman; +Cc: 44929
> From: Stephen Berman <stephen.berman@gmx.net>
> Date: Sat, 28 Nov 2020 20:21:50 +0100
>
> 0. emacs -Q
> 1. C-h r (if emacs is installed, otherwise `C-u h i /path/to/emacs.info
> RET')
> 2. Repeat `C-n' until the cursor is on the '*' before the first menu
> item 'Distrib'.
> 3. Type TAB
> => The cursor jumps over 'Distrib' and goes to the second menu item
> 'Intro'.
>
> The same thing happens if the cursor is on the space between '*' and
> 'Distrib' and you then press TAB. In both cases, I expected the cursor
> to go to the immediately following link instead of skipping it.
AFAIU, your expectation is wrong: TAB runs the command
Info-next-reference, where the "next" part means "not the current
one". For the "current" reference, press RET.
The stand-alone Info reader behaves the same. So this is not a bug,
and I don't think we can change that in Emacs, even if we'd agree with
you (and I don't think I do).
Thanks.
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#44929: 28.0.50; Info-next-reference skips next reference
2020-11-28 19:44 ` Eli Zaretskii
@ 2020-11-28 19:54 ` Stephen Berman
2020-11-28 20:10 ` Drew Adams
0 siblings, 1 reply; 6+ messages in thread
From: Stephen Berman @ 2020-11-28 19:54 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 44929-done
On Sat, 28 Nov 2020 21:44:19 +0200 Eli Zaretskii <eliz@gnu.org> wrote:
>> From: Stephen Berman <stephen.berman@gmx.net>
>> Date: Sat, 28 Nov 2020 20:21:50 +0100
>>
>> 0. emacs -Q
>> 1. C-h r (if emacs is installed, otherwise `C-u h i /path/to/emacs.info
>> RET')
>> 2. Repeat `C-n' until the cursor is on the '*' before the first menu
>> item 'Distrib'.
>> 3. Type TAB
>> => The cursor jumps over 'Distrib' and goes to the second menu item
>> 'Intro'.
>>
>> The same thing happens if the cursor is on the space between '*' and
>> 'Distrib' and you then press TAB. In both cases, I expected the cursor
>> to go to the immediately following link instead of skipping it.
>
> AFAIU, your expectation is wrong: TAB runs the command
> Info-next-reference, where the "next" part means "not the current
> one". For the "current" reference, press RET.
I didn't know that RET works anywhere on the line (or lines) of the menu
item, not just on the link, and it never occurred to me to try. Thanks
for enlightening me. Closing.
Steve Berman
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#44929: 28.0.50; Info-next-reference skips next reference
2020-11-28 19:54 ` Stephen Berman
@ 2020-11-28 20:10 ` Drew Adams
2020-11-28 20:22 ` Eli Zaretskii
0 siblings, 1 reply; 6+ messages in thread
From: Drew Adams @ 2020-11-28 20:10 UTC (permalink / raw)
To: Stephen Berman, Eli Zaretskii; +Cc: 44929-done
> > AFAIU, your expectation is wrong: TAB runs the command
> > Info-next-reference, where the "next" part means "not the current
> > one". For the "current" reference, press RET.
>
> I didn't know that RET works anywhere on the line (or lines) of the
> menu item, not just on the link, and it never occurred to me to try.
How about improving `C-h k RET' here, to let
users know that? Neither the command name
nor the doc string really suggests that. IOW,
can we please elaborate about "near point"?
What's more, though some of the doc string says
"near point", other parts say "on".
"If point is on a reference..."
"If point is in a menu item..."
And this mistakenly says that "point" is "on",
or "in" something, whereas point is a position,
not something that is at, on, or in something
else. It's the other way around: something is
_at_ a position (such as point).
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#44929: 28.0.50; Info-next-reference skips next reference
2020-11-28 20:10 ` Drew Adams
@ 2020-11-28 20:22 ` Eli Zaretskii
0 siblings, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2020-11-28 20:22 UTC (permalink / raw)
To: Drew Adams; +Cc: stephen.berman, 44929
> Date: Sat, 28 Nov 2020 12:10:57 -0800 (PST)
> From: Drew Adams <drew.adams@oracle.com>
> Cc: 44929-done@debbugs.gnu.org
>
> How about improving `C-h k RET' here, to let
> users know that? Neither the command name
> nor the doc string really suggests that. IOW,
> can we please elaborate about "near point"?
>
> What's more, though some of the doc string says
> "near point", other parts say "on".
>
> "If point is on a reference..."
> "If point is in a menu item..."
>
> And this mistakenly says that "point" is "on",
> or "in" something, whereas point is a position,
> not something that is at, on, or in something
> else. It's the other way around: something is
> _at_ a position (such as point).
Pedant.
^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <<87360tjnht.fsf@gmx.net>]
end of thread, other threads:[~2020-11-28 20:56 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-11-28 19:21 bug#44929: 28.0.50; Info-next-reference skips next reference Stephen Berman
2020-11-28 19:44 ` Eli Zaretskii
2020-11-28 19:54 ` Stephen Berman
2020-11-28 20:10 ` Drew Adams
2020-11-28 20:22 ` Eli Zaretskii
[not found] <<87360tjnht.fsf@gmx.net>
[not found] ` <<83h7p9mfl8.fsf@gnu.org>
[not found] ` <<87tut9i7fa.fsf@gmx.net>
[not found] ` <<2cb435b4-7de8-4783-9830-44195c111aca@default>
[not found] ` <<83czzxmdtm.fsf@gnu.org>
2020-11-28 20:56 ` Drew Adams
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).