Path: ...!news.mixmin.net!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Blady Newsgroups: fr.comp.lang.ada Subject: Re: Crash de Start_Search Date: Wed, 18 Oct 2023 21:12:07 +0200 Organization: A noiseless patient Spider Lines: 58 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Wed, 18 Oct 2023 19:12:08 -0000 (UTC) Injection-Info: dont-email.me; posting-host="1873db54edfde95d223be82464085ff6"; logging-data="4016348"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18reNBa6cT3fFXAu67dDx32" User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Cancel-Lock: sha1:N5pULWZ1vvAe+4Bf4or1Qi6tc8k= In-Reply-To: Content-Language: fr, en-US Bytes: 3025 Le 17/10/2023 à 09:44, DrPi a écrit : > > Le 16/10/2023 à 23:35, DrPi a écrit : > > > J'ai oublié de préciser que le problème est déclenché dès qu'un > caractère non ASCII se trouve dans un nom de fichier/dossier. > > L'encodage des caractères exotiques varie d'un système à l'autre, et > d'une implémentation d'Ada à l'autre. Ca peut être de l'UTF8, des pages > de code Windows... > > > Ici, vraisemblablement, l'encodage ne correspond pas entre le système > et le programme. Tâche de trouver de la doc... > > Ce qui m'étonne, c'est que le crash se produit dans la fonction > Dir_Search, fonction de la runtime. > Apparemment, plus préciément, dans le calcul d'une date > (Ada.Calendar.Arithmetic_Operations.Add). > > C'est étrange et je ne vois pas comment remédier à ce problème. Il n'y a > rien à ce sujet ici : > http://www.ada-auth.org/standards/rm12_w_tc1/html/RM-A-16.html Bonjour Nicolas, J'ai testé sur macOS ça tourne : % ./bin/test_20231018_dir_search Test en cours... Found : . Found : .. Found : Test avec entête.txt Le code concerné est : C_Name := Name & ASCII.NUL; Date := C_Modification_Time (C_Name'Address); if Date = Invalid_Time then raise Use_Error with "Unable to get modification time of the file """ & Name & '"'; end if; Je suspecte la fonction C_Modification_Time avec des caractères accentués ayant un code différent entre Linux / macOS / Windows, ce qui est souvent le cas pour ces fonctions codées en C : function C_Modification_Time (N : System.Address) return Ada.Calendar.Time; pragma Import (C, C_Modification_Time, "__gnat_file_time"); Il faudrait aller voir dans le code C de __gnat_file_time. Sinon tu peux toujours poster un rapport d'anomalie sur https://gcc.gnu.org/bugzilla. Pascal.