summaryrefslogtreecommitdiff
path: root/elpa/req-package-20180605.1141/req-package-args.el
diff options
context:
space:
mode:
authormattkae <mattkae@protonmail.com>2022-05-11 09:23:58 -0400
committermattkae <mattkae@protonmail.com>2022-05-11 09:23:58 -0400
commit3f4a0d5370ae6c34afe180df96add3b8522f4af1 (patch)
treeae901409e02bde8ee278475f8cf6818f8f680a60 /elpa/req-package-20180605.1141/req-package-args.el
initial commit
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