*
* This program is a free software; you can redistribute it
* and/or modify it under the terms of the GNU General Public
- * License (version 3) as published by the FSF - Free Software
+ * License (version 2) as published by the FSF - Free Software
* Foundation
*/
{
if(!_lxml->ct[j])
break;
-
- /* If not used, it will be cleaned latter */
+
+ /* If not used, it will be cleaned latter */
snprintf(_lxml->err, 128, "XML_ERR: Memory error");
-
+
var = (char**)realloc(var,(s+1)*sizeof(char *));
if(var == NULL)
return (-1);
-
+
var[s] = strdup(_lxml->ct[j]);
if(var[s] == NULL)
return(-1);
-
- /* Cleaning the lxml->err */
+
+ /* Cleaning the lxml->err */
strncpy(_lxml->err," ", 3);
_found_var = 1;
}
else
{
- snprintf(_lxml->err, 128,
+ snprintf(_lxml->err, 128,
"XML_ERR: Only \"name\" is allowed"
" as an attribute for a variable");
return(-1);
}
}
} /* Attribute FOR */
-
-
+
+
if((_found_var == 0)||(!_lxml->ct[i]))
{
- snprintf(_lxml->err,128,
+ snprintf(_lxml->err,128,
"XML_ERR: Bad formed variable. No value set");
return(-1);
}
-
-
+
+
snprintf(_lxml->err,128, "XML_ERR: Memory error");
-
+
value = (char**)realloc(value,(s+1)*sizeof(char *));
if (value == NULL)
return(-1);
-
+
value[s] = strdup(_lxml->ct[i]);
if(value[s] == NULL)
- return(-1);
-
+ return(-1);
+
strncpy(_lxml->err," ", 3);
s++;
}
} /* initial FOR to get the variables */
-
-
+
+
/* No variable */
if(s == 0)
return(0);
/* Looping again and modifying where found the variables */
- i = 0;
+ i = 0;
for(;i<_lxml->cur;i++)
{
if(((_lxml->tp[i] == XML_ELEM) || (_lxml->tp[i] == XML_ATTR))&&
char *p = NULL;
char *p2= NULL;
char lvar[256]; /* MAX Var size */
-
-
+
+
if(strlen(_lxml->ct[i]) <= 2)
continue;
-
-
- /* Duplicating string */
+
+
+ /* Duplicating string */
p = strdup(_lxml->ct[i]);
p2= p;
-
+
if(p == NULL)
{
snprintf(_lxml->err, 128, "XML_ERR: Memory error");
return(-1);
}
-
-
+
+
/* Reading the whole string */
while(*p != '\0')
{
tp = 0;
p++;
memset(lvar, '\0', 256);
-
+
while(1)
{
if((*p == XML_VARIABLE_BEGIN)
lvar[tp]='\0';
final = init+tp;
-
+
/* Looking for var */
for(j=0; j<s; j++)
{
}
- tsize = strlen(_lxml->ct[i]) +
+ tsize = strlen(_lxml->ct[i]) +
strlen(value[j]) - tp + 1;
var_placeh = strdup(_lxml->ct[i]);
free(_lxml->ct[i]);
- _lxml->ct[i] = (char*)calloc(tsize +2,
+ _lxml->ct[i] = (char*)calloc(tsize +2,
sizeof(char));
-
+
if(_lxml->ct[i] == NULL || var_placeh == NULL)
{
snprintf(_lxml->err,128, "XML_ERR: Memory "
strncpy(_lxml->ct[i], var_placeh, tsize);
-
+
_lxml->ct[i][init] = '\0';
strncat(_lxml->ct[i], value[j],tsize - init);
init = strlen(_lxml->ct[i]);
- strncat(_lxml->ct[i], p,
+ strncat(_lxml->ct[i], p,
tsize - strlen(_lxml->ct[i]));
-
+
free(var_placeh);
break;
}
-
+
/* Variale not found */
if((j == s) && (strlen(lvar) >= 1))
{
- snprintf(_lxml->err,128,
+ snprintf(_lxml->err,128,
"XML_ERR: Unknown variable"
": %s", lvar);
return(-1);
{
init++;
}
-
+
goto go_next;
}
-
+
/* Maximum size for a variable */
if(tp >= 255)
{
return(-1);
}
-
+
lvar[tp] = *p;
tp++;
p++;
}
} /* IF XML_VAR_BEGIN */
-
+
p++;
init++;
go_next:
continue;
-
+
} /* WHILE END */
-
+
if(p2 != NULL)
{
free(p2);
}
if((value)&&(value[i]))
{
- free(value[i]);
+ free(value[i]);
value[i] = NULL;
}
}
-
+
if(var != NULL)
{
free(var);
}
if(value != NULL)
{
- free(value);
+ free(value);
value = NULL;
}