| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Uwe Steinmann <Uwe.Steinmann@fernuni-hagen.de> |
- | Hartmut Holzgraefe <hartmut@six.de> |
+ | Hartmut Holzgraefe <hholzgra@php.net> |
+----------------------------------------------------------------------+
*/
*/
PHP_MINIT_FUNCTION(fdf)
{
- FDFErc err;
-
le_fdf = zend_register_list_destructors_ex(phpi_FDFClose, NULL, "fdf", module_number);
/* add handler for Acrobat FDF form post requests */
#ifdef PHP_WIN32
return SUCCESS;
+#else
+ return (FDFInitialize() == FDFErcOK) ? SUCCESS : FAILURE;
#endif
- if((err = FDFInitialize()) == FDFErcOK) return SUCCESS;
- return FAILURE;
}
/* }}} */
*/
PHP_MSHUTDOWN_FUNCTION(fdf)
{
- FDFErc err;
-
/* remove handler for Acrobat FDF form post requests */
sapi_unregister_post_entry(&php_fdf_post_entry);
#ifdef PHP_WIN32
return SUCCESS;
+#else
+ return (FDFFinalize() == FDFErcOK) ? SUCCESS : FAILURE;
#endif
- if((err = FDFFinalize()) == FDFErcOK) return SUCCESS;
- return FAILURE;
}
/* }}} */
-/* {{{ proto int fdf_open(string filename)
+/* {{{ proto resource fdf_open(string filename)
Opens a new FDF document */
PHP_FUNCTION(fdf_open)
{
}
/* }}} */
-/* {{{ proto int fdf_open_string(string fdf_data)
+/* {{{ proto resource fdf_open_string(string fdf_data)
Opens a new FDF document from string */
PHP_FUNCTION(fdf_open_string)
{
}
/* }}} */
-/* {{{ proto int fdf_create(void)
+/* {{{ proto resource fdf_create(void)
Creates a new FDF document */
PHP_FUNCTION(fdf_create)
{
}
#if HAVE_FDFTK_5
} else if((err == FDFErcValueIsArray) && (which == -1)) {
- if (array_init(return_value) == FAILURE) {
- efree(buffer);
- FDF_FAILURE(FDFErcInternalError);
- }
+ array_init(return_value);
which = 0;
do {
err = FDFGetNthValue(fdf, fieldname, which, buffer, size-2, &nr);
filespec.ID[1] = NULL;
filespec.bVolatile = false;
- err = FDFAddTemplate(fdf, Z_LVAL_PP(newpage), &filespec, Z_STRVAL_PP(template), Z_LVAL_PP(rename));
+ err = FDFAddTemplate(fdf, (unsigned short)(Z_LVAL_PP(newpage)), &filespec, Z_STRVAL_PP(template), (unsigned short)(Z_LVAL_PP(rename)));
if(err != FDFErcOK) {
FDF_FAILURE(err);
}
}
/* }}} */
-/* {{{ proto mixed fdf_get_option(resource fdfdof, string fieldname [, int element])
+/* {{{ proto mixed fdf_get_opt(resource fdfdof, string fieldname [, int element])
Gets a value from the opt array of a field */
PHP_FUNCTION(fdf_get_opt) {
zval *r_fdf;
if(err != FDFErcOK) {
FDF_FAILURE(err);
}
- if (array_init(return_value) == FAILURE) {
- RETURN_FALSE;
- }
+ array_init(return_value);
add_next_index_stringl(return_value, buf1, strlen(buf1), 1);
add_next_index_stringl(return_value, buf2, strlen(buf2), 1);
efree(buf1);
}
/* }}} */
-/* {{{ proto bool fdf_set_encoding(int fdf_document, string encoding)
+/* {{{ proto bool fdf_set_encoding(resource fdf_document, string encoding)
Sets FDF encoding (either "Shift-JIS" or "Unicode") */
PHP_FUNCTION(fdf_set_encoding)
{
}
/* }}} */
-/* {{{ int fdf_errno(void)
+/* {{{ proto int fdf_errno(void)
Gets error code for last operation */
PHP_FUNCTION(fdf_errno) {
RETURN_LONG((long)FDF_G(error));
}
/* }}} */
-/* {{{ string fdf_error([int errno])
+/* {{{ proto string fdf_error([int errno])
Gets error description for error code */
PHP_FUNCTION(fdf_error) {
FDFErc err;
FDF_FAILURE(err);
}
- if (array_init(return_value) == FAILURE) {
- RETURN_FALSE;
- }
+ array_init(return_value);
add_assoc_string(return_value, "path", pathbuf, 1);
add_assoc_string(return_value, "type", mimebuf, 1);
stat(pathbuf, &statBuf);
#endif
/* {{{ enum_values_callback */
- static ASBool enum_values_callback(char *name, char *value, void *userdata) {
- zval *retval_ptr, *z_name, *z_value, **args[3];
- long retval = 0;
- int numargs = 2;
- TSRMLS_FETCH();
-
- MAKE_STD_ZVAL(z_name);
- ZVAL_STRING(z_name, name, 1);
- args[0] = &z_name;
-
- if(*value) { /* simple value */
- MAKE_STD_ZVAL(z_value);
- ZVAL_STRING(z_value, value, 1);
- args[1] = &z_value;
- } else { /* empty value *might* be an array */
- /* todo do it like fdf_get_value (or re-implement yourself?) */
- }
-
- if(userdata) {
- args[2] = (zval **)userdata;
- numargs++;
- }
-
- if (call_user_function_ex(EG(function_table),
+static ASBool enum_values_callback(char *name, char *value, void *userdata)
+{
+ zval *retval_ptr, *z_name, *z_value, **args[3];
+ long retval = 0;
+ int numargs = 2;
+ TSRMLS_FETCH();
+
+ MAKE_STD_ZVAL(z_name);
+ ZVAL_STRING(z_name, name, 1);
+ args[0] = &z_name;
+
+ if (*value) { /* simple value */
+ MAKE_STD_ZVAL(z_value);
+ ZVAL_STRING(z_value, value, 1);
+ args[1] = &z_value;
+ } else { /* empty value *might* be an array */
+ /* TODO: do it like fdf_get_value (or re-implement yourself?) */
+ }
+
+ if (userdata) {
+ args[2] = (zval **) userdata;
+ numargs++;
+ }
+
+ if (call_user_function_ex(EG(function_table),
NULL,
FDF_G(enum_callback),
&retval_ptr,
numargs, args,
- 0, NULL TSRMLS_CC)==SUCCESS
- && retval_ptr) {
-
- convert_to_long_ex(&retval_ptr);
- retval = Z_LVAL_P(retval_ptr);
- zval_ptr_dtor(&retval_ptr);
- } else {
+ 0, NULL TSRMLS_CC) == SUCCESS
+ && retval_ptr) {
+
+ convert_to_long_ex(&retval_ptr);
+ retval = Z_LVAL_P(retval_ptr);
+ zval_ptr_dtor(&retval_ptr);
+ } else {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "callback failed");
- }
+ }
- zval_ptr_dtor(&z_name);
- zval_ptr_dtor(&z_value);
+ zval_ptr_dtor(&z_name);
+ zval_ptr_dtor(&z_value);
- return retval;
- }
+ return (ASBool)retval;
+}
/* }}} */
-/* {{{ proto bool fdf_enum_values(resource fdfdoc, mixed callback [, mixed userdata])
- */
+/* {{{ proto bool fdf_enum_values(resource fdfdoc, callback function [, mixed userdata])
+ Call a user defined function for each document value */
PHP_FUNCTION(fdf_enum_values) {
zval *r_fdf;
zval *callback;
}
/* }}} */
-/* {{{ proto fdf_header()
- Set FDF specific HTTP headers */
+/* {{{ proto void fdf_header(void)
+ Set FDF specific HTTP headers */
PHP_FUNCTION(fdf_header) {
sapi_header_line ctr = {0};