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.
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to