X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=guile18%2Flang%2Felisp%2Fprimitives%2Ffeatures.scm;fp=guile18%2Flang%2Felisp%2Fprimitives%2Ffeatures.scm;h=8cd1a99581037f38be8da173943a1732a23be3e7;hb=139c38d9204dd07f6b235f83bae644faedbc63fd;hp=0000000000000000000000000000000000000000;hpb=652ed35a2013489d0a14fede6307cd2595abb2c4;p=lilypond.git diff --git a/guile18/lang/elisp/primitives/features.scm b/guile18/lang/elisp/primitives/features.scm new file mode 100644 index 0000000000..8cd1a99581 --- /dev/null +++ b/guile18/lang/elisp/primitives/features.scm @@ -0,0 +1,26 @@ +(define-module (lang elisp primitives features) + #:use-module (lang elisp internals fset) + #:use-module (lang elisp internals load) + #:use-module (lang elisp internals null) + #:use-module (ice-9 optargs)) + +(define-public features '()) + +(fset 'provide + (lambda (feature) + (or (memq feature features) + (set! features (cons feature features))))) + +(fset 'featurep + (lambda (feature) + (->nil (memq feature features)))) + +(fset 'require + (lambda* (feature #:optional file-name noerror) + (or (memq feature features) + (load (or file-name + (symbol->string feature)) + noerror + #f + #f + #t))))