/*
 * profile.h
 */

#ifndef _PROFILE_H
#define _PROFILE_H

#ifndef _MACINTOSH
#if defined(__MWERKS__) || defined(applec) || defined(THINK_C)
#define _MACINTOSH
#endif
#endif

#if defined(_MSDOS) || defined(_WIN32) || defined(_MACINTOSH)
#include "win-mac.h"
#endif

#ifndef KRB5_CALLCONV
#define KRB5_CALLCONV
#define KRB5_DLLIMP
#define KRB5_CALLCONV_C
#endif
#ifndef FAR
#define FAR
#define NEAR
#endif

typedef struct _profile_t *profile_t;

typedef struct _profile_options {
	char * name;
	int * value;
	int found;
} profile_options;

#if !defined(PROTOTYPE)
#if defined(__STDC__) || defined(_MSDOS) || defined(_WIN32)
#define PROTOTYPE(x) x
#else
#define PROTOTYPE(x) ()
#endif
#endif

KRB5_DLLIMP extern long KRB5_CALLCONV profile_init
	PROTOTYPE ((const char **filenames, profile_t *ret_profile));

KRB5_DLLIMP extern long KRB5_CALLCONV profile_init_path
	PROTOTYPE ((const char *filepath, profile_t *ret_profile));

KRB5_DLLIMP extern void KRB5_CALLCONV profile_release
	PROTOTYPE ((profile_t profile));

KRB5_DLLIMP extern long KRB5_CALLCONV profile_get_values
	PROTOTYPE ((profile_t profile, const char **names, char ***ret_values));
KRB5_DLLIMP extern long KRB5_CALLCONV profile_get_string
	PROTOTYPE((profile_t profile, const char *name, const char *subname, 
			const char *subsubname, const char *def_val,
			char **ret_string));
KRB5_DLLIMP extern long KRB5_CALLCONV profile_get_integer
	PROTOTYPE((profile_t profile, const char *name, const char *subname,
			const char *subsubname, int def_val,
			int *ret_default));
KRB5_DLLIMP extern long KRB5_CALLCONV profile_get_options_boolean
	PROTOTYPE((profile_t profile, char ** section, 
			profile_options * options));
KRB5_DLLIMP extern int KRB5_CALLCONV profile_conf_affirmative
	PROTOTYPE((profile_t profile, char *value));

#endif /* _PROFILE_H */
/*
 * prof_err.h:
 * This file is automatically generated; please do not edit it.
 */
#define PROF_VERSION                             (-1429577728L)
#define PROF_MAGIC_NODE                          (-1429577727L)
#define PROF_NO_SECTION                          (-1429577726L)
#define PROF_NO_RELATION                         (-1429577725L)
#define PROF_ADD_NOT_SECTION                     (-1429577724L)
#define PROF_SECTION_WITH_VALUE                  (-1429577723L)
#define PROF_BAD_LINK_LIST                       (-1429577722L)
#define PROF_BAD_GROUP_LVL                       (-1429577721L)
#define PROF_BAD_PARENT_PTR                      (-1429577720L)
#define PROF_SECTION_NOTOP                       (-1429577719L)
#define PROF_SECTION_SYNTAX                      (-1429577718L)
#define PROF_RELATION_SYNTAX                     (-1429577717L)
#define PROF_EXTRA_CBRACE                        (-1429577716L)
#define PROF_MISSING_OBRACE                      (-1429577715L)
#define PROF_MAGIC_PROFILE                       (-1429577714L)
#define PROF_MAGIC_SECTION                       (-1429577713L)
#define PROF_TOPSECTION_ITER_NOSUPP              (-1429577712L)
#define PROF_INVALID_SECTION                     (-1429577711L)
#define PROF_END_OF_SECTIONS                     (-1429577710L)
#define PROF_BAD_NAMESET                         (-1429577709L)
#define PROF_NO_PROFILE                          (-1429577708L)
extern void initialize_prof_error_table ();
#define ERROR_TABLE_BASE_prof (-1429577728L)

/* for compatibility with older versions... */
#define init_prof_err_tbl initialize_prof_error_table
#define prof_err_base ERROR_TABLE_BASE_prof
