• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //===----------------------------------------------------------------------===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 // Define a bunch of macros that can be used in the tests instead of
11 //  implementation defined assumptions:
12 //   - locale names
13 //   - floating point number string output
14 
15 #ifndef PLATFORM_SUPPORT_H
16 #define PLATFORM_SUPPORT_H
17 
18 // locale names
19 #ifdef _WIN32
20 // WARNING: Windows does not support UTF-8 codepages.
21 // Locales are "converted" using http://docs.moodle.org/dev/Table_of_locales
22 #define LOCALE_en_US_UTF_8     "English_United States.1252"
23 #define LOCALE_cs_CZ_ISO8859_2 "Czech_Czech Republic.1250"
24 #define LOCALE_fr_FR_UTF_8     "French_France.1252"
25 #define LOCALE_fr_CA_ISO8859_1 "French_Canada.1252"
26 #define LOCALE_ru_RU_UTF_8     "Russian_Russia.1251"
27 #define LOCALE_zh_CN_UTF_8     "Chinese_China.936"
28 #else
29 #define LOCALE_en_US_UTF_8     "en_US.UTF-8"
30 #define LOCALE_fr_FR_UTF_8     "fr_FR.UTF-8"
31 #ifdef __linux__
32 #define LOCALE_fr_CA_ISO8859_1 "fr_CA.ISO-8859-1"
33 #define LOCALE_cs_CZ_ISO8859_2 "cs_CZ.ISO-8859-2"
34 #else
35 #define LOCALE_fr_CA_ISO8859_1 "fr_CA.ISO8859-1"
36 #define LOCALE_cs_CZ_ISO8859_2 "cs_CZ.ISO8859-2"
37 #endif
38 #define LOCALE_ru_RU_UTF_8     "ru_RU.UTF-8"
39 #define LOCALE_zh_CN_UTF_8     "zh_CN.UTF-8"
40 #endif
41 
42 #include <stdio.h>
43 #include <stdlib.h>
44 #include <string>
45 #if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__)
46 #include <io.h> // _mktemp
47 #endif
48 
49 inline
50 std::string
get_temp_file_name()51 get_temp_file_name()
52 {
53    std::string s("temp.XXXXXX");
54 #if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__)
55    _mktemp(&s[0]);
56 #else
57    mktemp(&s[0]);
58 #endif
59    return s;
60 }
61 
62 #endif // PLATFORM_SUPPORT_H
63