From 6b2a219e2687de3eb77a888ca739151c461c2aa7 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Tue, 27 Feb 2018 13:51:10 -0500 Subject: [PATCH] Changes to make xlisp.h usable in C++ code... 1) #include guard 2) "C" linkage for all function declarations 3) some uses of const --- lib-src/libnyquist/nyquist/xlisp/xlftab.c | 2 +- lib-src/libnyquist/nyquist/xlisp/xlisp.h | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lib-src/libnyquist/nyquist/xlisp/xlftab.c b/lib-src/libnyquist/nyquist/xlisp/xlftab.c index 5e070c59e..4b40961b1 100644 --- a/lib-src/libnyquist/nyquist/xlisp/xlftab.c +++ b/lib-src/libnyquist/nyquist/xlisp/xlftab.c @@ -504,7 +504,7 @@ FUNDEF init_funtab[] = { FUNDEF *funtab = init_funtab; static size_t szfuntab = sizeof(init_funtab) / sizeof(*init_funtab); -int xlbindfunctions(FUNDEF *functions, size_t nfunctions) +int xlbindfunctions(const FUNDEF *functions, size_t nfunctions) { /* This is written very generally, imposing no fixed upper limit on the growth of the table. But perhaps a lightweight alternative with such a diff --git a/lib-src/libnyquist/nyquist/xlisp/xlisp.h b/lib-src/libnyquist/nyquist/xlisp/xlisp.h index 4c7b4e8c0..c92e5b398 100644 --- a/lib-src/libnyquist/nyquist/xlisp/xlisp.h +++ b/lib-src/libnyquist/nyquist/xlisp/xlisp.h @@ -13,6 +13,13 @@ HISTORY /* system specific definitions */ +#ifndef __XLISP__ +#define __XLISP__ + +#ifdef __cplusplus +extern "C" { +#endif + #include /* needed for getenv(); note that this was a problem for PMAX implementation, but I assume PMAX is obsolete now. - RBD 16apr04 */ @@ -366,7 +373,7 @@ void dbg_gc_xlsave(LVAL *n); /* function definition structure */ typedef struct { - char *fd_name; /* function name */ + const char *fd_name; /* function name */ int fd_type; /* function type */ LVAL (*fd_subr)(void); /* function entry point */ } FUNDEF; @@ -676,7 +683,7 @@ void xlsymbols(void); false if table limits would be exceeded and the table remains unchanged Call this, any number of times, before calling xlisp_main_init */ -int xlbindfunctions(FUNDEF *functions, size_t nfunctions); +int xlbindfunctions(const FUNDEF *functions, size_t nfunctions); /* xlio.c */ @@ -1032,3 +1039,8 @@ void localinit(void); void localsymbols(void); void print_local_gc_info(void); +#ifdef __cplusplus +} +#endif + +#endif