--- rpl/src/instructions_o1.c 2010/08/09 13:51:47 1.19 +++ rpl/src/instructions_o1.c 2011/06/27 09:04:58 1.35 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.0.18 - Copyright (C) 1989-2010 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.0 + Copyright (C) 1989-2011 Dr. BERTRAND Joël This file is part of RPL/2. @@ -897,6 +897,8 @@ instruction_open(struct_processus *s_eta * Format : * FORMATTED : fichier texte ; * UNFORMATTED : fichier binaire. + * FLOW : chaîne de caractères sans format (en tant qu'objet + * binaire comme "\x00avz\xFD") */ file *descripteur; @@ -1190,6 +1192,34 @@ instruction_open(struct_processus *s_eta type_ouverture = 'R'; } + else if (strcmp(argument_majuscule, "OLD") == 0) + { + if (type_ouverture != ' ') + { + liberation(s_etat_processus, s_objet_argument); + free(argument_majuscule); + + (*s_etat_processus).erreur_execution = + d_ex_erreur_parametre_fichier; + return; + } + + if (type_arguments == ' ') + { + type_arguments = 'F'; + } + else if (type_arguments == 'S') + { + liberation(s_etat_processus, s_objet_argument); + free(argument_majuscule); + + (*s_etat_processus).erreur_execution = + d_ex_erreur_parametre_fichier; + return; + } + + type_ouverture = 'O'; + } else if (strcmp(argument_majuscule, "UNKNOWN") == 0) { if (type_ouverture != ' ') @@ -4185,8 +4215,8 @@ instruction_open(struct_processus *s_eta pointeur++; } - strncpy(socket_unix.sun_path, pointeur, 108); - socket_unix.sun_path[108 - 1] = d_code_fin_chaine; + strncpy(socket_unix.sun_path, pointeur, UNIX_PATH_MAX); + socket_unix.sun_path[UNIX_PATH_MAX - 1] = d_code_fin_chaine; if (options_socket() == d_erreur) { @@ -4443,11 +4473,11 @@ instruction_open(struct_processus *s_eta if ((*s_etat_processus).langue == 'F') { printf("+++Attention : Support du protocole" - " IPv6 indisponble\n"); + " IPv6 indisponible\n"); } else { - printf("+++Attention : IPv6 support " + printf("+++Warning : IPv6 support " "unavailable\n"); } # endif @@ -4613,11 +4643,11 @@ instruction_open(struct_processus *s_eta if ((*s_etat_processus).langue == 'F') { printf("+++Attention : Support du protocole" - " IPv6 indisponble\n"); + " IPv6 indisponible\n"); } else { - printf("+++Attention : IPv6 support " + printf("+++Warning : IPv6 support " "unavailable\n"); } # endif @@ -4724,8 +4754,8 @@ instruction_open(struct_processus *s_eta socket_unix.sun_family = AF_UNIX; strncpy(socket_unix.sun_path, (*((struct_socket *) - (*s_objet_resultat).objet)).adresse, 108); - socket_unix.sun_path[108 - 1] = d_code_fin_chaine; + (*s_objet_resultat).objet)).adresse, UNIX_PATH_MAX); + socket_unix.sun_path[UNIX_PATH_MAX - 1] = d_code_fin_chaine; if ((type_socket == 'S') || (type_socket == 'Q')) { @@ -4983,11 +5013,11 @@ instruction_open(struct_processus *s_eta if ((*s_etat_processus).langue == 'F') { printf("+++Attention : Support du protocole" - " IPv6 indisponble\n"); + " IPv6 indisponible\n"); } else { - printf("+++Attention : IPv6 support " + printf("+++Warning : IPv6 support " "unavailable\n"); } # endif @@ -5195,11 +5225,11 @@ instruction_open(struct_processus *s_eta if ((*s_etat_processus).langue == 'F') { printf("+++Attention : Support du protocole" - " IPv6 indisponble\n"); + " IPv6 indisponible\n"); } else { - printf("+++Attention : IPv6 support " + printf("+++Warning : IPv6 support " "unavailable\n"); } # endif