Skip to content

fix(run): Printing a new line to avoid overwriting error code after \r - #17373

Merged
0xPoe merged 1 commit into
rust-lang:masterfrom
Suryansh-Dey:newline
Aug 27, 2026
Merged

fix(run): Printing a new line to avoid overwriting error code after \r#17373
0xPoe merged 1 commit into
rust-lang:masterfrom
Suryansh-Dey:newline

Conversation

@Suryansh-Dey

@Suryansh-Dey Suryansh-Dey commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

What does this PR try to resolve?

Closes #17343
Changes:
Added newline using writeln!(gctx.shell().err());
Reason:
Could have used format!("\n{err}") but if there's an in-progress status line, gctx.shell().err() would erase it then print a newline. If you want I can switch to format option but this feels practically safer.

How to test and review this PR?

  • Run cargo test -p cargo --test testsuite -- run::exit_code run::exit_code_verbose And both the tests passes.
  • Make a program in windows
fn main() {
    print!("hewwo\r");
    std::process::exit(1);
}

then run cargo run. It prints error message just below.
image
(Compiling for windows almost killed my laptop)

Before (current cargo on windows)

image

@rustbot rustbot added A-cli Area: Command-line interface, option parsing, etc. Command-run S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 18, 2026
@rustbot

rustbot commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator

r? @epage

rustbot has assigned @epage.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: @epage, @weihanglo
  • @epage, @weihanglo expanded to epage, weihanglo
  • Random selection from epage, weihanglo

Comment thread src/bin/cargo/commands/run.rs Outdated
@Suryansh-Dey

Suryansh-Dey commented Aug 20, 2026

Copy link
Copy Markdown
Contributor Author

Thank you, done!
Update: I can't understand how changing a comment is making an old test fail for a file I never touched!
I ran cargo clippy --workspace --all-targets --no-deps --keep-going locally and it passed!

@rustbot

This comment has been minimized.

@Suryansh-Dey

Copy link
Copy Markdown
Contributor Author

Fixed that clippy error (though was not part of this PR) but now I think this error is due to some recent updates and not related to my changes at all.

@Suryansh-Dey Suryansh-Dey Aug 21, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To get rid of clippy error from CI checks

View changes since the review

Comment thread crates/cargo-test-support/Cargo.toml
@rustbot

This comment has been minimized.

@Suryansh-Dey
Suryansh-Dey requested a review from epage August 21, 2026 05:01
@0xPoe 0xPoe changed the title Fix(error): Printing a new line to avoid overwriting error code after \r fix: Printing a new line to avoid overwriting error code after \r Aug 21, 2026

@0xPoe 0xPoe left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread tests/testsuite/run.rs
@0xPoe 0xPoe changed the title fix: Printing a new line to avoid overwriting error code after \r fix(run): Printing a new line to avoid overwriting error code after \r Aug 21, 2026
@Suryansh-Dey
Suryansh-Dey force-pushed the newline branch 2 times, most recently from 14f9db6 to 6482db5 Compare August 21, 2026 11:29
@Suryansh-Dey
Suryansh-Dey requested a review from 0xPoe August 21, 2026 13:12
@rustbot

This comment has been minimized.

@rustbot

This comment has been minimized.

@rustbot

rustbot commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

This PR was rebased onto a different master commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@0xPoe 0xPoe left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@0xPoe
0xPoe added this pull request to the merge queue Aug 27, 2026
Merged via the queue into rust-lang:master with commit e58ed55 Aug 27, 2026
29 checks passed
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Aug 27, 2026
@Suryansh-Dey
Suryansh-Dey deleted the newline branch August 28, 2026 06:39
rust-bors Bot pushed a commit to rust-lang/rust that referenced this pull request Sep 2, 2026
Update cargo submodule



26 commits in e8cb624d5701824f46a2ec5873cfd59ee3d2f66c..b2e9d5f9db3fb1c454ab84f10c16508984a266e2
2026-08-22 00:23:45 +0000 to 2026-09-02 14:49:16 +0000
- fix(parser): Resolve theoretical use-after-free (rust-lang/cargo#17428)
- fix(trim-paths)!: remove default scope from release profile (rust-lang/cargo#17424)
- fix(git): Use git's 429 retry, when available (rust-lang/cargo#17422)
- Avoid passing search path (-L) args when they are passed as --extern (rust-lang/cargo#17410)
- chore(deps): update crate-ci/typos action to v1.50.0 (rust-lang/cargo#17417)
- test: Move -Z onto its own line (rust-lang/cargo#17416)
- chore(triagebot): enable `@rustbot merge/delegate` (rust-lang/cargo#17415)
- Micro-optimize two package dir functions (rust-lang/cargo#17413)
- perf: Do not build SBOM if user has not set build.sbom (rust-lang/cargo#17412)
- feat(manifest)!: implement feature-metadata RFC3416 (rust-lang/cargo#15056)
- Cargo profiling improvements (rust-lang/cargo#17411)
- test(git): Remove gix override run in CI and the mode in code (rust-lang/cargo#17405)
- perf(git): Reduce extra work when using git-cli (rust-lang/cargo#17406)
- feat(resolver): Stabilize min-publish-age (rust-lang/cargo#17335)
- fix(git): Remove ref status update when showing progress  (rust-lang/cargo#17400)
- revert: refactor: move sysroot lookup to GlobalContext (rust-lang/cargo#17401)
- fix(run): Printing a new line to avoid overwriting error code after \r (rust-lang/cargo#17373)
- fix(trim-paths): custom workspace-relative member paths remap (rust-lang/cargo#17366)
- fix(home): rustdoc lint (rust-lang/cargo#17394)
- feat(diag): Stabilize cargo-lints  (rust-lang/cargo#17298)
- chore(deps): Update partial_ref to v0.3.4 (rust-lang/cargo#17392)
- refactor: remove ad-hoc `subslice_range` (rust-lang/cargo#17390)
- docs(changelog): move build-dir new layout to Changed (rust-lang/cargo#17387)
- chore(deps): update msrv (1 version) to v1.98 (rust-lang/cargo#17386)
- docs: Use mdbook admonitions (rust-lang/cargo#17384)
- chore(ci): exclude resolver-tests from intra doc link checks (rust-lang/cargo#17385)
@rustbot rustbot added this to the 1.100.0 milestone Sep 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-cli Area: Command-line interface, option parsing, etc. A-testing-cargo-itself Area: cargo's tests Command-run

Projects

None yet

Development

Successfully merging this pull request may close these issues.

cargo run "process didn't exit successfully" overwrites last line of a program that uses carriage return

4 participants