home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 2 BBS / 02-BBS.zip / dwnsrs59.zip / DOWNSORT.H < prev    next >
C/C++ Source or Header  |  1993-12-18  |  9KB  |  209 lines

  1. /* ===================================== */
  2. /* Header file for DOWNSORT : DOWNSORT.H */
  3. /* ===================================== */
  4.  
  5. /* used in Maximus CBCS structures */
  6.  
  7. #ifndef __32BIT__
  8.   #define _HUGE  huge                   /* migration! */
  9. #else
  10.   #define _HUGE                         /* empty */
  11. #endif
  12.  
  13. #define MAXANAME    10
  14. #define MAXFN       13
  15. #define MAXRCD    2048
  16. #define MAXDESC    (MAXRCD-MAXFN-3)
  17. #define MAXPATH    256
  18. #define MAXTIT      20
  19.  
  20. #define QMARK       '?'
  21. #define ALPHA       'A'
  22. #define CONT        'C'
  23. #define TIMESTAMP   'D'
  24. #define FONT        'F'
  25. #define GROUP       'G'
  26. #define HELP        'H'
  27. #define INCLUDE     'I'
  28. #define KEEPSEQ     'K'
  29. #define LONGLIST    'L'
  30. #define QUIET       'Q'
  31. #define RUBBDATE    '-'
  32. #define TRUNC       'T'
  33. #define VERBOSE     'V'
  34. #define WRAP        'W'
  35. #define EXCLPRIV    'X'
  36.  
  37. #define FALSE      0
  38. #define  TRUE      1
  39.  
  40. #define AVA_A      1                 /* ^A  */
  41. #define AVA_B      2                 /* ^B  */
  42. #define AVA_C      3                 /* ^C  */
  43. #define AVA_D      4                 /* ^D  */
  44. #define AVA_E      5                 /* ^E  */
  45. #define AVA_F      6                 /* ^F  */
  46. #define AVA_G      7                 /* ^G  */
  47. #define AVA_H      8                 /* ^H  */
  48. #define AVA_I      9                 /* ^I  */
  49. #define AVA_J      10                /* ^J  */
  50. #define AVA_K      11                /* ^K  */
  51. #define AVA_L      12                /* ^L  */
  52. #define AVA_M      13                /* ^M  */
  53. #define AVA_N      14                /* ^N  */
  54. #define AVA_V      22                /* ^V  */
  55. #define AVA_W      23                /* ^W  */
  56. #define AVA_Y      25                /* ^Y  */
  57.  
  58. #define DAYS_30     '+'
  59. #define DAYS_7      '*'
  60.  
  61. #define FONT0       0
  62. #define FONT1       1
  63. #define FONT2       2
  64. #define FONT3       3
  65. #define FONT4       4
  66.  
  67. enum  {LINE1, LINE2, LINE3, LINE4, LINE5};
  68.  
  69. /* (foreground) COLORS */
  70.  
  71. #define O_BLINK   0x80
  72. #define O_BRIGHT  0x08
  73. #define O_LIGHT   0x08
  74.  
  75. #define O_BLACK   0x00
  76. #define O_BLUE    0x01
  77. #define O_GREEN   0x02
  78. #define O_CYAN    0x03
  79. #define O_RED     0x04
  80. #define O_MAGENTA 0x05
  81. #define O_BROWN   0x06
  82. #define O_GRAY    0x07
  83. #define O_YELLOW  (O_BRIGHT+O_BROWN)
  84. #define O_WHITE   (O_BRIGHT+O_GRAY)
  85.  
  86. typedef struct _filechain {             /* file information           */
  87.         struct _filechain *next_element;  /* pointer to next element  */
  88.         struct _downpath *parea;        /* pointer to area-structure  */
  89.         char   *fdesc;                  /* ptr to file description    */
  90.         char   *fpath;                  /* ptr to file path           */
  91.         ULONG  size;                    /* file size                  */
  92.         union  {
  93.                 FDATE   date;          /* file date (last write)     */
  94.                 unsigned int idate;
  95.                 } wd;
  96.         union  {
  97.                 FTIME   time;          /* file time (last write)     */
  98.                 unsigned int itime;
  99.                 } wt;
  100.         union  {
  101.                 FDATE   date;           /* file date (creation)       */
  102.                 unsigned int idate;
  103.                  } cd;
  104.         union   {
  105.                 FTIME   time;           /* file time (creation)       */
  106.                 unsigned int itime;
  107.                  } ct;
  108.         USHORT fseq;                    /* FILES.BBS sequence number  */
  109.         short  int priv;                /* file privilege             */
  110.         unsigned int dl_b:1,            /* unlimited download (bytes) */
  111.                      dl_t:1,            /* unlimited download (time)  */
  112.                      cmt:1;             /* files.bbs comment entry    */
  113.         char   fname[MAXFN];            /* filename                   */
  114.           } FILECHAIN;
  115.  
  116. typedef struct _downpath {              /* download area information  */
  117.         struct _filechain *newest;      /* pointer to most recent     */
  118.         ULONG  byte_count;              /* Area byte count area summ. */
  119.         ULONG  file_count;              /* Area file count area summ. */
  120.         short int priv;                 /* Area Privilege             */
  121.         short int anum;                 /* Area sequence number       */
  122.         ULONG  filelock;                /* MAX area file lock bits    */
  123.         char   name[MAXANAME];          /* MAX Area name              */
  124.         char   ename[MAXANAME];         /* edited right aligned       */
  125.         char   pname[80];               /* Download-pathname          */
  126.         char   filesbbs[80];            /* Path to FILES.BBS          */
  127.         char   adesc[80];               /* Filearea description       */
  128.           } DOWNPATH;
  129.  
  130. enum  ListType {P_BBS, P_FIL, P_GBL, P_NEW, P_ALL,
  131.                 P_IPF, P_DUP, P_ORP, P_OK, P_IP2, P_EMI,
  132.                 P_MAX=P_EMI};
  133.  
  134. typedef struct _listparm {              /* list parameters            */
  135.         struct _listparm *next;         /* pointer to next list parms */
  136.         ULONG  userkeys;                /* userkeys for filelocks     */
  137.         short  int id;                  /* list type indicator        */
  138.         short  int priv;                /* max file priv to list      */
  139.         short  int tfont;               /* title font                 */
  140.         SHORT  max_fil;                 /* maximum # of files to list */
  141.         short int desc_indent;          /* description cont. indent   */
  142.         char   *incl_fspec;             /* ptr to include-filespec    */
  143.         char   longflag,                /* long OK-file or FILES.BBS  */
  144.                sortflag,                /* file seq. (name/date/keep) */
  145.                wrapflag,                /* wrap/truncate file descr.  */
  146.                exclflag,                /* privilege exclude flag     */
  147.                listflag,                /* max list length in number  */
  148.                                         /*   or in days, weeks, months*/
  149.                rubbflag;                /* report rubbish CDROM dates */
  150.         char   name[9];                 /* list filename              */
  151.         char   ext[4];                  /* list extension             */
  152.           } LISTPARM;
  153.  
  154. typedef struct _strchain {              /* string chain element */
  155.         struct _strchain *next;         /* pointer to next */
  156.         char   *str;                    /* pointer to string */
  157.           } STRCHAIN;
  158.  
  159. typedef struct _dupchain {              /* Duplicate .ext chain element */
  160.         struct _dupchain *next;         /* pointer to next */
  161.         char   ext1[4],                 /* extension 1 */
  162.                ext2[4];                 /* extension 2 */
  163.           } DUPCHAIN;
  164.  
  165. typedef struct _areagroup {             /* Duplicate .ext chain element */
  166.         ULONG             keys;         /* userkeys bitstring */
  167.         struct _strchain *incl;         /* pointer to include chain */
  168.         struct _strchain *excl;         /* pointer to exclude chain */
  169.           } AREAGROUP;
  170.  
  171. /* externs for global variables */
  172.  
  173. extern char   VERSION,SUBVERS,SUFFIX;
  174. extern char   *PROGNAME, *PROGDESC, *AUTHOR, *CITY, *PHONE, *FIDO, *MAX,
  175.               *MSG_ARC, *MSG_ARD, *MSG_ARE, *MSG_ARO, *MSG_CFG, *MSG_COA,
  176.               *MSG_COF, *MSG_FNT, *MSG_IEC, *MSG_KWD, *MSG_MEM, *MSG_MX1,
  177.               *MSG_MX2, *MSG_OPA, *MSG_OPC, *MSG_OPI, *MSG_OPO, *MSG_ORP,
  178.               *MSG_PAR, *MSG_SRT, *MSG_RST, *MSG_TRL, *MSG_REC, *MSG_REP,
  179.               *MSG_UNK, *MSG_ZF,  *MSG_ZP,
  180.               *OPEN_FAIL, *FILPREFX,
  181.               *BY, *FN, *FS, *AC, *DT, *TM, *SZ, *DS, *FP, *SUMM,
  182.               *MO, *MP, *DF,
  183.               *BAK, *DOT, *EMPTY, *WK, *DAYS, *MONTHS, *WEEKS, *WRITE;
  184. extern char   *priv_name[];
  185. extern char    NDS[],ORPHAN[],OFFLINE[];
  186. extern char    today[], list_title[], areadat_path[],
  187.                filesbbs_path[], cfg_path[], buf2[];
  188. extern STRCHAIN *pre_title, *sub_title, *bot_title;
  189. extern STRCHAIN *incl_area, *excl_area;
  190. extern STRCHAIN *excl_file;
  191. extern STRCHAIN *area_group;
  192. extern DUPCHAIN *non_dup_ext;
  193. extern char   wrap_flag, oper_mode, keepseq;
  194. extern int    area_seq;
  195. extern char   strip_ava;
  196. extern int    area_IN_EX;
  197. extern short int   MAX_level, ABS_MAX_priv;
  198. extern USHORT      area_total_count;
  199. extern USHORT      max_aname;
  200. extern ULONG       areakeys;
  201. extern ULONG       file_total_count;
  202. extern USHORT      title_font;
  203. extern ULONG       byte_count;
  204. extern FILECHAIN  *first_element;
  205. extern LISTPARM    lp[];
  206. extern COUNTRYCODE c_code;
  207. extern COUNTRYINFO c_info;
  208.  
  209.