--- /dev/null
+
+#include "parameters.h"
+
+/***********************************************************************************/
+/*** FUNCTIONS USED FOR PARSING PARAMETERS FROM COMMAND LINE ***********************/
+/* Three function to variables to manage parameters */
+ bool is_delimeter(char *delimiters, char c) {
+ int i=0,len_delimiters=strlen(delimiters);
+ bool is=false;
+ for (i=0;i<len_delimiters;i++)
+ if (c == delimiters[i]) is=true;
+ return is;
+}
+
+
+ void parse_parameters(char *options, int *num_parameters, char ***parameters, char *delimiters) {
+ int i=0,j=0,temp=0,num=0, len_options=strlen(options);
+ char *options_temp;
+ while (i<len_options) {
+ while ((i<len_options) && is_delimeter(delimiters,options[i])) i++;
+ temp=i;
+ while ((i<len_options) && !is_delimeter(delimiters,options[i])) i++;
+ if (i!=temp) num++;
+ }
+ (*parameters) = (char **) malloc(num*sizeof(char * ));
+ i=0;
+ while (i<len_options) {
+ while ((i<len_options) && is_delimeter(delimiters,options[i])) i++;
+ temp=i;
+ while ((i<len_options) && !is_delimeter(delimiters,options[i])) i++;
+ if (i!=temp) {
+ (*parameters)[j]=(char *) malloc((i-temp+1)*sizeof(char));
+ options_temp = options+temp;
+ strncpy((*parameters)[j], options_temp, i-temp);
+ ((*parameters)[j])[i-temp] = '\0';
+ j++;
+ }
+ }
+ *num_parameters = num;
+}
+
+ void free_parameters(int num_parameters,char ***parameters) {
+ int i=0;
+ for (i=0; i<num_parameters;i++)
+ free((*parameters)[i]);
+ free((*parameters));
+}