From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.6 Path: eternal-september.org!reader02.eternal-september.org!aioe.org!hzzNxxMX5IPvnEV4b74Cww.user.46.165.242.91.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Get_Immediate does not read CR in CRLF pairs Date: Wed, 9 Mar 2022 13:54:03 +0100 Organization: Aioe.org NNTP Server Message-ID: References: <1bd9b7ee-9195-44b3-8de2-c018a44b7eden@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: gioia.aioe.org; logging-data="12023"; posting-host="hzzNxxMX5IPvnEV4b74Cww.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org"; User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.6.2 Content-Language: en-US X-Notice: Filtered by postfilter v. 0.9.2 Xref: reader02.eternal-september.org comp.lang.ada:63596 List-Id: On 2022-03-09 12:26, Marius Amado-Alves wrote: > On Tuesday, 8 March 2022 at 12:53:17 UTC, Dmitry A. Kazakov wrote: >> On 2022-03-08 13:20, Marius Amado-Alves wrote: >>> Text_IO should just get the character from the OS. Without assumptions that it is this or that key. >> That is technically impossible under Windows. Windows does not deal with >> characters it does with scan codes which then might be converted to >> characters this or that way, or not at all. > > You mean Text_IO scans the keyboard?! Of course not, usually you have no direct access to it. Specifically GNAT's Text_IO implementation under Windows seems to use Microsoft's getch from the C run-time: https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/getch-getwch?view=msvc-170 So all translation happens in the layer emulating file descriptors on top of Windows I/O system; on top of whatever sits below, console driver etc. Interestingly getch let you access some actual scan codes as follows from the description. Though of course you get them only if you deal with an actual console and not with a pipe etc. The point is that "character" is a fiction unless you read a modem line and even then. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de