Reactos
1//
2// cprintf.cpp
3//
4// Copyright (c) Microsoft Corporation. All rights reserved.
5//
6// The standard output functions, which perform formatted output to the
7// console.
8//
9#include <corecrt_internal_stdio_output.h>
10
11
12using namespace __crt_stdio_output;
13
14
15
16template <template <typename, typename> class Base, typename Character>
17static int __cdecl common_vcprintf(
18 unsigned __int64 const options,
19 Character const* const format,
20 __crt_cached_ptd_host& ptd,
21 va_list const arglist
22 )
23{
24 typedef output_processor<
25 Character,
26 console_output_adapter<Character>,
27 Base<Character, console_output_adapter<Character>>
28 > processor_type;
29
30 processor_type processor(
31 console_output_adapter<Character>(),
32 options,
33 format,
34 ptd,
35 arglist);
36
37 return processor.process();
38}
39
40extern "C" int __cdecl __conio_common_vcprintf(
41 unsigned __int64 const options,
42 char const* const format,
43 _locale_t const locale,
44 va_list const arglist
45 )
46{
47 __crt_cached_ptd_host ptd{locale};
48 return common_vcprintf<standard_base>(options, format, ptd, arglist);
49}
50
51extern "C" int __cdecl __conio_common_vcprintf_s(
52 unsigned __int64 const options,
53 char const* const format,
54 _locale_t const locale,
55 va_list const arglist
56 )
57{
58 __crt_cached_ptd_host ptd{locale};
59 return common_vcprintf<format_validation_base>(options, format, ptd, arglist);
60}
61
62extern "C" int __cdecl __conio_common_vcprintf_p(
63 unsigned __int64 const options,
64 char const* const format,
65 _locale_t const locale,
66 va_list const arglist
67 )
68{
69 __crt_cached_ptd_host ptd{locale};
70 return common_vcprintf<positional_parameter_base>(options, format, ptd, arglist);
71}
72
73extern "C" int __cdecl __conio_common_vcwprintf(
74 unsigned __int64 const options,
75 wchar_t const* const format,
76 _locale_t const locale,
77 va_list const arglist
78 )
79{
80 __crt_cached_ptd_host ptd{locale};
81 return common_vcprintf<standard_base>(options, format, ptd, arglist);
82}
83
84extern "C" int __cdecl __conio_common_vcwprintf_s(
85 unsigned __int64 const options,
86 wchar_t const* const format,
87 _locale_t const locale,
88 va_list const arglist
89 )
90{
91 __crt_cached_ptd_host ptd{locale};
92 return common_vcprintf<format_validation_base>(options, format, ptd, arglist);
93}
94
95extern "C" int __cdecl __conio_common_vcwprintf_p(
96 unsigned __int64 const options,
97 wchar_t const* const format,
98 _locale_t const locale,
99 va_list const arglist
100 )
101{
102 __crt_cached_ptd_host ptd{locale};
103 return common_vcprintf<positional_parameter_base>(options, format, ptd, arglist);
104}