[comp.unix.i386] Problem with bash functions in 386/ix 2.0.2 --> Fixes

petri@digiw.UUCP (Petri Alhola) (10/04/89)

In article <923@digiw.UUCP> you write:
>i have bash-1.03 running in Interactive systems 386/ix ver 2.02
>that is System V 3.2 in 386 . I have found two problems.
>
>1 - I have shell function 
>	l=() {
>	    ls -CF $*;
>	}
>    When i execute it, and when it terminates i got infinite number of
>    error message Wait: No child process. If i use it with pipe 
>    like l | less . it works fine.
>
     I found that in file nojobs.c there is wait() loop, if it gets
     error from waits, it prints it out and then waits again. If
     error is No Child Process ,ECHILD it sill tries wait again
     infinitely. The fix is that break loop in ECHILD.
     here is diff.


*** nojobs.c	Mon Oct  2 14:49:17 1989
--- nojobs.c~	Mon Oct  2 14:24:30 1989
***************
*** 221,227 ****
      {
        if (got_pid < 0 && errno != EINTR)
  	file_error ("wait");
-       if (got_pid < 0 && errno == ECHILD) break;
      }
  
    /* Default return value. */
--- 221,226 ----

>2 - When i am running bash in xterm window i have problems with ls
>    listings . The xterm works , i have used in many months with
>    sh and gnu emacs and other programs. The problem is that i am losing
>    randomly lines !!. 
>    The problem can be in Interactive systems X11.3 xterm also, but only
>    program that have this problem is bash.
>    This is actual output from other x-term window.
>
	The bug was not in xterm , it was in rlogin. The rlogin
	lost all lines in buffer when IXON flag was changed by 
	ioctl call. I do not know does this bug exist in other
	rlogins that 386/ix one. 
	Fix: use stty -ixon in rlogin sessions with 386/ix

	After these two fixes bash seems to work fine in 386/ix 2.0
	Now i use it in normal use.


    Petri Alhola
    petri@digiw.fi
    petri@digiw.UUCP