Skip to content

Commit e49f0b1

Browse files
committed
Escape space in dep file
1 parent d2fe23a commit e49f0b1

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/main.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ pub mod utils;
1010
use ext::path::PathBufExt;
1111
use scripts::base::ArchiveContent;
1212

13+
fn escape_dep_string(s: &str) -> String {
14+
s.replace("\\", "\\\\").replace(" ", "\\ ")
15+
}
16+
1317
fn get_encoding(
1418
arg: &args::Arg,
1519
builder: &Box<dyn scripts::ScriptBuilder + Send + Sync>,
@@ -2609,10 +2613,10 @@ pub fn pack_archive_v2(
26092613
.map_err(|e| anyhow::anyhow!("Failed to create dep file {}: {}", dep_file, e))?;
26102614
let mut df = std::io::BufWriter::new(df);
26112615
use std::io::Write;
2612-
write!(df, "{}:", output)
2616+
write!(df, "{}:", escape_dep_string(&output))
26132617
.map_err(|e| anyhow::anyhow!("Failed to write to dep file {}: {}", dep_file, e))?;
26142618
for f in &files {
2615-
write!(df, " {}", f)
2619+
write!(df, " {}", escape_dep_string(f))
26162620
.map_err(|e| anyhow::anyhow!("Failed to write to dep file {}: {}", dep_file, e))?;
26172621
}
26182622
writeln!(df)
@@ -3304,9 +3308,9 @@ fn main() {
33043308
let mut df = std::io::BufWriter::new(df);
33053309
use std::io::Write;
33063310
for (fname, deps) in lock.iter() {
3307-
write!(df, "{}:", fname).unwrap();
3311+
write!(df, "{}:", escape_dep_string(fname)).unwrap();
33083312
for d in deps {
3309-
write!(df, " {}", d).unwrap();
3313+
write!(df, " {}", escape_dep_string(d)).unwrap();
33103314
}
33113315
writeln!(df).unwrap();
33123316
}

0 commit comments

Comments
 (0)