replace space to proper url encoding

This commit is contained in:
Artemiy 2025-03-24 15:33:54 +03:00
parent 7c0d269279
commit d787bb7d0f

View file

@ -247,12 +247,14 @@ pub fn terminal_file_link<'a>(
canonical_path: &str,
color: Color,
) -> io::Result<()> {
let encoded_spaces_canonical_path = encode_spaces(canonical_path);
writer
.stdout()
.queue(SetForegroundColor(color))?
.queue(SetAttribute(Attribute::Underlined))?;
writer.stdout().write_all(b"\x1b]8;;file://")?;
writer.stdout().write_all(canonical_path.as_bytes())?;
writer.stdout().write_all(encoded_spaces_canonical_path.as_bytes())?;
writer.stdout().write_all(b"\x1b\\")?;
// Only this part is visible.
writer.write_str(path)?;
@ -265,6 +267,11 @@ pub fn terminal_file_link<'a>(
Ok(())
}
fn encode_spaces(path: &str) -> String {
path.replace(" ", "%20")
}
pub fn write_ansi(output: &mut Vec<u8>, command: impl Command) {
struct FmtWriter<'a>(&'a mut Vec<u8>);