source: trunk/dll/avl.h@ 1036

Last change on this file since 1036 was 1029, checked in by Gregg Young, 17 years ago

Fixed early memory free; Added free_... functions to make fortify checking easier; Added fortify scopes; Delete now moves to trash can on systems with the xworkplace trash can installed.

File size: 2.9 KB
Line 
1
2/***********************************************************************
3
4 $Id: $
5
6 avl common definitions
7
8 Copyright (c) 1993-98 M. Kimes
9 Copyright (c) 2001, 2008 Steven H. Levine
10
11 05 Jan 08 SHL Move avl.c definitions here
12
13***********************************************************************/
14
15#if !defined(AVL_H)
16
17#define AVL_H
18
19// #include <stdio.h> // FILE
20// #include <time.h> // time_t
21
22#if !defined(OS2_INCLUDED)
23#define INCL_WINSTDCNR // CDATE
24#include <os2.h>
25#else
26#if !defined(INCL_WINSTDCNR)
27#error INCL_WINSTDCNR required
28#endif
29#endif
30
31#if defined(__IBMC__)
32#if __IBMC__ != 430
33#error VAC365 required for long long support
34#endif
35#if !defined(_LONG_LONG)
36#error Long long support not enabled
37#endif
38#endif
39
40typedef struct __arc_type__
41{
42 CHAR *id; // User id
43 CHAR *ext; // Extension (without leading dot)
44 LONG file_offset; // Offset to signature (0..n)
45 CHAR *list; // List command
46 CHAR *extract; // Extract command
47 CHAR *exwdirs; // Extract with directories command
48 CHAR *test; // Test command
49 CHAR *create; // Create without directories
50 CHAR *move; // Move into archive without directories
51 CHAR *createrecurse; // Create with recurse and directories
52 CHAR *createwdirs; // Create with directories
53 CHAR *movewdirs; // Move into archive with directories
54 CHAR *delete; // Delete from archive
55 CHAR *signature; // Archiver signature
56 CHAR *startlist; // Listing start marker (blank means no start marker)
57 CHAR *endlist; // Listing end marker (blank means next blank line or EOF)
58 INT siglen; // Signature length in bytes
59 INT osizepos; // Original file size position (0..n) or -1
60 INT nsizepos; // Compressed file size position or -1
61 INT fdpos; // File date position or -1
62 INT fdflds; // File date element count (typically 3) or -1
63 INT fnpos; // File name position or -1 if last
64 INT datetype; // Date field format
65 UINT comment_line_num; // Comment start in old sig file (1..n), 0 if none
66 UINT defn_line_num; // Definition start in old sig file (1..n), 0 if none
67 BOOL nameislast; // Name is last item on line
68 BOOL nameisnext; // File name is on next line
69 BOOL nameisfirst; // File name is first item on line
70 struct __arc_type__ *next;
71 struct __arc_type__ *prev;
72}
73ARC_TYPE;
74
75typedef struct
76{
77 ARC_TYPE *info;
78 CHAR listname[CCHMAXPATH];
79 CHAR arcname[CCHMAXPATH];
80 CHAR *errmsg;
81}
82ARCDUMP;
83
84ARC_TYPE *quick_find_type(CHAR * filespec, ARC_TYPE * topsig);
85ARC_TYPE *find_type(CHAR * filespec, ARC_TYPE * topsig);
86INT load_archivers(VOID);
87BOOL ArcDateTime(CHAR * dt, INT type, CDATE * cdate, CTIME * ctime);
88VOID free_arc_type(ARC_TYPE * pat);
89VOID free_archivers(VOID);
90
91// 05 Jan 08 SHL fixme for avl.c globals to be here
92
93#ifdef DEFINE_GLOBALS
94#pragma data_seg(GLOBAL1)
95#endif
96
97#endif // AVL_H
Note: See TracBrowser for help on using the repository browser.