PHP  
 PHP: Test and Code Coverage Analysis
downloads | QA | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
 

LTP GCOV extension - code coverage report
Current view: directory - intl/formatter - formatter.c
Test: PHP Code Coverage
Date: 2009-11-21 Instrumented lines: 77
Code covered: 98.7 % Executed lines: 76
Legend: not executed executed

       1                 : /*
       2                 :    +----------------------------------------------------------------------+
       3                 :    | PHP Version 5                                                        |
       4                 :    +----------------------------------------------------------------------+
       5                 :    | This source file is subject to version 3.01 of the PHP license,      |
       6                 :    | that is bundled with this package in the file LICENSE, and is        |
       7                 :    | available through the world-wide-web at the following url:           |
       8                 :    | http://www.php.net/license/3_01.txt                                  |
       9                 :    | If you did not receive a copy of the PHP license and are unable to   |
      10                 :    | obtain it through the world-wide-web, please send a note to          |
      11                 :    | license@php.net so we can mail you a copy immediately.               |
      12                 :    +----------------------------------------------------------------------+
      13                 :    | Authors: Stanislav Malyshev <stas@zend.com>                          |
      14                 :    +----------------------------------------------------------------------+
      15                 :  */
      16                 : 
      17                 : #ifdef HAVE_CONFIG_H
      18                 : #include "config.h"
      19                 : #endif
      20                 : 
      21                 : #include <unicode/utypes.h>
      22                 : #include <unicode/unum.h>
      23                 : #include <unicode/ustring.h>
      24                 : 
      25                 : #include "php_intl.h"
      26                 : #include "formatter_class.h"
      27                 : #include "formatter_format.h"
      28                 : 
      29                 : #if U_ICU_VERSION_MAJOR_NUM == 3 && U_ICU_VERSION_MINOR_NUM <= 4
      30                 : #define UNUM_MONETARY_GROUPING_SEPARATOR_SYMBOL 17
      31                 : #endif
      32                 : 
      33                 : /* {{{ formatter_register_constants
      34                 :  * Register constants common for the both (OO and procedural)
      35                 :  * APIs.
      36                 :  */
      37                 : void formatter_register_constants( INIT_FUNC_ARGS )
      38           17633 : {
      39           17633 :         if( NumberFormatter_ce_ptr == NULL) {
      40               0 :                 zend_error(E_ERROR, "NumberFormatter class not defined");
      41                 :         }
      42                 : 
      43                 :         #define FORMATTER_EXPOSE_CONST(x) REGISTER_LONG_CONSTANT(#x, x, CONST_CS)
      44                 :         #define FORMATTER_EXPOSE_CLASS_CONST(x) zend_declare_class_constant_long( NumberFormatter_ce_ptr, ZEND_STRS( #x ) - 1, UNUM_##x TSRMLS_CC );
      45                 :         #define FORMATTER_EXPOSE_CUSTOM_CLASS_CONST(name, value) zend_declare_class_constant_long( NumberFormatter_ce_ptr, ZEND_STRS( name ) - 1, value TSRMLS_CC );
      46                 : 
      47                 :         /* UNumberFormatStyle constants */
      48           17633 :         FORMATTER_EXPOSE_CLASS_CONST( PATTERN_DECIMAL );
      49           17633 :         FORMATTER_EXPOSE_CLASS_CONST( DECIMAL );
      50           17633 :         FORMATTER_EXPOSE_CLASS_CONST( CURRENCY );
      51           17633 :         FORMATTER_EXPOSE_CLASS_CONST( PERCENT );
      52           17633 :         FORMATTER_EXPOSE_CLASS_CONST( SCIENTIFIC );
      53           17633 :         FORMATTER_EXPOSE_CLASS_CONST( SPELLOUT );
      54           17633 :         FORMATTER_EXPOSE_CLASS_CONST( ORDINAL );
      55           17633 :         FORMATTER_EXPOSE_CLASS_CONST( DURATION );
      56           17633 :         FORMATTER_EXPOSE_CLASS_CONST( PATTERN_RULEBASED );
      57           17633 :         FORMATTER_EXPOSE_CLASS_CONST( IGNORE );
      58                 : 
      59           17633 :         FORMATTER_EXPOSE_CUSTOM_CLASS_CONST( "DEFAULT_STYLE",  UNUM_DEFAULT );
      60                 : 
      61                 : /* workaround for ICU bug */
      62                 : #if U_ICU_VERSION_MAJOR_NUM == 3 && U_ICU_VERSION_MINOR_NUM < 8
      63                 : #define UNUM_ROUND_HALFEVEN UNUM_FOUND_HALFEVEN
      64                 : #endif
      65                 : 
      66                 :         /* UNumberFormatRoundingMode */
      67           17633 :         FORMATTER_EXPOSE_CLASS_CONST( ROUND_CEILING );
      68           17633 :         FORMATTER_EXPOSE_CLASS_CONST( ROUND_FLOOR );
      69           17633 :         FORMATTER_EXPOSE_CLASS_CONST( ROUND_DOWN );
      70           17633 :         FORMATTER_EXPOSE_CLASS_CONST( ROUND_UP );
      71           17633 :         FORMATTER_EXPOSE_CLASS_CONST( ROUND_HALFEVEN );
      72           17633 :         FORMATTER_EXPOSE_CLASS_CONST( ROUND_HALFDOWN );
      73           17633 :         FORMATTER_EXPOSE_CLASS_CONST( ROUND_HALFUP );
      74                 : 
      75                 :         /* UNumberFormatPadPosition */
      76           17633 :         FORMATTER_EXPOSE_CLASS_CONST( PAD_BEFORE_PREFIX ); 
      77           17633 :         FORMATTER_EXPOSE_CLASS_CONST( PAD_AFTER_PREFIX ); 
      78           17633 :         FORMATTER_EXPOSE_CLASS_CONST( PAD_BEFORE_SUFFIX ); 
      79           17633 :         FORMATTER_EXPOSE_CLASS_CONST( PAD_AFTER_SUFFIX );
      80                 : 
      81                 :         /* UNumberFormatAttribute */
      82           17633 :         FORMATTER_EXPOSE_CLASS_CONST( PARSE_INT_ONLY ); 
      83           17633 :         FORMATTER_EXPOSE_CLASS_CONST( GROUPING_USED ); 
      84           17633 :         FORMATTER_EXPOSE_CLASS_CONST( DECIMAL_ALWAYS_SHOWN ); 
      85           17633 :         FORMATTER_EXPOSE_CLASS_CONST( MAX_INTEGER_DIGITS );
      86           17633 :         FORMATTER_EXPOSE_CLASS_CONST( MIN_INTEGER_DIGITS ); 
      87           17633 :         FORMATTER_EXPOSE_CLASS_CONST( INTEGER_DIGITS ); 
      88           17633 :         FORMATTER_EXPOSE_CLASS_CONST( MAX_FRACTION_DIGITS ); 
      89           17633 :         FORMATTER_EXPOSE_CLASS_CONST( MIN_FRACTION_DIGITS );
      90           17633 :         FORMATTER_EXPOSE_CLASS_CONST( FRACTION_DIGITS ); 
      91           17633 :         FORMATTER_EXPOSE_CLASS_CONST( MULTIPLIER ); 
      92           17633 :         FORMATTER_EXPOSE_CLASS_CONST( GROUPING_SIZE ); 
      93           17633 :         FORMATTER_EXPOSE_CLASS_CONST( ROUNDING_MODE );
      94           17633 :         FORMATTER_EXPOSE_CLASS_CONST( ROUNDING_INCREMENT ); 
      95           17633 :         FORMATTER_EXPOSE_CLASS_CONST( FORMAT_WIDTH ); 
      96           17633 :         FORMATTER_EXPOSE_CLASS_CONST( PADDING_POSITION ); 
      97           17633 :         FORMATTER_EXPOSE_CLASS_CONST( SECONDARY_GROUPING_SIZE );
      98           17633 :         FORMATTER_EXPOSE_CLASS_CONST( SIGNIFICANT_DIGITS_USED ); 
      99           17633 :         FORMATTER_EXPOSE_CLASS_CONST( MIN_SIGNIFICANT_DIGITS ); 
     100           17633 :         FORMATTER_EXPOSE_CLASS_CONST( MAX_SIGNIFICANT_DIGITS ); 
     101           17633 :         FORMATTER_EXPOSE_CLASS_CONST( LENIENT_PARSE ); 
     102                 : 
     103                 :         /* UNumberFormatTextAttribute */
     104           17633 :         FORMATTER_EXPOSE_CLASS_CONST( POSITIVE_PREFIX ); 
     105           17633 :         FORMATTER_EXPOSE_CLASS_CONST( POSITIVE_SUFFIX ); 
     106           17633 :         FORMATTER_EXPOSE_CLASS_CONST( NEGATIVE_PREFIX ); 
     107           17633 :         FORMATTER_EXPOSE_CLASS_CONST( NEGATIVE_SUFFIX );
     108           17633 :         FORMATTER_EXPOSE_CLASS_CONST( PADDING_CHARACTER ); 
     109           17633 :         FORMATTER_EXPOSE_CLASS_CONST( CURRENCY_CODE ); 
     110           17633 :         FORMATTER_EXPOSE_CLASS_CONST( DEFAULT_RULESET ); 
     111           17633 :         FORMATTER_EXPOSE_CLASS_CONST( PUBLIC_RULESETS );
     112                 : 
     113                 :         /* UNumberFormatSymbol */
     114           17633 :         FORMATTER_EXPOSE_CLASS_CONST( DECIMAL_SEPARATOR_SYMBOL ); 
     115           17633 :         FORMATTER_EXPOSE_CLASS_CONST( GROUPING_SEPARATOR_SYMBOL ); 
     116           17633 :         FORMATTER_EXPOSE_CLASS_CONST( PATTERN_SEPARATOR_SYMBOL ); 
     117           17633 :         FORMATTER_EXPOSE_CLASS_CONST( PERCENT_SYMBOL );
     118           17633 :         FORMATTER_EXPOSE_CLASS_CONST( ZERO_DIGIT_SYMBOL ); 
     119           17633 :         FORMATTER_EXPOSE_CLASS_CONST( DIGIT_SYMBOL ); 
     120           17633 :         FORMATTER_EXPOSE_CLASS_CONST( MINUS_SIGN_SYMBOL ); 
     121           17633 :         FORMATTER_EXPOSE_CLASS_CONST( PLUS_SIGN_SYMBOL );
     122           17633 :         FORMATTER_EXPOSE_CLASS_CONST( CURRENCY_SYMBOL ); 
     123           17633 :         FORMATTER_EXPOSE_CLASS_CONST( INTL_CURRENCY_SYMBOL );
     124           17633 :         FORMATTER_EXPOSE_CLASS_CONST( MONETARY_SEPARATOR_SYMBOL ); 
     125           17633 :         FORMATTER_EXPOSE_CLASS_CONST( EXPONENTIAL_SYMBOL );
     126           17633 :         FORMATTER_EXPOSE_CLASS_CONST( PERMILL_SYMBOL ); 
     127           17633 :         FORMATTER_EXPOSE_CLASS_CONST( PAD_ESCAPE_SYMBOL );
     128           17633 :         FORMATTER_EXPOSE_CLASS_CONST( INFINITY_SYMBOL );
     129           17633 :         FORMATTER_EXPOSE_CLASS_CONST( NAN_SYMBOL );
     130           17633 :         FORMATTER_EXPOSE_CLASS_CONST( SIGNIFICANT_DIGIT_SYMBOL );
     131           17633 :         FORMATTER_EXPOSE_CLASS_CONST( MONETARY_GROUPING_SEPARATOR_SYMBOL ); 
     132                 : 
     133           17633 :         FORMATTER_EXPOSE_CUSTOM_CLASS_CONST( "TYPE_DEFAULT", FORMAT_TYPE_DEFAULT );
     134           17633 :         FORMATTER_EXPOSE_CUSTOM_CLASS_CONST( "TYPE_INT32", FORMAT_TYPE_INT32 );
     135           17633 :         FORMATTER_EXPOSE_CUSTOM_CLASS_CONST( "TYPE_INT64", FORMAT_TYPE_INT64 );
     136           17633 :         FORMATTER_EXPOSE_CUSTOM_CLASS_CONST( "TYPE_DOUBLE", FORMAT_TYPE_DOUBLE );
     137           17633 :         FORMATTER_EXPOSE_CUSTOM_CLASS_CONST( "TYPE_CURRENCY", FORMAT_TYPE_CURRENCY );
     138                 : 
     139                 :         #undef FORMATTER_EXPOSE_CUSTOM_CLASS_CONST
     140                 :         #undef FORMATTER_EXPOSE_CLASS_CONST
     141                 :         #undef FORMATTER_EXPOSE_CONST
     142           17633 : }
     143                 : /* }}} */
     144                 : 
     145                 : /*
     146                 :  * Local variables:
     147                 :  * tab-width: 4
     148                 :  * c-basic-offset: 4
     149                 :  * End:
     150                 :  * vim600: noet sw=4 ts=4 fdm=marker
     151                 :  * vim<600: noet sw=4 ts=4
     152                 :  */

Generated by: LTP GCOV extension version 1.5

Generated at Sat, 21 Nov 2009 12:27:01 +0000 (3 days ago)

Copyright © 2005-2009 The PHP Group
All rights reserved.