Radish alpha
H
HardenedBSD Package Manager
Radicle
Git (anonymous pull)
Log in to clone via SSH
Merge pull request #198 from bdrewery/197-pkg-set
Baptiste Daroussin committed 14 years ago
commit 5add56b60afb6cb918a261bd6219c1bf5b0f7565
parent f07818cae6e2b6b4814640baa5588ab1cf81c6e3
2 files changed +11 -16
modified libpkg/pkgdb.c
@@ -3021,17 +3021,7 @@ pkgdb_vset(struct pkgdb *db, int64_t id, va_list ap)
				break;
			case PKG_DEP_ORIGIN:
				oldorigin = va_arg(ap, char *);
-
				neworigin = strrchr(oldorigin, ':');
-
				if (neworigin == NULL) {
-
					pkg_emit_error("Wrong origin format expecting oldorigin:neworigin, got %s", oldorigin);
-
					return (EPKG_FATAL);
-
				}
-
				*neworigin = '\0';
-
				neworigin++;
-
				if (strrchr(oldorigin, '/') == NULL || strrchr(neworigin, '/') == NULL) {
-
					pkg_emit_error("Wrong origin format expecting oldorigin:neworigin");
-
					return (EPKG_FATAL);
-
				}
+
				neworigin = va_arg(ap, char *);
				sqlite3_snprintf(BUFSIZ, sql, "update deps set origin='%q', "
				    "name=(select name from packages where origin='%q'), "
				    "version=(select version from packages where origin='%q') "
modified pkg/set.c
@@ -142,7 +142,8 @@ exec_set(int argc, char **argv)
	}
	i = 0;
	do {
-
		pkg_config_bool(PKG_CONFIG_ASSUME_ALWAYS_YES, &yes);
+
		if (!yes)
+
			pkg_config_bool(PKG_CONFIG_ASSUME_ALWAYS_YES, &yes);

		if ((it = pkgdb_query(db, argv[i], match)) == NULL) {
			if (oldorigin != NULL)
@@ -171,10 +172,14 @@ exec_set(int argc, char **argv)
				pkg_get(pkg, PKG_NAME, &name, PKG_VERSION, &version);
				while (pkg_deps(pkg, &d) == EPKG_OK) {
					if (strcmp(pkg_dep_get(d, PKG_DEP_ORIGIN), oldorigin) == 0) {
-
						if (!yes)
-
							yes = query_yesno("%s-%s: change %s dependency to %s? [y/N]: ", name, version, oldorigin, neworigin);
-
						if (yes)
-
							pkgdb_set(db, pkg, PKG_DEP_ORIGIN, chgoriginstr);
+
						bool pkg_yes = yes;
+
						if (!pkg_yes)
+
							pkg_yes = query_yesno("%s-%s: change %s dependency to %s? [y/N]: ", name, version, oldorigin, neworigin);
+
						if (pkg_yes) {
+
							if (pkgdb_set(db, pkg, PKG_DEP_ORIGIN, oldorigin, neworigin) != EPKG_OK) {
+
								return (EPKG_FATAL);
+
							}
+
						}
					}
				}
			}