Locale.cpp revision 309124
1#include "llvm/Support/Locale.h"
2#include "llvm/ADT/StringRef.h"
3#include "llvm/Config/llvm-config.h"
4#include "llvm/Support/Unicode.h"
5
6namespace llvm {
7namespace sys {
8namespace locale {
9
10int columnWidth(StringRef Text) {
11#if LLVM_ON_WIN32
12  return Text.size();
13#else
14  return llvm::sys::unicode::columnWidthUTF8(Text);
15#endif
16}
17
18bool isPrint(int UCS) {
19#if LLVM_ON_WIN32
20  // Restrict characters that we'll try to print to the lower part of ASCII
21  // except for the control characters (0x20 - 0x7E). In general one can not
22  // reliably output code points U+0080 and higher using narrow character C/C++
23  // output functions in Windows, because the meaning of the upper 128 codes is
24  // determined by the active code page in the console.
25  return ' ' <= UCS && UCS <= '~';
26#else
27  return llvm::sys::unicode::isPrintable(UCS);
28#endif
29}
30
31} // namespace locale
32} // namespace sys
33} // namespace llvm
34