diff options
author | kay.sievers@vrfy.org <kay.sievers@vrfy.org> | 2004-11-12 06:20:22 +0100 |
---|---|---|
committer | Greg KH <gregkh@suse.de> | 2005-04-26 22:24:38 -0700 |
commit | af4b05d4917fdfa55eff3d8d53a830464d8162a1 (patch) | |
tree | 352f8b4180c9be6f848c7f69517783b7912c42d3 /udev_lib.c | |
parent | 13f24d596c5638443ffc7bc48c10a66758335c74 (diff) |
[PATCH] make the udev object available to more processing stages
Remove the overwriting of main_argv[] hack and use the values
from the udev object.
Pass the udev object to call_foreach_file().
In the udevstart case, export SUBSYSTEM and UDEVSTART to the
environment.
Diffstat (limited to 'udev_lib.c')
-rw-r--r-- | udev_lib.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/udev_lib.c b/udev_lib.c index 84daf9fd19..012d60b0ea 100644 --- a/udev_lib.c +++ b/udev_lib.c @@ -178,12 +178,12 @@ static int file_list_insert(char *filename, struct list_head *file_list) } /* calls function for every file found in specified directory */ -int call_foreach_file(int fnct(char *f) , char *dirname, char *suffix) +int call_foreach_file(file_fnct_t fnct, const char *dirname, + const char *suffix, void *data) { struct dirent *ent; DIR *dir; char *ext; - char file[NAME_SIZE]; struct files *loop_file; struct files *tmp_file; LIST_HEAD(file_list); @@ -217,10 +217,12 @@ int call_foreach_file(int fnct(char *f) , char *dirname, char *suffix) /* call function for every file in the list */ list_for_each_entry_safe(loop_file, tmp_file, &file_list, list) { - snprintf(file, NAME_SIZE-1, "%s/%s", dirname, loop_file->name); - file[NAME_SIZE-1] = '\0'; + char filename[NAME_SIZE]; - fnct(file); + snprintf(filename, NAME_SIZE-1, "%s/%s", dirname, loop_file->name); + filename[NAME_SIZE-1] = '\0'; + + fnct(filename, data); list_del(&loop_file->list); free(loop_file); |