]> Kevux Git Server - rit/commitdiff
make progress "title" part of the common progress interface
authorNicolas Pitre <nico@cam.org>
Fri, 20 Apr 2007 18:10:07 +0000 (14:10 -0400)
committerJunio C Hamano <junkio@cox.net>
Mon, 23 Apr 2007 05:18:05 +0000 (22:18 -0700)
If the progress bar ends up in a box, better provide a title for it too.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
builtin-pack-objects.c
builtin-unpack-objects.c
index-pack.c
progress.c
progress.h
unpack-trees.c

index d7d9996..b827627 100644 (file)
@@ -580,10 +580,8 @@ static off_t write_pack_file(void)
                f = sha1fd(fd, pack_tmp_name);
        }
 
-       if (do_progress) {
-               fprintf(stderr, "Writing %u objects.\n", nr_result);
-               start_progress(&progress_state, "", nr_result);
-       }
+       if (do_progress)
+               start_progress(&progress_state, "Writing %u objects...", "", nr_result);
 
        hdr.hdr_signature = htonl(PACK_SIGNATURE);
        hdr.hdr_version = htonl(PACK_VERSION);
@@ -1389,10 +1387,8 @@ static void find_deltas(struct object_entry **list, int window, int depth)
                return;
        array = xmalloc(array_size);
        memset(array, 0, array_size);
-       if (progress) {
-               fprintf(stderr, "Deltifying %u objects.\n", nr_result);
-               start_progress(&progress_state, "", nr_result);
-       }
+       if (progress)
+               start_progress(&progress_state, "Deltifying %u objects...", "", nr_result);
 
        do {
                struct object_entry *entry = list[--i];
@@ -1722,10 +1718,9 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
 
        prepare_packed_git();
 
-       if (progress) {
-               fprintf(stderr, "Generating pack...\n");
-               start_progress(&progress_state, "Counting objects: ", 0);
-       }
+       if (progress)
+               start_progress(&progress_state, "Generating pack...",
+                              "Counting objects: ", 0);
        if (!use_internal_rev_list)
                read_object_list_from_stdin();
        else {
index c370c7f..2bbda67 100644 (file)
@@ -321,10 +321,8 @@ static void unpack_all(void)
                die("unknown pack file version %d", ntohl(hdr->hdr_version));
        use(sizeof(struct pack_header));
 
-       if (!quiet) {
-               fprintf(stderr, "Unpacking %d objects\n", nr_objects);
-               start_progress(&progress, "", nr_objects);
-       }
+       if (!quiet)
+               start_progress(&progress, "Unpacking %u objects...", "", nr_objects);
        obj_list = xmalloc(nr_objects * sizeof(*obj_list));
        for (i = 0; i < nr_objects; i++) {
                unpack_one(i);
index a49d03d..824004f 100644 (file)
@@ -407,10 +407,8 @@ static void parse_pack_objects(unsigned char *sha1)
         * - calculate SHA1 of all non-delta objects;
         * - remember base (SHA1 or offset) for all deltas.
         */
-       if (verbose) {
-               fprintf(stderr, "Indexing %d objects.\n", nr_objects);
-               start_progress(&progress, "", nr_objects);
-       }
+       if (verbose)
+               start_progress(&progress, "Indexing %u objects...", "", nr_objects);
        for (i = 0; i < nr_objects; i++) {
                struct object_entry *obj = &objects[i];
                data = unpack_raw_entry(obj, &delta->base);
@@ -458,10 +456,8 @@ static void parse_pack_objects(unsigned char *sha1)
         *   recursively checking if the resulting object is used as a base
         *   for some more deltas.
         */
-       if (verbose) {
-               fprintf(stderr, "Resolving %d deltas.\n", nr_deltas);
-               start_progress(&progress, "", nr_deltas);
-       }
+       if (verbose)
+               start_progress(&progress, "Resolving %u deltas...", "", nr_deltas);
        for (i = 0; i < nr_objects; i++) {
                struct object_entry *obj = &objects[i];
                union delta_base base;
index 702e116..478134b 100644 (file)
@@ -40,23 +40,27 @@ int display_progress(struct progress *progress, unsigned n)
                if (percent != progress->last_percent || progress_update) {
                        progress->last_percent = percent;
                        fprintf(stderr, "%s%4u%% (%u/%u) done\r",
-                               progress->msg, percent, n, progress->total);
+                               progress->prefix, percent, n, progress->total);
                        progress_update = 0;
                        return 1;
                }
        } else if (progress_update) {
-               fprintf(stderr, "%s%u\r", progress->msg, n);
+               fprintf(stderr, "%s%u\r", progress->prefix, n);
                progress_update = 0;
                return 1;
        }
        return 0;
 }
 
-void start_progress(struct progress *progress, const char *msg, unsigned total)
+void start_progress(struct progress *progress, const char *title,
+                   const char *prefix, unsigned total)
 {
-       progress->msg = msg;
+       char buf[80];
+       progress->prefix = prefix;
        progress->total = total;
        progress->last_percent = -1;
+       if (snprintf(buf, sizeof(buf), title, total))
+               fprintf(stderr, "%s\n", buf);
        set_progress_signal();
 }
 
index 5fa4948..1f2661e 100644 (file)
@@ -2,13 +2,14 @@
 #define __progress_h__
 
 struct progress {
-       const char *msg;
+       const char *prefix;
        unsigned total;
        unsigned last_percent;
 };
 
 int display_progress(struct progress *progress, unsigned n);
-void start_progress(struct progress *progress, const char *msg, unsigned total);
+void start_progress(struct progress *progress, const char *title,
+                   const char *prefix, unsigned total);
 void stop_progress(struct progress *progress);
 
 #endif
index 8a11622..cefc404 100644 (file)
@@ -308,10 +308,9 @@ static void check_updates(struct cache_entry **src, int nr,
                if (total < 250)
                        total = 0;
 
-               if (total) {
-                       fprintf(stderr, "Checking files out...\n");
-                       start_progress(&progress, "", total);
-               }
+               if (total)
+                       start_progress(&progress, "Checking %u files out...",
+                                      "", total);
                cnt = 0;
        }