aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2010-12-05 15:49:37 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2010-12-05 15:49:37 +0000
commit5f27623657f4ddca94ff04ce11a91213fa4583a9 (patch)
treeb6f1de0d7e5bbf51d9c930caf269aae323f38c7e
parentb35e18840fdc536364e4d41b021fe53af309bb59 (diff)
downloadmandoc-5f27623657f4ddca94ff04ce11a91213fa4583a9.tar.gz
mandoc-5f27623657f4ddca94ff04ce11a91213fa4583a9.tar.zst
mandoc-5f27623657f4ddca94ff04ce11a91213fa4583a9.zip
Merge schwarze@'s patch to allow uname() to fail without causing an exit.
-rw-r--r--main.c4
-rw-r--r--mandoc.h4
-rw-r--r--mdoc_validate.c11
3 files changed, 11 insertions, 8 deletions
diff --git a/main.c b/main.c
index 5624134f..0f6994f8 100644
--- a/main.c
+++ b/main.c
@@ -1,4 +1,4 @@
-/* $Id: main.c,v 1.116 2010/12/05 15:37:30 kristaps Exp $ */
+/* $Id: main.c,v 1.117 2010/12/05 15:49:37 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010 Ingo Schwarze <schwarze@openbsd.org>
@@ -170,6 +170,7 @@ static const char * const mandocerrs[MANDOCERR_MAX] = {
"request scope close w/none open",
"scope already open",
"scope open on exit",
+ "uname(3) system call failed",
"macro requires line argument(s)",
"macro requires body argument(s)",
"macro requires argument(s)",
@@ -194,7 +195,6 @@ static const char * const mandocerrs[MANDOCERR_MAX] = {
"NOT IMPLEMENTED: .so with absolute path or \"..\"",
"no document body",
"no document prologue",
- "utsname system call failed",
"static buffer exhausted",
};
diff --git a/mandoc.h b/mandoc.h
index b2a84ac1..81ea5c5d 100644
--- a/mandoc.h
+++ b/mandoc.h
@@ -1,4 +1,4 @@
-/* $Id: mandoc.h,v 1.27 2010/12/05 15:37:30 kristaps Exp $ */
+/* $Id: mandoc.h,v 1.28 2010/12/05 15:49:37 kristaps Exp $ */
/*
* Copyright (c) 2010 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -93,6 +93,7 @@ enum mandocerr {
MANDOCERR_NOSCOPE, /* no such block is open */
MANDOCERR_SCOPEREP, /* scope already open */
MANDOCERR_SCOPEEXIT, /* scope open on exit */
+ MANDOCERR_UNAME, /* uname(3) system call failed */
/* FIXME: merge following with MANDOCERR_ARGCOUNT */
MANDOCERR_NOARGS, /* macro requires line argument(s) */
MANDOCERR_NOBODY, /* macro requires body argument(s) */
@@ -117,7 +118,6 @@ enum mandocerr {
MANDOCERR_SOPATH, /* NOT IMPLEMENTED: .so with absolute path or ".." */
MANDOCERR_NODOCBODY, /* no document body */
MANDOCERR_NODOCPROLOG, /* no document prologue */
- MANDOCERR_UTSNAME, /* utsname system call failed */
MANDOCERR_MEM, /* static buffer exhausted */
MANDOCERR_MAX
};
diff --git a/mdoc_validate.c b/mdoc_validate.c
index 2b10fd06..91fc2bfb 100644
--- a/mdoc_validate.c
+++ b/mdoc_validate.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_validate.c,v 1.135 2010/12/05 15:37:30 kristaps Exp $ */
+/* $Id: mdoc_validate.c,v 1.136 2010/12/05 15:49:37 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -2130,14 +2130,17 @@ post_os(POST_ARGS)
return(0);
}
#else /*!OSNAME */
- if (-1 == uname(&utsname))
- return(mdoc_nmsg(mdoc, n, MANDOCERR_UTSNAME));
+ if (uname(&utsname)) {
+ mdoc_nmsg(mdoc, n, MANDOCERR_UNAME);
+ mdoc->meta.os = mandoc_strdup("UNKNOWN");
+ return(post_prol(mdoc));
+ }
if (strlcat(buf, utsname.sysname, BUFSIZ) >= BUFSIZ) {
mdoc_nmsg(mdoc, n, MANDOCERR_MEM);
return(0);
}
- if (strlcat(buf, " ", 64) >= BUFSIZ) {
+ if (strlcat(buf, " ", BUFSIZ) >= BUFSIZ) {
mdoc_nmsg(mdoc, n, MANDOCERR_MEM);
return(0);
}