SUMMARY Extra line endings in the integrated console output window STEPS TO REPRODUCE 1. Run ctest from CMake in build directory with test. OBSERVED RESULT I see extra line ending in the output, like: ``` Test project /path/to Start 1: test.funcs.qt 1/10 Test #1: test.funcs.qt .................... Passed 0.01 sec Start 2: test.funcs.stl 2/10 Test #2: test.funcs.stl ................... Passed 0.00 sec Start 3: test.md_parser.qt 3/10 Test #3: test.md_parser.qt ................ Passed 0.06 sec Start 4: test.md_parser.stl 4/10 Test #4: test.md_parser.stl ............... Passed 0.07 sec Start 5: test.md_parser.commonmark.qt 5/10 Test #5: test.md_parser.commonmark.qt ..... Passed 0.12 sec Start 6: test.md_parser.commonmark.stl 6/10 Test #6: test.md_parser.commonmark.stl .... Passed 0.15 sec Start 7: test.md_parser.gfm.qt 7/10 Test #7: test.md_parser.gfm.qt ............ Passed 0.01 sec Start 8: test.md_parser.gfm.stl 8/10 Test #8: test.md_parser.gfm.stl ........... Passed 0.01 sec Start 9: test.internal_string.qt 9/10 Test #9: test.internal_string.qt .......... Passed 0.01 sec Start 10: test.internal_string.stl 10/10 Test #10: test.internal_string.stl ......... Passed 0.00 sec 100% tests passed, 0 tests failed out of 10 Total Test time (real) = 0.44 sec ``` EXPECTED RESULT In the standard console I see text like: ``` Test project /path/to Start 1: test.funcs.qt 1/10 Test #1: test.funcs.qt .................... Passed 0.01 sec Start 2: test.funcs.stl 2/10 Test #2: test.funcs.stl ................... Passed 0.00 sec Start 3: test.md_parser.qt 3/10 Test #3: test.md_parser.qt ................ Passed 0.04 sec Start 4: test.md_parser.stl 4/10 Test #4: test.md_parser.stl ............... Passed 0.05 sec Start 5: test.md_parser.commonmark.qt 5/10 Test #5: test.md_parser.commonmark.qt ..... Passed 0.11 sec Start 6: test.md_parser.commonmark.stl 6/10 Test #6: test.md_parser.commonmark.stl .... Passed 0.15 sec Start 7: test.md_parser.gfm.qt 7/10 Test #7: test.md_parser.gfm.qt ............ Passed 0.01 sec Start 8: test.md_parser.gfm.stl 8/10 Test #8: test.md_parser.gfm.stl ........... Passed 0.01 sec Start 9: test.internal_string.qt 9/10 Test #9: test.internal_string.qt .......... Passed 0.00 sec Start 10: test.internal_string.stl 10/10 Test #10: test.internal_string.stl ......... Passed 0.00 sec 100% tests passed, 0 tests failed out of 10 Total Test time (real) = 0.39 sec ``` SOFTWARE/OS VERSIONS Windows: macOS: Linux/KDE Plasma: Kubuntu 22.04 LTS (available in About System) KDE Plasma Version: 5.25.5 KDE Frameworks Version: 5.98.0 Qt Version: 5.15.3
Created attachment 157055 [details] Screenshot of the console output window
To clarify: The output window is the result if a user action with execution mode "Collect output" is activated. I could reproduce this with current master version. I guess cmake is adding some control characters to the output which are displayed as newline in the output.
Hi. I investigated this question a little. Look, you collect data from process in: void KrActionProc::addStdout() { if (_output) { _output->addStdout(QString::fromLocal8Bit(_proc->readAllStandardOutput().data())); } } I.e. you do readAllStandardOutput(). And this method always ends data with "\n", even if process didn't write "\n". At least on Linux it's so. In other words consecutive calls KrActionProc::addStdout() will add extra "\n" after each call. This is the root of the problem. Fix seems quite simple, but I'm not sure. Looks like all is needed to remove the last "\n" in each readAllStandardOutput().
I'm wrong in prev. comment... Investigating.
A possibly relevant merge request was started @ https://invent.kde.org/utilities/krusader/-/merge_requests/170
Git commit 34a01dbe6502cf5e00e7e56ed36315a30f5a82cd by Igor Mironchik. Committed on 14/08/2025 at 03:41. Pushed by imironchik into branch 'master'. Fix extra lines in integrated console output window. M +3 -3 app/UserAction/kraction.cpp https://invent.kde.org/utilities/krusader/-/commit/34a01dbe6502cf5e00e7e56ed36315a30f5a82cd