diff options
author | Johnny Jazeix <jazeix@gmail.com> | 2021-09-18 16:52:28 (GMT) |
---|---|---|
committer | Johnny Jazeix <jazeix@gmail.com> | 2021-09-18 16:54:53 (GMT) |
commit | 0b4a56e64b52ac050e42192c635bd59527cd98b7 (patch) | |
tree | 58f5891fbbf3b16a96ce30234e81beb80751f5d0 | |
parent | e4ad87c5dd54cc79029bc592db7a3991212ffe4d (diff) | |
download | CMake-0b4a56e64b52ac050e42192c635bd59527cd98b7.zip CMake-0b4a56e64b52ac050e42192c635bd59527cd98b7.tar.gz CMake-0b4a56e64b52ac050e42192c635bd59527cd98b7.tar.bz2 |
cmake: -E cat stops when an empty file is encountered
Fixes: #22652
-rw-r--r-- | Source/cmcmd.cxx | 2 | ||||
-rw-r--r-- | Tests/RunCMake/CommandLine/RunCMakeTest.cmake | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx index 1e0f497..3e36f97 100644 --- a/Source/cmcmd.cxx +++ b/Source/cmcmd.cxx @@ -1068,6 +1068,8 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string> const& args, } else if (!cmSystemTools::FileExists(arg)) { cmSystemTools::Error(arg + ": no such file or directory (ignoring)"); return_value = 1; + } else if (cmSystemTools::FileLength(arg) == 0) { + // Ignore empty files, this is not an error } else { // Destroy console buffers to drop cout/cerr encoding transform. consoleBuf.reset(); diff --git a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake index cea5b1b..dc066f1 100644 --- a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake +++ b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake @@ -647,9 +647,10 @@ run_cmake_command(E_cat_directory file(WRITE "${out}/first_file.txt" "first file to append\n") file(WRITE "${out}/second_file.txt" "second file to append\n") +file(WRITE "${out}/empty_file.txt" "") file(WRITE "${out}/unicode_file.txt" "àéùç - 한국어") # Korean in Korean run_cmake_command(E_cat_good_cat - ${CMAKE_COMMAND} -E cat "${out}/first_file.txt" "${out}/second_file.txt" "${out}/unicode_file.txt") + ${CMAKE_COMMAND} -E cat "${out}/first_file.txt" "${out}/second_file.txt" "${out}/empty_file.txt" "${out}/unicode_file.txt") unset(out) run_cmake_command(E_cat_good_binary_cat |