summaryrefslogtreecommitdiffstats
path: root/Src
diff options
context:
space:
mode:
authordana <dana@dana.is>2026-05-30 19:56:30 -0500
committerdana <dana@dana.is>2026-06-01 19:00:21 -0500
commit48fa360ea48f08bb4944549bcf6df31149329383 (patch)
tree6284b12446e95f15d3bd0e3c068cac4a8b2e6e10 /Src
parent49374: Show patchlevel in version string (diff)
downloadzsh-48fa360ea48f08bb4944549bcf6df31149329383.tar
zsh-48fa360ea48f08bb4944549bcf6df31149329383.tar.gz
zsh-48fa360ea48f08bb4944549bcf6df31149329383.tar.bz2
zsh-48fa360ea48f08bb4944549bcf6df31149329383.tar.lz
zsh-48fa360ea48f08bb4944549bcf6df31149329383.tar.xz
zsh-48fa360ea48f08bb4944549bcf6df31149329383.tar.zst
zsh-48fa360ea48f08bb4944549bcf6df31149329383.zip
54644: init: add patchlevel to --version output
Diffstat (limited to 'Src')
-rw-r--r--Src/init.c25
-rw-r--r--Src/zsh.mdd2
2 files changed, 18 insertions, 9 deletions
diff --git a/Src/init.c b/Src/init.c
index d46fa75b6..89a7ff714 100644
--- a/Src/init.c
+++ b/Src/init.c
@@ -35,6 +35,14 @@
#include "init.pro"
#include "version.h"
+#ifdef CUSTOM_PATCHLEVEL
+#define ZSH_PATCHLEVEL CUSTOM_PATCHLEVEL
+#else
+#include "patchlevel.h"
+#ifndef ZSH_PATCHLEVEL
+#define ZSH_PATCHLEVEL "unknown"
+#endif
+#endif
#if defined(HAVE_SYS_SYSCTL_H) && !defined(__linux)
#include <sys/sysctl.h>
@@ -435,14 +443,15 @@ parseopts(char *nam, char ***argvp, char *new_opts, char **cmdp,
/* GNU-style long options */
++*argv;
if (!strcmp(*argv, "version")) {
-#ifdef CUSTOM_PATCHLEVEL
- printf("zsh %s (%s-%s-%s/%s)\n",
- ZSH_VERSION, MACHTYPE, VENDOR, OSTYPE, CUSTOM_PATCHLEVEL);
-#else
- printf("zsh %s (%s-%s-%s)\n",
- ZSH_VERSION, MACHTYPE, VENDOR, OSTYPE);
-#endif
-
+ // omit patchlevel for a tagged release, which looks like:
+ // zsh-x.y.z-0-gabcdef
+ static const char *pfx = "zsh-" ZSH_VERSION "-0-";
+ if (strncmp(ZSH_PATCHLEVEL, pfx, strlen(pfx)))
+ printf("zsh %s [%s] (%s-%s-%s)\n",
+ ZSH_VERSION, ZSH_PATCHLEVEL, MACHTYPE, VENDOR, OSTYPE);
+ else
+ printf("zsh %s (%s-%s-%s)\n",
+ ZSH_VERSION, MACHTYPE, VENDOR, OSTYPE);
LAST_OPTION(0);
}
if (!strcmp(*argv, "help")) {
diff --git a/Src/zsh.mdd b/Src/zsh.mdd
index da8d58322..9a5e9daab 100644
--- a/Src/zsh.mdd
+++ b/Src/zsh.mdd
@@ -41,7 +41,7 @@ signames.c: signames1.awk signames2.awk ../config.h @SIGNAL_H@
sigcount.h: signames.c
grep 'define.*SIGCOUNT' signames.c > $@
-init.o: bltinmods.list zshpaths.h zshxmods.h
+init.o: bltinmods.list zshpaths.h zshxmods.h patchlevel.h
init.o params.o parse.o: version.h