From 889e4a8841a9ad57afa774a4d36129cc41a8ecb0 Mon Sep 17 00:00:00 2001 From: Tyge Løvset Date: Sat, 24 Oct 2020 18:14:20 +0200 Subject: Renamed c_printf() to c_print() because it no longer support of printf() formats. c_timef() renamed to c_ftime(). --- README.md | 48 ++++++++++++++++++++--------------------- examples/benchmark.c | 18 ++++++++-------- examples/share_ptr.c | 12 +++++------ stc/cfmt.h | 61 ++++++++++++++++++++++++++-------------------------- 4 files changed, 70 insertions(+), 69 deletions(-) diff --git a/README.md b/README.md index 94269e23..580d00d9 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ int main(void) { cvec_i_push_back(&vec, 2); c_foreach (i, cvec_i, vec) - c_printf(0, " {}", *i.val); + c_print(0, " {}", *i.val); cvec_i_del(&vec); } ``` @@ -61,7 +61,7 @@ int main(void) { cvec_u_push_back(&vec, (User) {cstr_from("admin"), 0}); // cstr_from() allocates string memory cvec_u_push_back(&vec, (User) {cstr_from("usera"), 1}); c_foreach (i, cvec_u, vec) - c_printf(0, "{}: {}\n", i.val->name.str, i.val->id); + c_print(0, "{}: {}\n", i.val->name.str, i.val->id); cvec_u_del(&vec); // free everything } ``` @@ -211,7 +211,7 @@ int main() { bignums.data[i] /= i; // make them smaller c_foreach (i, cvec_ix, bignums) - c_printf(0, " {}", *i.val); + c_print(0, " {}", *i.val); cvec_ix_del(&bignums); } // Output: @@ -234,10 +234,10 @@ int main() { cstr_t tmp = cstr_from_fmt("%d elements so far", cvec_str_size(names)); cvec_str_push_back(&names, tmp); // tmp is moved to names, do not del() it. - c_printf(0, "{}\n", names.data[1].str); // Access the second element + c_print(0, "{}\n", names.data[1].str); // Access the second element c_foreach (i, cvec_str, names) - c_printf(0, "item: {}\n", i.val->str); + c_print(0, "item: {}\n", i.val->str); cvec_str_del(&names); } // Output: @@ -252,16 +252,16 @@ item: 2 elements so far int main() { cstr_t s1 = cstr_from("one-nine-three-seven-five"); - c_printf(0, "{}.\n", s1.str); + c_print(0, "{}.\n", s1.str); cstr_insert(&s1, 3, "-two"); - c_printf(0, "{}.\n", s1.str); + c_print(0, "{}.\n", s1.str); cstr_erase(&s1, 7, 5); // -nine - c_printf(0, "{}.\n", s1.str); + c_print(0, "{}.\n", s1.str); cstr_replace(&s1, cstr_find(&s1, "seven"), 5, "four"); - c_printf(stderr, "{}.\n", s1.str); + c_print(stderr, "{}.\n", s1.str); // reassign: cstr_assign(&s1, "one two three four five six seven"); @@ -269,8 +269,8 @@ int main() { printf("append: %s\n", s1.str); cstr_t full_path cstr_init; - c_printf(&full_path, "{}/{}.{}", "directory", "filename", "ext"); - c_printf(1, "{}\n", full_path.str); // 1 = stderr + c_print(&full_path, "{}/{}.{}", "directory", "filename", "ext"); + c_print(1, "{}\n", full_path.str); // 1 = stderr c_del(cstr, &s1, &full_path); } @@ -297,7 +297,7 @@ int main() { cmap_ii_put(&nums, 8, 64); // similar to insert_or_assign() cmap_ii_emplace(&nums, 11, 121); - c_printf(0, "{}\n", cmap_ii_find(&nums, 8)->second); + c_print(0, "{}\n", cmap_ii_find(&nums, 8)->second); cmap_ii_del(&nums); // -- map of str -- @@ -307,9 +307,9 @@ int main() { cmap_str_emplace(&strings, "Sunny", "afternoon"); c_push_items(&strings, cmap_str, { {"Eleven", "XI"}, {"Six", "VI"} }); - c_printf(0, "size = {}\n", cmap_str_size(strings)); + c_print(0, "size = {}\n", cmap_str_size(strings)); c_foreach (i, cmap_str, strings) - c_printf(0, "{}: {}\n", i.val->first.str, i.val->second.str); + c_print(0, "{}: {}\n", i.val->first.str, i.val->second.str); cmap_str_del(&strings); // frees all strings and map. } // Output: @@ -338,7 +338,7 @@ int main() { // iterate the set of cstr_t values: c_foreach (i, cset_str, words) - c_printf(0, "{} ", i.val->str); + c_print(0, "{} ", i.val->str); cset_str_del(&words); } // Output: @@ -365,13 +365,13 @@ int main() { printf("initial: "); c_foreach (i, clist_fx, list) - c_printf(0, " {:.16}", *i.val); + c_print(0, " {:.16}", *i.val); clist_fx_sort(&list); // mergesort O(n*log n) printf("\nsorted: "); c_foreach (i, clist_fx, list) - c_printf(0, " {:10f}", *i.val); + c_print(0, " {:10f}", *i.val); clist_fx_del(&list); } @@ -403,7 +403,7 @@ int main() // Extract and disply the fifty smallest. c_forrange (50) { - c_printf(0, "{} ", *cpqueue_i_top(&heap)); + c_print(0, "{} ", *cpqueue_i_top(&heap)); cpqueue_i_pop(&heap); } cpqueue_i_del(&heap); @@ -431,7 +431,7 @@ int main() { cqueue_i_pop(&queue); c_foreach (i, cqueue_i, queue) - c_printf(0, " {}", *i.val); + c_print(0, " {}", *i.val); cqueue_i_del(&queue); } @@ -454,9 +454,9 @@ int main() carray1f a1 = carray3f_at2(&a3, 5, 4); // sub-array a3[5][4] (no data copy). carray2f a2 = carray3f_at1(&a3, 5); // sub-array a3[5] - c_printf(stdout, "{}\n", *carray1f_at(&a1, 3)); // a1[3] (3.14f) - c_printf(stdout, "{}\n", *carray2f_at(&a2, 4, 3)); // a2[4][3] (3.14f) - c_printf(stdout, "{}\n", *carray3f_at(&a3, 5, 4, 3)); // a3[5][4][3] (3.14f) + c_print(stdout, "{}\n", *carray1f_at(&a1, 3)); // a1[3] (3.14f) + c_print(stdout, "{}\n", *carray2f_at(&a2, 4, 3)); // a2[4][3] (3.14f) + c_print(stdout, "{}\n", *carray3f_at(&a3, 5, 4, 3)); // a3[5][4][3] (3.14f) // ... carray1f_del(&a1); // does nothing, since it is a sub-array. carray2f_del(&a2); // same. @@ -571,10 +571,10 @@ void display_hist(cvec_mi hist, int scale, int mean, int stddev) int k = (int) (i.val->second * stddev * scale * 25ull / 10 / n); if (k > 0) { cstr_take(&bar, cstr_with_size(k, '*')); - c_printf(0, "{:4} {}\n", i.val->first, bar.str); + c_print(0, "{:4} {}\n", i.val->first, bar.str); } } - c_printf(0, "Normal distribution with mean={}, stddev={}. '*' = {:.0f} samples out of {}.\n", + c_print(0, "Normal distribution with mean={}, stddev={}. '*' = {:.0f} samples out of {}.\n", mean, stddev, n / (2.5 * stddev * scale), n); cstr_del(&bar); } diff --git a/examples/benchmark.c b/examples/benchmark.c index 9f2467fe..01295054 100644 --- a/examples/benchmark.c +++ b/examples/benchmark.c @@ -151,7 +151,7 @@ int rr = RR; erased += M##_ERASE(X, RAND(rr)); \ } \ difference = clock() - before; \ - c_printf(0, #M ": time: {:5.02f}, sum: {}, erased {}, size: {}, buckets: {:8}\n", \ + c_print(0, #M ": time: {:5.02f}, sum: {}, erased {}, size: {}, buckets: {:8}\n", \ (float) difference / CLOCKS_PER_SEC, checksum, erased, (size_t) M##_SIZE(X), (size_t) M##_BUCKETS(X)); \ M##_CLEAR(X); \ } @@ -166,7 +166,7 @@ int rr = RR; for (size_t i = 0; i < N2; ++i) \ erased += M##_ERASE(X, i); \ difference = clock() - before; \ - c_printf(0, #M ": time: {:5.02f}, erased {}, size: {}, buckets: {:8}\n", \ + c_print(0, #M ": time: {:5.02f}, erased {}, size: {}, buckets: {:8}\n", \ (float) difference / CLOCKS_PER_SEC, erased, (size_t) M##_SIZE(X), (size_t) M##_BUCKETS(X)); \ M##_CLEAR(X); \ } @@ -183,7 +183,7 @@ int rr = RR; for (size_t i = 0; i < N3; ++i) \ erased += M##_ERASE(X, RAND(rr)); \ difference = clock() - before; \ - c_printf(0, #M ": time: {:5.02f}, erased {}, size: {}, buckets: {:8}\n", \ + c_print(0, #M ": time: {:5.02f}, erased {}, size: {}, buckets: {:8}\n", \ (float) difference / CLOCKS_PER_SEC, erased, (size_t) M##_SIZE(X), (size_t) M##_BUCKETS(X)); \ M##_CLEAR(X); \ } @@ -199,7 +199,7 @@ int rr = RR; for (int k=0; k<5; k++) M##_FOR (X, i) \ sum += M##_ITEM(X, i); \ difference = clock() - before; \ - c_printf(0, #M ": time: {:5.02f}, sum {}, size: {}, buckets: {:8}\n", \ + c_print(0, #M ": time: {:5.02f}, sum {}, size: {}, buckets: {:8}\n", \ (float) difference / CLOCKS_PER_SEC, sum, (size_t) M##_SIZE(X), (size_t) M##_BUCKETS(X)); \ M##_CLEAR(X); \ } @@ -219,16 +219,16 @@ int main(int argc, char* argv[]) { rr = argc == 2 ? atoi(argv[1]) : RR; seed = time(NULL); - c_printf(0, "\nRandom keys are in range [0, 2^{}), seed = {}:\n", rr, seed); - c_printf(0, "\nUnordered maps: {} repeats of Insert random key + try to remove a random key:\n", N1); + c_print(0, "\nRandom keys are in range [0, 2^{}), seed = {}:\n", rr, seed); + c_print(0, "\nUnordered maps: {} repeats of Insert random key + try to remove a random key:\n", N1); RUN_TEST(1) - c_printf(0, "\nUnordered maps: Insert {} index keys, then remove them in same order:\n", N2); + c_print(0, "\nUnordered maps: Insert {} index keys, then remove them in same order:\n", N2); RUN_TEST(2) - c_printf(0, "\nUnordered maps: Insert {} random keys, then remove them in same order:\n", N3); + c_print(0, "\nUnordered maps: Insert {} random keys, then remove them in same order:\n", N3); RUN_TEST(3) - c_printf(0, "\nUnordered maps: Iterate {} random keys:\n", N4); + c_print(0, "\nUnordered maps: Iterate {} random keys:\n", N4); RUNX_TEST(4) } diff --git a/examples/share_ptr.c b/examples/share_ptr.c index 571a80d4..923d4535 100644 --- a/examples/share_ptr.c +++ b/examples/share_ptr.c @@ -11,7 +11,7 @@ Person* Person_make(Person* p, const char* name, const char* last) { return p; } void Person_del(Person* p) { - c_printf(0, "del: {}\n", p->name.str); + c_print(0, "del: {}\n", p->name.str); c_del(cstr, &p->name, &p->last); } int Person_compare(const Person* p, const Person* q) { @@ -40,7 +40,7 @@ int main() { cvec_pe_push_back(&vec, csptr_pe_share(p)); // Don't forget to share! } c_foreach (i, clist_pe, queue) - c_printf(0, " {}\n", i.val->get->name.str); + c_print(0, " {}\n", i.val->get->name.str); puts("Sort and pop 3:"); clist_pe_sort(&queue); @@ -52,18 +52,18 @@ int main() { puts("Sorted queue:"); c_foreach (i, clist_pe, queue) - c_printf(0, " {}\n", i.val->get->name.str); + c_print(0, " {}\n", i.val->get->name.str); puts("Sorted vec:"); c_foreach (i, cvec_pe, vec) - c_printf(0, " {}\n", i.val->get->name.str); + c_print(0, " {}\n", i.val->get->name.str); Person lost; Person_make(&lost, "Name 5", "Last 5"); csptr_pe ptmp = {&lost, NULL}; // share pointer without counter - OK. clist_pe_iter_t lit = clist_pe_find(&queue, ptmp); Person_del(&lost); - if (lit.val) c_printf(0, "Found: {}\n", lit.val->get->name.str); + if (lit.val) c_print(0, "Found: {}\n", lit.val->get->name.str); - c_printf(0, "use {}\n", *joe.use_count); + c_print(0, "use {}\n", *joe.use_count); csptr_pe_del(&joe); puts("Destroy queue:"); diff --git a/stc/cfmt.h b/stc/cfmt.h index a2cb6913..0f60a098 100644 --- a/stc/cfmt.h +++ b/stc/cfmt.h @@ -34,13 +34,14 @@ int main() { time_t rawtime = time(NULL); struct tm* tm = localtime(&rawtime); unsigned char r = 123, g = 214, b = 90, w = 110; - c_printf(0, "Date: {} {}\n", c_timef("%Y-%m-%d %X %Z", tm), test); - c_printf(0, "Color: ({} {} {}), {}\n", r, g, b, flag); - c_printf(0, "{:10}, {:10}, {:.2f}\n", 42, 43, 3.141592267); - c_printf(stdout, "{:10} {:10} {:10}\n", z, z, w); - c_printf(stderr, "100%: {} {:.*} {}\n", string.str, 4, pi, x); - c_printf(&string, "Precision: {} {:.16} {}", string.str, pi, x); - c_printf(0, "{}\nvector: ({}, {}, {})\n", string.str, 3.2, 3.3, 4.2/3.2); + c_print(0, "Date: {} {}\n", c_ftime("%Y-%m-%d %X %Z", tm), test); + c_print(0, "Color: ({} {} {}), {}\n", r, g, b, flag); + c_print(0, "{:10}, {:10}, {:.2f}\n", 42, 43, 3.141592267); + c_print(stdout, "{:10} {:10} {:10}\n", z, z, w); + c_print(stderr, "100%: {} {:.*} {}\n", string.str, 4, pi, x); + c_print(&string, "Precision: {} {:.16} {}", string.str, pi, x); + c_print(0, "{}\nvector: ({}, {}, {})\n", string.str, 3.2, 3.3, 4.2/3.2); + cstr_del(&string); } */ #ifndef CFMT__H__ @@ -89,7 +90,7 @@ STC_INLINE const char* _cfmt_strftime(char* n, char buf[][_cfmt_sn], size_t maxs void *: "p", \ const char *: "s", \ const void *: "p") -#else +#else /* c++ */ inline auto _cfmt_fn(FILE*) {return fprintf;} inline auto _cfmt_fn(char*) {return sprintf;} inline auto _cfmt_fn(int s) {return _cfmt_printf;} @@ -112,60 +113,60 @@ STC_INLINE const char* _cfmt_strftime(char* n, char buf[][_cfmt_sn], size_t maxs inline auto _cfmt(const void *x) {return "p";} #endif -/* Only for argument to c_printf. Max 4 uses per c_printf() statement. Buffer = 64 chars. */ -#define c_timef(fmt, timeptr) _cfmt_strftime(&_tn, _tm, sizeof _tm[0], fmt, timeptr) +/* Only for argument to c_print. Max 4 uses per c_print() statement. Buffer = 64 chars. */ +#define c_ftime(fmt, timeptr) _cfmt_strftime(&_tn, _tm, sizeof _tm[0], fmt, timeptr) /* Primary function. */ -#define c_printf(...) c_MACRO_OVERLOAD(c_printf, __VA_ARGS__) -#define c_printf_2(to, fmt) \ +#define c_print(...) c_MACRO_OVERLOAD(c_print, __VA_ARGS__) +#define c_print_2(to, fmt) \ do { char *_fm = _cfmt_conv(0, fmt); \ _cfmt_fn(to)(to, _fm); free(_fm); } while (0) -#define c_printf_3(to, fmt, c) \ +#define c_print_3(to, fmt, c) \ do { char _tm[1][_cfmt_sn], _tn=0, *_fm = _cfmt_conv(1, fmt, _cfmt(c)); \ _cfmt_fn(to)(to, _fm, c); free(_fm); } while (0) -#define c_printf_4(to, fmt, c, d) \ +#define c_print_4(to, fmt, c, d) \ do { char _tm[2][_cfmt_sn], _tn=0, *_fm = _cfmt_conv(2, fmt, _cfmt(c), _cfmt(d)); \ _cfmt_fn(to)(to, _fm, c, d); free(_fm); } while (0) -#define c_printf_5(to, fmt, c, d, e) \ +#define c_print_5(to, fmt, c, d, e) \ do { char _tm[3][_cfmt_sn], _tn=0, *_fm = _cfmt_conv(3, fmt, _cfmt(c), _cfmt(d), _cfmt(e)); \ _cfmt_fn(to)(to, _fm, c, d, e); free(_fm); } while (0) -#define c_printf_6(to, fmt, c, d, e, f) \ +#define c_print_6(to, fmt, c, d, e, f) \ do { char _tm[_cfmt_bn][_cfmt_sn], _tn=0, *_fm = _cfmt_conv(4, fmt, _cfmt(c), _cfmt(d), _cfmt(e), _cfmt(f)); \ _cfmt_fn(to)(to, _fm, c, d, e, f); free(_fm); } while (0) -#define c_printf_7(to, fmt, c, d, e, f, g) \ +#define c_print_7(to, fmt, c, d, e, f, g) \ do { char _tm[_cfmt_bn][_cfmt_sn], _tn=0, *_fm = _cfmt_conv(5, fmt, _cfmt(c), _cfmt(d), _cfmt(e), _cfmt(f), _cfmt(g)); \ _cfmt_fn(to)(to, _fm, c, d, e, f, g); free(_fm); } while (0) -#define c_printf_8(to, fmt, c, d, e, f, g, h) \ +#define c_print_8(to, fmt, c, d, e, f, g, h) \ do { char _tm[_cfmt_bn][_cfmt_sn], _tn=0, *_fm = _cfmt_conv(6, fmt, _cfmt(c), _cfmt(d), _cfmt(e), _cfmt(f), _cfmt(g), _cfmt(h)); \ _cfmt_fn(to)(to, _fm, c, d, e, f, g, h); free(_fm); } while (0) -#define c_printf_9(to, fmt, c, d, e, f, g, h, i) \ +#define c_print_9(to, fmt, c, d, e, f, g, h, i) \ do { char _tm[_cfmt_bn][_cfmt_sn], _tn=0, *_fm = _cfmt_conv(7, fmt, _cfmt(c), _cfmt(d), _cfmt(e), _cfmt(f), _cfmt(g), _cfmt(h), _cfmt(i)); \ _cfmt_fn(to)(to, _fm, c, d, e, f, g, h, i); free(_fm); } while (0) -#define c_printf_10(to, fmt, c, d, e, f, g, h, i, j) \ +#define c_print_10(to, fmt, c, d, e, f, g, h, i, j) \ do { char _tm[_cfmt_bn][_cfmt_sn], _tn=0, *_fm = _cfmt_conv(8, fmt, _cfmt(c), _cfmt(d), _cfmt(e), _cfmt(f), _cfmt(g), _cfmt(h), _cfmt(i), _cfmt(j)); \ _cfmt_fn(to)(to, _fm, c, d, e, f, g, h, i, j); free(_fm); } while (0) -#define c_printf_11(to, fmt, c, d, e, f, g, h, i, j, k) \ +#define c_print_11(to, fmt, c, d, e, f, g, h, i, j, k) \ do { char _tm[_cfmt_bn][_cfmt_sn], _tn=0, *_fm = _cfmt_conv(9, fmt, _cfmt(c), _cfmt(d), _cfmt(e), _cfmt(f), _cfmt(g), _cfmt(h), _cfmt(i), _cfmt(j), _cfmt(k)); \ _cfmt_fn(to)(to, _fm, c, d, e, f, g, h, i, j, k); free(_fm); } while (0) -#define c_printf_12(to, fmt, c, d, e, f, g, h, i, j, k, m) \ +#define c_print_12(to, fmt, c, d, e, f, g, h, i, j, k, m) \ do { char _tm[_cfmt_bn][_cfmt_sn], _tn=0, *_fm = _cfmt_conv(10, fmt, _cfmt(c), _cfmt(d), _cfmt(e), _cfmt(f), _cfmt(g), _cfmt(h), _cfmt(i), _cfmt(j), _cfmt(k), _cfmt(m)); \ _cfmt_fn(to)(to, _fm, c, d, e, f, g, h, i, j, k, m); free(_fm); } while (0) -#define c_printf_13(to, fmt, c, d, e, f, g, h, i, j, k, m, n) \ +#define c_print_13(to, fmt, c, d, e, f, g, h, i, j, k, m, n) \ do { char _tm[_cfmt_bn][_cfmt_sn], _tn=0, *_fm = _cfmt_conv(11, fmt, _cfmt(c), _cfmt(d), _cfmt(e), _cfmt(f), _cfmt(g), _cfmt(h), _cfmt(i), _cfmt(j), _cfmt(k), _cfmt(m), _cfmt(n)); \ _cfmt_fn(to)(to, _fm, c, d, e, f, g, h, i, j, k, m, n); free(_fm); } while (0) -#define c_printf_14(to, fmt, c, d, e, f, g, h, i, j, k, m, n, o) \ +#define c_print_14(to, fmt, c, d, e, f, g, h, i, j, k, m, n, o) \ do { char _tm[_cfmt_bn][_cfmt_sn], _tn=0, *_fm = _cfmt_conv(12, fmt, _cfmt(c), _cfmt(d), _cfmt(e), _cfmt(f), _cfmt(g), _cfmt(h), _cfmt(i), _cfmt(j), _cfmt(k), _cfmt(m), _cfmt(n), _cfmt(o)); \ _cfmt_fn(to)(to, _fm, c, d, e, f, g, h, i, j, k, m, n, o); free(_fm); } while (0) -#define c_printf_15(to, fmt, c, d, e, f, g, h, i, j, k, m, n, o, p) \ +#define c_print_15(to, fmt, c, d, e, f, g, h, i, j, k, m, n, o, p) \ do { char _tm[_cfmt_bn][_cfmt_sn], _tn=0, *_fm = _cfmt_conv(13, fmt, _cfmt(c), _cfmt(d), _cfmt(e), _cfmt(f), _cfmt(g), _cfmt(h), _cfmt(i), _cfmt(j), _cfmt(k), _cfmt(m), _cfmt(n), _cfmt(o), _cfmt(p)); \ _cfmt_fn(to)(to, _fm, c, d, e, f, g, h, i, j, k, m, n, o, p); free(_fm); } while (0) -#define c_printf_16(to, fmt, c, d, e, f, g, h, i, j, k, m, n, o, p, q) \ +#define c_print_16(to, fmt, c, d, e, f, g, h, i, j, k, m, n, o, p, q) \ do { char _tm[_cfmt_bn][_cfmt_sn], _tn=0, *_fm = _cfmt_conv(14, fmt, _cfmt(c), _cfmt(d), _cfmt(e), _cfmt(f), _cfmt(g), _cfmt(h), _cfmt(i), _cfmt(j), _cfmt(k), _cfmt(m), _cfmt(n), _cfmt(o), _cfmt(p), _cfmt(p)); \ _cfmt_fn(to)(to, _fm, c, d, e, f, g, h, i, j, k, m, n, o, p, q); free(_fm); } while (0) -#define c_printf_17(to, fmt, c, d, e, f, g, h, i, j, k, m, n, o, p, q, r) \ +#define c_print_17(to, fmt, c, d, e, f, g, h, i, j, k, m, n, o, p, q, r) \ do { char _tm[_cfmt_bn][_cfmt_sn], _tn=0, *_fm = _cfmt_conv(15, fmt, _cfmt(c), _cfmt(d), _cfmt(e), _cfmt(f), _cfmt(g), _cfmt(h), _cfmt(i), _cfmt(j), _cfmt(k), _cfmt(m), _cfmt(n), _cfmt(o), _cfmt(p), _cfmt(p), _cfmt(r)); \ _cfmt_fn(to)(to, _fm, c, d, e, f, g, h, i, j, k, m, n, o, p, q, r); free(_fm); } while (0) -#define c_printf_18(to, fmt, c, d, e, f, g, h, i, j, k, m, n, o, p, q, r, s) \ +#define c_print_18(to, fmt, c, d, e, f, g, h, i, j, k, m, n, o, p, q, r, s) \ do { char _tm[_cfmt_bn][_cfmt_sn], _tn=0, *_fm = _cfmt_conv(16, fmt, _cfmt(c), _cfmt(d), _cfmt(e), _cfmt(f), _cfmt(g), _cfmt(h), _cfmt(i), _cfmt(j), _cfmt(k), _cfmt(m), _cfmt(n), _cfmt(o), _cfmt(p), _cfmt(p), _cfmt(r), _cfmt(s)); \ _cfmt_fn(to)(to, _fm, c, d, e, f, g, h, i, j, k, m, n, o, p, q, r, s); free(_fm); } while (0) @@ -200,7 +201,7 @@ _cfmt_conv(int nargs, const char *fmt, ...) { if (fmt[1] == '{') { ++fmt; break; } if (fmt[1] != ':' && fmt[1] != '}') break; if (++n > nargs) { - fprintf(stderr, "ERROR: c_printf() missing argument(%d): %s\n", n, fmt0); + fprintf(stderr, "ERROR: c_print() missing argument(%d): %s\n", n, fmt0); break; } *p++ = '%'; @@ -218,7 +219,7 @@ _cfmt_conv(int nargs, const char *fmt, ...) { } while (ch); va_end(args); if (n < nargs) - fprintf(stderr, "WARNING: c_printf() %d superfluous argument(s): %s\n", nargs - n, fmt0); + fprintf(stderr, "WARNING: c_print() %d superfluous argument(s): %s\n", nargs - n, fmt0); return fmt1; } -- cgit v1.2.3