From 6b8957852476e4ba31873424aa8f81d9e55bc34c Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 9 Dec 2021 17:01:57 +0200 Subject: [PATCH 01/13] ; * lisp/progmodes/flymake.el: Update the minimum Emacs version. --- lisp/progmodes/flymake.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 4f9506c98b9..72199b33a43 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el @@ -6,7 +6,7 @@ ;; Maintainer: João Távora ;; Version: 1.2.1 ;; Keywords: c languages tools -;; Package-Requires: ((emacs "26.1") (eldoc "1.1.0") (project "0.7.1")) +;; Package-Requires: ((emacs "28.1") (eldoc "1.1.0") (project "0.7.1")) ;; This is a GNU ELPA :core package. Avoid functionality that is not ;; compatible with the version of Emacs recorded above. From 26fb4168b884eeb910580c42e87efb73399019c9 Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Thu, 9 Dec 2021 16:22:17 +0100 Subject: [PATCH 02/13] ; Prefer HTTPS in more URLs --- ChangeLog.1 | 2 +- doc/misc/rcirc.texi | 2 +- doc/misc/tramp.texi | 2 +- doc/misc/url.texi | 6 +++--- leim/MISC-DIC/README | 2 +- leim/MISC-DIC/pinyin.map | 2 +- leim/MISC-DIC/ziranma.cin | 2 +- lisp/ChangeLog.17 | 4 ++-- lisp/gnus/ChangeLog.2 | 2 +- lisp/gnus/ChangeLog.3 | 2 +- lisp/mh-e/ChangeLog.1 | 2 +- lisp/net/newst-backend.el | 2 +- lisp/net/newst-reader.el | 2 +- lisp/net/newst-ticker.el | 2 +- lisp/net/newsticker.el | 2 +- lisp/net/quickurl.el | 2 +- lisp/net/tramp-archive.el | 2 +- lisp/org/org.el | 4 ++-- 18 files changed, 22 insertions(+), 22 deletions(-) diff --git a/ChangeLog.1 b/ChangeLog.1 index 82e0ad5c2b8..756dce3e479 100644 --- a/ChangeLog.1 +++ b/ChangeLog.1 @@ -2326,7 +2326,7 @@ 2013-07-03 Christoph Egger (tiny change) * configure.ac (emacs_broken_SIGIO): Set on gnu-kfreebsd to avoid hang. - http://bugs.debian.org/712974 + https://bugs.debian.org/712974 2013-07-02 Paul Eggert diff --git a/doc/misc/rcirc.texi b/doc/misc/rcirc.texi index a4ca54a8b01..603bf42e0cc 100644 --- a/doc/misc/rcirc.texi +++ b/doc/misc/rcirc.texi @@ -464,7 +464,7 @@ your status as ``being back'' if you do not. People can use the @cindex help about irc Typical IRC servers implement many more commands. You can read more about the fantastic world of IRC online at -@uref{http://www.irchelp.org/, the Internet Relay Chat (IRC) help +@uref{https://www.irchelp.org/, the Internet Relay Chat (IRC) help archive}. @node Configuration diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index a17a8d67e5b..27ad912523b 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi @@ -4228,7 +4228,7 @@ It is even possible to access file archives in file archives, as (progn (url-handler-mode 1) (find-file - "http://ftp.debian.org/debian/pool/main/c/coreutils/coreutils_8.28-1_amd64.deb/control.tar.gz/control")) + "https://ftp.debian.org/debian/pool/main/c/coreutils/coreutils_8.28-1_amd64.deb/control.tar.gz/control")) @end group @end lisp diff --git a/doc/misc/url.texi b/doc/misc/url.texi index 8f15e11007e..90e38e5d30e 100644 --- a/doc/misc/url.texi +++ b/doc/misc/url.texi @@ -90,7 +90,7 @@ can be accessed (usually over a network) in a specific way. @example ftp://ftp.is.co.za/rfc/rfc1808.txt -http://www.ietf.org/rfc/rfc2396.txt +https://www.ietf.org/rfc/rfc2396.txt ldap://[2001:db8::7]/c=GB?objectClass?one mailto:John.Doe@@example.com news:comp.infosystems.www.servers.unix @@ -708,7 +708,7 @@ Well-known ports are used if the URL does not specify a port. @cindex rcirc The @code{irc} scheme is defined in the Internet Draft at -@url{http://www.w3.org/Addressing/draft-mirashi-url-irc-01.txt} (which +@url{https://www.w3.org/Addressing/draft-mirashi-url-irc-01.txt} (which was never approved as an RFC). Such URLs have the form @example @@ -1181,7 +1181,7 @@ opened by the URL library. @c machines off the local network. This is characterized by being able @c to reach someplace with a raw ip number, but not its hostname @c (@url{http://129.79.254.191/} works, but -@c @url{http://www.cs.indiana.edu/} doesn't). This used to happen on +@c @url{https://www.cs.indiana.edu/} doesn't). This used to happen on @c SunOS4 and Ultrix, but is now probably now rare. If Emacs can't be @c rebuilt linked against the resolver library, it can use the external @c @command{nslookup} program instead. diff --git a/leim/MISC-DIC/README b/leim/MISC-DIC/README index 74ae75289b2..f205ecd7259 100644 --- a/leim/MISC-DIC/README +++ b/leim/MISC-DIC/README @@ -20,7 +20,7 @@ license notice. They are copies of those distributed with a free package called CCE at: - http://archive.debian.org/debian/pool/main/c/cce/cce_0.36.orig.tar.gz + https://archive.debian.org/debian/pool/main/c/cce/cce_0.36.orig.tar.gz As the original files don't contain copyright and license notices, a proper notice is extracted from the file Copyright and added at the diff --git a/leim/MISC-DIC/pinyin.map b/leim/MISC-DIC/pinyin.map index 4809769d1ad..e206564bcd7 100644 --- a/leim/MISC-DIC/pinyin.map +++ b/leim/MISC-DIC/pinyin.map @@ -3,7 +3,7 @@ % This file is included in the free package called CCE. It is % available in: % -% http://archive.debian.org/debian/pool/main/c/cce/cce_0.36.orig.tar.gz +% https://archive.debian.org/debian/pool/main/c/cce/cce_0.36.orig.tar.gz % % As the file itself doesn't contain copyright and license notices, % the following statements of the file cce/Copyright covers it. diff --git a/leim/MISC-DIC/ziranma.cin b/leim/MISC-DIC/ziranma.cin index b61aea2b6f4..b276e888a0c 100644 --- a/leim/MISC-DIC/ziranma.cin +++ b/leim/MISC-DIC/ziranma.cin @@ -3,7 +3,7 @@ % This file is included in the free package called CCE. It is % available in: % -% http://archive.debian.org/debian/pool/main/c/cce/cce_0.36.orig.tar.gz +% https://archive.debian.org/debian/pool/main/c/cce/cce_0.36.orig.tar.gz % % As the file itself doesn't contain copyright and license notices, % the following statements of the file cce/Copyright covers it. diff --git a/lisp/ChangeLog.17 b/lisp/ChangeLog.17 index 14a6c5d06e4..4dd3df5953b 100644 --- a/lisp/ChangeLog.17 +++ b/lisp/ChangeLog.17 @@ -10766,7 +10766,7 @@ * emacs-lisp/find-gc.el (find-gc-source-directory): Give it a value. (find-gc-source-files): Update some names. (trace-call-tree): Simplify and update. - Avoid predictable temp-file names. (http://bugs.debian.org/747100) + Avoid predictable temp-file names. (https://bugs.debian.org/747100) This is CVE-2014-3422. 2014-05-08 Stefan Monnier @@ -17742,7 +17742,7 @@ 2013-10-13 Glenn Morris * progmodes/sh-script.el (sh-mark-line, sh-learn-buffer-indent): - Occur buffers are read-only. http://bugs.debian.org/720775 + Occur buffers are read-only. https://bugs.debian.org/720775 * emacs-lisp/authors.el (authors-fixed-entries): Comment out old alpha stuff. diff --git a/lisp/gnus/ChangeLog.2 b/lisp/gnus/ChangeLog.2 index 35402dffd07..26ecaada5e5 100644 --- a/lisp/gnus/ChangeLog.2 +++ b/lisp/gnus/ChangeLog.2 @@ -1759,7 +1759,7 @@ * pgg-gpg.el, pgg-pgp.el, pgg-pgp5.el, pgg.el: Reapply changes from 2003-04-03 to fix security problem. - See http://www.debian.org/security/2003/dsa-339. + See https://www.debian.org/security/2003/dsa-339. 2003-07-23 Teodor Zlatanov diff --git a/lisp/gnus/ChangeLog.3 b/lisp/gnus/ChangeLog.3 index 2aba3a5706f..836cca87ffb 100644 --- a/lisp/gnus/ChangeLog.3 +++ b/lisp/gnus/ChangeLog.3 @@ -655,7 +655,7 @@ 2014-05-08 Glenn Morris * gnus-fun.el (gnus-grab-cam-face): - Do not use predictable temp-file name. (http://bugs.debian.org/747100) + Do not use predictable temp-file name. (https://bugs.debian.org/747100) This is CVE-2014-3421. 2014-05-04 Glenn Morris diff --git a/lisp/mh-e/ChangeLog.1 b/lisp/mh-e/ChangeLog.1 index e87bb343cf1..2201ce22a26 100644 --- a/lisp/mh-e/ChangeLog.1 +++ b/lisp/mh-e/ChangeLog.1 @@ -10218,7 +10218,7 @@ it can fail if the user's MH environment is not setup correctly). I now set the value of mh-folder-unseen-seq-name at runtime when I first need it. This should fix Debian bugs - http://bugs.debian.org/140232 and http://bugs.debian.org/140817 + https://bugs.debian.org/140232 and https://bugs.debian.org/140817 2002-03-25 Peter S Galbraith diff --git a/lisp/net/newst-backend.el b/lisp/net/newst-backend.el index c7a87a6cc18..03a297ca41f 100644 --- a/lisp/net/newst-backend.el +++ b/lisp/net/newst-backend.el @@ -4,7 +4,7 @@ ;; Author: Ulf Jasper ;; Filename: newst-backend.el -;; URL: http://www.nongnu.org/newsticker +;; URL: https://www.nongnu.org/newsticker ;; Keywords: News, RSS, Atom ;; Package: newsticker diff --git a/lisp/net/newst-reader.el b/lisp/net/newst-reader.el index 40e304402ad..b228ea9a60f 100644 --- a/lisp/net/newst-reader.el +++ b/lisp/net/newst-reader.el @@ -4,7 +4,7 @@ ;; Author: Ulf Jasper ;; Filename: newst-reader.el -;; URL: http://www.nongnu.org/newsticker +;; URL: https://www.nongnu.org/newsticker ;; Package: newsticker ;; ====================================================================== diff --git a/lisp/net/newst-ticker.el b/lisp/net/newst-ticker.el index 8cfafb5bfe4..068b862b694 100644 --- a/lisp/net/newst-ticker.el +++ b/lisp/net/newst-ticker.el @@ -4,7 +4,7 @@ ;; Author: Ulf Jasper ;; Filename: newst-ticker.el -;; URL: http://www.nongnu.org/newsticker +;; URL: https://www.nongnu.org/newsticker ;; Keywords: News, RSS, Atom ;; Package: newsticker diff --git a/lisp/net/newsticker.el b/lisp/net/newsticker.el index c1714218be9..52576c936a3 100644 --- a/lisp/net/newsticker.el +++ b/lisp/net/newsticker.el @@ -4,7 +4,7 @@ ;; Author: Ulf Jasper ;; Filename: newsticker.el -;; URL: http://www.nongnu.org/newsticker +;; URL: https://www.nongnu.org/newsticker ;; Created: 17. June 2003 ;; Keywords: News, RSS, Atom diff --git a/lisp/net/quickurl.el b/lisp/net/quickurl.el index 7f147fa0ded..ed7d7e53a96 100644 --- a/lisp/net/quickurl.el +++ b/lisp/net/quickurl.el @@ -55,7 +55,7 @@ ;; ;; (("GNU" . "https://www.gnu.org/") ;; ("FSF" "https://www.fsf.org/" "The Free Software Foundation") -;; ("emacs" . "http://www.emacs.org/") +;; ("emacs" . "https://www.emacs.org/") ;; ("davep" "http://www.davep.org/" "Dave's homepage")) ;; ;; In case you're wondering about the mixture of cons cells and lists, diff --git a/lisp/net/tramp-archive.el b/lisp/net/tramp-archive.el index 8bf25151dfb..bd0f82cbad6 100644 --- a/lisp/net/tramp-archive.el +++ b/lisp/net/tramp-archive.el @@ -103,7 +103,7 @@ ;; It is even possible to access file archives in file archives, as ;; (find-file -;; "http://ftp.debian.org/debian/pool/main/c/coreutils/coreutils_8.28-1_amd64.deb/control.tar.gz/control") +;; "https://ftp.debian.org/debian/pool/main/c/coreutils/coreutils_8.28-1_amd64.deb/control.tar.gz/control") ;;; Code: diff --git a/lisp/org/org.el b/lisp/org/org.el index 1a137546192..df79d57f2c6 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el @@ -693,7 +693,7 @@ defined in org-duration.el.") If a description starts with , the file is not part of Emacs and Org mode, so loading it will require that you have properly installed org-contrib package from NonGNU Emacs Lisp Package Archive -http://elpa.nongnu.org/nongnu/org-contrib.html +https://elpa.nongnu.org/nongnu/org-contrib.html You can also use this system to load external packages (i.e. neither Org core modules, nor org-contrib modules). Just add symbols @@ -773,7 +773,7 @@ For export specific modules, see also `org-export-backends'." If a description starts with , the file is not part of Emacs and Org mode, so loading it will require that you have properly installed org-contrib package from NonGNU Emacs Lisp Package Archive -http://elpa.nongnu.org/nongnu/org-contrib.html +https://elpa.nongnu.org/nongnu/org-contrib.html Unlike to `org-modules', libraries in this list will not be loaded along with Org, but only once the export framework is From dda63370669dba6dfda53dec62de8b1c1c275b2d Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 9 Dec 2021 09:03:10 -0800 Subject: [PATCH 03/13] emacsclient takes more care about XDG_RUNTIME_DIR * lib-src/emacsclient.c (set_local_socket): Revert to the Emacs 27 behavior of not trying TMPDIR if XDG_RUNTIME_DIR is set. This is one of the suggestions made by Jim Porter and independently by Ulrich Mueller in Bug#51327. --- lib-src/emacsclient.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index cff3cec2a79..d11fd88c45e 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -1456,7 +1456,6 @@ set_local_socket (char const *server_name) else { /* socket_name is a file name component. */ - sock_status = ENOENT; char const *xdg_runtime_dir = egetenv ("XDG_RUNTIME_DIR"); if (xdg_runtime_dir) { @@ -1466,7 +1465,7 @@ set_local_socket (char const *server_name) ? connect_socket (AT_FDCWD, sockname, s, 0) : ENAMETOOLONG); } - if (sock_status == ENOENT) + else { char const *tmpdir = egetenv ("TMPDIR"); if (tmpdir) From 7a25ba0fdebf5e94fa5a3a3d992424f86b1547cc Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Fri, 10 Dec 2021 02:33:48 +0100 Subject: [PATCH 04/13] ; * lisp/image-dired.el: Fix typo. --- lisp/image-dired.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/image-dired.el b/lisp/image-dired.el index 329085c823c..3ac44dac9fb 100644 --- a/lisp/image-dired.el +++ b/lisp/image-dired.el @@ -41,7 +41,7 @@ ;; ;; I briefly tried out thumbs.el, and although it seemed more ;; powerful than this package, it did not work the way I wanted to. It -;; was too slow to created thumbnails of all files in a directory (I +;; was too slow to create thumbnails of all files in a directory (I ;; currently keep all my 2000+ images in the same directory) and ;; browsing the thumbnail buffer was slow too. image-dired.el will not ;; create thumbnails until they are needed and the browsing is done From 57923818fccb687af78a9d966eb56a606ede5a8c Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Fri, 10 Dec 2021 02:56:08 +0100 Subject: [PATCH 05/13] ; * lisp/htmlfontify.el: Remove some commented out code. --- lisp/htmlfontify.el | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el index 9fe6e825f78..8dc4cce3239 100644 --- a/lisp/htmlfontify.el +++ b/lisp/htmlfontify.el @@ -77,6 +77,7 @@ ;; Changes: moved to changelog (CHANGES) file. ;;; Code: + (eval-when-compile (require 'cl-lib)) (require 'cus-edit) @@ -2307,10 +2308,6 @@ See also `hfy-load-tags-cache'." (interactive "D source directory: ") (hfy-load-tags-cache (directory-file-name srcdir))) -;;(defun hfy-test-read-args (foo bar) -;; (interactive "D source directory: \nD target directory: ") -;; (message "foo: %S\nbar: %S" foo bar)) - (defun hfy-save-kill-buffers (buffer-list &optional dstdir) (dolist (B buffer-list) (set-buffer B) From 8c2c8996e76381eecfd4ab5cf07561abc0b87a1d Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Fri, 10 Dec 2021 03:03:06 +0100 Subject: [PATCH 06/13] ; * lisp/Makefile.in: Fix typo. --- lisp/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/Makefile.in b/lisp/Makefile.in index 353c9e652c6..df9e5c36ee1 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in @@ -60,7 +60,7 @@ BYTE_COMPILE_EXTRA_FLAGS = # The example above is just for developers, it should not be used by default. # Those automatically generated autoload files that need special rules -# to build; ie not including things created via generated-autoload-file +# to build; i.e. not including things created via generated-autoload-file # (eg calc/calc-loaddefs.el). LOADDEFS = $(lisp)/calendar/cal-loaddefs.el \ $(lisp)/calendar/diary-loaddefs.el \ From e796161b6e640b00b8ab584f843f70e59a34c078 Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Fri, 10 Dec 2021 03:11:49 +0100 Subject: [PATCH 07/13] * lisp/time.el (world-clock-mode-map): Convert to defvar-keymap. --- lisp/time.el | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lisp/time.el b/lisp/time.el index 4f302caa674..fcea064b4cf 100644 --- a/lisp/time.el +++ b/lisp/time.el @@ -526,11 +526,9 @@ If the value is t instead of an alist, use the value of '((t :inherit font-lock-variable-name-face)) "Face for time zone label in `world-clock' buffer.") -(defvar world-clock-mode-map - (let ((map (make-sparse-keymap))) - (define-key map "n" #'next-line) - (define-key map "p" #'previous-line) - map)) +(defvar-keymap world-clock-mode-map + "n" #'next-line + "p" #'previous-line) (define-derived-mode world-clock-mode special-mode "World clock" "Major mode for buffer that displays times in various time zones. From b867eb2216827fa90a8d3c647f80f77dc4ca3bf8 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Fri, 10 Dec 2021 10:33:00 +0800 Subject: [PATCH 08/13] Fix precision scrolling for stretch glyphs * lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down-page): Simplify logic. (pixel-scroll-precision-interpolate): Block throw-on-input when actually scrolling. --- lisp/pixel-scroll.el | 68 +++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 38 deletions(-) diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el index ead841c9823..d7ce0bcdd9f 100644 --- a/lisp/pixel-scroll.el +++ b/lisp/pixel-scroll.el @@ -438,10 +438,12 @@ the height of the current window." (window-header-line-height)))) (object (posn-object desired-pos)) (desired-start (posn-point desired-pos)) - (scroll-area-total-height (cdr (window-text-pixel-size nil - (window-start) - (1- desired-start)))) - (desired-vscroll (- delta scroll-area-total-height)) + (current-vs (window-vscroll nil t)) + (start-posn (unless (eq desired-start (window-start)) + (posn-at-point desired-start))) + (desired-vscroll (if start-posn + (- delta (cdr (posn-x-y start-posn))) + (+ current-vs delta))) (edges (window-edges nil t)) (usable-height (- (nth 3 edges) (nth 1 edges))) @@ -453,33 +455,22 @@ the height of the current window." (end-pos (posn-at-x-y 0 (+ usable-height (window-tab-line-height) (window-header-line-height))))) - (if (or (overlayp object) - (stringp object) - (and (consp object) - (stringp (car object))) - (and (consp (posn-object end-pos)) - (> (cdr (posn-object-x-y end-pos)) 0))) - ;; We are either on an overlay or a string, so set vscroll - ;; directly. - (set-window-vscroll nil (+ (window-vscroll nil t) - delta) - t) - (when (and (or (< (point) next-pos)) - (let ((pos-visibility (pos-visible-in-window-p next-pos nil t))) - (and pos-visibility - (or (eq (length pos-visibility) 2) - (when-let* ((posn (posn-at-point next-pos))) - (> (cdr (posn-object-width-height posn)) - usable-height)))))) - (goto-char next-pos)) - (set-window-start nil (if (zerop (window-hscroll)) - desired-start - (save-excursion - (goto-char desired-start) - (beginning-of-visual-line) - (point))) - t) - (set-window-vscroll nil desired-vscroll t)))) + (when (and (or (< (point) next-pos)) + (let ((pos-visibility (pos-visible-in-window-p next-pos nil t))) + (and pos-visibility + (or (eq (length pos-visibility) 2) + (when-let* ((posn (posn-at-point next-pos))) + (> (cdr (posn-object-width-height posn)) + usable-height)))))) + (goto-char next-pos)) + (set-window-start nil (if (zerop (window-hscroll)) + desired-start + (save-excursion + (goto-char desired-start) + (beginning-of-visual-line) + (point))) + t) + (set-window-vscroll nil desired-vscroll t))) (defun pixel-scroll-precision-scroll-down (delta) "Scroll the current window down by DELTA pixels." @@ -558,13 +549,14 @@ animation." (setq time-elapsed (+ time-elapsed (- (float-time) last-time)) percentage (/ time-elapsed total-time)) - (if (< delta 0) - (pixel-scroll-precision-scroll-down - (ceiling (abs (* (* delta factor) - (/ between-scroll total-time))))) - (pixel-scroll-precision-scroll-up - (ceiling (* (* delta factor) - (/ between-scroll total-time))))) + (let ((throw-on-input nil)) + (if (< delta 0) + (pixel-scroll-precision-scroll-down + (ceiling (abs (* (* delta factor) + (/ between-scroll total-time))))) + (pixel-scroll-precision-scroll-up + (ceiling (* (* delta factor) + (/ between-scroll total-time)))))) (setq last-time (float-time))) (if (< percentage 1) (progn From e8d90a3fd402c0c67bf4b4b29ac26108ead8845d Mon Sep 17 00:00:00 2001 From: Po Lu Date: Fri, 10 Dec 2021 10:38:24 +0800 Subject: [PATCH 09/13] Remove unused let-bindings from pixel-scroll.el * lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down-page): Remove unused bindings. --- lisp/pixel-scroll.el | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el index d7ce0bcdd9f..813fbb0711b 100644 --- a/lisp/pixel-scroll.el +++ b/lisp/pixel-scroll.el @@ -436,7 +436,6 @@ the height of the current window." (let* ((desired-pos (posn-at-x-y 0 (+ delta (window-tab-line-height) (window-header-line-height)))) - (object (posn-object desired-pos)) (desired-start (posn-point desired-pos)) (current-vs (window-vscroll nil t)) (start-posn (unless (eq desired-start (window-start)) @@ -451,10 +450,7 @@ the height of the current window." (goto-char desired-start) (when (zerop (vertical-motion (1+ scroll-margin))) (signal 'end-of-buffer nil)) - (point))) - (end-pos (posn-at-x-y 0 (+ usable-height - (window-tab-line-height) - (window-header-line-height))))) + (point)))) (when (and (or (< (point) next-pos)) (let ((pos-visibility (pos-visible-in-window-p next-pos nil t))) (and pos-visibility From 2e4740f04239ee441685b2f43d156efcf6359383 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Fri, 10 Dec 2021 11:25:10 +0800 Subject: [PATCH 10/13] Fix pixel scrolling upwards in Info buffers * lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line): Don't blindly trust window start to be the beginning of a visual line. --- lisp/pixel-scroll.el | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el index 813fbb0711b..432a5dc52cf 100644 --- a/lisp/pixel-scroll.el +++ b/lisp/pixel-scroll.el @@ -397,7 +397,10 @@ returns nil." The returned value is a cons of the position of the first character on the unseen line just above the scope of current window, and the pixel height of that line." - (let* ((pos0 (window-start)) + (let* ((pos0 (save-excursion + (goto-char (window-start)) + (beginning-of-visual-line) + (point))) (vscroll0 (window-vscroll nil t)) (line-height nil) (pos @@ -407,8 +410,7 @@ window, and the pixel height of that line." (point-min) (vertical-motion -1) (setq line-height - (cdr (window-text-pixel-size nil (point) - pos0))) + (cdr (window-text-pixel-size nil (point) pos0))) (point))))) ;; restore initial position (set-window-start nil pos0 t) From 59db96d83ae837b3a3d82a979cd97a271bcd86bf Mon Sep 17 00:00:00 2001 From: Po Lu Date: Fri, 10 Dec 2021 11:30:07 +0800 Subject: [PATCH 11/13] Fix bob detection when pixel scrolling upwards * lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line): Don't go to the beginning-of-visual-line if bobp. --- lisp/pixel-scroll.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el index 432a5dc52cf..29d8e7e0255 100644 --- a/lisp/pixel-scroll.el +++ b/lisp/pixel-scroll.el @@ -399,7 +399,8 @@ character on the unseen line just above the scope of current window, and the pixel height of that line." (let* ((pos0 (save-excursion (goto-char (window-start)) - (beginning-of-visual-line) + (unless (bobp) + (beginning-of-visual-line)) (point))) (vscroll0 (window-vscroll nil t)) (line-height nil) From 636704fab96bf32809adf392df84d9a80e40de21 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Fri, 10 Dec 2021 06:01:44 +0000 Subject: [PATCH 12/13] Stop setting `make-cursor-line-fully-visible' in precision scrolling * lisp/pixel-scroll.el (pixel-scroll-precision-mode): Stop setting `make-cursor-line-fully-visible'. --- lisp/pixel-scroll.el | 2 -- 1 file changed, 2 deletions(-) diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el index 29d8e7e0255..5425462caf5 100644 --- a/lisp/pixel-scroll.el +++ b/lisp/pixel-scroll.el @@ -714,8 +714,6 @@ precisely, according to the turning of the mouse wheel." :group 'mouse :keymap pixel-scroll-precision-mode-map (setq mwheel-coalesce-scroll-events - (not pixel-scroll-precision-mode) - make-cursor-line-fully-visible (not pixel-scroll-precision-mode))) (provide 'pixel-scroll) From 6e865a7171d80cd91b54c6d71b88d960b920abe3 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Fri, 10 Dec 2021 14:20:32 +0800 Subject: [PATCH 13/13] Further reduce image-related stutter during precision scrolling * lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down-page): Disable `scroll-preserve-screen-position' and `auto-window-vscroll' while scrolling. --- lisp/pixel-scroll.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lisp/pixel-scroll.el b/lisp/pixel-scroll.el index 5425462caf5..336b555e77c 100644 --- a/lisp/pixel-scroll.el +++ b/lisp/pixel-scroll.el @@ -453,7 +453,9 @@ the height of the current window." (goto-char desired-start) (when (zerop (vertical-motion (1+ scroll-margin))) (signal 'end-of-buffer nil)) - (point)))) + (point))) + (scroll-preserve-screen-position nil) + (auto-window-vscroll nil)) (when (and (or (< (point) next-pos)) (let ((pos-visibility (pos-visible-in-window-p next-pos nil t))) (and pos-visibility