Description of compile-time switches to defgb (29 Jun 99)
(for versions 3.7 and later-see "Incompatibilities w/earlier versions")
defgb accepts a number of compile-time switches. Most of
them control what functions defgb will perform. One of them,
METHOD_NAME, specifies a string that will appear in diagnostic messages.
See defgb documentation (currently in the code) for more information.
Note that more than one module may have to be compiled using
a particular switch. In general, all modules that use the include file
defgb.h must be recompiled. Search each source module either for the
switch you are setting, or the string "defgb.h".
The switches with their default values follow. For descriptions, see
the code. Also see the code for how the values "look" to the C code.
Specifying values on a command line or in a make file may require extra
characters to "protect" quotation marks, apostrophes, etc.
METHOD_NAME "defgb"
NVAR 250
COMMENTSIZE 2430 For requirements, see code
MAXREC 1257
DISPLAY_WIDTH 80
SEPARATOR blank, tab, comma, newline, carriage return
ALT_SEPARATOR apostrophe (Relevant to free field data and all
script/object input specifications.
Also determines the escaped string
delimiter. If differing values are
needed, specify escaped string delim
here and data/script value at runtime)
WJSTBL_SEPARATOR binary 1 (Characters prohibited in optional
WJSTBL_WHITE_SPACE vertical tab file data)
TIMEDATE_SKIPFIELD_CHAR asterisk (See timedate optional file documentation)
SIGNIFICANT_CONSECUTIVE_SEPARATORS FALSE (Relevant to free field)
SIGNIFICANT_EMBEDDED_SEPARATORS TRUE (Relevant to fixed field)
VARLIST_ENDS -2 (See varlistopts optional file doc)
COLL_FROM_OBJOBJ_OBJ "/list_level1_specs" " " "
READ_COMMANDS TRUE Allow defgb to read scripts ("defexec")
READ_OBJECTS TRUE Allow defgb to read JGOFS objects
OPTIMIZE_OBJECT_TRANSFER TRUE Only transfer object data outer needs
(based on requested display level)
DATAFIELDOPTS_OPT 0
TIMEDATE_OPT 0
LATLON_OPT 0
REMOVAL_OPT 0
TRANS_OPT 0
INPWIDTH_OPT 0
DISPWIDTH_OPT 0
VARLIST_OPT 0
VARLISTOPTS_OPT 0
ERR_PREFIX "&x"
There are also several debugging switches to trace defgb execution.
All can be set at runtime by use of the diagnostics optional file (see
optional file documentation for more information). Some may be set at
compile time for 2 purposes. One is to define default diagnostic switches
so they need not be specified at runtime. The other is to define the
switches in effect before the diagnostics optional file is read.
DEFAULT_TRACE_LEVEL 0 (See "trace level" in opt file documentation)
DEFAULT_ERROR_LEVEL 60 ( "error level" )
DEFAULT_DEBUG_FILE "/dev/stderr" ( "debug sink" )
DEFAULT_ERROR_FILE "/dev/stdout" ( "error sink" )
DEFAULT_OTHER_COMMENT_FILE "/dev/null" ( "other_comment sink" )
DEFAULT_MAXSCRIPTDIAGS 5 ( "maxscriptdiags" )
DEFAULT_INSERTED_MSGS TRUE ( "inserted msgs" )
DEFAULT_INSERTED_MSG_TAG TRUE ( "inserted msg tag" )
DEFAULT_COMMENT_SOURCE_TAG TRUE ( "comment source tag" )
For compatibility with def, the DEBUG and DEBUG0 switches may be
defined. If DEBUG is defined, it is the equivalent of specifying a
DEFAULT_TRACE_LEVEL of 40. If DEBUG0 is defined, it is the equivalent of
setting the iovalstr and iovalreal frequency specifiers to 1 at runtime.
-----------
Incompatibilities with earlier versions
3.7 vs 3.6
Diagnostics no longer issued if METHOD_PROTOTYPE specified;
a specified switch is ignored. See 3.5 vs 3.4 comment
3.7 vs ? (there's evidence that this incompatibility first occurred
around v 3.0 - sorry about that)
TOKEN now set in file pointed to by OPTIONS switch in make file
MAXCOMMENTLINE obsolete. Instead, set COMMENTLINE in file pointed
to by OPTIONS switch in make file
3.6 vs 3.5
None
3.5 vs 3.4
METHOD_PROTOTYPE no longer accepted. See 3.3 vs 3.2 comment
3.4 vs 3.3
None
3.3 vs 3.2
METHOD_PROTOTYPE = DEFGB_URL & ! READ_COMMANDS is no longer
diagnosed as error
METHOD_PROTOTYPE is being deprecated. All variants of defgb
can now be specified at runtime via optional files.
DEFGB_URL functionality is available via datafieldopts
separator option. If you prefer a compiled version, use
SEPARATOR compilation switch.
DEFGB_NOHEADER functionality is available via varlistopts
varlists_end option. If you prefer a compiled version, use
VARLIST_ENDS compilation switch.
PROCESS_VARLIST is obsolete. It is the equivalent of specifying
VARLIST_ENDS as -2
3.2 vs 3.1
None.
3.1 vs 3.0
None.
Implementation of READ_COMMENTS and READ_OBJECTS has moved from
mostly runtime to all compile-time. That is, there used to be
linker errors for non-existent routines, but at runtime, the code
would not call them. Now the calls are not compiled into the
program and there should be no errors.
3.0 vs 2.9
DEFAULT_*_SINK replaced by DEFAULT_*_FILE
Default for ERR_PREFIX
EOD_STRING no longer defined (but never did anything anyway)
2.9 vs 2.8
None
2.8 vs 2.7
DEFAULT_OTHER_COMMENT_SINK (new, but effectively changes default
for where this output goes)
Default for WJSTBL_SEPARATOR
PROCESS_NONLEVEL0_VARLIST replaced by PROCESS_VARLIST
2.7 vs 2.6
METHOD_SWITCH replaced by METHOD_PROTOTYPE
MAXLEVELS specification no longer honored
EXEC replaced by READ_COMMANDS
2.6 vs 2.5
METHOD_SWITCH=DEFMET switch no longer accepted
2.5 vs 2.4
CREATE_GMT has been superseded in functionality by the timedateparams
optional file. The gmtparams optional file has also been
superseded in functionality by the timedateparams optional file,
so its switch, GMT_OPT, has been changed to TIMEDATE_OPT.
See optional file documentation for more info.
DATA_FIELD_TRIM may not be specified (capability may be present in
a future version; although it worked in 2.4, interaction w/outer
made it look as if it didn't)
2.4 vs 2.3
NEGATE_LON has been superseded in functionality by the latlonparams
optional file.