Merge branch 'master' into 'master'

Makes progress to consider the decimal from percent update

See merge request GNOME/zenity!1
This commit is contained in:
Arx Henrique Pereira da Cruz 2018-10-05 12:38:15 +00:00
commit a97f367083
1 changed files with 22 additions and 1 deletions

View File

@ -105,6 +105,27 @@ zenity_progress_update_time_remaining (ZenityProgressData *progress_data) {
}
}
static float
stof(const char* s) {
float rez = 0, fact = 1;
if (*s == '-') {
s++;
fact = -1;
}
for (int point_seen = 0; *s; s++) {
if (*s == '.' || *s == ',') {
point_seen = 1;
continue;
}
int d = *s - '0';
if (d >= 0 && d <= 9) {
if (point_seen) fact /= 10.0f;
rez = rez * 10.0f + (float)d;
}
}
return rez * fact;
}
static gboolean
zenity_progress_handle_stdin (
GIOChannel *channel, GIOCondition condition, gpointer data) {
@ -190,7 +211,7 @@ zenity_progress_handle_stdin (
continue;
/* Now try to convert the thing to a number */
percentage = CLAMP (atoi (string->str), 0, 100);
percentage = CLAMP (stof (string->str), 0, 100);
gtk_progress_bar_set_fraction (
GTK_PROGRESS_BAR (progress_bar), percentage / 100.0);