Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.2:PowerPC
gjs
gjs-getpid_uid_gid.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gjs-getpid_uid_gid.patch of Package gjs
From 457a90fecc74c0a36da1b9252c9f9028932f42a0 Mon Sep 17 00:00:00 2001 From: Giovanni Campagna <gcampagna@src.gnome.org> Date: Tue, 7 Feb 2012 15:36:26 +0100 Subject: [PATCH] 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 file changed, 64 insertions(+) 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; } -- 1.7.10
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor