aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-26 13:25:41 -0400
committerCraig Jennings <c@cjennings.net>2026-06-26 13:25:41 -0400
commitee8fdeb692d666c12ce068a2b1ee90e9451ac892 (patch)
tree14e6112715ae68d7b16e1029c4f4f114cdd1efe6
parent06143c61c3782b24c738587ae5e1f427ceb0518c (diff)
downloademacs-wttrin-ee8fdeb692d666c12ce068a2b1ee90e9451ac892.tar.gz
emacs-wttrin-ee8fdeb692d666c12ce068a2b1ee90e9451ac892.zip
fix: drop the alias query from history when making it the defaultHEADmain
Making a location the default saved it and dropped the favorite name from history, but not the underlying query. For an alias whose query differs from its name, that query lingered as a separate history candidate. Both saving branches now drop the name and the query, matching wttrin-save-location.
-rw-r--r--tests/test-wttrin-saved-locations.el17
-rw-r--r--wttrin.el2
2 files changed, 19 insertions, 0 deletions
diff --git a/tests/test-wttrin-saved-locations.el b/tests/test-wttrin-saved-locations.el
index 267e5cc..de97df0 100644
--- a/tests/test-wttrin-saved-locations.el
+++ b/tests/test-wttrin-saved-locations.el
@@ -385,6 +385,23 @@ the directory only and does not also appear as a separate history candidate."
(should-not (member "New Orleans" wttrin--location-history))
(should (member "Paris" wttrin--location-history))))
+(ert-deftest test-wttrin-saved-locations-normal-d-alias-drops-query-from-history ()
+ "Normal: making an aliased location the default drops its underlying query from
+history, so the place does not also linger as a separate history candidate."
+ (let ((wttrin-saved-locations nil)
+ (wttrin-favorite-location nil)
+ (wttrin-mode-line-mode nil)
+ (wttrin--location-history '("New Orleans" "Paris")))
+ (with-temp-buffer
+ (setq-local wttrin--current-location "New Orleans")
+ (setq-local wttrin--current-display "Home")
+ (cl-letf (((symbol-function 'message) (lambda (&rest _) nil)))
+ (wttrin-make-default)))
+ (should (equal "Home" wttrin-favorite-location))
+ (should (assoc "Home" (wttrin--saved-locations)))
+ (should-not (member "New Orleans" wttrin--location-history))
+ (should (member "Paris" wttrin--location-history))))
+
(ert-deftest test-wttrin-saved-locations-normal-remove-forgets-history ()
"Normal: removing a saved location drops both its name and its query from
history, so a removed place does not resurface as a history candidate."
diff --git a/wttrin.el b/wttrin.el
index f64af7f..82516b9 100644
--- a/wttrin.el
+++ b/wttrin.el
@@ -1262,11 +1262,13 @@ current location."
(message "wttrin: %s is now the default location" wttrin--current-location))
(wttrin--put-saved-location name wttrin--current-location)
(wttrin--set-favorite-location name)
+ (wttrin--drop-from-location-history name wttrin--current-location)
(message "wttrin: %s is now the default location" name))))
(t
(let ((favorite (or wttrin--current-display wttrin--current-location)))
(wttrin--put-saved-location favorite wttrin--current-location)
(wttrin--set-favorite-location favorite)
+ (wttrin--drop-from-location-history favorite wttrin--current-location)
(message "wttrin: %s is now the default location" favorite)))))
;;; Mode-line weather display