#include <xerrno.h>\r
-\r
-typedef struct s_entry\r
-{\r
- const char* name;\r
- int code;\r
- unsigned kind : 1; /* if 1 it's an error of the application else assume it's a system error */\r
- const char* string;\r
- \r
-}entry_t;\r
-\r
-\r
-static const\r
-entry_t err[] =\r
-{\r
- \r
- #ifdef E2BIG\r
- {"E2BIG", E2BIG, 0, "argument list too long"},\r
- #endif\r
- \r
- #ifdef EACCES\r
- {"EACCES", EACCES, 0, "permission denied"},\r
- #endif\r
- \r
- #ifdef EADDRINUSE\r
- {"EADDRINUSE", EADDRINUSE, 0, "address in use"},\r
- #endif\r
- \r
- #ifdef EADDRNOTAVAIL\r
- {"EADDRNOTAVAIL", EADDRNOTAVAIL, 0, "address not available"},\r
- #endif\r
- \r
- #ifdef EAFNOSUPPORT\r
- {"EAFNOSUPPORT", EAFNOSUPPORT, 0, "address family not supported"},\r
- #endif\r
- \r
- #ifdef EAGAIN\r
- {"EAGAIN", EAGAIN, 0, "resource unavailable, try again"},\r
- #endif\r
- \r
- #ifdef EALREADY\r
- {"EALREADY", EALREADY, 0, "connection already in progress"},\r
- #endif\r
- \r
- #ifdef EBADF\r
- {"EBADF", EBADF, 0, "bad file descriptor"},\r
- #endif\r
- \r
- #ifdef EBADMSG\r
- {"EBADMSG", EBADMSG, 0, "bad message"},\r
- #endif\r
- \r
- #ifdef EBUSY\r
- {"EBUSY", EBUSY, 0, "device or resource busy"},\r
- #endif\r
- \r
- #ifdef ECANCELED\r
- {"ECANCELED", ECANCELED, 0, "operation canceled"},\r
- #endif\r
- \r
- #ifdef ECHILD\r
- {"ECHILD", ECHILD, 0, "no child processes"},\r
- #endif\r
- \r
- #ifdef ECONNABORTED\r
- {"ECONNABORTED", ECONNABORTED, 0, "connection aborted"},\r
- #endif\r
- \r
- #ifdef ECONNREFUSED\r
- {"ECONNREFUSED", ECONNREFUSED, 0, "connection refused"},\r
- #endif\r
- \r
- #ifdef ECONNRESET\r
- {"ECONNRESET", ECONNRESET, 0, "connection reset"},\r
- #endif\r
- \r
- #ifdef EDEADLK\r
- {"EDEADLK", EDEADLK, 0, "resource deadlock would occur"},\r
- #endif\r
- \r
- #ifdef EDESTADDRREQ\r
- {"EDESTADDRREQ", EDESTADDRREQ, 0, "destination address required"},\r
- #endif\r
- \r
- #ifdef EDOM\r
- {"EDOM", EDOM, 0, "mathematics argument out of domain of function"},\r
- #endif \r
- \r
- #ifdef EEXIST\r
- {"EEXIST", EEXIST, 0, "file exists"},\r
- #endif\r
- \r
- #ifdef EFAULT\r
- {"EFAULT", EFAULT, 0, "bad address"},\r
- #endif\r
- \r
- #ifdef EFBIG\r
- {"EFBIG", EFBIG, 0, "file too large"},\r
- #endif\r
- \r
- #ifdef EHOSTUNREACH\r
- {"EHOSTUNREACH", EHOSTUNREACH, 0, "host is unreachable"},\r
- #endif\r
- \r
- #ifdef EIDRM\r
- {"EIDRM", EIDRM, 0, "identifier removed"},\r
- #endif\r
- \r
- #ifdef EILSEQ\r
- {"EILSEQ", EILSEQ, 0, "illegal byte sequence"},\r
- #endif\r
- \r
- #ifdef EINPROGRESS\r
- {"EINPROGRESS", EINPROGRESS, 0, "operation in progress"},\r
- #endif\r
- \r
- #ifdef EINTR\r
- {"EINTR", EINTR, 0, "interrupted function"},\r
- #endif\r
- \r
- #ifdef EINVAL\r
- {"EINVAL", EINVAL, 0, "invalid argument"},\r
- #endif\r
- \r
- #ifdef EIO\r
- {"EIO", EIO, 0, "I/O error"},\r
- #endif\r
- \r
- #ifdef EISCONN\r
- {"EISCONN", EISCONN, 0, "socket is connected"},\r
- #endif\r
- \r
- #ifdef EISDIR\r
- {"EISDIR", EISDIR, 0, "is a directory"},\r
- #endif\r
- \r
- #ifdef ELOOP\r
- {"ELOOP", ELOOP, 0, "too many levels of symbolic links"},\r
- #endif\r
- \r
- #ifdef EMFILE\r
- {"EMFILE", EMFILE, 0, "too many open files"},\r
- #endif\r
- \r
- #ifdef EMLINK\r
- {"EMLINK", EMLINK, 0, "too many links"},\r
- #endif\r
- \r
- #ifdef EMSGSIZE\r
- {"EMSGSIZE", EMSGSIZE, 0, "message too large"},\r
- #endif\r
- \r
- #ifdef ENAMETOOLONG\r
- {"ENAMETOOLONG", ENAMETOOLONG, 0, "filename too long"},\r
- #endif\r
- \r
- #ifdef ENETDOWN\r
- {"ENETDOWN", ENETDOWN, 0, "network is down"},\r
- #endif\r
- \r
- #ifdef ENETRESET\r
- {"ENETRESET", ENETRESET, 0, "connection aborted by network"},\r
- #endif\r
- \r
- #ifdef ENETUNREACH\r
- {"ENETUNREACH", ENETUNREACH, 0, "network unreachable"},\r
- #endif\r
- \r
- #ifdef ENFILE\r
- {"ENFILE", ENFILE, 0, "too many files open in system"},\r
- #endif\r
- \r
- #ifdef ENOBUFS\r
- {"ENOBUFS", ENOBUFS, 0, "no buffer space available"},\r
- #endif\r
- \r
- #ifdef ENODATA\r
- {"ENODATA", ENODATA, 0, "no message is available on the STREAM head read queue"},\r
- #endif\r
- \r
- #ifdef ENODEV\r
- {"ENODEV", ENODEV, 0, "no such device"},\r
- #endif\r
- \r
- #ifdef ENOENT\r
- {"ENOENT", ENOENT, 0, "no such file or directory"},\r
- #endif\r
- \r
- #ifdef ENOEXEC\r
- {"ENOEXEC", ENOEXEC, 0, "executable file format error"},\r
- #endif\r
- \r
- #ifdef ENOLCK\r
- {"ENOLCK", ENOLCK, 0, "no locks available"},\r
- #endif\r
- \r
- #ifdef ENOMEM\r
- {"ENOMEM", ENOMEM, 0, "not enough space"},\r
- #endif\r
- \r
- #ifdef ENOMSG\r
- {"ENOMSG", ENOMSG, 0, "no message of the desired type"},\r
- #endif\r
- \r
- #ifdef ENOPROTOOPT\r
- {"ENOPROTOOPT", ENOPROTOOPT, 0, "protocol not available"},\r
- #endif\r
- \r
- #ifdef ENOSPC\r
- {"ENOSPC", ENOSPC, 0, "no space left on device"},\r
- #endif\r
- \r
- #ifdef ENOSR\r
- {"ENOSR", ENOSR, 0, "no stream resources"},\r
- #endif\r
- \r
- #ifdef ENOSTR\r
- {"ENOSTR", ENOSTR, 0, "not a stream"},\r
- #endif\r
- \r
- #ifdef ENOSYS\r
- {"ENOSYS", ENOSYS, 0, "function not supported"},\r
- #endif\r
- \r
- #ifdef ENOTCONN\r
- {"ENOTCONN", ENOTCONN, 0, "the socket is not connected"},\r
- #endif\r
- \r
- #ifdef ENOTDIR\r
- {"ENOTDIR", ENOTDIR, 0, "not a directory"},\r
- #endif\r
- \r
- #ifdef ENOTEMPTY\r
- {"ENOTEMPTY", ENOTEMPTY, 0, "directory not empty"},\r
- #endif\r
- \r
- #ifdef ENOTSOCK\r
- {"ENOTSOCK", ENOTSOCK, 0, "not a socket"},\r
- #endif\r
- \r
- #ifdef ENOTSUP\r
- {"ENOTSUP", ENOTSUP, 0, "not supported"},\r
- #endif\r
- \r
- #ifdef ENOTTY\r
- {"ENOTTY", ENOTTY, 0, "inappropriate I/O control operation"},\r
- #endif\r
- \r
- #ifdef ENXIO\r
- {"ENXIO", ENXIO, 0, "no such device or address"},\r
- #endif\r
- \r
- #ifdef EOPNOTSUPP\r
- {"EOPNOTSUPP", EOPNOTSUPP, 0, "operation not supported on socket"},\r
- #endif\r
- \r
- #ifdef EOVERFLOW\r
- {"EOVERFLOW", EOVERFLOW, 0, "value too large to be stored in data type"},\r
- #endif\r
- \r
- #ifdef EPERM\r
- {"EPERM", EPERM, 0, "operation not permitted"},\r
- #endif\r
- \r
- #ifdef EPIPE\r
- {"EPIPE", EPIPE, 0, "broken pipe"},\r
- #endif\r
- \r
- #ifdef EPROTO\r
- {"EPROTO", EPROTO, 0, "protocol error"},\r
- #endif\r
- \r
- #ifdef EPROTONOSUPPORT\r
- {"EPROTONOSUPPORT", EPROTONOSUPPORT, 0, "protocol not supported"},\r
- #endif\r
- \r
- #ifdef EPROTOTYPE\r
- {"EPROTOTYPE", EPROTOTYPE, 0, "protocol wrong type for socket"},\r
- #endif\r
- \r
- #ifdef ERANGE\r
- {"ERANGE", ERANGE, 0, "result too large"},\r
- #endif\r
- \r
- #ifdef EROFS\r
- {"EROFS", EROFS, 0, "read-only file system"},\r
- #endif\r
- \r
- #ifdef ESPIPE\r
- {"ESPIPE", ESPIPE, 0, "invalid seek"},\r
- #endif\r
- \r
- #ifdef ESRCH\r
- {"ESRCH", ESRCH, 0, "no such process"},\r
- #endif\r
- \r
- #ifdef ETIME\r
- {"ETIME", ETIME, 0, "stream ioctl() timeout"},\r
- #endif\r
- \r
- #ifdef ETIMEDOUT\r
- {"ETIMEDOUT", ETIMEDOUT, 0, "connection timed out"},\r
- #endif\r
- \r
- #ifdef ETXTBSY\r
- {"ETXTBSY", ETXTBSY, 0, "text file busy"},\r
- #endif\r
- \r
- #ifdef EWOULDBLOCK\r
- {"EWOULDBLOCK", EWOULDBLOCK, 0, "operation would block"},\r
- #endif\r
- \r
- #ifdef EXDEV\r
- {"EXDEV", EXDEV, 0, "cross-device link"},\r
- #endif\r
- \r
- {"ECMDTIMEDOUT", ECMDTIMEDOUT, 1, "command timed out"},\r
-\r
- {"ECMDNOTFOUND", ECMDNOTFOUND,1, "command not found"},\r
-\r
- {"EEXITCODENOTMATCH", EEXITCODENOTMATCH,1, "exit code mismatch"},\r
-\r
- {"EOUTPUTNOTMATCH", EOUTPUTNOTMATCH,1, "output mismatch"},\r
-\r
- {"ESIGNOTMATCH", ESIGNOTMATCH,1, "signal mismatch"},\r
-\r
- {"EUNXPSIG", EUNXPSIG,1, "unexpected signal caught"},\r
-\r
- {"ESIGNOTRECEIPT", ESIGNOTRECEIVED,1, "expected signal not receipt"},\r
-\r
- {"EPROCCMDLINE", EPROCCMDLINE, 1, "command line processing failed"},\r
-\r
- {"ENOARG", ENOARG, 1, "none optional argument not specified"},\r
-\r
- {"ENOTPOSITIVENUM", ENOTPOSITIVENUM, 1, "argument option not strictly positive"},\r
-\r
- {"ESYNTAX", ESYNTAX,1, "syntax error"},\r
-\r
- {"ELEADTIME", ELEADTIME, 1, "timed out"},\r
-\r
- {"EREADMENOTFOUND", EREADMENOTFOUND,1, "unable to locate the README.txt file"},\r
-\r
- {"EINCLUDENOTFOUND", EINCLUDENOTFOUND, 1, "include file not found"},\r
-\r
- {"ESUFFIXTOOLONG", ESUFFIXTOOLONG,1, "suffix too long"},\r
-\r
- {"EINVCMDLINE", EINVCMDLINE,1, "invalid command line"},\r
-\r
- {"unkwown", -1, 0, "unknown"}\r
-};\r
-\r
+\r typedef struct s_entry \r {
+ \rconst char *name;
+ \r int code;
+ \r unsigned kind:1; /* if 1 it's an error of the application else assume it's a system error */
+ \r const char *string;
+\r \r} entry_t;
+\r\r\rstatic const \r entry_t err[] = \r{ \r\r
+#ifdef E2BIG\r
+ {"E2BIG", E2BIG, 0, "argument list too long"}, \r
+#endif /* \r */
+ \r
+#ifdef EACCES\r
+ {"EACCES", EACCES, 0, "permission denied"}, \r
+#endif /* \r */
+ \r
+#ifdef EADDRINUSE\r
+ {"EADDRINUSE", EADDRINUSE, 0, "address in use"}, \r
+#endif /* \r */
+ \r
+#ifdef EADDRNOTAVAIL\r
+ {"EADDRNOTAVAIL", EADDRNOTAVAIL, 0, "address not available"}, \r
+#endif /* \r */
+ \r
+#ifdef EAFNOSUPPORT\r
+ {"EAFNOSUPPORT", EAFNOSUPPORT, 0, "address family not supported"}, \r
+#endif /* \r */
+ \r
+#ifdef EAGAIN\r
+ {"EAGAIN", EAGAIN, 0, "resource unavailable, try again"}, \r
+#endif /* \r */
+ \r
+#ifdef EALREADY\r
+ {"EALREADY", EALREADY, 0, "connection already in progress"}, \r
+#endif /* \r */
+ \r
+#ifdef EBADF\r
+ {"EBADF", EBADF, 0, "bad file descriptor"}, \r
+#endif /* \r */
+ \r
+#ifdef EBADMSG\r
+ {"EBADMSG", EBADMSG, 0, "bad message"}, \r
+#endif /* \r */
+ \r
+#ifdef EBUSY\r
+ {"EBUSY", EBUSY, 0, "device or resource busy"}, \r
+#endif /* \r */
+ \r
+#ifdef ECANCELED\r
+ {"ECANCELED", ECANCELED, 0, "operation canceled"}, \r
+#endif /* \r */
+ \r
+#ifdef ECHILD\r
+ {"ECHILD", ECHILD, 0, "no child processes"}, \r
+#endif /* \r */
+ \r
+#ifdef ECONNABORTED\r
+ {"ECONNABORTED", ECONNABORTED, 0, "connection aborted"}, \r
+#endif /* \r */
+ \r
+#ifdef ECONNREFUSED\r
+ {"ECONNREFUSED", ECONNREFUSED, 0, "connection refused"}, \r
+#endif /* \r */
+ \r
+#ifdef ECONNRESET\r
+ {"ECONNRESET", ECONNRESET, 0, "connection reset"}, \r
+#endif /* \r */
+ \r
+#ifdef EDEADLK\r
+ {"EDEADLK", EDEADLK, 0, "resource deadlock would occur"}, \r
+#endif /* \r */
+ \r
+#ifdef EDESTADDRREQ\r
+ {"EDESTADDRREQ", EDESTADDRREQ, 0, "destination address required"}, \r
+#endif /* \r */
+ \r
+#ifdef EDOM\r
+ {"EDOM", EDOM, 0, "mathematics argument out of domain of function"}, \r
+#endif /* \r */
+ \r
+#ifdef EEXIST\r
+ {"EEXIST", EEXIST, 0, "file exists"}, \r
+#endif /* \r */
+ \r
+#ifdef EFAULT\r
+ {"EFAULT", EFAULT, 0, "bad address"}, \r
+#endif /* \r */
+ \r
+#ifdef EFBIG\r
+ {"EFBIG", EFBIG, 0, "file too large"}, \r
+#endif /* \r */
+ \r
+#ifdef EHOSTUNREACH\r
+ {"EHOSTUNREACH", EHOSTUNREACH, 0, "host is unreachable"}, \r
+#endif /* \r */
+ \r
+#ifdef EIDRM\r
+ {"EIDRM", EIDRM, 0, "identifier removed"}, \r
+#endif /* \r */
+ \r
+#ifdef EILSEQ\r
+ {"EILSEQ", EILSEQ, 0, "illegal byte sequence"}, \r
+#endif /* \r */
+ \r
+#ifdef EINPROGRESS\r
+ {"EINPROGRESS", EINPROGRESS, 0, "operation in progress"}, \r
+#endif /* \r */
+ \r
+#ifdef EINTR\r
+ {"EINTR", EINTR, 0, "interrupted function"}, \r
+#endif /* \r */
+ \r
+#ifdef EINVAL\r
+ {"EINVAL", EINVAL, 0, "invalid argument"}, \r
+#endif /* \r */
+ \r
+#ifdef EIO\r
+ {"EIO", EIO, 0, "I/O error"}, \r
+#endif /* \r */
+ \r
+#ifdef EISCONN\r
+ {"EISCONN", EISCONN, 0, "socket is connected"}, \r
+#endif /* \r */
+ \r
+#ifdef EISDIR\r
+ {"EISDIR", EISDIR, 0, "is a directory"}, \r
+#endif /* \r */
+ \r
+#ifdef ELOOP\r
+ {"ELOOP", ELOOP, 0, "too many levels of symbolic links"}, \r
+#endif /* \r */
+ \r
+#ifdef EMFILE\r
+ {"EMFILE", EMFILE, 0, "too many open files"}, \r
+#endif /* \r */
+ \r
+#ifdef EMLINK\r
+ {"EMLINK", EMLINK, 0, "too many links"}, \r
+#endif /* \r */
+ \r
+#ifdef EMSGSIZE\r
+ {"EMSGSIZE", EMSGSIZE, 0, "message too large"}, \r
+#endif /* \r */
+ \r
+#ifdef ENAMETOOLONG\r
+ {"ENAMETOOLONG", ENAMETOOLONG, 0, "filename too long"}, \r
+#endif /* \r */
+ \r
+#ifdef ENETDOWN\r
+ {"ENETDOWN", ENETDOWN, 0, "network is down"}, \r
+#endif /* \r */
+ \r
+#ifdef ENETRESET\r
+ {"ENETRESET", ENETRESET, 0, "connection aborted by network"}, \r
+#endif /* \r */
+ \r
+#ifdef ENETUNREACH\r
+ {"ENETUNREACH", ENETUNREACH, 0, "network unreachable"}, \r
+#endif /* \r */
+ \r
+#ifdef ENFILE\r
+ {"ENFILE", ENFILE, 0, "too many files open in system"}, \r
+#endif /* \r */
+ \r
+#ifdef ENOBUFS\r
+ {"ENOBUFS", ENOBUFS, 0, "no buffer space available"}, \r
+#endif /* \r */
+ \r
+#ifdef ENODATA\r
+ {"ENODATA", ENODATA, 0,
+ "no message is available on the STREAM head read queue"}, \r
+#endif /* \r */
+ \r
+#ifdef ENODEV\r
+ {"ENODEV", ENODEV, 0, "no such device"}, \r
+#endif /* \r */
+ \r
+#ifdef ENOENT\r
+ {"ENOENT", ENOENT, 0, "no such file or directory"}, \r
+#endif /* \r */
+ \r
+#ifdef ENOEXEC\r
+ {"ENOEXEC", ENOEXEC, 0, "executable file format error"}, \r
+#endif /* \r */
+ \r
+#ifdef ENOLCK\r
+ {"ENOLCK", ENOLCK, 0, "no locks available"}, \r
+#endif /* \r */
+ \r
+#ifdef ENOMEM\r
+ {"ENOMEM", ENOMEM, 0, "not enough space"}, \r
+#endif /* \r */
+ \r
+#ifdef ENOMSG\r
+ {"ENOMSG", ENOMSG, 0, "no message of the desired type"}, \r
+#endif /* \r */
+ \r
+#ifdef ENOPROTOOPT\r
+ {"ENOPROTOOPT", ENOPROTOOPT, 0, "protocol not available"}, \r
+#endif /* \r */
+ \r
+#ifdef ENOSPC\r
+ {"ENOSPC", ENOSPC, 0, "no space left on device"}, \r
+#endif /* \r */
+ \r
+#ifdef ENOSR\r
+ {"ENOSR", ENOSR, 0, "no stream resources"}, \r
+#endif /* \r */
+ \r
+#ifdef ENOSTR\r
+ {"ENOSTR", ENOSTR, 0, "not a stream"}, \r
+#endif /* \r */
+ \r
+#ifdef ENOSYS\r
+ {"ENOSYS", ENOSYS, 0, "function not supported"}, \r
+#endif /* \r */
+ \r
+#ifdef ENOTCONN\r
+ {"ENOTCONN", ENOTCONN, 0, "the socket is not connected"}, \r
+#endif /* \r */
+ \r
+#ifdef ENOTDIR\r
+ {"ENOTDIR", ENOTDIR, 0, "not a directory"}, \r
+#endif /* \r */
+ \r
+#ifdef ENOTEMPTY\r
+ {"ENOTEMPTY", ENOTEMPTY, 0, "directory not empty"}, \r
+#endif /* \r */
+ \r
+#ifdef ENOTSOCK\r
+ {"ENOTSOCK", ENOTSOCK, 0, "not a socket"}, \r
+#endif /* \r */
+ \r
+#ifdef ENOTSUP\r
+ {"ENOTSUP", ENOTSUP, 0, "not supported"}, \r
+#endif /* \r */
+ \r
+#ifdef ENOTTY\r
+ {"ENOTTY", ENOTTY, 0, "inappropriate I/O control operation"}, \r
+#endif /* \r */
+ \r
+#ifdef ENXIO\r
+ {"ENXIO", ENXIO, 0, "no such device or address"}, \r
+#endif /* \r */
+ \r
+#ifdef EOPNOTSUPP\r
+ {"EOPNOTSUPP", EOPNOTSUPP, 0, "operation not supported on socket"}, \r
+#endif /* \r */
+ \r
+#ifdef EOVERFLOW\r
+ {"EOVERFLOW", EOVERFLOW, 0, "value too large to be stored in data type"}, \r
+#endif /* \r */
+ \r
+#ifdef EPERM\r
+ {"EPERM", EPERM, 0, "operation not permitted"}, \r
+#endif /* \r */
+ \r
+#ifdef EPIPE\r
+ {"EPIPE", EPIPE, 0, "broken pipe"}, \r
+#endif /* \r */
+ \r
+#ifdef EPROTO\r
+ {"EPROTO", EPROTO, 0, "protocol error"}, \r
+#endif /* \r */
+ \r
+#ifdef EPROTONOSUPPORT\r
+ {"EPROTONOSUPPORT", EPROTONOSUPPORT, 0, "protocol not supported"}, \r
+#endif /* \r */
+ \r
+#ifdef EPROTOTYPE\r
+ {"EPROTOTYPE", EPROTOTYPE, 0, "protocol wrong type for socket"}, \r
+#endif /* \r */
+ \r
+#ifdef ERANGE\r
+ {"ERANGE", ERANGE, 0, "result too large"}, \r
+#endif /* \r */
+ \r
+#ifdef EROFS\r
+ {"EROFS", EROFS, 0, "read-only file system"}, \r
+#endif /* \r */
+ \r
+#ifdef ESPIPE\r
+ {"ESPIPE", ESPIPE, 0, "invalid seek"}, \r
+#endif /* \r */
+ \r
+#ifdef ESRCH\r
+ {"ESRCH", ESRCH, 0, "no such process"}, \r
+#endif /* \r */
+ \r
+#ifdef ETIME\r
+ {"ETIME", ETIME, 0, "stream ioctl() timeout"}, \r
+#endif /* \r */
+ \r
+#ifdef ETIMEDOUT\r
+ {"ETIMEDOUT", ETIMEDOUT, 0, "connection timed out"}, \r
+#endif /* \r */
+ \r
+#ifdef ETXTBSY\r
+ {"ETXTBSY", ETXTBSY, 0, "text file busy"}, \r
+#endif /* \r */
+ \r
+#ifdef EWOULDBLOCK\r
+ {"EWOULDBLOCK", EWOULDBLOCK, 0, "operation would block"}, \r
+#endif /* \r */
+ \r
+#ifdef EXDEV\r
+ {"EXDEV", EXDEV, 0, "cross-device link"}, \r
+#endif /* \r */
+ \r
+ {"ECMDTIMEDOUT", ECMDTIMEDOUT, 1, "command timed out"}, \r\r
+ {"ECMDNOTFOUND", ECMDNOTFOUND, 1, "command not found"}, \r\r
+ {"EEXITCODENOTMATCH", EEXITCODENOTMATCH, 1, "exit code mismatch"}, \r\r
+ {"EOUTPUTNOTMATCH", EOUTPUTNOTMATCH, 1, "output mismatch"}, \r\r
+ {"ESIGNOTMATCH", ESIGNOTMATCH, 1, "signal mismatch"}, \r\r
+ {"EUNXPSIG", EUNXPSIG, 1, "unexpected signal caught"}, \r\r
+ {"ESIGNOTRECEIPT", ESIGNOTRECEIVED, 1,
+ "expected signal not receipt"}, \r\r{"EPROCCMDLINE", EPROCCMDLINE, 1,
+ "command line processing failed"},
+ \r\r{"ENOARG", ENOARG, 1, "none optional argument not specified"},
+ \r\r{"ENOTPOSITIVENUM", ENOTPOSITIVENUM, 1,
+ "argument option not strictly positive"}, \r\r{"ESYNTAX", ESYNTAX,
+ 1, "syntax error"},
+ \r\r{"ELEADTIME", ELEADTIME, 1, "timed out"}, \r\r{"EREADMENOTFOUND",
+ EREADMENOTFOUND, 1,
+ "unable to locate the README.txt file"},
+ \r\r{"EINCLUDENOTFOUND", EINCLUDENOTFOUND, 1,
+ "include file not found"}, \r\r{"ESUFFIXTOOLONG", ESUFFIXTOOLONG, 1,
+ "suffix too long"},
+ \r\r{"EINVCMDLINE", EINVCMDLINE, 1, "invalid command line"},
+ \r\r{"unkwown", -1, 0, "unknown"} \r
+};
+
+\r\r
#include <stdio.h>\r
+ \r
+#ifdef _XBT_WIN32\r
+static char *\r w32error_to_string(DWORD errcode) \r
+{
+ \rstatic char buffer[128];
+ \r\r
+ /*\r
+ * Special code for winsock error handling.\r
+ */ \r
+ if (errcode > WSABASEERR)
+ \r {
+ \rHMODULE hModule = GetModuleHandle("wsock32");
+ \r\rif (hModule)
+ \r {
+ \rFormatMessage(FORMAT_MESSAGE_FROM_HMODULE, hModule, errcode,
+ LANG_NEUTRAL, buffer, 128, NULL);
+ \rFreeLibrary(hModule);
+ \r}
+ \r}
+ \r
+ else
+ \r {
+ \r
+ /*\r
+ * Default system message handling\r
+ */ \r
+ FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, errcode,
+ LANG_NEUTRAL, buffer, 128, NULL);
+ \r}
+ \r\rreturn buffer;
+\r}
+
\r
-#ifdef WIN32\r
-static char *\r
-w32error_to_string(DWORD errcode) \r
-{\r
- static char buffer[128];\r
-\r
- /*\r
- * Special code for winsock error handling.\r
- */\r
- if (errcode > WSABASEERR) \r
- {\r
- HMODULE hModule = GetModuleHandle("wsock32");\r
- \r
- if(hModule) \r
- {\r
- FormatMessage(FORMAT_MESSAGE_FROM_HMODULE,hModule, errcode, LANG_NEUTRAL, buffer, 128, NULL);\r
- FreeLibrary(hModule);\r
- }\r
- } \r
- else \r
- {\r
- /*\r
- * Default system message handling\r
- */\r
- FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, errcode, LANG_NEUTRAL, buffer, 128, NULL);\r
- }\r
-\r
- return buffer;\r
-}\r
-#endif\r
-\r
-const char*\r
-error_to_string(int errcode, int kind)\r
-{\r
- int i;\r
- \r
- for(i = 0; err[i].code != -1; i++)\r
- if(err[i].code == errcode && err[i].kind == kind)\r
- return err[i].string;\r
-\r
- #ifdef WIN32\r
-\r
- /* assume it's a W32 error */\r
- return w32error_to_string((DWORD)errcode);\r
- #else\r
- return "unknow error"; \r
- #endif\r
- \r
-}\r
-\r
-const char*\r
-error_get_at(int pos, int* code)\r
-{\r
- if(pos < 0 || (pos > (sizeof(err)/sizeof(entry_t)) - 2))\r
- {\r
- errno = ERANGE;\r
- return NULL;\r
- }\r
- \r
- *code = err[pos].code;\r
- return err[pos].name;\r
-}\r
-\r
+#endif /* \r */
+\rconst char *\r error_to_string(int errcode, int kind) \r
+{
+ \rint i;
+ \r\rfor (i = 0; err[i].code != -1; i++)
+ \rif (err[i].code == errcode && err[i].kind == kind)
+ \rreturn err[i].string;
+ \r\r
+#ifdef _XBT_WIN32\r
+ \r
+ /* assume it's a W32 error */ \r
+ return w32error_to_string((DWORD) errcode);
+ \r
+#else /* \r */
+ return "unknow error";
+ \r
+#endif /* \r */
+\r}
+
+\r\rconst char *\r error_get_at(int pos, int *code) \r
+{
+ \rif (pos < 0 || (pos > (sizeof(err) / sizeof(entry_t)) - 2))
+ \r {
+ \rerrno = ERANGE;
+ \rreturn NULL;
+ \r}
+ \r\r*code = err[pos].code;
+ \rreturn err[pos].name;
+\r}
+
+\r\r