Skip to content

Curl response without newline renders badly with bash #7226

@svartkanin

Description

@svartkanin

Bug Report

Current Behavior

I have a server running on localhost that with a simple route

#[get("/")]
fn hello() -> String {
    "Hello world".to_string()
}

This returns the string "Hello world" without a newline.
The output of this looks like

/tmp $ curl -X GET http://127.0.0.1:8000
Hello world/tmp $ 

However, when I'm in a git repo it malforms the output

~/Git/test  master$ curl -X GET http://127.0.0.1:8000
~/Git/test  master$   master$ 

Expected Behavior

I assume the renderer gets confused when the git branch is part of the prompt, it should output the same response as when not in a git branch

Environment

starship 1.24.2
tag:v1.24.2
commit_hash:33f7077fb
build_time:2025-12-30 19:43:26 +00:00
build_env:rustc 1.92.0 (ded5c06cf 2025-12-08) (Arch Linux rust 1:1.92.0-1),
Shell type: bash
Bash version: GNU bash, version 5.3.9(1)-release (x86_64-pc-linux-gnu)
Terminal emulator: kitty
Operating System: Arch

Relevant Shell Configuration

That's all that's needed to reproduce the problem

eval "$(starship init bash)"

Starship Configuration

# https://starship.rs/config/

format = """
$python\
$directory\
$git_branch\
$git_state\
[\\$](fg:green) """

# Disable the blank line at the start of the prompt
add_newline = false

# You can also replace your username with a neat symbol like   or disable this
# and use the os module below
[username]
show_always = true
style_user = "fg:#99ff99"
style_root = "bg:#ff4d4d"
format = '[$user]($style)'
disabled = true

[directory]
truncation_length = 20
truncate_to_repo = false
truncation_symbol = ""
style = "fg:bright-blue"
format = "[$path ]($style)[$read_only]($read_only_style)"

[git_branch]
symbol = ""
style = "bold bright-purple"
format = '[$symbol $branch]($style)'

[git_status]
style = "fg:#FCA17D"
format = '[$all_status$ahead_behind ]($style)'
disabled = true

[git_state]
format = '[\($state( $progress_current / $progress_total)\)]($style) '

[c]
style = "bg:#86BBD8"
format = '[ ($version) ]($style)'

[elixir]
style = "bg:#86BBD8"
format = '[($version) ]($style)'

[golang]
style = "fg:#86BBD8"
format = '[($version) ]($style)'

[gradle]
style = "fg:#86BBD8"
format = '[($version) ]($style)'

[haskell]
style = "fg:#86BBD8"
format = '[($version) ]($style)'

[java]
style = "fg:#86BBD8"
format = '[($version) ]($style)'

[kotlin]
style = "fg:#86BBD8"
format = '[($version) ]($style)'

[julia]
style = "fg:#86BBD8"
format = '[($version) ]($style)'

[nodejs]
style = "fg:#86BBD8"
format = '[($version) ]($style)'

[nim]
style = "fg:#86BBD8"
format = '[($version) ]($style)'

[python]
style = "fg:#86BBD8"
format = '[\($virtualenv\) ]($style)'

[rust]
style = "fg:#86BBD8"
format = '[($version) ]($style)'

[scala]
style = "fg:#86BBD8"
format = '[($version) ]($style)'

Metadata

Metadata

Assignees

No one assigned

    Labels

    🐛 bugSomething isn't working as expected.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions