Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Dependency version can now also be seen as an integer
Baptiste Daroussin committed 12 years ago
commit 027d0981a57ff55a95960c783df3ec29a0ee735e
parent 73bc688
1 file changed +11 -2
modified libpkg/pkg_manifest.c
@@ -564,10 +564,19 @@ pkg_set_deps_from_object(struct pkg *pkg, ucl_object_t *obj)
	ucl_object_t *sub, *tmp;
	const char *origin = NULL;
	const char *version = NULL;
+
	int64_t vint = 0;
+
	char vinteger[BUFSIZ];

	pkg_debug(2, "Found %s", obj->key);
	HASH_ITER(hh, obj->value.ov, sub, tmp) {
		if (sub->type != UCL_STRING) {
+
			/* accept version to be an integer */
+
			if (sub->type == UCL_INT && strcasecmp(sub->key, "version") == 0) {
+
				vint = sub->value.iv;
+
				snprintf(vinteger, sizeof(vinteger), "%"PRId64, vint);
+
				continue;
+
			}
+

			pkg_emit_error("Skipping malformed dependency entry "
			    "for %s", obj->key);
			continue;
@@ -577,8 +586,8 @@ pkg_set_deps_from_object(struct pkg *pkg, ucl_object_t *obj)
		if (strcasecmp(sub->key, "version") == 0)
			version = sub->value.sv;
	}
-
	if (origin != NULL && version != NULL)
-
		pkg_adddep(pkg, obj->key, origin, version, false);
+
	if (origin != NULL && (version != NULL || vint > 0))
+
		pkg_adddep(pkg, obj->key, origin, vint > 0 ? vinteger : version, false);
	else
		pkg_emit_error("Skipping malformed dependency %s", obj->key);