emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] feature/aptel/dynamic-modules-rc3 0526616 04/35: add sampl


From: Noah Friedman
Subject: [Emacs-diffs] feature/aptel/dynamic-modules-rc3 0526616 04/35: add sample module `fmod'.
Date: Mon, 8 May 2017 19:46:25 -0400 (EDT)

branch: feature/aptel/dynamic-modules-rc3
commit 0526616b92d7cd88fbfb27d1b0846be8358d1222
Author: Aurélien Aptel <address@hidden>
Commit: Aurélien Aptel <address@hidden>

    add sample module `fmod'.
---
 modules/Makefile | 11 +++++++++++
 modules/fmod.c   | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 64 insertions(+)

diff --git a/modules/Makefile b/modules/Makefile
new file mode 100644
index 0000000..09aab27
--- /dev/null
+++ b/modules/Makefile
@@ -0,0 +1,11 @@
+
+all: fmod.so fmod.doc
+
+%.so: %.o
+       gcc -shared -o $@ $<
+
+%.o: %.c
+       gcc -ggdb3 -Wall -I../src -I../lib -fPIC -c $<
+
+%.doc: %.c
+       ../lib-src/make-docfile $< > $@
diff --git a/modules/fmod.c b/modules/fmod.c
new file mode 100644
index 0000000..4f591b8
--- /dev/null
+++ b/modules/fmod.c
@@ -0,0 +1,53 @@
+#include <config.h>
+#include <lisp.h>
+
+#include <math.h>
+
+/* emacs checks for this symbol before running the module */
+
+int plugin_is_GPL_compatible;
+
+/* 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 ()
+{
+  defsubr (&Sfmod);
+  defsubr (&Sfmod_test1);
+  defsubr (&Sfmod_test2);
+  defsubr (&Sfmod_test3);
+}



reply via email to

[Prev in Thread] Current Thread [Next in Thread]