summaryrefslogtreecommitdiff
path: root/modules/fmod/fmod.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/fmod/fmod.c')
-rw-r--r--modules/fmod/fmod.c60
1 files changed, 60 insertions, 0 deletions
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 @@
+#include <config.h>
+#include <lisp.h>
+
+#include <math.h>
+
+/* emacs checks for this symbol before running the module */
+
+int plugin_is_GPL_compatible;
+
+/* module feature name */
+static Lisp_Object Qfmod;
+
+/* define a new lisp function */
+
+EXFUN (Ffmod, 2);
+DEFUN ("fmod", Ffmod, Sfmod, 2, 2, 0,
+ doc: "Returns the floating-point remainder of NUMER/DENOM")
+ (Lisp_Object numer, Lisp_Object denom)
+{
+ return make_float (fmod (extract_float (numer), extract_float (denom)));
+}
+
+EXFUN (Ffmod_test1, 0);
+DEFUN ("fmod-test1", Ffmod_test1, Sfmod_test1, 0, 0, 0,
+ doc: "Return 1")
+ (void)
+{
+ return make_float (1.);
+}
+
+EXFUN (Ffmod_test2, 0);
+DEFUN ("fmod-test2", Ffmod_test2, Sfmod_test2, 0, 0, 0,
+ doc: "Return 2")
+ (void)
+{
+ return make_float (2.);
+}
+
+
+EXFUN (Ffmod_test3, 0);
+DEFUN ("fmod-test3", Ffmod_test3, Sfmod_test3, 0, 0, 0,
+ doc: "Return 3")
+ (void)
+{
+ return make_float (3.);
+}
+
+/* entry point of the module */
+
+void init ()
+{
+ DEFSYM (Qfmod, "fmod");
+
+ defsubr (&Sfmod);
+ defsubr (&Sfmod_test1);
+ defsubr (&Sfmod_test2);
+ defsubr (&Sfmod_test3);
+
+ Fprovide (Qfmod, Qnil);
+}