Back to index

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

Go to the source code of this file.

Functions

 PHP_FUNCTION (msgfmt_get_pattern)
 PHP_FUNCTION (msgfmt_set_pattern)
 PHP_FUNCTION (msgfmt_get_locale)

Function Documentation

Definition at line 34 of file msgformat_attr.c.

{
       MSG_FORMAT_METHOD_INIT_VARS;

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

       /* Fetch the object. */
       MSG_FORMAT_METHOD_FETCH_OBJECT;

       if(mfo->mf_data.orig_format) {
              RETURN_STRINGL(mfo->mf_data.orig_format, mfo->mf_data.orig_format_len, 1);
       }

       RETURN_FALSE;
}

Here is the call graph for this function:

Definition at line 62 of file msgformat_attr.c.

{
       char*       value = NULL;
       int         value_len = 0;
       int         spattern_len = 0;
       UChar*     spattern  = NULL;
       MSG_FORMAT_METHOD_INIT_VARS;

       /* Parse parameters. */
       if( zend_parse_method_parameters( ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os",
              &object, MessageFormatter_ce_ptr, &value, &value_len ) == FAILURE )
       {
              intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR,   
                     "msgfmt_set_pattern: unable to parse input params", 0 TSRMLS_CC);
              RETURN_FALSE;
       }

       MSG_FORMAT_METHOD_FETCH_OBJECT;

       /* Convert given pattern to UTF-16. */
       intl_convert_utf8_to_utf16(&spattern, &spattern_len, value, value_len, &INTL_DATA_ERROR_CODE(mfo));
       INTL_METHOD_CHECK_STATUS(mfo, "Error converting pattern to UTF-16" );

       if(msgformat_fix_quotes(&spattern, &spattern_len, &INTL_DATA_ERROR_CODE(mfo)) != SUCCESS) {
              intl_error_set( NULL, U_INVALID_FORMAT_ERROR,
                     "msgfmt_set_pattern: error converting pattern to quote-friendly format", 0 TSRMLS_CC );
              RETURN_FALSE;
       }

       /* TODO: add parse error information */
       umsg_applyPattern(MSG_FORMAT_OBJECT(mfo), spattern, spattern_len, NULL, &INTL_DATA_ERROR_CODE(mfo));
       if (spattern) {
              efree(spattern);
       }
       INTL_METHOD_CHECK_STATUS(mfo, "Error setting symbol value");

       if(mfo->mf_data.orig_format) {
              efree(mfo->mf_data.orig_format);
       }
       mfo->mf_data.orig_format = estrndup(value, value_len);
       mfo->mf_data.orig_format_len = value_len;

       RETURN_TRUE;
}

Here is the call graph for this function:

Definition at line 113 of file msgformat_attr.c.

{
       char *loc;
       MSG_FORMAT_METHOD_INIT_VARS;

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

              RETURN_FALSE;
       }

       /* Fetch the object. */
       MSG_FORMAT_METHOD_FETCH_OBJECT;

       loc = (char *)umsg_getLocale(MSG_FORMAT_OBJECT(mfo));
       RETURN_STRING(loc, 1);
}

Here is the call graph for this function: