diff options
| author | Thanos Apollo <public@thanosapollo.org> | 2026-04-23 13:43:31 +0300 |
|---|---|---|
| committer | Thanos Apollo <public@thanosapollo.org> | 2026-04-23 13:43:31 +0300 |
| commit | e25594f19393ac1f320af717a2596324e8e718ea (patch) | |
| tree | 108a717ec1daa6ac4757b8549b1df719e10e80c0 | |
| parent | 457e5508250e9e22ebd1b9f7aa5cbb5ca3f85103 (diff) | |
settings: Fix nil owner/repo by using regular vars instead of buffer-locals
| -rw-r--r-- | lisp/forgejo-settings.el | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/lisp/forgejo-settings.el b/lisp/forgejo-settings.el index 988dc1f..5595100 100644 --- a/lisp/forgejo-settings.el +++ b/lisp/forgejo-settings.el @@ -35,9 +35,15 @@ ;;; Data operations -(defvar-local forgejo-settings--data nil +(defvar forgejo-settings--data nil "Cached repo settings alist for the current context.") +(defvar forgejo-settings--owner nil + "Owner of the repo being configured.") + +(defvar forgejo-settings--repo nil + "Name of the repo being configured.") + (defun forgejo-settings--fetch (owner repo callback) "Fetch repo settings for OWNER/REPO, call CALLBACK with alist." (forgejo-api-get @@ -63,8 +69,8 @@ (defun forgejo-settings-set-description () "Edit the repository description." (interactive) - (let* ((owner forgejo-repo--owner) - (repo forgejo-repo--name) + (let* ((owner forgejo-settings--owner) + (repo forgejo-settings--repo) (current (or (forgejo-settings--get 'description) ""))) (let ((new (read-string "Description: " current))) (unless (string= new current) @@ -74,8 +80,8 @@ (defun forgejo-settings-set-website () "Edit the repository website." (interactive) - (let* ((owner forgejo-repo--owner) - (repo forgejo-repo--name) + (let* ((owner forgejo-settings--owner) + (repo forgejo-settings--repo) (current (or (forgejo-settings--get 'website) ""))) (let ((new (read-string "Website: " current))) (unless (string= new current) @@ -85,8 +91,8 @@ (defun forgejo-settings-toggle-manual-merge () "Toggle the manual merge setting." (interactive) - (let* ((owner forgejo-repo--owner) - (repo forgejo-repo--name) + (let* ((owner forgejo-settings--owner) + (repo forgejo-settings--repo) (current (forgejo-settings--get 'allow_manual_merge)) (new (not (eq current t)))) (forgejo-settings--save owner repo 'allow_manual_merge new) @@ -127,10 +133,9 @@ Fetches current settings synchronously, then opens the transient." (forgejo-settings--fetch owner repo (lambda (data) - (setq forgejo-settings--data data) - (setq-local forgejo-repo--owner owner - forgejo-repo--name repo - forgejo-repo--host (or host forgejo-host)) + (setq forgejo-settings--data data + forgejo-settings--owner owner + forgejo-settings--repo repo) (forgejo-settings--transient)))))) (declare-function forgejo-vc--repo-from-remote "forgejo-vc.el" ()) @@ -139,7 +144,7 @@ Fetches current settings synchronously, then opens the transient." "Repository settings." [:description (lambda () (format "Settings: %s/%s" - forgejo-repo--owner forgejo-repo--name)) + forgejo-settings--owner forgejo-settings--repo)) ("d" forgejo-settings-set-description :description forgejo-settings--description-desc) ("w" forgejo-settings-set-website |
