--- libaitcfg/src/parse.c 2009/11/11 14:46:36 1.3.2.1 +++ libaitcfg/src/parse.c 2011/05/10 20:52:36 1.6.2.1 @@ -3,16 +3,53 @@ * by Michael Pounov * * $Author: misho $ -* $Id: parse.c,v 1.3.2.1 2009/11/11 14:46:36 misho Exp $ +* $Id: parse.c,v 1.6.2.1 2011/05/10 20:52:36 misho Exp $ * -*************************************************************************/ +************************************************************************** +The ELWIX and AITNET software is distributed under the following +terms: + +All of the documentation and software included in the ELWIX and AITNET +Releases is copyrighted by ELWIX - Sofia/Bulgaria + +Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 + by Michael Pounov . All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: +This product includes software developed by Michael Pounov +ELWIX - Embedded LightWeight unIX and its contributors. +4. Neither the name of AITNET nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY AITNET AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. +*/ #include "global.h" #include "aitcfg.h" -#include "tools.h" // cfgDbg() Debug/Log operation -static inline int cfgDbg(FILE *f, char *fmt, ...) +static inline int +cfgDbg(FILE *f, char *fmt, ...) { int ret = 0; va_list lst; @@ -28,7 +65,8 @@ static inline int cfgDbg(FILE *f, char *fmt, ...) * InvertQueue() InvertQueue order //{cfg} list of elements for revert * @cfg = Head list element for revert */ -static inline void InvertQueue(sl_config * __restrict cfg) +static inline void +InvertQueue(sl_config * __restrict cfg) { struct tagPair *item, *next, *prev = NULL; @@ -41,7 +79,8 @@ static inline void InvertQueue(sl_config * __restrict } // cfgWrite() Write to file from config list -static inline int cfgWrite(FILE *f, sl_config * __restrict cfg, int whitespace) +static inline int +cfgWrite(FILE *f, sl_config * __restrict cfg, int whitespace) { struct tagPair *av; time_t tim; @@ -108,7 +147,8 @@ static inline int cfgWrite(FILE *f, sl_config * __rest * @cfg = Head list element * return: 0 ok; -1 error:: can`t allocate memory */ -int ReadConfig(FILE *f, sl_config * __restrict cfg) +int +ReadConfig(FILE *f, sl_config * __restrict cfg) { u_char szLine[MAX_STR + 1]; u_char szSection[MAX_STR + 1], *psAttr, *psVal; @@ -119,7 +159,7 @@ int ReadConfig(FILE *f, sl_config * __restrict cfg) while (!feof(f)) { memset(szLine, 0, MAX_STR + 1); fgets((char*) szLine, MAX_STR, f); - trim(szLine); + io_TrimStr(szLine); #ifdef __DEBUG cfgDbg(stdout, "DEBUG:: RAW |%s|\n", szLine); #endif @@ -185,9 +225,9 @@ int ReadConfig(FILE *f, sl_config * __restrict cfg) psAttr = szLine; psVal = (szLine + pos + 1); szLine[pos] = 0; - rtrim(psAttr); - ltrim(psVal); - unquot(psVal); + io_RTrimStr(psAttr); + io_LTrimStr(psVal); + io_UnquotStr(psVal); #ifdef __DEBUG cfgDbg(stdout, "DEBUG:: Attr(%p) ->%s size=%d Value(%p) ->%s size=%d\n", psAttr, psAttr, strlen((char*) psAttr), psVal, psVal, strlen((char*) psVal)); @@ -223,7 +263,8 @@ int ReadConfig(FILE *f, sl_config * __restrict cfg) * @cfg = Head list element * return: 0 ok; -1 error:: can`t write to file */ -int WriteConfig(FILE *f, sl_config * __restrict cfg) +int +WriteConfig(FILE *f, sl_config * __restrict cfg) { return cfgWrite(f, cfg, 1); } @@ -234,7 +275,8 @@ int WriteConfig(FILE *f, sl_config * __restrict cfg) * @cfg = Head list element * return: 0 ok; -1 error:: can`t write to file */ -int cfg_WriteConfig(FILE *f, sl_config * __restrict cfg) +int +cfg_WriteConfig(FILE *f, sl_config * __restrict cfg) { return cfgWrite(f, cfg, 0); } @@ -245,7 +287,8 @@ int cfg_WriteConfig(FILE *f, sl_config * __restrict cf * @add_cfg = Head list element of added list * return: 0 ok; -1 error:: can`t concat lists */ -int ConcatConfig(sl_config * __restrict cfg, sl_config * __restrict add_cfg) +int +ConcatConfig(sl_config * __restrict cfg, sl_config * __restrict add_cfg) { struct tagPair *item; int ret = 0; @@ -267,7 +310,8 @@ int ConcatConfig(sl_config * __restrict cfg, sl_config * @add_cfg = Head list element of merged list (destroy after all!) * return: 0 ok; -1 error:: can`t merge lists */ -int MergeConfig(sl_config * __restrict cfg, sl_config * __restrict add_cfg) +int +MergeConfig(sl_config * __restrict cfg, sl_config * __restrict add_cfg) { struct tagPair *item, *merge, *add_next, *next = NULL; int flg;