summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile3
-rw-r--r--mdoc_action.c13
2 files changed, 15 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 2ad41901..2e3c867d 100644
--- a/Makefile
+++ b/Makefile
@@ -12,9 +12,10 @@ INSTALL_MAN = $(INSTALL_DATA)
VERSION = 1.9.9
VDATE = 21 October 2009
-VFLAGS = -DVERSION=\"$(VERSION)\"
+VFLAGS = -DVERSION="\"$(VERSION)\""
CFLAGS += -W -Wall -Wstrict-prototypes -Wno-unused-parameter -Wwrite-strings -g
CFLAGS += $(VFLAGS)
+#CFLAGS += -DOSNAME="\"OpenBSD 4.5\""
LINTFLAGS += $(VFLAGS)
MANDOCFLAGS = -Wall -fstrict
diff --git a/mdoc_action.c b/mdoc_action.c
index 4acb1d29..b9d11289 100644
--- a/mdoc_action.c
+++ b/mdoc_action.c
@@ -520,7 +520,15 @@ static int
post_os(POST_ARGS)
{
char buf[64];
+#ifndef OSNAME
struct utsname utsname;
+#endif
+
+ /*
+ * Setting OSNAME to be the name of the target operating system,
+ * e.g., "OpenBSD 4.4", will result in the compile-time constant
+ * by supplied instead of the value in uname().
+ */
if (m->meta.os)
free(m->meta.os);
@@ -530,6 +538,10 @@ post_os(POST_ARGS)
return(0);
if (0 == buf[0]) {
+#ifdef OSNAME
+ if (strlcat(buf, OSNAME, 64) >= 64)
+ return(mdoc_nerr(m, n, EUTSNAME));
+#else
if (-1 == uname(&utsname))
return(mdoc_nerr(m, n, EUTSNAME));
if (strlcat(buf, utsname.sysname, 64) >= 64)
@@ -538,6 +550,7 @@ post_os(POST_ARGS)
return(mdoc_nerr(m, n, ETOOLONG));
if (strlcat(buf, utsname.release, 64) >= 64)
return(mdoc_nerr(m, n, ETOOLONG));
+#endif
}
if (NULL == (m->meta.os = strdup(buf)))