aboutsummaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2015-05-16 23:11:25 +0300
committerArnold D. Robbins <arnold@skeeve.com>2015-05-16 23:11:25 +0300
commitfafd1f2d5f58fdd51117d3f3f80f72b433edb053 (patch)
treee69e90129f371480b857d1f26bc529a8c1c5c775 /main.c
parentfb71d5fd4f483fa0a054307949324267918deb3d (diff)
parentb6963495dffd0bc11e2007b9854ad34d14b0b29c (diff)
downloadegawk-fafd1f2d5f58fdd51117d3f3f80f72b433edb053.tar.gz
egawk-fafd1f2d5f58fdd51117d3f3f80f72b433edb053.tar.bz2
egawk-fafd1f2d5f58fdd51117d3f3f80f72b433edb053.zip
Merge branch 'master' into feature/cmake
Diffstat (limited to 'main.c')
-rw-r--r--main.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/main.c b/main.c
index ef4f8550..b17ab309 100644
--- a/main.c
+++ b/main.c
@@ -892,6 +892,33 @@ load_environ()
return ENVIRON_node;
}
+static void
+load_procinfo_argv()
+{
+ NODE *tmp;
+ NODE **aptr;
+ NODE *argv_array;
+ int i;
+
+ tmp = make_string("argv", 4);
+ aptr = assoc_lookup(PROCINFO_node, tmp);
+ unref(tmp);
+ unref(*aptr);
+ getnode(argv_array);
+ memset(argv_array, '\0', sizeof(NODE)); /* valgrind wants this */
+ null_array(argv_array);
+ *aptr = argv_array;
+ argv_array->parent_array = PROCINFO_node;
+ argv_array->vname = estrdup("argv", 4);
+ for (i = 0; d_argv[i] != NULL; i++) {
+ tmp = make_number(i);
+ aptr = assoc_lookup(argv_array, tmp);
+ unref(tmp);
+ unref(*aptr);
+ *aptr = make_string(d_argv[i], strlen(d_argv[i]));
+ }
+}
+
/* load_procinfo --- populate the PROCINFO array */
static NODE *
@@ -991,6 +1018,7 @@ load_procinfo()
groupset = NULL;
}
#endif
+ load_procinfo_argv();
return PROCINFO_node;
}