From 67850e2aff92afbc4ae7c81402f1252ea2ba7ca5 Mon Sep 17 00:00:00 2001 From: svenhoefer Date: Tue, 3 May 2016 11:44:27 +0200 Subject: [PATCH] - plugin_file.c: add fileexist function --- plugin_file.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/plugin_file.c b/plugin_file.c index 8d6e548..b94bc7d 100644 --- a/plugin_file.c +++ b/plugin_file.c @@ -38,6 +38,7 @@ #include #include +#include /* these should always be included */ #include "debug.h" @@ -86,6 +87,24 @@ static void my_readline(RESULT * result, RESULT * arg1, RESULT * arg2) SetResult(&result, R_STRING, &value); } +/* function 'exist' */ +/* takes one argument, file name */ +/* returns 1 if found, 0 if not */ + +static void my_exist(RESULT * result, RESULT * arg1) +{ + char *value; + value = strdup("0"); + + /* int access() return 0 if permitted, -1 otherwise */ + if ( access(R2S(arg1), F_OK) == 0 ) { + value = strdup("1"); + } + + /* store result */ + SetResult(&result, R_STRING, value); +} + /* plugin initialization */ /* MUST NOT be declared 'static'! */ int plugin_init_file(void) @@ -95,6 +114,7 @@ int plugin_init_file(void) /* the second parameter is the number of arguments */ /* -1 stands for variable argument list */ AddFunction("file::readline", 2, my_readline); + AddFunction("file::exist", 1, my_exist); return 0; } -- 2.39.5