summaryrefslogtreecommitdiff
path: root/regenc.c
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-27 14:27:07 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-27 14:27:07 +0000
commitfc208c1bd56a4e3fc03cb2f54616b4479f4b0e41 (patch)
treef29aa519ea99cfcb7a7f13ec44508510d9291a0b /regenc.c
parent526ab1f0d15247da489cb2fc8af8d4c3f1a71cc2 (diff)
* include/ruby/oniguruma.h: precise mbclen API redesigned to avoid
inline functions. (onigenc_mbclen_charfound): removed. (onigenc_mbclen_needmore): removed. (onigenc_mbclen_recover): removed. (ONIGENC_MBCLEN_CHARFOUND): removed. (ONIGENC_MBCLEN_CHARFOUND_P): defined. (ONIGENC_MBCLEN_CHARFOUND_LEN): defined. (ONIGENC_MBCLEN_INVALID): removed. (ONIGENC_MBCLEN_INVALID_P): defined. (ONIGENC_MBCLEN_NEEDMORE): removed. (ONIGENC_MBCLEN_NEEDMORE_P): defined. (ONIGENC_MBCLEN_NEEDMORE_LEN): defined. (ONIGENC_MBC_ENC_LEN): use onigenc_mbclen_approximate. * regenc.c (onigenc_mbclen_approximate): defined. * include/ruby/encoding.h (MBCLEN_CHARFOUND): removed. (MBCLEN_INVALID): removed. (MBCLEN_NEEDMORE): removed. (MBCLEN_CHARFOUND_P): defined. (MBCLEN_INVALID_P): defined. (MBCLEN_NEEDMORE_P): defined. (MBCLEN_CHARFOUND_LEN): defined. (MBCLEN_NEEDMORE_LEN): defined. * encoding.c: use new API. * re.c: ditto. * string.c: ditto. * parse.y: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'regenc.c')
-rw-r--r--regenc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/regenc.c b/regenc.c
index 16913092ab..4267ebc6ac 100644
--- a/regenc.c
+++ b/regenc.c
@@ -50,6 +50,17 @@ onigenc_set_default_encoding(OnigEncoding enc)
return 0;
}
+extern int
+onigenc_mbclen_approximate(const OnigUChar* p,const OnigUChar* e, struct OnigEncodingTypeST* enc)
+{
+ int ret = ONIGENC_PRECISE_MBC_ENC_LEN(enc,p,e);
+ if (ONIGENC_MBCLEN_CHARFOUND_P(ret))
+ return ONIGENC_MBCLEN_CHARFOUND_LEN(ret);
+ else if (ONIGENC_MBCLEN_NEEDMORE_P(ret))
+ return e-p+ONIGENC_MBCLEN_NEEDMORE_LEN(ret);
+ return 1;
+}
+
extern UChar*
onigenc_get_right_adjust_char_head(OnigEncoding enc, const UChar* start, const UChar* s)
{