svn commit: r238563 - head/gnu/usr.bin/groff/tmac

Simon J. Gerraty sjg at juniper.net
Tue Aug 21 23:26:16 UTC 2012


On Wed, 22 Aug 2012 00:29:44 +0200, Jilles Tjoelker writes:
>On FreeBSD, the first two statements are partially false. All sh(1)
>builtins that correspond to utilities specified by POSIX (but not
>special builtins) have versions accessible to execve() (on 8.x and

That's interesting, especially for 'cd', though is there any use case in
which it is actually useful? I'm drawing a blank.

>older, hash, type and ulimit are missing). This includes cd but not
>chdir, since chdir is not specified by POSIX. Also, FreeBSD make
>includes a somewhat arbitrary list of shell builtins, including cd, that
>cause it to invoke the shell even if there are no metacharacters.

Yes, I pondered whether something like that might be worthwhile,
but since a bare 'cd somewhere' all by itself is rather pointless, it
seemed a corner case.

>> A better way to construct targets like this is to put any excursion out
>> of .OBJDIR inside ():
>
>> 	(cd ${.CURDIR} && \
>> 	${INSTALL} -o ${TMACOWN} -g ${TMACGRP} -m ${TMACMODE} \
>> 	koi8-r.tmac hyphen.ru ${DESTDIR}${TMACDIR})
>
>> then the cd ${.OBJDIR} isn't needed at all.
>> note use of && rather than ; which can be very dangerous
>
>This method makes more sense and should hardly cost any performance.

Agreed.


More information about the svn-src-all mailing list