null+****@clear*****
null+****@clear*****
2010年 11月 24日 (水) 19:56:46 JST
Tasuku SUENAGA a.k.a. gunyarakun 2010-11-24 10:56:46 +0000 (Wed, 24 Nov 2010) New Revision: 61c122c51202bbebcbb11529fcf72869882cfb55 Log: Added escaping rules for \u2028 \u2029. Modified files: lib/str.c Modified: lib/str.c (+15 -0) =================================================================== --- lib/str.c 2010-11-18 22:30:10 +0000 (1239efa) +++ lib/str.c 2010-11-24 10:56:46 +0000 (1caa0c6) @@ -2194,6 +2194,21 @@ grn_text_esc(grn_ctx *ctx, grn_obj *buf, const char *s, unsigned int len) default : GRN_TEXT_PUTC(ctx, buf, *s); } + } else if (l == 3) { + if (*s == '\xe2' && *(s + 1) == '\x80') { + switch (*(s + 2)) { + case '\xa8': /* \u2028 */ + grn_bulk_write(ctx, buf, "\\u2028", 6); + break; + case '\xa9': /* \u2029 */ + grn_bulk_write(ctx, buf, "\\u2029", 6); + break; + default: + grn_bulk_write(ctx, buf, s, l); + } + } else { + grn_bulk_write(ctx, buf, s, l); + } } else { grn_bulk_write(ctx, buf, s, l); }