summaryrefslogtreecommitdiff
path: root/lang/elisp/primitives/fns.scm
blob: f7a4aa003dd231492520c705c131194fa7be3289 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
(define-module (lang elisp primitives fns)
  #:use-module (lang elisp internals set)
  #:use-module (lang elisp internals fset)
  #:use-module (lang elisp internals null))

(fset 'fset fset)
(fset 'defalias fset)

(fset 'apply elisp-apply)

(fset 'funcall
      (lambda (function . args)
	(elisp-apply function args)))

(fset 'interactive-p
      (lambda ()
	%nil))

(fset 'commandp
      (lambda (sym)
	(if (interactive-specification (fref sym)) #t %nil)))

(fset 'fboundp
      (lambda (sym)
	(->nil (variable? (symbol-fref sym)))))

(fset 'symbol-function fref/error-if-void)

(fset 'macroexpand macroexpand)

(fset 'subrp
      (lambda (obj)
	(->nil (not (not-subr? obj)))))

(fset 'byte-code-function-p
      (lambda (object)
	%nil))

(fset 'run-hooks
      (lambda hooks
	(for-each (lambda (hooksym)
		    (for-each (lambda (fn)
				(elisp-apply fn '()))
			      (value hooksym #f)))
		  hooks)))