Ondřej Vašík <[EMAIL PROTECTED]> writes:
> - bool changed = (chmod_succeeded
> - && mode_changed (file, old_mode, new_mode));
> + bool mode_change = mode_changed (file, old_mode, new_mode);
> + bool changed = (chmod_succeeded && mode change);
> +
> + if (chmod_succeeded && ((old_mode ^ new_mode) & CHMOD_MODE_BITS))
> + {
> +
> + /* Changed to another mode than requested */
This doesn't look right to me. First, surely there's no need to invoke
mode_changed if chmod_succeeded is false. Second, ((old_mode ^
new_mode) & CHMOD_MODE_BITS) doesn't tell us whether we changed to
another mode than requested; mode_change tells us that.
> + struct stat new_stats;
> + char perms_requested[12];
> + char perms_actual[12];
> +
> + if (stat (file, &new_stats) != 0)
Third, this means we've invoked 'stat' twice on the file afterwards,
once here, and once in mode_changed. We should invoke 'stat' only in
mode_changed.
_______________________________________________
Bug-coreutils mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-coreutils