1
0
mirror of https://github.com/golang/go synced 2024-11-12 08:00:22 -07:00

syscall: include all, even duplictate, invented error messages

Otherwise syscall.Errstr() returns "" for some (EWOULDBLOCK) errors.

R=rsc
CC=golang-dev
https://golang.org/cl/3941041
This commit is contained in:
Alex Brainman 2011-01-20 21:24:15 +11:00
parent de2184f3a8
commit 6d94b14e19
2 changed files with 4 additions and 9 deletions

View File

@ -152,7 +152,7 @@ struct {
int int
main(void) main(void)
{ {
int i, j, e, iota = 1; int i, e, iota = 1;
char buf[1024]; char buf[1024];
printf("\n// Go names for Windows errors.\n"); printf("\n// Go names for Windows errors.\n");
@ -169,11 +169,6 @@ main(void)
printf("\n// Invented values to support what package os and others expects.\n"); printf("\n// Invented values to support what package os and others expects.\n");
printf("const (\n"); printf("const (\n");
for(i=0; i<nelem(errors); i++) { for(i=0; i<nelem(errors); i++) {
e = errors[i].value;
strcpy(buf, strerror(e));
// lowercase first letter: Bad -> bad, but STREAM -> STREAM.
if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)
buf[0] += a - A;
printf("\t%s", errors[i].name); printf("\t%s", errors[i].name);
if(iota) { if(iota) {
printf(" = APPLICATION_ERROR + iota"); printf(" = APPLICATION_ERROR + iota");
@ -189,9 +184,6 @@ main(void)
printf("var errors = [...]string {\n"); printf("var errors = [...]string {\n");
for(i=0; i<nelem(errors); i++) { for(i=0; i<nelem(errors); i++) {
e = errors[i].value; e = errors[i].value;
for(j=0; j<i; j++)
if(errors[j].value == e) // duplicate value
goto next;
strcpy(buf, strerror(e)); strcpy(buf, strerror(e));
// lowercase first letter: Bad -> bad, but STREAM -> STREAM. // lowercase first letter: Bad -> bad, but STREAM -> STREAM.
if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)

View File

@ -174,6 +174,7 @@ var errors = [...]string{
ECONNREFUSED - APPLICATION_ERROR: "connection refused", ECONNREFUSED - APPLICATION_ERROR: "connection refused",
ECONNRESET - APPLICATION_ERROR: "connection reset by peer", ECONNRESET - APPLICATION_ERROR: "connection reset by peer",
EDEADLK - APPLICATION_ERROR: "resource deadlock avoided", EDEADLK - APPLICATION_ERROR: "resource deadlock avoided",
EDEADLOCK - APPLICATION_ERROR: "resource deadlock avoided",
EDESTADDRREQ - APPLICATION_ERROR: "destination address required", EDESTADDRREQ - APPLICATION_ERROR: "destination address required",
EDOM - APPLICATION_ERROR: "numerical argument out of domain", EDOM - APPLICATION_ERROR: "numerical argument out of domain",
EDOTDOT - APPLICATION_ERROR: "RFS specific error", EDOTDOT - APPLICATION_ERROR: "RFS specific error",
@ -246,6 +247,7 @@ var errors = [...]string{
ENOTTY - APPLICATION_ERROR: "inappropriate ioctl for device", ENOTTY - APPLICATION_ERROR: "inappropriate ioctl for device",
ENOTUNIQ - APPLICATION_ERROR: "name not unique on network", ENOTUNIQ - APPLICATION_ERROR: "name not unique on network",
ENXIO - APPLICATION_ERROR: "no such device or address", ENXIO - APPLICATION_ERROR: "no such device or address",
EOPNOTSUPP - APPLICATION_ERROR: "operation not supported",
EOVERFLOW - APPLICATION_ERROR: "value too large for defined data type", EOVERFLOW - APPLICATION_ERROR: "value too large for defined data type",
EOWNERDEAD - APPLICATION_ERROR: "owner died", EOWNERDEAD - APPLICATION_ERROR: "owner died",
EPERM - APPLICATION_ERROR: "operation not permitted", EPERM - APPLICATION_ERROR: "operation not permitted",
@ -274,6 +276,7 @@ var errors = [...]string{
EUCLEAN - APPLICATION_ERROR: "structure needs cleaning", EUCLEAN - APPLICATION_ERROR: "structure needs cleaning",
EUNATCH - APPLICATION_ERROR: "protocol driver not attached", EUNATCH - APPLICATION_ERROR: "protocol driver not attached",
EUSERS - APPLICATION_ERROR: "too many users", EUSERS - APPLICATION_ERROR: "too many users",
EWOULDBLOCK - APPLICATION_ERROR: "resource temporarily unavailable",
EXDEV - APPLICATION_ERROR: "invalid cross-device link", EXDEV - APPLICATION_ERROR: "invalid cross-device link",
EXFULL - APPLICATION_ERROR: "exchange full", EXFULL - APPLICATION_ERROR: "exchange full",
EWINDOWS - APPLICATION_ERROR: "not supported by windows", EWINDOWS - APPLICATION_ERROR: "not supported by windows",