[Groonga-commit] groonga/groonga [master] Added escaping rules for \u2028 \u2029.

Back to archive index

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);
     }




Groonga-commit メーリングリストの案内
Back to archive index