|
|
|
|
@ -1045,7 +1045,7 @@ gboolean yon_proprietary_set(main_window *widgets){
|
|
|
|
|
gboolean yon_proprietary_append(struct proprietary_struct *target){
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
gtk_list_store_append(main_config.list,&iter);
|
|
|
|
|
gtk_list_store_set(main_config.list,&iter,0,target->module_status,1,target->package_status,2,target->drivers[0],3,target->drivers[3],4,_(target->drivers[4]),5,_(target->drivers[5]),7,target->drivers[1],8,target->drivers[2],9,!yon_char_is_empty(target->drivers[1])&&!system(yon_get_is_exist_command(target->drivers[1])),10,!yon_char_is_empty(target->drivers[2])&&!system(yon_get_is_exist_command(target->drivers[2])),-1);
|
|
|
|
|
gtk_list_store_set(main_config.list,&iter,0,target->module_status,1,target->package_status,2,target->drivers[0],3,target->drivers[3],4,_(target->drivers[4]),5,_(target->drivers[5]),7,target->drivers[1],8,target->drivers[2],9,!yon_char_is_empty(target->drivers[1])&&target->module_exist,10,!yon_char_is_empty(target->drivers[2])&&target->package_exist,-1);
|
|
|
|
|
free(target);
|
|
|
|
|
return G_SOURCE_REMOVE;
|
|
|
|
|
}
|
|
|
|
|
@ -1091,31 +1091,48 @@ void *yon_proprietary_local_get(main_window *widgets){
|
|
|
|
|
config_str rtn=NULL;
|
|
|
|
|
rtn = yon_resource_open_file(get_proprietary_drivers_info_path,&size);
|
|
|
|
|
for (int i=1;i<size;i++){
|
|
|
|
|
if (rtn[i][strlen(rtn[i])-1]=='\n') rtn[i][strlen(rtn[i])-1] = '\0';
|
|
|
|
|
yon_char_remove_last_symbol(rtn[i],'\n');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int packages_size;
|
|
|
|
|
config_str packages = yon_config_load(yon_get_all_pacman_packages_command,&packages_size);
|
|
|
|
|
GHashTable *table = g_hash_table_new(g_str_hash,g_str_equal);
|
|
|
|
|
if (packages_size){
|
|
|
|
|
for (int i=0;i<packages_size;i++){
|
|
|
|
|
yon_char_remove_last_symbol(packages[i],'\n');
|
|
|
|
|
g_hash_table_add(table,packages[i]);
|
|
|
|
|
printf("%s\n",packages[i]);
|
|
|
|
|
}
|
|
|
|
|
// yon_char_parsed_free(packages,packages_size);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
g_idle_add((GSourceFunc)yon_proprietary_disconnect,widgets);
|
|
|
|
|
for (int dr_desc=1;dr_desc<size;dr_desc++){
|
|
|
|
|
yon_debug_output("%s\n","Driver add");
|
|
|
|
|
int current_size;
|
|
|
|
|
config_str current = yon_char_parse(rtn[dr_desc],¤t_size,";");
|
|
|
|
|
if ((!strcmp(current[0],"")||yon_char_parsed_check_exist(kernels_installed,kernels_size,current[0])>-1)){
|
|
|
|
|
if ((!yon_char_is_empty(current[1])&&!system(yon_get_is_exist_command(yon_debug_output("%s\n\n\n",current[1]))))||(!yon_char_is_empty(current[2])&&!system(yon_get_is_exist_command(yon_debug_output("%s\n\n\n",current[2]))))){
|
|
|
|
|
int module_status = !yon_char_is_empty(current[1])?!system(yon_get_is_installed_command(current[1])):0;
|
|
|
|
|
int package_status = !yon_char_is_empty(current[2])?!system(yon_get_is_installed_command(current[2])):0;
|
|
|
|
|
if ((!strcmp(current[0],"")||
|
|
|
|
|
yon_char_parsed_check_exist(kernels_installed,kernels_size,current[0])>-1)){
|
|
|
|
|
if ((!yon_char_is_empty(current[1])&&
|
|
|
|
|
g_hash_table_contains(table,current[1]))||
|
|
|
|
|
(!yon_char_is_empty(current[2])&&
|
|
|
|
|
g_hash_table_contains(table,current[2]))){
|
|
|
|
|
int module_status = !yon_char_is_empty(current[1])?yon_char_parsed_check_exist(kernels_installed,kernels_size,current[1])>-1:0;
|
|
|
|
|
int package_status = !yon_char_is_empty(current[2])?yon_char_parsed_check_exist(kernels_installed,kernels_size,current[2])>-1:0;
|
|
|
|
|
struct proprietary_struct *cur = malloc(sizeof(struct proprietary_struct));
|
|
|
|
|
cur->drivers=current;
|
|
|
|
|
cur->drivers_size=current_size;
|
|
|
|
|
cur->module_status=module_status;
|
|
|
|
|
cur->package_status=package_status;
|
|
|
|
|
cur->module_exist=g_hash_table_contains(table,current[1]);
|
|
|
|
|
cur->package_exist=g_hash_table_contains(table,current[2]);
|
|
|
|
|
g_idle_add((GSourceFunc)yon_proprietary_append,cur);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
yon_debug_output("%s\n","Driver end");
|
|
|
|
|
if (dr_desc==size-1) {
|
|
|
|
|
g_idle_add((GSourceFunc)yon_proprietary_connect,widgets);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
g_hash_table_unref(table);
|
|
|
|
|
if (!size){
|
|
|
|
|
g_idle_add((GSourceFunc)yon_proprietary_connect,widgets);
|
|
|
|
|
}
|
|
|
|
|
|