| /* | 
 |  * libecho.c | 
 |  * | 
 |  * For each argument on the command line, echo it.  Should expand | 
 |  * DOS wildcards correctly. | 
 |  * | 
 |  * Syntax: libecho [-p prefix] list... | 
 |  */ | 
 | #include <stdio.h> | 
 | #include <io.h> | 
 | #include <string.h> | 
 |  | 
 | void echo_files(char *, char *); | 
 |  | 
 | int | 
 | main(int argc, char *argv[]) | 
 | { | 
 |   int i; | 
 |   char *prefix; | 
 |  | 
 |   prefix = ""; | 
 |  | 
 |   if (argc < 2) { | 
 |     fprintf(stderr, "Usage:  libecho [-p prefix] list...\n"); | 
 |     return 1; | 
 |   } | 
 |  | 
 |   for (i = 1 ; i < argc ; i++) | 
 |     if (!stricmp(argv[i], "-p")) | 
 |       prefix = argv[++i]; | 
 |     else | 
 |       echo_files(prefix, argv[i]); | 
 |  | 
 |   return 0; | 
 | } | 
 |  | 
 | void | 
 | echo_files(char *prefix, char *f) | 
 | { | 
 |   long ff; | 
 |   struct _finddata_t fdt; | 
 |   char *slash; | 
 |   char filepath[256]; | 
 |  | 
 |   /* | 
 |    * We're unix based quite a bit here.  Look for normal slashes and | 
 |    * make them reverse slashes. | 
 |    */ | 
 |   while((slash = strrchr(f, '/')) != NULL) | 
 |     *slash = '\\'; | 
 |  | 
 |   strcpy(filepath, f); | 
 |  | 
 |   slash = strrchr(filepath, '\\'); | 
 |  | 
 |   if (slash) { | 
 |     slash++; | 
 |     *slash = 0; | 
 |   } else { | 
 |     filepath[0] = '\0'; | 
 |   } | 
 |  | 
 |   ff = _findfirst(f, &fdt); | 
 |  | 
 |   if (ff < 0) { | 
 |     printf("%s%s\n", prefix, f); | 
 |     return; | 
 |   } | 
 |  | 
 |   printf("%s%s%s\n", prefix, filepath, fdt.name); | 
 |  | 
 |   for (;;) { | 
 |     if (_findnext(ff, &fdt) < 0) | 
 |       break; | 
 |     printf("%s%s%s\n", prefix, filepath, fdt.name); | 
 |   } | 
 |   _findclose(ff); | 
 | } |