Simplify code by factoring fscanf calls
This commit is contained in:
1 parent
bc6bda057c
commit
3f03615ed2
1 file changed
+8
-12
+8
-12
@@ -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
|
||||||
|
|||||||
Reference in new issue
Block a user