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>

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#79022: closed (30.1.90; Shift-select-mode does not appear to
 work when scroll-lock-mode is enabled)
Date: Tue, 15 Jul 2025 13:25:07 +0000
[Message part 1 (text/plain, inline)]
Your message dated Tue, 15 Jul 2025 16:24:30 +0300
with message-id <86h5zdk2nl.fsf <at> gnu.org>
and subject line Re: bug#79022: 30.1.90; Shift-select-mode does not appear to work when scroll-lock-mode is enabled
has caused the debbugs.gnu.org bug report #79022,
regarding 30.1.90; Shift-select-mode does not appear to work when scroll-lock-mode is enabled
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
79022: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=79022
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
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))


[Message part 3 (message/rfc822, inline)]
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 5 days ago.

Previous Next


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