home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 3 / Meeting_Pearls_III.iso / Pearls / texmf / source / TeX / evpath / TeXWhereIs.c < prev    next >
C/C++ Source or Header  |  1994-11-15  |  2KB  |  74 lines

  1. /*
  2.  * TeXWhereIs.c - a simple file to show how evpaths.lib routines work.
  3.  *
  4.  * Version 1.0 - © 1994 by Giuseppe Ghibò
  5.  *
  6.  * Compile with:
  7.  *
  8.  *     SC OPT LINK NOSTKCHK LIB evpaths.lib TeXWhereIs
  9.  *
  10.  */
  11.  
  12. #include <stdio.h>
  13. #include <stdlib.h>
  14. #include "evpaths.h"
  15.  
  16. #define BUFLEN 256
  17. #define EVPBUF 8192L
  18.  
  19. //char *default_path[] = { ".",
  20. //              "TeX:inputs",
  21. //              "TeX:texinputs",
  22. //              NULL };
  23.  
  24. char *default_path = ".,TeX:inputs,TeX:texinputs";
  25.  
  26. void main(int argc, char **argv)
  27. {
  28.     struct EnvVarPath *var;
  29.     char buf[BUFLEN], *s;
  30.  
  31.     if (argc < 2)
  32.     {
  33.         fprintf(stderr,"TeXWhereIs v1.0 - © 1994 by Giuseppe Ghibò\n");
  34.         fprintf(stderr,"Usage:\n");
  35.         fprintf(stderr,"\tTeXWhereIs ENVVAR filename [-p]\n");
  36.         fprintf(stderr,"Example:\n");
  37.         fprintf(stderr,"\tTeXWhereIs MFINPUTS cmr10.mf\n");
  38.         fprintf(stderr,"Search the file `cmr10.mf' in the path specified by the environment\n");
  39.         fprintf(stderr,"variable `MFINPUTS' and then show where it is located. If the flag `-p'\n");
  40.         fprintf(stderr,"also specified then TeXWhereIs shows also the expanded entries of the\n");
  41.         fprintf(stderr,"specified environment variable.\n");
  42.         exit(1);
  43.     }
  44.  
  45. /* argv[1] = ENV VAR NAME, argv[2] = FILE NAME */
  46.  
  47.     var = Alloc_EnvVarPath(argv[1], EVPBUF);
  48.  
  49. /* note that Init_EnvVarPath() must be executed only once for each env var, unless we
  50.    call Free_EnvVarPath() */
  51.  
  52. //    Init_EnvVarPath(var, NULL, NULL);
  53. //    Init_EnvVarPath(var, default_path, ENVPATH_DEFARR);
  54. //    Init_EnvVarPath(var, default_path, ENVPATH_DEFSTR);
  55.     Init_EnvVarPath(var, default_path, ENVPATH_DEFSTR | ENVPATH_APPEND_PATH);
  56.  
  57.     if (argv[3][0] == '-' && argv[3][1] == 'p')
  58.     {
  59.         int i = 0;
  60.         printf("The environment variable: %s has length %ld\n",argv[1],GetVarLength(argv[1]));
  61.         
  62.         while (var->storage.strings[i] != NULL)
  63.             printf("%d -> `%s'\n", i, var->storage.strings[i++]);
  64.  
  65.     }
  66.  
  67.      if (s = EVP_FileSearch(argv[2], var, buf, 256))
  68.         printf("File found: `%s'\n",s);
  69.     else
  70.         printf("No file found.\n");
  71.  
  72.     Free_EnvVarPath(var); /* don't forget this!!! */
  73. }
  74.