[Groonga-commit] groonga/groonga [master] keep original string pointer.

アーカイブの一覧に戻る

null+****@clear***** null+****@clear*****
2010年 6月 10日 (木) 08:05:56 JST


Kouhei Sutou	2010-06-09 23:05:56 +0000 (Wed, 09 Jun 2010)

  New Revision: c2c2ae1a5b536e06d6a56fd7dbd6585852c3aa87

  Log:
    keep original string pointer.

  Modified files:
    lib/db.c

  Modified: lib/db.c (+10 -9)
===================================================================
--- lib/db.c    2010-06-09 13:38:10 +0000 (5c72202)
+++ lib/db.c    2010-06-09 23:05:56 +0000 (74499ae)
@@ -6823,6 +6823,7 @@ grn_table_sort_key *
 grn_table_sort_key_from_str(grn_ctx *ctx, const char *str, unsigned str_size,
                             grn_obj *table, unsigned *nkeys)
 {
+  const char *p = str;
   const char **tokbuf;
   grn_table_sort_key *keys = NULL, *k = NULL;
   if ((tokbuf = GRN_MALLOCN(const char *, str_size))) {
@@ -6831,23 +6832,23 @@ grn_table_sort_key_from_str(grn_ctx *ctx, const char *str, unsigned str_size,
       k = keys;
       for (i = 0; i < n; i++) {
         const char *r = tokbuf[i];
-        while (str < r && (' ' == *str || ',' == *str)) { str++; }
-        if (str < r) {
+        while (p < r && (' ' == *p || ',' == *p)) { p++; }
+        if (p < r) {
           k->flags = GRN_TABLE_SORT_ASC;
           k->offset = 0;
-          if (*str == '+') {
-            str++;
-          } else if (*str == '-') {
+          if (*p == '+') {
+            p++;
+          } else if (*p == '-') {
             k->flags = GRN_TABLE_SORT_DESC;
-            str++;
+            p++;
           }
-          if (!(k->key = grn_obj_column(ctx, table, str, r - str))) {
-            WARN(GRN_INVALID_ARGUMENT, "invalid sort key: <%.*s>", tokbuf[i] - str, str);
+          if (!(k->key = grn_obj_column(ctx, table, p, r - p))) {
+            WARN(GRN_INVALID_ARGUMENT, "invalid sort key: <%.*s>", tokbuf[i] - p, p);
             break;
           }
           k++;
         }
-        str = r;
+        p = r;
       }
     }
     GRN_FREE(tokbuf);




Groonga-commit メーリングリストの案内
アーカイブの一覧に戻る