aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/sys/common/erl_sys_common_misc.c
diff options
context:
space:
mode:
authorPatrik Nyblom <[email protected]>2013-02-22 12:06:41 +0100
committerPatrik Nyblom <[email protected]>2013-02-22 12:06:41 +0100
commit7215c49aff685e93765598cd428baf1d4320f752 (patch)
tree76409af3ed6abe7502af3aa438e47b1be98df1e3 /erts/emulator/sys/common/erl_sys_common_misc.c
parent14820e983856654e68e08244e4dfc689f0804fd8 (diff)
parent2a79b74ac371387ce338bacf979f9ca32447b302 (diff)
downloadotp-7215c49aff685e93765598cd428baf1d4320f752.tar.gz
otp-7215c49aff685e93765598cd428baf1d4320f752.tar.bz2
otp-7215c49aff685e93765598cd428baf1d4320f752.zip
Merge branch 'pan/unicode_printable_ranges'
* pan/unicode_printable_ranges: Adapt stdlib tests to ~tp detecting latin1 binaries Update primary bootstrap Make wx debugger use +pc flag when applicable Correct misspelled comments and space at lin ends Make ~tp output latin1 binaries as strings if possible Leave the +pc handling to io and io_lib_pretty Remove newly introduced warning in erlexec.c Make shell_SUITE:otp_10302 use +pc unicode when needed Fix io_proto_SUITE to handle the new io_lib_pretty:print Add testcase for +pc and io:printable_range/0 Make printing of UTF-8 in binaries behave like lists. Document +pc flag and io:printable_range/0 Add usage of and spec for io:printable_range/0 Add +pc {latin1|unicode} switch and io:printable_range/0 Fix some Unicode issues OTP-18084
Diffstat (limited to 'erts/emulator/sys/common/erl_sys_common_misc.c')
-rw-r--r--erts/emulator/sys/common/erl_sys_common_misc.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/erts/emulator/sys/common/erl_sys_common_misc.c b/erts/emulator/sys/common/erl_sys_common_misc.c
index 0b31c125e5..31ad3b82d5 100644
--- a/erts/emulator/sys/common/erl_sys_common_misc.c
+++ b/erts/emulator/sys/common/erl_sys_common_misc.c
@@ -49,10 +49,15 @@
static int filename_encoding = ERL_FILENAME_UNKNOWN;
static int filename_warning = ERL_FILENAME_WARNING_WARNING;
#if defined(__WIN32__) || defined(__DARWIN__)
-static int user_filename_encoding = ERL_FILENAME_UTF8; /* Default unicode on windows */
+/* Default unicode on windows and MacOS X */
+static int user_filename_encoding = ERL_FILENAME_UTF8;
#else
static int user_filename_encoding = ERL_FILENAME_LATIN1;
#endif
+/* This controls the heuristic in printing characters in shell and w/
+ io:format("~tp", ...) etc. */
+static int printable_character_set = ERL_PRINTABLE_CHARACTERS_LATIN1;
+
void erts_set_user_requested_filename_encoding(int encoding, int warning)
{
user_filename_encoding = encoding;
@@ -69,6 +74,15 @@ int erts_get_filename_warning_type(void)
return filename_warning;
}
+void erts_set_printable_characters(int range) {
+ /* Not an atomic */
+ printable_character_set = range;
+}
+
+int erts_get_printable_characters(void) {
+ return printable_character_set;
+}
+
void erts_init_sys_common_misc(void)
{
#if defined(__WIN32__)