Skip to content

Commit

Permalink
make progress "title" part of the common progress interface
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Nicolas Pitre authored and Junio C Hamano committed Apr 23, 2007
1 parent 96a02f8 commit 13aaf14
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 34 deletions.
19 changes: 7 additions & 12 deletions builtin-pack-objects.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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];
Expand Down Expand Up @@ -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 {
Expand Down
6 changes: 2 additions & 4 deletions builtin-unpack-objects.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
12 changes: 4 additions & 8 deletions index-pack.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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;
Expand Down
12 changes: 8 additions & 4 deletions progress.c
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}

Expand Down
5 changes: 3 additions & 2 deletions progress.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
7 changes: 3 additions & 4 deletions unpack-trees.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down

0 comments on commit 13aaf14

Please sign in to comment.