OSDN Git Service

- y_keyvalue_get が key を返してたのを、value に修正
authoryoya <yoya@7c90b180-03d5-4157-b861-58a559ae9d1e>
Wed, 8 Jun 2011 10:33:21 +0000 (10:33 +0000)
committeryoya <yoya@7c90b180-03d5-4157-b861-58a559ae9d1e>
Wed, 8 Jun 2011 10:33:21 +0000 (10:33 +0000)
- y_keyvalue_get_maxkeyvaluelength を実装
- y_keyvalue_dump を実装 (デバッグ用、かつ %*s が怪しい)

git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/swfed/trunk@576 7c90b180-03d5-4157-b861-58a559ae9d1e

src/y_keyvalue.c
src/y_keyvalue.h

index 9abab63..1ebc011 100644 (file)
@@ -95,7 +95,7 @@ y_keyvalue_get(y_keyvalue_t *st, char *key, int key_len, int *value_len) {
             (st->table[i].key_len == key_len) &&
             (memcmp(st->table[i].key, key, key_len) == 0)) {
             *value_len = st->table[i].value_len;
-            return st->table[i].key;
+            return st->table[i].value;
         }
     }
     return NULL;
@@ -210,6 +210,33 @@ y_keyvalue_get_maxvaluelength(y_keyvalue_t *st) {
     return maxlen;
 }
 
+int
+y_keyvalue_get_maxkeyvaluelength(y_keyvalue_t *st) {
+    int key_maxlen;
+    int value_maxlen;
+    key_maxlen = y_keyvalue_get_maxkeylength(st);
+    value_maxlen = py_keyvalue_get_maxvaluelength(st);
+    return (key_maxlen>value_maxlen)?key_maxlen:value_maxlen;
+}
+
+void
+y_keyvalue_dump(y_keyvalue_t *st) {
+    int i;
+    int maxlen = 0;
+    unsigned char *key, *value;
+    int key_len, value_len;
+    for (i = 0 ; i < st->use_len ; i++) {
+        printf("[%d] ", i);
+        if (st->table[i].use) {
+           printf("key:%*s ", st->table[i].key_len, st->table[i].key);
+           printf("value:%*s", st->table[i].value_len, st->table[i].value);
+           printf("\n");
+        } else {
+           printf("deleted");
+           printf("\n");
+       }
+    }
+}
 
 #ifdef __KEYVALUE_DEBUG__
 
index c8fcd1c..13ae1de 100644 (file)
@@ -33,11 +33,11 @@ extern int y_keyvalue_prev(y_keyvalue_t *st);
 extern char * y_keyvalue_get_currentkey(y_keyvalue_t *st, int *key_len);
 extern char * y_keyvalue_get_currentvalue(y_keyvalue_t *st, int *value_len);
 
-extern int y_keyvalue_get_maxkeylength(y_keyvalue_t *st);
-extern int y_keyvalue_get_maxvaluelength(y_keyvalue_t *st);
 
 // info
-
-
+extern int y_keyvalue_get_maxkeylength(y_keyvalue_t *st);
+extern int y_keyvalue_get_maxvaluelength(y_keyvalue_t *st);
+extern int y_keyvalue_get_maxkeyvaluelength(y_keyvalue_t *st);
+extern void y_keyvalue_dump(y_keyvalue_t *st);
 
 #endif /* __Y_KEYVALUE_H__ */