From fb5f640948392d9bc531e89fa2f9568c685e5d3b Mon Sep 17 00:00:00 2001 From: "Peder O. Klingenberg" Date: Thu, 18 Jul 2024 22:34:54 +0200 Subject: [PATCH] Visualize ranking of last game when adding scores * lisp/play/gamegrid.el (gamegrid-add-score-insecure): Move point to the score just added, or end of buffer if the new score did not make the list. This makes it easier to see where the last game ranked. (Bug#72185) (cherry picked from commit c330b97fe24088c32394fae7f52aa18315d123b0) --- lisp/play/gamegrid.el | 46 +++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/lisp/play/gamegrid.el b/lisp/play/gamegrid.el index a098d0f6f69..36c72c5cff7 100644 --- a/lisp/play/gamegrid.el +++ b/lisp/play/gamegrid.el @@ -639,27 +639,31 @@ FILE is created there." (defun gamegrid-add-score-insecure (file score &optional directory reverse) (save-excursion - (setq file (expand-file-name file (or directory - temporary-file-directory))) - (unless (file-exists-p (file-name-directory file)) - (make-directory (file-name-directory file) t)) - (find-file-other-window file) - (setq buffer-read-only nil) - (goto-char (point-max)) - (insert (format "%05d\t%s\t%s <%s>\n" - score - (current-time-string) - (user-full-name) - user-mail-address)) - (sort-fields 1 (point-min) (point-max)) - (unless reverse - (reverse-region (point-min) (point-max))) - (goto-char (point-min)) - (forward-line gamegrid-score-file-length) - (delete-region (point) (point-max)) - (setq buffer-read-only t) - (save-buffer) - (view-mode))) + (let ((score-line (format "%05d\t%s\t%s <%s>\n" + score + (current-time-string) + (user-full-name) + user-mail-address))) + (setq file (expand-file-name file (or directory + temporary-file-directory))) + (unless (file-exists-p (file-name-directory file)) + (make-directory (file-name-directory file) t)) + (find-file-other-window file) + (setq buffer-read-only nil) + (goto-char (point-max)) + (insert score-line) + (sort-fields 1 (point-min) (point-max)) + (unless reverse + (reverse-region (point-min) (point-max))) + (goto-char (point-min)) + (forward-line gamegrid-score-file-length) + (delete-region (point) (point-max)) + (setq buffer-read-only t) + (save-buffer) + (view-mode) + (goto-char (point-min)) + (when (search-forward score-line nil 'end) + (forward-line -1))))) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -- 2.39.5