summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authormsvensson@neptunus.(none) <>2006-08-01 20:24:30 +0200
committermsvensson@neptunus.(none) <>2006-08-01 20:24:30 +0200
commit31be565d2ed48ebc2d4bc57d0896b8750810527b (patch)
tree846b441c9730546494aa063e2bc4f74751efde48 /extra
parentd8d17559eee16aa2f40159711f1b7967b79c5b6a (diff)
parent09a36146b85ec542a93e6d47bc645470d1ca30d3 (diff)
downloadmariadb-git-31be565d2ed48ebc2d4bc57d0896b8750810527b.tar.gz
Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
Diffstat (limited to 'extra')
-rw-r--r--extra/perror.c32
1 files changed, 19 insertions, 13 deletions
diff --git a/extra/perror.c b/extra/perror.c
index 82311c1b2c9..b26e516a101 100644
--- a/extra/perror.c
+++ b/extra/perror.c
@@ -218,8 +218,11 @@ int main(int argc,char *argv[])
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.
+
+ On Solaris 2.8 it might return NULL
*/
- msg= strerror(10000);
+ if ((msg= strerror(10000)) == NULL)
+ msg= "Unknown Error";
/*
Allocate a buffer for unknown_error since strerror always returns
@@ -258,7 +261,7 @@ int main(int argc,char *argv[])
found= 1;
msg= 0;
}
- else
+ else
#endif
msg = strerror(code);
@@ -278,20 +281,23 @@ int main(int argc,char *argv[])
else
puts(msg);
}
- if (!(msg=get_ha_error_msg(code)))
+
+ if (!found)
{
- if (!found)
- {
+ /* Error message still not found, look in handler error codes */
+ if (!(msg=get_ha_error_msg(code)))
+ {
fprintf(stderr,"Illegal error code: %d\n",code);
error=1;
- }
- }
- else
- {
- if (verbose)
- printf("MySQL error code %3d: %s\n",code,msg);
- else
- puts(msg);
+ }
+ else
+ {
+ found= 1;
+ if (verbose)
+ printf("MySQL error code %3d: %s\n",code,msg);
+ else
+ puts(msg);
+ }
}
}
}