[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#181088: Progress bar API problem



Package: cdebconf
Version: 0.30
Severity: wishlist
Tags: patch

lör 2003-02-15 klockan 11.03 skrev Martin Sjögren:
> The typical use of the progress bar API looks like this:
> 
> 
> PROGRESS START 0 N foo/start
> 
> PROGRESS STEP 1 foo/inc
> ...
> PROGRESS STEP 1 foo/inc
> ...
> (et.c.)
> 
> PROGRESS STOP
> 
> 
> Now, the problem is that the counter is increased before the text is
> displayed. Wouldn't it make more sense to do a post-increment than a
> pre-increment? I guess that would mean that PROGRESS STOP has to show
> the final 100% value before leaving.
> 
> How does that sound?

Here's one (somewhat hackish) way to do it:

diff -u -r1.31 text.c
--- src/modules/frontend/text/text.c    26 Jan 2003 16:51:54 -0000     
1.31
+++ src/modules/frontend/text/text.c    15 Feb 2003 10:36:21 -0000
@@ -495,14 +495,14 @@
     int width = getwidth();
     char out[256];

-    ui->progress_cur += step;
-
     snprintf(out, sizeof(out), "[%.1f%%] %s",
         (double)(ui->progress_cur - ui->progress_min) /
         (double)(ui->progress_max - ui->progress_min) * 100.0, info);
     if (strlen(out) > width - 7)
         out[width - 7] = 0;

+    ui->progress_cur += step;
+
     printf("%s\r", out);
     fflush(stdout);
 }
@@ -510,7 +510,7 @@
 static void text_progress_stop(struct frontend *ui)
 {
     INFO(INFO_DEBUG, "%s\n", __FUNCTION__);
-
+    text_progress_step(ui, 0, "");
     printf("\n");
 }

Attachment: signature.asc
Description: Detta =?ISO-8859-1?Q?=E4r?= en digitalt signerad meddelandedel


Reply to: