diff options
author | monty@mysql.com <> | 2004-05-25 22:01:50 +0300 |
---|---|---|
committer | monty@mysql.com <> | 2004-05-25 22:01:50 +0300 |
commit | ca8dbc24eef40f78464400ad4492b0d9b39c29ff (patch) | |
tree | f5abb32f436bbc05db102bf322757f4a03aaa850 /extra | |
parent | 7ee9540976dd3130d575a1bb677ad13a4bb1b572 (diff) | |
parent | f2e1e3ce4c72d383f16fd8c525b28c4912e8f2de (diff) | |
download | mariadb-git-ca8dbc24eef40f78464400ad4492b0d9b39c29ff.tar.gz |
Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/tmp/skr99/mysql-4.0
Diffstat (limited to 'extra')
-rw-r--r-- | extra/perror.c | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/extra/perror.c b/extra/perror.c index 6d9744a39da..b4405fdc5dd 100644 --- a/extra/perror.c +++ b/extra/perror.c @@ -16,7 +16,7 @@ /* Return error-text for system error messages and nisam messages */ -#define PERROR_VERSION "2.9" +#define PERROR_VERSION "2.10" #include <my_global.h> #include <my_sys.h> @@ -195,16 +195,30 @@ int main(int argc,char *argv[]) else #endif { + /* + On some system, like NETWARE, strerror(unknown_error) returns a + string 'Unknown Error'. To avoid printing it we try to find the + error string by asking for an impossible big error message. + */ + const char *unknown_error= strerror(10000); + for ( ; argc-- > 0 ; argv++) { found=0; code=atoi(*argv); - msg = strerror(code); - if (msg) + msg= strerror(code); + + /* + Don't print message for not existing error messages or for + unknown errors. We test for 'Uknown Errors' just as an + extra safety for Netware + */ + if (msg && strcmp(msg, "Unknown Error") && + (!unknown_error || strcmp(msg, unknown_error))) { found=1; if (verbose) - printf("Error code %3d: %s\n",code,msg); + printf("System error: %3d = %s\n",code,msg); else puts(msg); } @@ -219,7 +233,7 @@ int main(int argc,char *argv[]) else { if (verbose) - printf("%3d = %s\n",code,msg); + printf("MySql error: %3d = %s\n",code,msg); else puts(msg); } |