summaryrefslogtreecommitdiff
path: root/src/io
diff options
context:
space:
mode:
Diffstat (limited to 'src/io')
-rw-r--r--src/io/cxxstdio.hpp8
-rw-r--r--src/io/line.cpp34
-rw-r--r--src/io/line.hpp12
-rw-r--r--src/io/line_test.cpp202
-rw-r--r--src/io/lock.cpp10
-rw-r--r--src/io/read.cpp6
-rw-r--r--src/io/read_test.cpp20
-rw-r--r--src/io/write_test.cpp18
8 files changed, 155 insertions, 155 deletions
diff --git a/src/io/cxxstdio.hpp b/src/io/cxxstdio.hpp
index 66419df..a2faa18 100644
--- a/src/io/cxxstdio.hpp
+++ b/src/io/cxxstdio.hpp
@@ -192,7 +192,7 @@ namespace cxxstdio
int print(T&& t, A&&... a)
{
constexpr static
- const char *print_format = Format::print_format();
+ const char *print_format = Format::print_format().format_string();
return do_print(std::forward<T>(t), print_format,
decay_for_printf(convert_for_printf(std::forward<A>(a)))...);
}
@@ -207,7 +207,7 @@ namespace cxxstdio
int scan(T&& t, A&&... a)
{
constexpr static
- const char *scan_format = Format::scan_format();
+ const char *scan_format = Format::scan_format().format_string();
return do_scan(std::forward<T>(t), scan_format,
&convert_for_scanf(*a)...);
}
@@ -218,7 +218,7 @@ namespace cxxstdio
struct format_impl \
{ \
constexpr static \
- const char *print_format() { return fmt; } \
+ FormatString print_format() { return fmt; } \
}; \
cxxstdio::PrintFormatter<format_impl>::print(out, ## __VA_ARGS__); \
})
@@ -228,7 +228,7 @@ namespace cxxstdio
struct format_impl \
{ \
constexpr static \
- const char *scan_format() { return fmt; } \
+ FormatString scan_format() { return fmt; } \
}; \
cxxstdio::ScanFormatter<format_impl>::scan(out, ## __VA_ARGS__); \
})
diff --git a/src/io/line.cpp b/src/io/line.cpp
index f7470a6..8451b87 100644
--- a/src/io/line.cpp
+++ b/src/io/line.cpp
@@ -36,26 +36,26 @@ namespace io
{
MString out;
if (column)
- out += STRPRINTF("%s:%u:%u: %s: %s\n",
+ out += STRPRINTF("%s:%u:%u: %s: %s\n"_fmt,
filename, line, column, cat, msg);
else
- out += STRPRINTF("%s:%u: %s: %s\n",
+ out += STRPRINTF("%s:%u: %s: %s\n"_fmt,
filename, line, cat, msg);
- out += STRPRINTF("%s\n", text);
- out += STRPRINTF("%*c\n", column, '^');
+ out += STRPRINTF("%s\n"_fmt, text);
+ out += STRPRINTF("%*c\n"_fmt, column, '^');
return AString(out);
}
void Line::message(ZString cat, ZString msg) const
{
if (column)
- FPRINTF(stderr, "%s:%u:%u: %s: %s\n",
+ FPRINTF(stderr, "%s:%u:%u: %s: %s\n"_fmt,
filename, line, column, cat, msg);
else
- FPRINTF(stderr, "%s:%u: %s: %s\n",
+ FPRINTF(stderr, "%s:%u: %s: %s\n"_fmt,
filename, line, cat, msg);
- FPRINTF(stderr, "%s\n", text);
- FPRINTF(stderr, "%*c\n", column, '^');
+ FPRINTF(stderr, "%s\n"_fmt, text);
+ FPRINTF(stderr, "%*c\n"_fmt, column, '^');
}
AString LineSpan::message_str(ZString cat, ZString msg) const
@@ -67,24 +67,24 @@ namespace io
MString out;
if (begin.line == end.line)
{
- out += STRPRINTF("%s:%u:%u: %s: %s\n",
+ out += STRPRINTF("%s:%u:%u: %s: %s\n"_fmt,
begin.filename, begin.line, begin.column, cat, msg);
- out += STRPRINTF("%s\n", begin.text);
- out += STRPRINTF("%*c", begin.column, '^');
+ out += STRPRINTF("%s\n"_fmt, begin.text);
+ out += STRPRINTF("%*c"_fmt, begin.column, '^');
for (unsigned c = begin.column; c != end.column; ++c)
out += '~';
out += '\n';
}
else
{
- out += STRPRINTF("%s:%u:%u: %s: %s\n",
+ out += STRPRINTF("%s:%u:%u: %s: %s\n"_fmt,
begin.filename, begin.line, begin.column, cat, msg);
- out += STRPRINTF("%s\n", begin.text);
- out += STRPRINTF("%*c", begin.column, '^');
+ out += STRPRINTF("%s\n"_fmt, begin.text);
+ out += STRPRINTF("%*c"_fmt, begin.column, '^');
for (unsigned c = begin.column; c != begin.text.size(); ++c)
out += '~';
- out += " ...\n";
- out += STRPRINTF("%s\n", end.text);
+ out += " ...\n"_s;
+ out += STRPRINTF("%s\n"_fmt, end.text);
for (unsigned c = 0; c != end.column; ++c)
out += '~';
out += '\n';
@@ -94,7 +94,7 @@ namespace io
void LineSpan::message(ZString cat, ZString msg) const
{
- FPRINTF(stderr, "%s", message_str(cat, msg));
+ FPRINTF(stderr, "%s"_fmt, message_str(cat, msg));
}
LineReader::LineReader(ZString name)
diff --git a/src/io/line.hpp b/src/io/line.hpp
index a9e8944..bb002b8 100644
--- a/src/io/line.hpp
+++ b/src/io/line.hpp
@@ -42,9 +42,9 @@ namespace io
AString message_str(ZString cat, ZString msg) const;
void message(ZString cat, ZString msg) const;
- void note(ZString msg) const { message("note", msg); }
- void warning(ZString msg) const { message("warning", msg); }
- void error(ZString msg) const { message("error", msg); }
+ void note(ZString msg) const { message("note"_s, msg); }
+ void warning(ZString msg) const { message("warning"_s, msg); }
+ void error(ZString msg) const { message("error"_s, msg); }
};
// psst, don't tell anyone
@@ -65,9 +65,9 @@ namespace io
AString message_str(ZString cat, ZString msg) const;
void message(ZString cat, ZString msg) const;
- void note(ZString msg) const { message("note", msg); }
- void warning(ZString msg) const { message("warning", msg); }
- void error(ZString msg) const { message("error", msg); }
+ void note(ZString msg) const { message("note"_s, msg); }
+ void warning(ZString msg) const { message("warning"_s, msg); }
+ void error(ZString msg) const { message("error"_s, msg); }
};
class LineReader
diff --git a/src/io/line_test.cpp b/src/io/line_test.cpp
index feee1fb..921e4c8 100644
--- a/src/io/line_test.cpp
+++ b/src/io/line_test.cpp
@@ -42,80 +42,80 @@ io::FD string_pipe(ZString sz)
TEST(io, line1)
{
- io::LineReader lr("<string1>", string_pipe("Hello World\n"));
+ io::LineReader lr("<string1>"_s, string_pipe("Hello World\n"_s));
io::Line hi;
EXPECT_TRUE(lr.read_line(hi));
- EXPECT_EQ(hi.text, "Hello World");
- EXPECT_EQ(hi.filename, "<string1>");
+ EXPECT_EQ(hi.text, "Hello World"_s);
+ EXPECT_EQ(hi.filename, "<string1>"_s);
EXPECT_EQ(hi.line, 1);
EXPECT_EQ(hi.column, 0);
EXPECT_FALSE(lr.read_line(hi));
}
TEST(io, line2)
{
- io::LineReader lr("<string2>", string_pipe("Hello\nWorld"));
+ io::LineReader lr("<string2>"_s, string_pipe("Hello\nWorld"_s));
io::Line hi;
EXPECT_TRUE(lr.read_line(hi));
- EXPECT_EQ(hi.text, "Hello");
- EXPECT_EQ(hi.filename, "<string2>");
+ EXPECT_EQ(hi.text, "Hello"_s);
+ EXPECT_EQ(hi.filename, "<string2>"_s);
EXPECT_EQ(hi.line, 1);
EXPECT_EQ(hi.column, 0);
EXPECT_TRUE(lr.read_line(hi));
- EXPECT_EQ(hi.text, "World");
- EXPECT_EQ(hi.filename, "<string2>");
+ EXPECT_EQ(hi.text, "World"_s);
+ EXPECT_EQ(hi.filename, "<string2>"_s);
EXPECT_EQ(hi.line, 2);
EXPECT_EQ(hi.column, 0);
EXPECT_FALSE(lr.read_line(hi));
}
TEST(io, line3)
{
- io::LineReader lr("<string3>", string_pipe("Hello\rWorld"));
+ io::LineReader lr("<string3>"_s, string_pipe("Hello\rWorld"_s));
io::Line hi;
EXPECT_TRUE(lr.read_line(hi));
- EXPECT_EQ(hi.text, "Hello");
- EXPECT_EQ(hi.filename, "<string3>");
+ EXPECT_EQ(hi.text, "Hello"_s);
+ EXPECT_EQ(hi.filename, "<string3>"_s);
EXPECT_EQ(hi.line, 1);
EXPECT_EQ(hi.column, 0);
EXPECT_TRUE(lr.read_line(hi));
- EXPECT_EQ(hi.text, "World");
- EXPECT_EQ(hi.filename, "<string3>");
+ EXPECT_EQ(hi.text, "World"_s);
+ EXPECT_EQ(hi.filename, "<string3>"_s);
EXPECT_EQ(hi.line, 2);
EXPECT_EQ(hi.column, 0);
EXPECT_FALSE(lr.read_line(hi));
}
TEST(io, line4)
{
- io::LineReader lr("<string4>", string_pipe("Hello\r\nWorld"));
+ io::LineReader lr("<string4>"_s, string_pipe("Hello\r\nWorld"_s));
io::Line hi;
EXPECT_TRUE(lr.read_line(hi));
- EXPECT_EQ(hi.text, "Hello");
- EXPECT_EQ(hi.filename, "<string4>");
+ EXPECT_EQ(hi.text, "Hello"_s);
+ EXPECT_EQ(hi.filename, "<string4>"_s);
EXPECT_EQ(hi.line, 1);
EXPECT_EQ(hi.column, 0);
EXPECT_TRUE(lr.read_line(hi));
- EXPECT_EQ(hi.text, "World");
- EXPECT_EQ(hi.filename, "<string4>");
+ EXPECT_EQ(hi.text, "World"_s);
+ EXPECT_EQ(hi.filename, "<string4>"_s);
EXPECT_EQ(hi.line, 2);
EXPECT_EQ(hi.column, 0);
EXPECT_FALSE(lr.read_line(hi));
}
TEST(io, line5)
{
- io::LineReader lr("<string5>", string_pipe("Hello\n\rWorld"));
+ io::LineReader lr("<string5>"_s, string_pipe("Hello\n\rWorld"_s));
io::Line hi;
EXPECT_TRUE(lr.read_line(hi));
- EXPECT_EQ(hi.text, "Hello");
- EXPECT_EQ(hi.filename, "<string5>");
+ EXPECT_EQ(hi.text, "Hello"_s);
+ EXPECT_EQ(hi.filename, "<string5>"_s);
EXPECT_EQ(hi.line, 1);
EXPECT_EQ(hi.column, 0);
EXPECT_TRUE(lr.read_line(hi));
- EXPECT_EQ(hi.text, "");
- EXPECT_EQ(hi.filename, "<string5>");
+ EXPECT_EQ(hi.text, ""_s);
+ EXPECT_EQ(hi.filename, "<string5>"_s);
EXPECT_EQ(hi.line, 2);
EXPECT_EQ(hi.column, 0);
EXPECT_TRUE(lr.read_line(hi));
- EXPECT_EQ(hi.text, "World");
- EXPECT_EQ(hi.filename, "<string5>");
+ EXPECT_EQ(hi.text, "World"_s);
+ EXPECT_EQ(hi.filename, "<string5>"_s);
EXPECT_EQ(hi.line, 3);
EXPECT_EQ(hi.column, 0);
EXPECT_FALSE(lr.read_line(hi));
@@ -123,47 +123,47 @@ TEST(io, line5)
TEST(io, linechar1)
{
- io::LineCharReader lr("<stringchar1>", string_pipe("Hi Wu\n"));
+ io::LineCharReader lr("<stringchar1>"_s, string_pipe("Hi Wu\n"_s));
io::LineChar c;
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'H');
- EXPECT_EQ(c.text, "Hi Wu");
- EXPECT_EQ(c.filename, "<stringchar1>");
+ EXPECT_EQ(c.text, "Hi Wu"_s);
+ EXPECT_EQ(c.filename, "<stringchar1>"_s);
EXPECT_EQ(c.line, 1);
EXPECT_EQ(c.column, 1);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'i');
- EXPECT_EQ(c.text, "Hi Wu");
- EXPECT_EQ(c.filename, "<stringchar1>");
+ EXPECT_EQ(c.text, "Hi Wu"_s);
+ EXPECT_EQ(c.filename, "<stringchar1>"_s);
EXPECT_EQ(c.line, 1);
EXPECT_EQ(c.column, 2);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), ' ');
- EXPECT_EQ(c.text, "Hi Wu");
- EXPECT_EQ(c.filename, "<stringchar1>");
+ EXPECT_EQ(c.text, "Hi Wu"_s);
+ EXPECT_EQ(c.filename, "<stringchar1>"_s);
EXPECT_EQ(c.line, 1);
EXPECT_EQ(c.column, 3);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'W');
- EXPECT_EQ(c.text, "Hi Wu");
- EXPECT_EQ(c.filename, "<stringchar1>");
+ EXPECT_EQ(c.text, "Hi Wu"_s);
+ EXPECT_EQ(c.filename, "<stringchar1>"_s);
EXPECT_EQ(c.line, 1);
EXPECT_EQ(c.column, 4);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'u');
- EXPECT_EQ(c.text, "Hi Wu");
- EXPECT_EQ(c.filename, "<stringchar1>");
+ EXPECT_EQ(c.text, "Hi Wu"_s);
+ EXPECT_EQ(c.filename, "<stringchar1>"_s);
EXPECT_EQ(c.line, 1);
EXPECT_EQ(c.column, 5);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), '\n');
- EXPECT_EQ(c.text, "Hi Wu");
- EXPECT_EQ(c.filename, "<stringchar1>");
+ EXPECT_EQ(c.text, "Hi Wu"_s);
+ EXPECT_EQ(c.filename, "<stringchar1>"_s);
EXPECT_EQ(c.line, 1);
EXPECT_EQ(c.column, 6);
lr.adv();
@@ -171,47 +171,47 @@ TEST(io, linechar1)
}
TEST(io, linechar2)
{
- io::LineCharReader lr("<stringchar2>", string_pipe("Hi\nWu"));
+ io::LineCharReader lr("<stringchar2>"_s, string_pipe("Hi\nWu"_s));
io::LineChar c;
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'H');
- EXPECT_EQ(c.text, "Hi");
- EXPECT_EQ(c.filename, "<stringchar2>");
+ EXPECT_EQ(c.text, "Hi"_s);
+ EXPECT_EQ(c.filename, "<stringchar2>"_s);
EXPECT_EQ(c.line, 1);
EXPECT_EQ(c.column, 1);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'i');
- EXPECT_EQ(c.text, "Hi");
- EXPECT_EQ(c.filename, "<stringchar2>");
+ EXPECT_EQ(c.text, "Hi"_s);
+ EXPECT_EQ(c.filename, "<stringchar2>"_s);
EXPECT_EQ(c.line, 1);
EXPECT_EQ(c.column, 2);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), '\n');
- EXPECT_EQ(c.text, "Hi");
- EXPECT_EQ(c.filename, "<stringchar2>");
+ EXPECT_EQ(c.text, "Hi"_s);
+ EXPECT_EQ(c.filename, "<stringchar2>"_s);
EXPECT_EQ(c.line, 1);
EXPECT_EQ(c.column, 3);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'W');
- EXPECT_EQ(c.text, "Wu");
- EXPECT_EQ(c.filename, "<stringchar2>");
+ EXPECT_EQ(c.text, "Wu"_s);
+ EXPECT_EQ(c.filename, "<stringchar2>"_s);
EXPECT_EQ(c.line, 2);
EXPECT_EQ(c.column, 1);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'u');
- EXPECT_EQ(c.text, "Wu");
- EXPECT_EQ(c.filename, "<stringchar2>");
+ EXPECT_EQ(c.text, "Wu"_s);
+ EXPECT_EQ(c.filename, "<stringchar2>"_s);
EXPECT_EQ(c.line, 2);
EXPECT_EQ(c.column, 2);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), '\n');
- EXPECT_EQ(c.text, "Wu");
- EXPECT_EQ(c.filename, "<stringchar2>");
+ EXPECT_EQ(c.text, "Wu"_s);
+ EXPECT_EQ(c.filename, "<stringchar2>"_s);
EXPECT_EQ(c.line, 2);
EXPECT_EQ(c.column, 3);
lr.adv();
@@ -219,47 +219,47 @@ TEST(io, linechar2)
}
TEST(io, linechar3)
{
- io::LineCharReader lr("<stringchar3>", string_pipe("Hi\rWu"));
+ io::LineCharReader lr("<stringchar3>"_s, string_pipe("Hi\rWu"_s));
io::LineChar c;
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'H');
- EXPECT_EQ(c.text, "Hi");
- EXPECT_EQ(c.filename, "<stringchar3>");
+ EXPECT_EQ(c.text, "Hi"_s);
+ EXPECT_EQ(c.filename, "<stringchar3>"_s);
EXPECT_EQ(c.line, 1);
EXPECT_EQ(c.column, 1);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'i');
- EXPECT_EQ(c.text, "Hi");
- EXPECT_EQ(c.filename, "<stringchar3>");
+ EXPECT_EQ(c.text, "Hi"_s);
+ EXPECT_EQ(c.filename, "<stringchar3>"_s);
EXPECT_EQ(c.line, 1);
EXPECT_EQ(c.column, 2);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), '\n');
- EXPECT_EQ(c.text, "Hi");
- EXPECT_EQ(c.filename, "<stringchar3>");
+ EXPECT_EQ(c.text, "Hi"_s);
+ EXPECT_EQ(c.filename, "<stringchar3>"_s);
EXPECT_EQ(c.line, 1);
EXPECT_EQ(c.column, 3);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'W');
- EXPECT_EQ(c.text, "Wu");
- EXPECT_EQ(c.filename, "<stringchar3>");
+ EXPECT_EQ(c.text, "Wu"_s);
+ EXPECT_EQ(c.filename, "<stringchar3>"_s);
EXPECT_EQ(c.line, 2);
EXPECT_EQ(c.column, 1);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'u');
- EXPECT_EQ(c.text, "Wu");
- EXPECT_EQ(c.filename, "<stringchar3>");
+ EXPECT_EQ(c.text, "Wu"_s);
+ EXPECT_EQ(c.filename, "<stringchar3>"_s);
EXPECT_EQ(c.line, 2);
EXPECT_EQ(c.column, 2);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), '\n');
- EXPECT_EQ(c.text, "Wu");
- EXPECT_EQ(c.filename, "<stringchar3>");
+ EXPECT_EQ(c.text, "Wu"_s);
+ EXPECT_EQ(c.filename, "<stringchar3>"_s);
EXPECT_EQ(c.line, 2);
EXPECT_EQ(c.column, 3);
lr.adv();
@@ -267,47 +267,47 @@ TEST(io, linechar3)
}
TEST(io, linechar4)
{
- io::LineCharReader lr("<stringchar4>", string_pipe("Hi\r\nWu"));
+ io::LineCharReader lr("<stringchar4>"_s, string_pipe("Hi\r\nWu"_s));
io::LineChar c;
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'H');
- EXPECT_EQ(c.text, "Hi");
- EXPECT_EQ(c.filename, "<stringchar4>");
+ EXPECT_EQ(c.text, "Hi"_s);
+ EXPECT_EQ(c.filename, "<stringchar4>"_s);
EXPECT_EQ(c.line, 1);
EXPECT_EQ(c.column, 1);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'i');
- EXPECT_EQ(c.text, "Hi");
- EXPECT_EQ(c.filename, "<stringchar4>");
+ EXPECT_EQ(c.text, "Hi"_s);
+ EXPECT_EQ(c.filename, "<stringchar4>"_s);
EXPECT_EQ(c.line, 1);
EXPECT_EQ(c.column, 2);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), '\n');
- EXPECT_EQ(c.text, "Hi");
- EXPECT_EQ(c.filename, "<stringchar4>");
+ EXPECT_EQ(c.text, "Hi"_s);
+ EXPECT_EQ(c.filename, "<stringchar4>"_s);
EXPECT_EQ(c.line, 1);
EXPECT_EQ(c.column, 3);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'W');
- EXPECT_EQ(c.text, "Wu");
- EXPECT_EQ(c.filename, "<stringchar4>");
+ EXPECT_EQ(c.text, "Wu"_s);
+ EXPECT_EQ(c.filename, "<stringchar4>"_s);
EXPECT_EQ(c.line, 2);
EXPECT_EQ(c.column, 1);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'u');
- EXPECT_EQ(c.text, "Wu");
- EXPECT_EQ(c.filename, "<stringchar4>");
+ EXPECT_EQ(c.text, "Wu"_s);
+ EXPECT_EQ(c.filename, "<stringchar4>"_s);
EXPECT_EQ(c.line, 2);
EXPECT_EQ(c.column, 2);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), '\n');
- EXPECT_EQ(c.text, "Wu");
- EXPECT_EQ(c.filename, "<stringchar4>");
+ EXPECT_EQ(c.text, "Wu"_s);
+ EXPECT_EQ(c.filename, "<stringchar4>"_s);
EXPECT_EQ(c.line, 2);
EXPECT_EQ(c.column, 3);
lr.adv();
@@ -315,54 +315,54 @@ TEST(io, linechar4)
}
TEST(io, linechar5)
{
- io::LineCharReader lr("<stringchar5>", string_pipe("Hi\n\rWu"));
+ io::LineCharReader lr("<stringchar5>"_s, string_pipe("Hi\n\rWu"_s));
io::LineChar c;
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'H');
- EXPECT_EQ(c.text, "Hi");
- EXPECT_EQ(c.filename, "<stringchar5>");
+ EXPECT_EQ(c.text, "Hi"_s);
+ EXPECT_EQ(c.filename, "<stringchar5>"_s);
EXPECT_EQ(c.line, 1);
EXPECT_EQ(c.column, 1);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'i');
- EXPECT_EQ(c.text, "Hi");
- EXPECT_EQ(c.filename, "<stringchar5>");
+ EXPECT_EQ(c.text, "Hi"_s);
+ EXPECT_EQ(c.filename, "<stringchar5>"_s);
EXPECT_EQ(c.line, 1);
EXPECT_EQ(c.column, 2);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), '\n');
- EXPECT_EQ(c.text, "Hi");
- EXPECT_EQ(c.filename, "<stringchar5>");
+ EXPECT_EQ(c.text, "Hi"_s);
+ EXPECT_EQ(c.filename, "<stringchar5>"_s);
EXPECT_EQ(c.line, 1);
EXPECT_EQ(c.column, 3);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), '\n');
- EXPECT_EQ(c.text, "");
- EXPECT_EQ(c.filename, "<stringchar5>");
+ EXPECT_EQ(c.text, ""_s);
+ EXPECT_EQ(c.filename, "<stringchar5>"_s);
EXPECT_EQ(c.line, 2);
EXPECT_EQ(c.column, 1);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'W');
- EXPECT_EQ(c.text, "Wu");
- EXPECT_EQ(c.filename, "<stringchar5>");
+ EXPECT_EQ(c.text, "Wu"_s);
+ EXPECT_EQ(c.filename, "<stringchar5>"_s);
EXPECT_EQ(c.line, 3);
EXPECT_EQ(c.column, 1);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), 'u');
- EXPECT_EQ(c.text, "Wu");
- EXPECT_EQ(c.filename, "<stringchar5>");
+ EXPECT_EQ(c.text, "Wu"_s);
+ EXPECT_EQ(c.filename, "<stringchar5>"_s);
EXPECT_EQ(c.line, 3);
EXPECT_EQ(c.column, 2);
lr.adv();
EXPECT_TRUE(lr.get(c));
EXPECT_EQ(c.ch(), '\n');
- EXPECT_EQ(c.text, "Wu");
- EXPECT_EQ(c.filename, "<stringchar5>");
+ EXPECT_EQ(c.text, "Wu"_s);
+ EXPECT_EQ(c.filename, "<stringchar5>"_s);
EXPECT_EQ(c.line, 3);
EXPECT_EQ(c.column, 3);
lr.adv();
@@ -371,7 +371,7 @@ TEST(io, linechar5)
TEST(io, linespan)
{
- io::LineCharReader lr("<span>", string_pipe("Hello,\nWorld!\n"));
+ io::LineCharReader lr("<span>"_s, string_pipe("Hello,\nWorld!\n"_s));
io::LineSpan span;
do
{
@@ -385,10 +385,10 @@ TEST(io, linespan)
lr.adv();
}
while (span.end.ch() != 'o');
- EXPECT_EQ(span.message_str("info", "meh"),
+ EXPECT_EQ(span.message_str("info"_s, "meh"_s),
"<span>:1:2: info: meh\n"
"Hello,\n"
- " ^~~~\n"
+ " ^~~~\n"_s
);
span.begin = span.end;
do
@@ -398,21 +398,21 @@ TEST(io, linespan)
}
while (span.end.ch() != 'r');
- EXPECT_EQ(span.begin.message_str("note", "foo"),
+ EXPECT_EQ(span.begin.message_str("note"_s, "foo"_s),
"<span>:1:5: note: foo\n"
"Hello,\n"
- " ^\n"
+ " ^\n"_s
);
- EXPECT_EQ(span.end.message_str("warning", "bar"),
+ EXPECT_EQ(span.end.message_str("warning"_s, "bar"_s),
"<span>:2:3: warning: bar\n"
"World!\n"
- " ^\n"
+ " ^\n"_s
);
- EXPECT_EQ(span.message_str("error", "qux"),
+ EXPECT_EQ(span.message_str("error"_s, "qux"_s),
"<span>:1:5: error: qux\n"
"Hello,\n"
" ^~ ...\n"
"World!\n"
- "~~~\n"
+ "~~~\n"_s
);
}
diff --git a/src/io/lock.cpp b/src/io/lock.cpp
index 96c3649..1342915 100644
--- a/src/io/lock.cpp
+++ b/src/io/lock.cpp
@@ -49,7 +49,7 @@ namespace io
AString newfile;
do
{
- newfile = STRPRINTF("%s_%d.tmp", filename, no++);
+ newfile = STRPRINTF("%s_%d.tmp"_fmt, filename, no++);
fd = FD::open(newfile, O_WRONLY | O_CREAT | O_EXCL, 0666);
}
while (fd == FD() && errno == EEXIST);
@@ -67,21 +67,21 @@ namespace io
if (!WriteFile::close())
{
// leave partial file
- FPRINTF(stderr, "Warning: failed to write replacement for %s\n", filename);
+ FPRINTF(stderr, "Warning: failed to write replacement for %s\n"_fmt, filename);
abort();
}
int n = backup_count;
- AString old_filename = STRPRINTF("%s.%d", filename, n);
+ AString old_filename = STRPRINTF("%s.%d"_fmt, filename, n);
while (--n)
{
- AString newer_filename = STRPRINTF("%s.%d", filename, n);
+ AString newer_filename = STRPRINTF("%s.%d"_fmt, filename, n);
rename(newer_filename.c_str(), old_filename.c_str());
old_filename = std::move(newer_filename);
}
rename(filename.c_str(), old_filename.c_str());
- AString tmpfile = STRPRINTF("%s_%d.tmp", filename, tmp_suffix);
+ AString tmpfile = STRPRINTF("%s_%d.tmp"_fmt, filename, tmp_suffix);
rename(tmpfile.c_str(), filename.c_str());
}
} // namespace io
diff --git a/src/io/read.cpp b/src/io/read.cpp
index 2ef35cc..61a6256 100644
--- a/src/io/read.cpp
+++ b/src/io/read.cpp
@@ -105,12 +105,12 @@ namespace io
if (unhappy)
{
if (happy)
- PRINTF("warning: file contains CR\n");
+ PRINTF("warning: file contains CR\n"_fmt);
else
- PRINTF("warning: file contains bare CR\n");
+ PRINTF("warning: file contains bare CR\n"_fmt);
}
else if (!happy && anything)
- PRINTF("warning: file does not contain a trailing newline\n");
+ PRINTF("warning: file does not contain a trailing newline\n"_fmt);
line = AString(tmp);
return anything;
}
diff --git a/src/io/read_test.cpp b/src/io/read_test.cpp
index 87f95ba..398c01e 100644
--- a/src/io/read_test.cpp
+++ b/src/io/read_test.cpp
@@ -42,42 +42,42 @@ io::FD string_pipe(ZString sz)
TEST(io, read1)
{
- io::ReadFile rf(string_pipe("Hello"));
+ io::ReadFile rf(string_pipe("Hello"_s));
AString hi;
EXPECT_TRUE(rf.getline(hi));
- EXPECT_EQ(hi, "Hello");
+ EXPECT_EQ(hi, "Hello"_s);
EXPECT_FALSE(rf.getline(hi));
}
TEST(io, read2)
{
- io::ReadFile rf(string_pipe("Hello\n"));
+ io::ReadFile rf(string_pipe("Hello\n"_s));
AString hi;
EXPECT_TRUE(rf.getline(hi));
- EXPECT_EQ(hi, "Hello");
+ EXPECT_EQ(hi, "Hello"_s);
EXPECT_FALSE(rf.getline(hi));
}
TEST(io, read3)
{
- io::ReadFile rf(string_pipe("Hello\r"));
+ io::ReadFile rf(string_pipe("Hello\r"_s));
AString hi;
EXPECT_TRUE(rf.getline(hi));
- EXPECT_EQ(hi, "Hello");
+ EXPECT_EQ(hi, "Hello"_s);
EXPECT_FALSE(rf.getline(hi));
}
TEST(io, read4)
{
- io::ReadFile rf(string_pipe("Hello\r\n"));
+ io::ReadFile rf(string_pipe("Hello\r\n"_s));
AString hi;
EXPECT_TRUE(rf.getline(hi));
- EXPECT_EQ(hi, "Hello");
+ EXPECT_EQ(hi, "Hello"_s);
EXPECT_FALSE(rf.getline(hi));
}
TEST(io, read5)
{
- io::ReadFile rf(string_pipe("Hello\n\r"));
+ io::ReadFile rf(string_pipe("Hello\n\r"_s));
AString hi;
EXPECT_TRUE(rf.getline(hi));
- EXPECT_EQ(hi, "Hello");
+ EXPECT_EQ(hi, "Hello"_s);
EXPECT_TRUE(rf.getline(hi));
EXPECT_FALSE(hi);
EXPECT_FALSE(rf.getline(hi));
diff --git a/src/io/write_test.cpp b/src/io/write_test.cpp
index ae8eccd..5419501 100644
--- a/src/io/write_test.cpp
+++ b/src/io/write_test.cpp
@@ -65,7 +65,7 @@ public:
if (rv == -1)
{
if (errno != EAGAIN)
- return {"Error, read failed :("};
+ return "Error, read failed :("_s;
rv = 0;
}
if (rv == 0)
@@ -81,11 +81,11 @@ TEST(io, write1)
PipeWriter pw(false);
io::WriteFile& wf = pw.wf;
wf.really_put("Hello, ", 7);
- EXPECT_EQ("", pw.slurp());
- wf.put_line("World!\n");
- EXPECT_EQ("", pw.slurp());
+ EXPECT_EQ(""_s, pw.slurp());
+ wf.put_line("World!\n"_s);
+ EXPECT_EQ(""_s, pw.slurp());
EXPECT_TRUE(wf.close());
- EXPECT_EQ("Hello, World!\n", pw.slurp());
+ EXPECT_EQ("Hello, World!\n"_s, pw.slurp());
}
TEST(io, write2)
@@ -93,10 +93,10 @@ TEST(io, write2)
PipeWriter pw(true);
io::WriteFile& wf = pw.wf;
wf.really_put("Hello, ", 7);
- EXPECT_EQ("", pw.slurp());
- wf.put_line("World!");
+ EXPECT_EQ(""_s, pw.slurp());
+ wf.put_line("World!"_s);
wf.really_put("XXX", 3);
- EXPECT_EQ("Hello, World!\n", pw.slurp());
+ EXPECT_EQ("Hello, World!\n"_s, pw.slurp());
EXPECT_TRUE(wf.close());
- EXPECT_EQ("XXX", pw.slurp());
+ EXPECT_EQ("XXX"_s, pw.slurp());
}