@tmds pointed out that we accidentally blow away all other flags returned by stat if UF_HIDDEN is set
|
dst->UserFlags = ((src->st_flags & UF_HIDDEN) == UF_HIDDEN) ? PAL_UF_HIDDEN : 0; |
I still haven't received a mac, so I don't know what these might be, but this answer suggests some. they may be irrelevant currently, but we should fix this line.
Also, we are missing a static assert here to verify that UF_HIDDEN == PAL_UF_HIDDEN
|
c_static_assert(PAL_S_IFMT == S_IFMT); |
which we need, since we assume they remain equal both here
and because there is no matching code in SystemNative_FChflags and SystemNative_LChflags to map back to the system UF_HIDDEN.
@tmds pointed out that we accidentally blow away all other flags returned by stat if UF_HIDDEN is set
runtime/src/native/libs/System.Native/pal_io.c
Line 219 in 5992145
I still haven't received a mac, so I don't know what these might be, but this answer suggests some. they may be irrelevant currently, but we should fix this line.
Also, we are missing a static assert here to verify that UF_HIDDEN == PAL_UF_HIDDEN
runtime/src/native/libs/System.Native/pal_io.c
Line 127 in 78bf14a
which we need, since we assume they remain equal both here
runtime/src/libraries/Common/src/Interop/Unix/System.Native/Interop.LChflags.cs
Line 14 in 78bf14a
and because there is no matching code in SystemNative_FChflags and SystemNative_LChflags to map back to the system UF_HIDDEN.