summaryrefslogtreecommitdiff
path: root/AK
diff options
context:
space:
mode:
authorTim Schumacher <timschumi@gmx.de>2022-04-09 02:44:25 +0200
committerAli Mohammad Pur <Ali.mpfard@gmail.com>2022-04-14 03:12:56 +0430
commitfbfa378e74e8f71809f4912d198a4f63c15433f0 (patch)
tree1270f43f2cbebc5f2827f56eef9c895e8d12883f /AK
parent0d5098fdc00d17a4ba1ee43f26abf129f9a4cb70 (diff)
downloadserenity-fbfa378e74e8f71809f4912d198a4f63c15433f0.zip
AK: Deduplicate formatting hexadecimal values
Both calls essentially only differ in one boolean, which dictates whether to print the value in uppercase or lowercase. Move the long function call into a new function and pass in the "uppercase" boolean seperately to avoid having to write everything twice.
Diffstat (limited to 'AK')
-rw-r--r--AK/PrintfImplementation.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/AK/PrintfImplementation.h b/AK/PrintfImplementation.h
index d201d01b79..b67cdeab6a 100644
--- a/AK/PrintfImplementation.h
+++ b/AK/PrintfImplementation.h
@@ -388,17 +388,19 @@ struct PrintfImpl {
{
return print_octal_number(m_putch, m_bufptr, NextArgument<u32>()(ap), state.alternate_form, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision);
}
- ALWAYS_INLINE int format_x(ModifierState const& state, ArgumentListRefT ap) const
+ ALWAYS_INLINE int format_unsigned_hex(ModifierState const& state, ArgumentListRefT ap, bool uppercase) const
{
if (state.long_qualifiers >= 2)
- return print_hex(m_putch, m_bufptr, NextArgument<u64>()(ap), false, state.alternate_form, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision);
- return print_hex(m_putch, m_bufptr, NextArgument<u32>()(ap), false, state.alternate_form, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision);
+ return print_hex(m_putch, m_bufptr, NextArgument<u64>()(ap), uppercase, state.alternate_form, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision);
+ return print_hex(m_putch, m_bufptr, NextArgument<u32>()(ap), uppercase, state.alternate_form, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision);
+ }
+ ALWAYS_INLINE int format_x(ModifierState const& state, ArgumentListRefT ap) const
+ {
+ return format_unsigned_hex(state, ap, false);
}
ALWAYS_INLINE int format_X(ModifierState const& state, ArgumentListRefT ap) const
{
- if (state.long_qualifiers >= 2)
- return print_hex(m_putch, m_bufptr, NextArgument<u64>()(ap), true, state.alternate_form, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision);
- return print_hex(m_putch, m_bufptr, NextArgument<u32>()(ap), true, state.alternate_form, state.left_pad, state.zero_pad, state.field_width, state.has_precision, state.precision);
+ return format_unsigned_hex(state, ap, true);
}
ALWAYS_INLINE int format_n(ModifierState const&, ArgumentListRefT ap) const
{