Date: Tue, 05 Sep 2006 07:28:35 -0000 From: Garance A Drosehn <gad@FreeBSD.org> To: Peter Jeremy <peterjeremy@optushome.com.au>, freebsd-current@FreeBSD.org Cc: Julian Elischer <julian@elischer.org> Subject: Adding a '-D date' option to `cat' Message-ID: <p06230937c122c6983e00@[128.113.24.47]> In-Reply-To: <20060904192006.GA3292@turion.vk2pj.dyndns.org> References: <200608281545.k7SFjn6l063922@lurza.secnetix.de> <p06230928c11e2298ca97@[128.113.24.47]> <200609020956.54008.Lucas.James@ldjcs.com.au> <20060902031247.GE749@turion.vk2pj.dyndns.org> <20060904192006.GA3292@turion.vk2pj.dyndns.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--============_-1054681193==_============ Content-Type: text/plain; charset="us-ascii" ; format="flowed" In the thread on "Re: suggested addition to 'date'" on Sept 5/2006, Peter Jeremy wrote: >On Sat, 2006-Sep-02 13:12:48 +1000, I (Peter Jeremy) wrote: > > The justification for extending date(1) is that it already has the > > code to handle date/time stamps. In reality, this code is all in > > strftime(3) and cat(1) already has hooks to insert a string at the > > beginning of a line so I believe that the attached patch is more > > appropriate > >Following some off-list comments, I have updated the patch to >correct a bug, change the option character to 'D' (for date) and >provide a man page update. I have picked up Peter's patch, and spent some time testing it. About all I changed in the source file was to update the 'usage' message, and to use errx() instead of err() if the format is too long. The update increases the size of /bin/cat by 696 bytes on i386. The more I think about this option, the more I think it would be a useful option to have readily available. I am slightly tempted to move the call to time()+strftime() into a separate routine, and call that routine during the processing of options. That way, if some user *does* specify a format which is over 1024 bytes, they'll get an immediate error message. As it is, they won't see an error until `cat' actually goes to print the first line that it has read in. On the other hand, it seems pretty unlikely that many people will be triggering that error. I've also made a number of changes to the description Peter added to the man page, trying to include several more details. I am never happy with man pages that I write though, so I will not be insulted if anyone wants to change this. I intend to commit this within a few days, unless there are major objections to it. I am posting this HEADSUP under a new subject, so people can dump all kinds of paint over me before I commit it. -- Garance Alistair Drosehn = drosehn@rpi.edu Senior Systems Programmer or gad@FreeBSD.org Rensselaer Polytechnic Institute; Troy, NY; USA --============_-1054681193==_============ Content-Id: <p06230937c122c6983e00@[128.113.24.47].0.0> Content-Type: application/octet-stream; name="cat-date.diff" ; x-mac-type="00000000" ; x-mac-creator="00000000" Content-Disposition: attachment; filename="cat-date.diff" ; modification-date="Tue, 5 Sep 2006 03:02:57 -0400" Content-Transfer-Encoding: x-uuencode begin 644 cat-date.dif M26YD97@Z(&-A="XQ"CT]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T] M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T*4D-3(&9I;&4Z M("]H;VUE+VYC=G,O<W)C+V)I;B]C870O8V%T+C$L=@IR971R:65V:6YG(')E M=FES:6]N(#$N,C4*9&EF9B`M=2`M<C$N,C4@8V%T+C$*+2TM(&-A="XQ"3$V M($IA;B`R,#`U(#$V.C0Q.C4U("TP,#`P"3$N,C4**RLK(&-A="XQ"34@4V5P M(#(P,#8@,#<Z,#(Z-38@+3`P,#`*0$`@+3,R+#<@*S,R+#<@0$`*("Y<(B`@ M("`@0"@C*6-A="XQ"3@N,R`H0F5R:V5L97DI(#4O,B\Y-0H@+EPB("1&<F5E M0E-$.B!S<F,O8FEN+V-A="]C870N,2QV(#$N,C4@,C`P-2\P,2\Q-B`Q-CHT M,3HU-2!R=2!%>'`@)`H@+EPB"BTN1&0@36%R8V@@,C$L(#(P,#0**RY$9"!3 M97!T96UB97(@-2P@,C`P-@H@+D1T($-!5"`Q"B`N3W,*("Y3:"!.04U%"D!` M("TT,2PV("LT,2PW($!`"B`N4V@@4UE.3U!325,*("Y.;0H@+D]P($9L(&)E M;G-T=78**RY/<"!&;"!$($%R(&1A=&5?9F]R;6%T"B`N3W`@07(*("Y3:"!$ M15-#4DE05$E/3@H@5&AE"D!`("TW,RPV("LW-"PS,"!`0`H@+D)L("UT86<@ M+7=I9'1H(&EN9&5N=`H@+DET($9L(&(*($YU;6)E<B!T:&4@;F]N+6)L86YK M(&]U='!U="!L:6YE<RP@<W1A<G1I;F<@870@,2X**RY)="!&;"!$($%R(&1A M=&5?9F]R;6%T"BM0<F5F:7@@96%C:"!O=71P=70@;&EN92!W:71H(&$@<W1R M:6YG('1H870@:6YD:6-A=&5S('1H92!D871E(&%N9"]O<@HK=&EM92!W:&5N M('1H870@;&EN92!W87,@<F5A9"!B>2!T:&4**RY.;0HK=71I;&ET>2X**U1H M92!F;W)M870@;V8@=&AA="!P<F5F:7@@:7,@<W!E8VEF:65D(&)Y('1H92!V M86QU92!O9@HK+D%R(&1A=&5?9F]R;6%T("X**U1H90HK+D%R(&1A=&5?9F]R M;6%T"BMA<F=U;65N="!M87D@8V]N=&%I;B!A;GD@;V8@=&AE(&-O;G9E<G-I M;VX@<W!E8VEF:6-A=&EO;G,@9&5S8W)I8F5D(&EN('1H90HK+EAR('-T<F9T M:6UE(#,**VUA;G5A;"!P86=E+"!A<R!W96QL(&%S(&%N>2!A<F)I=')A<GD@ M=&5X="X**TYO('-E<&%R871O<B!W:6QL(&)E(&EN<V5R=&5D(&)E='=E96X@ M=&AE(&=E;F5R871E9"!P<F5F:7@@86YD('1H90HK<F5M86EN9&5R(&]F('1H M92!O=71P=70@;&EN92P@<V\@:68@82!S97!A<F%T;W(@:7,@9&5S:7)E9"!T M:&5N"BMT:&4@=F%L=64@9F]R"BLN07(@9&%T95]F;W)M870**W-H;W5L9"!E M;F0@=VET:"!A('-P86-E(&]R('1H92!C;VYV97)S:6]N('-P96-I9FEE<B!O M9@HK+D1Q($QI("5T("X**U1H90HK+D9L('0**V%N9`HK+D9L('8**V]P=&EO M;G,@9&\@;F]T(&%F9F5C="!A;GD@8VAA<F%C=&5R<R!G96YE<F%T960@8GD@ M=&AE"BLN07(@9&%T95]F;W)M870@+@H@+DET($9L(&4*($1I<W!L87D@;F]N M+7!R:6YT:6YG(&-H87)A8W1E<G,@*'-E92!T:&4*("Y&;"!V"D!`("TQ-3(L M-B`K,3<W+#(T($!`"B!W:&5N(&ET(&5N8V]U;G1E<F5D('1H92!F:7)S=`H@ M+E%L(%PF+0H@;W!E<F%N9"X**RY0<`HK5&AE(&-O;6UA;F0Z"BLN4'`**RY$ M;"`B8V]M;6%N9"!\(&-A="`M1"`G)48@)50@)R(**RY0<`HK=VEL;"!P<F5P M96YD('1H92!C=7)R96YT(&1A=&4O=&EM92!I;B!T:&4@9F]R;0HK+D1Q($QI M(%E965DM34TM1$0@2$@Z34TZ4U,@+`HK9F]L;&]W960@8GD@82!S<&%C92P@ M=&\@96%C:"!L:6YE(&]F('1H92!S=&1O=70@9G)O;0HK+DYM(&-O;6UA;F0@ M+@HK5&AI<R!I<R!U<V5F=6P@9F]R('1I;65S=&%M<&EN9R!O=71P=70L(&5S M<&5C:6%L;'D@:68**RY.;2!C;VUM86YD"BMW:6QL(&)E(')U;FYI;F<@9F]R M(&$@;&]N9R!P97)I;V0@;V8@=&EM92P@86YD('EO=2!W86YT('1O(&MN;W<@ M=VAE;@HK96%C:"!O=71P=70@;&EN92!W87,@=W)I='1E;BX**TYO=&4@=&AA M=`HK+DYM(&-O;6UA;F0**VUU<W0@:&%V92!U;F)U9F9E<F5D(&]R(&QI;F4M M8G5F9F5R960@;W5T<'5T(&9O<B!T:&4**RY&;"!$"BMO<'1I;VX@=&\@<')O M9'5C92!A8V-U<F%T92!T:6UE<W1A;7!S+@H@+E-H(%-%12!!3%-/"B`N6'(@ M:&5A9"`Q("P*("Y8<B!M;W)E(#$@+`I`0"`M,38P+#<@*S(P,RPX($!`"B`N M6'(@=&%I;"`Q("P*("Y8<B!V:7,@,2`L"B`N6'(@>F-A="`Q("P*+2Y8<B!S M971B=68@,PHK+EAR('-E=&)U9B`S("P**RY8<B!S=')F=&EM92`S"B`N4G,* M("XE02!2;V(@4&EK90H@+B54(")53DE8(%-T>6QE+"!O<B!C870@+78@0V]N M<VED97)E9"!(87)M9G5L(@I`0"`M,3<U+#<@*S(Q.2PW($!`"B!S<&5C:69I M8V%T:6]N+@H@+E!P"B!4:&4@9FQA9W,*+2Y/<"!&;"!B96YS='8**RY/<"!& M;"!B1&5N<W1V"B!A<F4@97AT96YS:6]N<R!T;R!T:&4@<W!E8VEF:6-A=&EO M;BX*("Y3:"!(25-43U)9"B!!"D!`("TQ.3DL,R`K,C0S+#D@0$`*(&]R"B`N M1FP@=@H@;W!T:6]N(&ES(&EN(&5F9F5C="X**RY0<`HK5&AE"BLN3FT**W5T M:6QI='D@9&]E<R!N;W0@8V]R<F5C=&QY(&AA;F1L92!M=6QT:6)Y=&4@8VAA M<F%C=&5R<R!I;B!T:&4**V%R9W5M96YT('1O"BLN1FP@1"`N"DEN9&5X.B!C M870N8PH]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T] M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]"E)#4R!F:6QE.B`O:&]M92]N M8W9S+W-R8R]B:6XO8V%T+V-A="YC+'8*<F5T<FEE=FEN9R!R979I<VEO;B`Q M+C,R"F1I9F8@+74@+7(Q+C,R(&-A="YC"BTM+2!C870N8PDQ,"!*86X@,C`P M-2`P.#HS.3HR,"`M,#`P,`DQ+C,R"BLK*R!C870N8PDU(%-E<"`R,#`V(#`W M.C`R.C4V("TP,#`P"D!`("TV-BPV("LV-BPW($!`"B`*(&EN="!B9FQA9RP@ M969L86<L(&YF;&%G+"!S9FQA9RP@=&9L86<L('9F;&%G.PH@:6YT(')V86P[ M"BMC;VYS="!C:&%R("ID871E9FUT.PH@8V]N<W0@8VAA<B`J9FEL96YA;64[ M"B`*('-T871I8R!V;VED('5S86=E*'9O:60I.PI`0"`M.#0L,3$@*S@U+#$T M($!`"B`*(`ES971L;V-A;&4H3$-?0U194$4L("(B*3L*(`HM"7=H:6QE("@H M8V@@/2!G971O<'0H87)G8RP@87)G=BP@(F)E;G-T=78B*2D@(3T@+3$I"BL) M=VAI;&4@*"AC:"`](&=E=&]P="AA<F=C+"!A<F=V+"`B8D0Z96YS='5V(BDI M("$]("TQ*0H@"0ES=VET8V@@*&-H*2!["B`)"6-A<V4@)V(G.@H@"0D)8F9L M86<@/2!N9FQA9R`](#$["2\J("UB(&EM<&QI97,@+6X@*B\*(`D)"6)R96%K M.PHK"0EC87-E("=$)SH**PD)"61A=&5F;70@/2!O<'1A<F<["BL)"0EB<F5A M:SL*(`D)8V%S92`G92<Z"B`)"0EE9FQA9R`]('9F;&%G(#T@,3L)+RH@+64@ M:6UP;&EE<R`M=B`J+PH@"0D)8G)E86L["D!`("TQ,3(L-R`K,3$V+#@@0$`* M(`D)?0H@"6%R9W8@*ST@;W!T:6YD.PH@"BT):68@*&)F;&%G('Q\(&5F;&%G M('Q\(&YF;&%G('Q\('-F;&%G('Q\('1F;&%G('Q\('9F;&%G*0HK"6EF("AB M9FQA9R!\?"!E9FQA9R!\?"!N9FQA9R!\?"!S9FQA9R!\?"!T9FQA9R!\?"!V M9FQA9R!\?`HK"0ED871E9FUT("$]($Y53$PI"B`)"7-C86YF:6QE<RAA<F=V M+"`Q*3L*(`EE;'-E"B`)"7-C86YF:6QE<RAA<F=V+"`P*3L*0$`@+3$R-2PW M("LQ,S`L-R!`0`H@<W1A=&EC('9O:60*('5S86=E*'9O:60I"B!["BT)9G!R M:6YT9BAS=&1E<G(L(")U<V%G93H@8V%T(%LM8F5N<W1U=ET@6V9I;&4@+BXN M75QN(BD["BL)9G!R:6YT9BAS=&1E<G(L(")U<V%G93H@8V%T(%LM8F5N<W1U M=ET@6RU$(&1A=&5F;71=(%MF:6QE("XN+EU<;B(I.PH@"65X:70H,2D["B`) M+RH@3D]44D5!0TA%1"`J+PH@?0I`0"`M,3<W+#8@*S$X,BPX($!`"B!C;V]K M7V-A="A&24Q%("IF<"D*('L*(`EI;G0@8V@L(&=O8F)L92P@;&EN92P@<')E M=CL**PET:6UE7W0@;F]W.PHK"6-H87(@9&%T96)U9ELQ,#(T73L*(`H@"2\J M(%)E<V5T($5/1B!C;VYD:71I;VX@;VX@<W1D:6XN("HO"B`):68@*&9P(#T] M('-T9&EN("8F(&9E;V8H<W1D:6XI*0I`0"`M,3DX+#8@*S(P-2PQ-2!`0`H@ M"0D)"6EF("AF97)R;W(H<W1D;W5T*2D*(`D)"0D)8G)E86L["B`)"0E]"BL) M"0EI9B`H9&%T969M="`A/2!.54Q,*2!["BL)"0D)=&EM92@F;F]W*3L**PD) M"0EI9B`H<W1R9G1I;64H9&%T96)U9BP@<VEZ96]F*&1A=&5B=68I+"!D871E M9FUT+`HK"0D)"0EL;V-A;'1I;64H)FYO=RDI(#T](#`I"BL)"0D)"65R<G@H M,2P@(D1A=&4@9F]R;6%T('1O;R!L87)G92(I.PHK"0D)"2AV;VED*69P=71S M*&1A=&5B=68L('-T9&]U="D["BL)"0D):68@*&9E<G)O<BAS=&1O=70I*0HK M"0D)"0EB<F5A:SL**PD)"7T*(`D)?0H@"0EI9B`H8V@@/3T@)UQN)RD@>PH@ E"0D):68@*&5F;&%G("8F('!U=&-H87(H)R0G*2`]/2!%3T8I"FED ` end --============_-1054681193==_============--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?p06230937c122c6983e00>