/* Copyright (C) 2015 DJ Delorie, see COPYING.DJ for details */ /* Copyright (C) 2002 DJ Delorie, see COPYING.DJ for details */ /* Copyright (C) 2001 DJ Delorie, see COPYING.DJ for details */ /* Copyright (C) 2000 DJ Delorie, see COPYING.DJ for details */ /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ #include #include #include #include char * strerror(int errnum) { static char ebuf[40]; /* 64-bit number + slop */ char *cp; int v=1000000, lz=0; if (errnum >= 0 && errnum < __sys_nerr) return(unconst(__sys_errlist[errnum], char *)); strcpy(ebuf, "Unknown error: "); cp = ebuf + strlen(ebuf); if (errnum < 0) { *cp++ = '-'; errnum = -errnum; } while (v) { int d = errnum / v; if (d || lz || (v == 1)) { *cp++ = d+'0'; lz = 1; } errnum %= v; v /= 10; } return ebuf; }