diff options
Diffstat (limited to 'asl/format.cpp')
-rw-r--r-- | asl/format.cpp | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/asl/format.cpp b/asl/format.cpp index 1371431..9e31888 100644 --- a/asl/format.cpp +++ b/asl/format.cpp @@ -10,8 +10,8 @@ void asl::format_internals::format( {
Formatter f(writer);
- const auto* arg_it = args.begin();
- const auto* arg_end = args.end();
+ auto arg_it = args.begin();
+ auto arg_end = args.end();
isize_t i = 0;
while (i < fmt.size())
@@ -22,23 +22,19 @@ void asl::format_internals::format( {
if (fmt[i + 1] == '}')
{
- if (arg_it >= arg_end)
- {
- f.write(fmt.substr(0, i));
- fmt = fmt.substr(i + 2);
- i = 0;
-
- f.write("<ERROR>");
-
- continue;
- }
-
f.write(fmt.substr(0, i));
fmt = fmt.substr(i + 2);
i = 0;
- arg_it->fn(f, arg_it->data);
- arg_it++; // NOLINT(*-pointer-arithmetic)
+ if (arg_it == arg_end)
+ {
+ f.write("<ERROR>");
+ }
+ else
+ {
+ arg_it->fn(f, arg_it->data);
+ arg_it++;
+ }
continue;
}
|