Logo Search packages:      
Sourcecode: weex version File versions  Download package

parsecfg.h

/***************************************************************************/
/*                                                                         */
/* parsecfg - a library for parsing a configuration file                   */
/* Copyright (C) 1999-2000 Yuuki NINOMIYA <gm@debian.or.jp>                */
/*                                                                         */
/* 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, or (at your option)     */
/* any later version.                                                      */
/*                                                                         */
/* This program is distributed in the hope that it will be useful,         */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of          */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           */
/* GNU General Public License for more details.                            */
/*                                                                         */
/* You should have received a copy of the GNU General Public License       */
/* along with this program; if not, write to the                           */
/* Free Software Foundation, Inc., 59 Temple Place - Suite 330,            */
/* Boston, MA 02111-1307, USA.                                             */
/*                                                                         */
/***************************************************************************/

#ifndef PARSECFG_H_INCLUDED
#define PARSECFG_H_INCLUDED


#undef PARSECFG_VERSION
#define PARSECFG_VERSION "3.2.1"

/* error code */
typedef enum{
      CFG_NO_ERROR,
      CFG_OPEN_FAIL,
      CFG_CREATE_FAIL,
      CFG_SYNTAX_ERROR,
      CFG_WRONG_PARAMETER,
      CFG_INTERNAL_ERROR,
      CFG_INVALID_NUMBER,
      CFG_OUT_OF_RANGE,
      CFG_MEM_ALLOC_FAIL,
      CFG_BOOL_ERROR,
      CFG_USED_SECTION,
      CFG_NO_CLOSING_BRACE,
} cfgErrorCode;

/* type of the configuration file */
typedef enum{
      CFG_SIMPLE,
      CFG_INI,
} cfgFileType;

/* constants for recognized value types */
typedef enum{
      CFG_END,
      CFG_BOOL,
      CFG_STRING,
      CFG_INT,
      CFG_UINT,
      CFG_LONG,
      CFG_ULONG,
      CFG_STRING_LIST,
} cfgValueType;

typedef enum{
        CFG_PARAMETER,
        CFG_VALUE,
      CFG_SECTION,
} cfgKeywordValue;

typedef enum{
      CFG_NO_QUOTE,
      CFG_SINGLE_QUOTE,
      CFG_DOUBLE_QUOTE,
} cfgQuote;


00077 typedef struct{
      char *parameterName;
      cfgValueType type;
      void *value;
} cfgStruct;

typedef struct cfglist *cfgListPtr;
00084 typedef struct cfglist{
      char *str;
      cfgListPtr next;
} cfgList;


/* proto type declaration of public functions */
void cfgSetFatalFunc(void (*f)(cfgErrorCode,char *,int,char *));
int cfgParse(char *file,cfgStruct cfg[],cfgFileType type);
void cfgDump(char *file,cfgStruct cfg[],cfgFileType type,int max_section);
int fetchVarFromCfgFile(char *file,char *parameter_name,void *result_value,cfgValueType value_type,cfgFileType file_type,int section_num,char *section_name);
int cfgSectionNameToNumber(const char *name);
char *cfgSectionNumberToName(int num);


#endif /* PARSECFG_H_INCLUDED */


Generated by  Doxygen 1.6.0   Back to index