summaryrefslogtreecommitdiff
path: root/elpa/req-package-20180605.1141/req-package-args.el
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/req-package-20180605.1141/req-package-args.el')
-rw-r--r--elpa/req-package-20180605.1141/req-package-args.el31
1 files changed, 31 insertions, 0 deletions
diff --git a/elpa/req-package-20180605.1141/req-package-args.el b/elpa/req-package-20180605.1141/req-package-args.el
new file mode 100644
index 0000000..bdcbab1
--- /dev/null
+++ b/elpa/req-package-20180605.1141/req-package-args.el
@@ -0,0 +1,31 @@
+;;; req-package-args.el --- summary:
+;;; commentary:
+;;; code:
+
+(require 'dash)
+
+(defconst req-package-keywords '(:require :force))
+
+(defun req-package-args-take-args (args acc)
+ "Take all args until next keyword."
+ (cond ((or (null args)
+ (and (keywordp (car args))
+ (or (-contains? use-package-keywords (car args))
+ (-contains? req-package-keywords (car args))))) (list (reverse acc) args))
+ (t (req-package-args-take-args (cdr args) (cons (car args) acc)))))
+
+(defun req-package-args-extract-arg (key args acc)
+ "Extract KEY value from ARGS list accummulating with ACC."
+ (if (null args)
+ (list nil (reverse acc))
+ (if (eq (car args) key)
+ (let* ((REST (cdr args))
+ (ALL (req-package-args-take-args REST nil))
+ (KEY-ARGS (car ALL))
+ (REST-ARGS (cadr ALL)))
+ (list KEY-ARGS
+ (append (reverse acc) REST-ARGS)))
+ (req-package-args-extract-arg key (cdr args) (cons (car args) acc)))))
+
+(provide 'req-package-args)
+;;; req-package-args ends here