silcconfig.h
- Author: Johnny Mnemonic <johnny@themnemonic.org>
+ Author: Giovanni Giacobbi <giovanni@giacobbi.net>
- Copyright (C) 1997 - 2002 Pekka Riikonen
+ Copyright (C) 2002 - 2003 Giovanni Giacobbi
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
+ the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
#ifndef SILCCONFIG_H
#define SILCCONFIG_H
-/****d* silcutil/SilcConfigAPI/errno
+/****d* silcutil/SilcConfigAPI/SilcConfigErrno
*
* NAME
*
enum {
SILC_CONFIG_OK, /* OK */
SILC_CONFIG_ESILENT, /* Error defined by callback function */
+ SILC_CONFIG_EPRINTLINE, /* Error defined by callback function */
SILC_CONFIG_EGENERIC, /* Invalid syntax */
SILC_CONFIG_EINTERNAL, /* Internal Error (caused by developer) */
SILC_CONFIG_ECANTOPEN, /* Can't open specified file */
* SYNOPSIS
*
* typedef int (*SilcConfigCallback)(SilcConfigType type, const char *name,
- * SilcUInt32 line, void *val, void *context);
+ * SilcUInt32 line, void *val,
+ * void *context);
* DESCRIPTION
*
* This is the callback prototype for the options handler. The pointer
*
* SYNOPSIS
*
- * typedef struct { ... } SilcConfigFile;
+ * typedef struct SilcConfigFileObject SilcConfigFile;
*
* DESCRIPTION
*
*
* SYNOPSIS
*
- * typedef struct { ... } SilcConfigEntity;
+ * typedef struct SilcConfigEntityObject *SilcConfigEntity;
*
* DESCRIPTION
*
* silc_config_close().
*
***/
-SilcConfigFile *silc_config_open(char *configfile);
+SilcConfigFile *silc_config_open(const char *configfile);
/****f* silcutil/SilcConfigAPI/silc_config_close
*
*
* SYNOPSIS
*
- * bool silc_config_register(SilcConfigEntity ent, const char *name,
+ * SilcBool silc_config_register(SilcConfigEntity ent, const char *name,
* SilcConfigType type, SilcConfigCallback cb,
* const SilcConfigTable *subtable,
* void *context);
* Register option `name' in the entity `ent'. If `cb' is not NULL, it
* will be called with the *val pointer pointing to an internally
* allocated storage of type described by `type'.
+ *
* If `type' is SILC_CONFIG_ARG_BLOCK, then `subtable' must be a valid
* pointer to a SilcConfigTable array specifying the options in the
* sub-block.
+ *
* If the option `name' was already registered in this sub-block or it
* matches the reserved word "Include", then this function returns FALSE,
* otherwise it returns TRUE.
* silc_config_register_table
*
***/
-bool silc_config_register(SilcConfigEntity ent, const char *name,
+SilcBool silc_config_register(SilcConfigEntity ent, const char *name,
SilcConfigType type, SilcConfigCallback cb,
const SilcConfigTable *subtable, void *context);
*
* SYNOPSIS
*
- * bool silc_config_register_table(SilcConfigEntity ent,
+ * SilcBool silc_config_register_table(SilcConfigEntity ent,
* const SilcConfigTable table[],
* void *context);
*
* Register the tableset of options `table' automatically in the entity
* `ent'. If defined in the table, the callback functions will be called
* all with the same context `context'.
+ *
* The `table' array must be terminated with an entry with the name field
* set to NULL.
+ *
* If the table contains invalid data this function returns FALSE, otherwise
* it returns TRUE. If a calling to this function failed, you must destroy
* and recreate the entity before retrying, as it's impossible to detect
* SilcConfigTable
*
***/
-bool silc_config_register_table(SilcConfigEntity ent,
+SilcBool silc_config_register_table(SilcConfigEntity ent,
const SilcConfigTable table[], void *context);
/****f* silcutil/SilcConfigAPI/silc_config_main
*
* Enter the main parsing loop. When this function returns the parsing
* is finished in the current block (and sub-blocks).
+ *
* When this function exits, the entity is already destroyed, because
* of this you should set it to NULL right after the function call.
*