Skip to content

Commit 9f1df4c

Browse files
committed
f
1 parent 32aa4de commit 9f1df4c

File tree

2 files changed

+103
-124
lines changed

2 files changed

+103
-124
lines changed

cprintf.cpp

+102-124
Original file line numberDiff line numberDiff line change
@@ -77,68 +77,61 @@ int cprintf_capi(int stream, const char* format)
7777
namespace _cprintf_
7878
{
7979
const _cprintf_::unicode_string_vector_t std_tokens = {
80-
"r", "g", "b", "y", "m", "c", "w", "r#", "g#", "b#", "y#", "m#",
81-
"c#", "w#", "R", "G", "B", "Y", "M", "C", "W", "R#", "G#", "B#",
82-
"Y#", "M#", "C#", "W#", "rr", "rb", "rg", "ry", "rm", "rc", "rw",
83-
"gg", "gb", "gr", "gy", "gm", "gc", "gw", "bb", "br", "bg", "by",
84-
"bm", "bc", "bw", "yy", "yb", "yg", "yr", "ym", "yc", "yw", "mm",
85-
"mr", "mg", "my", "mb", "mc", "mw", "cc", "cr", "cg", "cy", "cm",
86-
"cb", "cw", "ww", "wr", "wg", "wy", "wm", "wc", "wb", "Rr", "Rb",
87-
"Rg", "Ry", "Rm", "Rc", "Rw", "Gg", "Gb", "Gr", "Gy", "Gm", "Gc",
88-
"Gw", "Bb", "Br", "Bg", "By", "Bm", "Bc", "Bw", "Yy", "Yb", "Yg",
89-
"Yr", "Ym", "Yc", "Yw", "Mm", "Mr", "Mg", "My", "Mb", "Mc", "Mw",
90-
"Cc", "Cr", "Cg", "Cy", "Cm", "Cb", "Cw", "Ww", "Wr", "Wg", "Wy",
91-
"Wm", "Wc", "Wb", "rR", "rB", "rG", "rY", "rM", "rC", "rW", "gG",
92-
"gB", "gR", "gY", "gM", "gC", "gW", "bB", "bR", "bG", "bY", "bM",
93-
"bC", "bW", "yY", "yB", "yG", "yR", "yM", "yC", "yW", "mM", "mR",
94-
"mG", "mY", "mB", "mC", "mW", "cC", "cR", "cG", "cY", "cM", "cB",
95-
"cW", "wW", "wR", "wG", "wY", "wM", "wC", "wB", "RR", "RB", "RG",
96-
"RY", "RM", "RC", "RW", "GG", "GB", "GR", "GY", "GM", "GC", "GW",
97-
"BB", "BR", "BG", "BY", "BM", "BC", "BW", "YY", "YB", "YG", "YR",
98-
"YM", "YC", "YW", "MM", "MR", "MG", "MY", "MB", "MC", "MW", "CC",
99-
"CR", "CG", "CY", "CM", "CB", "CW", "WW", "WR", "WG", "WY", "WM",
100-
"WC", "WB"
80+
"r", "g", "b", "y", "m", "c", "w", "r#", "g#", "b#", "y#", "m#", "c#", "w#",
81+
"R", "G", "B", "Y", "M", "C", "W", "R#", "G#", "B#", "Y#", "M#", "C#", "W#",
82+
"rr", "rb", "rg", "ry", "rm", "rc", "rw", "gg", "gb", "gr", "gy", "gm", "gc",
83+
"gw", "bb", "br", "bg", "by", "bm", "bc", "bw", "yy", "yb", "yg", "yr", "ym",
84+
"yc", "yw", "mm", "mr", "mg", "my", "mb", "mc", "mw", "cc", "cr", "cg", "cy",
85+
"cm", "cb", "cw", "ww", "wr", "wg", "wy", "wm", "wc", "wb", "Rr", "Rb", "Rg",
86+
"Ry", "Rm", "Rc", "Rw", "Gg", "Gb", "Gr", "Gy", "Gm", "Gc", "Gw", "Bb", "Br",
87+
"Bg", "By", "Bm", "Bc", "Bw", "Yy", "Yb", "Yg", "Yr", "Ym", "Yc", "Yw", "Mm",
88+
"Mr", "Mg", "My", "Mb", "Mc", "Mw", "Cc", "Cr", "Cg", "Cy", "Cm", "Cb", "Cw",
89+
"Ww", "Wr", "Wg", "Wy", "Wm", "Wc", "Wb", "rR", "rB", "rG", "rY", "rM", "rC",
90+
"rW", "gG", "gB", "gR", "gY", "gM", "gC", "gW", "bB", "bR", "bG", "bY", "bM",
91+
"bC", "bW", "yY", "yB", "yG", "yR", "yM", "yC", "yW", "mM", "mR", "mG", "mY",
92+
"mB", "mC", "mW", "cC", "cR", "cG", "cY", "cM", "cB", "cW", "wW", "wR", "wG",
93+
"wY", "wM", "wC", "wB", "RR", "RB", "RG", "RY", "RM", "RC", "RW", "GG", "GB",
94+
"GR", "GY", "GM", "GC", "GW", "BB", "BR", "BG", "BY", "BM", "BC", "BW", "YY",
95+
"YB", "YG", "YR", "YM", "YC", "YW", "MM", "MR", "MG", "MY", "MB", "MC", "MW",
96+
"CC", "CR", "CG", "CY", "CM", "CB", "CW", "WW", "WR", "WG", "WY", "WM", "WC",
97+
"WB"
10198

10299
#if !defined(CPF_WINDOWS_BUILD)
103100
// bold, dim, blink, reverse, hidden
104101
,
105-
"bld", "dim", "uln", "blk", "rvs", "hid", "?bld", "?dim", "?uln",
106-
"?blk", "?rvs", "?hid",
102+
"bld", "dim", "uln", "blk", "rvs", "hid", "?bld", "?dim", "?uln", "?blk",
103+
"?rvs", "?hid",
107104
#endif // #if !defined(CPF_WINDOWS_BUILD)
108105
};
109106

110107
#if defined(CPF_WINDOWS_BUILD)
111108

112-
#define REG_COLOUR_VALUES(c, C, val_f, val_b) \
113-
{ "" ##c "#", (val_b) }, { "" ##C "#", (val_b | CPF_bgi) }, \
114-
{ "" ##c, (val_f) }, { "" ##c "r", (val_f | CPF_Rb) }, \
115-
{ "" ##c "b", (val_f | CPF_Bb) }, { "" ##c "g", (val_f | CPF_Gb) }, \
116-
{ "" ##c "y", (val_f | CPF_Yb) }, { "" ##c "m", (val_f | CPF_Mb) }, \
117-
{ "" ##c "c", (val_f | CPF_Cb) }, { "" ##c "w", (val_f | CPF_Wb) }, \
118-
{ "" ##C, (val_f | CPF_fgi) }, \
119-
{ "" ##C "r", ((val_f | CPF_fgi) | CPF_Rb) }, \
120-
{ "" ##C "b", ((val_f | CPF_fgi) | CPF_Bb) }, \
121-
{ "" ##C "g", ((val_f | CPF_fgi) | CPF_Gb) }, \
122-
{ "" ##C "y", ((val_f | CPF_fgi) | CPF_Yb) }, \
123-
{ "" ##C "m", ((val_f | CPF_fgi) | CPF_Mb) }, \
124-
{ "" ##C "c", ((val_f | CPF_fgi) | CPF_Cb) }, \
125-
{ "" ##C "w", ((val_f | CPF_fgi) | CPF_Wb) }, \
126-
{ "" ##c "R", (val_f | CPF_Rbi) }, \
127-
{ "" ##c "B", (val_f | CPF_Bbi) }, \
128-
{ "" ##c "G", (val_f | CPF_Gbi) }, \
129-
{ "" ##c "Y", (val_f | CPF_Ybi) }, \
130-
{ "" ##c "M", (val_f | CPF_Mbi) }, \
131-
{ "" ##c "C", (val_f | CPF_Cbi) }, \
132-
{ "" ##c "W", (val_f | CPF_Wbi) }, \
133-
{ "" ##C "R", ((val_f | CPF_fgi) | CPF_Rbi) }, \
134-
{ "" ##C "B", ((val_f | CPF_fgi) | CPF_Bbi) }, \
135-
{ "" ##C "G", ((val_f | CPF_fgi) | CPF_Gbi) }, \
136-
{ "" ##C "Y", ((val_f | CPF_fgi) | CPF_Ybi) }, \
137-
{ "" ##C "M", ((val_f | CPF_fgi) | CPF_Mbi) }, \
138-
{ "" ##C "M", ((val_f | CPF_fgi) | CPF_Mbi) }, \
139-
{ "" ##C "C", ((val_f | CPF_fgi) | CPF_Cbi) }, \
140-
{ \
141-
"" ##C "W", ((val_f | CPF_fgi) | CPF_Wbi) \
109+
#define REG_COLOUR_VALUES(c, C, val_f, val_b) \
110+
{ ""##c "#", (val_b) }, { ""##C "#", (val_b | CPF_bgi) }, \
111+
{ ""##c, (val_f) }, { ""##c "r", (val_f | CPF_Rb) }, \
112+
{ ""##c "b", (val_f | CPF_Bb) }, { ""##c "g", (val_f | CPF_Gb) }, \
113+
{ ""##c "y", (val_f | CPF_Yb) }, { ""##c "m", (val_f | CPF_Mb) }, \
114+
{ ""##c "c", (val_f | CPF_Cb) }, { ""##c "w", (val_f | CPF_Wb) }, \
115+
{ ""##C, (val_f | CPF_fgi) }, { ""##C "r", ((val_f | CPF_fgi) | CPF_Rb) }, \
116+
{ ""##C "b", ((val_f | CPF_fgi) | CPF_Bb) }, \
117+
{ ""##C "g", ((val_f | CPF_fgi) | CPF_Gb) }, \
118+
{ ""##C "y", ((val_f | CPF_fgi) | CPF_Yb) }, \
119+
{ ""##C "m", ((val_f | CPF_fgi) | CPF_Mb) }, \
120+
{ ""##C "c", ((val_f | CPF_fgi) | CPF_Cb) }, \
121+
{ ""##C "w", ((val_f | CPF_fgi) | CPF_Wb) }, \
122+
{ ""##c "R", (val_f | CPF_Rbi) }, { ""##c "B", (val_f | CPF_Bbi) }, \
123+
{ ""##c "G", (val_f | CPF_Gbi) }, { ""##c "Y", (val_f | CPF_Ybi) }, \
124+
{ ""##c "M", (val_f | CPF_Mbi) }, { ""##c "C", (val_f | CPF_Cbi) }, \
125+
{ ""##c "W", (val_f | CPF_Wbi) }, \
126+
{ ""##C "R", ((val_f | CPF_fgi) | CPF_Rbi) }, \
127+
{ ""##C "B", ((val_f | CPF_fgi) | CPF_Bbi) }, \
128+
{ ""##C "G", ((val_f | CPF_fgi) | CPF_Gbi) }, \
129+
{ ""##C "Y", ((val_f | CPF_fgi) | CPF_Ybi) }, \
130+
{ ""##C "M", ((val_f | CPF_fgi) | CPF_Mbi) }, \
131+
{ ""##C "M", ((val_f | CPF_fgi) | CPF_Mbi) }, \
132+
{ ""##C "C", ((val_f | CPF_fgi) | CPF_Cbi) }, \
133+
{ \
134+
""##C "W", ((val_f | CPF_fgi) | CPF_Wbi) \
142135
}
143136

144137
const std::map<const _cprintf_::unicode_string_t,
@@ -163,51 +156,44 @@ const std::map<const _cprintf_::unicode_string_t,
163156
// http://ispltd.org/mini_howto:ansi_terminal_codes
164157

165158
/*<ESC>[{attr};{fg};{bg}m*/
166-
#define REG_COLOUR_VALUES(c, C, i) \
167-
{ "" #c, "\x1B[0;0;3" #i "m" }, { "" #C "r", "\x1B[0;9" #i ";41m" }, \
168-
{ "" #c "#", "\x1B[0;0;4" #i "m" }, \
169-
{ "" #C "#", "\x1B[0;30;10" #i "m" }, \
170-
{ "" #c "r", "\x1B[0;3" #i ";41m" }, \
171-
{ "" #c "g", "\x1B[0;3" #i ";42m" }, \
172-
{ "" #c "b", "\x1B[0;3" #i ";44m" }, \
173-
{ "" #c "y", "\x1B[0;3" #i ";43m" }, \
174-
{ "" #c "m", "\x1B[0;3" #i ";45m" }, \
175-
{ "" #c "c", "\x1B[0;3" #i ";46m" }, \
176-
{ "" #c "w", "\x1B[0;3" #i ";47m" }, { "" #C, "\x1B[0;0;9" #i "m" }, \
177-
{ "" #C "g", "\x1B[0;9" #i ";42m" }, \
178-
{ "" #C "b", "\x1B[0;9" #i ";44m" }, \
179-
{ "" #C "y", "\x1B[0;9" #i ";43m" }, \
180-
{ "" #C "m", "\x1B[0;9" #i ";45m" }, \
181-
{ "" #C "c", "\x1B[0;9" #i ";46m" }, \
182-
{ "" #C "w", "\x1B[0;9" #i ";47m" }, \
183-
{ "" #c "R", "\x1B[0;3" #i ";101m" }, \
184-
{ "" #c "G", "\x1B[0;3" #i ";102m" }, \
185-
{ "" #c "B", "\x1B[0;3" #i ";104m" }, \
186-
{ "" #c "Y", "\x1B[0;3" #i ";103m" }, \
187-
{ "" #c "M", "\x1B[0;3" #i ";105m" }, \
188-
{ "" #c "C", "\x1B[0;3" #i ";106m" }, \
189-
{ "" #c "W", "\x1B[0;3" #i ";107m" }, \
190-
{ "" #C "R", "\x1B[0;9" #i ";101m" }, \
191-
{ "" #C "G", "\x1B[0;9" #i ";102m" }, \
192-
{ "" #C "B", "\x1B[0;9" #i ";104m" }, \
193-
{ "" #C "Y", "\x1B[0;9" #i ";103m" }, \
194-
{ "" #C "M", "\x1B[0;9" #i ";105m" }, \
195-
{ "" #C "C", "\x1B[0;9" #i ";106m" }, \
196-
{ \
197-
"" #C "W", "\x1B[0;9" #i ";107m" \
159+
#define REG_COLOUR_VALUES(c, C, i) \
160+
{ "" #c, "\x1B[0;0;3" #i "m" }, { "" #C "r", "\x1B[0;9" #i ";41m" }, \
161+
{ "" #c "#", "\x1B[0;0;4" #i "m" }, { "" #C "#", "\x1B[0;30;10" #i "m" }, \
162+
{ "" #c "r", "\x1B[0;3" #i ";41m" }, { "" #c "g", "\x1B[0;3" #i ";42m" }, \
163+
{ "" #c "b", "\x1B[0;3" #i ";44m" }, { "" #c "y", "\x1B[0;3" #i ";43m" }, \
164+
{ "" #c "m", "\x1B[0;3" #i ";45m" }, { "" #c "c", "\x1B[0;3" #i ";46m" }, \
165+
{ "" #c "w", "\x1B[0;3" #i ";47m" }, { "" #C, "\x1B[0;0;9" #i "m" }, \
166+
{ "" #C "g", "\x1B[0;9" #i ";42m" }, { "" #C "b", "\x1B[0;9" #i ";44m" }, \
167+
{ "" #C "y", "\x1B[0;9" #i ";43m" }, { "" #C "m", "\x1B[0;9" #i ";45m" }, \
168+
{ "" #C "c", "\x1B[0;9" #i ";46m" }, { "" #C "w", "\x1B[0;9" #i ";47m" }, \
169+
{ "" #c "R", "\x1B[0;3" #i ";101m" }, \
170+
{ "" #c "G", "\x1B[0;3" #i ";102m" }, \
171+
{ "" #c "B", "\x1B[0;3" #i ";104m" }, \
172+
{ "" #c "Y", "\x1B[0;3" #i ";103m" }, \
173+
{ "" #c "M", "\x1B[0;3" #i ";105m" }, \
174+
{ "" #c "C", "\x1B[0;3" #i ";106m" }, \
175+
{ "" #c "W", "\x1B[0;3" #i ";107m" }, \
176+
{ "" #C "R", "\x1B[0;9" #i ";101m" }, \
177+
{ "" #C "G", "\x1B[0;9" #i ";102m" }, \
178+
{ "" #C "B", "\x1B[0;9" #i ";104m" }, \
179+
{ "" #C "Y", "\x1B[0;9" #i ";103m" }, \
180+
{ "" #C "M", "\x1B[0;9" #i ";105m" }, \
181+
{ "" #C "C", "\x1B[0;9" #i ";106m" }, \
182+
{ \
183+
"" #C "W", "\x1B[0;9" #i ";107m" \
198184
}
199185

200186
extern const std::map<const _cprintf_::unicode_string_t,
201187
_cprintf_::system_color_repr_t>
202188
std_token_vals{
203189

204190
/*attributes specifiers*/
205-
{ "bld", "\x1B[1m" }, { "dim", "\x1B[2m" },
206-
{ "uln", "\x1B[4m" }, { "blk", "\x1B[5m" },
207-
{ "rvs", "\x1B[7m" }, { "hid", "\x1B[8m" },
208-
{ "?bld", "\x1B[21m" }, { "?dim", "\x1B[22m" },
209-
{ "?uln", "\x1B[24m" }, { "?blk", "\x1B[25m" },
210-
{ "?rvs", "\x1B[27m" }, { "?hid", "\x1B[28m" },
191+
{ "bld", "\x1B[1m" }, { "dim", "\x1B[2m" },
192+
{ "uln", "\x1B[4m" }, { "blk", "\x1B[5m" },
193+
{ "rvs", "\x1B[7m" }, { "hid", "\x1B[8m" },
194+
{ "?bld", "\x1B[21m" }, { "?dim", "\x1B[22m" },
195+
{ "?uln", "\x1B[24m" }, { "?blk", "\x1B[25m" },
196+
{ "?rvs", "\x1B[27m" }, { "?hid", "\x1B[28m" },
211197
REG_COLOUR_VALUES(r, R, 1), REG_COLOUR_VALUES(g, G, 2),
212198
REG_COLOUR_VALUES(b, B, 4), REG_COLOUR_VALUES(y, Y, 3),
213199
REG_COLOUR_VALUES(m, M, 5), REG_COLOUR_VALUES(c, C, 6),
@@ -225,33 +211,31 @@ extern const std::map<const _cprintf_::unicode_string_t,
225211
cprintf("$r`red");
226212
*/
227213

228-
const std::initializer_list<_cprintf_::unicode_string_t>
229-
attr_esc_seqs =
230-
{
231-
"`$", "`r", "`g", "`b", "`y", "`m", "`c",
232-
"`w", "`R", "`G", "`B", "`Y", "`M", "`C",
233-
"`W", "`.", "``", "`?", "`f", "`#", "`l", /*...$bld -> $b`ld*/
234-
};
235-
236-
const std::initializer_list<char> std_fmt_specs = {
237-
'c', 'd', 'e', 'E', 'f', 'F', 'g', 'G', 'i', 'o',
238-
's', 'u', 'x', 'X', 'a', 'A', 'p', 'n', 'b', 'S'
214+
const std::initializer_list<_cprintf_::unicode_string_t> attr_esc_seqs = {
215+
"`$", "`r", "`g", "`b", "`y", "`m", "`c", "`w", "`R", "`G", "`B",
216+
"`Y", "`M", "`C", "`W", "`.", "``", "`?", "`f", "`#", "`l", /*...$bld ->
217+
$b`ld*/
239218
};
240219

220+
const std::initializer_list<char> std_fmt_specs = { 'c', 'd', 'e', 'E', 'f',
221+
'F', 'g', 'G', 'i', 'o',
222+
's', 'u', 'x', 'X', 'a',
223+
'A', 'p', 'n', 'b', 'S' };
224+
241225
// These are characters that terminate a format specifier: Characters
242226
// typically found at the end of a more complex FS %#x %.6i %05.2f
243-
const std::initializer_list<char> ext_fmtspec_terms = { 'd', 'f', 's', 'e',
244-
'o', 'x', 'X', 'i',
245-
'u', 'S' };
227+
const std::initializer_list<char> ext_fmtspec_terms = {
228+
'd', 'f', 's', 'e', 'o', 'x', 'X', 'i', 'u', 'S'
229+
};
246230

247231
// These are characters that typically contained within i.e. in the middle of
248232
// more complex format specifiers e.g. %.6i, %05.2f
249233
const std::initializer_list<char> inter_fmt_specs = { '+', '-', '.',
250-
'*', '#', 'l' };
234+
'*', '#', 'l' };
251235

252-
const std::initializer_list<char> escape_characters = {
253-
'\a', '\b', '\f', '\n', '\r', '\t', '\v', '\\', '\"', '\0'
254-
};
236+
const std::initializer_list<char> escape_characters = { '\a', '\b', '\f', '\n',
237+
'\r', '\t', '\v', '\\',
238+
'\"', '\0' };
255239

256240
auto col_ids = { 'r', 'g', 'b', 'y', 'm', 'c', 'w',
257241
'R', 'G', 'B', 'Y', 'M', 'C', 'W' };
@@ -268,8 +252,7 @@ auto schar_ids = {
268252
/*
269253
parse-predicate storage type
270254
*/
271-
typedef std::map<char,
272-
std::function<bool(unicode_string_t const&, int const&)>>
255+
typedef std::map<char, std::function<bool(unicode_string_t const&, int const&)>>
273256
ppred_t;
274257

275258
bool pred_isdigit(unicode_string_t const& s, int const& p)
@@ -405,9 +388,9 @@ void parse_attribute_specifier(unicode_string_t const& src_string,
405388
unicode_string_t::size_type& offset_val,
406389
unicode_string_t::size_type& ssp)
407390
{
408-
int offset_counter = 0;
391+
int offset_counter = 0;
409392
char c = src_string[ssp]; // first character after occurrance of "$"
410-
bool finished = false,
393+
bool finished = false,
411394
checked_if_is_txt_frmt_modifier = false; //$bld $rvs etc..
412395
ppred_t::const_iterator
413396
pred_iter; // colour and screen wipe parsing predicates iterator
@@ -672,7 +655,7 @@ void save_stream_state(file_stream_t user_stream)
672655
void restore_stream_state(file_stream_t user_stream, bool finished_cpf_exec)
673656
{
674657

675-
if (!glob_terminal_state_restored && runningInSystemTerminal() )
658+
if (!glob_terminal_state_restored && runningInSystemTerminal())
676659
{
677660
#ifdef _WIN32
678661
auto s = user_stream == stdout ? stdout_handle : stderr_handle;
@@ -694,8 +677,7 @@ void restore_stream_state(file_stream_t user_stream, bool finished_cpf_exec)
694677
/*
695678
make note of this!
696679
*/
697-
if (glob_terminal_state_restored)
698-
std::fflush(user_stream);
680+
std::fflush(user_stream);
699681
}
700682

701683
// i.e 32f or 200b
@@ -726,9 +708,9 @@ system_color_repr_t get_token_value(const unicode_string_t& colour_key)
726708
unicode_string_t get_terminal_bitmap_colour_value(
727709
const unicode_string_t& attrib_token)
728710
{
729-
auto at_size = attrib_token.size();
711+
auto at_size = attrib_token.size();
730712
char lst_char = attrib_token[at_size - 1];
731-
auto colour_num = attrib_token.substr(0, at_size - 2);
713+
auto colour_num = attrib_token.substr(0, at_size - 2);
732714

733715
auto int_repr = strtol(colour_num.c_str(), nullptr, 0);
734716

@@ -748,8 +730,7 @@ unicode_string_t get_terminal_bitmap_colour_value(
748730
}
749731
else // "43&"
750732
{
751-
colour_str =
752-
("\x1B[38;5;" + colour_num + "m\x1B[48;5;" + colour_num + "m");
733+
colour_str = ("\x1B[38;5;" + colour_num + "m\x1B[48;5;" + colour_num + "m");
753734
}
754735

755736
return colour_str;
@@ -1113,7 +1094,6 @@ void write_substring_without_format_specifier(
11131094
}
11141095
}
11151096

1116-
11171097
CPF_API void format_specifier_correspondence_check(
11181098
unicode_character_string_ptr_t format)
11191099
{
@@ -1146,8 +1126,7 @@ unicode_string_t resolve_string_type_format_specifier(
11461126
f.clear();
11471127
for (std::wint_t i(0); i < fs.size(); ++i)
11481128
{
1149-
f.append(
1150-
{ std::isalpha(fs[i]) ? (char)std::toupper(fs[i]) : fs[i] });
1129+
f.append({ std::isalpha(fs[i]) ? (char)std::toupper(fs[i]) : fs[i] });
11511130
}
11521131
}
11531132
#endif
@@ -1184,7 +1163,6 @@ void write_variadic_argument_to_file_stream<signed char*>(
11841163
ascii_to_unicode_string_conversion(reinterpret_cast<char*>(arg))));
11851164
}
11861165

1187-
11881166
CPF_API void print_format_string_layout(
11891167
file_stream_t file_stream,
11901168
const format_string_layout_t::const_iterator& end_point_comparator,

cprintf_examples.py

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
def main():
2525
cprintf(stdout, "Characters: $R{} {:c} \n".format('a', 65))
2626
cprintf(stderr, "$GDecimals$?: {} {}\n".format(1977, 650000))
27+
print("hello")
2728
cprintf("$BPreceding with blanks: {0:{width}{base}} \n".format(1977, width=4, base=10))
2829
sys.exit(0)
2930
cprintf("Preceding with zeros: $Y%010d \n", 1977)

0 commit comments

Comments
 (0)