rust-cli / rust-cli/anstyle

ANSI color is not retained across multiple `print(ln)!`'s in Windows legacy console

Open
#230 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-stream C-bug
Dominant language
HTML
Stars
171
Forks
44
Avg merge
2h 34m
Merged PRs (30d)
6

Description

Cargo.toml
[package]
name = "anstream-test"
version = "0.1.0"
edition = "2021"

[dependencies]
anstream = "0.6.18"
src/main.rs
use anstream::{print, println};

fn main() {
    print!("\x1b[90m(print!) This text is displayed in gray.\n");
    print!("(print!) This text should also be displayed in gray.\n");
    println!("\x1b[90m(println!) This text is displayed in gray.");
    println!("(println!) This text should also be displayed in gray.\x1b[0m");
}
Steps to reproduce

Run cargo run in CMD/PowerShell with 'Legacy Console mode' enabled.

anstream-win-legacyconsole-01-241121
Expected result

All the lines should be displayed in gray, just like in the non-legacy Windows Console.

anstream-win-legacyconsole-02-241121 anstream-win-legacyconsole-03-241121
Actual result

Only the lines that output \x1b[90m are displayed in gray (1st and 3rd lines).

anstream-win-legacyconsole-04-241121
Environment
  • Windows 10 22H2 Home x64 10.0.19045.5011
  • Visual Studio Community 2022 17.11.5 / Windows 11 SDK 10.0.26100.0
  • Default host: x86_64-pc-windows-msvc
  • Active toolchain: stable-x86_64-pc-windows-msvc (default) / rustc 1.82.0 (f6e511eec 2024-10-15)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Begin with the Cargo.toml and src/main.rs reproduction on Windows with Legacy Console mode enabled, then trace anstream's handling of ANSI output for that console. Done means the reproduced print! and println! lines retain gray coloring across successive calls, while behavior in the non-legacy console remains correct.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli, operating-systems
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.