diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-12-26 01:30:59 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-12-26 01:30:59 +0000 |
commit | c4f623ef2a7980a63de7c9f1d539a656b83f10e7 (patch) | |
tree | a294e28b0112052cb9d58b403554b3390e76f50c /e2fsprogs/old_e2fsprogs/e2p/iod.c | |
parent | 64c54025842f205ad722675105b88044a5b6845a (diff) | |
download | busybox-w32-c4f623ef2a7980a63de7c9f1d539a656b83f10e7.tar.gz busybox-w32-c4f623ef2a7980a63de7c9f1d539a656b83f10e7.tar.bz2 busybox-w32-c4f623ef2a7980a63de7c9f1d539a656b83f10e7.zip |
put small subset of e2fsprogs back in the tree:
lsattr, chattr, fsck. Old e2fsprogs tree is in
e2fsprogs/old_e2fsprogs/*.
Diffstat (limited to 'e2fsprogs/old_e2fsprogs/e2p/iod.c')
-rw-r--r-- | e2fsprogs/old_e2fsprogs/e2p/iod.c | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/e2fsprogs/old_e2fsprogs/e2p/iod.c b/e2fsprogs/old_e2fsprogs/e2p/iod.c new file mode 100644 index 000000000..23ab8d5b5 --- /dev/null +++ b/e2fsprogs/old_e2fsprogs/e2p/iod.c | |||
@@ -0,0 +1,52 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* | ||
3 | * iod.c - Iterate a function on each entry of a directory | ||
4 | * | ||
5 | * Copyright (C) 1993, 1994 Remy Card <card@masi.ibp.fr> | ||
6 | * Laboratoire MASI, Institut Blaise Pascal | ||
7 | * Universite Pierre et Marie Curie (Paris VI) | ||
8 | * | ||
9 | * This file can be redistributed under the terms of the GNU Library General | ||
10 | * Public License | ||
11 | */ | ||
12 | |||
13 | /* | ||
14 | * History: | ||
15 | * 93/10/30 - Creation | ||
16 | */ | ||
17 | |||
18 | #include "e2p.h" | ||
19 | #include <unistd.h> | ||
20 | #include <stdlib.h> | ||
21 | #include <string.h> | ||
22 | |||
23 | int iterate_on_dir (const char * dir_name, | ||
24 | int (*func) (const char *, struct dirent *, void *), | ||
25 | void * private) | ||
26 | { | ||
27 | DIR * dir; | ||
28 | struct dirent *de, *dep; | ||
29 | int max_len, len; | ||
30 | |||
31 | max_len = PATH_MAX + sizeof(struct dirent); | ||
32 | de = xmalloc(max_len+1); | ||
33 | memset(de, 0, max_len+1); | ||
34 | |||
35 | dir = opendir (dir_name); | ||
36 | if (dir == NULL) { | ||
37 | free(de); | ||
38 | return -1; | ||
39 | } | ||
40 | while ((dep = readdir (dir))) { | ||
41 | len = sizeof(struct dirent); | ||
42 | if (len < dep->d_reclen) | ||
43 | len = dep->d_reclen; | ||
44 | if (len > max_len) | ||
45 | len = max_len; | ||
46 | memcpy(de, dep, len); | ||
47 | (*func) (dir_name, de, private); | ||
48 | } | ||
49 | free(de); | ||
50 | closedir(dir); | ||
51 | return 0; | ||
52 | } | ||