diff options
author | Greg McGary <greg@mcgary.org> | 1999-04-06 07:44:19 +0000 |
---|---|---|
committer | Greg McGary <greg@mcgary.org> | 1999-04-06 07:44:19 +0000 |
commit | 06fa9166e54cea74bebaf0135f3eacfae4dab0c7 (patch) | |
tree | 6ec31699f499dfbc86d4bf974254b9f4e964e5a1 /libidu/walker.c | |
parent | 626a5396f0341a9aee84ee25700a591c5ab39529 (diff) | |
download | idutils-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.c | 16 |
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; |