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