[comp.binaries.ibm.pc] Wildcard expansion for any command, w/DLC source

bright@dataio.Data-IO.COM (Walter Bright) (07/28/88)

[ The supplied executable appears to have been compiled with Datalight
C version 3.10.  -- R.D. ]

Have you ever gotten frustrated by MS-DOS programs that wouldn't work with
wildcards or multiple filenames? I sure have, and have written a program
to solve it. As an example, consider the FIND program that comes with DOS.
It doesn't work if you give it more than one filename, as in:
	FIND "string" *.c
or:
	FIND "string" file1 file2 file3
With WILDCARD, these commands can be done! It works by executing the specified
program n times, where n is the number of files. For example, the above
commands would be done as:
	WILDCARD FIND -"string" *.c
and:
	WILDCARD FIND -"string" file1 file2 file3
The - means that the rest of the argument is passed to each invocation
of FIND. For the second example, WILDCARD will do the equivalent of:
	FIND "string" file1
	FIND "string" file2
	FIND "string" file3

Both source (for Datalight C) and a uuencoded executable are included.
Enjoy! It's hereby donated to the public domain.

---------- Source code starts here -----------
/*_ wildcard.c   Fri Jan 29 1988   Modified by: Walter Bright */
/* Written by Walter Bright 		*/
/* To compile (with Datalight C):	*/
/*	DLC -mci wildcard _main.obj	*/

#include	<stdio.h>
#include	<stdlib.h>

#define TRUE	1
#define FALSE	0

#if DLC
int _okbigbuf = 0;	/* Use as little memory as possible	*/
#endif

main(argc,argv)
int argc;
char *argv[];
{
    char **newargv;
    int i;			/* how many times command was executed	*/

    if (argc < 2)
    {
	usage();
	exit(1);
    }
    newargv = (char **) malloc(argc * sizeof(char *));
    if (newargv == NULL)
    {
	printf("out of memory\n");
	exit(1);
    }
    newargv[0] = argv[1];
    for (i = 0; 1; i++)
    {
	int a;				/* index into argv[]		*/
	int n;				/* index into newargv[]		*/
	int gotarg;			/* TRUE if we saw a non - arg	*/
	int status;			/* return status from spawn()	*/

	gotarg = FALSE;
	n = 1;
	for (a = 2; a < argc; )
	{
	L1:
	    if (argv[a][0] == '-')	/* if arg starts with a -	*/
		/* pass it through after stripping the -  */
		newargv[n++] = &argv[a++][1];
	    else
	    {
		int j;

		for (j = a + i; a < j; a++)
		{
		    if (a == argc)
			goto doit;
		    if (argv[a][0] == '-')
			goto L1;
		}
		if (a < argc && argv[a][0] != '-')
		{
		    newargv[n++] = argv[a];
		    gotarg = TRUE;
		}
		/* Scan to end of args or next - arg	*/
		while (a < argc && argv[a][0] != '-')
		    a++;
	    }
	}
    doit:
	if (!gotarg && i)	/* if no file names and not first time	*/
	    break;
	newargv[n] = NULL;		/* terminate list of args	*/

	/* Print out the command we are going to attempt		*/
	for (n = 0; newargv[n]; n++)
	    printf("%s ",newargv[n]);
	printf("\n");
	fflush(stdout);

	status = spawnvp(0,newargv[0],newargv);
	if (status == -1)
	{
	    printf("'%s' failed to execute\n",argv[1]);
	    exit(1);
	}
	if (status != 0)
	{   printf("--- errorlevel %d\n",status);
	    exit((status & ~255) ? 255 : status);
	}
    }
}

usage()
{
	printf("\
Wildcard execution of a command. Written by Walter Bright\n\
Use:\n\
	WILDCARD progname arguments...\n\
\n\
The arguments are wildcard expanded. Progname is executed once for each\n\
argument. Arguments preceded by a - are passed through to progname (with\n\
the leading - removed), and do not influence the number of times progname\n\
is executed.\
");
}

#if DLC

/* Prevent exit() and fclose() from being linked in from library	*/
/* (to conserve the size of the output file).				*/

void exit(exitstatus)
int exitstatus;
{
	_exit(exitstatus);
}
#endif

---------- Uuencode starts here --------------
begin 777 wildcard.com
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
M7@2+=@:,T([`BWX(BTX*\Z0?7UY=PU6+[%97_`:.1@2+?@:+=@B+3@KSI`=?
M7EW#````````````````15)23U(Z($Y53$P@<&]I;G1E<@!$871A;&EG:'0@
M0R`S+C$P(%,L('=R:71T96X@8GD@5V%L=&5R($)R:6=H=`````!!````````
M````````````````````````````````````````````````````````````
M```````````````````````````````````````````-"E-T86-K($]V97)F
M;&]W#0HD#0I.;W0@96YO=6=H(&UE;6]R>0T*)`T*0F%D('-T86-K('-I>F4@
M<&%R86UE=&5R#0HD#0I$3U,@,2YX>"!N;W0@<W5P<&]R=&5D#0HD#0I/;FQY
M(#,R(&%R9W,@86QL;W=E9`T*)`T*3E5,3"!F=6YC=&EO;B!P;VEN=&5R#0HD
M#0I&;&]A=&EN9R!P;VEN="!N;W0@;&]A9&5D#0HD``!O=70@;V8@;65M;W)Y
M"@`E<R``"@`G)7,G(&9A:6QE9"!T;R!E>&5C=71E"@`M+2T@97)R;W)L979E
M;"`E9`H`5VEL9&-A<F0@97AE8W5T:6]N(&]F(&$@8V]M;6%N9"X@5W)I='1E
M;B!B>2!786QT97(@0G)I9VAT"E5S93H*"5=)3$1#05)$('!R;V=N86UE(&%R
M9W5M96YT<RXN+@H*5&AE(&%R9W5M96YT<R!A<F4@=VEL9&-A<F0@97AP86YD
M960N(%!R;V=N86UE(&ES(&5X96-U=&5D(&]N8V4@9F]R(&5A8V@*87)G=6UE
M;G0N($%R9W5M96YT<R!P<F5C961E9"!B>2!A("T@87)E('!A<W-E9"!T:')O
M=6=H('1O('!R;V=N86UE("AW:71H"G1H92!L96%D:6YG("T@<F5M;W9E9"DL
M(&%N9"!D;R!N;W0@:6YF;'5E;F-E('1H92!N=6UB97(@;V8@=&EM97,@<')O
M9VYA;64*:7,@97AE8W5T960N`````````$$````!````````````0@`!``$`
M``````````!&``(``0```````````&```P`!````````````0@`$``$`````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M``````````````````````````````````````!#3TU34$5#`"]C`$-/34U!
M3D0N0T]-`"``#0`N0T]-`"Y%6$4``"X`7``Z`"\`D`BJ"*H(J@A0051(````
M(``H;G5L;"D`,%@`,'@`+0`K`"``(P#9#=\-Y0WK#7,`)0!C`&0`:0!B`&\`
M=0!P`%@`>`!F`&4`10!G`$<`;@`3#U</70]W#W</RP_2#]D/]@\0$!00-A%4
M$E022Q-+$ZD3+0`K`"````"4!```E`0`````````````````````````````
M````````````````````````````````````````````````````````````
M`````````````````)H$``"_!````````@("`@("`@("`P,#`P,"`@("`@("
M`@("`@("`@("`@(%0$!`0$!`0$!`0$!`0$!`@("`@("`@("`@$!`0$!`0$`8
M&!@8&!@0$!`0$!`0$!`0$!`0$!`0$!`0$$!`0$!`0"@H*"@H*"`@("`@("`@
M("`@("`@("`@("`@0$!`0`(`````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
*````````````````
`
end