
#define HASH_TAB_SIZE 211

typedef struct entry {
	char name[14];
	char attr;
	char copied;
	unsigned short ftime;
	unsigned short fdate;
	struct entry *next;
} ENTRY;

typedef struct {
	int mo;
	int day;
	int year;
	int mode;
} DATE;

typedef struct {
	int min;
	int hour;
	int mode;
} TIME;

typedef struct date_node{
	int fdate;
	int mode;
	struct date_node *next;
} DATE_NODE;

typedef struct time_node{
	int ftime;
	int mode;
	struct time_node *next;
} TIME_NODE;


/* options */

#define O_FROM_FILE 1
#define O_INTERACTIVE 2
#define O_CHECK 4
#define O_COPY_ALL 8
#define O_RECURSIVE 0x10
#define O_SOURCE_DIR 0x20
#define O_TARGET_DIR 0x40
#define O_VERBOSE 0x80
#define O_X_VERBOSE 0x100
#define O_MOVE 0x200
#define O_COPY_IF_SRC_OLDER 0x400
#define O_CP_IF_SRC_NEWER 0x800
#define O_COPY_HIDDEN 0x1000
#define O_DATE_CHECK 0x2000
#define O_TIME_CHECK 0x4000
#define O_GATHER 0x8000
#define O_BATCH 0x10000L
#define O_FROM_STDIN 0x20000L
#define O_TARGET_REMOVEABLE 0x40000L
#define O_ARCHIVE 0x80000L
#define O_LARGEFILES 0x100000L
#define O_ZAPTARGET 0x200000L
#define O_JOIN 0x400000L


#define USAGE_MESS "docp - Directory-Oriented CoPy, version 1.1\n\
Copyright (c) 1992, Roy Bixler\n\
    \"docp\" comes with ABSOLUTELY NO WARRANTY; for details type `docp -?'.\n\
    This is free software, and you are welcome to redistribute it\n\
    under certain conditions.\n\n\
Usage:\tdocp [-abcdfghijlmnorstvwz?] source_dir target_dir [file list]\n\
    -a - copy only files with archive bit set\n\
    -b - batch mode\n\
    -c - checks which files will be copied\n\
    -d date_range (e.g. ao3/31/91) - copies files within date range\n\
    -f filename - gets file list from filename\n\
    -g - gather files recursively, but do not create subdirectories\n\
    -h - copies hidden files also\n\
    -i - interactively confirms copying each file\n\
    -j - join files.  Append source to target (instead of overwriting target)\n\
    -l - split large files if target is full\n\
    -m - moves files\n\
    -n - only copies newer files\n\
    -o - only copies older files\n\
    -no - only copies files not in target directory\n\
    -r - recursively copies subdirectories as well\n\
    -s - gets reference list from source directory\n\
    -t - gets reference list from target directory\n\
    -v - verbose, reports files copied\n\
    -vv - extra verbose, reports files copied and not copied\n\
    -w time_range (e.g. bo1:34pm) - copies files within time range\n\
    -z - zap the target before copying\n\
    -? - shows more complete information on 'docp'\n"
