struct stat buf;
struct razor_set *set;
struct razor_atomic *atomic;
- char *path;
+ char *file, *path;
assert (root != NULL);
return -1;
}
- path = razor_concat(root, razor_root_path, "/", system_repo_filename,
- NULL);
+ file = razor_concat(razor_root_path, "/", system_repo_filename, NULL);
+ path = razor_concat(root, file, NULL);
retval = !stat(path, &buf);
- free(path);
if (retval) {
fprintf(stderr,
"a razor install root is already initialized\n");
+ free(path);
+ free(file);
return retval;
}
atomic = razor_atomic_open("Create initial package set");
- path = razor_concat(razor_root_path, "/", system_repo_filename, NULL);
- razor_atomic_make_dirs(atomic, root, path);
+ razor_atomic_make_dirs(atomic, root, file);
set = razor_set_create();
razor_set_write(set, atomic, path, RAZOR_SECTION_ALL);
free(path);
+ free(file);
retval = razor_atomic_commit(atomic);
if (retval)
fprintf(stderr, "could not write initial package set\n");
{
char buffer[size];
- memcpy(buffer, p1, size);
- memcpy(p1, p2, size);
- memcpy(p2, buffer, size);
+ if (p1 != p2) {
+ memcpy(buffer, p1, size);
+ memcpy(p1, p2, size);
+ memcpy(p2, buffer, size);
+ }
}
static void
void environment_set(struct environment *env)
{
int i, count;
- char *s;
+ char *s, *t;
uint32_t *r;
if (!env->is_set) {
r = (uint32_t *)env->vars.data;
for (i = 0; i < count; i++) {
s = env->string_pool.data + *r++;
+#ifdef WIN32
putenv(s);
+#else
+ t = strchr(s, '=');
+ *t = '\0';
+ setenv(s, t + 1, 1);
+ *t = '=';
+#endif
}
env->is_set = 1;
r = (uint32_t *)env->vars.data;
for (i = 0; i < count; i++) {
s = env->string_pool.data + *r++;
- t = strchr(s, '=') + 1;
+ t = strchr(s, '=');
+#ifdef WIN32
+ t++;
c = *t;
*t = '\0';
putenv(s);
*t = c;
+#else
+ c = *t;
+ *t = '\0';
+ unsetenv(s);
+ *t = c;
+#endif
}
env->is_set = 0;
end_test(struct test_context *ctx)
{
if (ctx->system_set) {
- razor_set_destroy(ctx->system_set);
+ razor_set_unref(ctx->system_set);
ctx->system_set = NULL;
}
if (ctx->repo_set) {
- razor_set_destroy(ctx->repo_set);
+ razor_set_unref(ctx->repo_set);
ctx->repo_set = NULL;
}
if (ctx->result_set) {
- razor_set_destroy(ctx->result_set);
+ razor_set_unref(ctx->result_set);
ctx->result_set = NULL;
}
if (ctx->trans) {