[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
--- /dev/null
+Subproject commit b766f343bf68b8ea89889055acbf8aef820e2b71
--- /dev/null
+#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
--- /dev/null
+#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
#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
\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