diff options
author | Ambroz Bizjak <ambrop7@gmail.com> | 2014-11-04 00:58:59 +0300 |
---|---|---|
committer | Ambroz Bizjak <ambrop7@gmail.com> | 2014-11-08 22:31:52 +0300 |
commit | 9fec63e437ccceca42b3af3891c93bf5dfa5d8b0 (patch) | |
tree | c9af9a8fd23340d1ebd1bec76a30ef93db8022a4 | |
parent | 646a72be606609ff59d6d46f6cf828878b0c1889 (diff) |
ncd: Add dummy functions for testing.
-rw-r--r-- | ncd/CMakeLists.txt | 1 | ||||
-rw-r--r-- | ncd/modules/basic_functions.c | 61 | ||||
-rw-r--r-- | ncd/modules/modules.h | 2 |
3 files changed, 64 insertions, 0 deletions
diff --git a/ncd/CMakeLists.txt b/ncd/CMakeLists.txt index d838261..8c147ce 100644 --- a/ncd/CMakeLists.txt +++ b/ncd/CMakeLists.txt @@ -146,6 +146,7 @@ set(NCDINTERPRETER_SOURCES modules/log.c modules/buffer.c modules/getenv.c + modules/basic_functions.c ${NCD_ADDITIONAL_SOURCES} ) set(NCDINTERPRETER_LIBS diff --git a/ncd/modules/basic_functions.c b/ncd/modules/basic_functions.c new file mode 100644 index 0000000..2f81a43 --- /dev/null +++ b/ncd/modules/basic_functions.c @@ -0,0 +1,61 @@ +/** + * @file basic_functions.c + * @author Ambroz Bizjak <ambrop7@gmail.com> + * + * @section LICENSE + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the author nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <stddef.h> + +#include <ncd/NCDModule.h> + +static int error_eval (NCDEvaluatorArgs args, NCDValMem *mem, NCDValRef *out, struct NCDModuleFunction_eval_params const *params) +{ + return 0; +} + +static int identity_eval (NCDEvaluatorArgs args, NCDValMem *mem, NCDValRef *out, struct NCDModuleFunction_eval_params const *params) +{ + if (NCDEvaluatorArgs_Count(&args) != 1) { + return 0; + } + return NCDEvaluatorArgs_EvalArg(&args, 0, mem, out); +} + +static struct NCDModuleFunction const functions[] = { + { + .func_name = "__error__", + .func_eval = error_eval + }, { + .func_name = "__identity__", + .func_eval = identity_eval + }, { + .func_name = NULL + } +}; + +const struct NCDModuleGroup ncdmodule_basic_functions = { + .functions = functions +}; diff --git a/ncd/modules/modules.h b/ncd/modules/modules.h index ea39027..1f25d71 100644 --- a/ncd/modules/modules.h +++ b/ncd/modules/modules.h @@ -80,6 +80,7 @@ extern const struct NCDModuleGroup ncdmodule_substr; extern const struct NCDModuleGroup ncdmodule_log; extern const struct NCDModuleGroup ncdmodule_buffer; extern const struct NCDModuleGroup ncdmodule_getenv; +extern const struct NCDModuleGroup ncdmodule_basic_functions; #ifndef BADVPN_EMSCRIPTEN extern const struct NCDModuleGroup ncdmodule_regex_match; extern const struct NCDModuleGroup ncdmodule_run; @@ -166,6 +167,7 @@ static const struct NCDModuleGroup *ncd_modules[] = { &ncdmodule_log, &ncdmodule_buffer, &ncdmodule_getenv, + &ncdmodule_basic_functions, #ifndef BADVPN_EMSCRIPTEN &ncdmodule_regex_match, &ncdmodule_run, |