Skip to content

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

@nooriro

Description

@nooriro

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-streamArea: anstreamC-bugCategory: Things not working as expected

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions