%% options copyright owner = Dirk Krause copyright year = 2015-xxxx license = bsd %% header /** @file dk4fdrde.h Error message for errors while reading. */ #include "dk4conf.h" #include "dk4app.h" #ifdef __cplusplus extern "C" { #endif /** Report error from read attempt on file descriptr. @param app Application structure. @param fn File name, may be NULL. @param errc Error code from errno. */ void dk4fd_read_error_msg(dk4_app_t *app, const dkChar *fn, int errc); #ifdef __cplusplus } #endif %% module #include "dk4fdrde.h" #include "dk4const.h" #include "dk4mem.h" #include "dk4maodd.h" #if DK4_HAVE_ERRNO_H #ifndef ERRNO_H_INCLUDED #include #define ERRNO_H_INCLUDED 1 #endif #endif void dk4fd_read_error_msg(dk4_app_t *app, const dkChar *fn, int errc) { dkChar buf[64]; const dkChar *oldsourcefile = NULL; size_t oldsourceline = (dk4_um_t)0UL; int res; if (NULL != app) { oldsourcefile = dk4app_get_log_source_file(app); oldsourceline = dk4app_get_log_source_line(app); dk4app_set_log_source_file(app, fn); dk4app_set_log_source_line(app, (dk4_um_t)0UL); switch (errc){ #ifdef EAGAIN case EAGAIN : { dk4app_log_base2c(app, DK4_LL_ERROR, 118, 121); } break; #endif #if defined(EWOULDBLOCK) && (EWOULDBLOCK != EAGAIN) case EWOULDBLOCK : { dk4app_log_base2c(app, DK4_LL_ERROR, 118, 121); } break; #endif #ifdef EBADF case EBADF : { dk4app_log_base2c(app, DK4_LL_ERROR, 118, 122); } break; #endif #ifdef EBADMSG case EBADMSG : { dk4app_log_base2c(app, DK4_LL_ERROR, 118, 139); } break; #endif #ifdef EFAULT case EFAULT : { dk4app_log_base2c(app, DK4_LL_ERROR, 118, 123); } break; #endif #ifdef EINTR case EINTR : { dk4app_log_base2c(app, DK4_LL_ERROR, 118, 124); } break; #endif #ifdef EINVAL case EINVAL : { dk4app_log_base2c(app, DK4_LL_ERROR, 118, 125); } break; #endif #ifdef EIO case EIO : { dk4app_log_base2c(app, DK4_LL_ERROR, 118, 126); } break; #endif #ifdef EISDIR case EISDIR : { dk4app_log_base2c(app, DK4_LL_ERROR, 118, 127); } break; #endif #ifdef EOVERFLOW case EOVERFLOW : { dk4app_log_base2c(app, DK4_LL_ERROR, 118, 78); } break; #endif #ifdef ECONNRESET case ECONNRESET : { dk4app_log_base2c(app, DK4_LL_ERROR, 118, 140); } break; #endif #ifdef ENOTCON case ENOTCON : { dk4app_log_base2c(app, DK4_LL_ERROR, 118, 134); } break; #endif #ifdef ETIMEDOUT case ETIMEDOUT : { dk4app_log_base2c(app, DK4_LL_ERROR, 118, 141); } break; #endif #ifdef ENOBUFS case ENOBUFS : { dk4app_log_base2c(app, DK4_LL_ERROR, 118, 136); } break; #endif #ifdef ENOMEM case ENOMEM : { dk4app_log_base2c(app, DK4_LL_ERROR, 118, 142); } break; #endif #ifdef ENXIO case ENXIO : { dk4app_log_base2c(app, DK4_LL_ERROR, 118, 137); } break; #endif #ifdef ESPIPE case ESPIPE : { dk4app_log_base2c(app, DK4_LL_ERROR, 118, 143); } break; #endif default : { res = dk4ma_write_decimal_signed( buf, DK4_SIZEOF(buf,dkChar), (dk4_im_t)errc, 0, NULL ); if (0 != res) { dk4app_log_base3(app, DK4_LL_ERROR, 119, 120, buf); } else { dk4app_log_base1(app, DK4_LL_ERROR, 118); } } break; } dk4app_set_log_source_file(app, oldsourcefile); dk4app_set_log_source_line(app, oldsourceline); } }