summaryrefslogtreecommitdiffstats
path: root/libidu/walker.c
diff options
context:
space:
mode:
authorGreg McGary <greg@mcgary.org>1999-04-06 07:44:19 +0000
committerGreg McGary <greg@mcgary.org>1999-04-06 07:44:19 +0000
commit06fa9166e54cea74bebaf0135f3eacfae4dab0c7 (patch)
tree6ec31699f499dfbc86d4bf974254b9f4e964e5a1 /libidu/walker.c
parent626a5396f0341a9aee84ee25700a591c5ab39529 (diff)
downloadidutils-06fa9166e54cea74bebaf0135f3eacfae4dab0c7.tar.gz
idutils-06fa9166e54cea74bebaf0135f3eacfae4dab0c7.tar.bz2
idutils-06fa9166e54cea74bebaf0135f3eacfae4dab0c7.zip
* libidu/idfile.h (largest_member_file): Add variable decl.
(MAX_LARGEST_MEMBER_FILE): Add constant. * libidu/scanners.h (scanner_buffer): Add variable decl. * libidu/scanners.c (scanner_buffer): Rename from id_0. * libidu/walker.c (largest_member_file): Add veriable defn. (walk_flink): Maintain largest_member_file. Call print_member_file. (maybe_get_member_file): Don't call print_member_file. (classify_link): Return 0 if file size is zero. * src/mkid.c (scan_files): Report size of largest file. Cap scanner_buffer size at MAX_LARGEST_MEMBER_FILE. Allocate scanner_buffer. * src/xtokid.c (scan_files): Cap scanner_buffer size at MAX_LARGEST_MEMBER_FILE. Allocate scanner_buffer.
Diffstat (limited to 'libidu/walker.c')
-rw-r--r--libidu/walker.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/libidu/walker.c b/libidu/walker.c
index 10490fe..73dc4d3 100644
--- a/libidu/walker.c
+++ b/libidu/walker.c
@@ -36,6 +36,7 @@
#include "xalloca.h"
int walker_verbose_flag = 0;
+off_t largest_member_file = 0;
int walk_dir __P((struct file_link *dir_link));
struct member_file *get_member_file __P((struct file_link *flink));
@@ -198,8 +199,13 @@ walk_flink (struct file_link *flink, struct dynvec *sub_dirs_vec)
#else
member = get_member_file (flink);
#endif
- if (member == 0)
- return;
+ if (member)
+ {
+ if (st.st_size > largest_member_file)
+ largest_member_file = st.st_size;
+ if (walker_verbose_flag)
+ print_member_file (member);
+ }
}
}
@@ -305,8 +311,6 @@ maybe_get_member_file (struct file_link *flink, struct stat *stp)
alias_member->mf_link->fl_flags &= ~FL_MEMBER;
}
}
- if (member && walker_verbose_flag)
- print_member_file (member);
return member;
}
@@ -721,7 +725,9 @@ classify_link (struct file_link *flink, struct stat *stp)
flags |= FL_SYM_LINK;
}
#endif
- if (S_ISDIR (stp->st_mode))
+ if (stp->st_size == 0)
+ return 0;
+ else if (S_ISDIR (stp->st_mode))
flags |= FL_TYPE_DIR;
else if (S_ISREG (stp->st_mode))
flags |= FL_TYPE_FILE;