home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Professional
/
OS2PRO194.ISO
/
os2
/
com
/
bbs
/
downsrt
/
source
/
downsort.h
< prev
next >
Wrap
C/C++ Source or Header
|
1991-06-07
|
7KB
|
197 lines
/*
header file for DOWNSORT.C */
#define bit unsigned
#define sword signed int
#define word unsigned int
#define dword long int
#define byte unsigned char
#include "..\maximus\area_max.h" // AREA.DAT layout union
/*----------------------------*/
/* MAXIMUS user Access levels */
/*----------------------------*/
#define TWIT (-2)
#define DISGRACE 0
#define LIMITED 1
#define NORMAL 2
#define WORTHY 3
#define PRIVIL 4
#define FAVORED 5
#define EXTRA 6
#define CLERK 7
#define ASSTSYSOP 8
#define SYSOP 10
#define HIDDEN 11
#define MAXFN 13
#define MAXRCD 256
#define MAXDESC (MAXRCD-MAXFN-3)
#define MAXPATH 128
#define MAXTIT 20
#define TRUNC 'T'
#define WRAP 'W'
#define QUIET 'Q'
#define VERBOSE 'V'
#define HELP 'H'
#define QMARK '?'
#define ALPHA 'A'
#define TIMESTAMP 'D'
#define KEEPSEQ 'K'
#define FONT 'F'
#define EXCLPRIV 'X'
#define INCLUDE 'I'
#define DAYS_30 '+'
#define DAYS_7 '*'
#define FONT0 0
#define FONT1 1
#define FONT2 2
#define FONT3 3
#define FONT4 4
#define LINE1 0
#define LINE2 1
#define LINE3 2
#define LINE4 3
#define LINE5 4
/* (foreground) COLORS */
#define O_BLINK 0x80
#define O_BRIGHT 0x08
#define O_LIGHT 0x08
#define O_BLACK 0x00
#define O_BLUE 0x01
#define O_GREEN 0x02
#define O_CYAN 0x03
#define O_RED 0x04
#define O_MAGENTA 0x05
#define O_BROWN 0x06
#define O_GRAY 0x07
#define O_YELLOW (O_BRIGHT+O_BROWN)
#define O_WHITE (O_BRIGHT+O_GRAY)
struct _filechain { // file information
struct _filechain *next_element; // to next element
struct _downpath *parea; // pointer to area-structure
struct _FDATE wdate; // file date (last write)
struct _FTIME wtime; // file time (last write)
struct _FDATE cdate; // file date (creation)
struct _FTIME ctime; // file time (creation)
ULONG size; // file size
USHORT attr; // attribute
USHORT fseq; // FILES.BBS sequence number
int priv; // privilege
char fname[MAXFN]; // filename
char *fdesc; // ptr to file description
};
struct _downpath { // download area information
int priv; // Area Privilege integer
char name[40]; // Area name
USHORT file_count; // Area file count for area summary
ULONG byte_count; // Area byte count for area summary
char pname[80]; // Download-pathname
char filesbbs[80]; // Path to FILES.BBS
char adesc[80]; // Filearea description
};
#define P_BBS 0 // Symbolic parameter table
#define P_FIL 1 // entry index values
#define P_GBL 2 // for the different lists
#define P_NEW 3
#define P_ALL 4
#define P_IPF 5
#define P_ORP 6
#define P_MAX 6 // indicates highest index!
struct _listparm { // list parameters
int priv[10]; // max file priv to list
int tfont; // title font
unsigned int max_fil; // maximum # of files to list
char sortflag; // file sequence (name/date)
char wrapflag; // wrap or truncate
char exclflag; // privilege indication flag
char name[9]; // list filename
char ext[4]; // list extension
char *incl_fspec; // ptr to include-filespec
};
/* externs for global variables */
extern char PROGNAME[],PROGDESC[],AUTHOR[],CITY[],PHONE[],FIDO[];
extern char VERSION,SUBVERS,SUFFIX;
extern char MAX[],MSG_MEM[],MSG_SRT[],MSG_RST[],MSG_TRL[],MSG_REC[],
OPEN_FAIL[],DESC_MISS[],
HS[],HD[],FN[],AC[],DT[],SZ[],DS[],FP[],NDS[],ORPHAN[],
BAK[],EMPTY[];
extern char today[],list_title[],
filesbbs_path[],areadat_path[],cfg_path[];
extern char *priv_name[],*pre_title[],*sub_title[],*bot_lines[];
extern char wrap_flag,oper_mode,sort_mode;
extern USHORT area_count,file_count,title_font;
extern USHORT title_lines[];
extern int MAX_level,ABS_MAX_priv;
extern ULONG byte_count;
extern struct _filechain *first_element;
extern struct _listparm lp[];
extern struct _COUNTRYCODE c_code;
extern struct _COUNTRYINFO c_info;
/* function prototypes */
char *asciiz(char *);
USHORT collect_down(struct _downpath **);
USHORT collect_file(USHORT, struct _downpath *);
void file_incl(FILE *, char[]);
int conv_priv(char *, int *, USHORT);
USHORT count_areas(struct _downpath *, int);
ULONG count_bytes(struct _filechain **, int);
USHORT count_files(struct _filechain **, int);
char *f_date(struct _FDATE);
char *f_time(struct _FTIME);
char file_age_ind(struct _FDATE, struct _FTIME);
long file_time(struct _FDATE, struct _FTIME);
USHORT fill_chn(struct _downpath *, struct _filechain **);
USHORT free_orphan(struct _filechain *);
void get_desc(USHORT, struct _filechain *, struct _downpath *);
void get_parm(int,char *[]);
void list_parm(int, char *, int);
void make_all(struct _filechain **, struct _downpath *, int);
void make_bbs(struct _filechain **, USHORT, int);
void make_fil(struct _filechain **, int);
void make_gbl(struct _filechain **, int);
void make_ipf(struct _filechain **, struct _downpath *, int);
void make_new(struct _filechain **, USHORT, int);
void make_orp(struct _filechain **);
char *next_word(char *);
struct _filechain *new_acq(struct _filechain *, struct _filechain *);
int parse_keyword(char *,char **);
struct _filechain **prep_sort(USHORT, struct _filechain *);
void psort(struct _filechain **, int, int, int (*)(void *, void *));
void read_cfg(char *);
void show_help(void);
void show_welcome(void);
void signature(void *, char *);
int sort_all(struct _filechain **, struct _filechain **);
int sort_al2(struct _filechain **, struct _filechain **);
int sort_akp(struct _filechain **, struct _filechain **);
int sort_fil(struct _filechain **, struct _filechain **);
int sort_gbl(struct _filechain **, struct _filechain **);
int sort_new(struct _filechain **, struct _filechain **);
int sort_summ(struct _downpath *, struct _downpath *);
char *stripf(char *);
char *strnblk(char *, int, int, int);
int strsubw(char *, char **, int);
char *sys_date(char *);
int non_wild_init(int, char *, char *);
void title_line(char *, char *[]);
int wild_init(int, char *, char *);
int wild_comp(int, char *,char *);