mirror of https://github.com/tailix/libkernaux.git
Main: include/kernaux/printf_fmt.h: Don't pass unnecessary format param
This commit is contained in:
parent
67bd18d582
commit
58bc12c539
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
* include/kernaux/printf_fmt.h: Auxiliary API moved to a separate module
|
* include/kernaux/printf_fmt.h: Auxiliary API moved to a separate module
|
||||||
* include/kernaux/printf_fmt.h: Add function to parse type
|
* include/kernaux/printf_fmt.h: Add function to parse type
|
||||||
|
* include/kernaux/printf_fmt.h: Don't pass unnecessary format param
|
||||||
|
|
||||||
2022-05-24 Alex Kotov <kotovalexarian@gmail.com>
|
2022-05-24 Alex Kotov <kotovalexarian@gmail.com>
|
||||||
|
|
||||||
|
|
|
@ -10,10 +10,10 @@ int main()
|
||||||
struct KernAux_PrintfFmt_Spec spec = KernAux_PrintfFmt_Spec_create();
|
struct KernAux_PrintfFmt_Spec spec = KernAux_PrintfFmt_Spec_create();
|
||||||
KernAux_PrintfFmt_Spec_eval_flags(&spec, &format);
|
KernAux_PrintfFmt_Spec_eval_flags(&spec, &format);
|
||||||
if (KernAux_PrintfFmt_Spec_eval_width1(&spec, &format)) {
|
if (KernAux_PrintfFmt_Spec_eval_width1(&spec, &format)) {
|
||||||
KernAux_PrintfFmt_Spec_eval_width2(&spec, &format, 0);
|
KernAux_PrintfFmt_Spec_eval_width2(&spec, 0);
|
||||||
}
|
}
|
||||||
if (KernAux_PrintfFmt_Spec_eval_precision1(&spec, &format)) {
|
if (KernAux_PrintfFmt_Spec_eval_precision1(&spec, &format)) {
|
||||||
KernAux_PrintfFmt_Spec_eval_precision2(&spec, &format, 0);
|
KernAux_PrintfFmt_Spec_eval_precision2(&spec, 0);
|
||||||
}
|
}
|
||||||
KernAux_PrintfFmt_Spec_eval_length(&spec, &format);
|
KernAux_PrintfFmt_Spec_eval_length(&spec, &format);
|
||||||
KernAux_PrintfFmt_Spec_eval_type(&spec, &format);
|
KernAux_PrintfFmt_Spec_eval_type(&spec, &format);
|
||||||
|
@ -37,10 +37,10 @@ int main()
|
||||||
struct KernAux_PrintfFmt_Spec spec = KernAux_PrintfFmt_Spec_create();
|
struct KernAux_PrintfFmt_Spec spec = KernAux_PrintfFmt_Spec_create();
|
||||||
KernAux_PrintfFmt_Spec_eval_flags(&spec, &format);
|
KernAux_PrintfFmt_Spec_eval_flags(&spec, &format);
|
||||||
if (KernAux_PrintfFmt_Spec_eval_width1(&spec, &format)) {
|
if (KernAux_PrintfFmt_Spec_eval_width1(&spec, &format)) {
|
||||||
KernAux_PrintfFmt_Spec_eval_width2(&spec, &format, 12);
|
KernAux_PrintfFmt_Spec_eval_width2(&spec, 12);
|
||||||
}
|
}
|
||||||
if (KernAux_PrintfFmt_Spec_eval_precision1(&spec, &format)) {
|
if (KernAux_PrintfFmt_Spec_eval_precision1(&spec, &format)) {
|
||||||
KernAux_PrintfFmt_Spec_eval_precision2(&spec, &format, 34);
|
KernAux_PrintfFmt_Spec_eval_precision2(&spec, 34);
|
||||||
}
|
}
|
||||||
KernAux_PrintfFmt_Spec_eval_length(&spec, &format);
|
KernAux_PrintfFmt_Spec_eval_length(&spec, &format);
|
||||||
KernAux_PrintfFmt_Spec_eval_type(&spec, &format);
|
KernAux_PrintfFmt_Spec_eval_type(&spec, &format);
|
||||||
|
|
|
@ -48,9 +48,9 @@ void KernAux_PrintfFmt_Spec_init(struct KernAux_PrintfFmt_Spec *spec);
|
||||||
|
|
||||||
void KernAux_PrintfFmt_Spec_eval_flags(struct KernAux_PrintfFmt_Spec *spec, const char **format);
|
void KernAux_PrintfFmt_Spec_eval_flags(struct KernAux_PrintfFmt_Spec *spec, const char **format);
|
||||||
bool KernAux_PrintfFmt_Spec_eval_width1(struct KernAux_PrintfFmt_Spec *spec, const char **format);
|
bool KernAux_PrintfFmt_Spec_eval_width1(struct KernAux_PrintfFmt_Spec *spec, const char **format);
|
||||||
void KernAux_PrintfFmt_Spec_eval_width2(struct KernAux_PrintfFmt_Spec *spec, const char **format, int width);
|
void KernAux_PrintfFmt_Spec_eval_width2(struct KernAux_PrintfFmt_Spec *spec, int width);
|
||||||
bool KernAux_PrintfFmt_Spec_eval_precision1(struct KernAux_PrintfFmt_Spec *spec, const char **format);
|
bool KernAux_PrintfFmt_Spec_eval_precision1(struct KernAux_PrintfFmt_Spec *spec, const char **format);
|
||||||
void KernAux_PrintfFmt_Spec_eval_precision2(struct KernAux_PrintfFmt_Spec *spec, const char **format, int precision);
|
void KernAux_PrintfFmt_Spec_eval_precision2(struct KernAux_PrintfFmt_Spec *spec, int precision);
|
||||||
void KernAux_PrintfFmt_Spec_eval_length(struct KernAux_PrintfFmt_Spec *spec, const char **format);
|
void KernAux_PrintfFmt_Spec_eval_length(struct KernAux_PrintfFmt_Spec *spec, const char **format);
|
||||||
void KernAux_PrintfFmt_Spec_eval_type(struct KernAux_PrintfFmt_Spec *spec, const char **format);
|
void KernAux_PrintfFmt_Spec_eval_type(struct KernAux_PrintfFmt_Spec *spec, const char **format);
|
||||||
|
|
||||||
|
|
|
@ -156,11 +156,11 @@ int _vsnprintf(out_fct_type out, char* buffer, const size_t maxlen, const char*
|
||||||
KernAux_PrintfFmt_Spec_eval_flags(&spec, &format);
|
KernAux_PrintfFmt_Spec_eval_flags(&spec, &format);
|
||||||
|
|
||||||
if (KernAux_PrintfFmt_Spec_eval_width1(&spec, &format)) {
|
if (KernAux_PrintfFmt_Spec_eval_width1(&spec, &format)) {
|
||||||
KernAux_PrintfFmt_Spec_eval_width2(&spec, &format, va_arg(va, int));
|
KernAux_PrintfFmt_Spec_eval_width2(&spec, va_arg(va, int));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (KernAux_PrintfFmt_Spec_eval_precision1(&spec, &format)) {
|
if (KernAux_PrintfFmt_Spec_eval_precision1(&spec, &format)) {
|
||||||
KernAux_PrintfFmt_Spec_eval_precision2(&spec, &format, va_arg(va, int));
|
KernAux_PrintfFmt_Spec_eval_precision2(&spec, va_arg(va, int));
|
||||||
}
|
}
|
||||||
|
|
||||||
KernAux_PrintfFmt_Spec_eval_length(&spec, &format);
|
KernAux_PrintfFmt_Spec_eval_length(&spec, &format);
|
||||||
|
|
|
@ -63,16 +63,17 @@ bool KernAux_PrintfFmt_Spec_eval_width1(struct KernAux_PrintfFmt_Spec *const spe
|
||||||
if (isdigit(**format)) {
|
if (isdigit(**format)) {
|
||||||
spec->width = _atoi(format);
|
spec->width = _atoi(format);
|
||||||
return false;
|
return false;
|
||||||
|
} else if (**format == '*') {
|
||||||
|
++(*format);
|
||||||
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return **format == '*';
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void KernAux_PrintfFmt_Spec_eval_width2(struct KernAux_PrintfFmt_Spec *const spec, const char **const format, const int width)
|
void KernAux_PrintfFmt_Spec_eval_width2(struct KernAux_PrintfFmt_Spec *const spec, const int width)
|
||||||
{
|
{
|
||||||
KERNAUX_NOTNULL_RETURN(spec);
|
KERNAUX_NOTNULL_RETURN(spec);
|
||||||
KERNAUX_NOTNULL_RETURN(format);
|
|
||||||
KERNAUX_NOTNULL_RETURN(*format);
|
|
||||||
|
|
||||||
if (width < 0) {
|
if (width < 0) {
|
||||||
spec->flags |= KERNAUX_PRINTF_FMT_FLAGS_LEFT; // reverse padding
|
spec->flags |= KERNAUX_PRINTF_FMT_FLAGS_LEFT; // reverse padding
|
||||||
|
@ -80,8 +81,6 @@ void KernAux_PrintfFmt_Spec_eval_width2(struct KernAux_PrintfFmt_Spec *const spe
|
||||||
} else {
|
} else {
|
||||||
spec->width = (unsigned int)width;
|
spec->width = (unsigned int)width;
|
||||||
}
|
}
|
||||||
|
|
||||||
++(*format);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool KernAux_PrintfFmt_Spec_eval_precision1(struct KernAux_PrintfFmt_Spec *const spec, const char **const format)
|
bool KernAux_PrintfFmt_Spec_eval_precision1(struct KernAux_PrintfFmt_Spec *const spec, const char **const format)
|
||||||
|
@ -96,22 +95,22 @@ bool KernAux_PrintfFmt_Spec_eval_precision1(struct KernAux_PrintfFmt_Spec *const
|
||||||
if (isdigit(**format)) {
|
if (isdigit(**format)) {
|
||||||
spec->precision = _atoi(format);
|
spec->precision = _atoi(format);
|
||||||
return false;
|
return false;
|
||||||
|
} else if (**format == '*') {
|
||||||
|
++(*format);
|
||||||
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return **format == '*';
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void KernAux_PrintfFmt_Spec_eval_precision2(struct KernAux_PrintfFmt_Spec *const spec, const char **const format, const int precision)
|
void KernAux_PrintfFmt_Spec_eval_precision2(struct KernAux_PrintfFmt_Spec *const spec, const int precision)
|
||||||
{
|
{
|
||||||
KERNAUX_NOTNULL_RETURN(spec);
|
KERNAUX_NOTNULL_RETURN(spec);
|
||||||
KERNAUX_NOTNULL_RETURN(format);
|
|
||||||
KERNAUX_NOTNULL_RETURN(*format);
|
|
||||||
|
|
||||||
spec->precision = precision > 0 ? (unsigned int)precision : 0u;
|
spec->precision = precision > 0 ? (unsigned int)precision : 0u;
|
||||||
++(*format);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void KernAux_PrintfFmt_Spec_eval_length(struct KernAux_PrintfFmt_Spec *const spec, const char **const format)
|
void KernAux_PrintfFmt_Spec_eval_length(struct KernAux_PrintfFmt_Spec *const spec, const char **const format)
|
||||||
|
|
Loading…
Reference in New Issue