]> gitweb.ps.run Git - matrix_esp_thesis/blob - src/fixedbuffer.c
send example, http PUT
[matrix_esp_thesis] / src / fixedbuffer.c
1 #include "fixedbuffer.h"\r
2 \r
3 #include <string.h>\r
4 \r
5 FixedBuffer\r
6 FixedBuf(const char * str)\r
7 {\r
8     int len = strlen(str);\r
9     FixedBuffer result;\r
10     result.ptr = (char *)str;\r
11     result.cap = len;\r
12     result.len = len;\r
13     return result;\r
14 }\r
15 \r
16 bool\r
17 FixedBufferToInt(FixedBuffer fb, int * outInt)\r
18 {\r
19     bool valid = false;\r
20     int result = 0;\r
21 \r
22     bool negative = false;\r
23 \r
24     for (int i = 0; i < fb.len; i++)\r
25     {\r
26         if (i == 0 && fb.ptr[i] == '-')\r
27         {\r
28             negative = true;\r
29             continue;\r
30         }\r
31 \r
32         int val = fb.ptr[i] - '0';\r
33         if (val < 0 || val > 9)\r
34             return false;\r
35 \r
36         result *= 10;\r
37         result += val;\r
38         valid = true;\r
39     }\r
40 \r
41     *outInt = result;\r
42     return valid;\r
43 }