summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Ecay <aaronecay@gmail.com>2015-11-06 12:04:20 +0000
committerAaron Ecay <aaronecay@gmail.com>2015-11-06 12:50:40 +0000
commite4cd3dd22be64eea64fa9f2cd7253ab734b441ee (patch)
tree4b0a06169874a786422b2e6ed2047a680264d800
parent2e26751b4c7417e29d9f3978323f4c90fc7db785 (diff)
downloadorg-mode-e4cd3dd22be64eea64fa9f2cd7253ab734b441ee.tar.gz
Remove some home-grown copies of cl-lib functions.
* lisp/org.el (org-count, org-remove-if, org-remove-if-not): (org-reduce, org-every, org-some): Obsolete, use cl-lib versions everywhere. (org-sublist): Reimplement in terms of `cl-subseq'; make obsolete.
-rw-r--r--contrib/lisp/ob-julia.el5
-rw-r--r--contrib/lisp/ob-stata.el5
-rw-r--r--contrib/lisp/org-contacts.el2
-rw-r--r--contrib/lisp/ox-bibtex.el2
-rw-r--r--lisp/ob-R.el6
-rw-r--r--lisp/ob-core.el23
-rw-r--r--lisp/ob-fortran.el4
-rw-r--r--lisp/ob-ref.el7
-rw-r--r--lisp/org-compat.el8
-rw-r--r--lisp/org-element.el3
-rw-r--r--lisp/org-indent.el3
-rw-r--r--lisp/org-lint.el8
-rw-r--r--lisp/org-list.el11
-rw-r--r--lisp/org-src.el4
-rw-r--r--lisp/org-table.el12
-rwxr-xr-xlisp/org.el74
-rw-r--r--lisp/ox-beamer.el3
-rw-r--r--lisp/ox-html.el3
-rw-r--r--lisp/ox-icalendar.el5
-rw-r--r--lisp/ox-publish.el2
-rw-r--r--lisp/ox.el12
-rw-r--r--testing/lisp/test-ox.el6
22 files changed, 80 insertions, 128 deletions
diff --git a/contrib/lisp/ob-julia.el b/contrib/lisp/ob-julia.el
index 4d8deb2..70265d5 100644
--- a/contrib/lisp/ob-julia.el
+++ b/contrib/lisp/ob-julia.el
@@ -38,7 +38,6 @@
(declare-function ess-make-buffer-current "ext:ess-inf" ())
(declare-function ess-eval-buffer "ext:ess-inf" (vis))
(declare-function org-number-sequence "org-compat" (from &optional to inc))
-(declare-function org-remove-if-not "org" (predicate seq))
(defconst org-babel-header-args:julia
'((width . :any)
@@ -150,9 +149,9 @@ This function is called by `org-babel-execute-src-block'."
(defun org-babel-julia-assign-elisp (name value colnames-p rownames-p)
"Construct julia code assigning the elisp VALUE to a variable named NAME."
(if (listp value)
- (let ((max (apply #'max (mapcar #'length (org-remove-if-not
+ (let ((max (apply #'max (mapcar #'length (cl-remove-if-not
#'sequencep value))))
- (min (apply #'min (mapcar #'length (org-remove-if-not
+ (min (apply #'min (mapcar #'length (cl-remove-if-not
#'sequencep value))))
(transition-file (org-babel-temp-file "julia-import-")))
;; ensure VALUE has an orgtbl structure (depth of at least 2)
diff --git a/contrib/lisp/ob-stata.el b/contrib/lisp/ob-stata.el
index 29aa88d..d1f5841 100644
--- a/contrib/lisp/ob-stata.el
+++ b/contrib/lisp/ob-stata.el
@@ -50,7 +50,6 @@
(declare-function ess-make-buffer-current "ext:ess-inf" ())
(declare-function ess-eval-buffer "ext:ess-inf" (vis))
(declare-function org-number-sequence "org-compat" (from &optional to inc))
-(declare-function org-remove-if-not "org" (predicate seq))
(defconst org-babel-header-args:stata
'((width . :any)
@@ -165,9 +164,9 @@ This function is called by `org-babel-execute-src-block'."
(defun org-babel-stata-assign-elisp (name value colnames-p rownames-p)
"Construct stata code assigning the elisp VALUE to a variable named NAME."
(if (listp value)
- (let ((max (apply #'max (mapcar #'length (org-remove-if-not
+ (let ((max (apply #'max (mapcar #'length (cl-remove-if-not
#'sequencep value))))
- (min (apply #'min (mapcar #'length (org-remove-if-not
+ (min (apply #'min (mapcar #'length (cl-remove-if-not
#'sequencep value))))
(transition-file (org-babel-temp-file "stata-import-")))
;; ensure VALUE has an orgtbl structure (depth of at least 2)
diff --git a/contrib/lisp/org-contacts.el b/contrib/lisp/org-contacts.el
index edc09fe..c0f054f 100644
--- a/contrib/lisp/org-contacts.el
+++ b/contrib/lisp/org-contacts.el
@@ -593,7 +593,7 @@ description."
(defun org-contacts-remove-ignored-property-values (ignore-list list)
"Remove all ignore-list's elements from list and you can use
regular expressions in the ignore list."
- (org-remove-if (lambda (el)
+ (cl-remove-if (lambda (el)
(org-find-if (lambda (x)
(string-match-p x el))
ignore-list))
diff --git a/contrib/lisp/ox-bibtex.el b/contrib/lisp/ox-bibtex.el
index 0719866..723713d 100644
--- a/contrib/lisp/ox-bibtex.el
+++ b/contrib/lisp/ox-bibtex.el
@@ -169,7 +169,7 @@ to `org-bibtex-citation-p' predicate."
(outline-previous-visible-heading 1)
t)))
-(let ((jump-fn (car (org-remove-if-not #'fboundp '(ebib org-bibtex-goto-citation)))))
+(let ((jump-fn (car (cl-remove-if-not #'fboundp '(ebib org-bibtex-goto-citation)))))
(org-add-link-type "cite" jump-fn))
diff --git a/lisp/ob-R.el b/lisp/ob-R.el
index bb058db..7c9b024 100644
--- a/lisp/ob-R.el
+++ b/lisp/ob-R.el
@@ -28,7 +28,7 @@
;;; Code:
(require 'ob)
-(eval-when-compile (require 'cl))
+(require 'cl-lib)
(declare-function orgtbl-to-tsv "org-table" (table params))
(declare-function R "ext:essd-r" (&optional start-args))
@@ -38,8 +38,6 @@
(declare-function ess-wait-for-process "ext:ess-inf"
(proc &optional sec-prompt wait force-redisplay))
(declare-function org-number-sequence "org-compat" (from &optional to inc))
-(declare-function org-remove-if-not "org" (predicate seq))
-(declare-function org-every "org" (pred seq))
(defconst org-babel-header-args:R
'((width . :any)
@@ -234,7 +232,7 @@ This function is called by `org-babel-execute-src-block'."
(defun org-babel-R-assign-elisp (name value colnames-p rownames-p)
"Construct R code assigning the elisp VALUE to a variable named NAME."
(if (listp value)
- (let* ((lengths (mapcar 'length (org-remove-if-not 'sequencep value)))
+ (let* ((lengths (mapcar 'length (cl-remove-if-not 'sequencep value)))
(max (if lengths (apply 'max lengths) 0))
(min (if lengths (apply 'min lengths) 0)))
;; Ensure VALUE has an orgtbl structure (depth of at least 2).
diff --git a/lisp/ob-core.el b/lisp/ob-core.el
index 309b746..739bbcd 100644
--- a/lisp/ob-core.el
+++ b/lisp/ob-core.el
@@ -25,6 +25,7 @@
;;; Code:
(eval-when-compile
(require 'cl))
+(require 'cl-lib)
(require 'ob-eval)
(require 'org-macs)
(require 'org-compat)
@@ -38,9 +39,7 @@
(defvar org-src-lang-modes)
(defvar org-babel-library-of-babel)
(declare-function outline-show-all "outline" ())
-(declare-function org-every "org" (pred seq))
(declare-function org-remove-indentation "org" (code &optional n))
-(declare-function org-reduce "org" (CL-FUNC CL-SEQ &rest CL-KEYS))
(declare-function org-mark-ring-push "org" (&optional pos buffer))
(declare-function tramp-compat-make-temp-file "tramp-compat"
(filename &optional dir-flag))
@@ -90,7 +89,6 @@
(declare-function org-list-struct "org-list" ())
(declare-function org-list-prevs-alist "org-list" (struct))
(declare-function org-list-get-list-end "org-list" (item struct prevs))
-(declare-function org-remove-if "org" (predicate seq))
(declare-function org-completing-read "org" (&rest args))
(declare-function org-escape-code-in-region "org-src" (beg end))
(declare-function org-unescape-code-in-string "org-src" (s))
@@ -100,7 +98,6 @@
(declare-function org-element-type "org-element" (element))
(declare-function org-element-at-point "org-element" ())
(declare-function org-element-property "org-element" (property element))
-(declare-function org-every "org" (pred seq))
(declare-function org-macro-escape-arguments "org-macro" (&rest args))
(defgroup org-babel nil
@@ -219,7 +216,7 @@ PARAMS is a quasi-alist of header args, whcih may contain
multiple entries for the key `:var'. This function returns a
list of the cdr of all the `:var' entries."
(mapcar #'cdr
- (org-remove-if (lambda (x) (not (eq (car x) :var))) params)))
+ (cl-remove-if-not (lambda (x) (eq (car x) :var)) params)))
(defun org-babel-get-inline-src-block-matches ()
"Set match data if within body of an inline source block.
@@ -526,7 +523,7 @@ their `org-babel-default-header-args:foo' variable.
For the format of SAFE-LIST, see `org-babel-safe-header-args'."
`(lambda (value)
(and (listp value)
- (org-every
+ (cl-every
(lambda (pair)
(and (consp pair)
(org-babel-one-header-arg-safe-p pair ,safe-list)))
@@ -812,7 +809,7 @@ arguments and pop open the results in a preview buffer."
(let ((header (car arg-pair))
(args (cdr arg-pair)))
(setq results
- (cons arg-pair (org-remove-if
+ (cons arg-pair (cl-remove-if
(lambda (pair) (equal header (car pair)))
results))))))
results))
@@ -1525,7 +1522,7 @@ instances of \"[ \t]:\" set ALTS to '((32 9) . 58)."
(let ((last= (lambda (str) (= ch (aref str (1- (length str))))))
(first= (lambda (str) (= ch (aref str 0)))))
(reverse
- (org-reduce (lambda (acc el)
+ (cl-reduce (lambda (acc el)
(let ((head (car acc)))
(if (and head (or (funcall last= head) (funcall first= el)))
(cons (concat head el) (cdr acc))
@@ -1597,7 +1594,7 @@ shown below.
(cons :result-type (cond ((member "output" result-params) 'output)
((member "value" result-params) 'value)
(t 'value))))
- (org-remove-if
+ (cl-remove-if
(lambda (x) (memq (car x) '(:colname-names :rowname-names :result-params
:result-type :var)))
params))))
@@ -2254,7 +2251,7 @@ INFO may provide the values of these header arguments (in the
;; a table.
(and (listp r)
(null (cdr (last r)))
- (org-every
+ (cl-every
(lambda (e) (or (atom e) (null (cdr (last e)))))
result)))))
;; insert results based on type
@@ -2280,7 +2277,7 @@ INFO may provide the values of these header arguments (in the
((funcall tabulablep result)
(goto-char beg)
(insert (concat (orgtbl-to-orgtbl
- (if (org-every
+ (if (cl-every
(lambda (e)
(or (eq e 'hline) (listp e)))
result)
@@ -2621,9 +2618,9 @@ parameters when merging lists."
(lambda (param)
(when (assoc param params)
(setf (cdr (assoc param params))
- (org-remove-if (lambda (pair) (equal (car pair) name))
+ (cl-remove-if (lambda (pair) (equal (car pair) name))
(cdr (assoc param params))))
- (setf params (org-remove-if (lambda (pair) (and (equal (car pair) param)
+ (setf params (cl-remove-if (lambda (pair) (and (equal (car pair) param)
(null (cdr pair))))
params))))
(list :colname-names :rowname-names)))
diff --git a/lisp/ob-fortran.el b/lisp/ob-fortran.el
index c402fae..a04d048 100644
--- a/lisp/ob-fortran.el
+++ b/lisp/ob-fortran.el
@@ -29,10 +29,10 @@
;;; Code:
(require 'ob)
(require 'cc-mode)
+(require 'cl-lib)
(declare-function org-entry-get "org"
(pom property &optional inherit literal-nil))
-(declare-function org-every "org" (pred seq))
(declare-function org-remove-indentation "org" (code &optional n))
(defvar org-babel-tangle-lang-exts)
@@ -145,7 +145,7 @@ of the same value."
(format "character(len=%d), parameter :: %S = '%s'\n"
(length val) var val))
;; val is a matrix
- ((and (listp val) (org-every #'listp val))
+ ((and (listp val) (cl-every #'listp val))
(format "real, parameter :: %S(%d,%d) = transpose( reshape( %s , (/ %d, %d /) ) )\n"
var (length val) (length (car val))
(org-babel-fortran-transform-list val)
diff --git a/lisp/ob-ref.el b/lisp/ob-ref.el
index 49c346d..8f69c8c 100644
--- a/lisp/ob-ref.el
+++ b/lisp/ob-ref.el
@@ -50,14 +50,12 @@
;;; Code:
(require 'ob-core)
-(eval-when-compile
- (require 'cl))
+(require 'cl-lib)
(declare-function org-at-item-p "org-list" ())
(declare-function org-at-table-p "org" (&optional table-type))
(declare-function org-babel-lob-execute "ob-lob" (info))
(declare-function org-babel-lob-get-info "ob-lob" nil)
-(declare-function org-count "org" (cl-item cl-seq))
(declare-function org-element-at-point "org-element" ())
(declare-function org-element-property "org-element" (property element))
(declare-function org-element-type "org-element" (element))
@@ -69,7 +67,6 @@
(declare-function org-narrow-to-subtree "org" ())
(declare-function org-pop-to-buffer-same-window "org-compat"
(&optional buffer-or-name norecord label))
-(declare-function org-remove-if-not "org" (predicate seq))
(declare-function org-show-context "org" (&optional key))
@@ -139,7 +136,7 @@ the variable."
;; if ref is indexed grab the indices -- beware nested indices
(when (and (string-match "\\[\\([^\\[]+\\)\\]$" ref)
(let ((str (substring ref 0 (match-beginning 0))))
- (= (org-count ?( str) (org-count ?) str))))
+ (= (cl-count ?( str) (cl-count ?) str))))
(setq index (match-string 1 ref))
(setq ref (substring ref 0 (match-beginning 0))))
;; assign any arguments to pass to source block
diff --git a/lisp/org-compat.el b/lisp/org-compat.el
index 1ab39de..b3a43a5 100644
--- a/lisp/org-compat.el
+++ b/lisp/org-compat.el
@@ -566,6 +566,14 @@ Implements `define-error' for older emacsen."
(put name 'error-conditions
(copy-sequence (cons name (get 'error 'error-conditions))))))
+;;; Functions from cl-lib that Org used to have its own implementation of
+(define-obsolete-function-alias 'org-count 'cl-count "Org 9.0")
+(define-obsolete-function-alias 'org-remove-if 'cl-remove-if "Org 9.0")
+(define-obsolete-function-alias 'org-remove-if-not 'cl-remove-if-not "Org 9.0")
+(define-obsolete-function-alias 'org-reduce 'cl-reduce "Org 9.0")
+(define-obsolete-function-alias 'org-every 'cl-every "Org 9.0")
+(define-obsolete-function-alias 'org-some 'cl-some "Org 9.0")
+
(provide 'org-compat)
;;; org-compat.el ends here
diff --git a/lisp/org-element.el b/lisp/org-element.el
index f8ffd11..37b89f1 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -118,6 +118,7 @@
(require 'org)
(require 'avl-tree)
+(require 'cl-lib)
@@ -333,7 +334,7 @@ This list is checked after translations have been applied. See
;; Regular affiliated keywords.
(format "\\(?1:%s\\)"
(regexp-opt
- (org-remove-if
+ (cl-remove-if
(lambda (k) (member k org-element-dual-keywords))
org-element-affiliated-keywords)))
"\\|"
diff --git a/lisp/org-indent.el b/lisp/org-indent.el
index 80389c7..7f0e980 100644
--- a/lisp/org-indent.el
+++ b/lisp/org-indent.el
@@ -41,6 +41,7 @@
(eval-when-compile
(require 'cl))
+(require 'cl-lib)
(declare-function org-inlinetask-get-task-level "org-inlinetask" ())
(declare-function org-inlinetask-in-task-p "org-inlinetask" ())
@@ -209,7 +210,7 @@ When no more buffer is being watched, the agent suppress itself."
(when org-indent-agent-resume-timer
(cancel-timer org-indent-agent-resume-timer))
(setq org-indent-agentized-buffers
- (org-remove-if-not #'buffer-live-p org-indent-agentized-buffers))
+ (cl-remove-if-not #'buffer-live-p org-indent-agentized-buffers))
(cond
;; Job done: kill agent.
((not org-indent-agentized-buffers) (cancel-timer org-indent-agent-timer))
diff --git a/lisp/org-lint.el b/lisp/org-lint.el
index ad8950f..efbffde 100644
--- a/lisp/org-lint.el
+++ b/lisp/org-lint.el
@@ -771,7 +771,7 @@ Use :header-args: instead"
(lambda (h)
(and (org-element-property :footnote-section-p h)
(org-element-map (org-element-contents h)
- (org-remove-if
+ (cl-remove-if
(lambda (e)
(memq e '(comment comment-block footnote-definition
property-drawer section)))
@@ -1085,7 +1085,7 @@ CHECKERS is the list of checkers used."
(interactive)
(let ((c (org-lint--current-checker)))
(setf tabulated-list-entries
- (org-remove-if (lambda (e) (equal c (org-lint--current-checker e)))
+ (cl-remove-if (lambda (e) (equal c (org-lint--current-checker e)))
tabulated-list-entries))
(tabulated-list-print)))
@@ -1124,7 +1124,7 @@ ARG can also be a list of checker names, as symbols, to run."
"Checker category: "
(mapcar #'org-lint-checker-categories org-lint--checkers)
nil t)))
- (org-remove-if-not
+ (cl-remove-if-not
(lambda (c)
(assoc-string (org-lint-checker-categories c) category))
org-lint--checkers)))
@@ -1139,7 +1139,7 @@ ARG can also be a list of checker names, as symbols, to run."
(when (string= (org-lint-checker-name c) name)
(throw 'exit c)))))))
((pred consp)
- (org-remove-if-not (lambda (c) (memq (org-lint-checker-name c) arg))
+ (cl-remove-if-not (lambda (c) (memq (org-lint-checker-name c) arg))
org-lint--checkers))
(_ (user-error "Invalid argument `%S' for `org-lint'" arg)))))
(if (not (org-called-interactively-p))
diff --git a/lisp/org-list.el b/lisp/org-list.el
index ab3ffdb..683a643 100644
--- a/lisp/org-list.el
+++ b/lisp/org-list.el
@@ -78,6 +78,7 @@
(eval-when-compile
(require 'cl))
+(require 'cl-lib)
(require 'org-macs)
(require 'org-compat)
@@ -98,7 +99,6 @@
(declare-function org-back-to-heading "org" (&optional invisible-ok))
(declare-function org-before-first-heading-p "org" ())
(declare-function org-combine-plists "org" (&rest plists))
-(declare-function org-count "org" (cl-item cl-seq))
(declare-function org-current-level "org" ())
(declare-function org-element-at-point "org-element" ())
(declare-function org-element-context "org-element" (&optional element))
@@ -124,7 +124,6 @@
(declare-function org-narrow-to-subtree "org" ())
(declare-function org-previous-line-empty-p "org" ())
(declare-function org-reduced-level "org" (L))
-(declare-function org-remove-if "org" (predicate seq))
(declare-function org-show-subtree "org" ())
(declare-function org-sort-remove-invisible "org" (S))
(declare-function org-time-string-to-seconds "org" (s))
@@ -1471,7 +1470,7 @@ This function returns, destructively, the new list structure."
(t dest)))
(org-M-RET-may-split-line nil)
;; Store inner overlays (to preserve visibility).
- (overlays (org-remove-if (lambda (o) (or (< (overlay-start o) item)
+ (overlays (cl-remove-if (lambda (o) (or (< (overlay-start o) item)
(> (overlay-end o) item)))
(overlays-in item item-end))))
(cond
@@ -2400,7 +2399,7 @@ in subtree, ignoring drawers."
(parents (org-list-parents-alist struct))
(prevs (org-list-prevs-alist struct))
(bottom (copy-marker (org-list-get-bottom-point struct)))
- (items-to-toggle (org-remove-if
+ (items-to-toggle (cl-remove-if
(lambda (e) (or (< e lim-up) (> e lim-down)))
(mapcar #'car struct))))
(mapc (lambda (e) (org-list-set-checkbox
@@ -2497,7 +2496,7 @@ With optional prefix argument ALL, do this for the whole buffer."
(org-list-get-checkbox e s))
items))))
(incf c-all (length cookies))
- (incf c-on (org-count "[X]" cookies)))))))
+ (incf c-on (cl-count "[X]" cookies :test #'equal)))))))
cookies-list cache)
;; Move to start.
(cond (all (goto-char (point-min)))
@@ -2675,7 +2674,7 @@ Return t if successful."
;; of the subtree mustn't have a child.
(let ((last-item (caar
(reverse
- (org-remove-if
+ (cl-remove-if
(lambda (e) (>= (car e) end))
struct)))))
(org-list-has-child-p last-item struct))))
diff --git a/lisp/org-src.el b/lisp/org-src.el
index 8b6f8bd..b660a26 100644
--- a/lisp/org-src.el
+++ b/lisp/org-src.el
@@ -35,6 +35,7 @@
(require 'ob-keys)
(require 'ob-comint)
(eval-when-compile (require 'cl))
+(require 'cl-lib)
(declare-function org-base-buffer "org" (buffer))
(declare-function org-do-remove-indentation "org" (&optional n))
@@ -49,7 +50,6 @@
(declare-function org-get-indentation "org" (&optional line))
(declare-function org-pop-to-buffer-same-window "org-compat"
(&optional buffer-or-name norecord label))
-(declare-function org-some "org" (pred seq))
(declare-function org-switch-to-buffer-other-window "org" (&rest args))
(declare-function org-trim "org" (s))
@@ -963,7 +963,7 @@ Throw an error if there is no such buffer."
(goto-char beg)
(cond
;; Block is hidden; move at start of block.
- ((org-some (lambda (o) (eq (overlay-get o 'invisible) 'org-hide-block))
+ ((cl-some (lambda (o) (eq (overlay-get o 'invisible) 'org-hide-block))
(overlays-at (point)))
(beginning-of-line 0))
(write-back (org-src--goto-coordinates coordinates beg end))))
diff --git a/lisp/org-table.el b/lisp/org-table.el
index 17547ab..097a191 100644
--- a/lisp/org-table.el
+++ b/lisp/org-table.el
@@ -36,6 +36,7 @@
(eval-when-compile
(require 'cl))
+(require 'cl-lib)
(require 'org)
(declare-function org-element-at-point "org-element" ())
@@ -2790,11 +2791,12 @@ not overwrite the stored one."
(replace-match
(save-match-data
(org-table-make-reference
- (org-sublist fields
- (+ (if (match-end 2) n0 0)
- (string-to-number (match-string 1 form)))
- (+ (if (match-end 4) n0 0)
- (string-to-number (match-string 3 form))))
+ (cl-subseq fields
+ (+ (if (match-end 2) n0 0)
+ (string-to-number (match-string 1 form))
+ -1)
+ (+ (if (match-end 4) n0 0)
+ (string-to-number (match-string 3 form))))
keep-empty numbers lispp))
t t form)))
(setq form0 form)
diff --git a/lisp/org.el b/lisp/org.el
index 6917167..3b1f5f2 100755
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -68,6 +68,8 @@
;;;; Require other packages
+(require 'cl-lib)
+
(eval-when-compile
(require 'cl)
(require 'gnus-sum))
@@ -766,7 +768,7 @@ value of the variable, after updating it:
(progn
(setq org-export-registered-backends
- (org-remove-if-not
+ (cl-remove-if-not
(lambda (backend)
(let ((name (org-export-backend-name backend)))
(or (memq name val)
@@ -798,7 +800,7 @@ depends on, if any."
;; a parent of any back-end in the new value) is removed from the
;; list of registered back-ends.
(setq org-export-registered-backends
- (org-remove-if-not
+ (cl-remove-if-not
(lambda (backend)
(let ((name (org-export-backend-name backend)))
(or (memq name val)
@@ -11320,9 +11322,9 @@ If the file does not exist, an error is thrown."
buffer-file-name
(substitute-in-file-name (expand-file-name path))))
(file-apps (append org-file-apps (org-default-apps)))
- (apps (org-remove-if
+ (apps (cl-remove-if
'org-file-apps-entry-match-against-dlink-p file-apps))
- (apps-dlink (org-remove-if-not
+ (apps-dlink (cl-remove-if-not
'org-file-apps-entry-match-against-dlink-p file-apps))
(remp (and (assq 'remote apps) (org-file-remote-p file)))
(dirp (unless remp (file-directory-p file)))
@@ -18960,7 +18962,7 @@ removed, nil otherwise."
(setq org-latex-fragment-image-overlays
(let ((beg (or beg (point-min)))
(end (or end (point-max))))
- (org-remove-if
+ (cl-remove-if
(lambda (o)
(cond ((not (overlay-buffer o)) (delete-overlay o) t)
((and (>= (overlay-start o) beg)
@@ -22668,59 +22670,6 @@ The function returns the new ALIST."
(setq list (delete (pop elts) list)))
list)
-(defun org-count (cl-item cl-seq)
- "Count the number of occurrences of ITEM in SEQ.
-Taken from `count' in cl-seq.el with all keyword arguments removed."
- (let ((cl-end (length cl-seq)) (cl-start 0) (cl-count 0) cl-x)
- (when (consp cl-seq) (setq cl-seq (nthcdr cl-start cl-seq)))
- (while (< cl-start cl-end)
- (setq cl-x (if (consp cl-seq) (pop cl-seq) (aref cl-seq cl-start)))
- (if (equal cl-item cl-x) (setq cl-count (1+ cl-count)))
- (setq cl-start (1+ cl-start)))
- cl-count))
-
-(defun org-remove-if (predicate seq)
- "Remove everything from SEQ that fulfills PREDICATE."
- (let (res e)
- (while seq
- (setq e (pop seq))
- (if (not (funcall predicate e)) (push e res)))
- (nreverse res)))
-
-(defun org-remove-if-not (predicate seq)
- "Remove everything from SEQ that does not fulfill PREDICATE."
- (let (res e)
- (while seq
- (setq e (pop seq))
- (if (funcall predicate e) (push e res)))
- (nreverse res)))
-
-(defun org-reduce (cl-func cl-seq &rest cl-keys)
- "Reduce two-argument FUNCTION across SEQ.
-Taken from `reduce' in cl-seq.el with all keyword arguments but
-\":initial-value\" removed."
- (let ((cl-accum (cond ((memq :initial-value cl-keys)
- (cadr (memq :initial-value cl-keys)))
- (cl-seq (pop cl-seq))
- (t (funcall cl-func)))))
- (while cl-seq
- (setq cl-accum (funcall cl-func cl-accum (pop cl-seq))))
- cl-accum))
-
-(defun org-every (pred seq)
- "Return true if PREDICATE is true of every element of SEQ.
-Adapted from `every' in cl.el."
- (catch 'org-every
- (mapc (lambda (e) (unless (funcall pred e) (throw 'org-every nil))) seq)
- t))
-
-(defun org-some (pred seq)
- "Return true if PREDICATE is true of any element of SEQ.
-Adapted from `some' in cl.el."
- (catch 'org-some
- (mapc (lambda (e) (when (funcall pred e) (throw 'org-some t))) seq)
- nil))
-
(defun org-back-over-empty-lines ()
"Move backwards over whitespace, to the beginning of the first empty line.
Returns the number of empty lines passed."
@@ -22798,13 +22747,10 @@ so values can contain further %-escapes if they are define later in TABLE."
(defun org-sublist (list start end)
"Return a section of LIST, from START to END.
+
Counting starts at 1."
- (let (rtn (c start))
- (setq list (nthcdr (1- start) list))
- (while (and list (<= c end))
- (push (pop list) rtn)
- (setq c (1+ c)))
- (nreverse rtn)))
+ (cl-subseq list (1- start) end))
+(make-obsolete 'org-sublist "cl-subseq (note the 0-based counting)." "Org 9.0")
(defun org-find-base-buffer-visiting (file)
"Like `find-buffer-visiting' but always return the base buffer and
diff --git a/lisp/ox-beamer.el b/lisp/ox-beamer.el
index 78cb3e1..7208862 100644
--- a/lisp/ox-beamer.el
+++ b/lisp/ox-beamer.el
@@ -30,6 +30,7 @@
;;; Code:
(eval-when-compile (require 'cl))
+(require 'cl-lib)
(require 'ox-latex)
;; Install a default set-up for Beamer export.
@@ -955,7 +956,7 @@ value."
(save-excursion
(org-back-to-heading t)
;; Filter out Beamer-related tags and install environment tag.
- (let ((tags (org-remove-if (lambda (x) (string-match "^B_" x))
+ (let ((tags (cl-remove-if (lambda (x) (string-match "^B_" x))
(org-get-tags)))
(env-tag (and (org-string-nw-p value) (concat "B_" value))))
(org-set-tags-to (if env-tag (cons env-tag tags) tags))
diff --git a/lisp/ox-html.el b/lisp/ox-html.el
index 36e7c96..effd387 100644
--- a/lisp/ox-html.el
+++ b/lisp/ox-html.el
@@ -34,6 +34,7 @@
(require 'ox-publish)
(require 'format-spec)
(eval-when-compile (require 'cl) (require 'table nil 'noerror))
+(require 'cl-lib)
;;; Function Declarations
@@ -1716,7 +1717,7 @@ INFO is a plist used as a communication channel."
info))
charset) "\n"
(let ((viewport-options
- (org-remove-if-not (lambda (cell) (org-string-nw-p (cadr cell)))
+ (cl-remove-if-not (lambda (cell) (org-string-nw-p (cadr cell)))
(plist-get info :html-viewport))))
(and viewport-options
(concat
diff --git a/lisp/ox-icalendar.el b/lisp/ox-icalendar.el
index e5c393c..f459d82 100644
--- a/lisp/ox-icalendar.el
+++ b/lisp/ox-icalendar.el
@@ -32,6 +32,7 @@
;;; Code:
(eval-when-compile (require 'cl))
+(require 'cl-lib)
(require 'ox-ascii)
(declare-function org-bbdb-anniv-export-ical "org-bbdb" nil)
@@ -834,7 +835,7 @@ external process."
;; Asynchronous export is not interactive, so we will not call
;; `org-check-agenda-file'. Instead we remove any non-existent
;; agenda file from the list.
- (let ((files (org-remove-if-not 'file-exists-p (org-agenda-files t))))
+ (let ((files (cl-remove-if-not #'file-exists-p (org-agenda-files t))))
(org-export-async-start
(lambda (results)
(dolist (f results) (org-export-add-to-stack f 'icalendar)))
@@ -865,7 +866,7 @@ The file is stored under the name chosen in
`org-icalendar-combined-agenda-file'."
(interactive)
(if async
- (let ((files (org-remove-if-not #'file-exists-p (org-agenda-files t))))
+ (let ((files (cl-remove-if-not #'file-exists-p (org-agenda-files t))))
(org-export-async-start
(lambda (_)
(org-export-add-to-stack
diff --git a/lisp/ox-publish.el b/lisp/ox-publish.el
index 9915456..bcdf1ed 100644
--- a/lisp/ox-publish.el
+++ b/lisp/ox-publish.el
@@ -445,7 +445,7 @@ matching the regexp SKIP-DIR when recursing through BASE-DIR."
(let ((all-files (if (not recurse) (directory-files base-dir t match)
;; If RECURSE is non-nil, we want all files
;; matching MATCH and sub-directories.
- (org-remove-if-not
+ (cl-remove-if-not
(lambda (file)
(or (file-directory-p file)
(and match (string-match match file))))
diff --git a/lisp/ox.el b/lisp/ox.el
index d4061f2..92d2f35 100644
--- a/lisp/ox.el
+++ b/lisp/ox.el
@@ -2828,7 +2828,7 @@ not, are considered."
;; Filter out definitions referenced neither in the original
;; tree nor in the external definitions.
(let* ((directly-referenced
- (org-remove-if-not
+ (cl-remove-if-not
(lambda (d)
(member (org-element-property :label d) referenced-labels))
definitions))
@@ -2836,7 +2836,7 @@ not, are considered."
(append (funcall collect-labels directly-referenced)
referenced-labels)))
(setq definitions
- (org-remove-if-not
+ (cl-remove-if-not
(lambda (d)
(member (org-element-property :label d) all-labels))
definitions)))
@@ -3865,7 +3865,7 @@ INFO is a plist holding contextual information."
(defun org-export-numbered-headline-p (headline info)
"Return a non-nil value if HEADLINE element should be numbered.
INFO is a plist used as a communication channel."
- (unless (org-some
+ (unless (cl-some
(lambda (head) (org-not-nil (org-element-property :UNNUMBERED head)))
(org-element-lineage headline nil t))
(let ((sec-num (plist-get info :section-numbers))
@@ -3902,7 +3902,7 @@ Any tag belonging to this list will also be removed.
When optional argument INHERITED is non-nil, tags can also be
inherited from parent headlines and FILETAGS keywords."
- (org-remove-if
+ (cl-remove-if
(lambda (tag) (or (member tag (plist-get info :select-tags))
(member tag (plist-get info :exclude-tags))
(member tag tags)))
@@ -6037,7 +6037,7 @@ stack."
;; Clear stack from exited processes, dead buffers or
;; non-existent files.
(setq org-export-stack-contents
- (org-remove-if-not
+ (cl-remove-if-not
(lambda (el)
(if (processp (nth 2 el))
(buffer-live-p (process-buffer (nth 2 el)))
@@ -6052,7 +6052,7 @@ If optional argument SOURCE is non-nil, remove it instead."
(interactive)
(let ((source (or source (org-export--stack-source-at-point))))
(setq org-export-stack-contents
- (org-remove-if (lambda (el) (equal (car el) source))
+ (cl-remove-if (lambda (el) (equal (car el) source))
org-export-stack-contents))))
(defun org-export-stack-view (&optional in-emacs)
diff --git a/testing/lisp/test-ox.el b/testing/lisp/test-ox.el
index cfdd3ac..72ef068 100644
--- a/testing/lisp/test-ox.el
+++ b/testing/lisp/test-ox.el
@@ -21,6 +21,8 @@
;;; Code:
+(require 'cl-lib)
+
(unless (featurep 'ox)
(signal 'missing-test-dependency "org-export"))
@@ -1148,7 +1150,7 @@ Footnotes[fn:2], foot[fn:test], digit only[3], and [fn:inline:anonymous footnote
(buffer-string))))
;; Adjacent INCLUDE-keywords should have the same :minlevel if unspecified.
(should
- (org-every (lambda (level) (zerop (1- level)))
+ (cl-every (lambda (level) (zerop (1- level)))
(org-test-with-temp-text
(concat
(format "#+INCLUDE: \"%s/examples/include.org::#ah\"\n" org-test-dir)
@@ -2066,7 +2068,7 @@ Footnotes[fn:2], foot[fn:test], digit only[3], and [fn:inline:anonymous footnote
:UNNUMBERED: nil
:END:
*** H3"
- (org-every
+ (cl-every
(lambda (h) (not (org-export-numbered-headline-p h info)))
(org-element-map tree 'headline #'identity info)))))