Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Mar 2006 22:09:35 GMT
From:      Mark Day <mday@apple.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/94519: [patch] Add UF_HIDDEN file flag; map it to Windows "hidden" attribute for msdosfs, ntfs
Message-ID:  <200603152209.k2FM9Z10006918@www.freebsd.org>
Resent-Message-ID: <200603161508.k2GF8Yac081834@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help


>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@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-@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@9FQA9R`H;W=N97(@;W(@<W5P97(M=7-E<B!O;FQY*0H@+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@07(@:&ED9&5N
M"BMS970@=&AE('5S97(@:&ED9&5N(&9L86<@*&]W;F5R(&]R('-U<&5R+75S
M97(@;VYL>2D*("Y%;`H@+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@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@+R!S:7IE
M;V8H;6%P<&EN9ULP72DI"F1I9F8@+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,@E3870@2G5L("`S(#(R.C,P
M.C`Y(#(P,#0**RLK('-R8RUH:61D96XO;&EB+VQI8F,O<WES+V-H9FQA9W,N
M,@E7960@36%R(#$U(#`P.C4P.C0W(#(P,#8*0$`@+3@U+#8@*S@U+#@@0$`*
M(%1H92!F:6QE(&UA>2!N;W0@8F4@<F5N86UE9"!O<B!D96QE=&5D+@H@+DET
M(%5&7T]005%510H@5&AE(&1I<F5C=&]R>2!I<R!O<&%Q=64@=VAE;B!V:65W
M960@=&AR;W5G:"!A('5N:6]N('-T86-K+@HK+DET(%5&7TA)1$1%3@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@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@+D1Q(%5&7T%04$5.1"`L"B`N1'$@549?3D]53DQ)3DL@
M+`H@+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@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@5&AE"F1I9F8@+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@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-@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@05144E](241$14XI"BL)"79A<"T^=F%?
M9FQA9W,@?#T@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@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@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@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-@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@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@3E1&4U]&
M1DQ!1U](241$14XI"BL)"79A<"T^=F%?9FQA9W,@?#T@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@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@549?3U!!455%"3!X,#`P,#`P,#@)+RH@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@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@8F4@*B\**PD)"0D)+RH@9&ES<&QA>65D(&EN
M(&$@1U5)("HO"B`O*@H@("H@4W5P97(M=7-E<B!C:&%N9V5A8FQE(&9L86=S
'+@H@("HO"@``
`
end

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200603152209.k2FM9Z10006918>