From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Get_Immediate has raised CONSTRAINT_ERROR : s-wchcnv.adb:207 explicit raise Date: Wed, 18 Feb 2015 19:34:15 +0100 Organization: cbb software GmbH Message-ID: <1uhwqdsrdxacw$.jmvurilykvf4.dlg@40tude.net> References: <234cdad3-5c41-4b0d-b611-01c53273cb7f@googlegroups.com> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: w2sqUGEBZqsVBYNL7Ky3Kg.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:24979 Date: 2015-02-18T19:34:15+01:00 List-Id: On Wed, 18 Feb 2015 09:29:50 -0800 (PST), darek wrote: > reading from a keyboard keys such as arrow keys, PgUp, PgDn, etc. seems > to be a small challenge in Ada. For this purpose one of the > Get_Immediate procedures from the Ada.Text_IO shall be used. shall? > For the > keyboard we can use either > - procedure Get_Immediate (Item : out Character) > or > - procedure Get_Immediate (Item : out Character; Available : out Boolean) > > When I have used the Get_Immediate procedure with the extra boolean > parameter, it generates the constraint error for: > - all arrow keys, PgUp, PgDn > - [ character from the keyboard !!!! > > Is this a feature or a bug. How pressing a legal key can cause such a > weird result? Neither, I suppose. AFAIK, RM does not mandate any specific mapping of non-character keyboard keys or, for that matter, any events from any possible input devices (mouse, joystick, pen, motion detector...) onto the type Character. Except for formatting keys (e.g. ones generating CR, LF, HT etc) > The Get_Immediate procedure without the boolean parameter works fine but > it waits for a key to be pressed. > > Any ideas how to avoid the problem with this exception? Am I missing something? Yes. Page Up/Down are not a characters. No key necessarily is, however, some keys may have corresponding characters, or sequences of characters. You shall not use Text_IO for keyboard input, unless under some ASCII terminal emulator, e.g. VT52 or VT100. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de