diff --git a/AK/Format.h b/AK/Format.h index 2d0768e358..cc93afad39 100644 --- a/AK/Format.h +++ b/AK/Format.h @@ -557,6 +557,9 @@ struct Formatter : Formatter { ErrorOr vformat(StringBuilder&, StringView fmtstr, TypeErasedFormatParams&); +void vdbg(StringView fmtstr, TypeErasedFormatParams&, bool newline = false); +void dbgln(); + #ifndef KERNEL void vout(FILE*, StringView fmtstr, TypeErasedFormatParams&, bool newline = false); @@ -593,13 +596,30 @@ inline void outln() { outln(stdout); } template void warn(CheckedFormatString&& fmtstr, Parameters const&... parameters) { +# ifdef AK_OS_SERENITY + VariadicFormatParams variadic_format_params { parameters... }; + vdbg(fmtstr.view(), variadic_format_params, false); +# endif out(stderr, move(fmtstr), parameters...); } template -void warnln(CheckedFormatString&& fmtstr, Parameters const&... parameters) { outln(stderr, move(fmtstr), parameters...); } +void warnln(CheckedFormatString&& fmtstr, Parameters const&... parameters) +{ +# ifdef AK_OS_SERENITY + VariadicFormatParams variadic_format_params { parameters... }; + vdbg(fmtstr.view(), variadic_format_params, true); +# endif + outln(stderr, move(fmtstr), parameters...); +} -inline void warnln() { outln(stderr); } +inline void warnln() +{ +# ifdef AK_OS_SERENITY + dbgln(); +# endif + outln(stderr); +} # define warnln_if(flag, fmt, ...) \ do { \ @@ -609,8 +629,6 @@ inline void warnln() { outln(stderr); } #endif -void vdbg(StringView fmtstr, TypeErasedFormatParams&, bool newline = false); - template void dbg(CheckedFormatString&& fmtstr, Parameters const&... parameters) {