diff options
author | Patrik Nyblom <[email protected]> | 2013-02-13 12:24:34 +0100 |
---|---|---|
committer | Patrik Nyblom <[email protected]> | 2013-02-18 11:49:11 +0100 |
commit | bfe9aeb47b494ec4243549340f9abf2a246e35a0 (patch) | |
tree | 540315e37599a07e4f52aceeadd8d1d0c0856e83 /erts/emulator/sys/common | |
parent | 1eb56b8359fdc2f695f7439d5343330f3d5a5692 (diff) | |
download | otp-bfe9aeb47b494ec4243549340f9abf2a246e35a0.tar.gz otp-bfe9aeb47b494ec4243549340f9abf2a246e35a0.tar.bz2 otp-bfe9aeb47b494ec4243549340f9abf2a246e35a0.zip |
Add +pc {latin1|unicode} switch and io:printable_range/0
This is the base for implementing configurable
~tp printouts, so that the user can define which
characters to view as actually printable in the shell and
by io_lib:format.
The functionality is neither documented nor used in this commit
Diffstat (limited to 'erts/emulator/sys/common')
-rw-r--r-- | erts/emulator/sys/common/erl_sys_common_misc.c | 16 |
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__) |