Go to the source code of this file.
Value: MACRO_BEGIN \
EXPECT_TRUE(expect == out); \
LOG_INFO(expect); \
LOG_INFO(out); \
ERASEABLE string markdown(string s)
handle string spacing as markdown:
Referenced by TEST().
◆ markdown()
handle string spacing as markdown:
- two spaces escape a linebreak (otherwise text wraps)
- two linebreaks become a paragraph (remain unchanged)
Definition at line 9 of file markdown.qh.
10{
11 string buf = "";
12 int lines = 0;
13 int spaces = 0;
15 switch (it) {
16 default:
17 for (; spaces > 0; --spaces) {
19 }
21 break;
22 case ' ':
23 spaces += 1;
24 break;
25 case '\n':
26 lines += 1;
27 if (lines > 1) {
28 lines = 0;
29 spaces = 0;
31 break;
32 }
33 if (spaces < 2) {
34 spaces = 1;
35 } else {
36 spaces = 0;
38 }
39 break;
40 }
41 });
42 return buf;
43}
#define FOREACH_CHAR(s, cond, body)
strcat(_("^F4Countdown stopped!"), "\n^BG", _("Teams are too unbalanced."))
References chr2str, FOREACH_CHAR, and strcat().
◆ TEST()
| TEST |
( |
Markdown | , |
|
|
LineWrap | ) |
Definition at line 45 of file markdown.qh.
46{
47 #define X(expect, in) MACRO_BEGIN \
48 string out = markdown(in); \
49 EXPECT_TRUE(expect == out); \
50 LOG_INFO(expect); \
51 LOG_INFO(out); \
52 MACRO_END
53
54
55 X(
"lorem ipsum",
"lorem ipsum");
56
57 X(
"lorem ipsum",
"lorem ipsum ");
58
59 X(
"lorem ipsum",
"lorem\nipsum");
60
61 X(
"lorem\nipsum",
"lorem \nipsum");
62
63 X(
"lorem\n\nipsum",
"lorem\n\nipsum");
65 #undef X
66}
#define SUCCEED()
Must be present at the end of a test.
References SUCCEED, and X.