summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--argv.c3
-rw-r--r--mdocterm.c22
-rw-r--r--mmain.h19
-rw-r--r--strings.c2
4 files changed, 27 insertions, 19 deletions
diff --git a/argv.c b/argv.c
index 30a1db6b..c7e8f46a 100644
--- a/argv.c
+++ b/argv.c
@@ -715,7 +715,7 @@ int
mdoc_argv(struct mdoc *mdoc, int line, int tok,
struct mdoc_arg *v, int *pos, char *buf)
{
- int i, ppos;
+ int i;
char *p;
(void)memset(v, 0, sizeof(struct mdoc_arg));
@@ -758,7 +758,6 @@ mdoc_argv(struct mdoc *mdoc, int line, int tok,
/* FIXME: whitespace if no value. */
- ppos = *pos;
if ( ! argv(mdoc, line, v, pos, buf))
return(ARGV_ERROR);
diff --git a/mdocterm.c b/mdocterm.c
index 4174ff01..10b4b8d8 100644
--- a/mdocterm.c
+++ b/mdocterm.c
@@ -24,13 +24,19 @@
#include <stdlib.h>
#include <string.h>
-#ifdef __linux__
+#ifndef __OpenBSD__
#include <time.h>
#endif
#include "mmain.h"
#include "term.h"
+#ifdef __NetBSD__
+#define xisspace(x) isspace((int)(x))
+#else
+#define xisspace(x) isspace((x))
+#endif
+
enum termstyle {
STYLE_CLEAR,
STYLE_BOLD,
@@ -137,11 +143,11 @@ flushln(struct termp *p)
* Count up visible word characters. Control sequences
* (starting with the CSI) aren't counted.
*/
- assert( ! isspace(p->buf[i]));
+ assert( ! xisspace(p->buf[i]));
/* LINTED */
for (j = i, vsz = 0; j < p->col; j++) {
- if (isspace(p->buf[j]))
+ if (xisspace(p->buf[j]))
break;
else if (27 == p->buf[j]) {
assert(j + 4 <= p->col);
@@ -177,7 +183,7 @@ flushln(struct termp *p)
*/
for ( ; i < p->col; i++) {
- if (isspace(p->buf[i]))
+ if (xisspace(p->buf[i]))
break;
putchar(p->buf[i]);
}
@@ -378,7 +384,7 @@ word(struct termp *p, const char *word)
/* LINTED */
for (j = i = 0; i < len; i++) {
- if ( ! isspace(word[i])) {
+ if ( ! xisspace(word[i])) {
j++;
continue;
}
@@ -444,10 +450,10 @@ footer(struct termp *p, const struct mdoc_meta *meta)
tm = localtime(&meta->date);
-#ifdef __linux__
- if (0 == strftime(buf, p->rmargin, "%B %d, %Y", tm))
-#else
+#ifdef __OpenBSD__
if (NULL == strftime(buf, p->rmargin, "%B %d, %Y", tm))
+#else
+ if (0 == strftime(buf, p->rmargin, "%B %d, %Y", tm))
#endif
err(1, "strftime");
diff --git a/mmain.h b/mmain.h
index 4010e0a7..c6d9c717 100644
--- a/mmain.h
+++ b/mmain.h
@@ -28,8 +28,16 @@
#include "mdoc.h"
-#ifdef __linux__
-#define __dead /* Nothing */
+/* Rules for "dead" functions: */
+#if defined(__NetBSD__)
+#define dead_pre __dead
+#define dead_post __attribute__((__noreturn__))
+#elif defined(__OpenBSD__)
+#define dead_pre __dead
+#define dead_post /* Nothing. */
+#else
+#define dead_pre /* Nothing. */
+#define dead_post __attribute__((__noreturn__))
#endif
__BEGIN_DECLS
@@ -37,12 +45,7 @@ __BEGIN_DECLS
struct mmain;
struct mmain *mmain_alloc(void);
-#ifdef __linux__
-void mmain_exit(struct mmain *, int)
- __attribute__((__noreturn__));
-#else
-__dead void mmain_exit(struct mmain *, int);
-#endif
+dead_pre void mmain_exit(struct mmain *, int) dead_post;
int mmain_getopt(struct mmain *, int, char *[],
const char *, const char *, void *,
int (*)(void *, int, const char *));
diff --git a/strings.c b/strings.c
index 210b73ef..2b7cd4fc 100644
--- a/strings.c
+++ b/strings.c
@@ -21,7 +21,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
-#ifdef __linux__
+#ifndef __OpenBSD__
#include <time.h>
#endif