Function: artist-make-prev-next-op-alist
artist-make-prev-next-op-alist is a byte-compiled function defined in
artist.el.gz.
Signature
(artist-make-prev-next-op-alist OP-LIST &optional LAST-NON-NIL-ARG FIRST-NON-NIL-ARG PREV-ENTRY PREV-OP-ARG)
Documentation
Build an assoc-list of OP-LIST.
The arguments LAST-NON-NIL-ARG, FIRST-NON-NIL-ARG, PREV-ENTRY and PREV-OP-ARG are used when invoked recursively during the build-up.
Source Code
;; Defined in /usr/src/emacs/lisp/textmodes/artist.el.gz
(defun artist-make-prev-next-op-alist (op-list
&optional
last-non-nil-arg first-non-nil-arg
prev-entry prev-op-arg)
"Build an assoc-list of OP-LIST.
The arguments LAST-NON-NIL-ARG, FIRST-NON-NIL-ARG, PREV-ENTRY and
PREV-OP-ARG are used when invoked recursively during the build-up."
(let* ((last-non-nil (or last-non-nil-arg
(artist-get-last-non-nil-op
artist-key-compl-table)))
(first-non-nil (or first-non-nil-arg
(artist-get-first-non-nil-op
artist-key-compl-table)))
(prev-op (or prev-op-arg last-non-nil))
(op (car (car op-list)))
(opsym (artist-mt-get-symbol-from-keyword op))
(entry (cons opsym (cons prev-op nil))))
(if (or (and op-list (not op))
(artist-is-in-op-list-p op (cdr op-list)))
(artist-make-prev-next-op-alist (cdr op-list)
last-non-nil first-non-nil
prev-entry prev-op)
(if prev-entry (setcdr (cdr prev-entry) op))
(if op-list
(cons entry (artist-make-prev-next-op-alist
(cdr op-list)
last-non-nil first-non-nil
entry op))
(progn (setcdr (cdr prev-entry) first-non-nil) nil)))))