luna: Add error_name, similar to strerrorname_np from glibc
All checks were successful
continuous-integration/drone/push Build is passing

man strerrorname_np(3)
This commit is contained in:
apio 2023-03-07 13:14:21 +01:00
parent 3a2e5b7ce0
commit 80492f6ad3
Signed by: apio
GPG Key ID: B8A7D06E42258954
2 changed files with 65 additions and 0 deletions

View File

@ -60,6 +60,7 @@
#ifndef _LUNA_SOURCE
const char* error_string(int error);
const char* error_name(int error);
#endif
#endif

View File

@ -61,3 +61,67 @@ const char* error_string(int error)
default: return "Unknown error";
}
}
const char* error_name(int error)
{
#define ERROR(name) \
case name: return #name
switch (error)
{
ERROR(EPERM);
ERROR(ENOENT);
ERROR(ESRCH);
ERROR(EINTR);
ERROR(EIO);
ERROR(ENXIO);
ERROR(E2BIG);
ERROR(ENOEXEC);
ERROR(EBADF);
ERROR(ECHILD);
ERROR(EAGAIN);
ERROR(ENOMEM);
ERROR(EACCES);
ERROR(EFAULT);
ERROR(ENOTBLK);
ERROR(EBUSY);
ERROR(EEXIST);
ERROR(EXDEV);
ERROR(ENODEV);
ERROR(ENOTDIR);
ERROR(EISDIR);
ERROR(EINVAL);
ERROR(ENFILE);
ERROR(EMFILE);
ERROR(ENOTTY);
ERROR(ETXTBSY);
ERROR(EFBIG);
ERROR(ENOSPC);
ERROR(ESPIPE);
ERROR(EROFS);
ERROR(EMLINK);
ERROR(EPIPE);
ERROR(EDOM);
ERROR(ERANGE);
ERROR(EDEADLK);
ERROR(ENAMETOOLONG);
ERROR(ENOLCK);
ERROR(ENOSYS);
ERROR(ENOTEMPTY);
ERROR(ELOOP);
ERROR(ENOMSG);
ERROR(EOVERFLOW);
ERROR(EILSEQ);
ERROR(ENOTSOCK);
ERROR(ENOTSUP);
ERROR(EADDRINUSE);
ERROR(ENETRESET);
ERROR(ECONNRESET);
ERROR(EISCONN);
ERROR(ETIMEDOUT);
ERROR(EALREADY);
default: return nullptr;
}
#undef ERROR
}