mirror of
https://github.com/tailix/libkernaux.git
synced 2025-04-21 17:42:26 -04:00
Main: include/kernaux/printf_fmt.h: Don't pass unnecessary format param
This commit is contained in:
parent
67bd18d582
commit
58bc12c539
5 changed files with 19 additions and 19 deletions
|
@ -2,6 +2,7 @@
|
|||
|
||||
* 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: Don't pass unnecessary format param
|
||||
|
||||
2022-05-24 Alex Kotov <kotovalexarian@gmail.com>
|
||||
|
||||
|
|
|
@ -10,10 +10,10 @@ int main()
|
|||
struct KernAux_PrintfFmt_Spec spec = KernAux_PrintfFmt_Spec_create();
|
||||
KernAux_PrintfFmt_Spec_eval_flags(&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)) {
|
||||
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_type(&spec, &format);
|
||||
|
@ -37,10 +37,10 @@ int main()
|
|||
struct KernAux_PrintfFmt_Spec spec = KernAux_PrintfFmt_Spec_create();
|
||||
KernAux_PrintfFmt_Spec_eval_flags(&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)) {
|
||||
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_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);
|
||||
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);
|
||||
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_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);
|
||||
|
||||
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)) {
|
||||
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);
|
||||
|
|
|
@ -63,16 +63,17 @@ bool KernAux_PrintfFmt_Spec_eval_width1(struct KernAux_PrintfFmt_Spec *const spe
|
|||
if (isdigit(**format)) {
|
||||
spec->width = _atoi(format);
|
||||
return false;
|
||||
} else if (**format == '*') {
|
||||
++(*format);
|
||||
return true;
|
||||
} 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(format);
|
||||
KERNAUX_NOTNULL_RETURN(*format);
|
||||
|
||||
if (width < 0) {
|
||||
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 {
|
||||
spec->width = (unsigned int)width;
|
||||
}
|
||||
|
||||
++(*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)) {
|
||||
spec->precision = _atoi(format);
|
||||
return false;
|
||||
} else if (**format == '*') {
|
||||
++(*format);
|
||||
return true;
|
||||
} else {
|
||||
return **format == '*';
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
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(format);
|
||||
KERNAUX_NOTNULL_RETURN(*format);
|
||||
|
||||
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)
|
||||
|
|
Loading…
Add table
Reference in a new issue