cvs: pecl /paradox paradox.c
| From: | Uwe Steinmann | Date: | Sun, 27 Jul 2003 16:39:16 +0000 |
| Subject: | cvs: pecl /paradox paradox.c | ||
| Groups: | php.pecl.cvs | ||
| Request: | Send a blank email to pecl-cvs+get-386@lists.php.net to get a copy of this message | ||
steinm Sun Jul 27 12:39:16 2003 EDT
Modified files:
/pecl/paradox paradox.c
Log:
- px_get_schema gets optional parameter to make field names in
the returned array lower case
Index: pecl/paradox/paradox.c
diff -u pecl/paradox/paradox.c:1.2 pecl/paradox/paradox.c:1.3
--- pecl/paradox/paradox.c:1.2 Fri Jul 25 02:42:40 2003
+++ pecl/paradox/paradox.c Sun Jul 27 12:39:16 2003
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: paradox.c,v 1.2 2003/07/25 06:42:40 steinm Exp $ */
+/* $Id: paradox.c,v 1.3 2003/07/27 16:39:16 steinm Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -218,7 +218,7 @@
php_info_print_table_start();
php_info_print_table_header(2, "paradox support", "enabled");
php_info_print_table_row(2, "pxlib Version", tmp );
- php_info_print_table_row(2, "Revision", "$Revision: 1.2 $" );
+ php_info_print_table_row(2, "Revision", "$Revision: 1.3 $" );
php_info_print_table_end();
/* Remove comments if you have entries in php.ini
@@ -308,7 +308,7 @@
}
/* }}} */
-/* {{{ proto bool px_get_record(resource pxdoc, int recno, int type)
+/* {{{ proto bool px_get_record(resource pxdoc, int recno[, int type])
Returns a record from the database */
PHP_FUNCTION(px_get_record)
{
@@ -514,17 +514,32 @@
}
/* }}} */
-/* {{{ proto array px_get_schema(resource pxdoc)
+/* {{{ proto array px_get_schema(resource pxdoc[, int type])
Returns meta data of a table */
PHP_FUNCTION(px_get_schema)
{
- zval **arg1;
+ zval **arg1, **arg2;
pxdoc_t *pxdoc;
pxfield_t *pxf, *pxf1;
int i, fn;
+ int result_type = 0;
- if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg1) == FAILURE) {
- WRONG_PARAM_COUNT;
+ switch (ZEND_NUM_ARGS()) {
+ case 1:
+ if (zend_get_parameters_ex(1, &arg1) == FAILURE) {
+ RETURN_FALSE;
+ }
+ break;
+ case 2:
+ if (zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) {
+ RETURN_FALSE;
+ }
+ convert_to_long_ex(arg2);
+ result_type = Z_LVAL_PP(arg2);
+ break;
+ default:
+ WRONG_PARAM_COUNT;
+ break;
}
ZEND_FETCH_RESOURCE(pxdoc, pxdoc_t *, arg1, -1, "px object", le_pxdoc);
@@ -537,12 +552,23 @@
array_init(return_value);
for(i=0; i<fn; i++) {
+ char *fname;
zval *fieldarr;
MAKE_STD_ZVAL(fieldarr);
array_init(fieldarr);
add_assoc_long(fieldarr, "type", pxf->px_ftype);
add_assoc_long(fieldarr, "size", pxf->px_flen);
- zend_hash_add(Z_ARRVAL_P(return_value), pxf->px_fname, strlen(pxf->px_fname)+1,
&fieldarr, sizeof(zval *), NULL);
+ switch(result_type) {
+ case PX_KEYTOLOWER:
+ fname = php_strtolower(pxf->px_fname, strlen(pxf->px_fname));
+ break;
+ case PX_KEYTOUPPER:
+ fname = php_strtoupper(pxf->px_fname, strlen(pxf->px_fname));
+ break;
+ default:
+ fname = pxf->px_fname;
+ }
+ zend_hash_add(Z_ARRVAL_P(return_value), fname, strlen(fname)+1, &fieldarr, sizeof(zval *),
NULL);
pxf++;
}
}