[Groonga-commit] groonga/groonga at ad998f1 [master] highlight_html: fix a bug that duplicated text is returned

Zurück zum Archiv-Index

Kouhei Sutou null+****@clear*****
Sat Apr 23 22:06:52 JST 2016


Kouhei Sutou	2016-04-23 22:06:52 +0900 (Sat, 23 Apr 2016)

  New Revision: ad998f18b1e09672d8184257b463cead9b64475c
  https://github.com/groonga/groonga/commit/ad998f18b1e09672d8184257b463cead9b64475c

  Message:
    highlight_html: fix a bug that duplicated text is returned
    
    It's occurred when highlighted keyword is occurred 1024 or more times.

  Modified files:
    lib/proc/proc_highlight.c

  Modified: lib/proc/proc_highlight.c (+5 -2)
===================================================================
--- lib/proc/proc_highlight.c    2016-04-23 14:28:19 +0900 (589b729)
+++ lib/proc/proc_highlight.c    2016-04-23 22:06:52 +0900 (46231d3)
@@ -48,6 +48,7 @@ grn_pat_tag_keys(grn_ctx *ctx, grn_obj *keywords,
     const char *rest;
     unsigned int i, n_hits;
     unsigned int previous = 0;
+    size_t chunk_length;
 
     n_hits = grn_pat_scan(ctx, (grn_pat *)keywords,
                           string, string_length,
@@ -73,14 +74,16 @@ grn_pat_tag_keys(grn_ctx *ctx, grn_obj *keywords,
                    close_tags[nth_tag], close_tag_lengths[nth_tag]);
       previous = hits[i].offset + hits[i].length;
     }
-    if (string_length - previous > 0) {
+
+    chunk_length = rest - string;
+    if (chunk_length - previous > 0) {
       grn_pat_tag_keys_put_original_text(ctx,
                                          highlighted,
                                          string + previous,
                                          string_length - previous,
                                          use_html_escape);
     }
-    string_length -= rest - string;
+    string_length -= chunk_length;
     string = rest;
 #undef MAX_N_HITS
   }
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Zurück zum Archiv-Index