projects
/
finddup.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
7f3e2c1
)
Removed a crashing bug with the progress bar when only one file was present.
author
Francois Fleuret
<francois@fleuret.org>
Sun, 6 Jun 2010 21:29:24 +0000
(23:29 +0200)
committer
Francois Fleuret
<francois@fleuret.org>
Sun, 6 Jun 2010 21:29:24 +0000
(23:29 +0200)
finddup.c
patch
|
blob
|
history
diff --git
a/finddup.c
b/finddup.c
index
2ef91df
..
cb4b8ca
100644
(file)
--- a/
finddup.c
+++ b/
finddup.c
@@
-354,15
+354,17
@@
struct progress_state {
};
void print_progress(struct progress_state *state) {
};
void print_progress(struct progress_state *state) {
- int position, k;
+ int position, k
, normalizer
;
struct winsize win;
char buffer[PROGRESS_BUFFER_SIZE];
char *s;
struct winsize win;
char buffer[PROGRESS_BUFFER_SIZE];
char *s;
+ normalizer = (state->nb_values > 1 ? state->nb_values - 1 : 1);
+
if(show_progress) {
/* We use the previous bar_width to compute the position, so that
we avoid doing too many ioctls */
if(show_progress) {
/* We use the previous bar_width to compute the position, so that
we avoid doing too many ioctls */
- position = (state->bar_width * state->value) /
(state->nb_values - 1)
;
+ position = (state->bar_width * state->value) /
normalizer
;
if(state->bar_width <= 0 || position != state->last_position) {
if(!ioctl (STDERR_FILENO, TIOCGWINSZ, (char *) &win)) {
/* Something weird is going on if the previous test is wrong */
if(state->bar_width <= 0 || position != state->last_position) {
if(!ioctl (STDERR_FILENO, TIOCGWINSZ, (char *) &win)) {
/* Something weird is going on if the previous test is wrong */
@@
-371,7
+373,7
@@
void print_progress(struct progress_state *state) {
} else {
state->bar_width = win.ws_col - 7;
}
} else {
state->bar_width = win.ws_col - 7;
}
- position = (state->bar_width * state->value) /
(state->nb_values - 1)
;
+ position = (state->bar_width * state->value) /
normalizer
;
state->last_position = position;
s = buffer;
for(k = 0; k < position; k++) {
state->last_position = position;
s = buffer;
for(k = 0; k < position; k++) {
@@
-383,7
+385,7
@@
void print_progress(struct progress_state *state) {
/* We need four % because of the fprintf that follows */
sprintf(s, " [%3d%%%%]\r",
/* We need four % because of the fprintf that follows */
sprintf(s, " [%3d%%%%]\r",
- (100 * state->value) /
(state->nb_values - 1)
);
+ (100 * state->value) /
normalizer
);
fprintf(stderr, buffer);
}
fprintf(stderr, buffer);
}