Simplify code by factoring fscanf calls

This commit is contained in:
Patrick Pelissier committed 2019-05-18 11:17:14 +02:00
1 parent bc6bda057c
commit 3f03615ed2
1 file changed
+8 -12
+8 -12
View File
@@ -258,13 +258,11 @@ static inline m_serial_return_code_t
m_serial_json_read_array_start(m_serial_read_t serial, size_t *num) m_serial_json_read_array_start(m_serial_read_t serial, size_t *num)
{ {
FILE *f = (FILE*) serial->data[0]; FILE *f = (FILE*) serial->data[0];
int final = -1; int final1 = -1, final2 = -1;
fscanf(f, " [%n", &final); fscanf(f, " [%n ]%n", &final1, &final2);
*num = 0; // don't know the size of the array. *num = 0; // don't know the size of the array.
if (final < 0) return M_SERIAL_FAIL; // Test how much the parsing succeed.
final = -1; return (final1 < 0) ? M_SERIAL_FAIL : (final2 < 0) ? M_SERIAL_OK_CONTINUE : M_SERIAL_OK_DONE;
fscanf(f, " ]%n", &final);
return final > 0 ? M_SERIAL_OK_DONE : M_SERIAL_OK_CONTINUE;
} }
static inline m_serial_return_code_t static inline m_serial_return_code_t
@@ -280,13 +278,11 @@ static inline m_serial_return_code_t
m_serial_json_read_map_start(m_serial_read_t serial, size_t *num) m_serial_json_read_map_start(m_serial_read_t serial, size_t *num)
{ {
FILE *f = (FILE*) serial->data[0]; FILE *f = (FILE*) serial->data[0];
int final = -1; int final1 = -1, final2 = -1;
fscanf(f, " {%n", &final); fscanf(f, " {%n }%n", &final1, &final2);
*num = 0; // don't know the size of the map. *num = 0; // don't know the size of the map.
if (final < 0) return M_SERIAL_FAIL; // Test how much the parsing succeed.
final = -1; return (final1 < 0) ? M_SERIAL_FAIL : (final2 < 0) ? M_SERIAL_OK_CONTINUE : M_SERIAL_OK_DONE;
fscanf(f, " }%n", &final);
return final > 0 ? M_SERIAL_OK_DONE : M_SERIAL_OK_CONTINUE;
} }
static inline m_serial_return_code_t static inline m_serial_return_code_t