Re: cvs: php4 /ext/dbase dbase.c
| From: | derick@php.net | Date: | Fri, 14 Dec 2001 09:38:32 +0000 |
| Subject: | Re: cvs: php4 /ext/dbase dbase.c | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-8624@lists.php.net to get a copy of this message | ||
On Fri, 14 Dec 2001, Vlad Krupin wrote:
>
> I am sorry, I did not understand the request. (Does 'MFH' stand for 'Move from
> Head'?) What would that mean in this context?
Merge From Head... ie. also merge this fix to the branch 4_0_7 branch.
Derick
>
> Thanks for explanation in advance:)
>
> Vlad
>
>
>
>
> ----- Original Message -----
> From: Sterling Hughes
> To: Vlad Krupin
> Sent: Fri, 14 Dec 2001 10:24:19 +0100
> Subject: Re: [PHP-CVS] cvs: php4 /ext/dbase dbase.c
>
> > vlad Thu Dec 13 23:22:01 2001 EDT
> >
> > Modified files:
> > /php4/ext/dbase dbase.c
> > Log:
> > Fixed bug #5993. Now if the result returned from a database is bigger
> > than a long, dbase_get_record() and dbase_get_record_with_names() will
> > return a string instead.
> > # Need to update documentation to reflect that change
> > @ Fixed problem with dbase not returning very large (larger than long)
> > @ integers properly. (Vlad)
> >
> MFH please? :)
>
> -Sterling
>
> >
> > Index: php4/ext/dbase/dbase.c
> > diff -u php4/ext/dbase/dbase.c:1.53 php4/ext/dbase/dbase.c:1.54
> > --- php4/ext/dbase/dbase.c:1.53 Tue Dec 11 10:29:03 2001
> > +++ php4/ext/dbase/dbase.c Thu Dec 13 23:22:01 2001
> > @@ -16,7 +16,7 @@
> > +----------------------------------------------------------------------+
> > */
> >
> > -/* $Id: dbase.c,v 1.53 2001/12/11 15:29:03 sebastian Exp $ */
> > +/* $Id: dbase.c,v 1.54 2001/12/14 04:22:01 vlad Exp $ */
> >
> > #ifdef HAVE_CONFIG_H
> > #include "config.h"
> > @@ -431,6 +431,8 @@
> > dbfield_t *dbf, *cur_f;
> > char *data, *fnp, *str_value;
> > size_t cursize = 0;
> > + long overflow_test;
> > + int errno_save;
> > DBase_TLS_VARS;
> >
> > if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &dbh_id, &record)==FAILURE) {
> > @@ -476,7 +478,16 @@
> > case 'I': /* FALLS THROUGH */
> > case 'N':
> > if (cur_f->db_fdc == 0) {
> > - add_next_index_long(return_value, strtol(str_value, NULL, 10));
> > + /* Large integers in dbase can be larger than long */
> > + errno_save = errno;
> > + overflow_test = strtol(str_value, NULL, 10);
> > + if (errno == ERANGE) {
> > + /* If the integer is too large, keep it as string */
> > + add_next_index_string(return_value, str_value, 1);
> > + } else {
> > + add_next_index_long(return_value, overflow_test);
> > + }
> > + errno = errno_save;
> > } else {
> > add_next_index_double(return_value, atof(str_value));
> > }
> > @@ -528,6 +539,8 @@
> > int dbh_type;
> > dbfield_t *dbf, *cur_f;
> > char *data, *fnp, *str_value;
> > + long overflow_test;
> > + int errno_save;
> > DBase_TLS_VARS;
> >
> > if (ZEND_NUM_ARGS() != 2 || getParameters(ht, 2, &dbh_id, &record)==FAILURE) {
> > @@ -568,7 +581,16 @@
> > case 'I': /* FALLS THROUGH */
> > case 'N':
> > if (cur_f->db_fdc == 0) {
> > - add_assoc_long(return_value, cur_f->db_fname, strtol(str_value, NULL, 10));
> > + /* Large integers in dbase can be larger than long */
> > + errno_save = errno;
> > + overflow_test = strtol(str_value, NULL, 10);
> > + if (errno == ERANGE) {
> > + /* If the integer is too large, keep it as string */
> > + add_assoc_string(return_value, cur_f->db_fname, str_value, 1);
> > + } else {
> > + add_assoc_long(return_value, cur_f->db_fname, overflow_test);
> > + }
> > + errno = errno_save;
> > } else {
> > add_assoc_double(return_value, cur_f->db_fname, atof(str_value));
> > }
> >
> >
> >
> > --
> > PHP CVS Mailing List (http://www.php.net/)
> > To unsubscribe, e-mail: php-cvs-unsubscribe@lists.php.net
> > For additional commands, e-mail: php-cvs-help@lists.php.net
> > To contact the list administrators, e-mail: php-list-admin@lists.php.net
> >
>
> ________________________________________
> Re-thinking the Web on a SinglePage(TM)
> http://www.echospace.com
>
>
> --
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: php-cvs-unsubscribe@lists.php.net
> For additional commands, e-mail: php-cvs-help@lists.php.net
> To contact the list administrators, e-mail: php-list-admin@lists.php.net
>