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=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,430e73ffe1dca4e9 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news3.google.com!feeder.news-service.com!feeder.erje.net!feeder.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: Simon Wright Newsgroups: comp.lang.ada Subject: Re: How to exit a loop with keyboard input Date: Mon, 12 Apr 2010 21:04:56 +0100 Organization: A noiseless patient Spider Message-ID: References: <176f2831-ce2a-4bb1-9e04-47f662fc7176@q23g2000yqd.googlegroups.com> <20100412181434.dd154269.tero.koskinen@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Date: Mon, 12 Apr 2010 20:04:56 +0000 (UTC) Injection-Info: feeder.eternal-september.org; posting-host="KCXegvZb5vh43D+f3BR6Ew"; logging-data="30805"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18HO7ysU0KJ8vG8zwIsUdFh0K+0nW8KO7o=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (darwin) Cancel-Lock: sha1:tXa8K4cu53sjU1BRnizZhWum8Ss= sha1:TSs4HQxcfBDOvoUDx6nLJwDJGlE= Xref: g2news2.google.com comp.lang.ada:10941 Date: 2010-04-12T21:04:56+01:00 List-Id: Tero Koskinen writes: > On Mon, 12 Apr 2010 03:36:42 -0700 (PDT) Jerry wrote: > >> Thanks, Georg and Manuel, for testing. I'm on OS X 10.5.8 and: > > Most likely Get_Immediate is not implemented for OS X and > the code is defaulting to blocking behaviour. > > Look at getc_immediate_common in sysdep.c. > > I have there (gcc 4.3.4) following #ifdef jungle: > ... > { > #if defined (linux) || defined (sun) || defined (sgi) || defined (__EMX__) \ > || (defined (__osf__) && ! defined (__alpha_vxworks)) \ > || defined (__CYGWIN32__) || defined (__MACHTEN__) || defined (__hpux__) \ > || defined (_AIX) || (defined (__svr4__) && defined (i386)) \ > || defined (__Lynx__) || defined (__FreeBSD__) || defined (__OpenBSD__) > ... > > __MACHTEN__ might be related to OS X, but I don't have a Mac around, so > I am just guessing. The current source (r156233) says { #if defined (linux) || defined (sun) || defined (sgi) || defined (__EMX__) \ || (defined (__osf__) && ! defined (__alpha_vxworks)) \ || defined (__CYGWIN32__) || defined (__MACHTEN__) || defined (__hpux__) \ || defined (_AIX) || (defined (__svr4__) && defined (i386)) \ || defined (__Lynx__) || defined (__FreeBSD__) || defined (__OpenBSD__) \ || defined (__GLIBC__) || defined (__APPLE__) and it's the __APPLE__ that does the trick. This was fixed 2009-04-15 (r146098) and is OK in GNAT GPL 2009 and, of course, in GCC 4.5.0 (still only 'experimental').