home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 3 / Meeting_Pearls_III.iso / Pearls / texmf / source / TeX / evpath / EVPaths.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-16  |  1.6 KB  |  48 lines

  1. /*
  2.  * EVPaths.h - Header for EVPaths Routines
  3.  *
  4.  * © 1994 by Giuseppe Ghibò
  5.  *
  6.  * Version 1.35 (16-Nov-94)
  7.  *
  8.  */
  9.  
  10. #include <exec/types.h>
  11. #include <dos/dos.h>
  12.  
  13. struct EnvVarPath
  14. {
  15.     STRPTR name;
  16.  
  17.     union {
  18.         STRPTR *strings;
  19.         UBYTE *buffer;
  20.     } storage;
  21.  
  22.         STRPTR defpath;
  23.     LONG size;
  24.     LONG status;
  25.     LONG pos;
  26. };
  27.  
  28. /* Prototypes */
  29. GLOBAL LONG    __stdargs SNPrintf(STRPTR String, LONG Size, STRPTR FmtString, ...);
  30. GLOBAL LONG    __regargs GetVarLength(STRPTR envname);
  31.  
  32. GLOBAL struct EnvVarPath __regargs *Alloc_EnvVarPath(STRPTR varname, LONG size);
  33. GLOBAL VOID        __regargs Free_EnvVarPath(struct EnvVarPath *p);
  34. GLOBAL VOID        __regargs Init_EnvVarPath(struct EnvVarPath *p, APTR deflt_str, LONG mode);
  35. GLOBAL STRPTR        __regargs EVP_FileSearch(STRPTR filename, struct EnvVarPath *evp, UBYTE *buffer, LONG size);
  36. BPTR            __regargs EVP_Open(STRPTR filename, struct EnvVarPath *evp, UBYTE *buffer, LONG size, LONG mode);
  37.  
  38. #define ENVPATH_DEFSTR         (1L << 0)    /* default path provided as string */
  39. #define ENVPATH_DEFARR         (1L << 1)    /* default path provided as array of strings */
  40. #define ENVPATH_PREPEND_PATH    (1L << 31)    /* Prepend the default path */
  41. #define ENVPATH_APPEND_PATH    (1L << 30)    /* Append the default path */
  42.  
  43. #define ENVPATH_BUFFER_EMPTY        0L /* buffer is empty */
  44. #define ENVPATH_BUFFER_COMPLETE        1L /* buffer is complete, i.e. no more entries */
  45. #define ENVPATH_BUFFER_FULL        2L /* buffer is full, i.e. not enough room for other entries */
  46. #define ENVPATH_BUFFER_TRUNC        3L /* buffer is truncated because a not enough memory was encountered during processing */
  47. #define ENVPATH_BUFFER_INCOMPLETE    4L /* there could be other entries, but actually aren't into the buffer */
  48.