20
20
21
21
#include < unicode/brkiter.h>
22
22
#include < unicode/rbbi.h>
23
+ #include " codepointiterator_internal.h"
23
24
24
25
#include " breakiterator_iterators.h"
25
26
@@ -30,14 +31,18 @@ extern "C" {
30
31
#include " breakiterator_class.h"
31
32
#include " breakiterator_methods.h"
32
33
#include " rulebasedbreakiterator_methods.h"
34
+ #include " codepointiterator_methods.h"
33
35
#include < zend_exceptions.h>
34
36
#include < zend_interfaces.h>
35
37
#include < assert.h>
36
38
}
37
39
40
+ using PHP::CodePointBreakIterator;
41
+
38
42
/* {{{ Global variables */
39
43
zend_class_entry *BreakIterator_ce_ptr;
40
44
zend_class_entry *RuleBasedBreakIterator_ce_ptr;
45
+ zend_class_entry *CodePointBreakIterator_ce_ptr;
41
46
zend_object_handlers BreakIterator_handlers;
42
47
/* }}} */
43
48
@@ -49,6 +54,8 @@ U_CFUNC void breakiterator_object_create(zval *object,
49
54
50
55
if (classId == RuleBasedBreakIterator::getStaticClassID ()) {
51
56
ce = RuleBasedBreakIterator_ce_ptr;
57
+ } else if (classId == CodePointBreakIterator::getStaticClassID ()) {
58
+ ce = CodePointBreakIterator_ce_ptr;
52
59
} else {
53
60
ce = BreakIterator_ce_ptr;
54
61
}
@@ -274,6 +281,7 @@ static const zend_function_entry BreakIterator_class_functions[] = {
274
281
PHP_ME_MAPPING (createCharacterInstance, breakiter_create_character_instance, ainfo_biter_locale, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
275
282
PHP_ME_MAPPING (createSentenceInstance, breakiter_create_sentence_instance, ainfo_biter_locale, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
276
283
PHP_ME_MAPPING (createTitleInstance, breakiter_create_title_instance, ainfo_biter_locale, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
284
+ PHP_ME_MAPPING (createCodePointInstance, breakiter_create_code_point_instance, ainfo_biter_void, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC)
277
285
PHP_ME_MAPPING (getText, breakiter_get_text, ainfo_biter_void, ZEND_ACC_PUBLIC)
278
286
PHP_ME_MAPPING (setText, breakiter_set_text, ainfo_biter_setText, ZEND_ACC_PUBLIC)
279
287
PHP_ME_MAPPING (first, breakiter_first, ainfo_biter_void, ZEND_ACC_PUBLIC)
@@ -305,6 +313,14 @@ static const zend_function_entry RuleBasedBreakIterator_class_functions[] = {
305
313
};
306
314
/* }}} */
307
315
316
+ /* {{{ CodePointBreakIterator_class_functions
317
+ */
318
+ static const zend_function_entry CodePointBreakIterator_class_functions[] = {
319
+ PHP_ME_MAPPING (getLastCodePoint, cpbi_get_last_code_point, ainfo_biter_void, ZEND_ACC_PUBLIC)
320
+ PHP_FE_END
321
+ };
322
+ /* }}} */
323
+
308
324
309
325
/* {{{ breakiterator_register_BreakIterator_class
310
326
* Initialize 'BreakIterator' class
@@ -364,6 +380,12 @@ void breakiterator_register_BreakIterator_class(TSRMLS_D)
364
380
INIT_CLASS_ENTRY (ce, " IntlRuleBasedBreakIterator" ,
365
381
RuleBasedBreakIterator_class_functions);
366
382
RuleBasedBreakIterator_ce_ptr = zend_register_internal_class_ex (&ce,
367
- BreakIterator_ce_ptr, NULL TSRMLS_CC);
383
+ BreakIterator_ce_ptr, NULL TSRMLS_CC);
384
+
385
+ /* Create and register 'CodePointBreakIterator' class. */
386
+ INIT_CLASS_ENTRY (ce, " IntlCodePointBreakIterator" ,
387
+ CodePointBreakIterator_class_functions);
388
+ CodePointBreakIterator_ce_ptr = zend_register_internal_class_ex (&ce,
389
+ BreakIterator_ce_ptr, NULL TSRMLS_CC);
368
390
}
369
391
/* }}} */
0 commit comments