features.lisp - clic - Clic is an command line interactive client for gopher written in Common LISP (HTM) git clone git://bitreich.org/clic/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/clic/ (DIR) Log (DIR) Files (DIR) Refs (DIR) Tags (DIR) README (DIR) LICENSE --- features.lisp (717B) --- 1 (in-package :alexandria) 2 3 (defun featurep (feature-expression) 4 "Returns T if the argument matches the state of the *FEATURES* 5 list and NIL if it does not. FEATURE-EXPRESSION can be any atom 6 or list acceptable to the reader macros #+ and #-." 7 (etypecase feature-expression 8 (symbol (not (null (member feature-expression *features*)))) 9 (cons (check-type (first feature-expression) symbol) 10 (eswitch ((first feature-expression) :test 'string=) 11 (:and (every #'featurep (rest feature-expression))) 12 (:or (some #'featurep (rest feature-expression))) 13 (:not (assert (= 2 (length feature-expression))) 14 (not (featurep (second feature-expression))))))))