fox@UUNET.UU.NET (Paul Fox) (06/16/89)
Hello Brian, (my name sake). I've just installed
bash on our Suns (Sun-3's running SunOS 4.0.1).
Seems to work fine on this system. I know you as yet havent
ported it to Sys V 3.2, but I had a go and found the following problems:
1. Too long filenames. unwind_protect.c and alloc-files/malloc-rcheck.c cause
real problems when you try to compile them on our 14 char name limit
system.
2. Bash seems to have problems detecting the death of a child when
you do something as simple as 'ls'.
3. If you type 'jobs' then you get the following output:
bash$
jobs: command not found.
Signal 1: (core dumped)
bash$
(In order to get this to work on my 386 system I said
the OS was SYSV and it was an HP machine. I grepped the
sources for HP and didnt find any references to it - except
for HPUX).
4. There is a spelling error in one of the help sections -
builtins.c line 108 'says to sue function names ...'
^
5. Oh yeah, there is a really annoying bug/feature which you share with
the korn-shell. And that is escape sequences in the prompt (eg PS1)
are treated as printable characters by bash.
This is a problem cos I usually have my prompt bright yellow and
all the rst of the command line in normal green. Bash thinks
that ESC[32m is 5 printing characters. What this means is that
as you type in, instead of line wrapping at column 80, it does it
at about column 60.
Heres my alias for 'cd'.
cd ()
{
builtin cd $*
PS1="[33m[1m(\u@\h-$SHLVL)$PWD: [0;32m"
# ^ this is an ESCAPE 0x1b character.
}
Oh yeah, sometimes line editing gets screwed up because of the
unprintable characters in the prompt.
6. I know you havent finished the SYSv ports yet, but \h in the
PS1 variable above comes out as 'localhost'. I looked at the
code in bash and could see that you just hard coded that until
you'd got the code right.
Many thanks for such a brilliant piece of work.
bfox@AUREL.CALTECH.EDU (Brian Fox) (06/17/89)
6. I know you havent finished the SYSv ports yet, but \h in the PS1 variable above comes out as 'localhost'. I looked at the code in bash and could see that you just hard coded that until you'd got the code right. What is the right code? I don't have a sys v system. If you tell me what it is, I'll just put it in. Brian Fox PS: Nice last name.
chet@cwns5.INS.CWRU.Edu (Chet Ramey) (06/19/89)
In article <8906161707.AA15949@aurel.caltech.edu> bfox@ai.mit.edu writes: > > 6. I know you havent finished the SYSv ports yet, but \h in the > PS1 variable above comes out as 'localhost'. I looked at the > code in bash and could see that you just hard coded that until > you'd got the code right. > >What is the right code? I don't have a sys v system. If you tell me >what it is, I'll just put it in. > >Brian Fox Here is a version of `gethostname()' for sys v systems that should do what the Foxes (;-) want. Now Sys 5 systems don't have to be special-cased there. #include <sys/utsname.h> gethostname(name, namlen) char *name; int namlen; { int i; struct utsname uts; uname(&uts); i = strlen(uts.nodename) + 1; strncpy(name, uts.nodename, i < namlen ? i : namlen); return 0; } Chet Ramey Chet Ramey Network Services Group, CWRU chet@cwjcc.INS.CWRU.Edu "The flagon with the dragon has the potion with the poison; the vessel with the pestle holds the brew that is true!"