home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / OS2UTIL.ZIP / LF.C < prev    next >
Text File  |  1990-05-21  |  2KB  |  73 lines

  1. #define INCL_SUB 1
  2. #define ARGV     0
  3. #define MASK     1
  4. #define WILD     2
  5.  
  6. #include "os2.h"
  7. #include "stdio.h"
  8. #include "stdlib.h"
  9. #include "string.h"
  10.  
  11. int main(int, char**);
  12.  
  13. main(argc, argv)
  14. int argc;
  15. char *argv[];
  16. {
  17.     char cmd[80], drive[3], wild[4];
  18.     char *mask, tack;
  19.  
  20.     puts("LF-Locate File, OS/2 Version, (C) Copr 1988, Marcusfilm Limited\n");
  21.  
  22.     if (strcmp(argv[1], "?") == 0) {
  23.        puts("    LF [d:] [filename] [switches]");
  24.        puts("\n Switches");
  25.        puts("    /E  Display .EXE type");
  26.        exit(1);
  27.     }
  28.  
  29.     strcpy(cmd, "where /r ");
  30.  
  31.     if (argc == 1 || strcmp(strlwr(argv[1]), "/e") == 0) {
  32.        strcpy(wild, "*.*");            /* no arguments: *.*  */
  33.        tack = WILD;
  34.     }
  35.     else
  36.     {
  37.        mask = strchr(argv[1], ':');   /* drive ?             */
  38.        if (mask) {                    /* drive specified     */
  39.           if ( strlen(argv[1]) == 2 ) {
  40.              strcpy(wild, "*.*");     /* drive & no filename */
  41.              tack = WILD;
  42.           }
  43.           else {
  44.              *mask++;                 /* drive and filename  */
  45.              tack = MASK;
  46.           }
  47.  
  48.           strncpy(drive, argv[1], 2);
  49.           drive[2] = NULL;
  50.           strcat(cmd, drive);
  51.        }
  52.        else
  53.           tack = ARGV;
  54.     }
  55.  
  56.     strcat(cmd, "\\ /t ");
  57.     if (strcmp(strlwr(argv[argc-1]), "/e") == 0)
  58.        strcat(cmd, "/e ");
  59.  
  60.     switch (tack) {
  61.            case ARGV:
  62.                 strcat(cmd, argv[1]);
  63.                 break;
  64.            case MASK:
  65.                 strcat(cmd, mask);
  66.                 break;
  67.            case WILD:
  68.                 strcat(cmd, wild);
  69.      }
  70.  
  71.     return(system(cmd));
  72. }
  73.