From ee8fdeb692d666c12ce068a2b1ee90e9451ac892 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Fri, 26 Jun 2026 13:25:41 -0400 Subject: fix: drop the alias query from history when making it the default 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. --- tests/test-wttrin-saved-locations.el | 17 +++++++++++++++++ wttrin.el | 2 ++ 2 files changed, 19 insertions(+) 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 -- cgit v1.2.3