Documenation for outer swithches

		Configuring outer		(3 May 99 v 1.4)
[Rework buffer doc.  See bracketed note there.  WJS]

	Please refer to [?] if you need an overview of the outer program.

	Generally, outer can be configured at compile time or at run time.
Run-time configuration is controlled by environment variables.  If present
when outer runs, they are used.  If not present, the compile-time constant
of the same name, if any, is used.  If neither is present, a default
value is used.  (Sometimes another environment variable is looked at before
the default is used - see below.)

	Some options are logically true/false switches.  They can be
specified either as a switch (eg; TOPLINKS), or as a value 
(eg; TOPLINKS = TRUE).  Specification as a switch is equivalent to 
specifying a value of TRUE.
	As compilation constants, values are integers.
0 is false.  1 is recommended for true.  TRUE and FALSE are also accepted.
Some switches are also accepted in their negated form (eg; specifying
NOTOPLINKS is the same as specifying TOPLINKS=FALSE).
	As environment variables, specification as switches is not possible.  
Values are strings.  FALSE, false, NO, no, F, f, N, n and 0 all represent
false.  TRUE, true, YES, yes, T, t, Y, y and 1 all represent true.
Strings that evaluate to integers other than 0 or 1 are not accepted.

	Each method should include in its makefile a compilation of outer.
The exact syntax of specifying compilation switches depends on the 
c compiler in use.  A typical compiler will have each switch preceded by -D.
Typically, the shell or make utility running the compiler will require 
string values to be enclosed in escaped "s; eg,
	-DMYADDR='"mynode.wherever.domain"'

	The options, with their default values, follow.  See the [code?]
for the meanings of the options.

QUOTENOLINK	FALSE

USE_DOUBLE	FALSE		(Not looked for in environment)

	Each of next group of switches accepts prefix of NO - see above
DIRLINK		TRUE
DOCLINK		TRUE
PLOTLINK	TRUE
LEV0LINK	TRUE
LEVNLINK	TRUE
FLATLINK	TRUE
OTHEROPTS	TRUE		(Same as PLOTLINK. Specified values must match)
TOPLINKS	TRUE		(See note 1)
TEST_GIFS	FALSE
GENERATE_ALPHA_SELECTIONS TRUE

BREVSTART	1
BREVCOUNT	20		(Value of 0 equivalent to infinity)

BUTTONIMAGESDIR	"\0"

MYADDR		"\0"		(See note 2)
MYPORT		"80"		(See note 3)

DIRSERVER	"\0"
INFOSERVER	"\0"
OPTIONSERVER	"\0"		(See note 4)

OPTIONS				(See note 5)

JGOFS_DATA_CGI_SPEC "/jg/serv"	(Not looked for in environment)

ERROR_EXIT_STATUS   250		(See note 6)

OO_OUTER	FALSE		Toggles differences between outer used by
				data servers and outer used by option servers
				(See note 7)
Notes:
	1) This switch controls the default value of several of the preceding
*LINK switches.  If any *LINK switch is explicitly specified one way or
the other, the explicit specification overrides the value of the TOPLINKS
switch

	2) Before the default is used, the environment variable
SERVER_NAME is checked.  If it is null, the default is used.

	3) This option is not normally used.
	   If specified as a compilation constant, it must be specified
as a string, even though its value is an integer.
	   Before the default is used, the environment variable
SERVER_PORT is checked.  If it is null, the default is used.

	4) The program serv, which normally causes outer to run, puts a
value of OPTIONSERVER into the environment.  Therefore, the only time
the OPTIONSERVER compile-time value (or its default) is used is when
outer is being run "standalone"

	5) There is no default for this option, nor is it looked for
in the environment.
	There are several buffers used by outer.  The sizes of these
buffers may not be correct for your application.  The OPTIONS
option allows you to specify the name of a file which defines appropriate
sizes.  The contents of this file is expected to be #define statements
for any or all of the constants described below.   This file should 
be secure (as should all files related to methods), since an 
unscrupulous person could put code in it that could compromise your system.  
When specifying this file to the switch, include angle brackets; eg,
	    -DOPTIONS=
It may be useful to include this file in your set of inner routines, too.
	If you specify this compilation option, you should probably also
add /my_method/src/my_method_buf_sizes.h to the list of dependencies for
outer in any makefile you are using.
    	This file may define any or all of the following symbols.  All
sizes refer to a number of characters.  The things being described
are documented [?]
		[NOTE: It appears that the names actually used do
		 not include the MAX.  Also, some of the values with
		 or without the MAX are not used.  Rework doc.  WJS 3 May]
    Name		Purpose					Default
MAXATTRSIZE	    Maximum size of a single attribute 		   40
		    including its value and the equal sign, 
		    but not brackets or the semi-colon
MAXCOMMENTLINE	    Maximum size of a comment line, not		   80
		    including # or newline
MAXDATUMSIZE	    Maximum size of a single datum, including	   80
		    any sign, decimal point or exponent
MAXPATHSIZE	    Maximum size of an html path related to	 1024
		    this method (environment variable PATH_
		    _INFO)
PARSAVSIZE	    Maximum size of an html query passed to	 1024
		    this method (environment variable QUERY_
		    STRING)
TOTATTRSIZE	    Maximum size of the entire attribute string  1024
		    for a variable, including values, brackets,
		    semi-colons, and equal signs
MAXVARNAMESIZE      Maximum size of a variable name		   40

	6) This option is not generally used.  It defines the exit status
that outer will use if it exits because of a method-detected error condition.
If used, it must specify an integer between 1 and 255.  This option is not
looked for in the environment.

	7) Differences due to OO_OUTER
a) If TRUE, "level 0" button includes original query string.  If FALSE, it
   does not.


Contributed by: Warren Sass
June 19, 1996