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)))))