1
0
Fork 0
mirror of https://github.com/tailix/libkernaux.git synced 2026-08-15 11:00:07 -04:00

Main: include/kernaux/printf_fmt.h: Add function to parse everything at once

This commit is contained in:
Alex Kotov 2022-05-28 12:16:38 +03:00
parent 11e9c24784
commit 67b60b5406
Signed by: kotovalexarian
GPG key ID: 553C0EBBEB5D5F08
7 changed files with 27 additions and 32 deletions

View file

@ -9,11 +9,7 @@ int main()
struct KernAux_PrintfFmt_Spec spec = KernAux_PrintfFmt_Spec_create();
KernAux_PrintfFmt_Spec_parse_flags(&spec, &format);
KernAux_PrintfFmt_Spec_parse_width(&spec, &format);
KernAux_PrintfFmt_Spec_parse_precision(&spec, &format);
KernAux_PrintfFmt_Spec_parse_length(&spec, &format);
KernAux_PrintfFmt_Spec_parse_type(&spec, &format);
format = KernAux_PrintfFmt_Spec_parse(&spec, format);
if (spec.set_width) {
// Actually this line won't be executed.
@ -36,6 +32,7 @@ int main()
struct KernAux_PrintfFmt_Spec spec = KernAux_PrintfFmt_Spec_create();
// Parsing of each part may be done separately.
KernAux_PrintfFmt_Spec_parse_flags(&spec, &format);
KernAux_PrintfFmt_Spec_parse_width(&spec, &format);
KernAux_PrintfFmt_Spec_parse_precision(&spec, &format);
@ -65,15 +62,12 @@ int main()
}
{
const char *format = " *.*ld";
const char *const format = " *.*ld";
struct KernAux_PrintfFmt_Spec spec = KernAux_PrintfFmt_Spec_create();
KernAux_PrintfFmt_Spec_parse_flags(&spec, &format);
KernAux_PrintfFmt_Spec_parse_width(&spec, &format);
KernAux_PrintfFmt_Spec_parse_precision(&spec, &format);
KernAux_PrintfFmt_Spec_parse_length(&spec, &format);
KernAux_PrintfFmt_Spec_parse_type(&spec, &format);
// Returning value may be ignored.
KernAux_PrintfFmt_Spec_parse(&spec, format);
if (spec.set_width) {
KernAux_PrintfFmt_Spec_set_width(&spec, 12);