@@ -216,10 +216,12 @@ fn split_source(input: &str) -> CargoResult<Source<'_>> {
216
216
}
217
217
218
218
// No other choice than to consider this a shebang.
219
- let ( shebang , content ) = source
219
+ let newline_end = source
220
220
. content
221
- . split_once ( '\n' )
222
- . unwrap_or ( ( source. content , "" ) ) ;
221
+ . find ( '\n' )
222
+ . map ( |pos| pos + 1 )
223
+ . unwrap_or ( source. content . len ( ) ) ;
224
+ let ( shebang, content) = source. content . split_at ( newline_end) ;
223
225
source. shebang = Some ( shebang) ;
224
226
source. content = content;
225
227
}
@@ -394,7 +396,7 @@ time="0.1.25"
394
396
fn main() {}
395
397
"# ,
396
398
str![ [ r##"
397
- shebang: "#!/usr/bin/env cargo"
399
+ shebang: "#!/usr/bin/env cargo\n "
398
400
info: None
399
401
frontmatter: "[dependencies]\ntime=\"0.1.25\"\n"
400
402
content: "fn main() {}\n"
@@ -408,7 +410,7 @@ content: "fn main() {}\n"
408
410
assert_source (
409
411
"#!/usr/bin/env cargo\r \n ---\r \n [dependencies]\r \n time=\" 0.1.25\" \r \n ---\r \n fn main() {}" ,
410
412
str![ [ r##"
411
- shebang: "#!/usr/bin/env cargo\r"
413
+ shebang: "#!/usr/bin/env cargo\r\n "
412
414
info: ""
413
415
frontmatter: "[dependencies]\r\ntime=\"0.1.25\"\r\n"
414
416
content: "fn main() {}"
@@ -433,7 +435,7 @@ time="0.1.25"
433
435
fn main() {}
434
436
"# ,
435
437
str![ [ r##"
436
- shebang: "#!/usr/bin/env cargo"
438
+ shebang: "#!/usr/bin/env cargo\n "
437
439
info: None
438
440
frontmatter: None
439
441
content: " \n\n\n---\n[dependencies]\ntime=\"0.1.25\"\n---\n\n\nfn main() {}\n"
@@ -473,7 +475,7 @@ time="0.1.25"
473
475
474
476
fn main() {}"# ,
475
477
str![ [ r##"
476
- shebang: "#!/usr/bin/env cargo"
478
+ shebang: "#!/usr/bin/env cargo\n "
477
479
info: None
478
480
frontmatter: "[dependencies]\ntime=\"0.1.25\"\n"
479
481
content: "\nfn main() {}"
0 commit comments