diff -r --unified boost_1_49_0/libs/filesystem/v3/src/operations.cpp boost_1_49_0/libs/filesystem/v3/src/operations.cpp
|
|
|
1385 | 1385 | else if (prms & remove_perms) |
1386 | 1386 | prms = current_status.permissions() & ~prms; |
1387 | 1387 | |
1388 | | // Mac OS X Lion and some other platforms don't support fchmodat() |
1389 | | # if defined(AT_FDCWD) && defined(AT_SYMLINK_NOFOLLOW) \ |
1390 | | && (!defined(__SUNPRO_CC) || __SUNPRO_CC > 0x5100) |
1391 | | if (::fchmodat(AT_FDCWD, p.c_str(), mode_cast(prms), |
1392 | | !(prms & symlink_perms) ? 0 : AT_SYMLINK_NOFOLLOW)) |
1393 | | # else // fallback if fchmodat() not supported |
1394 | | if (::chmod(p.c_str(), mode_cast(prms))) |
1395 | | # endif |
| 1388 | // Don't use fchmodat() since AT_SYMLINK_NOFOLLOW is not implemented on Linux |
| 1389 | if (::chmod(p.c_str(), mode_cast(prms))) |
1396 | 1390 | { |
1397 | 1391 | if (ec == 0) |
1398 | 1392 | BOOST_FILESYSTEM_THROW(filesystem_error( |