kern/94519: [patch] Add UF_HIDDEN file flag; map it to Windows "hidden" attribute for msdosfs, ntfs

Mark Day mday at apple.com
Thu Mar 16 15:08:36 UTC 2006


>Number:         94519
>Category:       kern
>Synopsis:       [patch] Add UF_HIDDEN file flag; map it to Windows "hidden" attribute for msdosfs, ntfs
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Mar 16 15:08:34 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Mark Day
>Release:        FreeBSD 7.0-CURRENT i386
>Organization:
Apple Computer, Inc.
>Environment:
System: FreeBSD daybreak.apple.com 7.0-CURRENT FreeBSD 7.0-CURRENT #0: Tue Mar 14 18:11:52 PST 2006 root at daybreak.apple.com:/usr/obj/usr/src-hidden/sys/DAYBREAK i386

cvsup was done approximately Tue Mar 14 15:00 PST 2006
>Description:
This adds a file flag which can be used as a hint to applications
(especially GUIs) that a particular file or directory should not be
displayed to the user by default.  For Windows file systems, this would
be mapped to their native "hidden" attribute.  For Macintosh file
systems, this would be mapped to the "invisible" bit of the Finder Info.

The patch includes a libc change to strtofflags(3) and fflagstostr(3)
mapping the bit to the name "hidden" so it can be accessed via ls(1)
and chflags(1).

The patch also maps the Windows "read-only" attribute bit to the
UF_IMMUTABLE file flag (for both msdosfs and ntfs).

This change originated in Mac OS X (in a version not yet released).
The patch is offered to help keep the file flags in FreeBSD and
Mac OS X in sync.

>How-To-Repeat:
In the Windows GUI, select a file on a FAT or NTFS volume.
Right-click on the file and select "Properties" from the menu.
Check the box titled "Hidden".
Take that disk to a FreeBSD machine and do "ls -lo" on it.
With this patch, "hidden" will be displayed in the flags column.

>Fix:
uuencoded patch:

begin 644 hidden.diff
M9&EF9B`M3F%U<B!S<F,O8FEN+V-H9FQA9W,O8VAF;&%G<RXQ('-R8RUH:61D
M96XO8FEN+V-H9FQA9W,O8VAF;&%G<RXQ"BTM+2!S<F,O8FEN+V-H9FQA9W,O
M8VAF;&%G<RXQ"49R:2!-87(@,3`@,3(Z,S<Z,3D@,C`P- at HK*RL@<W)C+6AI
M9&1E;B]B:6XO8VAF;&%G<R]C:&9L86=S+C$)5V5D($UA<B`Q-2`P,#HU,#HT
M-R`R,#`V"D!`("TQ,#0L-B`K,3`T+#@@0$`*('-E="!T:&4@=7-E<B!I;6UU
M=&%B;&4 at 9FQA9R`H;W=N97(@;W(@<W5P97(M=7-E<B!O;FQY*0H at +DET($-M
M('5U;FQN:R`L('5U;FQI;FL*('-E="!T:&4@=7-E<B!U;F1E;&5T86)L92!F
M;&%G("AO=VYE<B!O<B!S=7!E<BUU<V5R(&]N;'DI"BLN270 at 07(@:&ED9&5N
M"BMS970@=&AE('5S97(@:&ED9&5N(&9L86<@*&]W;F5R(&]R('-U<&5R+75S
M97(@;VYL>2D*("Y%;`H at +E!P"B!0=71T:6YG('1H92!L971T97)S"F1I9F8@
M+4YA=7(@<W)C+VQI8B]L:6)C+V=E;B]S=')T;V9F;&%G<RYC('-R8RUH:61D
M96XO;&EB+VQI8F,O9V5N+W-T<G1O9F9L86=S+F,*+2TM('-R8R]L:6(O;&EB
M8R]G96XO<W1R=&]F9FQA9W,N8PE-;VX at 4V5P(#$R(#$Y.C4R.C0Q(#(P,#4*
M*RLK('-R8RUH:61D96XO;&EB+VQI8F,O9V5N+W-T<G1O9F9L86=S+F,)5V5D
M($UA<B`Q-2`P,#HU,#HT-R`R,#`V"D!`("TW,2PW("LW,2PX($!`"B`)>R`B
M;F]D=6UP(BP)"55&7TY/1%5-4"P),2!]+`H@"7L@(FYO;W!A<75E(BP)"55&
M7T]005%512P),"!]+`H@"7L@(FYO=75N;&YK(BP)"55&7TY/54Y,24Y++`DP
M('TL"BT)>R`B;F]U=6YL:6YK(BP)"55&7TY/54Y,24Y++`DP('T**PE[(")N
M;W5U;FQI;FLB+`D)549?3D]53DQ)3DLL"3`@?2P**PE[(")N;VAI9&1E;B(L
M"0E51E](241$14XL"3`@?0H@?3L*("-D969I;F4@;&]N9V5S=&9L86=L96X)
M,3(*("-D969I;F4@;FUA<'!I;F=S"2AS:7IE;V8H;6%P<&EN9RD at +R!S:7IE
M;V8H;6%P<&EN9ULP72DI"F1I9F8 at +4YA=7(@<W)C+VQI8B]L:6)C+W-Y<R]C
M:&9L86=S+C(@<W)C+6AI9&1E;B]L:6(O;&EB8R]S>7,O8VAF;&%G<RXR"BTM
M+2!S<F,O;&EB+VQI8F,O<WES+V-H9FQA9W,N, at E3870@2G5L("`S(#(R.C,P
M.C`Y(#(P,#0**RLK('-R8RUH:61D96XO;&EB+VQI8F,O<WES+V-H9FQA9W,N
M, at E7960@36%R(#$U(#`P.C4P.C0W(#(P,#8*0$`@+3 at U+#8@*S at U+#@@0$`*
M(%1H92!F:6QE(&UA>2!N;W0 at 8F4@<F5N86UE9"!O<B!D96QE=&5D+ at H@+DET
M(%5&7T]005%510H at 5&AE(&1I<F5C=&]R>2!I<R!O<&%Q=64@=VAE;B!V:65W
M960@=&AR;W5G:"!A('5N:6]N('-T86-K+ at HK+DET(%5&7TA)1$1%3 at HK5&AE
M(&9I;&4@;W(@9&ER96-T;W)Y(&ES(&YO="!I;G1E;F1E9"!T;R!B92!D:7-P
M;&%Y960@=&\@=&AE('5S97(N"B`N270 at 4T9?05)#2$E6140*(%1H92!F:6QE
M(&UA>2!B92!A<F-H:79E9"X*("Y)="!31E])34U55$%"3$4*0$`@+3$P,"PX
M("LQ,#(L.2!`0`H at +D1Q(%5&7T%04$5.1"`L"B`N1'$@549?3D]53DQ)3DL@
M+`H at +D1Q(%5&7TY/1%5-4"`L"BLN1'$@549?3U!!455%("P*(&%N9`HM+D1Q
M(%5&7T]005%510HK+D1Q(%5&7TA)1$1%3 at H@9FQA9W,@;6%Y(&)E('-E="!O
M<B!U;G-E="!B>2!E:71H97(@=&AE(&]W;F5R(&]F(&$@9FEL92!O<B!T:&4@
M<W5P97(M=7-E<BX*("Y0<`H at 5&AE"F1I9F8 at +4YA=7(@<W)C+W-Y<R]F<R]M
M<V1O<V9S+VUS9&]S9G-?=FYO<',N8R!S<F,M:&ED9&5N+W-Y<R]F<R]M<V1O
M<V9S+VUS9&]S9G-?=FYO<',N8PHM+2T@<W)C+W-Y<R]F<R]M<V1O<V9S+VUS
M9&]S9G-?=FYO<',N8PE7960 at 1F5B("`Q(#`P.C(U.C(U(#(P,#8**RLK('-R
M8RUH:61D96XO<WES+V9S+VUS9&]S9G,O;7-D;W-F<U]V;F]P<RYC"5=E9"!-
M87(@,34@,#`Z-3`Z-#<@,C`P- at I`0"`M,S4Q+#8@*S,U,2PQ,"!`0`H@"79A
M<"T^=F%?9FQA9W,@/2`P.PH@"6EF("@H9&5P+3YD95]!='1R:6)U=&5S("8@
M05144E]!4D-(259%*2`]/2`P*0H@"0EV87`M/G9A7V9L86=S('P](%-&7T%2
M0TA)5D5$.PHK"6EF("AD97`M/F1E7T%T=')I8G5T97,@)B!!5%127U)%041/
M3DQ9*0HK"0EV87`M/G9A7V9L86=S('P](%5&7TE-355404),13L**PEI9B`H
M9&5P+3YD95]!='1R:6)U=&5S("8 at 05144E](241$14XI"BL)"79A<"T^=F%?
M9FQA9W,@?#T at 549?2$E$1$5..PH@"79A<"T^=F%?9V5N(#T@,#L*(`EV87`M
M/G9A7V)L;V-K<VEZ92`]('!M<"T^<&U?8G!C;'5S=&5R.PH@"79A<"T^=F%?
M8GET97,@/0I`0"`M-#(Q+#$R("LT,C4L,C`@0$`*(`D)"6EF("AV87`M/G9A
M7V9L86=S("8 at 4T9?4T545$%"3$4I"B`)"0D)<F5T=7)N($5015)-.PH@"0E]
M"BT)"6EF("AV87`M/G9A7V9L86=S("8@?E-&7T%20TA)5D5$*0HK"0EI9B`H
M=F%P+3YV85]F;&%G<R`F('XH4T9?05)#2$E6141\549?24U-551!0DQ%?%5&
M7TA)1$1%3BDI"B`)"0ER971U<FX at 14]03D]44U504#L*(`D):68@*'9A<"T^
M=F%?9FQA9W,@)B!31E]!4D-(259%1"D*(`D)"61E<"T^9&5?071T<FEB=71E
M<R`F/2!^05144E]!4D-(259%.PH@"0EE;'-E(&EF("@A*&1E<"T^9&5?071T
M<FEB=71E<R`F($%45%)?1$E214-43U)9*2D*(`D)"61E<"T^9&5?071T<FEB
M=71E<R!\/2!!5%127T%20TA)5D4["BL)"6EF("AV87`M/G9A7V9L86=S("8@
M549?24U-551!0DQ%*0HK"0D)9&5P+3YD95]!='1R:6)U=&5S('P]($%45%)?
M4D5!1$].3%D["BL)"65L<V4**PD)"61E<"T^9&5?071T<FEB=71E<R`F/2!^
M05144E]214%$3TY,63L**PD):68@*'9A<"T^=F%?9FQA9W,@)B!51E](241$
M14XI"BL)"0ED97`M/F1E7T%T=')I8G5T97,@?#T at 05144E](241$14X["BL)
M"65L<V4**PD)"61E<"T^9&5?071T<FEB=71E<R`F/2!^05144E](241$14X[
M"B`)"61E<"T^9&5?9FQA9R!\/2!$15]-3T1)1DE%1#L*(`E]"B`*9&EF9B`M
M3F%U<B!S<F,O<WES+V9S+VYT9G,O;G1F<U]V;F]P<RYC('-R8RUH:61D96XO
M<WES+V9S+VYT9G,O;G1F<U]V;F]P<RYC"BTM+2!S<F,O<WES+V9S+VYT9G,O
M;G1F<U]V;F]P<RYC"51U92!*86X@,3<@,3<Z,CDZ,#(@,C`P- at HK*RL@<W)C
M+6AI9&1E;B]S>7,O9G,O;G1F<R]N=&9S7W9N;W!S+F,)5V5D($UA<B`Q-2`P
M,#HU,#HT-R`R,#`V"D!`("TQ.38L-R`K,3DV+#$Q($!`"B`)=F%P+3YV85]A
M=&EM92`](&YT9G-?;G1T:6UE=&]U;FEX*&9P+3YF7W1I;65S+G1?86-C97-S
M*3L*(`EV87`M/G9A7VUT:6UE(#T@;G1F<U]N='1I;65T;W5N:7 at H9G`M/F9?
M=&EM97,N=%]W<FET92D["B`)=F%P+3YV85]C=&EM92`](&YT9G-?;G1T:6UE
M=&]U;FEX*&9P+3YF7W1I;65S+G1?8W)E871E*3L*+0EV87`M/G9A7V9L86=S
M(#T@:7`M/FE?9FQA9SL**PEV87`M/G9A7V9L86=S(#T@,#L**PEI9B`H9G`M
M/F9?9F9L86<@)B!.5$937T9&3$%'7U)$3TY,62D**PD)=F%P+3YV85]F;&%G
M<R!\/2!51E])34U55$%"3$4["BL):68@*&9P+3YF7V9F;&%G("8 at 3E1&4U]&
M1DQ!1U](241$14XI"BL)"79A<"T^=F%?9FQA9W,@?#T at 549?2$E$1$5..PH@
M"79A<"T^=F%?9V5N(#T@,#L*(`EV87`M/G9A7V)L;V-K<VEZ92`](&EP+3YI
M7VUP+3YN=&U?<W!C("H@:7`M/FE?;7`M/FYT;5]B<',["B`)=F%P+3YV85]T
M>7!E(#T@=G`M/G9?='EP93L*9&EF9B`M3F%U<B!S<F,O<WES+W-Y<R]S=&%T
M+F@@<W)C+6AI9&1E;B]S>7,O<WES+W-T870N:`HM+2T@<W)C+W-Y<R]S>7,O
M<W1A="YH"51U92!-87(@,C(@,#$Z,3DZ,3@@,C`P-0HK*RL@<W)C+6AI9&1E
M;B]S>7,O<WES+W-T870N:`E7960 at 36%R(#$U(#`P.C4P.C0W(#(P,#8*0$`@
M+3(X,BPV("LR.#(L."!`0`H@(V1E9FEN90E51E]!4%!%3D0),'@P,#`P,#`P
M-`DO*B!W<FET97,@=&\@9FEL92!M87D@;VYL>2!A<'!E;F0@*B\*("-D969I
M;F4 at 549?3U!!455%"3!X,#`P,#`P,#@)+RH at 9&ER96-T;W)Y(&ES(&]P87%U
M92!W<G0N('5N:6]N("HO"B`C9&5F:6YE(%5&7TY/54Y,24Y+"3!X,#`P,#`P
M,3`)+RH at 9FEL92!M87D@;F]T(&)E(')E;6]V960@;W(@<F5N86UE9"`J+PHK
M(V1E9FEN92!51E](241$14X),'@P,#`P.#`P,`DO*B!H:6YT('1H870@=&AI
M<R!I=&5M('-H;W5L9"!N;W0 at 8F4@*B\**PD)"0D)+RH at 9&ES<&QA>65D(&EN
M(&$@1U5)("HO"B`O*@H@("H at 4W5P97(M=7-E<B!C:&%N9V5A8FQE(&9L86=S
'+ at H@("HO"@``
`
end

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list