Back to index

php5  5.3.10
Functions
formatter_main.c File Reference
#include <unicode/ustring.h>
#include "php_intl.h"
#include "formatter_class.h"
#include "intl_convert.h"

Go to the source code of this file.

Functions

static void numfmt_ctor (INTERNAL_FUNCTION_PARAMETERS)
 PHP_FUNCTION (numfmt_create)
 PHP_METHOD (NumberFormatter, __construct)
 PHP_FUNCTION (numfmt_get_error_code)
 PHP_FUNCTION (numfmt_get_error_message)

Function Documentation

static void numfmt_ctor ( INTERNAL_FUNCTION_PARAMETERS  ) [static]

Definition at line 28 of file formatter_main.c.

{
       char*       locale;
       char*       pattern = NULL;
       int         locale_len = 0, pattern_len = 0;
       long        style;
       UChar*      spattern     = NULL;
       int         spattern_len = 0;
       FORMATTER_METHOD_INIT_VARS;

       /* Parse parameters. */
       if( zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "sl|s",
              &locale, &locale_len, &style, &pattern, &pattern_len ) == FAILURE )
       {
              intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
                     "numfmt_create: unable to parse input parameters", 0 TSRMLS_CC );
              zval_dtor(return_value);
              RETURN_NULL();
       }

       INTL_CHECK_LOCALE_LEN_OBJ(locale_len, return_value);
       object = return_value;
       FORMATTER_METHOD_FETCH_OBJECT;

       /* Convert pattern (if specified) to UTF-16. */
       if(pattern && pattern_len) {
              intl_convert_utf8_to_utf16(&spattern, &spattern_len, pattern, pattern_len, &INTL_DATA_ERROR_CODE(nfo));
              INTL_CTOR_CHECK_STATUS(nfo, "numfmt_create: error converting pattern to UTF-16");
       }

       if(locale_len == 0) {
              locale = INTL_G(default_locale);
       }

       /* Create an ICU number formatter. */
       FORMATTER_OBJECT(nfo) = unum_open(style, spattern, spattern_len, locale, NULL, &INTL_DATA_ERROR_CODE(nfo));

       if(spattern) {
              efree(spattern);
       }

       INTL_CTOR_CHECK_STATUS(nfo, "numfmt_create: number formatter creation failed");
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 78 of file formatter_main.c.

Here is the call graph for this function:

Definition at line 100 of file formatter_main.c.

{
       FORMATTER_METHOD_INIT_VARS

       /* Parse parameters. */
       if( zend_parse_method_parameters( ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
              &object, NumberFormatter_ce_ptr ) == FAILURE )
       {
              intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
                     "numfmt_get_error_code: unable to parse input params", 0 TSRMLS_CC );

              RETURN_FALSE;
       }

       nfo = (NumberFormatter_object *) zend_object_store_get_object( object TSRMLS_CC );

       /* Return formatter's last error code. */
       RETURN_LONG( INTL_DATA_ERROR_CODE(nfo) );
}

Here is the call graph for this function:

Definition at line 126 of file formatter_main.c.

{
       char*                    message = NULL;
       FORMATTER_METHOD_INIT_VARS

       /* Parse parameters. */
       if( zend_parse_method_parameters( ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
              &object, NumberFormatter_ce_ptr ) == FAILURE )
       {
              intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
                     "numfmt_get_error_message: unable to parse input params", 0 TSRMLS_CC );

              RETURN_FALSE;
       }

       nfo = (NumberFormatter_object *) zend_object_store_get_object( object TSRMLS_CC );

       /* Return last error message. */
       message = intl_error_get_message( INTL_DATA_ERROR_P(nfo) TSRMLS_CC );
       RETURN_STRING( message, 0);
}

Here is the call graph for this function:

PHP_METHOD ( NumberFormatter  ,
__construct   
)

Definition at line 88 of file formatter_main.c.

Here is the call graph for this function: