/* ioerrs.c */ /*****************************************************************************/ /* AS-Portierung */ /* */ /* Abliefern der I/O-Fehlermeldungen */ /* */ /* Historie: 11.10.1996 Grundsteinlegung */ /* */ /*****************************************************************************/ #include "stdinc.h" #include #include "nlmessages.h" #include "ioerrs.rsc" #include "ioerrs.h" typedef struct { int Code; int Msg; } ErrorDef; static TMsgCat MsgCat; static ErrorDef ErrorDefs[]={ #ifdef EPERM {EPERM , Num_IoErr_EPERM}, #endif #ifdef ENOENT {ENOENT , Num_IoErr_ENOENT}, #endif #ifdef ESRCH {ESRCH , Num_IoErr_ESRCH}, #endif #ifdef EINTR {EINTR , Num_IoErr_EINTR}, #endif #ifdef EIO {EIO , Num_IoErr_EIO}, #endif #ifdef ENXIO {ENXIO , Num_IoErr_ENXIO}, #endif #ifdef E2BIG {E2BIG , Num_IoErr_E2BIG}, #endif #ifdef ENOEXEC {ENOEXEC , Num_IoErr_ENOEXEC}, #endif #ifdef EBADF {EBADF , Num_IoErr_EBADF}, #endif #ifdef ECHILD {ECHILD , Num_IoErr_ECHILD}, #endif #ifdef EDEADLK {EDEADLK , Num_IoErr_EDEADLK}, #endif #ifdef ENOMEM {ENOMEM , Num_IoErr_ENOMEM}, #endif #ifdef EACCES {EACCES , Num_IoErr_EACCES}, #endif #ifdef EFAULT {EFAULT , Num_IoErr_EFAULT}, #endif #ifdef ENOTBLK {ENOTBLK , Num_IoErr_ENOTBLK}, #endif #ifdef EBUSY {EBUSY , Num_IoErr_EBUSY}, #endif #ifdef EEXIST {EEXIST , Num_IoErr_EEXIST}, #endif #ifdef EXDEV {EXDEV , Num_IoErr_EXDEV}, #endif #ifdef ENODEV {ENODEV , Num_IoErr_ENODEV}, #endif #ifdef ENOTDIR {ENOTDIR , Num_IoErr_ENOTDIR}, #endif #ifdef EISDIR {EISDIR , Num_IoErr_EISDIR}, #endif #ifdef EINVAL {EINVAL , Num_IoErr_EINVAL}, #endif #ifdef ENFILE {ENFILE , Num_IoErr_ENFILE}, #endif #ifdef EMFILE {EMFILE , Num_IoErr_EMFILE}, #endif #ifdef ENOTTY {ENOTTY , Num_IoErr_ENOTTY}, #endif #ifdef ETXTBSY {ETXTBSY , Num_IoErr_ETXTBSY}, #endif #ifdef EFBIG {EFBIG , Num_IoErr_EFBIG}, #endif #ifdef ENOSPC {ENOSPC , Num_IoErr_ENOSPC}, #endif #ifdef ESPIPE {ESPIPE , Num_IoErr_ESPIPE}, #endif #ifdef EROFS {EROFS , Num_IoErr_EROFS}, #endif #ifdef EMLINK {EMLINK , Num_IoErr_EMLINK}, #endif #ifdef EPIPE {EPIPE , Num_IoErr_EPIPE}, #endif #ifdef EDOM {EDOM , Num_IoErr_EDOM}, #endif #ifdef ERANGE {ERANGE , Num_IoErr_ERANGE}, #endif #ifdef ENAMETOOLONG {ENAMETOOLONG, Num_IoErr_ENAMETOOLONG}, #endif #ifdef ENOLCK {ENOLCK , Num_IoErr_ENOLCK}, #endif #ifdef ENOSYS {ENOSYS , Num_IoErr_ENOSYS}, #endif #ifdef ENOTEMPTY {ENOTEMPTY , Num_IoErr_ENOTEMPTY}, #endif #ifdef ELOOP {ELOOP , Num_IoErr_ELOOP}, #endif #ifdef EWOULDBLOCK {EWOULDBLOCK , Num_IoErr_EWOULDBLOCK}, #endif #ifdef ENOMSG {ENOMSG , Num_IoErr_ENOMSG}, #endif #ifdef EIDRM {EIDRM , Num_IoErr_EIDRM}, #endif #ifdef ECHRNG {ECHRNG , Num_IoErr_ECHRNG}, #endif #ifdef EL2NSYNC {EL2NSYNC , Num_IoErr_EL2NSYNC}, #endif #ifdef EL3HLT {EL3HLT , Num_IoErr_EL3HLT}, #endif #ifdef EL3RST {EL3RST , Num_IoErr_EL3RST}, #endif #ifdef ELNRNG {ELNRNG , Num_IoErr_ELNRNG}, #endif #ifdef EUNATCH {EUNATCH , Num_IoErr_EUNATCH}, #endif #ifdef ENOCSI {ENOCSI , Num_IoErr_ENOCSI}, #endif {-1,-1}}; char *GetErrorMsg(int number) BEGIN static String hs; ErrorDef *z; for (z=ErrorDefs; z->Msg!=-1; z++) if (number==z->Code) break; if (z->Msg!=-1) return catgetmessage(&MsgCat,z->Msg); else BEGIN sprintf(hs,"%s%d",catgetmessage(&MsgCat,Num_IoErrUnknown),number); return hs; END END void ioerrs_init(char *ProgPath) BEGIN opencatalog(&MsgCat,"ioerrs.msg",ProgPath,MsgId1,MsgId2); END