aboutsummaryrefslogtreecommitdiff
path: root/src/gemma_api.cpp
blob: 77c1d5654bf97ae2e21d33650fe9d408ea0a0d02 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Testing bindings, see README.md and
// https://www.gnu.org/savannah-checkouts/gnu/guile/docs/docs-2.0/guile-ref/Dynamic-Types.html

#include <stdio.h>
#include <libguile.h>
// #include <libguile/boolean.h>
// #include <libguile/numbers.h>

// extern SCM my_incrementing_function (SCM a, SCM flag);

// extern "C" SCM my_ping(SCM i);

static SCM my_ping(SCM i) {
    return i;
}


SCM my_incrementing_function (SCM a, SCM flag)
{
  SCM result;

  if (scm_is_true (flag))
    result = scm_sum (a, scm_from_int (1));
  else
    result = a;

  return result;
}


extern "C" void init_module() {
    scm_c_define_gsubr("my-ping", 1, 0, 0, (scm_t_subr)my_ping);
}