Emacs Lisp is hopelessly deficient in terms of control flow, but this
seems like the best choice available.
"Given a list of dynamic fill prefixes, pick one which matches
context and return the static fill prefix to use. Point must be
at the start of a line, and match data must be saved."
"Given a list of dynamic fill prefixes, pick one which matches
context and return the static fill prefix to use. Point must be
at the start of a line, and match data must be saved."
- (cond ((not l) nil)
- ((looking-at (car (car l)))
- (mdw-maybe-tabify (apply #'concat
+ (let ((prefix nil))
+ (while (cond ((null l) nil)
+ ((looking-at (caar l))
+ (setq prefix
+ (mdw-maybe-tabify
+ (apply #'concat
(mapcar #'mdw-do-prefix-match
(cdr (car l))))))
(mapcar #'mdw-do-prefix-match
(cdr (car l))))))
- (t (mdw-examine-fill-prefixes (cdr l)))))
+ nil))
+ (setq l (cdr l)))
+ prefix))
(defun mdw-choose-dynamic-fill-prefix ()
"Work out the dynamic fill prefix based on the variable `mdw-fill-prefix'."
(defun mdw-choose-dynamic-fill-prefix ()
"Work out the dynamic fill prefix based on the variable `mdw-fill-prefix'."