Compare commits
	
		
			4 Commits
		
	
	
		
			0451a89dce
			...
			3bbb476505
		
	
	| Author | SHA1 | Date | 
|---|---|---|
|  | 3bbb476505 | |
|  | 32760601af | |
|  | 6b31743c38 | |
|  | d1e1384dce | 
							
								
								
									
										2
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										2
									
								
								Makefile
								
								
								
								
							|  | @ -22,7 +22,7 @@ OBJ = $(addprefix $(OBJ_DIR), $(OBJ_FILES)) | ||||||
| 
 | 
 | ||||||
| CC = gcc | CC = gcc | ||||||
|   |   | ||||||
| CFLAGS = -Wall -Werror -Wextra -g2 | CFLAGS = -Wall -Werror -Wextra -g3 | ||||||
| 
 | 
 | ||||||
| LIB_NAME = libft | LIB_NAME = libft | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								libft
								
								
								
								
							
							
								
								
								
								
								
								
							
						
						
									
										2
									
								
								libft
								
								
								
								
							|  | @ -1 +1 @@ | ||||||
| Subproject commit 1cab2379213f62f814312dc2cc7b0f3aa65268fc | Subproject commit e846b98fcda5878a1d4d9de8f422dec09b97456c | ||||||
							
								
								
									
										45
									
								
								src/nm.c
								
								
								
								
							
							
						
						
									
										45
									
								
								src/nm.c
								
								
								
								
							|  | @ -139,24 +139,32 @@ char *get_sym_char(Elf64_Sym sym, Elf64_Shdr sec) { | ||||||
| 	return ("n"); | 	return ("n"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int strcmp_nm(t_list *a, t_list *b) { | int strcmp_nm(void *a, void *b) { | ||||||
|  | 	t_entry *aa = (t_entry *)a; | ||||||
|  | 	t_entry *bb = (t_entry *)b; | ||||||
|  | 	char *s1 = aa->symbol; | ||||||
|  | 	char *s2 = bb->symbol; | ||||||
|  | 	return ft_strcmp(s1, s2); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | int reverse(void *a, void *b) { | ||||||
|  | 	return strcmp_nm(b, a); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | int nosort(void *a, void *b) { | ||||||
| 	(void)a; | 	(void)a; | ||||||
| 	(void)b; | 	(void)b; | ||||||
| 	return 1; | 	return 1; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int reverse(t_list *a, t_list *b) { | void put_entry(void *data) { | ||||||
| 	return strcmp_nm(b, a); | 	t_node *node = (t_node *)data; | ||||||
| } | 	t_entry *entry = (t_entry *)node->data; | ||||||
| 
 | 	ft_putstr(entry->string); | ||||||
| int nosort(t_list *a, t_list *b) { |  | ||||||
| 	(void)a; |  | ||||||
| 	(void)b; |  | ||||||
| 	return -1; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int nm64(t_mapped_file mapped_file, char *path, t_verbosity verbosity, t_ordering ordering) { | int nm64(t_mapped_file mapped_file, char *path, t_verbosity verbosity, t_ordering ordering) { | ||||||
| 	t_list *list = NULL; | 	t_root *tree = NULL; | ||||||
| 	t_entry *entry = (t_entry *)malloc(sizeof(t_entry));  | 	t_entry *entry = (t_entry *)malloc(sizeof(t_entry));  | ||||||
| 	if (!entry) | 	if (!entry) | ||||||
| 		return FT_NM_FAILURE; | 		return FT_NM_FAILURE; | ||||||
|  | @ -251,13 +259,13 @@ int nm64(t_mapped_file mapped_file, char *path, t_verbosity verbosity, t_orderin | ||||||
| 					// ensuite un switch ordering avec un ft_lstinsert (pointeur sur fonction serait plus opti mais osef)
 | 					// ensuite un switch ordering avec un ft_lstinsert (pointeur sur fonction serait plus opti mais osef)
 | ||||||
| 					switch (ordering) { | 					switch (ordering) { | ||||||
| 						case NOSORT: | 						case NOSORT: | ||||||
| 							ft_lstinsert(&list, ft_lstnew((void *)entry, sizeof(t_entry)), &nosort); | 							ft_rbt_insert(&tree, ft_rbt_new((void *)entry, sizeof(t_entry)), &nosort); | ||||||
| 							break; | 							break; | ||||||
| 						case REVERSE: | 						case REVERSE: | ||||||
| 							ft_lstinsert(&list, ft_lstnew((void *)entry, sizeof(t_entry)), &reverse); | 							ft_rbt_insert(&tree, ft_rbt_new((void *)entry, sizeof(t_entry)), &reverse); | ||||||
| 							break; | 							break; | ||||||
| 						case DEFAULT_ORDERING: | 						case DEFAULT_ORDERING: | ||||||
| 							ft_lstinsert(&list, ft_lstnew((void *)entry, sizeof(t_entry)), &strcmp_nm); | 							ft_rbt_insert(&tree, ft_rbt_new((void *)entry, sizeof(t_entry)), &strcmp_nm); | ||||||
| 							break; | 							break; | ||||||
| 					} | 					} | ||||||
| 					// pas de bst oops :D
 | 					// pas de bst oops :D
 | ||||||
|  | @ -269,14 +277,9 @@ int nm64(t_mapped_file mapped_file, char *path, t_verbosity verbosity, t_orderin | ||||||
| 		free(str); | 		free(str); | ||||||
| 	} | 	} | ||||||
| 	// ici on affiche tout ou no symbols en cas de list vide
 | 	// ici on affiche tout ou no symbols en cas de list vide
 | ||||||
| 	if (list) { | 	if (tree) { | ||||||
| 		while (list) { | 		ft_putrbt(tree, &put_entry); | ||||||
| 			t_entry *my_entry = (t_entry *)list->content; | 	} else { | ||||||
| 			ft_putstr(my_entry->string); |  | ||||||
| 			list = list->next; |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	else { |  | ||||||
| 		ft_printf("sss", "nm: ", path, ": no symbols\n"); | 		ft_printf("sss", "nm: ", path, ": no symbols\n"); | ||||||
| 	} | 	} | ||||||
| 	return FT_NM_SUCCESS; | 	return FT_NM_SUCCESS; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue