Machine: x86_64
OS: cygwin
Compiler: gcc
Compilation CFLAGS: -DPROGRAM='bash.exe' -DCONF_HOSTTYPE='x86_64' -DCONF_OSTYPE='cygwin' -DCONF_MACHTYPE='x86_64-unknown-cygwin' -DCONF_VENDOR='unknown' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H -DRECYCLES_PIDS -I. -I/usr/src/bash-4.3.39-2.x86_64/src/bash-4.3 -I/usr/src/bash-4.3.39-2.x86_64/src/bash-4.3/include -I/usr/src/bash-4.3.39-2.x86_64/src/bash-4.3/lib -DWORDEXP_OPTION -ggdb -O2 -pipe -Wimplicit-function-declaration -fdebug-prefix-map=/usr/src/bash-4.3.39-2.x86_64/build=/usr/src/debug/bash-4.3.39-2 -fdebug-prefix-map=/usr/src/bash-4.3.39-2.x86_64/src/bash-4.3=/usr/src/debug/bash-4.3.39-2
uname output: CYGWIN_NT-6.1 DIENB090 2.1.0(0.287/5/3) 2015-07-14 21:28 x86_64 Cygwin
Machine Type: x86_64-unknown-cygwin
Bash Version: 4.3
Patch Level: 39
Release Status: release
Description:
There is a ambiguity about the directory stack in the manual: 6.8.1 Directory Stack Builtins
It's difficult to understand if the current directory is part of the stack or not.
For example :
- description of the popd builtin :
" popd [-n] [+N | -N]
Remove the top entry from the directory stack, and 'cd' to the
new top directory. When no arguments are given, 'popd' removes
the top directory from the stack and performs a 'cd' to the new
top directory. The elements are numbered from 0 starting at the
first directory listed with 'dirs'; that is, 'popd' is equivalent
to 'popd +0'.
"
By this description, one can understand that the
current dir is the top directory, that it is removed and the new
top directory is then used as current directory
- description of the pushd builin:
" pushd [-n] [+N | -N | DIR]
Save the current directory on the top of the directory stack and
then 'cd' to DIR. With no arguments, 'pushd' exchanges the top
two directories.
"
By this one can understand that DIR will not
be pushed on the stack. So after the operation, the current dir
is not the first stacked directory. It also doesn't specify that the pushd
operation wihtout argument will changes the current directory. It
says that it swaps the top two directories. Again, not clear if
it's talking about the current dir and the first stacked dir or
the two first stacked dir.
Within the whole manual node, it's never clear whether the directory stack includes the current directory or not.
Repeat-By:
Read the manual...