bob@gen1.UUCP (Robert Kamins) (02/11/88)
The following routine will expand wildcard arguments into their components. "argc" and "argv" are passed as variable parameters, and their values are (may be) changed on return. Suppose, for example, that your program starts out as: #include <dos.h> main (argc, argv) int argc; char *argv []; { int attrib = FA_HIDDEN + FA_DIREC; glob (&argc, &argv, attrib); : Let's say that argc is "1", argv [1] is "foo.*", and your directory contains: foo.c foo.obj foo.exe xxx.c yyy.obj zzz.exe After the glob, argc will be changed to "3", argv [1] will be "foo.c", argv [2] will be "foo.exe" and argv [3] will be "foo.obj". Unlike the Unix shell, this glob will not abort if there aren't any expanded arguments. Also unlike Unix, "*b" will NOT catch "a.b", nor will "*" catch "x.y". In fact, in MS-DOS-land, both will catch the same files, namely ALL of those without any extension. You can, of course, use most of the same code with other C's as well. You might have to build some of the routines that are already there in Turbo C, like "findfirst ()", "findnext ()", etc. ------------------------- cut here -------------------------- begin 666 glob.arc M&@E'3$]"+D,`)"0D)"0D%`X``$H0)+3&)\@C```O5(!H0;"@P8,($RI<R/`@ M"!4-%#P$`8(*FC1S0&`$<>(,FS=B0*!(<0*$G3)RYJ1YXP9$#!<P:(B,$>.% MC!LO<-Q(`4),'A!"0()8$J9-&C=S7%"D"%&BP(90HTIE^##B1(UNZ(#P*!1% M&#EGQK``\?6,G;%AZ-"1PW.IV[=PX\9M>O6H5A5EQ^R0RZ,%"#AO[*($0><- M6;!UVI3)"F+,FSJ,Y;ZE*[`QFJ\/\8*U`V)+E[T4^_X-G'5PX<-G$B_6^E5. MF)^`!<N!2YGBF,NSTZY-(Z8.G3*@08@VDX9-&1!SRGR]35:M'-Z^CTN66WO@ MU.O8J5;O^#'DR))WBK,!408/G#!NR)!M(R9-ZL<9B1L'X:;H\;*JLV9$44>E MFS-,6559>&R0,<979,S!DUV&0594>^_U!X)\Q]6G6$9T7*;5@2V)<5Q_9:CG M4X!.480>67#`P48:!]*Q4DMPR/'&&:ZUH51%:!Q7WGGIA8A:?G1DA)YZCD&F M%8E7R5&&BF&,<5R&Q[U1($=YE30DE9N=,-8<AF68%EDME8>1B__1)J")*:[8 MXHM_R4AC42`0.)Z2<=21AI(@&.5&&FV$,=YMZ)U11E+3555BH8@FJFBAVW'E M'4D@@)A1&W.T0,8;\4$VAHLL900#'C3<EQX(G])@AD@G$)<><2G149*A5UV9 MZE%DN%&>JSR=IJIZRC&WXY`^6EC&6'=<Q-Q&4+:$9&5'S4&'G\:I=Q19])5Q M!QL_0?M&BSXJUL8;<OPTQWE.WGA%CBU!"\(;IRY+$93TV9?192?U5,9B$SZ6 M'EK5WH&E65;*X=I/&VG+K7JP5G8EO%*J=T)9=E@YZL-@C1%PE"?)<<=S:BUV MHT7'>0ON3PE3!**(/S$\)<4`'S8PF-(&2=8<7(Z11EH^EF&<8OJY5=U&'SDK M4GE.PJ&5&>#^R]D6,'1Q@@MM+<KHF5)7;?5TU24!`AEEV,RU>J=Q*0=K;(S' M+F$YQGLA>7@4K17+2S==$@KA9>@N1W&(K=5W/(5AQF^SP6NKOW`'_/)&?7+] M\449;;14=6Z\H=5J=^K\DV-MG.>B&//5C4:>F&I5Q9YX()=CV7/H@'89/\GI M,]5*TE&''"T);NV//,NLMX^>3\OP<V<<Y6>D9KAQ`J$E@W#%<1R2%X9*V&[= MI89C]:95$B>T09_DR,W^I(:KXUFP&R0GOU89/%\J81ADV('>LX(29E@:=-QX M-:*U9:?__@4E7\4<81"4ZNY'0/Q1K8`(7%1U*-*G::'`+J@1BV4PHQFS=*8+ M;0E(I.90A^$=Q0[;2@N;S'0HBNPA@2BDS@&7`L$T!">%!%S@4APE$A/D92PV MW`Q:G)."%VKP/#1;'5G(0`8ET6Q0DUDA19`VFP>"H`>DVDL:A!-!*:Y@!5$# M@0;5T!^MK&@-Q_$0$Z63Q!(NY80PA*$,W>*"-G(N#)_SRQOCV!,VP#&-99P( M__:(G>1QIRN0BMWLD$(M6YU!A/5R'QOJ<)PTG`H]/T&)C&:SK3',3DBC2IX> M4&(8R>5(8Q@I@_WPF*C:]."4J$RE*E?)RE:Z\I6J3!Y-;(*#G-Q@)C"Q00I4 MEX1'I@LQN=-(1A8SAJ#Y:%K^\0@97V?&1=5)<H,:"_V$V9A.I8%K2E)/Y+1R M&@])9HV*<I08PL`Y45($9"!XYF\R,@<T/&9*WL2:$A6EI&^=1#T+2QM^@MG. M=VJ3>W.99Z*\^:L>J0<%R3G."0IZ4))`K91GXJ-$HY*P%T0D(B,X2C'KP#7A M.(L,*W$!&GR`48TNLJ,\`*D<1$I2!43$62(<PP1GHP)6.0LT&K3IY':VFG6= MBJ$^VF=/5R0T%5A4`3!UD4PA.#B]O$6#@XO@0XX:$0U.]*K:H=H)FH62O4$* M#KX1DD@`0S/>8(LG0%4/A=36R-JES59XN`O5R$H_-ODN;41ES:CJ``<RX`Q# M:2L28Z9U@J8^384EPJIB$9(\=)I!4YQJB>L$23L0;%)&&CE5Y,@CL*15<G;9 M7-=L6A"#S-X-7L<3@QS6(!)(F2$,Q4$>*;\9T<7:UB]&O2A2GZ54K&B%JV,3 M":!H.CAAI2`B>[#*3!\"AQWHEB*.%`D*'I@5GJ``#D\4+FX>PI,YJ):U"%V+ M<5J"@N+:AR<K<$D*UOM$*)+VN!)9"F7)VP(9]!`N&DSM:EM;DM<6QT=356YT M4:#3]H+`"55@`A/@ZY8"0[&YRBW6?Z6K`CA<,;LJ,*]BKLB3$$`1!AD4B&/@ M\!,-'R>W\:6(<^/;U"N^4#(:[$WFA"A4Q@@6<`&.[WQ%`N(7NP6JX.K3G,H@ MN\JBN`^ZM>IM%^O'QY9-6/P%P7S%&IO2!&YZQREB&D[R`LVAX05KA7+RHLN2 MX]SA>1L\IENC!#SAC:?&]:.($Z")MB_!BYFQ$H-JRV"'FT66(VTLR4:V21C7 M(,6.OP&;8<(@/VHY>3Q:YK)?[N;E%T!Y7%US)(M$R!*1^"E#CSG#YS*TD2+! M,\MEYHGU\%R9^08U(T]S@9;B9*S/;82#9B".S7IZ&CB@A(G:^Y;0Z)`'7V<D M>6=[@Z]=$]G]*'LQ+U`2^UZP,?J5X07%Q%09>-)I>%%HE`%-[)(5F^.7\I9% MRZUI'9YL'^U2$&)C&>Y#C(M<`3/&B"NVS7:]W)DF!`$+1$B"%#ZC*`VZLT"` M/0Z_?Y,Y<'VE.#]!,462BFYY/YK?6_`W%J`0!"H@@>!:%,C!$R3$2-_G:'<J M*E5UC$0H%F]<*]H;O$%@@HNG!0TX]/)8$*S@G2=XP?DV[72-2',0!%P*11@" M%9X@A2SPQ`>DRN)2-,@^]?`;RA)?BK/DT"*1V#Q#8_%R#Y6[]:X3>-ULT#E; M[RL7JA-Q0A/&^E$GOA:^-O'K:&![HC3(9Y3D@=1EFA9?E]V8YYUX[E(F\B"] MCG:QKQC)+E6`DL=]53\R-,JWZ=H:,(F[GC(Q3L4Q$(+F,!:&-NZW[8)<UYQ$ MLZ_D`2VC`N!)$LXV'JFDTRCP;)OKPP9I:M8P>1Q0Z`\D!Y+?`27'01IDR+"@ M=($@K^!.8/XH7_FL_;2S*3E,EHG<M42+A`RS.PJ`MHJ4KO(W!6-9J'FN]!UJ MF@\E>L(9/D<%+TDF;2.N5K00#U0VE$2?U=9!?1)5;KL54[Y5>^PG;Q5T%I&" M%.YA*T2R7;K!%O467Q`4.V.Q=P+A+.""1.27','5?COF&!V5=6YQ*;;B8W&A M08Z1%3+"!K"V*W#E527Q$<J68W0G!W6P*1-B!IS#6KGV@\&A02?3$S\Q*ZN2 M<C18=$A8*[<292@F8*<R75L'!]_E:3H$`B*@`C\@`NQU2@?V<PP&`F@$0T`& M>@5"?"1W5P4#3#UE@D*'`K&37<`E<YO!7CP0=<KE%CLFAT2F=].17W489?G' M69.$@R``><JE,\F!*!I$:D+BAHQQ&1E!(*)7?!E!$`@X*O331DJ1=<F58M)C M*]FU*P7F%5E8<S[(!FNP0VLQ=J(H8?.!`B&`@MNVAV2(B]`UA7ZH%5`TB&?' M;HJ!A68Q%D'(BBZ0:U]@7'BHAZ+(AXI76;T(B"LH$(_E!IO")H5H?S2%>"=8 M9J5(*S-80\>X!K#H%I!'$>F8>$5&7CUV-4`F!T+&CHMW9$GV%`(X@-O1)V#4 M&J\196L1!AF3'+0'9\\W)C#3&-*V3D)T-U%5.*,A&R[S&C>B!9Q$384879O% MC:+U.%137Z;%:"(3+F11-B'T9QSY62GQ?PI46_FX1P1(<4O%&/RH'`+SCR-1 M@=`U6"JH03:(7;12'M5D)(.1=0I883XD$%6&8Z?ACY'$4XP1A?&%75"$`D?9 M75=87M8B4QN8!IMT-E:Y72JP7D$W8-1%!SQ!E>X5`R'&$=ZU7^WG7]&"B!31 MARTP`["H7)_G1!\F15345%:$12&7+[/1*Y\3508)BKA881?F<DKH8A2A0<G! M&C?YE.C#:XM&1$:4$6>S=>)'E[0V82A04X^97AX6=9$I$#8(A$FS&.K1F;M1 M)G"H8LJUCGW88Q&AB)*'CR^9'4TV!C/6?L@26&^0.0_')2UQC=G8:9]W`GD# M+JYB+Q]Q!_8S?;W91U(IDP=H!L")76%)07@1;V*I`F(`7Z%8E]%(7F47G.'Y M$.4)B[HY>=<Y%8V5-@W4$G_T*/T%66QB>FAXB5_3>3V3/$"4'-*"GQ`C,5:W M2&>0$5&E2(S4.%EA&!!Y)0#X+Q93D1>)?^EY3+]GB.#"F6-@27(P%JT)@_?A MD8=B2(A4(8GA(;-!*YM&)@`"+\3F:SX%HC&:$?FG.N"T%*2E.OH%7I!"6#04 ME[`5+2Q)6\WD%O4EI&])I(*&G\#H6DD:(DM*0E<1%W<)I5E9I/A9DTX997*) MI08D;O-)GU()04<*014D04<),1<T%I"A$F<`@<LU@>9I;[_%`KK(CD,H<@V3 M*=CX9SL&H4ADE./97*D9D5;6:'#3&7)#@*FYAY4A>SK2))]CD*VY?@[8:=/" M:'FE`Y:*>$V573`0=`X6A@JFJDG#ER[AEWGXIH$YAN?)0KPXAU!T>=.U@#RQ M!6G0!:[(%CR1AR#VIWT8.WJ77[P:2!W**]B'B+I9J2EVJ0(9)2LCITSC-&/E M)C6R=EC1+TIC.*]!JM6*>%3I;C0UELB1E2KQE5.H@&0IA=)E%VEI8.^%BW;) MEB^67U%*IE>J'EE781BFK4V3E,AQK4-41(/"F:?2,$HCJ=PZL'+Z8"K8J$O9 M:,G1@KP"E;_5$HA9F8CXIMEUJND5`V69JT2676(JLB-1K,X(C>TH$LH:=,\9 C@B;0JQ#SJS&`06/15%OBE64`EE=IC-UYCO0HC;BI`)`'&@`( ` end ------------------------- cut here --------------------------