* ox-taskjuggler.el (org-taskjuggler-map-special-nodes):
new function to capture mapping over tagged special nodes.
(org-taskjuggler-project-plan): factor to use the new function.
---
contrib/lisp/ox-taskjuggler.el | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/contrib/lisp/ox-taskjuggler.el b/contrib/lisp/ox-taskjuggler.el
index ce4a8ab..2cf2c78 100644
--- a/contrib/lisp/ox-taskjuggler.el
+++ b/contrib/lisp/ox-taskjuggler.el
@@ -625,6 +625,12 @@ doesn't include leading \"depends\"."
;;; Translator Functions
+(defun org-taskjuggler-map-special-nodes (tag tree f)
+ (org-element-map tree 'headline
+ (lambda (hl)
+ (and (member tag (org-export-get-tags hl info))
+ (funcall f hl)))
+ info nil 'headline))
(defun org-taskjuggler-project-plan (contents info)
"Build TaskJuggler project plan.
@@ -647,13 +653,10 @@ Return complete project plan as a string in TaskJuggler
syntax."
;; `org-taskjuggler-resource-tag'. Only gather top level
;; resources.
(apply 'append
- (org-element-map tree 'headline
- (lambda (hl)
- (and (member org-taskjuggler-resource-tag
- (org-export-get-tags hl info))
- (org-element-map (org-element-contents hl)
'headline
- 'identity info nil 'headline)))
- info nil 'headline))))
+ (org-taskjuggler-map-special-nodes
+ org-taskjuggler-resource-tag tree
+ (lambda (hl) (org-element-map (org-element-contents hl)
'headline
+ 'identity info nil 'headline))))))
;; Assign a unique ID to each resource. Store it under
;; `:taskjuggler-unique-ids' property in INFO.
(setq info
--
2.5.0