*
*/
-#define VERSION_NUMBER "0.6"
+#define VERSION_NUMBER "0.7"
#define _BSD_SOURCE
(ignore_dotfiles && name[0] == '.');
}
-void print_size_sum(size_sum_t s) {
- char tmp[100];
- char *a = tmp + sizeof(tmp)/sizeof(char);
- *(--a) = '\0';
- if(s) {
- while(s) {
- *(--a) = s%10 + '0';
- s /= 10;
- }
- } else {
- *(--a) = '0';
- }
- printf(a);
-}
-
/**********************************************************************/
struct file_with_size {
void print_file(struct file_with_size *node) {
char tmp[PATH_MAX + 1];
if(show_realpaths) {
- if(show_groups) {
- realpath(node->filename, tmp);
- printf("%d %s\n", node->group_id, tmp);
+ if(realpath(node->filename, tmp)) {
+ if(show_groups) {
+ printf("%d %s\n", node->group_id, tmp);
+ } else {
+ printf("%s\n", tmp);
+ }
} else {
- realpath(node->filename, tmp);
- printf("%s\n", tmp);
+ printf("Can not get the realpath of \"%s\": %s\n",
+ node->filename,
+ strerror(errno));
+ exit(EXIT_FAILURE);
}
} else {
if(show_groups) {
struct file_with_size *list1, *list2;
struct file_with_size *node1, *node2;
int not_in, found;
- int k, pp, l1, n;
+ int nb_groups, nb_nodes;
+ int list1_length, previous_progress;
char *buffer1 = safe_malloc(sizeof(char) * READ_BUFFER_SIZE);
char *buffer2 = safe_malloc(sizeof(char) * READ_BUFFER_SIZE);
fprintf(stderr, "done.\n");
}
- k = 0;
- pp = -1;
- n = 0;
- l1 = file_list_length(list1);
+ nb_groups = 0;
+ previous_progress = -1;
+ nb_nodes = 0;
+ list1_length = file_list_length(list1);
if(not_in) {
for(node1 = list1; node1; node1 = node1->next) {
- print_progress(l1, n, &pp);
- n++;
+ print_progress(list1_length, nb_nodes, &previous_progress);
+ nb_nodes++;
found = 0;
} else {
for(node1 = list1; node1; node1 = node1->next) {
- print_progress(l1, n, &pp);
- n++;
+ print_progress(list1_length, nb_nodes, &previous_progress);
+ nb_nodes++;
for(node2 = list2; node2; node2 = node2->next) {
if(node1->group_id < 0 || node2->group_id < 0) {
if(node2->group_id >= 0) {
node1->group_id = node2->group_id;
} else {
- node1->group_id = k;
+ node1->group_id = nb_groups;
node1->dir_id = 1;
- k++;
+ nb_groups++;
}
}
if(node2->group_id < 0) {