[master] 3cd5a9934 Add VCS_String() public function, which depending on the argument returns version related strings.

Poul-Henning Kamp phk at FreeBSD.org
Tue May 21 08:28:09 UTC 2019


commit 3cd5a9934d3d93c0b3f5f24c9f985d8eb59071dd
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Tue May 21 08:26:40 2019 +0000

    Add VCS_String() public function, which depending on the argument
    returns version related strings.
    
    Get rid of global, but pretty useles variable VCS_version.
    
    Closes: #2936

diff --git a/bin/varnishd/cache/cache_panic.c b/bin/varnishd/cache/cache_panic.c
index a0641897b..60a521ece 100644
--- a/bin/varnishd/cache/cache_panic.c
+++ b/bin/varnishd/cache/cache_panic.c
@@ -734,7 +734,7 @@ pan_ic(const char *func, const char *file, int line, const char *cond,
 		break;
 	}
 	VSB_printf(pan_vsb, "version = %s, vrt api = %u.%u\n",
-	    VCS_version, VRT_MAJOR_VERSION, VRT_MINOR_VERSION);
+	    VCS_String("V"), VRT_MAJOR_VERSION, VRT_MINOR_VERSION);
 	VSB_printf(pan_vsb, "ident = %s,%s\n",
 	    heritage.ident, Waiter_GetName());
 	VSB_printf(pan_vsb, "now = %f (mono), %f (real)\n",
diff --git a/bin/varnishd/mgt/mgt_cli.c b/bin/varnishd/mgt/mgt_cli.c
index ed38683de..63a696eaa 100644
--- a/bin/varnishd/mgt/mgt_cli.c
+++ b/bin/varnishd/mgt/mgt_cli.c
@@ -81,7 +81,7 @@ mcf_banner(struct cli *cli, const char *const *av, void *priv)
 	VCLI_Out(cli, "Varnish Cache CLI 1.0\n");
 	VCLI_Out(cli, "-----------------------------\n");
 	VCLI_Out(cli, "%s\n", VSB_data(vident) + 1);
-	VCLI_Out(cli, "%s\n", VCS_version);
+	VCLI_Out(cli, "%s\n", VCS_String("V"));
 	VCLI_Out(cli, "\n");
 	VCLI_Out(cli, "Type 'help' for command list.\n");
 	VCLI_Out(cli, "Type 'quit' to close CLI session.\n");
diff --git a/bin/varnishd/mgt/mgt_main.c b/bin/varnishd/mgt/mgt_main.c
index 7f6622a01..02b9c7ed0 100644
--- a/bin/varnishd/mgt/mgt_main.c
+++ b/bin/varnishd/mgt/mgt_main.c
@@ -843,7 +843,7 @@ main(int argc, char * const *argv)
 	if (pfh2 != NULL)
 		VPF_Write(pfh2);
 
-	MGT_Complain(C_DEBUG, "Version: %s", VCS_version);
+	MGT_Complain(C_DEBUG, "Version: %s", VCS_String("V"));
 	MGT_Complain(C_DEBUG, "Platform: %s", VSB_data(vident) + 1);
 
 	if (d_flag)
diff --git a/include/vcs.h b/include/vcs.h
index d3a1585fa..8e605eb97 100644
--- a/include/vcs.h
+++ b/include/vcs.h
@@ -29,5 +29,5 @@
  */
 
 /* from libvarnish/version.c */
-extern const char *VCS_version;
 void VCS_Message(const char *);
+const char *VCS_String(const char *which);
diff --git a/lib/libvarnish/version.c b/lib/libvarnish/version.c
index b2258ccde..db3398f22 100644
--- a/lib/libvarnish/version.c
+++ b/lib/libvarnish/version.c
@@ -33,16 +33,49 @@
 
 #include <stdio.h>
 
+#include "vdef.h"
+#include "vas.h"
 #include "vcs.h"
 #include "vcs_version.h"
 
-const char *VCS_version =
-    PACKAGE_TARNAME "-" PACKAGE_VERSION " revision " VCS_Version;
-
 void
 VCS_Message(const char *progname)
 {
-	fprintf(stderr, "%s (%s)\n", progname, VCS_version);
-	fprintf(stderr, "Copyright (c) 2006 Verdens Gang AS\n");
-	fprintf(stderr, "Copyright (c) 2006-2019 Varnish Software AS\n");
+	fprintf(stderr, "%s %s", progname, VCS_String("M"));
+}
+
+const char *
+VCS_String(const char *which)
+{
+	AN(which);
+	assert(which[1] == '\0');
+
+	switch(*which) {
+	case 'T':
+		return (PACKAGE_TARNAME);
+	case 'P':
+		return (PACKAGE_VERSION);
+	case 'R':
+		return (VCS_Version);
+	case 'V':
+		return (
+		    PACKAGE_TARNAME
+		    "-" PACKAGE_VERSION
+		    " revision " VCS_Version
+		);
+	case 'M':
+		return (
+		    "("
+		    PACKAGE_TARNAME
+		    "-" PACKAGE_VERSION
+		    " revision " VCS_Version
+		    ")"
+		    "\n"
+		    "Copyright (c) 2006 Verdens Gang AS\n"
+		    "Copyright (c) 2006-2019 Varnish Software AS\n"
+		);
+	default:
+		WRONG("Wrong argument to VCS_String");
+	}
+	NEEDLESS(return (0));
 }
diff --git a/lib/libvarnishapi/libvarnishapi.map b/lib/libvarnishapi/libvarnishapi.map
index addfb3077..17f982ddd 100644
--- a/lib/libvarnishapi/libvarnishapi.map
+++ b/lib/libvarnishapi/libvarnishapi.map
@@ -167,3 +167,10 @@ LIBVARNISHAPI_2.2 {
     local:
 	*;
 };
+
+LIBVARNISHAPI_2.3 {	/* 2019-09-15 release */
+    global:
+	VCS_String;
+    local:
+	*;
+};
diff --git a/lib/libvarnishapi/vsl_query.c b/lib/libvarnishapi/vsl_query.c
index 42596af10..a60bc6017 100644
--- a/lib/libvarnishapi/vsl_query.c
+++ b/lib/libvarnishapi/vsl_query.c
@@ -348,7 +348,7 @@ vslq_exec(const struct vex *vex, struct VSL_transaction * const ptrans[])
 	default:
 		return (vslq_test(vex, ptrans));
 	}
-	NEEDLESS(return 0);
+	NEEDLESS(return (0));
 }
 
 struct vslq_query *
diff --git a/lib/libvcc/vmodtool.py b/lib/libvcc/vmodtool.py
index 4d8734d4c..d431df1cf 100755
--- a/lib/libvcc/vmodtool.py
+++ b/lib/libvcc/vmodtool.py
@@ -1023,7 +1023,7 @@ class vcc(object):
         t = '\t"'
         for i in json.dumps(jl, indent=2, separators=(",", ": ")):
             if i == '\n':
-                fo.write(t + '\\n"\n')
+                fo.write(t + ' "\n')
                 t = '\t"'
             else:
                 if i in '"\\':


More information about the varnish-commit mailing list