diff options
author | Christian Egli <christian.egli@sbszh.ch> | 2011-03-21 20:11:06 +0000 |
---|---|---|
committer | Bastien Guerry <bzg@altern.org> | 2011-03-22 10:44:42 +0100 |
commit | 70b8d8397f2351fe7c3bdaa75297c89a36a7738b (patch) | |
tree | b6f5fc818f89217f72fd05f8631204cbac69bd9d | |
parent | 38c6b17822ffb7ca4f9197c57c271ec417fa3a89 (diff) | |
download | org-mode-70b8d8397f2351fe7c3bdaa75297c89a36a7738b.tar.gz |
Replace recursive implementation with an iterative one
* org-taskjuggler.el (org-taskjuggler-assign-resource-ids): Replace
recursive implementation with an iterative one.
That way we can avoid to have ask users to increase
`max-lisp-eval-depth'.
-rw-r--r-- | lisp/org-taskjuggler.el | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/lisp/org-taskjuggler.el b/lisp/org-taskjuggler.el index 9c88f5d..279f46d 100644 --- a/lisp/org-taskjuggler.el +++ b/lisp/org-taskjuggler.el @@ -418,15 +418,13 @@ deeper), then it's not a leaf." (defun org-taskjuggler-assign-resource-ids (resources) "Given a list of resources return the same list, assigning a unique id to each resource." - (cond - ((null resources) nil) - (t - (let* ((resource (car resources)) - (unique-id (org-taskjuggler-get-unique-id resource unique-ids))) - (push (cons "unique-id" unique-id) resource) - (cons resource - (org-taskjuggler-assign-resource-ids (cdr resources) - (cons unique-id unique-ids))))))) + (let (unique-ids new-list) + (dolist (resource resources new-list) + (let ((unique-id (org-taskjuggler-get-unique-id resource unique-ids))) + (push (cons "unique-id" unique-id) resource) + (push unique-id unique-ids) + (push resource new-list))) + (nreverse new-list))) (defun org-taskjuggler-resolve-dependencies (tasks) (let ((previous-level 0) |