Function: org-assign-fast-keys

org-assign-fast-keys is a byte-compiled function defined in org.el.gz.

Signature

(org-assign-fast-keys ALIST)

Documentation

Assign fast keys to a keyword-key alist.

Respect keys that are already there.

Source Code

;; Defined in /usr/src/emacs/lisp/org/org.el.gz
(defun org-assign-fast-keys (alist)
  "Assign fast keys to a keyword-key alist.
Respect keys that are already there."
  (let (new e (alt ?0))
    (while (setq e (pop alist))
      (if (or (memq (car e) '(:newline :grouptags :endgroup :startgroup))
	      (cdr e)) ;; Key already assigned.
	  (push e new)
	(let ((clist (string-to-list (downcase (car e))))
	      (used (append new alist)))
	  (when (= (car clist) ?@)
	    (pop clist))
	  (while (and clist (rassoc (car clist) used))
	    (pop clist))
	  (unless clist
	    (while (rassoc alt used)
	      (cl-incf alt)))
	  (push (cons (car e) (or (car clist) alt)) new))))
    (nreverse new)))