%% options copyright owner = Dirk Krause copyright year = 2015-xxxx license = bsd %% module #include "dk4app.h" #ifndef DK4CONST_H_INCLUDED #include "dk4const.h" #endif #ifndef DK4FNE_H_INCLUDED #include "dk4fne.h" #endif #ifndef DK4ERROR_H_INCLUDED #include "dk4error.h" #endif #ifndef DK4STRD_H_INCLUDED #include "dk4strd.h" #endif dk4_dir_t * dk4app_fne_open(const dkChar *pattern, dk4_app_t *app) { dk4_er_t er; dk4_dir_t *back = NULL; if (NULL != pattern) { dk4error_init(&er); back = dk4fne_open(pattern, &er); if (NULL == back) { switch (er.ec) { case DK4_E_NOT_SUPPORTED: { dk4app_log_base3(app, DK4_LL_ERROR, 100, 102, pattern); } break; case DK4_E_MEMORY_ALLOCATION_FAILED: { dk4app_log_base3(app, DK4_LL_ERROR, 100, 103, pattern); } break; case DK4_E_BUFFER_TOO_SMALL: { dk4app_log_base3(app, DK4_LL_ERROR, 100, 105, pattern); } break; case DK4_E_OPENDIR_FAILED: case DK4_E_FINDFIRSTFILE_FAILED: { dk4app_log_base3(app, DK4_LL_ERROR, 100, 104, pattern); } break; default: { dk4app_log_base3(app, DK4_LL_ERROR, 100, 101, pattern); } break; } } } return back; } int dk4app_fne_one_file( dkChar *dptr, size_t szdptr, dk4_dir_t *fne, const dkChar *pattern, dk4_app_t *app ) { const dkChar *dirname; const dkChar *filename; int back = 0; if ((NULL != dptr) && (NULL != fne) && (0 < szdptr)) { dirname = dk4dir_get_path(fne); filename = dk4dir_next_file(fne); if (NULL != filename) { if (NULL != dirname) { if (0 != dk4str_cpy_s(dptr, szdptr, dirname, NULL)) { if (0 != dk4str_cat_s(dptr, szdptr, dkT("\\"), NULL)) { back = dk4str_cat_s(dptr, szdptr, filename, NULL); if (0 == back) { dk4app_log_base3(app, DK4_LL_ERROR, 100, 105, pattern); } } else { dk4app_log_base3(app, DK4_LL_ERROR, 100, 105, pattern); } } else { dk4app_log_base3(app, DK4_LL_ERROR, 100, 105, pattern); } } else { back = dk4str_cpy_s(dptr, szdptr, filename, NULL); if (0 == back) { dk4app_log_base3(app, DK4_LL_ERROR, 100, 105, pattern); } } if (0 != back) { filename = dk4dir_next_file(fne); if (NULL != filename) { back = 0; dk4app_log_base3(app, DK4_LL_ERROR, 100, 106, pattern); } } } else { dk4app_log_base3(app, DK4_LL_ERROR, 100, 107, pattern); } } return back; }