home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / CSAPE32.ARJ / INCLUDE / OAKDIR.H < prev    next >
C/C++ Source or Header  |  1990-12-07  |  5KB  |  156 lines

  1. /*
  2.     oakdir.h
  3.  
  4.     % oakland standard file and directory MACROS (MS-DOS, UNIX, VMS, ...)
  5.  
  6.     OWL 1.2
  7.     Copyright (c) 1990, by Oakland Group, Inc.
  8.     ALL RIGHTS RESERVED.
  9.  
  10.     Revision History:
  11.     -----------------
  12.     10/02/90 mla/pmcm    changed default OFILE_WILCARD from "*.*" to ""
  13.     10/02/90 mla/pmcm    added default OFILE_CURRDIR ""
  14.     10/10/90 jmd    added APOLLO defines
  15.     10/16/90 jmd    finished APOLLO defines
  16.     10/18/90 jmd    moved O_DIRECT stuff to oakland.h
  17.     10/22/90 mla    added default OFILE_PARENTDIR ""
  18.     10/24/90 mla    added odir_IsFullSpec
  19.     12/05/90 ted    made DOS & OS2 ifdef's mutually exclusive.
  20.     12/05/90 jsm    added QNX defines
  21.     12/06/90 ted    added missing dummies to default-macro section.
  22. */
  23.  
  24. /* include header for specific OS */
  25.  
  26. #ifdef OAK_QNX
  27. #    ifdef OAK_DOS
  28. #        undef OAK_DOS
  29. #    endif
  30. #    include "qnxdir.h"
  31. #    define _OAKDIR_
  32. #endif
  33.  
  34. #ifdef OAK_DOS            /* MS-DOS Dependent Code */
  35. #    include "pcdir.h"
  36. #    define _OAKDIR_
  37. #else
  38. #    ifdef OAK_OS2            /* OS/2 Dependent Code */
  39. #        include "os2dir.h"
  40. #        define _OAKDIR_
  41. #    endif
  42. #endif
  43.  
  44. #ifdef OAK_UNIX            /* Unix Dependent Code */
  45. #    include "unixdir.h"
  46. #    define _OAKDIR_
  47. #endif
  48.  
  49. #ifdef OAK_APOLLO        /* Apollo Dependent Code */
  50. #    include "unixdir.h"
  51. #    define _OAKDIR_
  52. #endif
  53.  
  54. #ifdef OAK_VMS            /* VMS Dependent Code */
  55. #    include "vmsdir.h"
  56. #    define _OAKDIR_
  57. #endif
  58.  
  59. /* if no directory code is provided use default macros to allow compilation */
  60. #ifndef _OAKDIR_
  61.  
  62. #    define OFILE_NAMELEN    22
  63. #    define OFILE_PATHLEN    128
  64. #    define OFILE_ENVSEP        ';'
  65. #    define OFILE_WILDCARD    "*"
  66. #    define OFILE_CURRDIR    "."
  67. #    define OFILE_PARENTDIR    ".."
  68.  
  69. #    define odir_Open(fname_spec,file_type)    NULL
  70. #    define odir_Read(odirpa,file_info)        FALSE
  71. #    define odir_Close(odirp)                    
  72. #    define ofile_Remove(fname_spec)            FALSE
  73.  
  74. #    define odir_Ascend(newpath,maxnewpath,oldpath)            FALSE
  75. #    define odir_Descend(newpath,maxnewpath,oldpath,subdir)    FALSE
  76. #    define odir_Split(spec,path,maxpath,name,maxname)        FALSE
  77. #    define odir_Join(spec,maxspec,path,name)                FALSE
  78. #    define odir_StripCase(str)                (str)
  79. #    define odir_GetCurrDir(buf,len)            FALSE
  80. #    define odir_IsFullSpec(spec)            FALSE
  81.  
  82. #    define ofile_IsValid(name,wildok)        FALSE
  83. #    define odir_IsValid(dir)                FALSE
  84. #    define odir_MakePath(strbuf,buflen,dir)    FALSE
  85. #endif
  86. /* -------------------------------------------------------------------------- */
  87.  
  88. /* system independent file description info here */
  89. typedef    struct _ofile {
  90.     byte            type;
  91.     struct tm        time;
  92.     unsigned long    size;
  93.     char            spec[OFILE_PATHLEN + OFILE_NAMELEN + 1]; /* system specific */
  94. } ofile_struct;
  95.  
  96. /* file info macros */
  97. #define ofile_GetType(ofile)        ((ofile).type)
  98. #define ofile_GetTime(ofile)        ((ofile).time)
  99. #define ofile_GetSize(ofile)        ((ofile).size)
  100. #define ofile_GetSpec(ofile)        ((ofile).spec)
  101.  
  102. /* masks for odir_Open */
  103. #define OFILE_ALL             0x01
  104. #define OFILE_FILES            0x02
  105. #define OFILE_DIRS             0x04
  106.  
  107. typedef VOID *odir_type;
  108.  
  109. /* Oakland directory handling functions */
  110. #define odir_Open_func(fname)        odir_type fname(char *_fname_spec, byte _file_type)
  111. #define odir_Read_func(fname)        boolean    fname(odir_type _odirpa, ofile_struct *_file_info)
  112. #define odir_Close_func(fname)        void    fname(odir_type _odirp)
  113. #define ofile_Remove_func(fname)    boolean    fname(char *_fname_spec)
  114.  
  115. /* Path name operator functions */
  116. #define odir_Ascend_func(fname)        boolean    fname(char *_newpath, int _maxnewpath, char *_oldpath)
  117. #define odir_Descend_func(fname)    boolean    fname(char *_newpath, int _maxnewpath, char *_oldpath, char *_subdir)
  118. #define odir_Split_func(fname)        boolean    fname(char *_spec, char *_path, int _maxpath, char *_name, int _maxname)
  119. #define odir_Join_func(fname)        boolean    fname(char *_spec, int _maxspec, char *_path, char *_name)
  120. #define odir_StripCase_func(fname)    char *fname(char *_str)
  121. #define odir_GetCurrDir_func(fname)    boolean fname(char *_buf, int _len)
  122. #define odir_IsFullSpec_func(fname)    boolean fname(char *_spec)
  123.  
  124. #define ofile_IsValid_func(fname)    boolean    fname(char *_name, boolean _wildok)
  125. #define odir_IsValid_func(fname)    boolean    fname(char *_dir)
  126. #define odir_MakePath_func(fname)    boolean    fname(char *_strbuf, int _buflen, char *_dir)
  127. /* -------------------------------------------------------------------------- */
  128.  
  129. /* include header for specific OS */
  130. #ifdef OAK_DOS            /* MS-DOS Dependent Code */
  131. #    include "pcdir.h"
  132. #else
  133. #    ifdef OAK_OS2            /* OS/2 Dependent Code */
  134. #        include "os2dir.h"
  135. #    endif
  136. #endif
  137.  
  138. #ifdef OAK_UNIX            /* Unix Dependent Code */
  139. #    include "unixdir.h"
  140. #endif
  141.  
  142. #ifdef OAK_APOLLO         /* Apollo Dependent Code */
  143. #    include "unixdir.h"
  144. #endif
  145.  
  146. #ifdef OAK_VMS            /* VMS Dependent Code */
  147. #    include "vmsdir.h"
  148. #endif
  149.  
  150. #ifdef OAK_QNX            /* QNX Dependent Code */
  151. #    include "qnxdir.h"
  152. #endif
  153.  
  154. /* -------------------------------------------------------------------------- */
  155.  
  156.