summary refs log tree commit diff
path: root/src/cd.c
diff options
context:
space:
mode:
authorRichard M Kreuter <kreuter@progn.net>2007-12-23 11:24:48 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2007-12-23 11:24:48 +0800
commit1b212d313de17ce3fbe0441b4269e2bf47b2dd68 (patch)
treed7826e158c598af46924097a3d59df0e7f697e1a /src/cd.c
parent[EVAL] Fix bad pointer arithmetic in evalcommand (diff)
downloaddash-1b212d313de17ce3fbe0441b4269e2bf47b2dd68.tar.gz
dash-1b212d313de17ce3fbe0441b4269e2bf47b2dd68.zip
[BUILTIN] Add set +o support
The dash(1) in Debian stable does not support "set +o" in the manner
specified by SUSv3:

|+o
|    Write the current option settings to standard output in a format
|    that is suitable for reinput to the shell as commands that
|    achieve the same options settings.

(citation from
http://www.opengroup.org/onlinepubs/009695399/utilities/set.html)

Instead, dash's "set +o" prints the shell's options in a
human-readable format.

Here is a simple test program that exercises this feature; it works as
I believe is required under bash, but not under dash.

  # Save the shell's options
  set +o > /tmp/settings-commands
  set -o | sort > /tmp/settings-before
  # Change some options.
  set -v
  set -f
  set -x
  set +o emacs
  set -o vi
  # Try to restore our options.
  . /tmp/settings-commands
  set -o | sort > /tmp/settings-after
  # Compare.
  diff /tmp/settings-before /tmp/settings-after

I believe the following small patch adds this feature to dash, and
documents it in the manual page:

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions