mirror of
https://github.com/php/php-src.git
synced 2025-08-15 13:38:49 +02:00
Added IntlCodePointBreakIterator.
Objects of this class can be instantiated with IntlBreakIterator::createCodePointInstance() The method does not take a locale, as it would not make sense in this context. This class has one additional method: long IntlCodePointIterator::getLastCodePoint() which returns either -1 or the last code point we moved over, if any (and discounting any movement before the last call to IntlBreakIterator::first() or IntlBreakIterator::last()).
This commit is contained in:
parent
cee31091a9
commit
0a7ae87e91
15 changed files with 736 additions and 2 deletions
44
ext/intl/breakiterator/codepointiterator_methods.cpp
Normal file
44
ext/intl/breakiterator/codepointiterator_methods.cpp
Normal file
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.php.net/license/3_01.txt |
|
||||
| If you did not receive a copy of the PHP license and are unable to |
|
||||
| obtain it through the world-wide-web, please send a note to |
|
||||
| license@php.net so we can mail you a copy immediately. |
|
||||
+----------------------------------------------------------------------+
|
||||
| Authors: Gustavo Lopes <cataphract@php.net> |
|
||||
+----------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
#include "codepointiterator_internal.h"
|
||||
|
||||
extern "C" {
|
||||
#define USE_BREAKITERATOR_POINTER 1
|
||||
#include "breakiterator_class.h"
|
||||
}
|
||||
|
||||
using PHP::CodePointBreakIterator;
|
||||
|
||||
static inline CodePointBreakIterator *fetch_cpbi(BreakIterator_object *bio) {
|
||||
return (CodePointBreakIterator*)bio->biter;
|
||||
}
|
||||
|
||||
U_CFUNC PHP_FUNCTION(cpbi_get_last_code_point)
|
||||
{
|
||||
BREAKITER_METHOD_INIT_VARS;
|
||||
object = getThis();
|
||||
|
||||
if (zend_parse_parameters_none() == FAILURE) {
|
||||
intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR,
|
||||
"cpbi_get_last_code_point: bad arguments", 0 TSRMLS_CC);
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
BREAKITER_METHOD_FETCH_OBJECT;
|
||||
|
||||
RETURN_LONG(fetch_cpbi(bio)->getLastCodePoint());
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue