#include #include "test-utils.h" #include "dbus/dbus-macros.h" #include "dbus/dbus-sysdeps.h" static void oom (const char *doing) _DBUS_GNUC_NORETURN; static void die (const char *message) _DBUS_GNUC_NORETURN; void oom (const char *doing) { fprintf (stderr, "*** manual-dir-iter: OOM while %s\n", doing); exit (1); } void die (const char *message) { fprintf (stderr, "*** manual-dir-iter: %s\n", message); exit (1); } static void debug (const char *message) { fprintf (stdout, "+++ manual-dir-iter: %s\n", message); } int main (int argc, char **argv) { DBusString filename; DBusString dirname; DBusError tmp_error; DBusDirIter *dir; if (argc != 2) die ("syntax: manual-dir-iter "); dbus_error_init (&tmp_error); if (!_dbus_string_init (&filename)) oom ("init filename"); if (!_dbus_string_init (&dirname)) oom ("init dirname"); _dbus_string_append (&dirname, argv[1]); dir = _dbus_directory_open (&dirname, &tmp_error); if (dir == NULL) { fprintf (stderr, "could not open directory: %s: %s\n", tmp_error.name, tmp_error.message); exit(1); } while (_dbus_directory_get_next_file (dir, &filename, &tmp_error)) { DBusString full_path; if (!_dbus_string_init (&full_path)) { oom ("init full_path"); } if (!_dbus_string_copy (&dirname, 0, &full_path, 0)) { oom ("copying full_path to dirname"); } if (!_dbus_concat_dir_and_file (&full_path, &filename)) { oom ("concat full_path"); } debug (_dbus_string_get_const_data (&filename)); _dbus_string_free (&full_path); } if (dbus_error_is_set (&tmp_error)) die (tmp_error.message); _dbus_string_free (&filename); if (dir) _dbus_directory_close (dir); _dbus_verbose ("*** Test dir name exiting\n"); return 0; }