X-Spam-Check-By: sourceware.org Date: Wed, 1 Feb 2006 13:31:08 -0500 (EST) From: Igor Peshansky Reply-To: cygwin AT cygwin DOT com To: cygwin AT cygwin DOT com Subject: Re: cygwin.bat improvements (was Re: Cygwin on XP disapearing terminal mystery) In-Reply-To: <20060201175628.GI1648@trixie.casa.cgf.cx> Message-ID: References: <013120061516 DOT 12540 DOT 43DF7F67000B576B000030FC22058891160A050E040D0C079D0A AT comcast DOT net> <87mzhbkb9k DOT fsf AT newsguy DOT com> <43E02D37 DOT 6456298F AT dessent DOT net> <20060201035104 DOT GA12232 AT trixie DOT casa DOT cgf DOT cx> <43E0360F DOT C2CF85F9 AT dessent DOT net> <20060201163737 DOT GE1648 AT trixie DOT casa DOT cgf DOT cx> <20060201175628 DOT GI1648 AT trixie DOT casa DOT cgf DOT cx> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On Wed, 1 Feb 2006, Christopher Faylor wrote: > On Wed, Feb 01, 2006 at 12:06:08PM -0500, Igor Peshansky wrote: > >However, most bash invocations should exit with a 0 exit code. So, why > >not simply do something like the test below? > > > >if not errorlevel 1 goto nopause > >pause > >:nopause > > > >Also, "command not found" sets error code to 127, so the "1" above can be > >changed to "127". (actually Dave's right -- it's "9009"). > Wouldn't that be: > > if not errorlevel 0 pause Contrary to all common sense, "if not errorlevel A" means "if %ERRORLEVEL% < A", not an equality test... So the above will *always* pause. Also, in command.com (Win9x), I believe you can only have a "goto" after the "if errorlevel" test... > or > > @if errorlevel 0 goto exit > @echo "bash was either not executed or did not exit cleanly" > @echo "[more touchy feely stuff here]" > @pause > :exit > > ? Again, "if errorlevel 0" means "0 and above". Yuck! > This would be triggered if someone types "exit N" (where N != 0) in the > bash window, though. I suspect that we'll now hear from the cygwin user > contingent who always type "exit 42" because that was required to work > around problems with ZoneAlarm v527. Since "exit N" from bash will never produce an exit code that's over 256, checking for %ERRORLEVEL%>=256 should work well to diagnose "bash crashing" problems. So, do we go with if not errorlevel 256 goto nopause pause :nopause ? Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu | igor AT watson DOT ibm DOT com ZZZzz /,`.-'`' -. ;-;;,_ Igor Peshansky, Ph.D. (name changed!) |,4- ) )-,_. ,\ ( `'-' old name: Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! "Las! je suis sot... -Mais non, tu ne l'es pas, puisque tu t'en rends compte." "But no -- you are no fool; you call yourself a fool, there's proof enough in that!" -- Rostand, "Cyrano de Bergerac" -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/