summaryrefslogtreecommitdiffstats
path: root/execute.c
diff options
context:
space:
mode:
authorNicolas Williams <nico@cryptonector.com>2014-08-10 16:52:03 -0500
committerNicolas Williams <nico@cryptonector.com>2014-08-14 03:26:26 -0500
commit1ba8c2cfa649300becae21876d3613362c219a37 (patch)
tree30ebb15e1bdd56927c09f9d74b573b019a260994 /execute.c
parentd654724fefab7a24ffa8e718f56028cff32971b9 (diff)
Add `module` directive, `modulemeta` builtin
Fix #425.
Diffstat (limited to 'execute.c')
-rw-r--r--execute.c38
1 files changed, 17 insertions, 21 deletions
diff --git a/execute.c b/execute.c
index 53b67c18..97b33d3d 100644
--- a/execute.c
+++ b/execute.c
@@ -984,38 +984,34 @@ int jq_compile(jq_state *jq, const char* str) {
return jq_compile_args(jq, str, jv_array());
}
-void jq_set_lib_origin(jq_state *jq, jv origin) {
- assert(jq);
- assert(jv_get_kind(origin) == JV_KIND_STRING);
- jq_set_attr(jq, jv_string("ORIGIN"), origin);
-}
jv jq_get_lib_origin(jq_state *jq) {
- assert(jq);
- return jq_get_attr(jq, jv_string("ORIGIN"));
+ return jq_get_attr(jq, jv_string("ORIGIN"));
}
-void jq_set_lib_dirs(jq_state *jq, jv dirs) {
- assert(jq);
- assert(jv_get_kind(dirs) == JV_KIND_ARRAY);
- jq_set_attr(jq, jv_string("LIB_DIRS"), dirs);
-}
jv jq_get_lib_dirs(jq_state *jq) {
- assert(jq);
- return jq_get_attr(jq, jv_string("LIB_DIRS"));
+ return jq_get_attr(jq, jv_string("LIB_DIRS"));
+}
+
+jv jq_get_version_dir(jq_state *jq) {
+ jv d = jq_get_attr(jq, jv_string("VERSION_DIR"));
+ assert(jv_is_valid(d));
+ return d;
+}
+
+void jq_set_attrs(jq_state *jq, jv attrs) {
+ assert(jv_get_kind(attrs) == JV_KIND_OBJECT);
+ jv_free(jq->attrs);
+ jq->attrs = attrs;
}
void jq_set_attr(jq_state *jq, jv attr, jv val) {
- assert(jq);
- assert(jv_get_kind(attr) == JV_KIND_STRING);
- assert(jv_is_valid(val));
- jq->attrs = jv_object_set(jq->attrs, attr, val);
+ jq->attrs = jv_object_set(jq->attrs, attr, val);
}
jv jq_get_attr(jq_state *jq, jv attr) {
- assert(jq);
- assert(jv_get_kind(attr) == JV_KIND_STRING);
- return jv_object_get(jv_copy(jq->attrs), attr);
+ return jv_object_get(jv_copy(jq->attrs), attr);
}
+
void jq_dump_disassembly(jq_state *jq, int indent) {
dump_disassembly(indent, jq->bc);
}