[seed] Implementing the gjs/system exit method
- From: Alan Knowles <alank src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [seed] Implementing the gjs/system exit method
- Date: Fri, 15 Jan 2016 06:47:00 +0000 (UTC)
commit c2776a684222220fee4d85e5a64849dd7183e939
Author: Danilo Cesar Lemes de Paula <danilo cesar collabora co uk>
Date: Thu Jan 14 14:12:37 2016 -0200
Implementing the gjs/system exit method
modules/gjs/system/seed-system.c | 29 +++++++++++++++++------------
1 files changed, 17 insertions(+), 12 deletions(-)
---
diff --git a/modules/gjs/system/seed-system.c b/modules/gjs/system/seed-system.c
index b17aa79..8c4c985 100644
--- a/modules/gjs/system/seed-system.c
+++ b/modules/gjs/system/seed-system.c
@@ -26,6 +26,7 @@
#include <sys/types.h>
#include <unistd.h>
+#include <stdlib.h>
#include <time.h>
#include <glib.h>
@@ -119,18 +120,22 @@ gjs_exit (SeedContext ctx,
size_t argumentCount,
const SeedValue arguments[], SeedException * exception)
{
-/*static SeedValue
-gjs_exit(SeedContext context,
- unsigned argc,
- SeedValue *vp)
-{
- JS::CallArgs argv = JS::CallArgsFromVp (argc, vp);
- gint32 ecode;
- if (!gjs_parse_call_args(context, "exit", "i", argv, "ecode", &ecode))
- return FALSE;
- exit(ecode);
- return TRUE;*/
- return seed_value_from_boolean (ctx, TRUE, exception);
+ gint32 ret = EXIT_SUCCESS;
+ if (argumentCount > 1) {
+ NUMARG_EXPECTED_EXCEPTION("exit", "none or 1 argument");
+ }
+
+ if (argumentCount == 1) {
+ SeedValue target = arguments[0];
+ if (seed_value_is_number(ctx, target)) {
+ ret = seed_value_to_int(ctx, target, exception);
+ } else {
+ seed_make_exception (ctx, exception, "ArgumentError", "exit expects a number argument");
+ ret = EXIT_FAILURE;
+ }
+ }
+
+ exit(ret);
}
static SeedValue
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]