version 1.181, 2011/12/03 16:58:54 |
version 1.185, 2012/07/10 14:38:51 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2010, 2011 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2010, 2011, 2012 Ingo Schwarze <schwarze@openbsd.org> |
* |
* |
* Permission to use, copy, modify, and distribute this software for any |
* Permission to use, copy, modify, and distribute this software for any |
* purpose with or without fee is hereby granted, provided that the above |
* purpose with or without fee is hereby granted, provided that the above |
Line 661 pre_bl(PRE_ARGS) |
|
Line 661 pre_bl(PRE_ARGS) |
|
comp = 1; |
comp = 1; |
break; |
break; |
case (MDOC_Width): |
case (MDOC_Width): |
dup = (NULL != n->norm->Bl.width); |
/* NB: this can be empty! */ |
width = n->args->argv[i].value[0]; |
if (n->args->argv[i].sz) { |
|
width = n->args->argv[i].value[0]; |
|
dup = (NULL != n->norm->Bl.width); |
|
break; |
|
} |
|
mdoc_nmsg(mdoc, n, MANDOCERR_IGNARGV); |
break; |
break; |
case (MDOC_Offset): |
case (MDOC_Offset): |
/* NB: this can be empty! */ |
/* NB: this can be empty! */ |
Line 728 pre_bl(PRE_ARGS) |
|
Line 733 pre_bl(PRE_ARGS) |
|
/* |
/* |
* Validate the width field. Some list types don't need width |
* Validate the width field. Some list types don't need width |
* types and should be warned about them. Others should have it |
* types and should be warned about them. Others should have it |
* and must also be warned. |
* and must also be warned. Yet others have a default and need |
|
* no warning. |
*/ |
*/ |
|
|
switch (n->norm->Bl.type) { |
switch (n->norm->Bl.type) { |
case (LIST_tag): |
case (LIST_tag): |
if (n->norm->Bl.width) |
if (NULL == n->norm->Bl.width) |
break; |
mdoc_nmsg(mdoc, n, MANDOCERR_NOWIDTHARG); |
mdoc_nmsg(mdoc, n, MANDOCERR_NOWIDTHARG); |
|
break; |
break; |
case (LIST_column): |
case (LIST_column): |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
Line 749 pre_bl(PRE_ARGS) |
|
Line 754 pre_bl(PRE_ARGS) |
|
if (n->norm->Bl.width) |
if (n->norm->Bl.width) |
mdoc_nmsg(mdoc, n, MANDOCERR_IGNARGV); |
mdoc_nmsg(mdoc, n, MANDOCERR_IGNARGV); |
break; |
break; |
|
case (LIST_bullet): |
|
/* FALLTHROUGH */ |
|
case (LIST_dash): |
|
/* FALLTHROUGH */ |
|
case (LIST_hyphen): |
|
if (NULL == n->norm->Bl.width) |
|
n->norm->Bl.width = "2n"; |
|
break; |
|
case (LIST_enum): |
|
if (NULL == n->norm->Bl.width) |
|
n->norm->Bl.width = "3n"; |
|
break; |
default: |
default: |
break; |
break; |
} |
} |
Line 2187 post_os(POST_ARGS) |
|
Line 2204 post_os(POST_ARGS) |
|
n = mdoc->last; |
n = mdoc->last; |
|
|
/* |
/* |
* Set the operating system by way of the `Os' macro. Note that |
* Set the operating system by way of the `Os' macro. |
* if an argument isn't provided and -DOSNAME="\"foo\"" is |
* The order of precedence is: |
* provided during compilation, this value will be used instead |
* 1. the argument of the `Os' macro, unless empty |
* of filling in "sysname release" from uname(). |
* 2. the -Ios=foo command line argument, if provided |
|
* 3. -DOSNAME="\"foo\"", if provided during compilation |
|
* 4. "sysname release" from uname(3) |
*/ |
*/ |
|
|
if (mdoc->meta.os) |
free(mdoc->meta.os); |
free(mdoc->meta.os); |
|
|
|
buf[0] = '\0'; |
buf[0] = '\0'; |
if (-1 == (c = concat(buf, n->child, BUFSIZ))) { |
if (-1 == (c = concat(buf, n->child, BUFSIZ))) { |
Line 2204 post_os(POST_ARGS) |
|
Line 2222 post_os(POST_ARGS) |
|
|
|
assert(c); |
assert(c); |
|
|
/* XXX: yes, these can all be dynamically-adjusted buffers, but |
|
* it's really not worth the extra hackery. |
|
*/ |
|
|
|
if ('\0' == buf[0]) { |
if ('\0' == buf[0]) { |
|
if (mdoc->defos) { |
|
mdoc->meta.os = mandoc_strdup(mdoc->defos); |
|
return(1); |
|
} |
#ifdef OSNAME |
#ifdef OSNAME |
if (strlcat(buf, OSNAME, BUFSIZ) >= BUFSIZ) { |
if (strlcat(buf, OSNAME, BUFSIZ) >= BUFSIZ) { |
mdoc_nmsg(mdoc, n, MANDOCERR_MEM); |
mdoc_nmsg(mdoc, n, MANDOCERR_MEM); |