* Eric Blake wrote on Sat, Jan 22, 2011 at 02:41:39PM CET: > On 01/22/2011 01:30 AM, Ralf Wildenhues wrote: > > @prindex @command{unset} > > -In some nonconforming shells (e.g., Bash 2.05a), @code{unset FOO} fails > > -when @code{FOO} is not set. You can use > > +In some nonconforming shells (e.g., NetBSD 5.99.43 sh or Bash 2.05a), > > +@code{unset FOO} fails when @code{FOO} is not set. You can use > > Maybe add one additional sentence: > > This can interfere with @code{set -e} operation.
Good idea. I also added @noindent before the half-sentence after the example. > Looks fine with that addition. Thanks, pushed as below, Ralf docs: update entry about unset. * doc/autoconf.texi (Limitations of Builtins): NetBSD sh unset also fails upon `unset' of a variable that is not set. Bash 2.01 could also dump core over `unset MAILPATH'. Suggestion by Eric Blake. diff --git a/doc/autoconf.texi b/doc/autoconf.texi index 4cb3a8c..7eccba7 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -17758,13 +17758,15 @@ Limitations of Builtins @item @command{unset} @c ------------------ @prindex @command{unset} -In some nonconforming shells (e.g., Bash 2.05a), @code{unset FOO} fails -when @code{FOO} is not set. You can use +In some nonconforming shells (e.g., NetBSD 5.99.43 sh or Bash 2.05a), +@code{unset FOO} fails when @code{FOO} is not set. This can interfere +with @code{set -e} operation. You can use @smallexample FOO=; unset FOO @end smallexample +@noindent if you are not sure that @code{FOO} is set. A few ancient shells lack @command{unset} entirely. For some variables @@ -17777,8 +17779,8 @@ Limitations of Builtins Usually, shells that do not support @command{unset} need less effort to make the environment sane, so for example is not a problem if you cannot unset @command{CDPATH} on those shells. However, Bash 2.01 mishandles -@code{unset MAIL} in some cases and dumps core. So, you should do -something like +@code{unset MAIL} and @code{unset MAILPATH} in some cases and dumps core. +So, you should do something like @smallexample ( (unset MAIL) || exit 1) >/dev/null 2>&1 && unset MAIL || :