Le programme n'accepte plus stdin pour entrée
(Incompatible avec le fait que l'algo. de Huffman doive lire l'entrée en deux passes)
This commit is contained in:
		
							parent
							
								
									0bddeb367c
								
							
						
					
					
						commit
						7d5599d80a
					
				
							
								
								
									
										21
									
								
								src/main.c
								
								
								
								
							
							
						
						
									
										21
									
								
								src/main.c
								
								
								
								
							|  | @ -38,9 +38,8 @@ static error_t parse_opt(int key, char* arg, struct argp_state* state) { | |||
|     case ARGP_KEY_ARG: | ||||
|         switch (state->arg_num) { | ||||
|         case 0: | ||||
|             // Premier argument : fichier d'entrée. Si omis,
 | ||||
|             // utilisation de l'entrée standard
 | ||||
|             args->source = fopen(arg, "r"); | ||||
|             // Premier argument : fichier d'entrée
 | ||||
|             args->source = fopen(arg, "rb"); | ||||
| 
 | ||||
|             if (args->source == NULL) { | ||||
|                 argp_error( | ||||
|  | @ -53,7 +52,7 @@ static error_t parse_opt(int key, char* arg, struct argp_state* state) { | |||
|         case 1: | ||||
|             // Second argument : fichier de sortie. Si omis,
 | ||||
|             // utilisation de la sortie standard
 | ||||
|             args->dest = fopen(arg, "w"); | ||||
|             args->dest = fopen(arg, "wb"); | ||||
| 
 | ||||
|             if (args->dest == NULL) { | ||||
|                 argp_error( | ||||
|  | @ -65,11 +64,19 @@ static error_t parse_opt(int key, char* arg, struct argp_state* state) { | |||
| 
 | ||||
|         default: | ||||
|             argp_error( | ||||
|                 state, "Trop d'arguments - L'argument %s est superflu", | ||||
|                 state, "Trop d'arguments (l'argument %s est superflu)", | ||||
|                 arg | ||||
|             ); | ||||
|         } | ||||
|         break; | ||||
| 
 | ||||
|     case ARGP_KEY_END: | ||||
|         if (state->arg_num < 1) { | ||||
|             argp_error( | ||||
|                 state, "Fichier d'entrée manquant (le premier argument " | ||||
|                 " est obligatoire)" | ||||
|             ); | ||||
|         } | ||||
|         break; | ||||
| 
 | ||||
|     default: | ||||
|  | @ -108,7 +115,7 @@ static struct argp_option options[] = { | |||
| static struct argp argp = { | ||||
|     .options = options, | ||||
|     .parser = parse_opt, | ||||
|     .args_doc = "[SOURCE [DEST]]", | ||||
|     .args_doc = "SOURCE [DEST]", | ||||
|     .doc = "Compresse ou décompresse SOURCE vers DEST en utilisant " | ||||
|         "l'algorithme de Huffman (par défaut, compresse SOURCE vers DEST)." | ||||
| }; | ||||
|  | @ -123,7 +130,7 @@ int main(int argc, char** argv) { | |||
|     Args args = { | ||||
|         .verbose = FALSE, | ||||
|         .compress = TRUE, | ||||
|         .source = stdin, | ||||
|         .source = NULL, | ||||
|         .dest = stdout | ||||
|     }; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue