silcconfig.h
- Author: Johnny Mnemonic <johnny@themnemonic.org>
+ Author: Giovanni Giacobbi <giovanni@giacobbi.net>
- Copyright (C) 1997 - 2002 Pekka Riikonen
+ Copyright (C) 2002 - 2003, 2008 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
*/
-/****h* silcutil/SILC Config Interface
+/****h* silcutil/Config File Interface
*
* DESCRIPTION
*
*
* Now you can use the newly created Entity to register a group of expected
* known options and sub-blocks, and then you can call the main parsing loop
- * with the silc_config_main() function. When silc_config_main() will
- * return, if some error encoured the object file will point to the file
- * that caused this error (this can be different from the originally
- * opened file if it contained `Include' directives). If no errors
+ * with the silc_config_main() function. When silc_config_main() will
+ * return, if some error encoured the object file will point to the file
+ * that caused this error (this can be different from the originally
+ * opened file if it contained `Include' directives). If no errors
* encoured then the File objects will still point to the original file.
*
* While silc_config_main() will take care of destroying Entities before
#ifndef SILCCONFIG_H
#define SILCCONFIG_H
-/****d* silcutil/SilcConfigAPI/errno
+/****d* silcutil/SilcConfigErrno
*
* NAME
*
};
/***/
-/****d* silcutil/SilcConfigAPI/SilcConfigType
+/****d* silcutil/SilcConfigType
*
* NAME
*
} SilcConfigType;
/***/
-/****f* silcutil/SilcConfigAPI/SilcConfigCallback
+/****f* silcutil/SilcConfigCallback
*
* 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
typedef int (*SilcConfigCallback)(SilcConfigType type, const char *name,
SilcUInt32 line, void *val, void *context);
-/****s* silcutil/SilcConfigAPI/SilcConfigTable
+/****s* silcutil/SilcConfigTable
*
* SYNOPSIS
*
const struct SilcConfigTableStruct *subtable;
} SilcConfigTable;
-/****s* silcutil/SilcConfigAPI/SilcConfigFile
+/****s* silcutil/SilcConfigFile
*
* SYNOPSIS
*
- * typedef struct { ... } SilcConfigFile;
+ * typedef struct SilcConfigFileObject SilcConfigFile;
*
* DESCRIPTION
*
***/
typedef struct SilcConfigFileObject SilcConfigFile;
-/****s* silcutil/SilcConfigAPI/SilcConfigEntity
+/****s* silcutil/SilcConfigEntity
*
* SYNOPSIS
*
- * typedef struct { ... } SilcConfigEntity;
+ * typedef struct SilcConfigEntityObject *SilcConfigEntity;
*
* DESCRIPTION
*
/* Macros */
-/****d* silcutil/SilcConfigAPI/SILC_CONFIG_CALLBACK
+/****d* silcutil/SILC_CONFIG_CALLBACK
*
* NAME
*
/* Prototypes */
-/****f* silcutil/SilcConfigAPI/silc_config_open
+/****f* silcutil/silc_config_open
*
* SYNOPSIS
*
***/
SilcConfigFile *silc_config_open(const char *configfile);
-/****f* silcutil/SilcConfigAPI/silc_config_close
+/****f* silcutil/silc_config_close
*
* SYNOPSIS
*
***/
void silc_config_close(SilcConfigFile *file);
-/****f* silcutil/SilcConfigAPI/silc_config_init
+/****f* silcutil/silc_config_init
*
* SYNOPSIS
*
***/
SilcConfigEntity silc_config_init(SilcConfigFile *file);
-/****f* silcutil/SilcConfigAPI/silc_config_strerror
+/****f* silcutil/silc_config_strerror
*
* SYNOPSIS
*
***/
char *silc_config_strerror(int errnum);
-/****f* silcutil/SilcConfigAPI/silc_config_get_filename
+/****f* silcutil/silc_config_get_filename
*
* SYNOPSIS
*
***/
char *silc_config_get_filename(SilcConfigFile *file);
-/****f* silcutil/SilcConfigAPI/silc_config_get_line
+/****f* silcutil/silc_config_get_line
*
* SYNOPSIS
*
***/
SilcUInt32 silc_config_get_line(SilcConfigFile *file);
-/****f* silcutil/SilcConfigAPI/silc_config_read_line
+/****f* silcutil/silc_config_read_line
*
* SYNOPSIS
*
***/
char *silc_config_read_line(SilcConfigFile *file, SilcUInt32 line);
-/****f* silcutil/SilcConfigAPI/silc_config_read_current_line
+/****f* silcutil/silc_config_read_current_line
*
* SYNOPSIS
*
***/
char *silc_config_read_current_line(SilcConfigFile *file);
-/****f* silcutil/SilcConfigAPI/silc_config_register
+/****f* silcutil/silc_config_register
*
* 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);
-/****f* silcutil/SilcConfigAPI/silc_config_register_table
+/****f* silcutil/silc_config_register_table
*
* 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
+/****f* silcutil/silc_config_main
*
* SYNOPSIS
*
*
* 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.
*