X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=db-mysql%2Fmysql-client-info.lisp;h=9b791df2302962c26be50f2035cf0de2a747f8be;hp=75abdd075b36c69d5439f5da6af4bc272616306a;hb=da9282a5c0ce927c613f1706f1c51796c75e16e4;hpb=9898f50385419417475b1c07874a16902695cb8b diff --git a/db-mysql/mysql-client-info.lisp b/db-mysql/mysql-client-info.lisp index 75abdd0..9b791df 100644 --- a/db-mysql/mysql-client-info.lisp +++ b/db-mysql/mysql-client-info.lisp @@ -7,8 +7,6 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: April 2004 ;;;; -;;;; $Id$ -;;;; ;;;; This file, part of CLSQL, is Copyright (c) 2004 by Kevin M. Rosenberg ;;;; ;;;; CLSQL users are granted the rights to distribute and use this software @@ -23,23 +21,31 @@ (defvar *mysql-client-info* nil) (eval-when (:compile-toplevel :load-toplevel :execute) - (uffi:def-function "mysql_get_client_info" + (uffi:def-function ("mysql_get_client_info" mysql-get-client-info) () :module "mysql" :returning :cstring) (setf *mysql-client-info* (uffi:convert-from-cstring (mysql-get-client-info))) + (when (and (stringp *mysql-client-info*) - (plusp (length *mysql-client-info*))) + (plusp (length *mysql-client-info*))) (cond ((eql (schar *mysql-client-info* 0) #\3) (pushnew :mysql-client-v3 cl:*features*)) ((eql (schar *mysql-client-info* 0) #\4) (pushnew :mysql-client-v4 cl:*features*) (when (and (>= (length *mysql-client-info*) 3) - (string-equal "4.1" *mysql-client-info* :end2 3)) - (pushnew :mysql-client-v4.1 cl:*features*))) + (string-equal "4.1" *mysql-client-info* :end2 3)) + (pushnew :mysql-client-v4.1 cl:*features*))) + ((eql (schar *mysql-client-info* 0) #\5) + (pushnew :mysql-client-v5 cl:*features*) + (when (and (>= (length *mysql-client-info*) 3) + (string-equal "5.1" *mysql-client-info* :end2 3)) + (pushnew :mysql-client-v5.1 cl:*features*))) + ((eql (schar *mysql-client-info* 0) #\6) + (pushnew :mysql-client-v6 cl:*features*)) (t (error "Unknown mysql client version '~A'." *mysql-client-info*)))))