From bd797ad9343b81f55f813e78d8e35293f3a87cd9 Mon Sep 17 00:00:00 2001 From: anders_k Date: Sat, 3 Dec 2011 18:16:36 +0000 Subject: [PATCH] Halibut: Include NSIS svn revision in meta generator tag git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6192 212acab6-be3b-0410-9dea-997c60f758d6 --- Docs/src/bin/halibut/halibut.h | 1 + Docs/src/bin/halibut/main.c | 2 ++ Docs/src/bin/halibut/version.c | 31 ++++++++++++++++++++++++++++++- 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/Docs/src/bin/halibut/halibut.h b/Docs/src/bin/halibut/halibut.h index dfbbe2bf..67735d53 100644 --- a/Docs/src/bin/halibut/halibut.h +++ b/Docs/src/bin/halibut/halibut.h @@ -268,6 +268,7 @@ void licence(void); /* * version.c */ +void initversionstring(void); const char *const version; /* diff --git a/Docs/src/bin/halibut/main.c b/Docs/src/bin/halibut/main.c index f82414f5..2b413d9e 100644 --- a/Docs/src/bin/halibut/main.c +++ b/Docs/src/bin/halibut/main.c @@ -21,6 +21,8 @@ int main(int argc, char **argv) int reportcols; int debug; + initversionstring(); + /* * Set up initial (default) parameters. */ diff --git a/Docs/src/bin/halibut/version.c b/Docs/src/bin/halibut/version.c index 634bedcf..1b46fc8f 100644 --- a/Docs/src/bin/halibut/version.c +++ b/Docs/src/bin/halibut/version.c @@ -3,6 +3,8 @@ */ #include +#include +#include #ifndef VERSION #define VER "anonymous build (" __DATE__ " " __TIME__ ")" @@ -10,4 +12,31 @@ #define VER "version " VERSION #endif -const char *const version = "version 1.0 (NSIS Custom Build)"; +#define VERSTRFMT "v1.0 (NSIS Custom Build, %s)" +#define VERSTRSCMREVMAX 20 + +static char versionbuf[sizeof(VERSTRFMT)-2+VERSTRSCMREVMAX]; +const char *const version = versionbuf; + +void initversionstring(void) +{ + char scmverbuf[VERSTRSCMREVMAX+1]; + int cchsvnrev = 0; + const char*svnproprev = "$Revision$"; + if ('$' == *svnproprev++) + { + const char*p; + while('$' != *svnproprev && !isdigit(*svnproprev)) svnproprev++; + for (p = svnproprev; isdigit(*p); ++p) cchsvnrev++; + } + if (!cchsvnrev) + { + cchsvnrev = 1; + svnproprev = "?"; + } + + strcpy(scmverbuf, "SVN:r"); + strncat(scmverbuf, svnproprev, cchsvnrev); + sprintf(versionbuf,VERSTRFMT,scmverbuf); +} +