/*  PATH_INFO_routines.h	WJS  Jul 97				*/
/*	Parametrizations for PATH_INFO string of form			*/
/*		PATH_INFO=object.protocollevel{optionstring}		*/
/*  where optionstring is of the form					*/
/*		option1=value1,option2=value2,...optionN=valueN		*/

#define PATH_INFO_ROUTINESH_VERSION \
		  "path_info_routines.h  version 1.4b 22 Mar 2007"
/*  22 Mar 07.  v 1.4b  WJS						*/
/*	Return status for new_and_old_path_infos			*/
/*  26 Aug 04.  v 1.4a  WJS						*/
/*	PATH_INFO_DIRECTORY_SEP						*/
/*  20 Feb 04.  v 1.4  WJS						*/
/*	Get error exit status from core.h instead of error_exit_defn.h	*/
/*	FULL_PATH_INFO_ROUTINESH_VERSION 				*/
/*		[Needs core.h]						*/
/*  20 Apr 99.  v 1.3  WJS						*/
/*	Change error exit statuses					*/
/*		[Needs error_exit_defn.h]				*/
/*  17 Sep 97.  v 1.2  WJS						*/
/*	Move make_path_info_string errors in here			*/
/************************************************************************/

#include "core.h"
#define FULL_PATH_INFO_ROUTINESH_VERSION \
		PATH_INFO_ROUTINESH_VERSION"/"COREH_VERSION

#define PATH_INFO_ENV_VAR "PATH_INFO"
#define ENV_VAR_DEFN_CHAR '='

#define PATH_INFO_DIRECTORY_SEP '/'
#define PATH_INFO_PROTOCOL_SEP '.'

#define PATH_INFO_OPTIONS_DELIM "{}"
#define PATH_INFO_OPTIONS_DEFN_CHAR '='
#define PATH_INFO_OPTIONS_SEPARATOR_CHAR ','

#define PATH_INFO_NEW_AND_OLD_OK 0
#define PATH_INFO_NEW_AND_OLD_PROBLEM_WITH_OLD 1
#define PATH_INFO_NEW_AND_OLD_PROBLEM_WITH_NEW 2

  /*	LEVEL flags should all be negative				*/
#define LEVEL_NOT_SPECIFIED -1
#define LEVEL_ERROR -999
#define USE_EXISTING_LEVEL LEVEL_ERROR	/* In case somebody asked for	*/
				/* level, then passed it w/o checking	*/

  /*	Exit values for make_path_info_string errors			*/
#define BAD_MAKE_PATH_INFO ERROR_EXIT_STATUS
#define MISSING_EQUAL ERROR_EXIT_STATUS+1
#define DUP_LABEL ERROR_EXIT_STATUS+2
#define NON_NUMERIC_LEVEL ERROR_EXIT_STATUS+3
#define BAD_ARGS ERROR_EXIT_STATUS+4
#if BAD_ARGS > 255
#error "Exit status > 255 will cause trouble w/child process exits"
#endif
