]> git.donarmstrong.com Git - lilypond.git/blobdiff - guile18/lang/elisp/primitives/features.scm
Import guile-1.8 as multiple upstream tarball component
[lilypond.git] / guile18 / lang / elisp / primitives / features.scm
diff --git a/guile18/lang/elisp/primitives/features.scm b/guile18/lang/elisp/primitives/features.scm
new file mode 100644 (file)
index 0000000..8cd1a99
--- /dev/null
@@ -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))))