Subversion Repositories tendra.SVN

Rev

Rev 2 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
/*
2
    		 Crown Copyright (c) 1997
3
 
4
    This TenDRA(r) Computer Program is subject to Copyright
5
    owned by the United Kingdom Secretary of State for Defence
6
    acting through the Defence Evaluation and Research Agency
7
    (DERA).  It is made available to Recipients with a
8
    royalty-free licence for its use, reproduction, transfer
9
    to other parties and amendment for any purpose not excluding
10
    product development provided that any such use et cetera
11
    shall be deemed to be acceptance of the following conditions:-
12
 
13
        (1) Its Recipients shall ensure that this Notice is
14
        reproduced upon any copies or amended versions of it;
15
 
16
        (2) Any amended version of it shall be clearly marked to
17
        show both the nature of and the organisation responsible
18
        for the relevant amendment or amendments;
19
 
20
        (3) Its onward transfer from a recipient to another
21
        party shall be deemed to be that party's acceptance of
22
        these conditions;
23
 
24
        (4) DERA gives no warranty or assurance as to its
25
        quality or suitability for any purpose and DERA accepts
26
        no liability whatsoever in relation to any use to which
27
        it may be put.
28
*/
29
 
30
 
31
/**** arg-data.h --- Command line argument data ADT.
32
 *
33
 ** Author: Steve Folkes <smf@hermes.mod.uk>
34
 *
35
 **** Commentary:
36
 *
37
 * See the file "arg-data.c" for more information.
38
 *
39
 **** Change Log:
40
 * $Log: arg-data.h,v $
41
 * Revision 1.1.1.1  1998/01/17  15:57:16  release
42
 * First version to be checked into rolling release.
43
 *
44
 * Revision 1.3  1995/07/07  15:31:55  smf
45
 * Updated to support TDF specification 4.0.
46
 *
47
 * Revision 1.2  1994/12/12  11:43:54  smf
48
 * Performing changes for 'CR94_178.sid+tld-update' - bringing in line with
49
 * OSSG C Coding Standards.
50
 *
51
 * Revision 1.1.1.1  1994/07/25  16:03:22  smf
52
 * Initial import of TDF linker 3.5 non shared files.
53
 *
54
**/
55
 
56
/****************************************************************************/
57
 
58
#ifndef H_ARG_DATA
59
#define H_ARG_DATA
60
 
61
#include "os-interface.h"
62
#include "cstring.h"
63
#include "cstring-list.h"
64
#include "dalloc.h"
65
#include "dstring.h"
66
#include "name-key.h"
67
#include "ostream.h"
68
 
69
/*--------------------------------------------------------------------------*/
70
 
71
typedef struct ShapeControlEntryT {
72
    struct ShapeControlEntryT  *next;
73
    NStringT			shape;
74
    BoolT			all;
75
    NameKeyListT		names;
76
} ShapeControlEntryT, *ShapeControlEntryP;
77
 
78
typedef struct ShapeControlT {
79
    ShapeControlEntryP		head;
80
} ShapeControlT, *ShapeControlP;
81
 
82
typedef struct RenameControlEntryT {
83
    struct RenameControlEntryT *next;
84
    NStringT			shape;
85
    NameKeyPairListT		names;
86
} RenameControlEntryT, *RenameControlEntryP;
87
 
88
typedef struct RenameControlT {
89
    RenameControlEntryP		head;
90
} RenameControlT, *RenameControlP;
91
 
92
typedef struct ArgDataT {
93
    BoolT			all_hide_defined;
94
    BoolT			suppress_mult;
95
    ShapeControlT		hides;
96
    ShapeControlT		keeps;
97
    ShapeControlT		suppresses;
98
    RenameControlT		renames;
99
    BoolT			extract_all;
100
    BoolT			extract_basename;
101
    BoolT			extract_match_base;
102
    BoolT			content_index;
103
    BoolT			content_size;
104
    BoolT			content_version;
105
    OStreamT			debug_file;
106
    CStringP			default_output_file;
107
    CStringP			output_file;
108
    unsigned			num_library_files;
109
    unsigned			num_library_paths;
110
    union {
111
	struct {
112
	    CStringListT	file;
113
	    CStringListT	path;
114
	} list;
115
	struct {
116
	    CStringP	       *file;
117
	    CStringP	       *path;
118
	} vector;
119
    } library;
120
    CStringP			unit_file;
121
    unsigned			num_files;
122
    CStringP		       *files;
123
} ArgDataT, *ArgDataP;
124
 
125
/*--------------------------------------------------------------------------*/
126
 
127
extern void			shape_control_iter
128
	PROTO_S ((ShapeControlP, void (*) (NStringP, BoolT, NameKeyListP,
129
					   GenericP), GenericP));
130
extern void			rename_control_iter
131
	PROTO_S ((RenameControlP, void (*) (NStringP, NameKeyPairListP,
132
					    GenericP), GenericP));
133
 
134
extern void			arg_data_init
135
	PROTO_S ((ArgDataP, CStringP));
136
extern void			arg_data_set_all_hide_defd
137
	PROTO_S ((ArgDataP, BoolT));
138
extern BoolT			arg_data_get_all_hide_defd
139
	PROTO_S ((ArgDataP));
140
extern void			arg_data_set_suppress_mult
141
	PROTO_S ((ArgDataP, BoolT));
142
extern BoolT			arg_data_get_suppress_mult
143
	PROTO_S ((ArgDataP));
144
extern void			arg_data_add_hide
145
	PROTO_S ((ArgDataP, CStringP, CStringP));
146
extern void			arg_data_add_hide_defined
147
	PROTO_S ((ArgDataP, CStringP));
148
extern ShapeControlP		arg_data_get_hides
149
	PROTO_S ((ArgDataP));
150
extern void			arg_data_add_keep
151
	PROTO_S ((ArgDataP, CStringP, CStringP));
152
extern void			arg_data_add_keep_all
153
	PROTO_S ((ArgDataP, CStringP));
154
extern ShapeControlP		arg_data_get_keeps
155
	PROTO_S ((ArgDataP));
156
extern void			arg_data_add_suppress
157
	PROTO_S ((ArgDataP, CStringP, CStringP));
158
extern void			arg_data_add_suppress_all
159
	PROTO_S ((ArgDataP, CStringP));
160
extern ShapeControlP		arg_data_get_suppresses
161
	PROTO_S ((ArgDataP));
162
extern void			arg_data_add_rename
163
	PROTO_S ((ArgDataP, NStringP, NameKeyP, NameKeyP));
164
extern void			arg_data_parse_rename
165
	PROTO_S ((ArgDataP, CStringP, CStringP, CStringP));
166
extern RenameControlP		arg_data_get_renames
167
	PROTO_S ((ArgDataP));
168
extern void			arg_data_set_extract_all
169
	PROTO_S ((ArgDataP, BoolT));
170
extern BoolT			arg_data_get_extract_all
171
	PROTO_S ((ArgDataP));
172
extern void			arg_data_set_extract_basename
173
	PROTO_S ((ArgDataP, BoolT));
174
extern BoolT			arg_data_get_extract_basename
175
	PROTO_S ((ArgDataP));
176
extern void			arg_data_set_extract_match_base
177
	PROTO_S ((ArgDataP, BoolT));
178
extern BoolT			arg_data_get_extract_match_base
179
	PROTO_S ((ArgDataP));
180
extern void			arg_data_set_content_index
181
	PROTO_S ((ArgDataP, BoolT));
182
extern BoolT			arg_data_get_content_index
183
	PROTO_S ((ArgDataP));
184
extern void			arg_data_set_content_size
185
	PROTO_S ((ArgDataP, BoolT));
186
extern BoolT			arg_data_get_content_size
187
	PROTO_S ((ArgDataP));
188
extern void			arg_data_set_content_version
189
	PROTO_S ((ArgDataP, BoolT));
190
extern BoolT			arg_data_get_content_version
191
	PROTO_S ((ArgDataP));
192
extern void			arg_data_set_debug_file
193
	PROTO_S ((ArgDataP, CStringP));
194
extern OStreamP			arg_data_get_debug_file
195
	PROTO_S ((ArgDataP));
196
extern void			arg_data_set_output_file
197
	PROTO_S ((ArgDataP, CStringP));
198
extern CStringP			arg_data_get_output_file
199
	PROTO_S ((ArgDataP));
200
extern void			arg_data_add_library_file
201
	PROTO_S ((ArgDataP, CStringP));
202
extern void			arg_data_add_library_path
203
	PROTO_S ((ArgDataP, CStringP));
204
extern void			arg_data_vector_libraries
205
	PROTO_S ((ArgDataP));
206
extern unsigned			arg_data_num_library_files
207
	PROTO_S ((ArgDataP));
208
extern unsigned			arg_data_num_library_paths
209
	PROTO_S ((ArgDataP));
210
extern CStringP		       *arg_data_library_files
211
	PROTO_S ((ArgDataP));
212
extern CStringP		       *arg_data_library_paths
213
	PROTO_S ((ArgDataP));
214
extern void			arg_data_set_unit_file
215
	PROTO_S ((ArgDataP, CStringP));
216
extern void			arg_data_set_files
217
	PROTO_S ((ArgDataP, int, CStringP *));
218
extern unsigned			arg_data_get_num_files
219
	PROTO_S ((ArgDataP));
220
extern CStringP		       *arg_data_get_files
221
	PROTO_S ((ArgDataP));
222
 
223
#endif /* !defined (H_ARG_DATA) */
224
 
225
/*
226
 * Local variables(smf):
227
 * eval: (include::add-path-entry "../os-interface" "../library" "../tdf")
228
 * eval: (include::add-path-entry "../generated")
229
 * End:
230
**/