Permalink
Browse files

Extra information in mutt version string, redux.

Restores [f1b4d1d17200] functionality with a slight change to keep
'make dist' working (see backout in [6b38124a5b81]).

Automake is too much voodoo for me at this time, so I let it keep
VERSION. mutt.h defined MUTT_VERSION as VERSION and the code used that,
so I removed MUTT_VERSION from mutt.h and put it into config.h via
configure.ac.  A couple of tweaks were needed elsewhere.  This restores
the fancy-versioning feature within mutt and keeps 'make dist' happy.

--HG--
branch : HEAD
  • Loading branch information...
1 parent e6f885a commit 465deab9f95b13dd31553c0ec0616ed8ae0ce710 @xdgc xdgc committed Mar 7, 2011
Showing with 64 additions and 3 deletions.
  1. +3 −0 configure.ac
  2. +1 −1 dotlock.c
  3. +0 −2 mutt.h
  4. +60 −0 version.sh
View
@@ -11,6 +11,9 @@ mutt_cv_version=`cat $srcdir/VERSION`
AM_INIT_AUTOMAKE(mutt, $mutt_cv_version)
AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ['$(top_srcdir)/VERSION'])
+MUTT_VERSION=`sh ./version.sh`
+AC_DEFINE_UNQUOTED(MUTT_VERSION,"$MUTT_VERSION", [Full textual version string.])
+
AC_GNU_SOURCE
ALL_LINGUAS="de eu ru it es uk fr pl nl cs id sk ko el zh_TW zh_CN pt_BR eo gl sv da lt tr ja hu et ca bg ga"
View
@@ -339,7 +339,7 @@ END_PRIVILEGED (void)
static void
usage (const char *av0)
{
- fprintf (stderr, "dotlock [Mutt %s (%s)]\n", VERSION, ReleaseDate);
+ fprintf (stderr, "dotlock [Mutt %s (%s)]\n", MUTT_VERSION, ReleaseDate);
fprintf (stderr, "usage: %s [-t|-f|-u|-d] [-p] [-r <retries>] file\n",
av0);
View
2 mutt.h
@@ -66,8 +66,6 @@
# define MB_LEN_MAX 16
#endif
-#define MUTT_VERSION (VERSION)
-
/* nifty trick I stole from ELM 2.5alpha. */
#ifdef MAIN_C
#define WHERE
View
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+# Ensure that we have a repo here and that mercurial is installed. If
+# not, just cat the VERSION file; it contains the latest release number.
+{ [ -d .hg ] && hg >/dev/null 2>&1; } || exec cat VERSION
+
+# This is a mercurial repo and we have the hg command.
+
+# Get essential properties of the current working copy
+set -- `hg parents --template='{rev} {node|short}\n'`
+rev="$1"
+node="$2"
+
+# translate release tags into ##.##.## notation
+cleantag () {
+ case "$1" in
+ mutt-*-rel) echo "$1" | sed -e 's/mutt-//' -e 's/-rel//' | tr - . ;;
+ *) echo "$1" ;;
+ esac
+}
+
+getdistance_old () {
+ # fudge it
+ set -- `hg tags | sort -n +1 | egrep 'mutt-.*rel' | tail -1 | cut -d: -f1`
+ latesttag="$1"
+ latestrev="$2"
+ distance=`expr $rev - $latestrev`
+ echo $latesttag $distance
+}
+
+getdistance_new () {
+ hg parents --template='{latesttag} {latesttagdistance}\n'
+}
+
+
+# latesttag appeared in hg 1.4. Test for it.
+[ "`hg log -r . --template='{latesttag}'`" = '' ] &&
+set -- `getdistance_old` ||
+set -- `getdistance_new`
+
+tag=`cleantag "$1"`
+dist=$2
+
+if [ $dist -eq 0 ]; then
+ dist=
+else
+ dist="+$dist"
+fi
+
+# if we have mq patches applied, mention it
+qparent=`hg log -r qparent --template='{rev}\n' 2>/dev/null || echo $rev`
+qdelta=`expr $rev - $qparent`
+if [ $qdelta -eq 0 ]; then
+ qdist=""
+else
+ qdist=",mq+$qdelta"
+fi
+
+echo "$tag$dist$qdist ($node)"
+exit 0

0 comments on commit 465deab

Please sign in to comment.