Use the name of the default shell instead of a numeric index to select

the default shell.

Idea from:	DragonFlyBSD
This commit is contained in:
harti 2005-05-24 13:19:40 +00:00
parent 6c1f15aa0b
commit b6ff4ff920
3 changed files with 4 additions and 8 deletions

View File

@ -98,12 +98,8 @@ hash:
# allow you to shoot yourself in the foot if you want to :-)
MAKE_SHELL?= sh
.if ${MAKE_SHELL} == "csh"
CFLAGS+= -DDEFSHELL=0
.elif ${MAKE_SHELL} == "sh"
CFLAGS+= -DDEFSHELL=1
.elif ${MAKE_SHELL} == "ksh"
CFLAGS+= -DDEFSHELL=2
.if ${MAKE_SHELL} == "csh" || ${MAKE_SHELL} == "sh" || ${MAKE_SHELL} == "ksh"
CFLAGS+= -DDEFSHELLNAME=\"${MAKE_SHELL}\"
.else
.error "MAKE_SHELL must be set to one of \"csh\", \"sh\" or \"ksh\"."
.endif

View File

@ -2,6 +2,6 @@
# a very simple makefile...
pmake:
@echo 'make started.'
cc -DDEFSHELL=1 -I. -c *.c
cc -DDEFSHELLNAME=\"sh\" -I. -c *.c
cc *.o -o pmake
@echo 'make completed.'

View File

@ -2719,7 +2719,7 @@ Shell_Init(void)
for (i = 0; shells_init[i] != NULL; i++) {
sh = JobParseShellSpec(shells_init[i], &fullSpec);
TAILQ_INSERT_TAIL(&shells, sh, link);
if (i == DEFSHELL)
if (strcmp(sh->name, DEFSHELLNAME) == 0)
commandShell = sh;
}
}