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