[gjs] system: add getpid(), getuid(), getgid()
- From: Giovanni Campagna <gcampagna src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gjs] system: add getpid(), getuid(), getgid()
- Date: Sun, 29 Apr 2012 19:02:35 +0000 (UTC)
commit 457a90fecc74c0a36da1b9252c9f9028932f42a0
Author: Giovanni Campagna <gcampagna src gnome org>
Date: Tue Feb 7 15:36:26 2012 +0100
system: add getpid(), getuid(), getgid()
These functions are useful sometimes (for example when building
a PolkitSubject), and have no equivalent in GLib, therefore it's
appropriate to place them in the system module.
https://bugzilla.gnome.org/show_bug.cgi?id=646187
modules/system.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 64 insertions(+), 0 deletions(-)
---
diff --git a/modules/system.c b/modules/system.c
index ea8a9a8..c7c5b5c 100644
--- a/modules/system.c
+++ b/modules/system.c
@@ -24,6 +24,9 @@
#include <config.h>
+#include <sys/types.h>
+#include <unistd.h>
+
#include <gjs/gjs-module.h>
#include <jsapi.h>
@@ -75,6 +78,49 @@ gjs_gc(JSContext *context,
JS_GC(context);
return JS_TRUE;
}
+
+static JSBool
+gjs_getpid(JSContext *context,
+ uintN argc,
+ jsval *vp)
+{
+ jsval *argv = JS_ARGV(cx, vp);
+ jsval rval;
+ if (!gjs_parse_args(context, "getpid", "", argc, argv))
+ return JS_FALSE;
+ rval = INT_TO_JSVAL(getpid());
+ JS_SET_RVAL(context, vp, rval);
+ return JS_TRUE;
+}
+
+static JSBool
+gjs_getuid(JSContext *context,
+ uintN argc,
+ jsval *vp)
+{
+ jsval *argv = JS_ARGV(cx, vp);
+ jsval rval;
+ if (!gjs_parse_args(context, "getuid", "", argc, argv))
+ return JS_FALSE;
+ rval = INT_TO_JSVAL(getuid());
+ JS_SET_RVAL(context, vp, rval);
+ return JS_TRUE;
+}
+
+static JSBool
+gjs_getgid(JSContext *context,
+ uintN argc,
+ jsval *vp)
+{
+ jsval *argv = JS_ARGV(cx, vp);
+ jsval rval;
+ if (!gjs_parse_args(context, "getgid", "", argc, argv))
+ return JS_FALSE;
+ rval = INT_TO_JSVAL(getgid());
+ JS_SET_RVAL(context, vp, rval);
+ return JS_TRUE;
+}
+
JSBool
gjs_js_define_system_stuff(JSContext *context,
JSObject *module)
@@ -97,6 +143,24 @@ gjs_js_define_system_stuff(JSContext *context,
0, GJS_MODULE_PROP_FLAGS))
return JS_FALSE;
+ if (!JS_DefineFunction(context, module,
+ "getpid",
+ (JSNative) gjs_getpid,
+ 0, GJS_MODULE_PROP_FLAGS))
+ return FALSE;
+
+ if (!JS_DefineFunction(context, module,
+ "getuid",
+ (JSNative) gjs_getuid,
+ 0, GJS_MODULE_PROP_FLAGS))
+ return FALSE;
+
+ if (!JS_DefineFunction(context, module,
+ "getgid",
+ (JSNative) gjs_getgid,
+ 0, GJS_MODULE_PROP_FLAGS))
+ return FALSE;
+
return JS_TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]