Merge pull request 'Added update list at package checking' (#45) from YanTheKaller/libublsettings-gtk3:master into master

Reviewed-on: #45
master v1.43
Dmitry Razumov 5 months ago
commit 255abe31f3

@ -30,7 +30,6 @@ endif()
# -O2 -pipe -fno-plt -fexceptions \
# -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
# -fstack-clash-protection -fcf-protection")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g")
add_library(${PROJECT_NAME} SHARED
${PROJECT_NAME}-calendar.c
${PROJECT_NAME}-menu.c

@ -44,17 +44,21 @@
struct packages {
GHashTable *all_list;
GHashTable *installed_list;
GHashTable *updates_list;
} packages_struct;
int yon_packages_init(){
if (getuid()) return 0;
packages_struct.all_list = g_hash_table_new_full(g_str_hash,g_str_equal,free,NULL);
packages_struct.installed_list = g_hash_table_new_full(g_str_hash,g_str_equal,free,NULL);
packages_struct.updates_list = g_hash_table_new_full(g_str_hash,g_str_equal,free,NULL);
int size;
int installed_size;
int updates_size;
config_str package_list = yon_config_load("pacman -Slq",&size);
config_str installed = yon_config_load("pacman -Qq",&installed_size);
config_str updates = yon_config_load("pacman -Qqu",&updates_size);
for (int i=0;i<size;i++){
yon_char_remove_last_symbol(package_list[i],'\n');
@ -65,8 +69,14 @@ int yon_packages_init(){
yon_char_remove_last_symbol(package_list[i],'\n');
g_hash_table_add(packages_struct.installed_list,installed[i]);
}
for (int i=0;i<updates_size;i++){
yon_char_remove_last_symbol(package_list[i],'\n');
g_hash_table_add(packages_struct.installed_list,updates[i]);
}
free(package_list);
free(installed);
free(updates);
if (g_hash_table_size(packages_struct.all_list)&&g_hash_table_size(packages_struct.installed_list))
return 1;
@ -82,6 +92,10 @@ int yon_packages_check_installed(char *package){
return g_hash_table_contains(packages_struct.installed_list,package);
}
int yon_packages_check_updates(char *package){
return g_hash_table_contains(packages_struct.updates_list,package);
}
void yon_packages_finish(){
g_hash_table_unref(packages_struct.all_list);
g_hash_table_unref(packages_struct.installed_list);

@ -567,4 +567,5 @@ void yon_gtk_window_set_shrinking_from_revealer_resizing(GtkWindow *window, GtkR
int yon_packages_init();
int yon_packages_check_exist(char *package);
int yon_packages_check_installed(char *package);
int yon_packages_check_updates(char *package);
void yon_packages_finish();
Loading…
Cancel
Save