aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ascii.c2
-rw-r--r--src/big5.c2
-rw-r--r--src/cp1251.c2
-rw-r--r--src/euc_jp.c2
-rw-r--r--src/euc_kr.c6
-rw-r--r--src/euc_tw.c2
-rw-r--r--src/gb18030.c2
-rw-r--r--src/iso8859_1.c2
-rw-r--r--src/iso8859_10.c2
-rw-r--r--src/iso8859_11.c2
-rw-r--r--src/iso8859_13.c2
-rw-r--r--src/iso8859_14.c2
-rw-r--r--src/iso8859_15.c2
-rw-r--r--src/iso8859_16.c2
-rw-r--r--src/iso8859_2.c2
-rw-r--r--src/iso8859_3.c2
-rw-r--r--src/iso8859_4.c2
-rw-r--r--src/iso8859_5.c2
-rw-r--r--src/iso8859_6.c2
-rw-r--r--src/iso8859_7.c2
-rw-r--r--src/iso8859_8.c2
-rw-r--r--src/iso8859_9.c2
-rw-r--r--src/koi8.c2
-rw-r--r--src/koi8_r.c2
-rw-r--r--src/regenc.h9
-rw-r--r--src/sjis.c2
-rw-r--r--src/utf16_be.c2
-rw-r--r--src/utf16_le.c2
-rw-r--r--src/utf32_be.c2
-rw-r--r--src/utf32_le.c2
-rw-r--r--src/utf8.c2
31 files changed, 42 insertions, 31 deletions
diff --git a/src/ascii.c b/src/ascii.c
index eb38944..e83e4d6 100644
--- a/src/ascii.c
+++ b/src/ascii.c
@@ -113,6 +113,6 @@ OnigEncodingType OnigEncodingASCII = {
init,
0, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/big5.c b/src/big5.c
index c3fa9fd..f931ade 100644
--- a/src/big5.c
+++ b/src/big5.c
@@ -187,6 +187,6 @@ OnigEncodingType OnigEncodingBIG5 = {
NULL, /* init */
NULL, /* is_initialized */
is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/cp1251.c b/src/cp1251.c
index e217037..7b19855 100644
--- a/src/cp1251.c
+++ b/src/cp1251.c
@@ -200,6 +200,6 @@ OnigEncodingType OnigEncodingCP1251 = {
NULL, /* init */
NULL, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/euc_jp.c b/src/euc_jp.c
index 9d25475..c1ab89e 100644
--- a/src/euc_jp.c
+++ b/src/euc_jp.c
@@ -307,6 +307,6 @@ OnigEncodingType OnigEncodingEUC_JP = {
NULL, /* init */
NULL, /* is_initialized */
is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1_OR_0,
0, 0
};
diff --git a/src/euc_kr.c b/src/euc_kr.c
index def311b..9b62514 100644
--- a/src/euc_kr.c
+++ b/src/euc_kr.c
@@ -161,7 +161,9 @@ OnigEncodingType OnigEncodingEUC_KR = {
euckr_is_allowed_reverse_match,
NULL, /* init */
NULL, /* is_initialized */
- is_valid_mbc_string
+ is_valid_mbc_string,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1_OR_0,
+ 0, 0
};
/* Same with OnigEncodingEUC_KR except the name */
@@ -185,6 +187,6 @@ OnigEncodingType OnigEncodingEUC_CN = {
NULL, /* init */
NULL, /* is_initialized */
is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1_OR_0,
0, 0
};
diff --git a/src/euc_tw.c b/src/euc_tw.c
index 8738598..7683336 100644
--- a/src/euc_tw.c
+++ b/src/euc_tw.c
@@ -168,6 +168,6 @@ OnigEncodingType OnigEncodingEUC_TW = {
NULL, /* init */
NULL, /* is_initialized */
is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/gb18030.c b/src/gb18030.c
index d4a1108..7654432 100644
--- a/src/gb18030.c
+++ b/src/gb18030.c
@@ -535,6 +535,6 @@ OnigEncodingType OnigEncodingGB18030 = {
NULL, /* init */
NULL, /* is_initialized */
is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/iso8859_1.c b/src/iso8859_1.c
index ff47b80..0ce70a6 100644
--- a/src/iso8859_1.c
+++ b/src/iso8859_1.c
@@ -272,6 +272,6 @@ OnigEncodingType OnigEncodingISO_8859_1 = {
NULL, /* init */
NULL, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/iso8859_10.c b/src/iso8859_10.c
index f9804e2..4a34b38 100644
--- a/src/iso8859_10.c
+++ b/src/iso8859_10.c
@@ -239,6 +239,6 @@ OnigEncodingType OnigEncodingISO_8859_10 = {
NULL, /* init */
NULL, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/iso8859_11.c b/src/iso8859_11.c
index 108ee8a..da8fda0 100644
--- a/src/iso8859_11.c
+++ b/src/iso8859_11.c
@@ -96,6 +96,6 @@ OnigEncodingType OnigEncodingISO_8859_11 = {
NULL, /* init */
NULL, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/iso8859_13.c b/src/iso8859_13.c
index 9585355..23a0265 100644
--- a/src/iso8859_13.c
+++ b/src/iso8859_13.c
@@ -228,6 +228,6 @@ OnigEncodingType OnigEncodingISO_8859_13 = {
NULL, /* init */
NULL, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/iso8859_14.c b/src/iso8859_14.c
index 83fc551..7281e93 100644
--- a/src/iso8859_14.c
+++ b/src/iso8859_14.c
@@ -241,6 +241,6 @@ OnigEncodingType OnigEncodingISO_8859_14 = {
NULL, /* init */
NULL, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/iso8859_15.c b/src/iso8859_15.c
index 3a7ad05..3d9f571 100644
--- a/src/iso8859_15.c
+++ b/src/iso8859_15.c
@@ -235,6 +235,6 @@ OnigEncodingType OnigEncodingISO_8859_15 = {
NULL, /* init */
NULL, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/iso8859_16.c b/src/iso8859_16.c
index 02022d9..a6977dd 100644
--- a/src/iso8859_16.c
+++ b/src/iso8859_16.c
@@ -237,6 +237,6 @@ OnigEncodingType OnigEncodingISO_8859_16 = {
NULL, /* init */
NULL, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/iso8859_2.c b/src/iso8859_2.c
index ecdbb99..4f994c4 100644
--- a/src/iso8859_2.c
+++ b/src/iso8859_2.c
@@ -235,6 +235,6 @@ OnigEncodingType OnigEncodingISO_8859_2 = {
NULL, /* init */
NULL, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/iso8859_3.c b/src/iso8859_3.c
index 739f1c9..944a7ae 100644
--- a/src/iso8859_3.c
+++ b/src/iso8859_3.c
@@ -235,6 +235,6 @@ OnigEncodingType OnigEncodingISO_8859_3 = {
NULL, /* init */
NULL, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/iso8859_4.c b/src/iso8859_4.c
index 4f2b6a0..3a7c210 100644
--- a/src/iso8859_4.c
+++ b/src/iso8859_4.c
@@ -237,6 +237,6 @@ OnigEncodingType OnigEncodingISO_8859_4 = {
NULL, /* init */
NULL, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/iso8859_5.c b/src/iso8859_5.c
index cf41061..0a8b7ec 100644
--- a/src/iso8859_5.c
+++ b/src/iso8859_5.c
@@ -226,6 +226,6 @@ OnigEncodingType OnigEncodingISO_8859_5 = {
NULL, /* init */
NULL, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/iso8859_6.c b/src/iso8859_6.c
index 1ffe99f..1c16c79 100644
--- a/src/iso8859_6.c
+++ b/src/iso8859_6.c
@@ -96,6 +96,6 @@ OnigEncodingType OnigEncodingISO_8859_6 = {
NULL, /* init */
NULL, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/iso8859_7.c b/src/iso8859_7.c
index 87288c2..0877b6f 100644
--- a/src/iso8859_7.c
+++ b/src/iso8859_7.c
@@ -222,6 +222,6 @@ OnigEncodingType OnigEncodingISO_8859_7 = {
NULL, /* init */
NULL, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/iso8859_8.c b/src/iso8859_8.c
index 8f162a4..bd3e94d 100644
--- a/src/iso8859_8.c
+++ b/src/iso8859_8.c
@@ -96,6 +96,6 @@ OnigEncodingType OnigEncodingISO_8859_8 = {
NULL, /* init */
NULL, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/iso8859_9.c b/src/iso8859_9.c
index 52589cf..8819f4a 100644
--- a/src/iso8859_9.c
+++ b/src/iso8859_9.c
@@ -228,6 +228,6 @@ OnigEncodingType OnigEncodingISO_8859_9 = {
NULL, /* init */
NULL, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/koi8.c b/src/koi8.c
index 9fb2ee5..7ce965f 100644
--- a/src/koi8.c
+++ b/src/koi8.c
@@ -250,6 +250,6 @@ OnigEncodingType OnigEncodingKOI8 = {
NULL, /* init */
NULL, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/koi8_r.c b/src/koi8_r.c
index 8adc399..5994ebe 100644
--- a/src/koi8_r.c
+++ b/src/koi8_r.c
@@ -212,6 +212,6 @@ OnigEncodingType OnigEncodingKOI8_R = {
NULL, /* init */
NULL, /* is_initialized */
onigenc_always_true_is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/regenc.h b/src/regenc.h
index 17d56cd..64adb3e 100644
--- a/src/regenc.h
+++ b/src/regenc.h
@@ -123,6 +123,15 @@ struct PropertyNameCtype {
#define ENC_FLAG_ASCII_COMPATIBLE (1<<0)
#define ENC_FLAG_UNICODE (1<<1)
+#define ENC_FLAG_SKIP_OFFSET_MASK (7<<2)
+#define ENC_FLAG_SKIP_OFFSET_0 0
+#define ENC_FLAG_SKIP_OFFSET_1 (1<<2)
+#define ENC_FLAG_SKIP_OFFSET_2 (2<<2)
+#define ENC_FLAG_SKIP_OFFSET_3 (3<<2)
+#define ENC_FLAG_SKIP_OFFSET_4 (4<<2)
+#define ENC_FLAG_SKIP_OFFSET_1_OR_0 (7<<2)
+
+#define ENC_GET_SKIP_OFFSET(flag) ((flag)>>2)
/* for encoding system implementation (internal) */
diff --git a/src/sjis.c b/src/sjis.c
index f3cca2e..aaf4cb8 100644
--- a/src/sjis.c
+++ b/src/sjis.c
@@ -335,6 +335,6 @@ OnigEncodingType OnigEncodingSJIS = {
NULL, /* init */
NULL, /* is_initialized */
is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1_OR_0,
0, 0
};
diff --git a/src/utf16_be.c b/src/utf16_be.c
index 8f5b8bf..a812a32 100644
--- a/src/utf16_be.c
+++ b/src/utf16_be.c
@@ -278,6 +278,6 @@ OnigEncodingType OnigEncodingUTF16_BE = {
init,
0, /* is_initialized */
is_valid_mbc_string,
- ENC_FLAG_UNICODE,
+ ENC_FLAG_UNICODE|ENC_FLAG_SKIP_OFFSET_2,
0, 0
};
diff --git a/src/utf16_le.c b/src/utf16_le.c
index 92bf318..da9571f 100644
--- a/src/utf16_le.c
+++ b/src/utf16_le.c
@@ -286,6 +286,6 @@ OnigEncodingType OnigEncodingUTF16_LE = {
init,
0, /* is_initialized */
is_valid_mbc_string,
- ENC_FLAG_UNICODE,
+ ENC_FLAG_UNICODE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/utf32_be.c b/src/utf32_be.c
index 92476ec..9339b15 100644
--- a/src/utf32_be.c
+++ b/src/utf32_be.c
@@ -191,6 +191,6 @@ OnigEncodingType OnigEncodingUTF32_BE = {
NULL, /* init */
NULL, /* is_initialized */
is_valid_mbc_string,
- ENC_FLAG_UNICODE,
+ ENC_FLAG_UNICODE|ENC_FLAG_SKIP_OFFSET_4,
0, 0
};
diff --git a/src/utf32_le.c b/src/utf32_le.c
index dc3fd92..22e007c 100644
--- a/src/utf32_le.c
+++ b/src/utf32_le.c
@@ -191,6 +191,6 @@ OnigEncodingType OnigEncodingUTF32_LE = {
NULL, /* init */
NULL, /* is_initialized */
is_valid_mbc_string,
- ENC_FLAG_UNICODE,
+ ENC_FLAG_UNICODE|ENC_FLAG_SKIP_OFFSET_1,
0, 0
};
diff --git a/src/utf8.c b/src/utf8.c
index 9ccf1bd..4d1f9ec 100644
--- a/src/utf8.c
+++ b/src/utf8.c
@@ -297,6 +297,6 @@ OnigEncodingType OnigEncodingUTF8 = {
NULL, /* init */
NULL, /* is_initialized */
is_valid_mbc_string,
- ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_UNICODE,
+ ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_UNICODE|ENC_FLAG_SKIP_OFFSET_1_OR_0,
0, 0
};