aboutsummaryrefslogtreecommitdiffstats
path: root/modules/fmod
diff options
context:
space:
mode:
authorAurélien Aptel2014-12-02 16:17:10 -0500
committerTed Zlatanov2014-12-04 19:54:16 -0500
commitae901ddbfff04e8b1b0d63c452a6ca3f4c81fb17 (patch)
treeb806504944c633be45255321d1203bbcc2504781 /modules/fmod
parentdd601050e7db69f322eea09d99751d8e6363b153 (diff)
downloademacs-old-branches/dynamic-modules-rc2.tar.gz
emacs-old-branches/dynamic-modules-rc2.zip
* configure.ac: Add libtool support and module Makefiles. * src/Makefile.in: Support libtool. * src/alloc.c (mark_object): Mark the doc field of Lisp_Subr as object. * src/doc.c (doc_is_from_module_p, get_doc_string, reread_doc_file) (store_function_docstring, build_file_p, Fsnarf_documentation): Support docstrings for external modules. * src/lisp.h: Make the doc field of Lisp_Subr a Lisp_Object. * src/lread.c (Fget_load_suffixes, Fload_module, string_suffixes_p) (string_suffix_p, Fload, intern_c_string_1, defsubr) (syms_of_lread): Add loading of external modules and the docstrings of their functions. * modules/curl: New module. * modules/elisp: New module. * modules/fmod: New module. * modules/opaque: New module. * modules/yaml: New module.
Diffstat (limited to 'modules/fmod')
-rw-r--r--modules/fmod/Makefile.in12
-rw-r--r--modules/fmod/fmod.c60
2 files changed, 72 insertions, 0 deletions
diff --git a/modules/fmod/Makefile.in b/modules/fmod/Makefile.in
new file mode 100644
index 00000000000..ad9016a1cee
--- /dev/null
+++ b/modules/fmod/Makefile.in
@@ -0,0 +1,12 @@
1ROOT = ../..
2
3all: fmod.so fmod.doc
4
5%.so: %.o
6 gcc -shared -o $@ $<
7
8%.o: %.c
9 gcc -ggdb3 -Wall -I$(ROOT)/src -I$(ROOT)/lib -fPIC -c $<
10
11%.doc: %.c
12 $(ROOT)/lib-src/make-docfile $< > $@
diff --git a/modules/fmod/fmod.c b/modules/fmod/fmod.c
new file mode 100644
index 00000000000..57da6168ae2
--- /dev/null
+++ b/modules/fmod/fmod.c
@@ -0,0 +1,60 @@
1#include <config.h>
2#include <lisp.h>
3
4#include <math.h>
5
6/* emacs checks for this symbol before running the module */
7
8int plugin_is_GPL_compatible;
9
10/* module feature name */
11static Lisp_Object Qfmod;
12
13/* define a new lisp function */
14
15EXFUN (Ffmod, 2);
16DEFUN ("fmod", Ffmod, Sfmod, 2, 2, 0,
17 doc: "Returns the floating-point remainder of NUMER/DENOM")
18 (Lisp_Object numer, Lisp_Object denom)
19{
20 return make_float (fmod (extract_float (numer), extract_float (denom)));
21}
22
23EXFUN (Ffmod_test1, 0);
24DEFUN ("fmod-test1", Ffmod_test1, Sfmod_test1, 0, 0, 0,
25 doc: "Return 1")
26 (void)
27{
28 return make_float (1.);
29}
30
31EXFUN (Ffmod_test2, 0);
32DEFUN ("fmod-test2", Ffmod_test2, Sfmod_test2, 0, 0, 0,
33 doc: "Return 2")
34 (void)
35{
36 return make_float (2.);
37}
38
39
40EXFUN (Ffmod_test3, 0);
41DEFUN ("fmod-test3", Ffmod_test3, Sfmod_test3, 0, 0, 0,
42 doc: "Return 3")
43 (void)
44{
45 return make_float (3.);
46}
47
48/* entry point of the module */
49
50void init ()
51{
52 DEFSYM (Qfmod, "fmod");
53
54 defsubr (&Sfmod);
55 defsubr (&Sfmod_test1);
56 defsubr (&Sfmod_test2);
57 defsubr (&Sfmod_test3);
58
59 Fprovide (Qfmod, Qnil);
60}