home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d1xx
/
d128
/
mrbackup.lha
/
MRBackup
/
MRBackup.h
< prev
next >
Wrap
C/C++ Source or Header
|
1988-01-02
|
6KB
|
196 lines
/* MRBackup - include file for global data and definitions.
* Filename: MRBackup.h
* Date: 08/22/87
*
* History: (most recent change first)
*
* 09/03/87 -MRR- V1.3: Changed window version and date.
*/
/* Main.c defines MAIN. It should not defined elsewhere. */
#ifdef MAIN
#define EXTERN
#else
#define EXTERN extern
#endif
#include <exec/memory.h>
#include <exec/types.h>
#include <intuition/intuition.h>
#include <libraries/dos.h>
#include <libraries/dosextens.h>
#include <stdio.h>
#include <ctype.h>
#include <setjmp.h>
#include <time.h>
#include <functions.h>
#include "gadget.h"
#include "menu.h"
/* Constants */
#define false 0 /* for short parameter requirements */
#define true 1 /* for short parameter requirements */
#define BUFMAX (32L * 1024L) /* max size for copy/compress buffer */
#define LINES_PER_PAGE 60
#define VOLUME_MAX 32 /* max characters in volume name */
#define PATH_MAX 256 /* max characters in pathname (very arbitrary) */
/* Define error recovery constants. Note that these are all powers
* of 2 to allow creating 'sets' of allowable options during the
* recovery prompt.
*/
#define NERRCODE 5 /* number of error recovery codes */
#define ERR_NONE 0 /* what we want ALL the time :-) */
#define ERR_ABORT 1 /* give up the ship */
#define ERR_RETRY_FILE 2 /* let's try that file one more time */
#define ERR_RESTART_VOLUME 4 /* for media errors on output floppy */
#define ERR_IGNORE 8 /* ignore this error and trudge on */
/* Macros */
/* determine if a menu item is "checked" */
#define GadgetString(g) ((struct StringInfo *) g->SpecialInfo)->Buffer
#define IsChecked(item) (item->Flags & CHECKED == CHECKED)
typedef struct t_pattern {
struct t_pattern * next_pattern;
char *pattern;
} T_PATTERN;
/* The following structure is used to link file and directory node
* information into a doubly-linked list. This provides a way to
* defer processing of sub-directory nodes until all files in a
* current directory are processed. As nodes are "consumed", they
* are returned to free memory.
*/
typedef struct t_file {
struct t_file *previous,*next;
char *filename;
USHORT blocks;
BOOL is_dir; /* TRUE => it's a directory */
} T_FILE;
/* The following structure links lists of T_FILE nodes. */
typedef struct t_file_list {
T_FILE *first_file;
T_FILE *last_file;
} T_FILE_LIST;
/* External and forward function declarations */
extern char *calloc(), *index(), *rindex();
extern long DiskBlocks();
extern int errno;
T_FILE *FindFile();
/* External data */
extern struct Gadget StopGad;
extern struct Menu Titles[];
extern struct MenuItem Items[];
extern struct Window *pathwindow;
/* Global data */
#ifdef DEBUG
EXTERN struct FileHandle *debugconsole;
EXTERN char debugmsg[512];
#endif
EXTERN short back; /* backup disk serial number */
EXTERN UBYTE *buffer; /* file copy/cmprs buffer (AllocMem) */
EXTERN ULONG bufsize; /* size of buffer allocated */
EXTERN struct FileHandle *console; /* for informative messages */
EXTERN char conmsg[512];
EXTERN T_FILE *current_dir = NULL; /* current directory node */
EXTERN char destpath[PATH_MAX+1];
EXTERN char destvol[VOLUME_MAX+1];
EXTERN BOOL exclude_has_changed; /* true when new path specified */
EXTERN T_PATTERN *excludelist, *lastexclude;
EXTERN char excludepath[81]; /* list of file patterns to exclude */
EXTERN struct IntuitionBase *IntuitionBase;
EXTERN USHORT level; /* file nesting level */
EXTERN USHORT linecount; /* number of lines in listing */
EXTERN FILE *listing;
EXTERN T_FILE_LIST main_list;
EXTERN struct Window *mywindow;
EXTERN struct DateStamp *now, *since; /* for date comparisons */
EXTERN short size; /* floppy blocks remaining */
EXTERN char srcpath[PATH_MAX];
EXTERN char srcvol[VOLUME_MAX+1]; /* source volume name */
EXTERN char temp[256];
/* The following flags suppress repetition of spoken
* messages. After all, let's not over-do it.
*/
EXTERN UBYTE at_your_service;
/* Preset data */
#ifdef MAIN
char backpath[81] = "DF0:"; /* where backups go and restores
come from. */
char destdrive[5] = "DF0:";
USHORT do_compress = 1; /* compression flag */
USHORT do_listing = 1; /* listing flag */
USHORT do_speech = 1; /* speech flag */
char *erropts[NERRCODE] = { /* error recovery options */
"No error",
"Abort processing",
"Retry this file",
"Restart the output volume",
"Ignore this error"
};
char homepath[81] = "DH0:"; /* where files are backed up from and
restored to. */
char listpath[81] = "PRT:"; /* where we send all of that vital
information about backups */
struct NewWindow nw = { /* New window structure */
0,0,640,200,0,1,
/* IDCMP Flags */
MENUPICK | MOUSEBUTTONS | DISKINSERTED |
CLOSEWINDOW | GADGETDOWN | GADGETUP | REQSET,
/* Flags */
WINDOWCLOSE | WINDOWDEPTH | ACTIVATE ,
NULL, /* First gadget */
NULL, /* Checkmark */
(UBYTE *)"MRBackup Version 1.3 09/03/87",/* Window title */
NULL, /* No custom streen */
NULL, /* Not a super bitmap window */
0,0,640,200, /* Not used, but set up anyway */
WBENCHSCREEN
};
#else
/* Declare preset external data without the presets. */
extern char backpath[81];
extern char destdrive[5];
extern USHORT do_compress; /* compression flag */
extern USHORT do_listing; /* listing flag */
extern USHORT do_speech; /* speech flag */
extern char destdrive[];
extern char *erropts[];
extern char homepath[81];
extern char listpath[81];
extern struct NewWindow nw;
#endif