]> gitweb.ps.run Git - matrix_esp_thesis/commitdiff
refactor fixedbuffer, add mjson
authorPatrick <patrick.schoenberger@posteo.de>
Tue, 16 May 2023 15:03:50 +0000 (17:03 +0200)
committerPatrick <patrick.schoenberger@posteo.de>
Tue, 16 May 2023 15:03:50 +0000 (17:03 +0200)
.gitmodules
ext/mjson [new submodule]
src/fixedbuffer.c [new file with mode: 0644]
src/fixedbuffer.h [new file with mode: 0644]
src/matrix.c
src/matrix.h

index 3d6f22a9773945470e3bb5381a3d2b8dffd936a2..00137af91049b0bd68f0b28a6b4615b25b88a46d 100644 (file)
@@ -1,3 +1,6 @@
 [submodule "ext/olm"]
        path = ext/olm
        url = https://gitlab.matrix.org/matrix-org/olm/
+[submodule "ext/mjson"]
+       path = ext/mjson
+       url = https://github.com/cesanta/mjson
diff --git a/ext/mjson b/ext/mjson
new file mode 160000 (submodule)
index 0000000..b766f34
--- /dev/null
+++ b/ext/mjson
@@ -0,0 +1 @@
+Subproject commit b766f343bf68b8ea89889055acbf8aef820e2b71
diff --git a/src/fixedbuffer.c b/src/fixedbuffer.c
new file mode 100644 (file)
index 0000000..ad99897
--- /dev/null
@@ -0,0 +1,43 @@
+#include "fixedbuffer.h"\r
+\r
+#include <string.h>\r
+\r
+FixedBuffer\r
+FixedBuf(const char * str)\r
+{\r
+    int len = strlen(str);\r
+    FixedBuffer result;\r
+    result.ptr = (char *)str;\r
+    result.cap = len;\r
+    result.len = len;\r
+    return result;\r
+}\r
+\r
+bool\r
+FixedBufferToInt(FixedBuffer fb, int * outInt)\r
+{\r
+    bool valid = false;\r
+    int result = 0;\r
+\r
+    bool negative = false;\r
+\r
+    for (int i = 0; i < fb.len; i++)\r
+    {\r
+        if (i == 0 && fb.ptr[i] == '-')\r
+        {\r
+            negative = true;\r
+            continue;\r
+        }\r
+\r
+        int val = fb.ptr[i] - '0';\r
+        if (val < 0 || val > 9)\r
+            return false;\r
+\r
+        result *= 10;\r
+        result += val;\r
+        valid = true;\r
+    }\r
+\r
+    *outInt = result;\r
+    return valid;\r
+}
\ No newline at end of file
diff --git a/src/fixedbuffer.h b/src/fixedbuffer.h
new file mode 100644 (file)
index 0000000..d8055cb
--- /dev/null
@@ -0,0 +1,19 @@
+#ifndef FIXEDBUFFER__H\r
+#define FIXEDBUFFER__H\r
+\r
+#include <stdbool.h>\r
+\r
+typedef struct FixedBuffer {\r
+    char * ptr;\r
+    int cap;\r
+    int len;\r
+} FixedBuffer;\r
+\r
+FixedBuffer\r
+FixedBuf(const char * str);\r
+\r
+bool\r
+FixedBufferToInt(FixedBuffer fb, int * outInt);\r
+\r
+\r
+#endif
\ No newline at end of file
index bc0f1ca704af357798fff98fca2b1722b1d0c736..082806a73c55ef1518d8bd8300ba51bb1e38b2bd 100644 (file)
@@ -1,16 +1,5 @@
 #include "matrix.h"\r
 \r
-FixedBuffer\r
-FixedBuf(const char * str)\r
-{\r
-    int len = strlen(str);\r
-    FixedBuffer result;\r
-    result.ptr = (char *)str;\r
-    result.size = len;\r
-    result.len = len;\r
-    return result;\r
-}\r
-\r
 \r
 bool\r
 MatrixClientInit(\r
index d61c59ba61756be1797241acbcc3d8fb61b5fa17..5f53e0e0a74678553992a8b01f71b5306aa5c5ee 100644 (file)
@@ -6,18 +6,7 @@
 \r
 #include <olm/olm.h>\r
 \r
-\r
-\r
-\r
-\r
-typedef struct FixedBuffer {\r
-    void * ptr;\r
-    int size;\r
-    int len;\r
-} FixedBuffer;\r
-\r
-FixedBuffer\r
-FixedBuf(const char * str);\r
+#include "fixedbuffer.h"\r
 \r
 \r
 \r