home *** CD-ROM | disk | FTP | other *** search
/ RISC DISC 2 / RISC_DISC_2.iso / pd_share / program / code / desklib / DeskLib / !DeskLib / h / Filing < prev    next >
Encoding:
Text File  |  1995-08-28  |  2.9 KB  |  101 lines

  1.  
  2. #ifndef __dl_filing_h
  3. #define __dl_filing_h
  4. #ifndef __dl_core_h
  5. #include "Core.h"
  6. #endif
  7. #ifndef filing_MAXLEAFNAMELEN
  8. #define filing_MAXLEAFNAMELEN 32
  9. #endif
  10. typedef enum {
  11. filing_NOTFOUND = 0,
  12. filing_FILE = 1,
  13. filing_DIRECTORY = 2,
  14. filing_IMAGEFILE = 3
  15. } filing_objtype;
  16. typedef struct {
  17. int loadaddr;
  18. int execaddr;
  19. int length;
  20. int attrib;
  21. filing_objtype objtype;
  22. char name[ filing_MAXLEAFNAMELEN];
  23. } filing_direntry;
  24. typedef struct {
  25. int loadaddr;
  26. int execaddr;
  27. int length;
  28. int attrib;
  29. filing_objtype objtype;
  30. int SIN;
  31. char date[ 5];
  32. char name[ filing_MAXLEAFNAMELEN];
  33. } filing_fulldirentry;
  34. typedef enum {
  35. readdirtype_DIRENTRY,
  36. readdirtype_FULLDIRENTRY,
  37. readdirtype_NAMEONLY
  38. } filing_readdirtype;
  39. typedef struct {
  40. char *dirname;
  41. void *buf;
  42. int size;
  43. filing_readdirtype type;
  44. union {
  45. filing_direntry *direntry;
  46. filing_fulldirentry *fulldirentry;
  47. char *name;
  48. void *act;
  49. } act;
  50. int offset;
  51. int read;
  52. char *match;
  53. } filing_dirdata;
  54. os_error *Filing_OpenDir( char *dirname, filing_dirdata *dirdata,
  55. int bufsize, filing_readdirtype type);
  56. void *Filing_ReadDir( filing_dirdata *dirdata);
  57. BOOL Filing_CloseDir( filing_dirdata *dirdata);
  58. os_error *Filing_ReadDirNames( char *dirname, char *buf,
  59. int *number, int *offset,
  60. int size, char *match);
  61. os_error *Filing_ReadDirEntry( char *dirname, filing_direntry *buf,
  62. int *number, int *offset,
  63. int size, char *match);
  64. os_error *Filing_ReadFullDirEntry( char *dirname, filing_fulldirentry *buf,
  65. int *number, int *offset,
  66. int size, char *match);
  67. os_error *Filing_ReadCatalogue( char *filename, filing_objtype *objtype,
  68. int *loadaddr, int *execaddr, int *length,
  69. int *attrib, int *filetype);
  70. os_error *Filing_SingleDirEntry( char *filename,
  71. filing_direntry *buf, int size);
  72. os_error *Filing_SingleDirEntry2( char *dirname,
  73. filing_direntry *buf,
  74. int size, char *filename);
  75. os_error *Filing_SingleFullDirEntry( char *filename,
  76. filing_fulldirentry *buf, int size);
  77. os_error *Filing_SingleFullDirEntry2( char *dirname,
  78. filing_fulldirentry *buf,
  79. int size, char *filename);
  80. char *Filing_GetPathname( char *filename, char *pathname);
  81. char *Filing_GetLeafname( char *filename, char *leafname);
  82. char *Filing_FindLeafname( char *filename);
  83. char *Filing_MakePath( char *newpath, char *dirname, char *leafname);
  84. os_error *Filing_CanonicalisePath( char *pathname, char *buffer,
  85. int size, int *spare);
  86. typedef os_error *(Filing_ScanDir_StartDir) ( char *dirname,
  87. filing_fulldirentry *dirdata);
  88. typedef os_error *(Filing_ScanDir_FoundFile) ( char *dirname,
  89. filing_fulldirentry *filedata);
  90. typedef os_error *(Filing_ScanDir_EndDir) ( char *dirname,
  91. filing_fulldirentry *dirdata);
  92. os_error *Filing_ScanDir( char *dirname,
  93. Filing_ScanDir_StartDir *startdirproc,
  94. Filing_ScanDir_FoundFile *foundfileproc,
  95. Filing_ScanDir_EndDir *enddirproc);
  96. os_error *Filing_ScanDirByDir( char *dirname,
  97. Filing_ScanDir_StartDir *startdirproc,
  98. Filing_ScanDir_FoundFile *foundfileproc,
  99. Filing_ScanDir_EndDir *enddirproc);
  100. #endif
  101.