]> Cypherpunks repositories - keks.git/commitdiff
Zero-based indeces
authorSergey Matveev <stargrave@stargrave.org>
Mon, 7 Oct 2024 16:19:14 +0000 (19:19 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Mon, 7 Oct 2024 17:45:54 +0000 (20:45 +0300)
cyac/example/print-map.c
cyac/iter.c
cyac/iter.h

index f1457345949d83f45bfc4480ec540be0ee7a24d33f80106495e425c6f7ebd3ae..62d8aec3c6a3e561967cd4409249454ec663ae5eb900c3f5bab0cbf912e02efe 100644 (file)
@@ -55,7 +55,7 @@ static enum YACErr
 myCb(
     const unsigned char *key,
     const size_t keyLen,
-    const size_t idx,
+    const ptrdiff_t idx,
     void *cbState,
     struct YACAtom *atom,
     ptrdiff_t *off,
@@ -75,7 +75,7 @@ myCb(
     if (key != NULL) {
         fwrite(key, keyLen, 1, stdout);
         fputs(": ", stdout);
-    } else if (idx > 0) {
+    } else if (idx > -1) {
         fprintf(stdout, "%zu: ", idx);
     }
 
index ddb16c11167ca5a8dafbba36852ed6c31c16c9c02f2d4514fc6afd481ada0bdb..a7071cc3eb5a0cbd0e550e2053e0881a7ec393c33b379c586999d0a517d878b9 100644 (file)
@@ -15,6 +15,7 @@
 
 #include <stdbool.h>
 #include <stddef.h>
+#include <stdint.h>
 #include <string.h>
 
 #include "dec.h"
@@ -38,7 +39,7 @@ YACIterList(
         }
         (*off) += atom->off;
         eoc = atom->typ == YACItemEOC;
-        err = cb(NULL, 0, eoc ? 0 : (n + 1), cbState, atom, off, buf, len);
+        err = cb(NULL, 0, eoc ? -1 : (ptrdiff_t)n, cbState, atom, off, buf, len);
         if (err != YACErrNo) {
             return err;
         }
@@ -68,7 +69,7 @@ YACIterMap(
         }
         (*off) += atom->off;
         if (atom->typ == YACItemEOC) {
-            err = cb(NULL, 0, 0, cbState, atom, off, buf, len);
+            err = cb(NULL, 0, -1, cbState, atom, off, buf, len);
             if (err != YACErrNo) {
                 return err;
             }
@@ -93,7 +94,7 @@ YACIterMap(
         if (atom->typ == YACItemEOC) {
             return YACErrMapNoVal;
         }
-        err = cb(key, keyLen, 0, cbState, atom, off, buf, len);
+        err = cb(key, keyLen, -1, cbState, atom, off, buf, len);
         if (err != YACErrNo) {
             return err;
         }
@@ -172,14 +173,14 @@ YACIterBlob(
         }
         if ((atom->len) > 0) {
             atom->typ = YACItemChunk;
-            err = cb(NULL, 0, n + 1, cbState, atom, off, buf, len);
+            err = cb(NULL, 0, (ptrdiff_t)n, cbState, atom, off, buf, len);
             if (err != YACErrNo) {
                 return err;
             }
         }
     }
     atom->typ = YACItemEOC;
-    err = cb(NULL, 0, 0, cbState, atom, off, buf, len);
+    err = cb(NULL, 0, -1, cbState, atom, off, buf, len);
     if (err != YACErrNo) {
         return err;
     }
index 37019af46ecc03cb452376745dcd88de1c6d3b8342f704a9730b357f19f16075..081603d0faa43280214e7cc41f59a67f640daf405b1b59d9e6059523ed2f4bf0 100644 (file)
@@ -8,7 +8,7 @@
 typedef enum YACErr (*YACIterCb)(
     const unsigned char *key,
     const size_t keyLen,
-    const size_t idx,
+    const ptrdiff_t idx,
     void *cbState,
     struct YACAtom *atom,
     ptrdiff_t *off,