home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / utilities / e / extralib / !ExtrasLib / h / File < prev    next >
Text File  |  1996-03-03  |  3KB  |  94 lines

  1. /* File.h */
  2.  
  3. /* ExtrasLib by Peter Hartley 1995-96
  4.  * (K) All Rites Reversed - Copy What You Like
  5.  */
  6.  
  7. #ifndef __xtra_file_h
  8. #define __xtra_file_h
  9.  
  10. #ifndef __dl_core_h
  11. #include "<DeskLib$Dir>.Core.h"
  12. #endif
  13.  
  14.     /* pnambic macros for internal use */
  15. os_error *File__Op(int r0, int r1, int r2, int r3, int r4, int r5);
  16. os_error *File__Op4(int r0, int r1, int r2, int r3);
  17. os_error *File__Op3(int r0, int r1, int r2);
  18. os_error *File__Op2(int r0, int r1);
  19. #define File_Delete(n) File__Op2(6,(int)n)
  20. #define File_LoadFile(n,a) File__Op4(255,(int)n,(int)a,0)
  21. #define File_SaveMemory(n,l,e,s,f) File__Op(0,(int)n,l,e,(int)s,(int)f)
  22. #define File_SaveMemoryStamped(n,f,s,e) File__Op(10,(int)n,f,0,(int)s,(int)e)
  23. /* #define File_SetType(n,t) File__Op3(18,(int)n,t) */
  24. #define File_Stamp(n) File__Op2(9,(int)n)
  25. #define File_WriteCatInfo(n,l,e,a) File__Op(1,(int)n,l,e,0,(int)a)
  26.  
  27. typedef enum
  28. {
  29.     attribute_READ  = 1,
  30.     attribute_WRITE = 2,
  31.     attribute_PRIVATE = 4,
  32.     attribute_LOCKED = 8,
  33.     attribute_OTHERSREAD = 0x10,
  34.     attribute_OTHERSWRITE = 0x20,
  35.     attribute_OTHERSLOCKED = 0x80
  36. } file_attributes;
  37.  
  38. typedef struct
  39. {
  40.     int load;
  41.     int exec;
  42.     int length;                     /* ignored on write */
  43.     file_attributes attributes;
  44. } file_catinfo;
  45.  
  46. typedef struct
  47. {
  48.     int objecttype;
  49.     file_catinfo catinfo;
  50. } file_extcatinfo;
  51.  
  52. extern os_error *File_CreateDirectory( char *name );
  53.         /* OS_File 8 */
  54.  
  55. extern os_error *File_CreateEmpty( char *name, int filetype, int size );
  56.         /* OS_File 11 */
  57.  
  58. os_error *(File_Delete)( char *name );
  59. os_error *(File_LoadFile)( char *name, void *addr );
  60. os_error  *File_ReadCatInfo( char *name, file_extcatinfo *result );/* OS_File 5 */
  61. int        File_Size( char *name ); /* -1 => error */
  62. os_error *(File_SaveMemory)( char *name, int load, int exec,
  63.                             void *startaddr, void *endaddr );   /* OS_File 0 */
  64. os_error *(File_SaveMemoryStamped)( char *name, int filetype,
  65.                             void *startaddr, void *endaddr );   /* OS_File 10 */
  66. /*os_error *(File_SetType)( char *name, int filetype );          * OS_File 18 */
  67. os_error *(File_Stamp)( char *name );                           /* OS_File 9 */
  68. os_error *(File_WriteCatInfo)( char *name, int load, int exec,
  69.                             file_attributes attributes );       /* OS_File 1 */
  70.  
  71.  
  72. /* Veneers for OS_FSControl */
  73.  
  74. typedef enum {
  75.     fscontrol_RECURSE    =      1,
  76.     fscontrol_FORCE      =      2,
  77.     fscontrol_QUERY      =      8,
  78.     fscontrol_VERBOSE    = 0x0010,
  79.     fscontrol_USEAPP     = 0x0020,
  80.     fscontrol_DISCPROMPT = 0x0040,
  81.     fscontrol_MOVE       = 0x0080,
  82.     fscontrol_ALLOWPRINT = 0x0100,
  83.     fscontrol_NOATTRS    = 0x0200,
  84.     fscontrol_RESTAMP    = 0x0400,
  85.     fscontrol_STRUCTURE  = 0x0800,
  86.     fscontrol_NEWER      = 0x1000,
  87.     fscontrol_LOOK       = 0x4000
  88. } fscontrol_options;
  89.  
  90. /* Copies files */
  91. os_error *File_Copy( char *src, char *dest, fscontrol_options opts );
  92.  
  93. #endif
  94.