From 4168bc184e3e15ee76485e49d3bc5852b90f27de Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 13 Feb 2017 13:43:01 -0500 Subject: Help: Improve execute_process ENCODING option documentation Spell out the options in a definition list and document each one. --- Help/command/execute_process.rst | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/Help/command/execute_process.rst b/Help/command/execute_process.rst index 71233d9..5a77735 100644 --- a/Help/command/execute_process.rst +++ b/Help/command/execute_process.rst @@ -70,10 +70,21 @@ Options: ``ENCODING `` On Windows, the encoding that is used to decode output from the process. Ignored on other platforms. - Valid encoding names are: ``AUTO`` (the default), ``NONE``, ``UTF8``, - ``ANSI`` and ``OEM``. - ``AUTO`` encoding means current active console's codepage will be used - or if that isn't available then ``ANSI`` codepage will be used. + Valid encoding names are: + + ``NONE`` + Perform no decoding. This assumes that the process output is encoded + in the same way as CMake's internal encoding (UTF-8). + ``AUTO`` + Use the current active console's codepage or if that isn't + available then use ANSI. + This is the default. + ``ANSI`` + Use the ANSI codepage. + ``OEM`` + Use the original equipment manufacturer (OEM) code page. + ``UTF8`` + Use the UTF-8 codepage. If more than one ``OUTPUT_*`` or ``ERROR_*`` option is given for the same pipe the precedence is not specified. -- cgit v0.12 From 07c3380a6e2a09b7e5976ddbacf385b8b4cde2cd Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 13 Feb 2017 13:49:14 -0500 Subject: execute_process: Restore no-decoding default behavior Since commit v3.8.0-rc1~232^2 (execute_process: Add ENCODING option for Windows child process output, 2016-11-23) we decode child process output using the console's active codepage by default. This differs from previous versions of CMake and is therefore incompatible. Changing this default will require a policy, so for now revert the default behavior back to performing no decoding. Reported-by: Nils Gladitz --- Help/command/execute_process.rst | 2 +- Source/cmExecuteProcessCommand.cxx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Help/command/execute_process.rst b/Help/command/execute_process.rst index 5a77735..d617243 100644 --- a/Help/command/execute_process.rst +++ b/Help/command/execute_process.rst @@ -75,10 +75,10 @@ Options: ``NONE`` Perform no decoding. This assumes that the process output is encoded in the same way as CMake's internal encoding (UTF-8). + This is the default. ``AUTO`` Use the current active console's codepage or if that isn't available then use ANSI. - This is the default. ``ANSI`` Use the ANSI codepage. ``OEM`` diff --git a/Source/cmExecuteProcessCommand.cxx b/Source/cmExecuteProcessCommand.cxx index eb26a50..92cdf64 100644 --- a/Source/cmExecuteProcessCommand.cxx +++ b/Source/cmExecuteProcessCommand.cxx @@ -47,7 +47,7 @@ bool cmExecuteProcessCommand::InitialPass(std::vector const& args, std::string error_variable; std::string result_variable; std::string working_directory; - cmProcessOutput::Encoding encoding = cmProcessOutput::Auto; + cmProcessOutput::Encoding encoding = cmProcessOutput::None; for (size_t i = 0; i < args.size(); ++i) { if (args[i] == "COMMAND") { doing_command = true; -- cgit v0.12