diff options
author | Aurélien Aptel <aurelien.aptel@gmail.com> | 2014-12-02 16:17:10 -0500 |
---|---|---|
committer | Ted Zlatanov <tzz@lifelogs.com> | 2014-12-04 19:54:16 -0500 |
commit | ae901ddbfff04e8b1b0d63c452a6ca3f4c81fb17 (patch) | |
tree | b806504944c633be45255321d1203bbcc2504781 /modules/elisp/elisp.c | |
parent | dd601050e7db69f322eea09d99751d8e6363b153 (diff) | |
download | emacs-dynamic-modules-rc2.tar.gz |
Add external modulesold-branches/dynamic-modules-rc2dynamic-modules-rc2
* 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/elisp/elisp.c')
-rw-r--r-- | modules/elisp/elisp.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/modules/elisp/elisp.c b/modules/elisp/elisp.c new file mode 100644 index 00000000000..aabb24e01c6 --- /dev/null +++ b/modules/elisp/elisp.c @@ -0,0 +1,38 @@ +#include <string.h> +#include <config.h> +#include <lisp.h> + +int plugin_is_GPL_compatible; + +static Lisp_Object Qelisp, Qreplace_regexp_in_string; + +#define MAKE_STRING(s) (make_string (s, sizeof(s)-1)) + +EXFUN (Felisp_test, 0); +DEFUN ("elisp-test", Felisp_test, Selisp_test, 0, 0, 0, + doc: "Eval some lisp.") + (void) +{ + Lisp_Object string = MAKE_STRING ("no-more-dash"); + Lisp_Object regex = MAKE_STRING ("[-]"); + Lisp_Object replace = MAKE_STRING (" "); + Lisp_Object res; + + struct gcpro gcpro1, gcpro2, gcpro3; + GCPRO3 (string, regex, replace); + res = call3 (Qreplace_regexp_in_string, regex, replace, string); + UNGCPRO; + + return res; +} + + +void init () +{ + DEFSYM (Qelisp, "elisp"); + DEFSYM (Qreplace_regexp_in_string, "replace-regexp-in-string"); + + defsubr (&Selisp_test); + + Fprovide (Qelisp, Qnil); +} |