From fc236083832974be542bb85ad2abee3dff293847 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 2 Sep 2024 11:19:11 +0600 Subject: [PATCH] Test fix for free size field --- source/ubinstall-gtk.c | 57 +++++++++++++++++++++++++++++++++++------- 1 file changed, 48 insertions(+), 9 deletions(-) diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index 48a46cf..8625e99 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -2078,14 +2078,33 @@ void on_separate_installation_changed(GtkWidget *self, main_window *widgets){ json_object_object_get_ex(device, "fstype", &fstype); json_object_object_get_ex(device, "fsused", &fsused); - float free_space=0; + double free_space=0; char *free_space_string=""; if (size&&fsused){ - free_space = atof(json_object_get_string(size))-atof(json_object_get_string(fsused)); - free_space_string = yon_char_append(yon_char_from_float(free_space)," "); - free_space_string[strlen(free_space_string)-1]=json_object_get_string(size)[strlen(json_object_get_string(size))-1]; + char *fsused_str = (char*)json_object_get_string(fsused); + double fsused_kbytes = atof(fsused_str); + for (int i=0;i1024;sz=sz+1){ + free_space=free_space/1024; + } + if (sz==-1) { + sz=0; + free_space=free_space/1024; + } + free_space_string = yon_char_append(yon_char_from_double(free_space)," "); + free_space_string[strlen(free_space_string)-1]=*(yon_size_get_mod(sz)); } - // gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin),0.0); gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin)),0.0); gtk_list_store_append(widgets->PartitionsList,&iter); gtk_list_store_set(widgets->PartitionsList,&iter,0,json_object_get_string(path),1,json_object_get_string(size),2,free_space_string,3,json_object_get_string(fstype),-1); @@ -2125,12 +2144,32 @@ void on_near_installation_device_changed(GtkWidget *self, main_window *widgets){ json_object_object_get_ex(device, "fstype", &fstype); json_object_object_get_ex(device, "fsused", &fsused); - float free_space=0; + double free_space=0; char *free_space_string=""; if (size&&fsused){ - free_space = atof(json_object_get_string(size))-atof(json_object_get_string(fsused)); - free_space_string = yon_char_append(yon_char_from_float(free_space)," "); - free_space_string[strlen(free_space_string)-1]=json_object_get_string(size)[strlen(json_object_get_string(size))-1]; + char *fsused_str = (char*)json_object_get_string(fsused); + double fsused_kbytes = atof(fsused_str); + for (int i=0;i1024;sz=sz+1){ + free_space=free_space/1024; + } + if (sz==-1) { + sz=0; + free_space=free_space/1024; + } + free_space_string = yon_char_append(yon_char_from_double(free_space)," "); + free_space_string[strlen(free_space_string)-1]=*(yon_size_get_mod(sz)); } // gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin),0.0); gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin)),0.0);