Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Getting the CVS revision of Zsh



On Fri, 9 Jan 2009 14:07:27 +0100
"Richard Hartmann" <richih.mailinglist@xxxxxxxxx> wrote:
> On Fri, Jan 9, 2009 at 13:58, Peter Stephenson <pws@xxxxxxx> wrote:
> 
> > Hmm... yes, grepping an $Id$ out of ChangeLog, which should always be
> > present, ought to be good enough.  It probably needs to be added at the
> > end.  That's considerably simpler.
> 
> The docs[1] tell me there is a $Revision$

(Move to workers.)

I've already committed a ChangeLog with the revision in.  Using this
appears to be straightforward...

Index: Doc/Zsh/params.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/params.yo,v
retrieving revision 1.49
diff -u -r1.49 params.yo
--- Doc/Zsh/params.yo	5 Sep 2008 21:02:13 -0000	1.49
+++ Doc/Zsh/params.yo	9 Jan 2009 20:10:51 -0000
@@ -727,6 +727,14 @@
 Expands to the basename of the command used to invoke this instance
 of zsh.
 )
+vindex(ZSH_PATCHLEVEL)
+item(tt(ZSH_PATCHLEVEL))(
+The revision string for the version number of the ChangeLog file
+in the zsh distribution.  This is most useful in order to keep
+track of versions of the shell during development between releases;
+hence most users should not use it and should instead rely on
+tt($ZSH_VERSION).
+)
 item(tt(zsh_scheduled_events))(
 See ifzman(the section `The zsh/sched Module' in zmanref(zshmodules))\
 ifnzman(noderef(The zsh/sched Module)).
@@ -740,7 +748,7 @@
 )
 vindex(ZSH_VERSION)
 item(tt(ZSH_VERSION))(
-The version number of this zsh.
+The version number of the release of zsh.
 )
 enditem()
 texinode(Parameters Used By The Shell)()(Parameters Set By The Shell)(Parameters)
Index: Src/params.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/params.c,v
retrieving revision 1.151
diff -u -r1.151 params.c
--- Src/params.c	8 Jan 2009 13:12:09 -0000	1.151
+++ Src/params.c	9 Jan 2009 20:10:55 -0000
@@ -31,6 +31,7 @@
 #include "params.pro"
 
 #include "version.h"
+#include "patchlevel.h"
 
 /* what level of localness we are at */
  
@@ -748,6 +749,7 @@
     setsparam("VENDOR", ztrdup(VENDOR));
     setsparam("ZSH_NAME", ztrdup(zsh_name));
     setsparam("ZSH_VERSION", ztrdup(ZSH_VERSION));
+    setsparam("ZSH_PATCHLEVEL", ztrdup(ZSH_PATCHLEVEL));
     setaparam("signals", sigptr = zalloc((SIGCOUNT+4) * sizeof(char *)));
     for (t = sigs; (*sigptr++ = ztrdup(*t++)); );
 
Index: Src/zsh.mdd
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/zsh.mdd,v
retrieving revision 1.18
diff -u -r1.18 zsh.mdd
--- Src/zsh.mdd	19 Sep 2008 12:58:54 -0000	1.18
+++ Src/zsh.mdd	9 Jan 2009 20:10:55 -0000
@@ -33,12 +33,21 @@
 
 init.o params.o parse.o: version.h
 
+params.o: patchlevel.h
+
 # The main shell doesn't currently need zshcurses.h and zshterm.h,
 # but make sure these are built with the headers.
 # If it did need need them they would be in headers at the top instead.
 version.h: $(sdir_top)/Config/version.mk zshcurses.h zshterm.h
 	echo '#define ZSH_VERSION "'$(VERSION)'"' > $@
 
+patchlevel.h: $(sdir_top)/ChangeLog
+	{ \
+	  echo -n "#define ZSH_PATCHLEVEL "; \
+	  sed -ne 's/^\* *\$$Revision: \(.*\) \$$/"\1"/p' \
+	  $(sdir_top)/ChangeLog; \
+	} >patchlevel.h
+
 zshcurses.h: ../config.h
 	@if test x$(ZSH_CURSES_H) != x; then \
 	  echo "#include <$(ZSH_CURSES_H)>" >zshcurses.h; \


-- 
Peter Stephenson <p.w.stephenson@xxxxxxxxxxxx>
Web page now at http://homepage.ntlworld.com/p.w.stephenson/



Messages sorted by: Reverse Date, Date, Thread, Author