@@ -418,32 +418,6 @@ static std::error_code rename_internal(HANDLE FromHandle, const Twine &To,
418
418
return std::error_code ();
419
419
}
420
420
421
- static std::error_code rename_handle (HANDLE Handle , const Twine &To);
422
-
423
- std::error_code rename (const Twine &From, const Twine &To) {
424
- // Convert to utf-16.
425
- SmallVector<wchar_t , 128 > WideFrom;
426
- if (std::error_code EC = widenPath (From, WideFrom))
427
- return EC;
428
-
429
- ScopedFileHandle FromHandle;
430
- // Retry this a few times to defeat badly behaved file system scanners.
431
- for (unsigned Retry = 0 ; Retry != 200 ; ++Retry) {
432
- if (Retry != 0 )
433
- ::Sleep (10 );
434
- FromHandle =
435
- ::CreateFileW (WideFrom.begin(), GENERIC_READ | DELETE,
436
- FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
437
- NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
438
- if (FromHandle)
439
- break ;
440
- }
441
- if (!FromHandle)
442
- return mapWindowsError (GetLastError ());
443
-
444
- return rename_handle (FromHandle, To);
445
- }
446
-
447
421
static std::error_code rename_handle (HANDLE FromHandle, const Twine &To) {
448
422
SmallVector<wchar_t , 128 > WideTo;
449
423
if (std::error_code EC = widenPath (To, WideTo))
@@ -539,6 +513,30 @@ static std::error_code rename_handle(HANDLE FromHandle, const Twine &To) {
539
513
return errc::permission_denied;
540
514
}
541
515
516
+ std::error_code rename (const Twine &From, const Twine &To) {
517
+ // Convert to utf-16.
518
+ SmallVector<wchar_t , 128 > WideFrom;
519
+ if (std::error_code EC = widenPath (From, WideFrom))
520
+ return EC;
521
+
522
+ ScopedFileHandle FromHandle;
523
+ // Retry this a few times to defeat badly behaved file system scanners.
524
+ for (unsigned Retry = 0 ; Retry != 200 ; ++Retry) {
525
+ if (Retry != 0 )
526
+ ::Sleep (10 );
527
+ FromHandle =
528
+ ::CreateFileW (WideFrom.begin(), GENERIC_READ | DELETE,
529
+ FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
530
+ NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
531
+ if (FromHandle)
532
+ break ;
533
+ }
534
+ if (!FromHandle)
535
+ return mapWindowsError (GetLastError ());
536
+
537
+ return rename_handle (FromHandle, To);
538
+ }
539
+
542
540
std::error_code resize_file (int FD, uint64_t Size ) {
543
541
#ifdef HAVE__CHSIZE_S
544
542
errno_t error = ::_chsize_s (FD, Size );
0 commit comments