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/common - common_error.c
Test: PHP Code Coverage
Date: 2009-11-21 Instrumented lines: 147
Code covered: 97.3 % Executed lines: 143
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: Vadim Savchuk <vsavchuk@productengine.com>                  |
      14                 :    |          Dmitry Lakhtyuk <dlakhtyuk@productengine.com>               |
      15                 :    +----------------------------------------------------------------------+
      16                 :  */
      17                 : 
      18                 : #ifdef HAVE_CONFIG_H
      19                 : #include "config.h"
      20                 : #endif
      21                 : 
      22                 : #include "php_intl.h"
      23                 : #include "intl_error.h"
      24                 : #include "common_error.h"
      25                 : 
      26                 : /* {{{ proto int intl_get_error_code()
      27                 :  * Get code of the last occured error.
      28                 :  */
      29                 : PHP_FUNCTION( intl_get_error_code )
      30             609 : {
      31             609 :         RETURN_LONG( intl_error_get_code( NULL TSRMLS_CC ) );
      32                 : }
      33                 : /* }}} */
      34                 : 
      35                 : /* {{{ proto string intl_get_error_message()
      36                 :  * Get text description of the last occured error.
      37                 :  */
      38                 : PHP_FUNCTION( intl_get_error_message )
      39             240 : {
      40             240 :         char* message = intl_error_get_message( NULL TSRMLS_CC );
      41             240 :         RETURN_STRING( message, FALSE );
      42                 : }
      43                 : /* }}} */
      44                 : 
      45                 : /* {{{ proto bool intl_is_failure()
      46                 :  * Check whether the given error code indicates a failure.
      47                 :  * Returns true if it does, and false if the code
      48                 :  * indicates success or a warning.
      49                 :  */
      50                 : PHP_FUNCTION( intl_is_failure )
      51               3 : {
      52                 :         long err_code;
      53                 : 
      54                 :         /* Parse parameters. */
      55               3 :         if( zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "l",
      56                 :                 &err_code ) == FAILURE )
      57                 :         {
      58               0 :                 intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
      59                 :                         "intl_is_failure: unable to parse input params", 0 TSRMLS_CC );
      60                 : 
      61               0 :                 RETURN_FALSE;
      62                 :         }
      63                 : 
      64               3 :         RETURN_BOOL( U_FAILURE( err_code ) );
      65                 : }
      66                 : 
      67                 : /* {{{ proto string intl_error_name()
      68                 :  * Return a string for a given error code.
      69                 :  * The string will be the same as the name of the error code constant.
      70                 :  */
      71                 : PHP_FUNCTION( intl_error_name )
      72               3 : {
      73                 :         long err_code;
      74                 : 
      75                 :         /* Parse parameters. */
      76               3 :         if( zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "l",
      77                 :                 &err_code ) == FAILURE )
      78                 :         {
      79               0 :                 intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
      80                 :                         "intl_error_name: unable to parse input params", 0 TSRMLS_CC );
      81                 : 
      82               0 :                 RETURN_FALSE;
      83                 :         }
      84                 : 
      85               3 :         RETURN_STRING( (char*)u_errorName( err_code ), 1 );
      86                 : }
      87                 : /* }}} */
      88                 : 
      89                 : /* {{{ intl_expose_icu_error_codes
      90                 :  * Expose ICU error codes
      91                 :  */
      92                 : void intl_expose_icu_error_codes( INIT_FUNC_ARGS )
      93           17633 : {
      94                 :         #define INTL_EXPOSE_CONST(x) REGISTER_LONG_CONSTANT(#x, x, CONST_CS)
      95                 : 
      96                 :         /* Warnings */
      97           17633 :         INTL_EXPOSE_CONST( U_USING_FALLBACK_WARNING );
      98           17633 :         INTL_EXPOSE_CONST( U_ERROR_WARNING_START );
      99           17633 :         INTL_EXPOSE_CONST( U_USING_DEFAULT_WARNING );
     100           17633 :         INTL_EXPOSE_CONST( U_SAFECLONE_ALLOCATED_WARNING );
     101           17633 :         INTL_EXPOSE_CONST( U_STATE_OLD_WARNING );
     102           17633 :         INTL_EXPOSE_CONST( U_STRING_NOT_TERMINATED_WARNING );
     103           17633 :         INTL_EXPOSE_CONST( U_SORT_KEY_TOO_SHORT_WARNING );
     104           17633 :         INTL_EXPOSE_CONST( U_AMBIGUOUS_ALIAS_WARNING );
     105           17633 :         INTL_EXPOSE_CONST( U_DIFFERENT_UCA_VERSION );
     106           17633 :         INTL_EXPOSE_CONST( U_ERROR_WARNING_LIMIT );
     107                 : 
     108                 :         /* Standard errors */
     109           17633 :         INTL_EXPOSE_CONST( U_ZERO_ERROR );
     110           17633 :         INTL_EXPOSE_CONST( U_ILLEGAL_ARGUMENT_ERROR );
     111           17633 :         INTL_EXPOSE_CONST( U_MISSING_RESOURCE_ERROR );
     112           17633 :         INTL_EXPOSE_CONST( U_INVALID_FORMAT_ERROR );
     113           17633 :         INTL_EXPOSE_CONST( U_FILE_ACCESS_ERROR );
     114           17633 :         INTL_EXPOSE_CONST( U_INTERNAL_PROGRAM_ERROR );
     115           17633 :         INTL_EXPOSE_CONST( U_MESSAGE_PARSE_ERROR );
     116           17633 :         INTL_EXPOSE_CONST( U_MEMORY_ALLOCATION_ERROR );
     117           17633 :         INTL_EXPOSE_CONST( U_INDEX_OUTOFBOUNDS_ERROR );
     118           17633 :         INTL_EXPOSE_CONST( U_PARSE_ERROR );
     119           17633 :         INTL_EXPOSE_CONST( U_INVALID_CHAR_FOUND );
     120           17633 :         INTL_EXPOSE_CONST( U_TRUNCATED_CHAR_FOUND );
     121           17633 :         INTL_EXPOSE_CONST( U_ILLEGAL_CHAR_FOUND );
     122           17633 :         INTL_EXPOSE_CONST( U_INVALID_TABLE_FORMAT );
     123           17633 :         INTL_EXPOSE_CONST( U_INVALID_TABLE_FILE );
     124           17633 :         INTL_EXPOSE_CONST( U_BUFFER_OVERFLOW_ERROR );
     125           17633 :         INTL_EXPOSE_CONST( U_UNSUPPORTED_ERROR );
     126           17633 :         INTL_EXPOSE_CONST( U_RESOURCE_TYPE_MISMATCH );
     127           17633 :         INTL_EXPOSE_CONST( U_ILLEGAL_ESCAPE_SEQUENCE );
     128           17633 :         INTL_EXPOSE_CONST( U_UNSUPPORTED_ESCAPE_SEQUENCE );
     129           17633 :         INTL_EXPOSE_CONST( U_NO_SPACE_AVAILABLE );
     130           17633 :         INTL_EXPOSE_CONST( U_CE_NOT_FOUND_ERROR );
     131           17633 :         INTL_EXPOSE_CONST( U_PRIMARY_TOO_LONG_ERROR );
     132           17633 :         INTL_EXPOSE_CONST( U_STATE_TOO_OLD_ERROR );
     133           17633 :         INTL_EXPOSE_CONST( U_TOO_MANY_ALIASES_ERROR );
     134           17633 :         INTL_EXPOSE_CONST( U_ENUM_OUT_OF_SYNC_ERROR );
     135           17633 :         INTL_EXPOSE_CONST( U_INVARIANT_CONVERSION_ERROR );
     136           17633 :         INTL_EXPOSE_CONST( U_INVALID_STATE_ERROR );
     137           17633 :         INTL_EXPOSE_CONST( U_COLLATOR_VERSION_MISMATCH );
     138           17633 :         INTL_EXPOSE_CONST( U_USELESS_COLLATOR_ERROR );
     139           17633 :         INTL_EXPOSE_CONST( U_NO_WRITE_PERMISSION );
     140           17633 :         INTL_EXPOSE_CONST( U_STANDARD_ERROR_LIMIT );
     141                 : 
     142                 :         /* The error code range 0x10000 0x10100 are reserved for Transliterator */
     143           17633 :         INTL_EXPOSE_CONST( U_BAD_VARIABLE_DEFINITION );
     144           17633 :         INTL_EXPOSE_CONST( U_PARSE_ERROR_START );
     145           17633 :         INTL_EXPOSE_CONST( U_MALFORMED_RULE );
     146           17633 :         INTL_EXPOSE_CONST( U_MALFORMED_SET );
     147           17633 :         INTL_EXPOSE_CONST( U_MALFORMED_SYMBOL_REFERENCE );
     148           17633 :         INTL_EXPOSE_CONST( U_MALFORMED_UNICODE_ESCAPE );
     149           17633 :         INTL_EXPOSE_CONST( U_MALFORMED_VARIABLE_DEFINITION );
     150           17633 :         INTL_EXPOSE_CONST( U_MALFORMED_VARIABLE_REFERENCE );
     151           17633 :         INTL_EXPOSE_CONST( U_MISMATCHED_SEGMENT_DELIMITERS );
     152           17633 :         INTL_EXPOSE_CONST( U_MISPLACED_ANCHOR_START );
     153           17633 :         INTL_EXPOSE_CONST( U_MISPLACED_CURSOR_OFFSET );
     154           17633 :         INTL_EXPOSE_CONST( U_MISPLACED_QUANTIFIER );
     155           17633 :         INTL_EXPOSE_CONST( U_MISSING_OPERATOR );
     156           17633 :         INTL_EXPOSE_CONST( U_MISSING_SEGMENT_CLOSE );
     157           17633 :         INTL_EXPOSE_CONST( U_MULTIPLE_ANTE_CONTEXTS );
     158           17633 :         INTL_EXPOSE_CONST( U_MULTIPLE_CURSORS );
     159           17633 :         INTL_EXPOSE_CONST( U_MULTIPLE_POST_CONTEXTS );
     160           17633 :         INTL_EXPOSE_CONST( U_TRAILING_BACKSLASH );
     161           17633 :         INTL_EXPOSE_CONST( U_UNDEFINED_SEGMENT_REFERENCE );
     162           17633 :         INTL_EXPOSE_CONST( U_UNDEFINED_VARIABLE );
     163           17633 :         INTL_EXPOSE_CONST( U_UNQUOTED_SPECIAL );
     164           17633 :         INTL_EXPOSE_CONST( U_UNTERMINATED_QUOTE );
     165           17633 :         INTL_EXPOSE_CONST( U_RULE_MASK_ERROR );
     166           17633 :         INTL_EXPOSE_CONST( U_MISPLACED_COMPOUND_FILTER );
     167           17633 :         INTL_EXPOSE_CONST( U_MULTIPLE_COMPOUND_FILTERS );
     168           17633 :         INTL_EXPOSE_CONST( U_INVALID_RBT_SYNTAX );
     169           17633 :         INTL_EXPOSE_CONST( U_INVALID_PROPERTY_PATTERN );
     170           17633 :         INTL_EXPOSE_CONST( U_MALFORMED_PRAGMA );
     171           17633 :         INTL_EXPOSE_CONST( U_UNCLOSED_SEGMENT );
     172           17633 :         INTL_EXPOSE_CONST( U_ILLEGAL_CHAR_IN_SEGMENT );
     173           17633 :         INTL_EXPOSE_CONST( U_VARIABLE_RANGE_EXHAUSTED );
     174           17633 :         INTL_EXPOSE_CONST( U_VARIABLE_RANGE_OVERLAP );
     175           17633 :         INTL_EXPOSE_CONST( U_ILLEGAL_CHARACTER );
     176           17633 :         INTL_EXPOSE_CONST( U_INTERNAL_TRANSLITERATOR_ERROR );
     177           17633 :         INTL_EXPOSE_CONST( U_INVALID_ID );
     178           17633 :         INTL_EXPOSE_CONST( U_INVALID_FUNCTION );
     179           17633 :         INTL_EXPOSE_CONST( U_PARSE_ERROR_LIMIT );
     180                 : 
     181                 :         /* The error code range 0x10100 0x10200 are reserved for formatting API parsing error */
     182           17633 :         INTL_EXPOSE_CONST( U_UNEXPECTED_TOKEN );
     183           17633 :         INTL_EXPOSE_CONST( U_FMT_PARSE_ERROR_START );
     184           17633 :         INTL_EXPOSE_CONST( U_MULTIPLE_DECIMAL_SEPARATORS );
     185           17633 :         INTL_EXPOSE_CONST( U_MULTIPLE_DECIMAL_SEPERATORS );    /* Typo: kept for backward compatibility. Use U_MULTIPLE_DECIMAL_SEPARATORS */
     186           17633 :         INTL_EXPOSE_CONST( U_MULTIPLE_EXPONENTIAL_SYMBOLS );
     187           17633 :         INTL_EXPOSE_CONST( U_MALFORMED_EXPONENTIAL_PATTERN );
     188           17633 :         INTL_EXPOSE_CONST( U_MULTIPLE_PERCENT_SYMBOLS );
     189           17633 :         INTL_EXPOSE_CONST( U_MULTIPLE_PERMILL_SYMBOLS );
     190           17633 :         INTL_EXPOSE_CONST( U_MULTIPLE_PAD_SPECIFIERS );
     191           17633 :         INTL_EXPOSE_CONST( U_PATTERN_SYNTAX_ERROR );
     192           17633 :         INTL_EXPOSE_CONST( U_ILLEGAL_PAD_POSITION );
     193           17633 :         INTL_EXPOSE_CONST( U_UNMATCHED_BRACES );
     194           17633 :         INTL_EXPOSE_CONST( U_UNSUPPORTED_PROPERTY );
     195           17633 :         INTL_EXPOSE_CONST( U_UNSUPPORTED_ATTRIBUTE );
     196           17633 :         INTL_EXPOSE_CONST( U_FMT_PARSE_ERROR_LIMIT );
     197                 : 
     198                 :         /* The error code range 0x10200 0x102ff are reserved for Break Iterator related error */
     199           17633 :         INTL_EXPOSE_CONST( U_BRK_INTERNAL_ERROR );
     200           17633 :         INTL_EXPOSE_CONST( U_BRK_ERROR_START );
     201           17633 :         INTL_EXPOSE_CONST( U_BRK_HEX_DIGITS_EXPECTED );
     202           17633 :         INTL_EXPOSE_CONST( U_BRK_SEMICOLON_EXPECTED );
     203           17633 :         INTL_EXPOSE_CONST( U_BRK_RULE_SYNTAX );
     204           17633 :         INTL_EXPOSE_CONST( U_BRK_UNCLOSED_SET );
     205           17633 :         INTL_EXPOSE_CONST( U_BRK_ASSIGN_ERROR );
     206           17633 :         INTL_EXPOSE_CONST( U_BRK_VARIABLE_REDFINITION );
     207           17633 :         INTL_EXPOSE_CONST( U_BRK_MISMATCHED_PAREN );
     208           17633 :         INTL_EXPOSE_CONST( U_BRK_NEW_LINE_IN_QUOTED_STRING );
     209           17633 :         INTL_EXPOSE_CONST( U_BRK_UNDEFINED_VARIABLE );
     210           17633 :         INTL_EXPOSE_CONST( U_BRK_INIT_ERROR );
     211           17633 :         INTL_EXPOSE_CONST( U_BRK_RULE_EMPTY_SET );
     212           17633 :         INTL_EXPOSE_CONST( U_BRK_UNRECOGNIZED_OPTION );
     213           17633 :         INTL_EXPOSE_CONST( U_BRK_MALFORMED_RULE_TAG );
     214           17633 :         INTL_EXPOSE_CONST( U_BRK_ERROR_LIMIT );
     215                 : 
     216                 :         /* The error codes in the range 0x10300-0x103ff are reserved for regular expression related errrs */
     217           17633 :         INTL_EXPOSE_CONST( U_REGEX_INTERNAL_ERROR );
     218           17633 :         INTL_EXPOSE_CONST( U_REGEX_ERROR_START );
     219           17633 :         INTL_EXPOSE_CONST( U_REGEX_RULE_SYNTAX );
     220           17633 :         INTL_EXPOSE_CONST( U_REGEX_INVALID_STATE );
     221           17633 :         INTL_EXPOSE_CONST( U_REGEX_BAD_ESCAPE_SEQUENCE );
     222           17633 :         INTL_EXPOSE_CONST( U_REGEX_PROPERTY_SYNTAX );
     223           17633 :         INTL_EXPOSE_CONST( U_REGEX_UNIMPLEMENTED );
     224           17633 :         INTL_EXPOSE_CONST( U_REGEX_MISMATCHED_PAREN );
     225           17633 :         INTL_EXPOSE_CONST( U_REGEX_NUMBER_TOO_BIG );
     226           17633 :         INTL_EXPOSE_CONST( U_REGEX_BAD_INTERVAL );
     227           17633 :         INTL_EXPOSE_CONST( U_REGEX_MAX_LT_MIN );
     228           17633 :         INTL_EXPOSE_CONST( U_REGEX_INVALID_BACK_REF );
     229           17633 :         INTL_EXPOSE_CONST( U_REGEX_INVALID_FLAG );
     230           17633 :         INTL_EXPOSE_CONST( U_REGEX_LOOK_BEHIND_LIMIT );
     231           17633 :         INTL_EXPOSE_CONST( U_REGEX_SET_CONTAINS_STRING );
     232           17633 :         INTL_EXPOSE_CONST( U_REGEX_ERROR_LIMIT );
     233                 : 
     234                 :         /* The error code in the range 0x10400-0x104ff are reserved for IDNA related error codes */
     235                 : #if defined(U_IDNA_PROHIBITED_ERROR)
     236                 :         INTL_EXPOSE_CONST( U_IDNA_PROHIBITED_ERROR );
     237                 :         INTL_EXPOSE_CONST( U_IDNA_ERROR_START );
     238                 :         INTL_EXPOSE_CONST( U_IDNA_UNASSIGNED_ERROR );
     239                 :         INTL_EXPOSE_CONST( U_IDNA_CHECK_BIDI_ERROR );
     240                 :         INTL_EXPOSE_CONST( U_IDNA_STD3_ASCII_RULES_ERROR );
     241                 :         INTL_EXPOSE_CONST( U_IDNA_ACE_PREFIX_ERROR );
     242                 :         INTL_EXPOSE_CONST( U_IDNA_VERIFICATION_ERROR );
     243                 :         INTL_EXPOSE_CONST( U_IDNA_LABEL_TOO_LONG_ERROR );
     244                 :         INTL_EXPOSE_CONST( U_IDNA_ZERO_LENGTH_LABEL_ERROR );
     245                 :         INTL_EXPOSE_CONST( U_IDNA_ERROR_LIMIT );
     246                 : #endif
     247                 : 
     248                 :         /* Aliases for StringPrep */
     249           17633 :         INTL_EXPOSE_CONST( U_STRINGPREP_PROHIBITED_ERROR );
     250           17633 :         INTL_EXPOSE_CONST( U_STRINGPREP_UNASSIGNED_ERROR );
     251           17633 :         INTL_EXPOSE_CONST( U_STRINGPREP_CHECK_BIDI_ERROR );
     252                 : 
     253           17633 :         INTL_EXPOSE_CONST( U_ERROR_LIMIT );
     254                 : 
     255                 :         #undef INTL_EXPOSE_CONST
     256           17633 : }
     257                 : /* }}} */
     258                 : 
     259                 : /*
     260                 :  * Local variables:
     261                 :  * tab-width: 4
     262                 :  * c-basic-offset: 4
     263                 :  * End:
     264                 :  * vim600: noet sw=4 ts=4 fdm=marker
     265                 :  * vim<600: noet sw=4 ts=4
     266                 :  */

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.