|  | @@ -17,7 +17,7 @@ void arraylist_ini(arraylist* al){
 | 
											
												
													
														|  |      al->size = 0;
 |  |      al->size = 0;
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -al_node* arraylist_add(arraylist* al, char* key, char* val){
 |  | 
 | 
											
												
													
														|  | 
 |  | +al_node* arraylist_add(arraylist* al, char* key, int(*handler)(char*)){
 | 
											
												
													
														|  |      int length;
 |  |      int length;
 | 
											
												
													
														|  |      al_node* aln;
 |  |      al_node* aln;
 | 
											
												
													
														|  |      //Regarde si la clef existe
 |  |      //Regarde si la clef existe
 | 
											
										
											
												
													
														|  | @@ -30,10 +30,7 @@ al_node* arraylist_add(arraylist* al, char* key, char* val){
 | 
											
												
													
														|  |      aln->key = malloc(sizeof(char) * (length + 1));
 |  |      aln->key = malloc(sizeof(char) * (length + 1));
 | 
											
												
													
														|  |      memset(aln->key, 0, length + 1);
 |  |      memset(aln->key, 0, length + 1);
 | 
											
												
													
														|  |      strncpy(aln->key, key, length);
 |  |      strncpy(aln->key, key, length);
 | 
											
												
													
														|  | -    length = strlen(val);
 |  | 
 | 
											
												
													
														|  | -    aln->val = malloc(sizeof(char) * (length + 1));
 |  | 
 | 
											
												
													
														|  | -    memset(aln->val, 0, length + 1);
 |  | 
 | 
											
												
													
														|  | -    strncpy(aln->val, val, length);
 |  | 
 | 
											
												
													
														|  | 
 |  | +    aln->handler = handler;
 | 
											
												
													
														|  |      //Lien entre les noeuds
 |  |      //Lien entre les noeuds
 | 
											
												
													
														|  |      aln->next = NULL;
 |  |      aln->next = NULL;
 | 
											
												
													
														|  |      if (al->first == NULL) {
 |  |      if (al->first == NULL) {
 | 
											
										
											
												
													
														|  | @@ -66,28 +63,12 @@ al_node* arraylist_search(arraylist* al, char* key){
 | 
											
												
													
														|  |      return NULL;
 |  |      return NULL;
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -char* arraylist_get(arraylist* al, char* key){
 |  | 
 | 
											
												
													
														|  | 
 |  | +int arraylist_call(arraylist* al, char* key, char* arg){
 | 
											
												
													
														|  |      al_node* aln = arraylist_search(al, key);
 |  |      al_node* aln = arraylist_search(al, key);
 | 
											
												
													
														|  |      if(aln == NULL){
 |  |      if(aln == NULL){
 | 
											
												
													
														|  | -        return NULL;
 |  | 
 | 
											
												
													
														|  | -    }
 |  | 
 | 
											
												
													
														|  | -    return aln->val;
 |  | 
 | 
											
												
													
														|  | -}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -int arraylist_getint(arraylist* al, char* key){
 |  | 
 | 
											
												
													
														|  | -    al_node* aln = arraylist_search(al, key);
 |  | 
 | 
											
												
													
														|  | -    if(aln == NULL){
 |  | 
 | 
											
												
													
														|  | -        return 0;
 |  | 
 | 
											
												
													
														|  | -    }
 |  | 
 | 
											
												
													
														|  | -    return atoi(aln->val);
 |  | 
 | 
											
												
													
														|  | -}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -double arraylist_getdouble(arraylist* al, char* key){
 |  | 
 | 
											
												
													
														|  | -    al_node* aln = arraylist_search(al, key);
 |  | 
 | 
											
												
													
														|  | -    if(aln == NULL){
 |  | 
 | 
											
												
													
														|  | -        return 0;
 |  | 
 | 
											
												
													
														|  | 
 |  | +        return -1;
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  | -    return atof(aln->val);
 |  | 
 | 
											
												
													
														|  | 
 |  | +    return aln->handler(arg);
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  void arraylist_delete(arraylist* al, al_node* aln){
 |  |  void arraylist_delete(arraylist* al, al_node* aln){
 | 
											
										
											
												
													
														|  | @@ -117,7 +98,6 @@ void arraylist_delete(arraylist* al, al_node* aln){
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |      //Free
 |  |      //Free
 | 
											
												
													
														|  |      free(aln->key);
 |  |      free(aln->key);
 | 
											
												
													
														|  | -    free(aln->val);
 |  | 
 | 
											
												
													
														|  |      free(aln);
 |  |      free(aln);
 | 
											
												
													
														|  |      al->size--;
 |  |      al->size--;
 | 
											
												
													
														|  |  }
 |  |  }
 |