24int checkSection(
char *str,
char delimiterLeft,
char delimiterRight,
char **sectionName)
32 int len = strlen(str);
34 int leftDelimiterPos=0;
35 int rightDelimiterPos=0;
36 char *sectionName2 = NULL;
44 if(str[i] == delimiterLeft)
59 if(str[i] == delimiterRight)
62 rightDelimiterPos = i;
98int getStrAtPos(
char *str,
int fromPos,
int toPos,
char **name,
int sizeName)
103 printf(
"Pointer NULL:%d\n",error);
108 int diffLen=toPos-fromPos;
109 char *ptr_name=*name;
114 for(i=fromPos,j=0;i<=toPos;i++,j++)
116 ptr_name[j] = str[i];
151int getNameValuePair(
char *str,
char leftDelimiterPos,
char rightDelimiterPos,
char **name,
char **value,
int sizeName,
int sizeValue)
153 if(*name == NULL || *value == NULL)
156 printf(
"Pointer NULL:%d\n",error);
160 char *ptr_name=*name;
161 char *ptr_value=*value;
164 char *ptrDelimiter=NULL;
168 ptrDelimiter=strchr(str,leftDelimiterPos);
169 if(ptrDelimiter==NULL)
173 posDelimiter = (ptrDelimiter - str);
174 printf(
"LenUntilDelimiter: %d\n",posDelimiter);
177 printf(
"ptr_name:%s\n",ptr_name);
179 printf(
"Error at getStrAtPos:%d\n",ret);
182 if(rightDelimiterPos == 0)
184 posEnd = strlen(str);
186 posEnd = rightDelimiterPos;
191 printf(
"ptr_name:%s\n",ptr_value);
221 char *sectionName=NULL;
227 buffer = malloc(strlen(originalBuffer)+1);
231 printf(
"ERROR MALLOC:%d",error);
234 memset(buffer,0,strlen(originalBuffer)+1);
235 strcpy(buffer,originalBuffer);
239 strcpy(buffer,originalBuffer);
241 printf(
"buffer:%s\n--",buffer);
248 token = strtok(buffer,
"\n");
249 while(token != NULL && state !=
ST_FINISH)
267 printf(
"MALLOC:%d\n",error);
276 printf(
"configSizeCount: %d, i:%d\n",configSizeCount,i);
277 if(i<configSizeCount)
297 token = strtok(NULL,
"\n");
303 printf(
"token: %s\n",token);
304 printf(
"buffer:%s\n--",buffer);
308 printf(
"finish exitting parsing\nSTATE:%d\n",state);
int parseConfig(char *originalBuffer, struct configEntry **entry, int configSizeCount, int *returnedCount)
int getStrAtPos(char *str, int fromPos, int toPos, char **name, int sizeName)
Here we get / cut from fromPos to toPos and write it to an address.
int checkSection(char *str, char delimiterLeft, char delimiterRight, char **sectionName)
Here we check if the given string contains a section for example [SECTIONName] here delimiterLeft is ...
int getNameValuePair(char *str, char leftDelimiterPos, char rightDelimiterPos, char **name, char **value, int sizeName, int sizeValue)
Input:
#define ERROR_DELIMITER_NOT_FOUND
#define ST_FOUND_RIGHT_DELIMITER
#define ST_FOUND_LEFT_DELIMITER
#define MAX_LEN_SECTIONNAME
#define ERR_PARSECONFIG_UNKNOWN
#define ST_ERROR_NOT_FOUND_RIGHT_DELIMITER
#define ST_ERROR_NOT_FOUND_LEFT_DELIMITER