home *** CD-ROM | disk | FTP | other *** search
- /* File.h */
-
- /* ExtrasLib by Peter Hartley 1995-96
- * (K) All Rites Reversed - Copy What You Like
- */
-
- #ifndef __xtra_file_h
- #define __xtra_file_h
-
- #ifndef __dl_core_h
- #include "<DeskLib$Dir>.Core.h"
- #endif
-
- /* pnambic macros for internal use */
- os_error *File__Op(int r0, int r1, int r2, int r3, int r4, int r5);
- os_error *File__Op4(int r0, int r1, int r2, int r3);
- os_error *File__Op3(int r0, int r1, int r2);
- os_error *File__Op2(int r0, int r1);
- #define File_Delete(n) File__Op2(6,(int)n)
- #define File_LoadFile(n,a) File__Op4(255,(int)n,(int)a,0)
- #define File_SaveMemory(n,l,e,s,f) File__Op(0,(int)n,l,e,(int)s,(int)f)
- #define File_SaveMemoryStamped(n,f,s,e) File__Op(10,(int)n,f,0,(int)s,(int)e)
- /* #define File_SetType(n,t) File__Op3(18,(int)n,t) */
- #define File_Stamp(n) File__Op2(9,(int)n)
- #define File_WriteCatInfo(n,l,e,a) File__Op(1,(int)n,l,e,0,(int)a)
-
- typedef enum
- {
- attribute_READ = 1,
- attribute_WRITE = 2,
- attribute_PRIVATE = 4,
- attribute_LOCKED = 8,
- attribute_OTHERSREAD = 0x10,
- attribute_OTHERSWRITE = 0x20,
- attribute_OTHERSLOCKED = 0x80
- } file_attributes;
-
- typedef struct
- {
- int load;
- int exec;
- int length; /* ignored on write */
- file_attributes attributes;
- } file_catinfo;
-
- typedef struct
- {
- int objecttype;
- file_catinfo catinfo;
- } file_extcatinfo;
-
- extern os_error *File_CreateDirectory( char *name );
- /* OS_File 8 */
-
- extern os_error *File_CreateEmpty( char *name, int filetype, int size );
- /* OS_File 11 */
-
- os_error *(File_Delete)( char *name );
- os_error *(File_LoadFile)( char *name, void *addr );
- os_error *File_ReadCatInfo( char *name, file_extcatinfo *result );/* OS_File 5 */
- int File_Size( char *name ); /* -1 => error */
- os_error *(File_SaveMemory)( char *name, int load, int exec,
- void *startaddr, void *endaddr ); /* OS_File 0 */
- os_error *(File_SaveMemoryStamped)( char *name, int filetype,
- void *startaddr, void *endaddr ); /* OS_File 10 */
- /*os_error *(File_SetType)( char *name, int filetype ); * OS_File 18 */
- os_error *(File_Stamp)( char *name ); /* OS_File 9 */
- os_error *(File_WriteCatInfo)( char *name, int load, int exec,
- file_attributes attributes ); /* OS_File 1 */
-
-
- /* Veneers for OS_FSControl */
-
- typedef enum {
- fscontrol_RECURSE = 1,
- fscontrol_FORCE = 2,
- fscontrol_QUERY = 8,
- fscontrol_VERBOSE = 0x0010,
- fscontrol_USEAPP = 0x0020,
- fscontrol_DISCPROMPT = 0x0040,
- fscontrol_MOVE = 0x0080,
- fscontrol_ALLOWPRINT = 0x0100,
- fscontrol_NOATTRS = 0x0200,
- fscontrol_RESTAMP = 0x0400,
- fscontrol_STRUCTURE = 0x0800,
- fscontrol_NEWER = 0x1000,
- fscontrol_LOOK = 0x4000
- } fscontrol_options;
-
- /* Copies files */
- os_error *File_Copy( char *src, char *dest, fscontrol_options opts );
-
- #endif
-