289
289
< span id ="284 "> 284</ span >
290
290
< span id ="285 "> 285</ span >
291
291
< span id ="286 "> 286</ span >
292
- < span id ="287 "> 287</ span >
293
- < span id ="288 "> 288</ span >
294
- < span id ="289 "> 289</ span >
295
- < span id ="290 "> 290</ span >
296
- < span id ="291 "> 291</ span >
297
- < span id ="292 "> 292</ span >
298
- < span id ="293 "> 293</ span >
299
- < span id ="294 "> 294</ span >
300
- < span id ="295 "> 295</ span >
301
- < span id ="296 "> 296</ span >
302
- < span id ="297 "> 297</ span >
303
- < span id ="298 "> 298</ span >
304
- < span id ="299 "> 299</ span >
305
- < span id ="300 "> 300</ span >
306
- < span id ="301 "> 301</ span >
307
- < span id ="302 "> 302</ span >
308
- < span id ="303 "> 303</ span >
309
- < span id ="304 "> 304</ span >
310
- < span id ="305 "> 305</ span >
311
- < span id ="306 "> 306</ span >
312
- < span id ="307 "> 307</ span >
313
- < span id ="308 "> 308</ span >
314
- < span id ="309 "> 309</ span >
315
292
</ pre > < pre class ="rust "> < code > < span class ="comment "> // * This file is part of the uutils coreutils package.</ span >
316
293
< span class ="comment "> // *</ span >
317
294
< span class ="comment "> // * (c) 2014 Vsevolod Velichko <torkvemada@sorokdva.net></ span >
325
302
< span class ="kw "> extern</ span > < span class ="kw "> crate</ span > < span class ="ident "> uucore</ span > ;
326
303
327
304
< span class ="kw "> use</ span > < span class ="ident "> clap</ span > ::{< span class ="ident "> crate_version</ span > , < span class ="ident "> Arg</ span > , < span class ="ident "> ArgMatches</ span > , < span class ="ident "> Command</ span > };
328
- < span class ="kw "> use</ span > < span class ="ident "> std::path::Component</ span > ;
329
305
< span class ="kw "> use</ span > < span class ="ident "> std</ span > ::{
330
306
< span class ="ident "> io</ span > ::{< span class ="ident "> stdout</ span > , < span class ="ident "> Write</ span > },
331
307
< span class ="ident "> path</ span > ::{< span class ="ident "> Path</ span > , < span class ="ident "> PathBuf</ span > },
332
308
};
333
309
< span class ="kw "> use</ span > < span class ="ident "> uucore::error::UClapError</ span > ;
310
+ < span class ="kw "> use</ span > < span class ="ident "> uucore::fs::make_path_relative_to</ span > ;
334
311
< span class ="kw "> use</ span > < span class ="ident "> uucore</ span > ::{
335
312
< span class ="ident "> display</ span > ::{< span class ="ident "> print_verbatim</ span > , < span class ="ident "> Quotable</ span > },
336
313
< span class ="ident "> error</ span > ::{< span class ="ident "> FromIo</ span > , < span class ="ident "> UResult</ span > },
588
565
) -> < span class ="ident "> PathBuf</ span > {
589
566
< span class ="kw "> if</ span > < span class ="kw "> let</ span > < span class ="prelude-val "> Some</ span > (< span class ="ident "> base</ span > ) < span class ="op "> =</ span > < span class ="ident "> relative_base</ span > {
590
567
< span class ="kw "> if</ span > < span class ="ident "> path</ span > .< span class ="ident "> starts_with</ span > (< span class ="ident "> base</ span > ) {
591
- < span class ="ident "> make_path_relative_to</ span > (< span class ="kw-2 " > & </ span > < span class =" ident "> path</ span > , < span class ="ident "> relative_to</ span > .< span class ="ident "> unwrap_or</ span > (< span class ="ident "> base</ span > ))
568
+ < span class ="ident "> make_path_relative_to</ span > (< span class ="ident "> path</ span > , < span class ="ident "> relative_to</ span > .< span class ="ident "> unwrap_or</ span > (< span class ="ident "> base</ span > ))
592
569
} < span class ="kw "> else</ span > {
593
570
< span class ="ident "> path</ span >
594
571
}
595
572
} < span class ="kw "> else</ span > < span class ="kw "> if</ span > < span class ="kw "> let</ span > < span class ="prelude-val "> Some</ span > (< span class ="ident "> to</ span > ) < span class ="op "> =</ span > < span class ="ident "> relative_to</ span > {
596
- < span class ="ident "> make_path_relative_to</ span > (< span class ="kw-2 " > & </ span > < span class =" ident "> path</ span > , < span class ="ident "> to</ span > )
573
+ < span class ="ident "> make_path_relative_to</ span > (< span class ="ident "> path</ span > , < span class ="ident "> to</ span > )
597
574
} < span class ="kw "> else</ span > {
598
575
< span class ="ident "> path</ span >
599
576
}
600
577
}
601
-
602
- < span class ="doccomment "> /// Converts absolute `path` to be relative to absolute `to` path.</ span >
603
- < span class ="kw "> fn</ span > < span class ="ident "> make_path_relative_to</ span > (< span class ="ident "> path</ span > : < span class ="kw-2 "> &</ span > < span class ="ident "> Path</ span > , < span class ="ident "> to</ span > : < span class ="kw-2 "> &</ span > < span class ="ident "> Path</ span > ) -> < span class ="ident "> PathBuf</ span > {
604
- < span class ="kw "> let</ span > < span class ="ident "> common_prefix_size</ span > < span class ="op "> =</ span > < span class ="ident "> path</ span >
605
- .< span class ="ident "> components</ span > ()
606
- .< span class ="ident "> zip</ span > (< span class ="ident "> to</ span > .< span class ="ident "> components</ span > ())
607
- .< span class ="ident "> take_while</ span > (< span class ="op "> |</ span > (< span class ="ident "> first</ span > , < span class ="ident "> second</ span > )< span class ="op "> |</ span > < span class ="ident "> first</ span > < span class ="op "> ==</ span > < span class ="ident "> second</ span > )
608
- .< span class ="ident "> count</ span > ();
609
- < span class ="kw "> let</ span > < span class ="ident "> path_suffix</ span > < span class ="op "> =</ span > < span class ="ident "> path</ span >
610
- .< span class ="ident "> components</ span > ()
611
- .< span class ="ident "> skip</ span > (< span class ="ident "> common_prefix_size</ span > )
612
- .< span class ="ident "> map</ span > (< span class ="op "> |</ span > < span class ="ident "> x</ span > < span class ="op "> |</ span > < span class ="ident "> x</ span > .< span class ="ident "> as_os_str</ span > ());
613
- < span class ="kw "> let</ span > < span class ="kw-2 "> mut</ span > < span class ="ident "> components</ span > : < span class ="ident "> Vec</ span > < span class ="op "> <</ span > < span class ="kw "> _</ span > < span class ="op "> ></ span > < span class ="op "> =</ span > < span class ="ident "> to</ span >
614
- .< span class ="ident "> components</ span > ()
615
- .< span class ="ident "> skip</ span > (< span class ="ident "> common_prefix_size</ span > )
616
- .< span class ="ident "> map</ span > (< span class ="op "> |</ span > < span class ="kw "> _</ span > < span class ="op "> |</ span > < span class ="ident "> Component::ParentDir</ span > .< span class ="ident "> as_os_str</ span > ())
617
- .< span class ="ident "> chain</ span > (< span class ="ident "> path_suffix</ span > )
618
- .< span class ="ident "> collect</ span > ();
619
- < span class ="kw "> if</ span > < span class ="ident "> components</ span > .< span class ="ident "> is_empty</ span > () {
620
- < span class ="ident "> components</ span > .< span class ="ident "> push</ span > (< span class ="ident "> Component::CurDir</ span > .< span class ="ident "> as_os_str</ span > ());
621
- }
622
- < span class ="ident "> components</ span > .< span class ="ident "> iter</ span > ().< span class ="ident "> collect</ span > ()
623
- }
624
578
</ code > </ pre > </ div >
625
579
</ section > </ div > </ main > < div id ="rustdoc-vars " data-root-path ="../../ " data-current-crate ="uu_realpath " data-themes ="ayu,dark,light " data-resource-suffix ="" data-rustdoc-version ="1.62.1 (e092d0b6b 2022-07-16) " > </ div >
626
580
</ body > </ html >
0 commit comments