From e3f1d7121c94374a41d2ba4aacd3436485dfc8f7 Mon Sep 17 00:00:00 2001 From: Bryan Roe Date: Fri, 1 Feb 2019 01:12:32 -0800 Subject: [PATCH] Added process.cwd() --- microscript/ILibDuktape_ScriptContainer.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/microscript/ILibDuktape_ScriptContainer.c b/microscript/ILibDuktape_ScriptContainer.c index 9a81586..23d47fb 100644 --- a/microscript/ILibDuktape_ScriptContainer.c +++ b/microscript/ILibDuktape_ScriptContainer.c @@ -804,6 +804,20 @@ duk_ret_t ILibDuktape_ScriptContainer_Process_Kill(duk_context *ctx) #endif return(0); } +duk_ret_t ILibDuktape_Process_cwd(duk_context *ctx) +{ +#ifdef WIN32 + GetCurrentDirectoryA((DWORD)sizeof(ILibScratchPad), ILibScratchPad); + duk_push_string(ctx, ILibScratchPad); + return(1); +#elif defined(_POSIX) + getcwd(ILibScratchPad, sizeof(ILibScratchPad)); + duk_push_string(ctx, ILibScratchPad); + return(1); +#else + return(ILibDuktape_Error(ctx, "Error")); +#endif +} void ILibDuktape_ScriptContainer_Process_Init(duk_context *ctx, char **argList) { int i = 0; @@ -813,6 +827,8 @@ void ILibDuktape_ScriptContainer_Process_Init(duk_context *ctx, char **argList) duk_push_object(ctx); // [g][process] ILibDuktape_WriteID(ctx, "process"); ILibDuktape_CreateEventWithGetter(ctx, "env", ILibDuktape_ScriptContainer_Process_env); + ILibDuktape_CreateInstanceMethod(ctx, "cwd", ILibDuktape_Process_cwd, 0); + #if defined(WIN32) // [g][process][platform] duk_push_string(ctx, "win32");