From a76fa337cc657dbe669ffb8dbdac606d4d6616f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Wed, 31 Aug 2016 03:42:05 +0200 Subject: Imported Upstream version 6.1.0 --- src/unicode.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/unicode.c') diff --git a/src/unicode.c b/src/unicode.c index df20ef9..8812ca2 100644 --- a/src/unicode.c +++ b/src/unicode.c @@ -111,8 +111,10 @@ onig_unicode_define_user_property(const char* name, OnigCodePoint* ranges) n = 0; for (i = 0; i < len; i++) { c = name[i]; - if (c <= 0 || c >= 0x80) + if (c <= 0 || c >= 0x80) { + xfree(s); return ONIGERR_INVALID_CHAR_PROPERTY_NAME; + } if (c != ' ' && c != '-' && c != '_') { s[n] = c; @@ -483,12 +485,13 @@ onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc, buk = unicode_unfold_key(code); if (buk != 0) { if (buk->fold_len == 1) { + int un; items[0].byte_len = len; items[0].code_len = 1; items[0].code[0] = *FOLDS1_FOLD(buk->index); n++; - int un = FOLDS1_UNFOLDS_NUM(buk->index); + un = FOLDS1_UNFOLDS_NUM(buk->index); for (i = 0; i < un; i++) { OnigCodePoint unfold = FOLDS1_UNFOLDS(buk->index)[i]; if (unfold != code) { @@ -517,8 +520,9 @@ onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc, } for (fn = 0; fn < 2; fn++) { + int index; cs[fn][0] = FOLDS2_FOLD(buk->index)[fn]; - int index = unicode_fold1_key(&cs[fn][0]); + index = unicode_fold1_key(&cs[fn][0]); if (index >= 0) { int m = FOLDS1_UNFOLDS_NUM(index); for (i = 0; i < m; i++) { @@ -553,8 +557,9 @@ onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc, } for (fn = 0; fn < 3; fn++) { + int index; cs[fn][0] = FOLDS3_FOLD(buk->index)[fn]; - int index = unicode_fold1_key(&cs[fn][0]); + index = unicode_fold1_key(&cs[fn][0]); if (index >= 0) { int m = FOLDS1_UNFOLDS_NUM(index); for (i = 0; i < m; i++) { @@ -603,6 +608,7 @@ onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc, p += len; if (p < end) { int clen; + int index; codes[0] = code; code = ONIGENC_MBC_TO_CODE(enc, p, end); @@ -617,7 +623,7 @@ onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc, clen = enclen(enc, p); len += clen; - int index = unicode_fold2_key(codes); + index = unicode_fold2_key(codes); if (index >= 0) { m = FOLDS2_UNFOLDS_NUM(index); for (i = 0; i < m; i++) { -- cgit v1.2.3