sesser Tue Dec 10 10:41:38 2002 EDT Modified files: (Branch: PHP_4_3) /php4/ext/sybase php_sybase_db.c Log: MFH Index: php4/ext/sybase/php_sybase_db.c diff -u php4/ext/sybase/php_sybase_db.c:1.38 php4/ext/sybase/php_sybase_db.c:1.38.2.1 --- php4/ext/sybase/php_sybase_db.c:1.38 Wed Oct 9 09:29:04 2002 +++ php4/ext/sybase/php_sybase_db.c Tue Dec 10 10:41:38 2002 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_sybase_db.c,v 1.38 2002/10/09 13:29:04 iliaa Exp $ */ +/* $Id: php_sybase_db.c,v 1.38.2.1 2002/12/10 15:41:38 sesser Exp $ */ #ifdef HAVE_CONFIG_H @@ -720,11 +720,14 @@ if (dbwillconvert(coltype(offset),SYBCHAR)) { char *res_buf; int res_length = dbdatlen(sybase_ptr->link,offset); + int src_length = res_length; register char *p; switch (coltype(offset)) { case SYBBINARY: case SYBVARBINARY: + res_length *= 2; + break; case SYBCHAR: case SYBVARCHAR: case SYBTEXT: @@ -740,15 +743,16 @@ memset(res_buf,' ',res_length+1); /* XXX i'm sure there's a better way but i don't have sybase here to test 991105 [EMAIL PROTECTED] */ - dbconvert(NULL,coltype(offset),dbdata(sybase_ptr->link,offset), res_length,SYBCHAR,res_buf,-1); + +dbconvert(NULL,coltype(offset),dbdata(sybase_ptr->link,offset), +res_length,SYBCHAR,res_buf,res_length); /* get rid of trailing spaces */ p = res_buf + res_length; - while (*p == ' ') { + while (p >= res_buf && *p == ' ') { p--; - res_length--; } *(++p) = 0; /* put a trailing NULL */ + res_length = p - res_buf; + Z_STRLEN_P(result) = res_length; Z_STRVAL_P(result) = res_buf;
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php