Changeset 3682 for trunk/src/kmk/kmkbuiltin/rm.c
- Timestamp:
- Aug 13, 2025, 1:34:19 AM (3 months ago)
- File:
-
- 1 edited
-
trunk/src/kmk/kmkbuiltin/rm.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kmk/kmkbuiltin/rm.c
r3618 r3682 82 82 # include "mscfakes.h" 83 83 # endif 84 # include "nt/ntunlink.h" 85 /* Use the special unlink implementation to do rmdir too. */ 86 # undef rmdir 87 # define rmdir(a_pszPath) birdUnlinkForced(a_pszPath) 84 # include "nt/ntunlink.h" /* redefines both unlink & rmdir */ 88 85 #endif 89 86 #if defined(__OS2__) || defined(_MSC_VER) … … 430 427 #ifdef KBUILD_OS_WINDOWS 431 428 if (p->fts_parent->fts_dirfd != NT_FTS_INVALID_HANDLE_VALUE) { 432 rval = bird UnlinkForcedEx(p->fts_parent->fts_dirfd, p->fts_name);429 rval = birdRmDirForcedEx(p->fts_parent->fts_dirfd, p->fts_name); 433 430 } else { 434 rval = bird UnlinkForced(p->fts_accpath);431 rval = birdRmDirForced(p->fts_accpath); 435 432 } 436 433 #else … … 480 477 rval = birdUnlinkForcedFastEx(p->fts_parent->fts_dirfd, p->fts_name); 481 478 } else { /* NtDeleteFile doesn't work on directory links, so slow symlink deletion: */ 482 rval = birdUnlinkForcedEx(p->fts_parent->fts_dirfd, p->fts_name); 479 if (p->fts_stat.st_isdirsymlink) { 480 rval = birdRmDirForcedEx(p->fts_parent->fts_dirfd, p->fts_name); 481 } else { 482 rval = birdUnlinkForcedEx(p->fts_parent->fts_dirfd, p->fts_name); 483 } 483 484 } 484 485 } else { … … 486 487 rval = birdUnlinkForcedFast(p->fts_accpath); 487 488 } else { /* NtDeleteFile doesn't work on directory links, so slow symlink deletion: */ 488 rval = birdUnlinkForced(p->fts_accpath); 489 if (p->fts_stat.st_isdirsymlink) { 490 rval = birdRmDirForced(p->fts_accpath); 491 } else { 492 rval = birdUnlinkForced(p->fts_accpath); 493 } 489 494 } 490 495 } … … 586 591 operation = "unlink"; 587 592 #else 588 if (pThis->fUseNtDeleteFile) { 593 /*if (sb.st_isdirsymlink) { 594 rval = birdRmDirForced(f); 595 operation = "rmdir"; 596 } else*/ if (pThis->fUseNtDeleteFile /*&& S_ISREG(sb.st_mode) && !sb.st_isdirsymlink*/) { 589 597 rval = birdUnlinkForcedFast(f); 590 598 operation = "NtDeleteFile";
Note:
See TracChangeset
for help on using the changeset viewer.
