summaryrefslogtreecommitdiff
path: root/lisp/org/org-protocol.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/org/org-protocol.el')
-rw-r--r--lisp/org/org-protocol.el15
1 files changed, 9 insertions, 6 deletions
diff --git a/lisp/org/org-protocol.el b/lisp/org/org-protocol.el
index 3959a17cf4a..c31ac66bacb 100644
--- a/lisp/org/org-protocol.el
+++ b/lisp/org/org-protocol.el
@@ -349,17 +349,20 @@ returned list."
ret)
l)))
-(defun org-protocol-flatten (list)
- "Transform LIST into a flat list.
+(defalias 'org-protocol-flatten
+ (if (fboundp 'flatten-tree) 'flatten-tree
+ (lambda (list)
+ "Transform LIST into a flat list.
Greedy handlers might receive a list like this from emacsclient:
\((\"/dir/org-protocol:/greedy:/~/path1\" (23 . 12)) (\"/dir/param\"))
where \"/dir/\" is the absolute path to emacsclients working directory.
This function transforms it into a flat list."
- (if (null list) ()
- (if (listp list)
- (append (org-protocol-flatten (car list)) (org-protocol-flatten (cdr list)))
- (list list))))
+ (if list
+ (if (consp list)
+ (append (org-protocol-flatten (car list))
+ (org-protocol-flatten (cdr list)))
+ (list list))))))
(defun org-protocol-parse-parameters (info &optional new-style default-order)
"Return a property list of parameters from INFO.