diff options
Diffstat (limited to 'extra/perror.c')
-rw-r--r-- | extra/perror.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/extra/perror.c b/extra/perror.c index 2daddb6636f..131dd2676ec 100644 --- a/extra/perror.c +++ b/extra/perror.c @@ -263,6 +263,7 @@ int main(int argc,char *argv[]) const char *msg; const char *name; char *unknown_error = 0; + char unknow_aix[30]; #if defined(_WIN32) my_bool skip_win_message= 0; #endif @@ -320,6 +321,9 @@ int main(int argc,char *argv[]) code=atoi(*argv); msg = strerror(code); + // On AIX, unknow error return " Error <CODE> occurred." + snprintf(unknow_aix, sizeof(unknow_aix), " Error %3d occurred.", code); + /* We don't print the OS error message if it is the same as the unknown_error message we retrieved above, or it starts with @@ -330,11 +334,18 @@ int main(int argc,char *argv[]) (const uchar*) "Unknown Error", 13) && (!unknown_error || strcmp(msg, unknown_error))) { - found= 1; - if (verbose) - printf("OS error code %3d: %s\n", code, msg); - else - puts(msg); +#ifdef _AIX + if (!strcmp(msg, unknow_aix)) + { +#endif + found= 1; + if (verbose) + printf("OS error code %3d: %s\n", code, msg); + else + puts(msg); +#ifdef _AIX + } +#endif } if ((msg= get_ha_error_msg(code))) { |