--- thunar/thunar-progress-dialog.c.old 2009-09-26 22:37:37.418308471 +0200 +++ thunar/thunar-progress-dialog.c 2009-10-02 15:58:53.834226213 +0200 @@ -369,8 +369,8 @@ ThunarVfsJob *job) { GTimeVal current_time; - gulong remaining_time; - gulong elapsed_time; + gulong remaining_time = 0; + gulong elapsed_time = 0; gchar text[512]; _thunar_return_if_fail (THUNAR_IS_PROGRESS_DIALOG (dialog)); @@ -385,21 +385,21 @@ if (time_diff (¤t_time, &dialog->last_update_time) > 400 * 1000) { /* calculate the remaining time (in seconds) */ - elapsed_time = time_diff (¤t_time, &dialog->start_time) / 1000; - remaining_time = ((100 * elapsed_time) / percent - elapsed_time) / 1000; + elapsed_time = (gulong) time_diff (¤t_time, &dialog->start_time) / 1000; + remaining_time = (gulong) ((100 * elapsed_time) / percent - elapsed_time) / 1000; /* setup the time label */ if (G_LIKELY (remaining_time > 0)) { /* format the time text */ - if (remaining_time > 60 * 60) + if (remaining_time > 60 * 59) // show time in hours until 59 minutes left { - remaining_time = (gulong) (remaining_time / (60 * 60)); + remaining_time = (gulong) ((remaining_time / (60 * 60)) + 1); g_snprintf (text, sizeof (text), ngettext ("(%lu hour remaining)", "(%lu hours remaining)", remaining_time), remaining_time); } - else if (remaining_time > 60) + else if (remaining_time > 45) // show time in minutes until 45 seconds left { - remaining_time = (gulong) (remaining_time / 60); + remaining_time = (gulong) ((remaining_time / 60) + 1); g_snprintf (text, sizeof (text), ngettext ("(%lu minute remaining)", "(%lu minutes remaining)", remaining_time), remaining_time); } else