delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/02/01/13:31:20

X-Spam-Check-By: sourceware.org
Date: Wed, 1 Feb 2006 13:31:08 -0500 (EST)
From: Igor Peshansky <pechtcha AT cs DOT nyu DOT edu>
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: <Pine.GSO.4.63.0602011309500.9860@access1.cims.nyu.edu>
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> <Pine DOT GSO DOT 4 DOT 63 DOT 0602011147430 DOT 9860 AT access1 DOT cims DOT nyu DOT edu> <20060201175628 DOT GI1648 AT trixie DOT casa DOT cgf DOT cx>
MIME-Version: 1.0
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019