summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordana <dana@dana.is>2019-04-12 14:00:19 -0500
committerdana <dana@dana.is>2019-04-12 14:00:19 -0500
commit78fb8aaccf960c48a6b3b51794af6d28b87b9866 (patch)
tree94dcf82755b891c6ef51ba420f07b051bee8645f
parent5e11082349bf72897f93f3a4493a97a2caf15984 (diff)
downloadzsh-78fb8aaccf960c48a6b3b51794af6d28b87b9866.tar.gz
zsh-78fb8aaccf960c48a6b3b51794af6d28b87b9866.zip
44198: Add cd_silent option to suppress all cd output
-rw-r--r--ChangeLog5
-rw-r--r--Doc/Zsh/options.yo15
-rw-r--r--Src/builtin.c4
-rw-r--r--Src/options.c1
-rw-r--r--Src/zsh.h1
5 files changed, 24 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index d0d32063b..740147507 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2019-04-12 dana <dana@dana.is>
+
+ * 44198: Doc/Zsh/options.yo, Src/builtin.c, Src/options.c,
+ Src/zsh.h: Add cd_silent option to suppress all cd output
+
2019-04-10 Peter Stephenson <p.stephenson@samsung.com>
* Eric Freese: 44214: Src/exec.c: <(...) substitutions shouldn't
diff --git a/Doc/Zsh/options.yo b/Doc/Zsh/options.yo
index bc182eb7b..903c31134 100644
--- a/Doc/Zsh/options.yo
+++ b/Doc/Zsh/options.yo
@@ -88,6 +88,21 @@ tt(AUTO_CD) option set) is not a directory, and does not begin with a
slash, try to expand the expression as if it were preceded by a `tt(~)' (see
noderef(Filename Expansion)).
)
+pindex(CD_SILENT)
+pindex(NO_CD_SILENT)
+pindex(CDSILENT)
+pindex(NOCDSILENT)
+cindex(cd, silencing)
+cindex(autocd, silencing)
+item(tt(CD_SILENT))(
+Never print the working directory after a tt(cd) (whether explicit or
+implied with the tt(AUTO_CD) option set). tt(cd) normally prints the
+working directory when the argument given to it was tt(-), a stack entry, or
+the name of a directory found under tt(CDPATH). Note that this is distinct
+from tt(pushd)'s stack-printing behaviour, which is controlled by
+tt(PUSHD_SILENT). This option overrides the printing-related effects of
+tt(POSIX_CD).
+)
pindex(CHASE_DOTS)
pindex(NO_CHASE_DOTS)
pindex(CHASEDOTS)
diff --git a/Src/builtin.c b/Src/builtin.c
index 8dcdcc024..49f017046 100644
--- a/Src/builtin.c
+++ b/Src/builtin.c
@@ -720,7 +720,7 @@ bin_set(char *nam, char **args, UNUSED(Options ops), UNUSED(int func))
/**** directory-handling builtins ****/
/**/
-int doprintdir = 0; /* set in exec.c (for autocd) */
+int doprintdir = 0; /* set in exec.c (for autocd, cdpath, etc.) */
/* pwd: display the name of the current directory */
@@ -1251,7 +1251,7 @@ cd_new_pwd(int func, LinkNode dir, int quiet)
if (func != BIN_CD && isset(INTERACTIVE)) {
if (unset(PUSHDSILENT) && !quiet)
printdirstack();
- } else if (doprintdir) {
+ } else if (unset(CDSILENT) && doprintdir) {
fprintdir(pwd, stdout);
putchar('\n');
}
diff --git a/Src/options.c b/Src/options.c
index 600b649e4..48c14c179 100644
--- a/Src/options.c
+++ b/Src/options.c
@@ -108,6 +108,7 @@ static struct optname optns[] = {
{{NULL, "cbases", 0}, CBASES},
{{NULL, "cprecedences", OPT_EMULATE|OPT_NONZSH}, CPRECEDENCES},
{{NULL, "cdablevars", OPT_EMULATE}, CDABLEVARS},
+{{NULL, "cdsilent", 0}, CDSILENT},
{{NULL, "chasedots", OPT_EMULATE}, CHASEDOTS},
{{NULL, "chaselinks", OPT_EMULATE}, CHASELINKS},
{{NULL, "checkjobs", OPT_EMULATE|OPT_ZSH}, CHECKJOBS},
diff --git a/Src/zsh.h b/Src/zsh.h
index 10897372b..fc3ed2127 100644
--- a/Src/zsh.h
+++ b/Src/zsh.h
@@ -2348,6 +2348,7 @@ enum {
CASEMATCH,
CBASES,
CDABLEVARS,
+ CDSILENT,
CHASEDOTS,
CHASELINKS,
CHECKJOBS,