|
|
|
|
@ -188,68 +188,68 @@ void yon_storage_hash_table_clone(GHashTable *source_hash, GHashTable *target_ha
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_storage_edit_accept(storage_struct *target_struct, storage_struct *source_struct){
|
|
|
|
|
char *changes = config(STORAGE(target_struct->path));
|
|
|
|
|
if (!yon_char_is_empty(changes)){
|
|
|
|
|
int size;
|
|
|
|
|
config_str parsed = yon_char_parse(changes,&size,";");
|
|
|
|
|
if (size>0&&!yon_char_is_empty(parsed[0])){
|
|
|
|
|
int removed_size;
|
|
|
|
|
config_str removed = yon_char_parse(parsed[0],&removed_size,",");
|
|
|
|
|
for (int i=0;i<removed_size;i++){
|
|
|
|
|
repo_struct *repo = g_hash_table_lookup(target_struct->repos,removed[i]);
|
|
|
|
|
g_hash_table_remove(target_struct->repos,removed[i]);
|
|
|
|
|
yon_repo_sturct_free_full(repo);
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(removed,removed_size);
|
|
|
|
|
}
|
|
|
|
|
if (size>1&&!yon_char_is_empty(parsed[1])){
|
|
|
|
|
int added_size;
|
|
|
|
|
config_str added = yon_char_parse(parsed[1],&added_size,",");
|
|
|
|
|
for (int i=0;i<added_size;i++){
|
|
|
|
|
repo_struct *repo = g_hash_table_lookup(source_struct->repos,added[i]);
|
|
|
|
|
if (repo){
|
|
|
|
|
repo_struct *copy = yon_repo_copy_full(repo);
|
|
|
|
|
g_hash_table_insert(target_struct->repos,copy->path,copy);
|
|
|
|
|
}
|
|
|
|
|
char *command = create_storage_command(repo->storage_path,repo->name);
|
|
|
|
|
yon_launch(yon_debug_output("%s\n",command));
|
|
|
|
|
free(command);
|
|
|
|
|
// void yon_storage_edit_accept(storage_struct *target_struct, storage_struct *source_struct){
|
|
|
|
|
// char *changes = config(STORAGE(target_struct->path));
|
|
|
|
|
// if (!yon_char_is_empty(changes)){
|
|
|
|
|
// int size;
|
|
|
|
|
// config_str parsed = yon_char_parse(changes,&size,";");
|
|
|
|
|
// if (size>0&&!yon_char_is_empty(parsed[0])){
|
|
|
|
|
// int removed_size;
|
|
|
|
|
// config_str removed = yon_char_parse(parsed[0],&removed_size,",");
|
|
|
|
|
// for (int i=0;i<removed_size;i++){
|
|
|
|
|
// repo_struct *repo = g_hash_table_lookup(target_struct->repos,removed[i]);
|
|
|
|
|
// g_hash_table_remove(target_struct->repos,removed[i]);
|
|
|
|
|
// yon_repo_sturct_free_full(repo);
|
|
|
|
|
// }
|
|
|
|
|
// yon_char_parsed_free(removed,removed_size);
|
|
|
|
|
// }
|
|
|
|
|
// if (size>1&&!yon_char_is_empty(parsed[1])){
|
|
|
|
|
// int added_size;
|
|
|
|
|
// config_str added = yon_char_parse(parsed[1],&added_size,",");
|
|
|
|
|
// for (int i=0;i<added_size;i++){
|
|
|
|
|
// repo_struct *repo = g_hash_table_lookup(source_struct->repos,added[i]);
|
|
|
|
|
// if (repo){
|
|
|
|
|
// repo_struct *copy = yon_repo_copy_full(repo);
|
|
|
|
|
// g_hash_table_insert(target_struct->repos,copy->path,copy);
|
|
|
|
|
// }
|
|
|
|
|
// char *command = create_storage_command(repo->storage_path,repo->name);
|
|
|
|
|
// yon_launch(yon_debug_output("%s\n",command));
|
|
|
|
|
// free(command);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
yon_char_parsed_free(added,added_size);
|
|
|
|
|
}
|
|
|
|
|
if (size>2&&!yon_char_is_empty(parsed[2])){
|
|
|
|
|
int sign_size;
|
|
|
|
|
config_str sign = yon_char_parse(parsed[2],&sign_size, ",");
|
|
|
|
|
for (int i=0;i<sign_size;i++){
|
|
|
|
|
char *sign_key = yon_char_new(sign[i]);
|
|
|
|
|
char *key = yon_char_divide_search(sign_key,":",-1);
|
|
|
|
|
repo_struct *repo = g_hash_table_lookup(target_struct->repos,key);
|
|
|
|
|
char *command = repo_sign_command(repo->storage_path,repo->name,sign_key);
|
|
|
|
|
yon_launch(yon_debug_output("%s\n",command));
|
|
|
|
|
free(command);
|
|
|
|
|
free(sign_key);
|
|
|
|
|
free(key);
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(sign,sign_size);
|
|
|
|
|
}
|
|
|
|
|
// yon_char_parsed_free(added,added_size);
|
|
|
|
|
// }
|
|
|
|
|
// if (size>2&&!yon_char_is_empty(parsed[2])){
|
|
|
|
|
// int sign_size;
|
|
|
|
|
// config_str sign = yon_char_parse(parsed[2],&sign_size, ",");
|
|
|
|
|
// for (int i=0;i<sign_size;i++){
|
|
|
|
|
// char *sign_key = yon_char_new(sign[i]);
|
|
|
|
|
// char *key = yon_char_divide_search(sign_key,":",-1);
|
|
|
|
|
// repo_struct *repo = g_hash_table_lookup(target_struct->repos,key);
|
|
|
|
|
// char *command = repo_sign_command(repo->storage_path,repo->name,sign_key);
|
|
|
|
|
// yon_launch(yon_debug_output("%s\n",command));
|
|
|
|
|
// free(command);
|
|
|
|
|
// free(sign_key);
|
|
|
|
|
// free(key);
|
|
|
|
|
// }
|
|
|
|
|
// yon_char_parsed_free(sign,sign_size);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
GList *list = g_hash_table_get_values(source_struct->repos);
|
|
|
|
|
GList *iter;
|
|
|
|
|
char *parameter=NULL;
|
|
|
|
|
yon_window_config_get_parameter("storage_info",source_struct->path,¶meter,YON_TYPE_STRING);
|
|
|
|
|
for (iter=list;iter;iter=iter->next){
|
|
|
|
|
repo_struct *repo = (repo_struct*)iter->data;
|
|
|
|
|
char *temp = yon_char_append_element(parameter,repo->path,",");
|
|
|
|
|
if (!yon_char_is_empty(parameter)) free(parameter);
|
|
|
|
|
parameter = temp;
|
|
|
|
|
}
|
|
|
|
|
g_list_free(list);
|
|
|
|
|
yon_window_config_add_instant_parameter(source_struct->path,"storage_info",parameter,YON_TYPE_STRING);
|
|
|
|
|
}
|
|
|
|
|
// }
|
|
|
|
|
// GList *list = g_hash_table_get_values(source_struct->repos);
|
|
|
|
|
// GList *iter;
|
|
|
|
|
// char *parameter=NULL;
|
|
|
|
|
// yon_window_config_get_parameter("storage_info",source_struct->path,¶meter,YON_TYPE_STRING);
|
|
|
|
|
// for (iter=list;iter;iter=iter->next){
|
|
|
|
|
// repo_struct *repo = (repo_struct*)iter->data;
|
|
|
|
|
// char *temp = yon_char_append_element(parameter,repo->path,",");
|
|
|
|
|
// if (!yon_char_is_empty(parameter)) free(parameter);
|
|
|
|
|
// parameter = temp;
|
|
|
|
|
// }
|
|
|
|
|
// g_list_free(list);
|
|
|
|
|
// yon_window_config_add_instant_parameter(source_struct->path,"storage_info",parameter,YON_TYPE_STRING);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
void yon_storage_struct_add_repo(storage_struct *storage,repo_struct *repo){
|
|
|
|
|
char *str = config(STORAGE(storage->path));
|
|
|
|
|
|