GNU bug report logs - #79022
30.1.90; Shift-select-mode does not appear to work when scroll-lock-mode is enabled

Previous Next

Package: emacs;

Reported by: "John Haman" <mail <at> johnhaman.org>

Date: Mon, 14 Jul 2025 20:56:01 UTC

Severity: normal

Found in version 30.1.90

Done: Eli Zaretskii <eliz <at> gnu.org>

To reply to this bug, email your comments to 79022 AT debbugs.gnu.org.
There is no need to reopen the bug first.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#79022; Package emacs. (Mon, 14 Jul 2025 20:56:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to "John Haman" <mail <at> johnhaman.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 14 Jul 2025 20:56:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: "John Haman" <mail <at> johnhaman.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.1.90;
 Shift-select-mode does not appear to work when scroll-lock-mode is
 enabled
Date: Mon, 14 Jul 2025 15:54:13 -0400
In short, I believe there is a bad interaction between scroll-lock-mode
and shift-select-mode that prevent shift-select mode from working as
intended when scroll-lock-mode is active.

1. Emacs -Q
2. Open a text file.
3. Enable scroll-lock-mode
4. Try to highlight some text using C-S-n or C-S-<down>. I expected it
to be selected, but it is not.


In GNU Emacs 30.1.90 (build 2, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.18.0, Xaw3d scroll bars) of 2025-06-13 built on JHAMAN2-LT
Repository revision: 18d590e45721e9787fa22381d4f22a0f0a79cdef
Repository branch: emacs-30
Windowing system distributor 'HC-Consult', version 11.0.210110000
System Description: Ubuntu 24.04.2 LTS

Configured using:
 'configure --with-x-toolkit=lucid 'CFLAGS=-O3 -fno-math-errno
 -funsafe-math-optimizations -fno-finite-math-only -fno-trapping-math
 -freciprocal-math -fno-rounding-math -fno-signaling-nans
 -fassociative-math -fno-signed-zeros -frename-registers -funroll-loops
 -mtune=native -march=native -fomit-frame-pointer''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP
NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XAW3D XDBE XIM XINPUT2 XPM
LUCID ZLIB

Important settings:
  value of $LANG: C.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Helpful

Minor modes in effect:
  git-identity-magit-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  electric-pair-mode: t
  olivetti-mode: t
  global-auto-revert-mode: t
  save-place-mode: t
  savehist-mode: t
  global-aggressive-indent-mode: t
  super-save-mode: t
  corfu-prescient-mode: t
  global-corfu-mode: t
  corfu-mode: t
  server-mode: t
  marginalia-mode: t
  vertico-multiform-mode: t
  vertico-mouse-mode: t
  vertico-prescient-mode: t
  prescient-persist-mode: t
  vertico-mode: t
  engine-mode: t
  recentf-mode: t
  global-hungry-delete-mode: t
  hungry-delete-mode: t
  minions-mode: t
  spacious-padding-mode: t
  activities-tabs-mode: t
  activities-mode: t
  popper-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  repeat-mode: t
  override-global-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tab-bar-history-mode: t
  tab-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  minibuffer-regexp-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  visual-line-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  abbrev-mode: t

Load-path shadows:
/home/john/.emacs.d/straight/build/transient/transient hides /usr/local/share/emacs/30.1.90/lisp/transient
/home/john/.emacs.d/straight/build/modus-themes/theme-loaddefs hides /usr/local/share/emacs/30.1.90/lisp/theme-loaddefs
/home/john/.emacs.d/straight/build/peg/peg hides /usr/local/share/emacs/30.1.90/lisp/progmodes/peg
/home/john/.emacs.d/straight/build/org/ox hides /usr/local/share/emacs/30.1.90/lisp/org/ox
/home/john/.emacs.d/straight/build/org/ox-texinfo hides /usr/local/share/emacs/30.1.90/lisp/org/ox-texinfo
/home/john/.emacs.d/straight/build/org/ox-publish hides /usr/local/share/emacs/30.1.90/lisp/org/ox-publish
/home/john/.emacs.d/straight/build/org/ox-org hides /usr/local/share/emacs/30.1.90/lisp/org/ox-org
/home/john/.emacs.d/straight/build/org/ox-odt hides /usr/local/share/emacs/30.1.90/lisp/org/ox-odt
/home/john/.emacs.d/straight/build/org/ox-md hides /usr/local/share/emacs/30.1.90/lisp/org/ox-md
/home/john/.emacs.d/straight/build/org/ox-man hides /usr/local/share/emacs/30.1.90/lisp/org/ox-man
/home/john/.emacs.d/straight/build/org/ox-latex hides /usr/local/share/emacs/30.1.90/lisp/org/ox-latex
/home/john/.emacs.d/straight/build/org/ox-koma-letter hides /usr/local/share/emacs/30.1.90/lisp/org/ox-koma-letter
/home/john/.emacs.d/straight/build/org/ox-icalendar hides /usr/local/share/emacs/30.1.90/lisp/org/ox-icalendar
/home/john/.emacs.d/straight/build/org/ox-html hides /usr/local/share/emacs/30.1.90/lisp/org/ox-html
/home/john/.emacs.d/straight/build/org/ox-beamer hides /usr/local/share/emacs/30.1.90/lisp/org/ox-beamer
/home/john/.emacs.d/straight/build/org/ox-ascii hides /usr/local/share/emacs/30.1.90/lisp/org/ox-ascii
/home/john/.emacs.d/straight/build/org/org hides /usr/local/share/emacs/30.1.90/lisp/org/org
/home/john/.emacs.d/straight/build/org/org-version hides /usr/local/share/emacs/30.1.90/lisp/org/org-version
/home/john/.emacs.d/straight/build/org/org-timer hides /usr/local/share/emacs/30.1.90/lisp/org/org-timer
/home/john/.emacs.d/straight/build/org/org-tempo hides /usr/local/share/emacs/30.1.90/lisp/org/org-tempo
/home/john/.emacs.d/straight/build/org/org-table hides /usr/local/share/emacs/30.1.90/lisp/org/org-table
/home/john/.emacs.d/straight/build/org/org-src hides /usr/local/share/emacs/30.1.90/lisp/org/org-src
/home/john/.emacs.d/straight/build/org/org-refile hides /usr/local/share/emacs/30.1.90/lisp/org/org-refile
/home/john/.emacs.d/straight/build/org/org-protocol hides /usr/local/share/emacs/30.1.90/lisp/org/org-protocol
/home/john/.emacs.d/straight/build/org/org-plot hides /usr/local/share/emacs/30.1.90/lisp/org/org-plot
/home/john/.emacs.d/straight/build/org/org-persist hides /usr/local/share/emacs/30.1.90/lisp/org/org-persist
/home/john/.emacs.d/straight/build/org/org-pcomplete hides /usr/local/share/emacs/30.1.90/lisp/org/org-pcomplete
/home/john/.emacs.d/straight/build/org/org-num hides /usr/local/share/emacs/30.1.90/lisp/org/org-num
/home/john/.emacs.d/straight/build/org/org-mouse hides /usr/local/share/emacs/30.1.90/lisp/org/org-mouse
/home/john/.emacs.d/straight/build/org/org-mobile hides /usr/local/share/emacs/30.1.90/lisp/org/org-mobile
/home/john/.emacs.d/straight/build/org/org-macs hides /usr/local/share/emacs/30.1.90/lisp/org/org-macs
/home/john/.emacs.d/straight/build/org/org-macro hides /usr/local/share/emacs/30.1.90/lisp/org/org-macro
/home/john/.emacs.d/straight/build/org/org-loaddefs hides /usr/local/share/emacs/30.1.90/lisp/org/org-loaddefs
/home/john/.emacs.d/straight/build/org/org-list hides /usr/local/share/emacs/30.1.90/lisp/org/org-list
/home/john/.emacs.d/straight/build/org/org-lint hides /usr/local/share/emacs/30.1.90/lisp/org/org-lint
/home/john/.emacs.d/straight/build/org/org-keys hides /usr/local/share/emacs/30.1.90/lisp/org/org-keys
/home/john/.emacs.d/straight/build/org/org-inlinetask hides /usr/local/share/emacs/30.1.90/lisp/org/org-inlinetask
/home/john/.emacs.d/straight/build/org/org-indent hides /usr/local/share/emacs/30.1.90/lisp/org/org-indent
/home/john/.emacs.d/straight/build/org/org-id hides /usr/local/share/emacs/30.1.90/lisp/org/org-id
/home/john/.emacs.d/straight/build/org/org-habit hides /usr/local/share/emacs/30.1.90/lisp/org/org-habit
/home/john/.emacs.d/straight/build/org/org-goto hides /usr/local/share/emacs/30.1.90/lisp/org/org-goto
/home/john/.emacs.d/straight/build/org/org-footnote hides /usr/local/share/emacs/30.1.90/lisp/org/org-footnote
/home/john/.emacs.d/straight/build/org/org-fold hides /usr/local/share/emacs/30.1.90/lisp/org/org-fold
/home/john/.emacs.d/straight/build/org/org-fold-core hides /usr/local/share/emacs/30.1.90/lisp/org/org-fold-core
/home/john/.emacs.d/straight/build/org/org-feed hides /usr/local/share/emacs/30.1.90/lisp/org/org-feed
/home/john/.emacs.d/straight/build/org/org-faces hides /usr/local/share/emacs/30.1.90/lisp/org/org-faces
/home/john/.emacs.d/straight/build/org/org-entities hides /usr/local/share/emacs/30.1.90/lisp/org/org-entities
/home/john/.emacs.d/straight/build/org/org-element hides /usr/local/share/emacs/30.1.90/lisp/org/org-element
/home/john/.emacs.d/straight/build/org/org-element-ast hides /usr/local/share/emacs/30.1.90/lisp/org/org-element-ast
/home/john/.emacs.d/straight/build/org/org-duration hides /usr/local/share/emacs/30.1.90/lisp/org/org-duration
/home/john/.emacs.d/straight/build/org/org-datetree hides /usr/local/share/emacs/30.1.90/lisp/org/org-datetree
/home/john/.emacs.d/straight/build/org/org-cycle hides /usr/local/share/emacs/30.1.90/lisp/org/org-cycle
/home/john/.emacs.d/straight/build/org/org-ctags hides /usr/local/share/emacs/30.1.90/lisp/org/org-ctags
/home/john/.emacs.d/straight/build/org/org-crypt hides /usr/local/share/emacs/30.1.90/lisp/org/org-crypt
/home/john/.emacs.d/straight/build/org/org-compat hides /usr/local/share/emacs/30.1.90/lisp/org/org-compat
/home/john/.emacs.d/straight/build/org/org-colview hides /usr/local/share/emacs/30.1.90/lisp/org/org-colview
/home/john/.emacs.d/straight/build/org/org-clock hides /usr/local/share/emacs/30.1.90/lisp/org/org-clock
/home/john/.emacs.d/straight/build/org/org-capture hides /usr/local/share/emacs/30.1.90/lisp/org/org-capture
/home/john/.emacs.d/straight/build/org/org-attach hides /usr/local/share/emacs/30.1.90/lisp/org/org-attach
/home/john/.emacs.d/straight/build/org/org-attach-git hides /usr/local/share/emacs/30.1.90/lisp/org/org-attach-git
/home/john/.emacs.d/straight/build/org/org-archive hides /usr/local/share/emacs/30.1.90/lisp/org/org-archive
/home/john/.emacs.d/straight/build/org/org-agenda hides /usr/local/share/emacs/30.1.90/lisp/org/org-agenda
/home/john/.emacs.d/straight/build/org/ol hides /usr/local/share/emacs/30.1.90/lisp/org/ol
/home/john/.emacs.d/straight/build/org/ol-w3m hides /usr/local/share/emacs/30.1.90/lisp/org/ol-w3m
/home/john/.emacs.d/straight/build/org/ol-rmail hides /usr/local/share/emacs/30.1.90/lisp/org/ol-rmail
/home/john/.emacs.d/straight/build/org/ol-mhe hides /usr/local/share/emacs/30.1.90/lisp/org/ol-mhe
/home/john/.emacs.d/straight/build/org/ol-man hides /usr/local/share/emacs/30.1.90/lisp/org/ol-man
/home/john/.emacs.d/straight/build/org/ol-irc hides /usr/local/share/emacs/30.1.90/lisp/org/ol-irc
/home/john/.emacs.d/straight/build/org/ol-info hides /usr/local/share/emacs/30.1.90/lisp/org/ol-info
/home/john/.emacs.d/straight/build/org/ol-gnus hides /usr/local/share/emacs/30.1.90/lisp/org/ol-gnus
/home/john/.emacs.d/straight/build/org/ol-eww hides /usr/local/share/emacs/30.1.90/lisp/org/ol-eww
/home/john/.emacs.d/straight/build/org/ol-eshell hides /usr/local/share/emacs/30.1.90/lisp/org/ol-eshell
/home/john/.emacs.d/straight/build/org/ol-doi hides /usr/local/share/emacs/30.1.90/lisp/org/ol-doi
/home/john/.emacs.d/straight/build/org/ol-docview hides /usr/local/share/emacs/30.1.90/lisp/org/ol-docview
/home/john/.emacs.d/straight/build/org/ol-bibtex hides /usr/local/share/emacs/30.1.90/lisp/org/ol-bibtex
/home/john/.emacs.d/straight/build/org/ol-bbdb hides /usr/local/share/emacs/30.1.90/lisp/org/ol-bbdb
/home/john/.emacs.d/straight/build/org/oc hides /usr/local/share/emacs/30.1.90/lisp/org/oc
/home/john/.emacs.d/straight/build/org/oc-natbib hides /usr/local/share/emacs/30.1.90/lisp/org/oc-natbib
/home/john/.emacs.d/straight/build/org/oc-csl hides /usr/local/share/emacs/30.1.90/lisp/org/oc-csl
/home/john/.emacs.d/straight/build/org/oc-bibtex hides /usr/local/share/emacs/30.1.90/lisp/org/oc-bibtex
/home/john/.emacs.d/straight/build/org/oc-biblatex hides /usr/local/share/emacs/30.1.90/lisp/org/oc-biblatex
/home/john/.emacs.d/straight/build/org/oc-basic hides /usr/local/share/emacs/30.1.90/lisp/org/oc-basic
/home/john/.emacs.d/straight/build/org/ob hides /usr/local/share/emacs/30.1.90/lisp/org/ob
/home/john/.emacs.d/straight/build/org/ob-tangle hides /usr/local/share/emacs/30.1.90/lisp/org/ob-tangle
/home/john/.emacs.d/straight/build/org/ob-table hides /usr/local/share/emacs/30.1.90/lisp/org/ob-table
/home/john/.emacs.d/straight/build/org/ob-sqlite hides /usr/local/share/emacs/30.1.90/lisp/org/ob-sqlite
/home/john/.emacs.d/straight/build/org/ob-sql hides /usr/local/share/emacs/30.1.90/lisp/org/ob-sql
/home/john/.emacs.d/straight/build/org/ob-shell hides /usr/local/share/emacs/30.1.90/lisp/org/ob-shell
/home/john/.emacs.d/straight/build/org/ob-sed hides /usr/local/share/emacs/30.1.90/lisp/org/ob-sed
/home/john/.emacs.d/straight/build/org/ob-screen hides /usr/local/share/emacs/30.1.90/lisp/org/ob-screen
/home/john/.emacs.d/straight/build/org/ob-scheme hides /usr/local/share/emacs/30.1.90/lisp/org/ob-scheme
/home/john/.emacs.d/straight/build/org/ob-sass hides /usr/local/share/emacs/30.1.90/lisp/org/ob-sass
/home/john/.emacs.d/straight/build/org/ob-ruby hides /usr/local/share/emacs/30.1.90/lisp/org/ob-ruby
/home/john/.emacs.d/straight/build/org/ob-ref hides /usr/local/share/emacs/30.1.90/lisp/org/ob-ref
/home/john/.emacs.d/straight/build/org/ob-R hides /usr/local/share/emacs/30.1.90/lisp/org/ob-R
/home/john/.emacs.d/straight/build/org/ob-python hides /usr/local/share/emacs/30.1.90/lisp/org/ob-python
/home/john/.emacs.d/straight/build/org/ob-processing hides /usr/local/share/emacs/30.1.90/lisp/org/ob-processing
/home/john/.emacs.d/straight/build/org/ob-plantuml hides /usr/local/share/emacs/30.1.90/lisp/org/ob-plantuml
/home/john/.emacs.d/straight/build/org/ob-perl hides /usr/local/share/emacs/30.1.90/lisp/org/ob-perl
/home/john/.emacs.d/straight/build/org/ob-org hides /usr/local/share/emacs/30.1.90/lisp/org/ob-org
/home/john/.emacs.d/straight/build/org/ob-octave hides /usr/local/share/emacs/30.1.90/lisp/org/ob-octave
/home/john/.emacs.d/straight/build/org/ob-ocaml hides /usr/local/share/emacs/30.1.90/lisp/org/ob-ocaml
/home/john/.emacs.d/straight/build/org/ob-maxima hides /usr/local/share/emacs/30.1.90/lisp/org/ob-maxima
/home/john/.emacs.d/straight/build/org/ob-matlab hides /usr/local/share/emacs/30.1.90/lisp/org/ob-matlab
/home/john/.emacs.d/straight/build/org/ob-makefile hides /usr/local/share/emacs/30.1.90/lisp/org/ob-makefile
/home/john/.emacs.d/straight/build/org/ob-lua hides /usr/local/share/emacs/30.1.90/lisp/org/ob-lua
/home/john/.emacs.d/straight/build/org/ob-lob hides /usr/local/share/emacs/30.1.90/lisp/org/ob-lob
/home/john/.emacs.d/straight/build/org/ob-lisp hides /usr/local/share/emacs/30.1.90/lisp/org/ob-lisp
/home/john/.emacs.d/straight/build/org/ob-lilypond hides /usr/local/share/emacs/30.1.90/lisp/org/ob-lilypond
/home/john/.emacs.d/straight/build/org/ob-latex hides /usr/local/share/emacs/30.1.90/lisp/org/ob-latex
/home/john/.emacs.d/straight/build/org/ob-julia hides /usr/local/share/emacs/30.1.90/lisp/org/ob-julia
/home/john/.emacs.d/straight/build/org/ob-js hides /usr/local/share/emacs/30.1.90/lisp/org/ob-js
/home/john/.emacs.d/straight/build/org/ob-java hides /usr/local/share/emacs/30.1.90/lisp/org/ob-java
/home/john/.emacs.d/straight/build/org/ob-haskell hides /usr/local/share/emacs/30.1.90/lisp/org/ob-haskell
/home/john/.emacs.d/straight/build/org/ob-groovy hides /usr/local/share/emacs/30.1.90/lisp/org/ob-groovy
/home/john/.emacs.d/straight/build/org/ob-gnuplot hides /usr/local/share/emacs/30.1.90/lisp/org/ob-gnuplot
/home/john/.emacs.d/straight/build/org/ob-fortran hides /usr/local/share/emacs/30.1.90/lisp/org/ob-fortran
/home/john/.emacs.d/straight/build/org/ob-forth hides /usr/local/share/emacs/30.1.90/lisp/org/ob-forth
/home/john/.emacs.d/straight/build/org/ob-exp hides /usr/local/share/emacs/30.1.90/lisp/org/ob-exp
/home/john/.emacs.d/straight/build/org/ob-eval hides /usr/local/share/emacs/30.1.90/lisp/org/ob-eval
/home/john/.emacs.d/straight/build/org/ob-eshell hides /usr/local/share/emacs/30.1.90/lisp/org/ob-eshell
/home/john/.emacs.d/straight/build/org/ob-emacs-lisp hides /usr/local/share/emacs/30.1.90/lisp/org/ob-emacs-lisp
/home/john/.emacs.d/straight/build/org/ob-dot hides /usr/local/share/emacs/30.1.90/lisp/org/ob-dot
/home/john/.emacs.d/straight/build/org/ob-ditaa hides /usr/local/share/emacs/30.1.90/lisp/org/ob-ditaa
/home/john/.emacs.d/straight/build/org/ob-css hides /usr/local/share/emacs/30.1.90/lisp/org/ob-css
/home/john/.emacs.d/straight/build/org/ob-core hides /usr/local/share/emacs/30.1.90/lisp/org/ob-core
/home/john/.emacs.d/straight/build/org/ob-comint hides /usr/local/share/emacs/30.1.90/lisp/org/ob-comint
/home/john/.emacs.d/straight/build/org/ob-clojure hides /usr/local/share/emacs/30.1.90/lisp/org/ob-clojure
/home/john/.emacs.d/straight/build/org/ob-calc hides /usr/local/share/emacs/30.1.90/lisp/org/ob-calc
/home/john/.emacs.d/straight/build/org/ob-C hides /usr/local/share/emacs/30.1.90/lisp/org/ob-C
/home/john/.emacs.d/straight/build/org/ob-awk hides /usr/local/share/emacs/30.1.90/lisp/org/ob-awk
/home/john/.emacs.d/straight/build/seq/seq hides /usr/local/share/emacs/30.1.90/lisp/emacs-lisp/seq
/home/john/.emacs.d/straight/build/map/map hides /usr/local/share/emacs/30.1.90/lisp/emacs-lisp/map
/home/john/.emacs.d/straight/build/let-alist/let-alist hides /usr/local/share/emacs/30.1.90/lisp/emacs-lisp/let-alist
/home/john/.emacs.d/straight/build/compat/compat hides /usr/local/share/emacs/30.1.90/lisp/emacs-lisp/compat

Features:
(shadow sort mail-extr emacsbug scroll-lock tramp-cmds move-text vc-hg
vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view vc bug-reference
jinx crux goto-chg info-variable-pitch jka-compr helpful cc-langs trace
info-look elisp-refs cl-print goto-addr git-identity f s magit-bookmark
magit-submodule 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
package url-handlers magit-repos magit-apply magit-wip magit-log
which-func magit-diff git-commit log-edit message sendmail yank-media
puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068
epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils
gmm-utils mailheader pcvs-util add-log magit-core magit-autorevert
magit-margin magit-transient magit-process with-editor magit-mode
transient benchmark magit-git magit-base magit-section crm llama
skeleton org-protocol org-capture org-agenda org-element org-persist
org-id avl-tree org-refile eat term/xterm xterm term disp-table ehelp
eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module
esh-module-loaddefs esh-util undo-tree queue whitespace elec-pair
electric-operator dash cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs imenu ess-r-mode
ess-r-flymake flymake ess-r-xref ess-trns ess-r-package ess-r-completion
ess-roxy ess-r-syntax ess-rd hideshow ess-s-lang ess-help ess-mode
ess-inf ess-tracebug comp comp-cstr comp-run comp-common tramp trampver
tramp-integration files-x tramp-message tramp-compat xdg shell
parse-time iso8601 tramp-loaddefs ess lisp-mnt ess-utils ess-custom
compile vertico-directory mule-util vertico-repeat cursor-sensor vc-git
vc-dispatcher consult lispy hydra lv delsel lispy-inline avy etags
fileloop generator xref project edebug debug backtrace help-fns
radix-tree lispy-tags mode-local zoutline org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-src sh-script smie treesit executable
ob-comint org-element-ast inline org-pcomplete pcomplete comint ansi-osc
ansi-color ring org-list org-footnote org-faces org-entities time-date
ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold
org-fold-core org-keys oc org-loaddefs thingatpt find-func org-version
org-compat org-macs paredit-everywhere paredit outli noutline outline
olivetti face-remap pcase cus-start autorevert filenotify saveplace
savehist aggressive-indent init super-save super-save-autoloads
goto-chg-autoloads rainbow-mode-autoloads pandoc-mode-autoloads
edit-indirect-autoloads gptel-autoloads unfill-autoloads
olivetti-autoloads multiple-cursors-autoloads wgrep-autoloads
sudo-edit-autoloads eat-autoloads info-variable-pitch-autoloads
aggressive-indent-autoloads ahk-mode-autoloads citar-autoloads
citeproc-autoloads string-inflection-autoloads parsebib-autoloads
pdf-tools-autoloads let-alist-autoloads tablist-autoloads
auctex-autoloads tex-site quarto-mode-autoloads request-autoloads
poly-markdown-autoloads polymode-autoloads markdown-mode-autoloads
smerge-mode diff-mode track-changes diff git-identity-autoloads
magit-autoloads with-editor-autoloads magit-section-autoloads
llama-autoloads undo-tree-autoloads cape cape-autoloads corfu-prescient
corfu-prescient-autoloads corfu corfu-autoloads org-download-autoloads
async-autoloads server org-sidebar-autoloads org-ql-autoloads
peg-autoloads ov-autoloads adaptive-wrap-autoloads
org-super-agenda-autoloads ts-autoloads ht-autoloads slime-autoloads
macrostep-autoloads cider-autoloads transient-autoloads sesman-autoloads
spinner-autoloads queue-autoloads parseedn-autoloads map-autoloads
parseclj-autoloads clojure-mode-autoloads racket-mode-autoloads
outli-autoloads morlock-autoloads helpful-autoloads elisp-refs-autoloads
f-autoloads s-autoloads stan-mode-autoloads electric-operator-autoloads
dash-autoloads ess-autoloads embark-consult-autoloads consult-autoloads
embark-autoloads marginalia marginalia-autoloads orderless
orderless-autoloads vertico-multiform vertico-suspend vertico-mouse
vertico-prescient vertico-prescient-autoloads prescient char-fold
prescient-autoloads vertico vertico-autoloads move-text-autoloads
crux-autoloads engine-mode format-spec engine-mode-autoloads
flyspell-correct-autoloads jinx-autoloads recentf tree-widget rx advice
hungry-delete hungry-delete-autoloads minions minions-autoloads
spacious-padding spacious-padding-autoloads modus-operandi-theme
modus-themes modus-themes-autoloads paredit-everywhere-autoloads
paredit-autoloads lispy-autoloads zoutline-autoloads hydra-autoloads
lv-autoloads swiper-autoloads ivy-autoloads iedit-autoloads
expreg-autoloads ultra-scroll-autoloads cal-menu calendar cal-loaddefs
activities-tabs activities color persist bookmark text-property-search
activities-autoloads persist-autoloads ace-window-autoloads
avy-autoloads finder-inf popper popper-autoloads no-littering compat
no-littering-autoloads compat-autoloads info seq-autoloads
straight-autoloads straight repeat edmacro kmacro use-package-bind-key
bind-key easy-mmode defuns browse-url url url-proxy url-privacy
url-expand url-methods url-history url-cookie generate-lisp-file
url-domsuf url-util url-parse auth-source eieio eieio-core
password-cache json subr-x map byte-opt url-vars mailcap warnings
cus-edit pp cus-load icons wid-edit use-package-ensure cl-extra
help-mode cl-seq use-package-core bytecomp byte-compile cl-macs gv
cl-loaddefs cl-lib early-init rmc iso-transl tooltip cconv eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd touch-screen 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 nadvice seq simple cl-generic
indonesian philippine 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 abbrev obarray oclosure cl-preloaded button loaddefs
theme-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 inotify lcms2
dynamic-setting system-font-setting font-render-setting cairo x-toolkit
xinput2 x multi-tty move-toolbar make-network-process native-compile
emacs)

Memory information:
((conses 16 897147 1073303) (symbols 48 82710 48) (strings 32 220777 31687)
 (string-bytes 1 7643162) (vectors 16 87334) (vector-slots 8 1828330 301788)
 (floats 8 1082 10419) (intervals 56 57294 11327) (buffers 992 36))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#79022; Package emacs. (Tue, 15 Jul 2025 11:47:02 GMT) Full text and rfc822 format available.

Message #8 received at 79022 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: "John Haman" <mail <at> johnhaman.org>
Cc: 79022 <at> debbugs.gnu.org
Subject: Re: bug#79022: 30.1.90;
 Shift-select-mode does not appear to work when scroll-lock-mode is
 enabled
Date: Tue, 15 Jul 2025 14:45:34 +0300
> Date: Mon, 14 Jul 2025 15:54:13 -0400
> From: "John Haman" <mail <at> johnhaman.org>
> 
> In short, I believe there is a bad interaction between scroll-lock-mode
> and shift-select-mode that prevent shift-select mode from working as
> intended when scroll-lock-mode is active.
> 
> 1. Emacs -Q
> 2. Open a text file.
> 3. Enable scroll-lock-mode
> 4. Try to highlight some text using C-S-n or C-S-<down>. I expected it
> to be selected, but it is not.

Thanks.  Does the patch below fix this problem without introducing new
problems?

diff --git a/lisp/scroll-lock.el b/lisp/scroll-lock.el
index 6b99e29..7689ca8 100644
--- a/lisp/scroll-lock.el
+++ b/lisp/scroll-lock.el
@@ -84,7 +84,7 @@ scroll-lock-move-to-column
 
 (defun scroll-lock-next-line-always-scroll (&optional arg)
   "Scroll up ARG lines keeping point fixed."
-  (interactive "p")
+  (interactive "^p")
   (or arg (setq arg 1))
   (scroll-lock-update-goal-column)
   (condition-case nil
@@ -94,7 +94,7 @@ scroll-lock-next-line-always-scroll
 
 (defun scroll-lock-next-line (&optional arg)
   "Scroll up ARG lines keeping point fixed."
-  (interactive "p")
+  (interactive "^p")
   (or arg (setq arg 1))
   (scroll-lock-update-goal-column)
   (if (pos-visible-in-window-p (point-max))
@@ -104,7 +104,7 @@ scroll-lock-next-line
 
 (defun scroll-lock-previous-line (&optional arg)
   "Scroll up ARG lines keeping point fixed."
-  (interactive "p")
+  (interactive "^p")
   (or arg (setq arg 1))
   (scroll-lock-update-goal-column)
   (condition-case nil
@@ -114,7 +114,7 @@ scroll-lock-previous-line
 
 (defun scroll-lock-forward-paragraph (&optional arg)
   "Scroll down ARG paragraphs keeping point fixed."
-  (interactive "p")
+  (interactive "^p")
   (or arg (setq arg 1))
   (scroll-lock-update-goal-column)
   (scroll-up (count-screen-lines (point) (save-excursion
@@ -124,7 +124,7 @@ scroll-lock-forward-paragraph
 
 (defun scroll-lock-backward-paragraph (&optional arg)
   "Scroll up ARG paragraphs keeping point fixed."
-  (interactive "p")
+  (interactive "^p")
   (or arg (setq arg 1))
   (scroll-lock-update-goal-column)
   (let ((goal (save-excursion (backward-paragraph arg) (point))))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#79022; Package emacs. (Tue, 15 Jul 2025 12:54:01 GMT) Full text and rfc822 format available.

Message #11 received at 79022 <at> debbugs.gnu.org (full text, mbox):

From: "John Haman" <mail <at> johnhaman.org>
To: "Eli Zaretskii" <eliz <at> gnu.org>
Cc: 79022 <at> debbugs.gnu.org
Subject: Re: bug#79022: 30.1.90; Shift-select-mode does not appear to work when
 scroll-lock-mode is enabled
Date: Tue, 15 Jul 2025 08:52:45 -0400
Yep, that patch resolves the bug completely!

--
John T. Haman
mail <at> johnhaman.org

On Tue, Jul 15, 2025, at 7:45 AM, Eli Zaretskii wrote:
>> Date: Mon, 14 Jul 2025 15:54:13 -0400
>> From: "John Haman" <mail <at> johnhaman.org>
>> 
>> In short, I believe there is a bad interaction between scroll-lock-mode
>> and shift-select-mode that prevent shift-select mode from working as
>> intended when scroll-lock-mode is active.
>> 
>> 1. Emacs -Q
>> 2. Open a text file.
>> 3. Enable scroll-lock-mode
>> 4. Try to highlight some text using C-S-n or C-S-<down>. I expected it
>> to be selected, but it is not.
>
> Thanks.  Does the patch below fix this problem without introducing new
> problems?
>
> diff --git a/lisp/scroll-lock.el b/lisp/scroll-lock.el
> index 6b99e29..7689ca8 100644
> --- a/lisp/scroll-lock.el
> +++ b/lisp/scroll-lock.el
> @@ -84,7 +84,7 @@ scroll-lock-move-to-column
> 
>  (defun scroll-lock-next-line-always-scroll (&optional arg)
>    "Scroll up ARG lines keeping point fixed."
> -  (interactive "p")
> +  (interactive "^p")
>    (or arg (setq arg 1))
>    (scroll-lock-update-goal-column)
>    (condition-case nil
> @@ -94,7 +94,7 @@ scroll-lock-next-line-always-scroll
> 
>  (defun scroll-lock-next-line (&optional arg)
>    "Scroll up ARG lines keeping point fixed."
> -  (interactive "p")
> +  (interactive "^p")
>    (or arg (setq arg 1))
>    (scroll-lock-update-goal-column)
>    (if (pos-visible-in-window-p (point-max))
> @@ -104,7 +104,7 @@ scroll-lock-next-line
> 
>  (defun scroll-lock-previous-line (&optional arg)
>    "Scroll up ARG lines keeping point fixed."
> -  (interactive "p")
> +  (interactive "^p")
>    (or arg (setq arg 1))
>    (scroll-lock-update-goal-column)
>    (condition-case nil
> @@ -114,7 +114,7 @@ scroll-lock-previous-line
> 
>  (defun scroll-lock-forward-paragraph (&optional arg)
>    "Scroll down ARG paragraphs keeping point fixed."
> -  (interactive "p")
> +  (interactive "^p")
>    (or arg (setq arg 1))
>    (scroll-lock-update-goal-column)
>    (scroll-up (count-screen-lines (point) (save-excursion
> @@ -124,7 +124,7 @@ scroll-lock-forward-paragraph
> 
>  (defun scroll-lock-backward-paragraph (&optional arg)
>    "Scroll up ARG paragraphs keeping point fixed."
> -  (interactive "p")
> +  (interactive "^p")
>    (or arg (setq arg 1))
>    (scroll-lock-update-goal-column)
>    (let ((goal (save-excursion (backward-paragraph arg) (point))))




Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Tue, 15 Jul 2025 13:25:06 GMT) Full text and rfc822 format available.

Notification sent to "John Haman" <mail <at> johnhaman.org>:
bug acknowledged by developer. (Tue, 15 Jul 2025 13:25:08 GMT) Full text and rfc822 format available.

Message #16 received at 79022-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: "John Haman" <mail <at> johnhaman.org>
Cc: 79022-done <at> debbugs.gnu.org
Subject: Re: bug#79022: 30.1.90; Shift-select-mode does not appear to work when
 scroll-lock-mode is enabled
Date: Tue, 15 Jul 2025 16:24:30 +0300
> Date: Tue, 15 Jul 2025 08:52:45 -0400
> From: "John Haman" <mail <at> johnhaman.org>
> Cc: 79022 <at> debbugs.gnu.org
> 
> Yep, that patch resolves the bug completely!

Thanks, now installed on the master branch, and closing the bug.

> --
> John T. Haman
> mail <at> johnhaman.org
> 
> On Tue, Jul 15, 2025, at 7:45 AM, Eli Zaretskii wrote:
> >> Date: Mon, 14 Jul 2025 15:54:13 -0400
> >> From: "John Haman" <mail <at> johnhaman.org>
> >> 
> >> In short, I believe there is a bad interaction between scroll-lock-mode
> >> and shift-select-mode that prevent shift-select mode from working as
> >> intended when scroll-lock-mode is active.
> >> 
> >> 1. Emacs -Q
> >> 2. Open a text file.
> >> 3. Enable scroll-lock-mode
> >> 4. Try to highlight some text using C-S-n or C-S-<down>. I expected it
> >> to be selected, but it is not.
> >
> > Thanks.  Does the patch below fix this problem without introducing new
> > problems?
> >
> > diff --git a/lisp/scroll-lock.el b/lisp/scroll-lock.el
> > index 6b99e29..7689ca8 100644
> > --- a/lisp/scroll-lock.el
> > +++ b/lisp/scroll-lock.el
> > @@ -84,7 +84,7 @@ scroll-lock-move-to-column
> > 
> >  (defun scroll-lock-next-line-always-scroll (&optional arg)
> >    "Scroll up ARG lines keeping point fixed."
> > -  (interactive "p")
> > +  (interactive "^p")
> >    (or arg (setq arg 1))
> >    (scroll-lock-update-goal-column)
> >    (condition-case nil
> > @@ -94,7 +94,7 @@ scroll-lock-next-line-always-scroll
> > 
> >  (defun scroll-lock-next-line (&optional arg)
> >    "Scroll up ARG lines keeping point fixed."
> > -  (interactive "p")
> > +  (interactive "^p")
> >    (or arg (setq arg 1))
> >    (scroll-lock-update-goal-column)
> >    (if (pos-visible-in-window-p (point-max))
> > @@ -104,7 +104,7 @@ scroll-lock-next-line
> > 
> >  (defun scroll-lock-previous-line (&optional arg)
> >    "Scroll up ARG lines keeping point fixed."
> > -  (interactive "p")
> > +  (interactive "^p")
> >    (or arg (setq arg 1))
> >    (scroll-lock-update-goal-column)
> >    (condition-case nil
> > @@ -114,7 +114,7 @@ scroll-lock-previous-line
> > 
> >  (defun scroll-lock-forward-paragraph (&optional arg)
> >    "Scroll down ARG paragraphs keeping point fixed."
> > -  (interactive "p")
> > +  (interactive "^p")
> >    (or arg (setq arg 1))
> >    (scroll-lock-update-goal-column)
> >    (scroll-up (count-screen-lines (point) (save-excursion
> > @@ -124,7 +124,7 @@ scroll-lock-forward-paragraph
> > 
> >  (defun scroll-lock-backward-paragraph (&optional arg)
> >    "Scroll up ARG paragraphs keeping point fixed."
> > -  (interactive "p")
> > +  (interactive "^p")
> >    (or arg (setq arg 1))
> >    (scroll-lock-update-goal-column)
> >    (let ((goal (save-excursion (backward-paragraph arg) (point))))
> 




This bug report was last modified 1 day ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.