Package: emacs;
Reported by: Rudolf Adamkovič <salutis <at> me.com>
Date: Mon, 7 Mar 2022 07:27:02 UTC
Severity: normal
Found in version 29.0.50
To reply to this bug, email your comments to 54285 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#54285
; Package emacs
.
(Mon, 07 Mar 2022 07:27:02 GMT) Full text and rfc822 format available.Rudolf Adamkovič <salutis <at> me.com>
:bug-gnu-emacs <at> gnu.org
.
(Mon, 07 Mar 2022 07:27:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Rudolf Adamkovič <salutis <at> me.com> To: bug-gnu-emacs <at> gnu.org Subject: 29.0.50; Scrolling the calc help buffer Date: Mon, 07 Mar 2022 08:26:14 +0100
Reproduction steps: 1. emacs -Q 2. C-x * ? ? At this point: - the frame splits vertically, and - the bottom window shows help with a scroll bar. Scenario 1: The user starts reading help and as they reach the end of the visible part of the buffer, they scroll the window *with the mouse wheel*. Expected: the window scrolls, the user continues reading Actual: Emacs beeps and closes the window Scenario 2: The user starts reading help and as they reach the end of the visible part of the buffer, they scroll the window *with the scroll bar*. Expected: the window scrolls, the user continues reading Actual: Emacs beeps, closes the window, and tells the user: "Wrong type argument: stringp, nil" Scenario 3 (optional): The user starts reading help and as they reach the end of the visible part of the buffer, they move the cursor with C-n. Expected: the cursor in the window advances to the next line Actual: Emacs beeps, closes the window, and tells the user: "No active formulas in the buffer" Note: Emacs should never abruptly close any help window just because the user typed some "bad" key or performed some "bad" mouse interaction. Doing so frustrates the user and prevents them from learning. Rudy In GNU Emacs 29.0.50 (build 11, x86_64-apple-darwin21.2.0, NS appkit-2113.20 Version 12.1 (Build 21C52)) of 2022-03-01 built on Workstation.local Repository revision: caae254bb478ad83ba9caec6ec94b54e9abfb4c9 Repository branch: master Windowing system distributor 'Apple', version 10.3.2113 System Description: macOS 12.1 Configured using: 'configure --with-json --with-native-compilation' Configured features: ACL DBUS GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS WEBP XIM ZLIB Important settings: value of $LC_ALL: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Org Minor modes in effect: global-git-commit-mode: t magit-auto-revert-mode: t telega-root-auto-fill-mode: t telega-active-locations-mode: t telega-patrons-mode: t telega-mode-line-mode: t TeX-PDF-mode: t display-fill-column-indicator-mode: t global-hl-todo-mode: t global-diff-hl-mode: t diff-hl-mode: t lingua-franca-mode: t flyspell-mode: t marginalia-mode: t vertico-mouse-mode: t vertico-mode: t corfu-global-mode: t corfu-mode: t global-subword-mode: t subword-mode: t save-place-mode: t global-auto-revert-mode: t delete-selection-mode: t shell-dirtrack-mode: t savehist-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t size-indication-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /Users/salutis/.emacs.d/elpa/transient-20220227.1751/transient hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/transient Features: (shadow sort bbdb-message mail-extr cus-start cl-print calc-graph calc-help calc-incom calc-keypd calc-lang calc-mode calc-rules calc-sel calc-undo calcsel2 calc-bin calc-comb calc-cplx calc-fin calc-forms calc-frac calc-funcs calc-map calc-math calc-mtx calc-prog calc-rewr calc-stat calc-store calc-stuff calc-units calcalg2 calcalg3 shortdoc calc-arith calc-embed calccomp calc-alg calc-vec calc-aent calc-menu calc-yank calc-ext calc-misc calc calc-loaddefs calc-macs org-duration sh-script smie executable misearch multi-isearch epa-file rcirc bug-reference rect ox-md ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html table ox-ascii ox-publish ox consult-xref array jsonrpc ert debug backtrace ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util magit-bookmark magit-submodule magit-obsolete magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log magit-diff smerge-mode diff git-commit log-edit add-log magit-core magit-autorevert magit-margin magit-transient magit-process magit-mode magit-git magit-base which-func imenu ido magit-section modus-vivendi-theme auth-source-pass with-editor server telega telega-obsolete telega-tdlib-events telega-webpage emacsbug sendmail visual-fill-column telega-root telega-info telega-chat telega-modes telega-filter telega-sort telega-company telega-user telega-notifications notifications telega-voip telega-ins pcase telega-folders telega-inline telega-msg telega-tme telega-sticker telega-i18n telega-vvnote telega-util rainbow-identifiers dired-aux color bindat telega-ffplay telega-media telega-tdlib telega-server telega-core telega-customize autoload lisp-mnt tar-mode arc-mode archive-mode mm-archive gnutls network-stream url-http url-gw nsm url-cache url-auth char-fold tramp-cmds orderless cursor-sensor preview tex-buf font-latex latex latex-flymake flymake-proc flymake tex-ispell tex-style tex crm texmathp tex-mode holidays hol-loaddefs diary-lib diary-loaddefs cal-iso image-file image-converter disp-table hl-line face-remap org-habit org-agenda org-refile display-fill-column-indicator hl-todo diff-hl log-view pcvs-util vc-dir ewoc paredit fortune pdf-loader lingua-franca flyspell ispell org-clock oc-csl citeproc citeproc-itemgetters citeproc-biblatex citeproc-bibtex parsebib citeproc-cite citeproc-subbibs citeproc-sort citeproc-name citeproc-formatters citeproc-number rst citeproc-proc citeproc-disamb citeproc-itemdata citeproc-generic-elements citeproc-macro citeproc-choose citeproc-date citeproc-context citeproc-prange citeproc-style citeproc-locale citeproc-term f citeproc-rt citeproc-lib citeproc-s s let-alist queue dash ob-sqlite ob-sql ob-shell ob-C cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ob-R consult-vertico consult recentf tree-widget marginalia vertico-mouse vertico corfu cap-words superword subword saveplace autorevert filenotify vc-mtn vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc modus-operandi-theme modus-themes delsel diminish bbdb bbdb-site timezone geiser-guile tramp tramp-loaddefs trampver tramp-integration cus-edit cus-load files-x tramp-compat shell ls-lisp info-look geiser geiser-repl geiser-compile geiser-debug compile transient comp comp-cstr warnings edmacro kmacro geiser-image geiser-company geiser-doc geiser-menu geiser-edit etags fileloop xref project geiser-completion geiser-autodoc geiser-eval geiser-connection tq geiser-syntax scheme geiser-impl help-fns radix-tree geiser-log geiser-popup view geiser-custom geiser-base savehist exec-path-from-shell finder-inf elfeed-link elfeed-show elfeed-search elfeed-csv elfeed elfeed-curl elfeed-log xml-query bookmark pp elfeed-db elfeed-lib vc-git diff-mode vc-dispatcher ffap org-element avl-tree generator ol-eww eww xdg url-queue thingatpt mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum shr pixel-fill kinsoku url-file url-dired svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range message yank-media rmc puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util text-property-search mail-utils range mm-util mail-prsvr wid-edit ol-docview doc-view jka-compr image-mode exif dired dired-loaddefs ol-bibtex ol-bbdb ol-w3m ol-doi org-link-doi cl-extra help-mode org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete pcomplete comint ansi-color ring org-list org-faces org-entities noutline outline easy-mmode org-version ob-emacs-lisp ob-core ob-eval org-table oc-basic bibtex iso8601 time-date ol rx org-keys oc org-compat advice org-macs org-loaddefs format-spec find-func cal-menu calendar cal-loaddefs tex-site info package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json map url-vars seq gv subr-x byte-opt bytecomp byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind kqueue cocoa ns lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 2774640 188842) (symbols 48 71586 6) (strings 32 434479 17036) (string-bytes 1 12898038) (vectors 16 136130) (vector-slots 8 2905087 140047) (floats 8 8281 837) (intervals 56 194131 9874) (buffers 992 50)) -- "The introduction of suitable abstractions is our only mental aid to organize and master complexity." -- Edsger Wybe Dijkstra, 1930-2002 Rudolf Adamkovič <salutis <at> me.com> [he/him] Studenohorská 25 84103 Bratislava Slovakia
bug-gnu-emacs <at> gnu.org
:bug#54285
; Package emacs
.
(Mon, 07 Mar 2022 15:18:01 GMT) Full text and rfc822 format available.Message #8 received at 54285 <at> debbugs.gnu.org (full text, mbox):
From: Lars Ingebrigtsen <larsi <at> gnus.org> To: Rudolf Adamkovič <salutis <at> me.com> Cc: 54285 <at> debbugs.gnu.org Subject: Re: bug#54285: 29.0.50; Scrolling the calc help buffer Date: Mon, 07 Mar 2022 16:16:58 +0100
Rudolf Adamkovič <salutis <at> me.com> writes: > The user starts reading help and as they reach the end of the visible > part of the buffer, they scroll the window *with the scroll bar*. > > Expected: the window scrolls, the user continues reading > Actual: Emacs beeps, closes the window, and tells the user: > > "Wrong type argument: stringp, nil" calc-dispatch-help is basically just looping over `read-event' and responding only to the keyboard scroll keys. Perhaps a better way to implement this would be to use the normal help functions (which are less modal) so that these things work better? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no
bug-gnu-emacs <at> gnu.org
:bug#54285
; Package emacs
.
(Mon, 07 Mar 2022 22:38:02 GMT) Full text and rfc822 format available.Message #11 received at 54285 <at> debbugs.gnu.org (full text, mbox):
From: Michael Heerdegen <michael_heerdegen <at> web.de> To: Lars Ingebrigtsen <larsi <at> gnus.org> Cc: 54285 <at> debbugs.gnu.org, Rudolf Adamkovič <salutis <at> me.com> Subject: Re: bug#54285: 29.0.50; Scrolling the calc help buffer Date: Mon, 07 Mar 2022 23:37:31 +0100
Lars Ingebrigtsen <larsi <at> gnus.org> writes: > calc-dispatch-help is basically just looping over `read-event' and > responding only to the keyboard scroll keys. Perhaps a better way to > implement this would be to use the normal help functions (which are less > modal) so that these things work better? From what I know: This particular help command is intended to be used intermediately while reading a key binding: you are supposed to look up the next key and hit it directly, without interruption. It's using `read-event' on purpose. I also don't like that much, but there are other good help commands to use instead. I fear that if you try to change this it will make things worse or less consistent, the Calc help system is complex, and you might end up with a non-trivial redesign. Dunno if the result would be much of an improvement. Maybe it's not that bad, dunno, but please be careful. Michael.
bug-gnu-emacs <at> gnu.org
:bug#54285
; Package emacs
.
(Tue, 08 Mar 2022 01:18:01 GMT) Full text and rfc822 format available.Message #14 received at 54285 <at> debbugs.gnu.org (full text, mbox):
From: Michael Heerdegen <michael_heerdegen <at> web.de> To: Lars Ingebrigtsen <larsi <at> gnus.org> Cc: 54285 <at> debbugs.gnu.org, Rudolf Adamkovič <salutis <at> me.com> Subject: Re: bug#54285: 29.0.50; Scrolling the calc help buffer Date: Tue, 08 Mar 2022 02:17:40 +0100
Michael Heerdegen <michael_heerdegen <at> web.de> writes: > > calc-dispatch-help is basically just looping over `read-event' and > > responding only to the keyboard scroll keys. Perhaps a better way to > > implement this would be to use the normal help functions (which are less > > modal) so that these things work better? Or did you mean: like `help-for-help'? That's similar. Scrolling `help-for-help' with the mouse wheel loses the prompt for a key, btw, only scrolling with the scroll bar works as expected for me. Note that `help-for-help' is a front end for help commands, while `calc-dispatch-help' more or less only summarizes the commands reachable from the outside Calc C-x * prefix. The Calc help stuff doesn't even seem to be reachable from C-x *. BTW, there is a way to get that buffer directly and without a key prompt: C-h f calc-dispatch-help RET. Michael.
bug-gnu-emacs <at> gnu.org
:bug#54285
; Package emacs
.
(Tue, 08 Mar 2022 15:54:01 GMT) Full text and rfc822 format available.Message #17 received at 54285 <at> debbugs.gnu.org (full text, mbox):
From: Lars Ingebrigtsen <larsi <at> gnus.org> To: Michael Heerdegen <michael_heerdegen <at> web.de> Cc: 54285 <at> debbugs.gnu.org, Rudolf Adamkovič <salutis <at> me.com> Subject: Re: bug#54285: 29.0.50; Scrolling the calc help buffer Date: Tue, 08 Mar 2022 16:53:11 +0100
Michael Heerdegen <michael_heerdegen <at> web.de> writes: > Or did you mean: like `help-for-help'? That's similar. Scrolling > `help-for-help' with the mouse wheel loses the prompt for a key, btw, > only scrolling with the scroll bar works as expected for me. Yes, more like `help-for-help'. Or rather, I'd like to see a little library/function for these kinds of things, that allow the immediate response of a `read-event' loop, but which doesn't disable scrolling with the scroll bar and mouse wheel. And which has, as an option, the possibility of not exiting when entering a non-bound key. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.