4c4
< #define XENIX
---
> #define WILDCARD '@'
15c15,17
< static char usage[] = { "USAGE:  getdos [-b] sourcepath destdir\n" };
---
> static char usage[] = { "USAGE(*=@):  getdos [-b] sourcepath destdir\n" };
> 
> static char example[] = { "EXAMPLE:  getdos /@ .\n" };
24a27
>      int removeflag;
26,30c29,32
<      char *srcpath;
<      char *srcdir;
<      char *srcbase;
<      char *destdir;
<     
---
>      static char srcpath[133];
>      static char srcdir[133];
>      static char srcbase[133];
>      static char destdir[133];
34a37
>       printf( example); 
41,42c44,45
<            srcpath = argv[i];
<            destdir = argv[i + 1];
---
>            strcpy(srcpath, argv[i]);
>            strcpy(destdir, argv[i + 1]);
48a52,54
>             case 'x': 
>                 removeflag = 'Y';
>                 break;
60c66
<        destdir = getcwd(NULL, MAXBUF);
---
>        strcpy( destdir, getcwd(NULL, MAXBUF));
71,72c77,78
<     srcdir = dirname( srcpath);
<     srcbase = basename( srcpath);
---
>     strcpy( srcdir, dirname( srcpath));
>     strcpy( srcbase, basename( srcpath));
74,77c80
< #ifdef XENIX
<      printf( "XENIX version\n");
<      dosxnx3( srcdir, srcbase, destdir, dosflag);
< #endif
---
>      dosxnx3( srcdir, srcbase, destdir, dosflag, removeflag);
79,82d81
< #ifdef UNIX_V 
<      dosVunx( srcdir, srcbase, destdir, dosflag);
< #endif
< 
93c92
<     char *dirpath;
---
>     static char dirpath[133];
96d94
<     extern char *malloc();
99,102d96
<     if ( NULL == ( dirpath = malloc( len + 1) ) ) {
<        printf( "Insufficient memory\n");
<        exit(1);
<        }
118c112
<     char *base;
---
>     static char base[133];
126,130d119
<     if ( NULL == ( base = malloc( j + 1))  ) {
<        printf( "Insufficient memory\n");
<        exit(1);
<        }
< 
137,138c126
< #ifdef XENIX
< dosxnx3( srcdir, srcbase, destdir, dosflag)
---
> dosxnx3( srcdir, srcbase, destdir, dosflag, removeflag)
142a131
> int removeflag;
152,153c141
<     if ( strchr( srcbase, '*') == NULL &&
<          strchr( srcbase,'@') == NULL) {
---
>     if ( strchr( srcbase, WILDCARD) == NULL) {
158,160d145
< /*
<      printf("srcdir=%s, srcbase=%s\r\n", srcdir, srcbase);
< */
162d146
< 
165c149
<      strcat( command, srcdir);
---
>      strcat( command, srcdir); 
169c153
<         printf( "Unable list source directory %s\n",
---
>         printf( "Unable to list source directory %s\n",
204c188
<         if (*srcbase != '@' &&  wildncmp( filename, srcbase, 99) != 0)
---
>         if ( wildncmp( filename, srcbase, 99) != 0)
207c191
< /*
---
>         /*
209c193
< */
---
>         */
211a196,197
>         if (removeflag == 'Y') 
>             dosremove( srcdir, filename);
216d201
< /*
218d202
< */
232c216,219
<          if ( command, destdir);
---
>          if ( dosflag == 'b') 
>              strcat( command, "-r ");
>          strcat( command, device);
>          strcat( command, srcdir);
234a222,225
>          strcat( command, " ");
>          strcat( command, destdir);
>          strcat( command, "/");
>          strcat( command, srcbase);
246c237,241
< #endif
---
> dosremove( srcdir, srcbase)
> char *srcdir;
> char *srcbase;
> {
>     char command[ MAXBUF];
247a243,260
>          strcpy( command, "dosrm ");
>          strcat( command, device);
>          strcat( command, srcdir);
>          strcat( command, "/");
>          strcat( command, srcbase);
>          strcat( command, " ");
>          strcat( command, srcbase);
>          strcat( command, " > /dev/null");
>          printf( "%s\n", command);
>          if ( system( command) != 0) {
>             printf( "Unable to remove file %s \n", srcbase);
>             printf( usage); 
>             exit(1);
>             }
> 
> }
> 
> 
279c292
< 		if ( ! *s && *ws != '*' )
---
> 		if ( ! *s && *ws != WILDCARD)
288c301
< 		if ( *ws == '*' ) {
---
> 		if ( *ws == WILDCARD ) {
