@@ -10,6 +10,10 @@ pub mod utils;
1010use ext:: path:: PathBufExt ;
1111use scripts:: base:: ArchiveContent ;
1212
13+ fn escape_dep_string ( s : & str ) -> String {
14+ s. replace ( "\\ " , "\\ \\ " ) . replace ( " " , "\\ " )
15+ }
16+
1317fn 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