[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/gnorb 1e071a0 252/449: Further refinements to link foll
From: |
Stefan Monnier |
Subject: |
[elpa] externals/gnorb 1e071a0 252/449: Further refinements to link following |
Date: |
Fri, 27 Nov 2020 23:15:50 -0500 (EST) |
branch: externals/gnorb
commit 1e071a07faf99125bd0dba2145b9dd5e624659e9
Author: Eric Abrahamsen <eric@ericabrahamsen.net>
Commit: Eric Abrahamsen <eric@ericabrahamsen.net>
Further refinements to link following
* gnorb-utils.el (gnorb-reply-to-gnus-link): New function, do the
replies using this -- also handles news.
(gnorb-open-gnus-link): New function, now we don't rely on Org's gnus
link following at all.
* gnorb-org.el (gnorb-org-setup-message): Edit to use new functions.
---
gnorb-org.el | 5 +----
gnorb-utils.el | 32 ++++++++++++++++++++++++++------
2 files changed, 27 insertions(+), 10 deletions(-)
diff --git a/gnorb-org.el b/gnorb-org.el
index a27cc1f..2971dd5 100644
--- a/gnorb-org.el
+++ b/gnorb-org.el
@@ -259,10 +259,7 @@ headings."
(compose-mail)
;; ...or follow link and start reply.
(condition-case err
- (progn
- (gnorb-open-gnus-link (car messages))
- (call-interactively
- 'gnus-summary-wide-reply-with-original))
+ (gnorb-reply-to-gnus-link (car messages))
(error (gnorb-restore-layout)
(signal (car err) (cdr err)))))
;; Add MAILS to message To header.
diff --git a/gnorb-utils.el b/gnorb-utils.el
index 880e571..fecf27c 100644
--- a/gnorb-utils.el
+++ b/gnorb-utils.el
@@ -116,7 +116,20 @@ and Gnus and BBDB maps."
(when (buffer-live-p (marker-buffer gnorb-return-marker))
(goto-char gnorb-return-marker))))
-(defun gnorb-open-gnus-link (link)
+(defun gnorb-reply-to-gnus-link (link)
+ "Start a reply to the linked message."
+ (let* ((link (org-link-unescape link))
+ (group (car (org-split-string link "#")))
+ (id (second (org-split-string link "#")))
+ (backend
+ (car (gnus-find-method-for-group group))))
+ (gnorb-follow-gnus-link group id)
+ (call-interactively
+ (if (eq backend 'nntp)
+ 'gnus-summary-followup-with-original
+ 'gnus-summary-wide-reply-with-original))))
+
+(defun gnorb-follow-gnus-link (group id)
"Be a little clever about following gnus links.
The goal here is reuse frames and windows as much as possible, so
@@ -141,10 +154,7 @@ link.
3. Otherwise just follow the link as usual, in the current
window."
- (let* ((link (org-link-unescape link))
- (group (car (org-split-string link "#")))
- (id (second (org-split-string link "#")))
- (sum-buffer (gnus-summary-buffer-name group))
+ (let* ((sum-buffer (gnus-summary-buffer-name group))
(target-buffer
(cond
((gnus-buffer-exists-p sum-buffer)
@@ -165,7 +175,17 @@ window."
(switch-to-buffer target-buffer)))
(if (gnus-buffer-exists-p sum-buffer)
(gnus-summary-goto-article id nil t)
- (org-gnus-open link))))
+ (gnorb-open-gnus-link group id))))
+
+(defun gnorb-open-gnus-link (group id)
+ "Gnorb version of `org-gnus-follow-link'."
+ (let ((art-no (cdr (gnus-request-head id group)))
+ success)
+ (gnus-activate-group group)
+ (setq success (gnus-group-read-group 1 t group))
+ (if success
+ (gnus-summary-goto-article (or art-no id) nil t)
+ (signal 'error "Group could not be opened."))))
(defun gnorb-trigger-todo-action (arg &optional id)
"Do the actual restore action. Two main things here. First: if
- [elpa] externals/gnorb 294e1eb 224/449: Fix calls to gnorb-trigger-todo-action, (continued)
- [elpa] externals/gnorb 294e1eb 224/449: Fix calls to gnorb-trigger-todo-action, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 73b7f47 227/449: Use org-element-map's arguments properly, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 82d1e46 230/449: New gnorb.org file, and elpaignore, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb e7b8a8b 233/449: First full draft of manual, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 004bdce 234/449: Create and install info manual, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb dd46ce4 246/449: Refactor finding trigger candidates, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 354705a 245/449: Provide completion for Org tags on BBDB records, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 2834602 247/449: Move roadmap/todo list from manual to README, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb f0ba4d7 250/449: Improvements to message disassociation, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 0a138f9 251/449: Reuse existing frames/windows when following links, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 1e071a0 252/449: Further refinements to link following,
Stefan Monnier <=
- [elpa] externals/gnorb bfd8566 253/449: Be more careful about brackets on message-ids, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 1b56250 254/449: Change wording of disassociation message, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb d4a4ccf 256/449: Better handling of non-existent Org headings, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb ad1538d 260/449: Autoload cookie for gnorb-tracking-initialize, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 8db194a 259/449: Add TAGS to .gitignore, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 14471db 262/449: Silence compiler warnings for unbound vars, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 6aef624 265/449: Restore the layout after the restore process, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb c44a87b 266/449: Deletion of associations when composing messages, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb 7a43d8b 267/449: Bug in message disassociation, Stefan Monnier, 2020/11/27
- [elpa] externals/gnorb b82576c 268/449: Always clear attachments during triggering, Stefan Monnier, 2020/11/27