diff options
Diffstat (limited to 'support/dktools/dk4appfs03.ctr')
-rw-r--r-- | support/dktools/dk4appfs03.ctr | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/support/dktools/dk4appfs03.ctr b/support/dktools/dk4appfs03.ctr new file mode 100644 index 0000000000..1fd8d26a74 --- /dev/null +++ b/support/dktools/dk4appfs03.ctr @@ -0,0 +1,127 @@ +%% options + +copyright owner = Dirk Krause +copyright year = 2015-xxxx +license = bsd + + + +%% module + +#ifndef DK4APP_H_INCLUDED +#include "dk4app.h" +#endif + +#ifndef DK4FS_H_INCLUDED +#include "dk4fs.h" +#endif + +#ifndef DK4CONST_H_INCLUDED +#include "dk4const.h" +#endif + + + +$!trace-include + + + +static +int +dk4app_search_i_data_file( + dkChar *dptr, + size_t szdptr, + dk4_app_t *app, + const dkChar *shortname, + int maxpass, + int compressed, + dk4_er_t *erp +) +{ + int back = 0; + int nPasses; + int i; + if ((NULL != dptr) && (0 < szdptr) && (NULL != app) && (NULL != shortname)) { + nPasses = maxpass; + for (i = 0; ((0 == back) && (i <= nPasses)); i++) { + back = dk4app_search_one_data_file( + dptr, szdptr, app, shortname, maxpass--, compressed, erp + ); + } + } else { + dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); + } + return back; +} + + + +int +dk4app_search_data_file( + dkChar *dptr, + size_t szdptr, + dk4_app_t *app, + const dkChar *shortname, + int maxpass, + int compressed, + dk4_er_t *erp +) +{ + const dkChar *msg[5]; + int do_log = 0; + int back = 0; + $? "+ dk4app_search_data_file" + if (NULL != app) { + if ((NULL != app->msg_debug) && (39 < app->sz_msg_debug)) { + do_log = dk4app_log_do(app, DK4_LL_DEBUG); + } + } + if (0 != do_log) { $? ". with log" + $? ". debug texts found" + msg[0] = (app->msg_debug)[32]; + msg[1] = shortname; + msg[2] = (app->msg_debug)[35]; + if (0 != compressed) { +#if DK4_HAVE_ZLIB_H +#if DK4_HAVE_BZLIB_H + msg[2] = (app->msg_debug)[39]; +#else + msg[2] = (app->msg_debug)[37]; +#endif +#else +#if DK4_HAVE_BZLIB_H + msg[2] = (app->msg_debug)[38]; +#else + msg[2] = (app->msg_debug)[34]; +#endif +#endif + } else { + msg[2] = (app->msg_debug)[35]; + } + dk4app_log_msg(app, DK4_LL_DEBUG, msg, 3); + back = dk4app_search_i_data_file( + dptr, szdptr, app, shortname, maxpass, compressed, erp + ); $? ". search done %d", back + if (0 != back) { $? ". log success" + msg[0] = (app->msg_debug)[21]; + msg[1] = shortname; + msg[2] = (app->msg_debug)[23]; + msg[3] = dptr; + msg[4] = NULL; + dk4app_log_msg(app, DK4_LL_DEBUG, msg, 4); + } else { $? ". log failure" + msg[0] = (app->msg_debug)[21]; + msg[1] = shortname; + msg[2] = (app->msg_debug)[22]; + msg[3] = NULL; + dk4app_log_msg(app, DK4_LL_DEBUG, msg, 3); + } + } else { $? ". no log" + back = dk4app_search_i_data_file( + dptr, szdptr, app, shortname, maxpass, compressed, erp + ); + } $? "- dk4app_search_data_file %d", back + return back; +} + + |